更新oa代码
This commit is contained in:
+8
-17
@@ -71,26 +71,16 @@ export async function loadAndAddDynamicRoutes() {
|
||||
// 创建加载 Promise
|
||||
routesLoadingPromise = (async () => {
|
||||
try {
|
||||
// 获取用户信息,判断登录类型
|
||||
const userInfo = JSON.parse(localStorage.getItem('userInfo') || '{}');
|
||||
const loginType = userInfo.type; // "user" 或 "employee"
|
||||
const roleId = userInfo.role; // 角色ID
|
||||
// 使用 menu store 获取菜单数据(这样可以复用缓存,避免重复请求)
|
||||
const { useMenuStore } = await import("@/stores/menu");
|
||||
const menuStore = useMenuStore();
|
||||
|
||||
// 根据登录类型选择不同的菜单接口
|
||||
const { getAllMenus, getTenantMenus } = await import("@/api/menu");
|
||||
let res;
|
||||
// 从 store 获取菜单(如果已加载会直接返回缓存,否则会请求一次)
|
||||
const menuData = await menuStore.fetchMenus();
|
||||
|
||||
if (loginType === "employee" && roleId) {
|
||||
// 员工登录,使用getTenantMenus接口
|
||||
res = await getTenantMenus(roleId);
|
||||
} else {
|
||||
// 用户登录,使用getAllMenus接口
|
||||
res = await getAllMenus();
|
||||
}
|
||||
|
||||
if (res && res.success && res.data) {
|
||||
if (menuData && menuData.length > 0) {
|
||||
// 添加动态路由
|
||||
addDynamicRoutes(res.data);
|
||||
addDynamicRoutes(menuData);
|
||||
dynamicRoutesAdded = true;
|
||||
routesLoadingPromise = null;
|
||||
return Promise.resolve();
|
||||
@@ -100,6 +90,7 @@ export async function loadAndAddDynamicRoutes() {
|
||||
return Promise.resolve();
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('加载动态路由失败:', error);
|
||||
// 即使出错也标记为已加载,避免无限重试
|
||||
dynamicRoutesAdded = true;
|
||||
routesLoadingPromise = null;
|
||||
|
||||
Reference in New Issue
Block a user