fix: missing module

parent fb59c181
...@@ -15,34 +15,40 @@ import { ElMessage } from "element-plus"; ...@@ -15,34 +15,40 @@ import { ElMessage } from "element-plus";
// 处理路由权限 // 处理路由权限
router.beforeResolve(async (to, from, next) => { router.beforeResolve(async (to, from, next) => {
if (!to.meta.requireAuth) { if (!to.meta.requireAuth) {
next(); next();
return true; return true;
} }
let isDefault = window.localStorage.getItem('isDefault'); let isDefault = window.localStorage.getItem("isDefault");
if (!store.state.permissions && isDefault == 1) { if (!store.state.permissions && isDefault == 1) {
const { status, user } = await fetchCurrentUser(); const { status, user } = await fetchCurrentUser();
if (status === 'success') { if (status === "success") {
store.commit('updateUserInfo', user); store.commit("updateUserInfo", user);
console.log('updateUserInfo=====', user) console.log("updateUserInfo=====", user);
await store.dispatch('updateUserPermission', { email: user.email }) await store.dispatch("updateUserPermission", { email: user.email });
} else { } else {
redirectToLogin(); redirectToLogin();
return ElMessage("您没有权限"); return ElMessage("您没有权限");
} }
} }
// .......
if (isDefault === "2") {
await store.dispatch("updateUserPermission", {
email: localStorage.getItem("_user_email")
});
}
if (!checkPathAuth(to.path)) { if (!checkPathAuth(to.path)) {
redirectToLogin(); redirectToLogin();
return ElMessage("您没有权限"); return ElMessage("您没有权限");
// router.push({name: 'Forbidden'}) // router.push({name: 'Forbidden'})
} else { } else {
next(); next();
return true; return true;
} }
}) });
createApp(App) createApp(App)
.use(router) .use(router)
......
...@@ -32,6 +32,8 @@ export default { ...@@ -32,6 +32,8 @@ export default {
storage['isDefault'] = 1; storage['isDefault'] = 1;
return true return true
} else if(+res.code === 0){ } else if(+res.code === 0){
// TODO: refactor to pass directly
localStorage.setItem("_user_email", payload.email)
storage['isDefault'] = 2; storage['isDefault'] = 2;
if(!getCookie('username')) setCookie('username', payload.email, 16); if(!getCookie('username')) setCookie('username', payload.email, 16);
return true return true
......
// 包含权限相关的工具方法,注意要在vue的生命周期中调用这些方法,否则会有获取不到权限的问题 // 包含权限相关的工具方法,注意要在vue的生命周期中调用这些方法,否则会有获取不到权限的问题
import store from '../store' import store from "../store";
import { PATH_PERMISSION_NAME } from '../config/pageconfig' import { PATH_PERMISSION_NAME } from "../config/pageconfig";
function getPermissionObj () { function getPermissionObj() {
// 支持到二级权限 // 支持到二级权限
const permissions = store.state.permissions || []; const permissions = store.state.user.permissions || [];
const authObj = {}; const authObj = {};
permissions.forEach(ele => { permissions.forEach(ele => {
authObj[ele.name] = {}; authObj[ele.name] = {};
if (ele.sub_permissions) { if (ele.sub_permissions) {
ele.sub_permissions.forEach(sp => { ele.sub_permissions.forEach(sp => {
authObj[ele.name][sp.name] = true; authObj[ele.name][sp.name] = true;
}) });
} }
}) });
return authObj; return authObj;
} }
...@@ -23,11 +23,11 @@ function getPermissionObj () { ...@@ -23,11 +23,11 @@ function getPermissionObj () {
* @param {*} path * @param {*} path
* @returns * @returns
*/ */
export function checkPathAuth (path) { export function checkPathAuth(path) {
const authObj = getPermissionObj(); const authObj = getPermissionObj();
if (path in PATH_PERMISSION_NAME) { if (path in PATH_PERMISSION_NAME) {
const authArr = PATH_PERMISSION_NAME[path].split('.'); const authArr = PATH_PERMISSION_NAME[path].split(".");
const [p, subP] = authArr; const [p, subP] = authArr;
if (p && subP) { if (p && subP) {
return !!authObj[p][subP]; return !!authObj[p][subP];
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment