后台按查看权限收紧菜单与「只看自己」数据范围;跨境整车报价填表更稳,协商中顺延不再误报销售超时。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
linmianxun
2026-10-11 13:04:09 +08:00
co-authored by Cursor
parent ae818f26b1
commit b070a9b7a7
23 changed files with 1383 additions and 498 deletions
@@ -1,4 +1,4 @@
<script setup lang="ts">
<script setup lang="ts">
/**
* 机器人回复语:对接主账 /inquiry/botReply。
* 分类壳用本地元数据;条目内容全部来自库。
@@ -19,6 +19,13 @@ import {
} from "/@/views/inquiry/botReply/replyCategories";
import ProtoIcon from "/@/views/inquiry/components/ProtoIcon.vue";
import AdminModal from "/@/views/inquiry/components/AdminModal.vue";
import { usePermission } from "/@/hooks/web/usePermission";
import { InquiryBtnPerm } from "/@/views/inquiry/shared/inquiryPagePerms";
const { hasPermission } = usePermission();
const canAdd = () => hasPermission(InquiryBtnPerm.replyAdd);
const canEdit = () => hasPermission(InquiryBtnPerm.replyEdit);
const canDisable = () => hasPermission(InquiryBtnPerm.replyDisable);
const categories = ref<ReplyCategory[]>(emptyCategories());
const loading = ref(false);
@@ -152,7 +159,7 @@ async function save() {
<template>
<Teleport defer to="#page-topbar-actions">
<button type="button" class="btn btn-primary" @click="openCreate()">
<button v-if="canAdd()" type="button" class="btn btn-primary" @click="openCreate()">
<ProtoIcon name="plus" :size="16" />添加话术
</button>
</Teleport>
@@ -177,13 +184,21 @@ async function save() {
</div>
<div style="display: flex; align-items: center; gap: 8px; flex-shrink: 0">
<button
v-if="canDisable()"
type="button"
class="switch"
:class="{ 'is-on': item.enabled }"
:aria-label="item.enabled ? '停用' : '启用'"
@click="toggle(item)"
/>
<button type="button" class="link-action" @click="openEdit(cat.id, item)">编辑</button>
<button
v-if="canEdit()"
type="button"
class="link-action"
@click="openEdit(cat.id, item)"
>
编辑
</button>
</div>
</div>
</article>