|
|
@@ -17,12 +17,24 @@ let userId = route.query.userId;
|
|
|
onMounted(async () => {
|
|
|
const token = route.query.token
|
|
|
const targetUrl = route.query.targetUrl ? route.query.targetUrl : '/home';
|
|
|
+
|
|
|
+ // 先从 session 获取保存的角色
|
|
|
+ let savedRole = null;
|
|
|
+
|
|
|
if (!token) {
|
|
|
const { data } = await VE_API.system.devLogin({ userId: userId });
|
|
|
store.dispatch(`app/${SET_TOKEN}`, data.token);
|
|
|
store.dispatch(`app/${SET_USER_ROLES}`, data.roles);
|
|
|
- // 如果 roles 中包含 2,赋值 2,否则赋值 0
|
|
|
- const curRole = Array.isArray(data.roles) && data.roles.includes(2) ? 2 : 0;
|
|
|
+
|
|
|
+ const sessionRes = await VE_API.mine.getSessionStore({ key: "cur_role" });
|
|
|
+ if (sessionRes && sessionRes.data) {
|
|
|
+ savedRole = sessionRes.data.val;
|
|
|
+ }
|
|
|
+ // 优先使用保存的角色,如果保存的角色在 roles 中,则使用保存的角色,否则如果 roles 中包含 2,赋值 2,否则赋值 0
|
|
|
+ let curRole = 0;
|
|
|
+ if (savedRole !== null && Array.isArray(data.roles) && data.roles.includes(savedRole)) {
|
|
|
+ curRole = savedRole;
|
|
|
+ }
|
|
|
store.dispatch(`app/${SET_USER_CUR_ROLE}`, curRole);
|
|
|
localStorage.setItem("localUserInfo", JSON.stringify(data));
|
|
|
}
|
|
|
@@ -34,8 +46,16 @@ onMounted(async () => {
|
|
|
if(route.query.roles){
|
|
|
const roles = JSON.parse(route.query.roles);
|
|
|
store.dispatch(`app/${SET_USER_ROLES}`, roles);
|
|
|
- // 如果 roles 中包含 2,赋值 2,否则赋值 0
|
|
|
- const curRole = Array.isArray(roles) && roles.includes(2) ? 2 : 0;
|
|
|
+
|
|
|
+ const sessionRes = await VE_API.mine.getSessionStore({ key: "cur_role" });
|
|
|
+ if (sessionRes && sessionRes.data) {
|
|
|
+ savedRole = sessionRes.data.val;
|
|
|
+ }
|
|
|
+ // 优先使用保存的角色,如果保存的角色在 roles 中,则使用保存的角色,否则如果 roles 中包含 2,赋值 2,否则赋值 0
|
|
|
+ let curRole = 0;
|
|
|
+ if (savedRole !== null && Array.isArray(roles) && roles.includes(savedRole)) {
|
|
|
+ curRole = savedRole;
|
|
|
+ }
|
|
|
store.dispatch(`app/${SET_USER_CUR_ROLE}`, curRole);
|
|
|
}
|
|
|
await getFarmList();
|