You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
89 lines
2.4 KiB
89 lines
2.4 KiB
2 years ago
|
import { getselfInfo } from "@/api/external";
|
||
|
import { Message } from "element-ui";
|
||
|
import { getcarid } from "@/api/jcy";
|
||
|
import router from "@/router";
|
||
|
let staticRouter = router.options.routes.filter((item) => item.isDiy == true)[0]
|
||
|
.children;
|
||
|
const selfPermission = {
|
||
|
state: {
|
||
|
token: localStorage.getItem("MSSM-LIAONING__TOKEN"),
|
||
|
permissionList: [],
|
||
|
routerList: [],
|
||
|
userData: {},
|
||
|
inspectorId: "",
|
||
|
},
|
||
|
|
||
|
mutations: {
|
||
|
SET_PERMISSIONLIST: (state, permissions) => {
|
||
|
permissions.forEach((item) => {
|
||
|
state.permissionList.push(item.menuPerms);
|
||
|
});
|
||
|
},
|
||
|
SET_ROUTER: (state, router) => {
|
||
|
state.routerList = router;
|
||
|
},
|
||
|
SET_USERDATA: (state, data) => {
|
||
|
state.userData = data;
|
||
|
},
|
||
|
SET_INSPECTORID: (state, id) => {
|
||
|
state.inspectorId = id;
|
||
|
},
|
||
|
},
|
||
|
actions: {
|
||
|
//获取远程接口(路由、菜单、按钮权限)
|
||
|
GetPermission({ commit, state }) {
|
||
|
return new Promise((resolve, reject) => {
|
||
|
getselfInfo()
|
||
|
.then((res) => {
|
||
|
let infoData = res.result;
|
||
|
|
||
|
let query = {
|
||
|
id: infoData.userDto.cardId,
|
||
|
};
|
||
|
getcarid(query).then((res) => {
|
||
|
commit(
|
||
|
"SET_INSPECTORID",
|
||
|
res.result.length > 0 ? res.result[0].id : null
|
||
|
);
|
||
|
});
|
||
|
|
||
|
//存储用户信息
|
||
|
commit("SET_USERDATA", infoData.userDto);
|
||
|
//过滤出按钮权限字符
|
||
|
let menuButton = infoData.menuButton.filter(
|
||
|
(item) => item.appCode == "JCYGL"
|
||
|
);
|
||
|
commit("SET_PERMISSIONLIST", menuButton);
|
||
|
//过滤菜单
|
||
|
let menuTree = infoData.menuTree.filter(
|
||
|
(item) => item.appCode == "JCYGL"
|
||
|
);
|
||
|
let fileTreeOut = filterTree(menuTree[0].childMenuList, []);
|
||
|
commit("SET_ROUTER", fileTreeOut);
|
||
|
|
||
|
resolve(fileTreeOut.length > 0 ? fileTreeOut[0].path : []);
|
||
|
})
|
||
|
.catch((error) => {
|
||
|
reject(error);
|
||
|
});
|
||
|
});
|
||
|
},
|
||
|
},
|
||
|
};
|
||
|
|
||
|
function filterTree(tree, result) {
|
||
|
tree.forEach((item) => {
|
||
|
staticRouter.forEach((router, index) => {
|
||
|
if (item.menuUrl == router.path) {
|
||
|
result.push(router);
|
||
|
}
|
||
|
if (item.childMenuList != null) {
|
||
|
filterTree(tree[index].childMenuList, result[index].children);
|
||
|
}
|
||
|
});
|
||
|
});
|
||
|
return result;
|
||
|
}
|
||
|
|
||
|
export default selfPermission;
|