import storage from './storage'; // 导入 storage 工具模块,用于操作本地存储 import menu from './menu'; // 导入 menu 工具模块,用于获取菜单数据 /** * 是否有权限 * @param {*} tableName 表名,用于匹配菜单中的表名 * @param {*} key 权限按钮名称,用于检查用户是否有该权限 */ export function isAuth(tableName, key) { // 定义 isAuth 函数,用于检查用户是否有指定权限 let role = storage.get("role"); // 从本地存储中获取当前用户角色 if (!role) { // 如果未获取到角色 role = '管理员'; // 默认设置为“管理员” } let menus = menu.list(); // 获取菜单列表数据 for (let i = 0; i < menus.length; i++) { // 遍历菜单列表 if (menus[i].roleName == role) { // 如果当前菜单的角色与用户角色匹配 for (let j = 0; j < menus[i].backMenu.length; j++) { // 遍历后台菜单 for (let k = 0; k < menus[i].backMenu[j].child.length; k++) { // 遍历子菜单 if (tableName == menus[i].backMenu[j].child[k].tableName) { // 如果表名匹配 let buttons = menus[i].backMenu[j].child[k].buttons.join(','); // 将按钮权限数组转为逗号分隔的字符串 return buttons.indexOf(key) !== -1 || false; // 检查权限按钮是否存在于按钮权限字符串中,返回布尔值 } } } } } // 注释掉的代码部分:另一种实现方式,逻辑类似 // for(let i=0;i