uptada
This commit is contained in:
parent
e00c77ae0f
commit
558eec6013
@ -67,6 +67,10 @@ export default {
|
|||||||
const hasResourceManagement = routes.some(route => route.path === '/resourceManagement');
|
const hasResourceManagement = routes.some(route => route.path === '/resourceManagement');
|
||||||
console.log("是否包含订单管理:", hasOrderManagement);
|
console.log("是否包含订单管理:", hasOrderManagement);
|
||||||
console.log("是否包含资源管理:", hasResourceManagement);
|
console.log("是否包含资源管理:", hasResourceManagement);
|
||||||
|
|
||||||
|
// 检查用户类型和组织类型是否正确
|
||||||
|
console.log("当前用户类型:", this.userType);
|
||||||
|
console.log("当前组织类型:", this.orgType);
|
||||||
console.log("=== Sidebar 调试结束 ===");
|
console.log("=== Sidebar 调试结束 ===");
|
||||||
|
|
||||||
return routes;
|
return routes;
|
||||||
@ -90,6 +94,8 @@ export default {
|
|||||||
console.log("Sidebar mounted - 权限路由:", this.permissionRoutes);
|
console.log("Sidebar mounted - 权限路由:", this.permissionRoutes);
|
||||||
console.log("Sidebar mounted - 用户类型:", this.userType);
|
console.log("Sidebar mounted - 用户类型:", this.userType);
|
||||||
console.log("Sidebar mounted - 组织类型:", this.orgType);
|
console.log("Sidebar mounted - 组织类型:", this.orgType);
|
||||||
|
console.log("sessionStorage userType:", sessionStorage.getItem('userType'));
|
||||||
|
console.log("sessionStorage orgType:", sessionStorage.getItem('orgType'));
|
||||||
},
|
},
|
||||||
|
|
||||||
watch: {
|
watch: {
|
||||||
|
|||||||
@ -22,7 +22,7 @@ let ploady={
|
|||||||
start_date:'',
|
start_date:'',
|
||||||
end_date:''
|
end_date:''
|
||||||
}
|
}
|
||||||
reqSaleMoneyList(ploady)
|
// reqSaleMoneyList(ploady)
|
||||||
// import {saveApprovalInfo} from "@/api/finance/approvalList";
|
// import {saveApprovalInfo} from "@/api/finance/approvalList";
|
||||||
// saveApprovalInfo(JSON.stringify({
|
// saveApprovalInfo(JSON.stringify({
|
||||||
// "flag":"update",
|
// "flag":"update",
|
||||||
@ -98,20 +98,73 @@ Vue.use(Element, {
|
|||||||
//设置跳转页面时给页面的body属性设置滚动条
|
//设置跳转页面时给页面的body属性设置滚动条
|
||||||
var onOverflow = ["/shoppingManagement", "/supplierManagement"];
|
var onOverflow = ["/shoppingManagement", "/supplierManagement"];
|
||||||
|
|
||||||
router.afterEach((to, from, next) => {
|
// 修复:在路由守卫中恢复用户状态和重新生成路由
|
||||||
|
router.beforeEach(async (to, from, next) => {
|
||||||
|
// 清空面包屑状态的代码
|
||||||
|
// store.commit('tagsView/resetBreadcrumbState');
|
||||||
|
|
||||||
|
// 新增:如果已登录且有token,但Vuex状态丢失,从sessionStorage恢复
|
||||||
|
if (store.getters.token && (!store.getters.user || !store.getters.userType)) {
|
||||||
|
console.log("检测到状态丢失,从sessionStorage恢复用户状态");
|
||||||
|
|
||||||
|
const user = sessionStorage.getItem('user');
|
||||||
|
const auths = sessionStorage.getItem('auths');
|
||||||
|
const userType = sessionStorage.getItem('userType');
|
||||||
|
const orgType = sessionStorage.getItem('orgType');
|
||||||
|
|
||||||
|
if (user) {
|
||||||
|
store.commit('user/SET_USER', user);
|
||||||
|
}
|
||||||
|
if (auths) {
|
||||||
|
store.commit('user/SET_AUTHS', JSON.parse(auths));
|
||||||
|
}
|
||||||
|
if (userType) {
|
||||||
|
store.commit('user/SET_USER_TYPE', userType);
|
||||||
|
}
|
||||||
|
if (orgType) {
|
||||||
|
store.commit('user/SET_ORG_TYPE', parseInt(orgType));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 重新生成路由
|
||||||
|
try {
|
||||||
|
const accessRoutes = await store.dispatch('permission/generateRoutes', {
|
||||||
|
user: store.getters.user,
|
||||||
|
auths: store.getters.auths,
|
||||||
|
userType: store.getters.userType,
|
||||||
|
orgType: store.getters.orgType
|
||||||
|
});
|
||||||
|
|
||||||
|
// 重新添加路由
|
||||||
|
router.addRoutes(accessRoutes);
|
||||||
|
|
||||||
|
// 重定向到当前路由以确保路由更新
|
||||||
|
next({ ...to, replace: true });
|
||||||
|
return;
|
||||||
|
} catch (error) {
|
||||||
|
console.error('重新生成路由失败:', error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
onOverflow.forEach(element => {
|
onOverflow.forEach(element => {
|
||||||
if (to.path == element) {
|
if (to.path == element) {
|
||||||
document.querySelector("body").setAttribute("style", "overflow: auto !important;")
|
document.querySelector("body").setAttribute("style", "overflow: auto !important;")
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
next();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
window.addEventListener('beforeunload', function () {
|
||||||
|
// 清空面包屑状态的代码
|
||||||
|
store.commit('tagsView/resetBreadcrumbState');
|
||||||
|
});
|
||||||
|
|
||||||
Object.keys(filters).forEach(key => {
|
Object.keys(filters).forEach(key => {
|
||||||
Vue.filter(key, filters[key])
|
Vue.filter(key, filters[key])
|
||||||
})
|
})
|
||||||
|
|
||||||
Vue.config.productionTip = false
|
Vue.config.productionTip = false
|
||||||
|
|
||||||
|
|
||||||
new Vue({
|
new Vue({
|
||||||
el: '#app',
|
el: '#app',
|
||||||
router,
|
router,
|
||||||
|
|||||||
@ -8,11 +8,11 @@ const getters = {
|
|||||||
avatar: state => state.user.avatar,
|
avatar: state => state.user.avatar,
|
||||||
name: state => state.user.name,
|
name: state => state.user.name,
|
||||||
introduction: state => state.user.introduction,
|
introduction: state => state.user.introduction,
|
||||||
user: state => state.user.user,
|
user: state => state.user.user || sessionStorage.getItem('user') || '',
|
||||||
auths: state => state.user.auths,
|
auths: state => state.user.auths || JSON.parse(sessionStorage.getItem('auths') || '[]'),
|
||||||
requestCode: state => state.user.requestCode,
|
requestCode: state => state.user.requestCode,
|
||||||
permission_routes: state => state.permission.routes,
|
permission_routes: state => state.permission.routes,
|
||||||
userType: state => state.user.userType,
|
userType: state => state.user.userType || sessionStorage.getItem('userType') || '',
|
||||||
orgType: state => state.user.orgType, // 新增:组织类型getter
|
orgType: state => state.user.orgType || parseInt(sessionStorage.getItem('orgType')) || 0,
|
||||||
}
|
}
|
||||||
export default getters
|
export default getters
|
||||||
|
|||||||
@ -46,12 +46,12 @@ function addUserRoutes(routes, userType) {
|
|||||||
|
|
||||||
if (orderManagementRoute) {
|
if (orderManagementRoute) {
|
||||||
console.log("添加订单管理路由");
|
console.log("添加订单管理路由");
|
||||||
userRoutes.push(orderManagementRoute);
|
userRoutes.push(JSON.parse(JSON.stringify(orderManagementRoute))); // 深拷贝
|
||||||
}
|
}
|
||||||
|
|
||||||
if (resourceManagementRoute) {
|
if (resourceManagementRoute) {
|
||||||
console.log("添加资源管理路由");
|
console.log("添加资源管理路由");
|
||||||
userRoutes.push(resourceManagementRoute);
|
userRoutes.push(JSON.parse(JSON.stringify(resourceManagementRoute))); // 深拷贝
|
||||||
}
|
}
|
||||||
|
|
||||||
return userRoutes;
|
return userRoutes;
|
||||||
@ -113,15 +113,17 @@ const actions = {
|
|||||||
return new Promise((resolve) => {
|
return new Promise((resolve) => {
|
||||||
let accessedRoutes;
|
let accessedRoutes;
|
||||||
|
|
||||||
// 判断用户类型:org_type为2是客户,否则是管理员
|
// 从参数或sessionStorage中获取用户类型和组织类型
|
||||||
const userType = params.orgType == 2 ? 'user' : 'admin';
|
const userType = params.userType || sessionStorage.getItem('userType') || '';
|
||||||
console.log("用户类型:", userType, "orgType:", params.orgType);
|
const orgType = params.orgType || parseInt(sessionStorage.getItem('orgType')) || 0;
|
||||||
|
|
||||||
if (params.user.includes("admin") && params.orgType != 2) {
|
console.log("用户类型:", userType, "orgType:", orgType);
|
||||||
|
|
||||||
|
if (params.user && params.user.includes("admin") && orgType != 2) {
|
||||||
// 管理员:只显示超级管理员菜单
|
// 管理员:只显示超级管理员菜单
|
||||||
accessedRoutes = asyncRoutes.filter(item => item.path === '/superAdministrator');
|
accessedRoutes = asyncRoutes.filter(item => item.path === '/superAdministrator');
|
||||||
} else {
|
} else {
|
||||||
const auths = JSON.parse(JSON.stringify(params.auths));
|
const auths = params.auths ? JSON.parse(JSON.stringify(params.auths)) : [];
|
||||||
console.log("ACTION generateRoutes - auths:", auths);
|
console.log("ACTION generateRoutes - auths:", auths);
|
||||||
|
|
||||||
if (auths.length) {
|
if (auths.length) {
|
||||||
@ -144,7 +146,7 @@ const actions = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 新增:为普通用户添加订单管理和资源管理路由
|
// 新增:为普通用户添加订单管理和资源管理路由
|
||||||
if (userType === 'user') {
|
if (userType === 'user' || orgType == 2) {
|
||||||
console.log("为普通用户添加订单管理和资源管理路由");
|
console.log("为普通用户添加订单管理和资源管理路由");
|
||||||
const userSpecificRoutes = addUserRoutes(asyncRoutes, userType);
|
const userSpecificRoutes = addUserRoutes(asyncRoutes, userType);
|
||||||
|
|
||||||
|
|||||||
@ -7,23 +7,36 @@ import store from "@/store";
|
|||||||
import {myBalanceAPI} from "@/api/finance/customerRechargeManagement";
|
import {myBalanceAPI} from "@/api/finance/customerRechargeManagement";
|
||||||
import {testData} from "@/views/homePage/components/topBox/testData";
|
import {testData} from "@/views/homePage/components/topBox/testData";
|
||||||
|
|
||||||
|
// 从sessionStorage恢复状态
|
||||||
|
const getStoredState = () => {
|
||||||
|
return {
|
||||||
|
user: sessionStorage.getItem('user') || "",
|
||||||
|
auths: JSON.parse(sessionStorage.getItem('auths')) || [],
|
||||||
|
userType: sessionStorage.getItem('userType') || '',
|
||||||
|
orgType: parseInt(sessionStorage.getItem('orgType')) || '',
|
||||||
|
mybalance: sessionStorage.getItem('mybalance') || ''
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
const storedState = getStoredState();
|
||||||
|
|
||||||
const state = {
|
const state = {
|
||||||
token: getToken(),
|
token: getToken(),
|
||||||
name: "",
|
name: "",
|
||||||
avatar: "",
|
avatar: "",
|
||||||
introduction: "",
|
introduction: "",
|
||||||
//用户名称
|
//用户名称
|
||||||
user: "",
|
user: storedState.user,
|
||||||
//权限列表
|
//权限列表
|
||||||
auths: [],
|
auths: storedState.auths,
|
||||||
// 当前状态码
|
// 当前状态码
|
||||||
requestCode: 200,
|
requestCode: 200,
|
||||||
//客户余额
|
//客户余额
|
||||||
mybalance: '',
|
mybalance: storedState.mybalance,
|
||||||
// 新增:用户类型(admin/user)
|
// 新增:用户类型(admin/user)
|
||||||
userType: '',
|
userType: storedState.userType,
|
||||||
// 新增:组织类型
|
// 新增:组织类型
|
||||||
orgType: ''
|
orgType: storedState.orgType
|
||||||
};
|
};
|
||||||
|
|
||||||
const mutations = {
|
const mutations = {
|
||||||
@ -41,17 +54,18 @@ const mutations = {
|
|||||||
},
|
},
|
||||||
SET_AUTHS: (state, auths) => {
|
SET_AUTHS: (state, auths) => {
|
||||||
state.auths = auths;
|
state.auths = auths;
|
||||||
sessionStorage.setItem("auths", JSON.stringify(state.auths));
|
sessionStorage.setItem("auths", JSON.stringify(auths));
|
||||||
},
|
},
|
||||||
SET_USER: (state, user) => {
|
SET_USER: (state, user) => {
|
||||||
state.user = user;
|
state.user = user;
|
||||||
sessionStorage.setItem("user", state.user);
|
sessionStorage.setItem("user", user);
|
||||||
},
|
},
|
||||||
SET_REQUESTSTATE: (state, code) => {
|
SET_REQUESTSTATE: (state, code) => {
|
||||||
state.requestCode = code;
|
state.requestCode = code;
|
||||||
},
|
},
|
||||||
SETMYBANLANCE(state, mybalance) {
|
SETMYBANLANCE(state, mybalance) {
|
||||||
state.mybalance = mybalance
|
state.mybalance = mybalance;
|
||||||
|
sessionStorage.setItem('mybalance', mybalance);
|
||||||
},
|
},
|
||||||
// 新增:设置用户类型
|
// 新增:设置用户类型
|
||||||
SET_USER_TYPE: (state, userType) => {
|
SET_USER_TYPE: (state, userType) => {
|
||||||
@ -61,7 +75,7 @@ const mutations = {
|
|||||||
// 新增:设置组织类型
|
// 新增:设置组织类型
|
||||||
SET_ORG_TYPE: (state, orgType) => {
|
SET_ORG_TYPE: (state, orgType) => {
|
||||||
state.orgType = orgType;
|
state.orgType = orgType;
|
||||||
sessionStorage.setItem("orgType", orgType);
|
sessionStorage.setItem("orgType", orgType.toString());
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -71,12 +85,10 @@ const actions = {
|
|||||||
let result = await myBalanceAPI()
|
let result = await myBalanceAPI()
|
||||||
if (result.status) {
|
if (result.status) {
|
||||||
commit('SETMYBANLANCE', result.data)
|
commit('SETMYBANLANCE', result.data)
|
||||||
sessionStorage.setItem('mybalance', result.data)
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// user login
|
// user login
|
||||||
async login({commit}, userInfo) {
|
async login({commit}, userInfo) {
|
||||||
|
|
||||||
const {username, password, codeid, vcode} = userInfo;
|
const {username, password, codeid, vcode} = userInfo;
|
||||||
return new Promise(async (resolve, reject) => {
|
return new Promise(async (resolve, reject) => {
|
||||||
loginUserAPI(userInfo)
|
loginUserAPI(userInfo)
|
||||||
@ -105,7 +117,8 @@ const actions = {
|
|||||||
{
|
{
|
||||||
user: username,
|
user: username,
|
||||||
auths: data,
|
auths: data,
|
||||||
orgType: org_type // 传递 orgType 而不是 admin
|
userType: userType,
|
||||||
|
orgType: org_type
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
resetRouter();
|
resetRouter();
|
||||||
@ -126,47 +139,64 @@ const actions = {
|
|||||||
// get user info
|
// get user info
|
||||||
getInfo({commit, state}) {
|
getInfo({commit, state}) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
// getInfo(state.token).then(response => {
|
// 从sessionStorage恢复用户信息
|
||||||
// const { data } = response
|
const user = sessionStorage.getItem('user');
|
||||||
// if (!data) {
|
const auths = sessionStorage.getItem('auths');
|
||||||
// reject('Verification failed, please Login again.')
|
const userType = sessionStorage.getItem('userType');
|
||||||
// }
|
const orgType = sessionStorage.getItem('orgType');
|
||||||
// const { roles, name, avatar, introduction } = data
|
|
||||||
// // roles must be a non-empty array
|
if (user) {
|
||||||
// if (!roles || roles.length <= 0) {
|
commit("SET_USER", user);
|
||||||
// reject('getInfo: roles must be a non-null array!')
|
}
|
||||||
// }
|
if (auths) {
|
||||||
// commit('SET_ROLES', roles)
|
commit("SET_AUTHS", JSON.parse(auths));
|
||||||
// commit('SET_NAME', name)
|
}
|
||||||
// commit('SET_AVATAR', avatar)
|
if (userType) {
|
||||||
// commit('SET_INTRODUCTION', introduction)
|
commit("SET_USER_TYPE", userType);
|
||||||
// }).catch(error => {
|
}
|
||||||
// reject(error)
|
if (orgType) {
|
||||||
// })
|
commit("SET_ORG_TYPE", parseInt(orgType));
|
||||||
|
}
|
||||||
|
|
||||||
|
resolve({
|
||||||
|
user: state.user,
|
||||||
|
auths: state.auths,
|
||||||
|
userType: state.userType,
|
||||||
|
orgType: state.orgType
|
||||||
|
});
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
// user logout
|
// user logout
|
||||||
logout({commit, state, dispatch}) {
|
logout({commit, state, dispatch}) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
logout(state.token)
|
// logout(state.token)
|
||||||
.then(() => {
|
// .then(() => {
|
||||||
commit("SET_TOKEN", "");
|
commit("SET_TOKEN", "");
|
||||||
commit("SET_ROLES", []);
|
commit("SET_ROLES", []);
|
||||||
commit("SET_USER_TYPE", ""); // 新增:清除用户类型
|
commit("SET_USER_TYPE", ""); // 新增:清除用户类型
|
||||||
commit("SET_ORG_TYPE", ""); // 新增:清除组织类型
|
commit("SET_ORG_TYPE", ""); // 新增:清除组织类型
|
||||||
|
commit("SET_USER", "");
|
||||||
|
commit("SET_AUTHS", []);
|
||||||
removeToken();
|
removeToken();
|
||||||
resetRouter();
|
resetRouter();
|
||||||
|
|
||||||
|
// 清除sessionStorage
|
||||||
|
sessionStorage.removeItem('user');
|
||||||
|
sessionStorage.removeItem('auths');
|
||||||
|
sessionStorage.removeItem('userType');
|
||||||
|
sessionStorage.removeItem('orgType');
|
||||||
|
sessionStorage.removeItem('mybalance');
|
||||||
|
|
||||||
// reset visited views and cached views
|
// reset visited views and cached views
|
||||||
// to fixed https://github.com/PanJiaChen/vue-element-admin/issues/2485
|
// to fixed https://github.com/PanJiaChen/vue-element-admin/issues/2485
|
||||||
dispatch("tagsView/delAllViews", null, {root: true});
|
dispatch("tagsView/delAllViews", null, {root: true});
|
||||||
|
|
||||||
resolve();
|
resolve();
|
||||||
})
|
// })
|
||||||
.catch((error) => {
|
// .catch((error) => {
|
||||||
reject(error);
|
// reject(error);
|
||||||
});
|
// });
|
||||||
});
|
});
|
||||||
|
|
||||||
},
|
},
|
||||||
@ -178,7 +208,15 @@ const actions = {
|
|||||||
commit("SET_ROLES", []);
|
commit("SET_ROLES", []);
|
||||||
commit("SET_USER_TYPE", ""); // 新增:清除用户类型
|
commit("SET_USER_TYPE", ""); // 新增:清除用户类型
|
||||||
commit("SET_ORG_TYPE", ""); // 新增:清除组织类型
|
commit("SET_ORG_TYPE", ""); // 新增:清除组织类型
|
||||||
|
commit("SET_USER", "");
|
||||||
|
commit("SET_AUTHS", []);
|
||||||
removeToken();
|
removeToken();
|
||||||
|
|
||||||
|
// 清除sessionStorage
|
||||||
|
sessionStorage.removeItem('user');
|
||||||
|
sessionStorage.removeItem('auths');
|
||||||
|
sessionStorage.removeItem('userType');
|
||||||
|
sessionStorage.removeItem('orgType');
|
||||||
resolve();
|
resolve();
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user