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: "", usersort: '', routershow:true }, 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_USERSORT: (state, data) => { state.usersort = data; }, //某个id SET_INSPECTORID: (state, id) => { state.inspectorId = id; }, // 是否缓存路由 SET_ROUTWESHOW: (state, id) => { state.routershow = true; }, SET_ROUTWESHOWFALS: (state, id) => { state.routershow = false; }, }, actions: { //获取远程接口(路由、菜单、按钮权限) GetPermission({ commit, state }) { return new Promise((resolve, reject) => { getselfInfo() .then((res) => { if (res.message == '未知的token,请重新登录!' || res.status == 40002) { setTimeout(() => { // location.href = location.origin + "/login"; Message.error(res.message); }, 2000); } 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); console.log(789,infoData.userDto); let ismyobj = { "稽查一处": "沈阳市", "稽查二处": "大连市", "稽查三处": "鞍山市", "稽查四处": "抚顺市", "稽查五处": "本溪市", "稽查六处": "丹东市", "稽查七处": "锦州市", "稽查八处": "营口市", "稽查九处": "阜新市", "稽查十处": "辽阳市", "稽查十一处": "铁岭市", "稽查十二处": "朝阳市", "稽查十三处": "盘锦市", "稽查十四处": "葫芦岛市", } if (ismyobj[infoData.userDto.orgName]) { commit('SET_USERSORT', ismyobj[infoData.userDto.orgName]) } else { commit('SET_USERSORT', "") } //过滤出按钮权限字符 // let menuButton = infoData.menuButton.filter( // (item) => item.appCode == "JCYGL" // ); // commit("SET_PERMISSIONLIST", menuButton); //过滤菜单 if(infoData.userDto.userCode == "admin"){ let fileTreeOut = staticRouter.filter(item=>item.meta.title !='详情') fileTreeOut[0].meta.affix = true commit("SET_ROUTER", fileTreeOut); resolve(fileTreeOut.length > 0 ? fileTreeOut[0].path : []); return } let menuTree = infoData.menuTree.filter( (item) => item.appCode == "CPGL" ); let fileTreeOut = filterTree(menuTree[0].childMenuList, []); // let fileTreeOut = []; // menuTree[0].childMenuList.forEach((item) => { // staticRouter.forEach((router, index) => { // if (item.menuUrl == router.path) { // fileTreeOut.push(router); // } // }); // }); fileTreeOut[0].meta.affix = true 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) { console.log(router); result.push(router); } // if (item.childMenuList != null) { // filterTree(tree[index].childMenuList, result[index].children); // } }); }); return result; } export default selfPermission;