fix customer tab

This commit is contained in:
Timi
2026-08-23 13:08:05 +08:00
parent 2c018cfaa6
commit 198d1a950c
+17 -5
View File
@@ -135,27 +135,39 @@ type TabItem = {
value: string; value: string;
icon: string; icon: string;
text: string; text: string;
permission?: string; permission?: string | string[];
permissionMode?: "and" | "or";
}; };
const tabVal = ref(route.path); const tabVal = ref(route.path);
const tabList: TabItem[] = [ const tabList: TabItem[] = [
{ value: "/customers", icon: "usergroup", text: "客户" }, {
value: "/customers",
icon: "usergroup",
text: "客户",
permission: [permissionCodes.customer.create, permissionCodes.eventRecord.create]
},
{ value: "/store", icon: "shop-3", text: "门店", permission: permissionCodes.stat.read }, { value: "/store", icon: "shop-3", text: "门店", permission: permissionCodes.stat.read },
{ value: "/management", icon: "setting-1", text: "管理" } { value: "/management", icon: "setting-1", text: "管理" }
]; ];
const list = computed(() => tabList.filter(item => !item.permission || userStore.hasPermissions(item.permission))); const list = computed(() => tabList.filter(item => !item.permission || userStore.hasPermissions(item.permission, item.permissionMode)));
watch(() => route.path, (newPath: string) => { watch(() => route.path, (newPath: string) => {
tabVal.value = resolveTabValue(newPath); tabVal.value = resolveTabValue(newPath);
}, { immediate: true }); }, { immediate: true });
watch(list, () => { async function syncVisibleTab(): Promise<void> {
const visiblePath = resolveVisibleTabValue(route.path); const visiblePath = resolveVisibleTabValue(route.path);
if (tabVal.value !== visiblePath) { if (tabVal.value !== visiblePath) {
tabVal.value = visiblePath; tabVal.value = visiblePath;
} }
}, { immediate: true });
if (route.path === "/customers" && visiblePath !== "/customers") {
await router.replace(visiblePath);
}
}
watch(list, syncVisibleTab, { immediate: true });
function resolveTabValue(path: string): string { function resolveTabValue(path: string): string {
if (path.startsWith("/customers")) { if (path.startsWith("/customers")) {