|
|
@@ -1,9 +1,39 @@
|
|
|
/**
|
|
|
* 登录状态管理
|
|
|
*/
|
|
|
-import { formatMenus, toTreeData, formatTreeData } from 'ele-admin';
|
|
|
+import {
|
|
|
+ formatMenus,
|
|
|
+ toTreeData,
|
|
|
+ formatTreeData,
|
|
|
+ menuToRoute
|
|
|
+} from 'ele-admin';
|
|
|
import { USER_MENUS } from '@/config/setting';
|
|
|
-import { getUserInfo } from '@/api/layout';
|
|
|
+import { getResourcesTree } from '@/api/layout';
|
|
|
+
|
|
|
+const formatRouter = (list) => {
|
|
|
+ let menuList = []; // menuType
|
|
|
+ let authorities = [];
|
|
|
+
|
|
|
+ const fn = (list) => {
|
|
|
+ let arr = [];
|
|
|
+ for (const p of list) {
|
|
|
+ if (p.menuType === 2) {
|
|
|
+ authorities.push(p);
|
|
|
+ } else {
|
|
|
+ if (p.children?.length) {
|
|
|
+ p.children = fn(p.children);
|
|
|
+ }
|
|
|
+ arr.push(p);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return arr;
|
|
|
+ };
|
|
|
+
|
|
|
+ menuList = fn(list);
|
|
|
+
|
|
|
+ return { menuList, authorities };
|
|
|
+};
|
|
|
|
|
|
export default {
|
|
|
namespaced: true,
|
|
|
@@ -40,7 +70,7 @@ export default {
|
|
|
* 请求用户信息、权限、角色、菜单
|
|
|
*/
|
|
|
// async fetchUserInfo({ commit }) {
|
|
|
- // const result = await getUserInfo().catch(() => {});
|
|
|
+ // const result = await getResourcesTree().catch(() => {});
|
|
|
// if (!result) {
|
|
|
// return {};
|
|
|
// }
|
|
|
@@ -70,19 +100,22 @@ export default {
|
|
|
// },
|
|
|
//动态路由
|
|
|
async fetchUserInfo ({ commit }) {
|
|
|
- const result = await getUserInfo().catch(() => {});
|
|
|
+ const result = await getResourcesTree().catch(() => {});
|
|
|
console.log('result--', result);
|
|
|
if (!result) {
|
|
|
return {};
|
|
|
}
|
|
|
- // 用户信息
|
|
|
- commit('setUserInfo', result);
|
|
|
+
|
|
|
+ const { menuList, authorities } = formatRouter(result);
|
|
|
+
|
|
|
// 用户权限
|
|
|
// const authorities =
|
|
|
// result.authorities
|
|
|
// ?.filter((d) => !!d.authority)
|
|
|
// ?.map((d) => d.authority) ?? [];
|
|
|
- // commit('setAuthorities', authorities);
|
|
|
+
|
|
|
+ console.log(menuList, authorities);
|
|
|
+ commit('setAuthorities', authorities);
|
|
|
// 用户角色
|
|
|
// const roles = result.roles?.map((d) => d.roleCode) ?? [];
|
|
|
// commit('setRoles', roles);
|
|
|
@@ -90,18 +123,29 @@ export default {
|
|
|
const { menus, homePath } = formatMenus(
|
|
|
USER_MENUS ??
|
|
|
toTreeData({
|
|
|
- data: result,
|
|
|
- // data: result?.filter((d) => d.menuType !== 2), 暂时不做按钮权限
|
|
|
+ data: menuList,
|
|
|
idField: 'id',
|
|
|
parentIdField: 'parentId'
|
|
|
})
|
|
|
);
|
|
|
|
|
|
- // console.log('menus--',menus)
|
|
|
+ const { menus: authoritiesRouter } = formatMenus(
|
|
|
+ USER_MENUS ??
|
|
|
+ toTreeData({
|
|
|
+ data: authorities.filter((i) => i.path),
|
|
|
+ idField: 'id',
|
|
|
+ parentIdField: 'parentId'
|
|
|
+ })
|
|
|
+ );
|
|
|
+ console.log('menus--', menus);
|
|
|
commit('setMenus', menus);
|
|
|
// const menus = result;
|
|
|
// const homePath = '/dashboard/workplace';
|
|
|
- return { menus, homePath };
|
|
|
+ return {
|
|
|
+ menus,
|
|
|
+ homePath,
|
|
|
+ authoritiesRouter
|
|
|
+ };
|
|
|
},
|
|
|
|
|
|
/**
|