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.
LiaoNingDangAn/src/store/modules/myselfPermission.js

151 lines
4.7 KiB

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);
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].children[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].children[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) {
result.push(router);
}
// if (item.childMenuList != null) {
// filterTree(tree[index].childMenuList, result[index].children);
// }
});
});
return result;
}
export default selfPermission;