|
|
@@ -1,12 +1,14 @@
|
|
|
import { defHttp } from '/@/utils/http/axios';
|
|
|
-import { getMenuListResultModel, EnfMineTreeItem, RouteItem } from './model/menuModel';
|
|
|
+import { getMenuListResultModel, EnfMineTreeItem } from './model/menuModel';
|
|
|
import { useUserStoreWithOut } from '@/store/modules/user';
|
|
|
import { setAuthCache } from '@/utils/auth';
|
|
|
import { TOKEN_KEY } from '@/enums/cacheEnum';
|
|
|
import { router } from '@/router';
|
|
|
import { PageEnum } from '@/enums/pageEnum';
|
|
|
import { getFormattedText } from '/@/components/Configurable/hooks/helper';
|
|
|
-import { listToTree } from '/@/utils/helper/treeHelper';
|
|
|
+// import { listToTree } from '/@/utils/helper/treeHelper';
|
|
|
+import { MineDepartment, useMineDepartmentStore } from '/@/store/modules/mine';
|
|
|
+import { AppRouteRecordRaw } from '/@/router/types';
|
|
|
|
|
|
enum Api {
|
|
|
GetMenuList = '/sys/permission/getUserPermissionByToken',
|
|
|
@@ -17,24 +19,26 @@ enum Api {
|
|
|
// SwitchVue3Menu = '/sys/switchVue3Menu',
|
|
|
}
|
|
|
|
|
|
-const generateStaticSealedMonitorRoute = (route: RouteItem, item: EnfMineTreeItem) => {
|
|
|
- const res: RouteItem = {
|
|
|
- component: route.component,
|
|
|
- path: getFormattedText(item, route.path),
|
|
|
- name: getFormattedText(item, route.name || ''),
|
|
|
- meta: {
|
|
|
- ...route.meta,
|
|
|
- title: getFormattedText(item, route.meta.title),
|
|
|
- hideMenu: false,
|
|
|
- // orderNo: parseInt(getFormattedText(item, String(route.meta.orderNo))),
|
|
|
- },
|
|
|
- };
|
|
|
+const generateStaticSealedMonitorRoute = (route: AppRouteRecordRaw, items: MineDepartment[]) => {
|
|
|
+ return items.map((item) => {
|
|
|
+ const res: AppRouteRecordRaw = {
|
|
|
+ component: route.component,
|
|
|
+ path: getFormattedText(item, route.path),
|
|
|
+ name: getFormattedText(item, route.name || ''),
|
|
|
+ meta: {
|
|
|
+ ...route.meta,
|
|
|
+ title: getFormattedText(item, route.meta.title),
|
|
|
+ hideMenu: false,
|
|
|
+ },
|
|
|
+ };
|
|
|
+ const [__, LEAF_LEVEL_ORG, ___] = item.memoDesc;
|
|
|
|
|
|
- if (item.childDepart) {
|
|
|
- res.children = item.childDepart.map((child) => generateStaticSealedMonitorRoute(route, child));
|
|
|
- }
|
|
|
+ if (item.orgType !== LEAF_LEVEL_ORG && item.childDepart.length) {
|
|
|
+ res.children = generateStaticSealedMonitorRoute(route, item.childDepart);
|
|
|
+ }
|
|
|
|
|
|
- return res;
|
|
|
+ return res;
|
|
|
+ });
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
@@ -42,17 +46,8 @@ const generateStaticSealedMonitorRoute = (route: RouteItem, item: EnfMineTreeIte
|
|
|
*/
|
|
|
|
|
|
export const getMenuList: () => Promise<getMenuListResultModel> = () => {
|
|
|
- return Promise.all([
|
|
|
- defHttp.get<getMenuListResultModel>({ url: Api.GetMenuList }),
|
|
|
- defHttp.get({
|
|
|
- url: Api.getEnfMineTreeData,
|
|
|
- }),
|
|
|
- ]).then(([res, raw]) => {
|
|
|
- const tree = listToTree(raw, {
|
|
|
- id: 'id',
|
|
|
- pid: 'parentId',
|
|
|
- children: 'childDepart',
|
|
|
- });
|
|
|
+ const mineStore = useMineDepartmentStore();
|
|
|
+ return Promise.all([defHttp.get<getMenuListResultModel>({ url: Api.GetMenuList }), mineStore.fetchDepartTree()]).then(([res]) => {
|
|
|
return {
|
|
|
allAuth: res.allAuth || [],
|
|
|
auth: res.auth || [],
|
|
|
@@ -61,12 +56,9 @@ export const getMenuList: () => Promise<getMenuListResultModel> = () => {
|
|
|
menu: __STATIC_ROUTES__.map((ele) => {
|
|
|
if (ele.children && ele.children.length && ele.meta?.generation) {
|
|
|
const template = ele.children[0];
|
|
|
- const routes = tree.map((d) => {
|
|
|
- const route = generateStaticSealedMonitorRoute(template, d);
|
|
|
- // route.meta.hideMenu = route.children?.length === 0;
|
|
|
- return route;
|
|
|
- });
|
|
|
- ele.children.push(...routes);
|
|
|
+ const routes = generateStaticSealedMonitorRoute(template, mineStore.getDepartTree);
|
|
|
+
|
|
|
+ ele.children = routes;
|
|
|
}
|
|
|
|
|
|
return ele;
|
|
|
@@ -93,6 +85,7 @@ export function getBackMenuAndPerms() {
|
|
|
},
|
|
|
});
|
|
|
}
|
|
|
+ throw e;
|
|
|
});
|
|
|
}
|
|
|
|
|
|
@@ -106,10 +99,5 @@ export function getBackMenuAndPerms() {
|
|
|
// };
|
|
|
|
|
|
export function getEnfMineTree() {
|
|
|
- return defHttp.get<EnfMineTreeItem[]>(
|
|
|
- { url: Api.getEnfMineTreeData }
|
|
|
- // {
|
|
|
- // isTransformResponse: false,
|
|
|
- // }
|
|
|
- );
|
|
|
+ return defHttp.get<EnfMineTreeItem[]>({ url: Api.getEnfMineTreeData });
|
|
|
}
|