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

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
+23 -3
View File
@@ -8,8 +8,10 @@
import { useRoute, useRouter, RouterView } from 'vue-router';
import { message, ConfigProvider } from 'ant-design-vue';
import { useUserStore } from '/@/store/modules/user';
import { usePermission } from '/@/hooks/web/usePermission';
import ProtoIcon from '/@/views/inquiry/components/ProtoIcon.vue';
import AdminModal from '/@/views/inquiry/components/AdminModal.vue';
import { canSeeInquiryPage } from '/@/views/inquiry/shared/inquiryPagePerms';
import '/@/views/inquiry/styles/admin-prototype.css';
import '/@/views/inquiry/styles/admin-fidelity.css';
import '/@/views/inquiry/styles/dashboard-prototype.css';
@@ -74,12 +76,26 @@
components: { RouterView, ProtoIcon, AdminModal, ConfigProvider },
setup() {
const userStore = useUserStore();
const { hasPermission } = usePermission();
const route = useRoute();
const router = useRouter();
const userMenuOpen = ref(false);
const profileOpen = ref(false);
const passwordOpen = ref(false);
/**
* 侧栏按查看权限码过滤;无权限的分组整组隐藏。
* 不再渲染写死全量 navGroups,避免「没权限仍看见菜单」。
*/
const visibleNavGroups = computed(() =>
navGroups
.map((g) => ({
...g,
items: g.items.filter((item) => canSeeInquiryPage(item.key, hasPermission)),
}))
.filter((g) => g.items.length > 0),
);
const pageTitle = computed(() => String(route.meta?.title || '友通达智能体运营后台'));
const crumb = computed(() => (route.meta?.crumb ? String(route.meta.crumb) : ''));
@@ -167,11 +183,15 @@
if (!t.closest('.admin-user-menu')) closeUserMenu();
}
onMounted(() => document.addEventListener('click', onDocClick));
onUnmounted(() => document.removeEventListener('click', onDocClick));
onMounted(() => {
document.addEventListener('click', onDocClick);
});
onUnmounted(() => {
document.removeEventListener('click', onDocClick);
});
return {
navGroups,
navGroups: visibleNavGroups,
themeToken,
route,
pageTitle,