预见测

This commit is contained in:
sjl
2025-08-08 13:18:01 +08:00
parent 88f1876ef0
commit 5cd8fea60c
14 changed files with 1142 additions and 149 deletions

View File

@@ -49,11 +49,12 @@ export const useAuthStore = defineStore({
const modeStore = useModeStore()
const { data: menuData } = await getAuthMenuListApi();
let data = menuData; // 新增变量接收并操作
if(modeStore.currentMode === '比对式'){
data = filterMenuTree(data);
}
this.authMenuList = data;
// 根据不同模式过滤菜单
const filteredMenu = modeStore.currentMode === '比对式'
? filterMenuByExcludedNames(menuData, ['testSource', 'testScript', 'controlSource'])
: filterMenuByExcludedNames(menuData, ['standardDevice']);
this.authMenuList = filteredMenu;
},
// Set RouteName
@@ -84,14 +85,19 @@ export const useAuthStore = defineStore({
});
// 工具函数:递归过滤掉 name == 'test' 的菜单项
function filterMenuTree(menuList: any[]) {
/**
* 通用菜单过滤函数
* @param menuList 菜单列表
* @param excludedNames 需要排除的菜单名称数组
* @returns 过滤后的菜单列表
*/
function filterMenuByExcludedNames(menuList: any[], excludedNames: string[]): any[] {
return menuList.filter(menu => {
// 如果当前项有 children递归处理子项
if (menu.children && menu.children.length > 0) {
menu.children = filterMenuTree(menu.children);
menu.children = filterMenuByExcludedNames(menu.children, excludedNames);
}
// 过滤掉 name 是 testSource、testScript 或 controlSource 的菜单项
return !['testSource', 'testScript', 'controlSource'].includes(menu.name);
// 过滤掉在排除列表中的菜单项
return !excludedNames.includes(menu.name);
});
}