Explorar el Código

角色切换 重新获取token

2213980799@qq.com hace 1 año
padre
commit
d1c7239353

+ 11 - 0
src/api/layout/index.js

@@ -21,6 +21,17 @@ export async function updatePassword (data) {
   }
   }
   return Promise.reject(new Error(res.data.message));
   return Promise.reject(new Error(res.data.message));
 }
 }
+/**
+ * 角色切换 重新获取token
+ */
+ export async function changeRole(data) {
+  const res = await request.post('/main/user/changeRole',data);
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+
 
 
 /**
 /**
  * 查询未读通知
  * 查询未读通知

+ 3 - 4
src/api/login/index.js

@@ -4,7 +4,7 @@ import { setToken } from '@/utils/token-util';
 /**
 /**
  * 登录
  * 登录
  */
  */
-export async function login (data) {
+export async function login(data) {
   const res = await request.post('/main/user/login', data);
   const res = await request.post('/main/user/login', data);
   if (res.data.code == 0) {
   if (res.data.code == 0) {
     setToken(res.data.data.token, data.remember);
     setToken(res.data.data.token, data.remember);
@@ -15,7 +15,7 @@ export async function login (data) {
 /**
 /**
  * 获取用户信息
  * 获取用户信息
  */
  */
-export async function getLoginUser (data) {
+export async function getLoginUser(data) {
   const res = await request.get('/system/account/getLoginUser', data);
   const res = await request.get('/system/account/getLoginUser', data);
   if (res.data.code == 0) {
   if (res.data.code == 0) {
     return res.data.data;
     return res.data.data;
@@ -26,7 +26,7 @@ export async function getLoginUser (data) {
 /**
 /**
  * 获取验证码
  * 获取验证码
  */
  */
-export async function getCaptcha () {
+export async function getCaptcha() {
   const res = await request.get('/captcha');
   const res = await request.get('/captcha');
   if (res.data.code === 0) {
   if (res.data.code === 0) {
     return res.data.data;
     return res.data.data;
@@ -35,4 +35,3 @@ export async function getCaptcha () {
 }
 }
 
 
 
 
-

+ 1 - 0
src/layout/components/header-tools.vue

@@ -86,6 +86,7 @@ import SettingDrawer from './setting-drawer.vue';
 import I18nIcon from './i18n-icon.vue';
 import I18nIcon from './i18n-icon.vue';
 import { logout } from '@/utils/page-tab-util';
 import { logout } from '@/utils/page-tab-util';
 import { userLogout } from '@/api/system/user';
 import { userLogout } from '@/api/system/user';
+
 import router from '@/router/index';
 import router from '@/router/index';
 
 
 export default {
 export default {

+ 10 - 5
src/router/index.js

@@ -6,10 +6,11 @@ import NProgress from 'nprogress';
 import VueRouter from 'vue-router';
 import VueRouter from 'vue-router';
 import { WHITE_LIST, REDIRECT_PATH, LAYOUT_PATH } from '@/config/setting';
 import { WHITE_LIST, REDIRECT_PATH, LAYOUT_PATH } from '@/config/setting';
 import store from '@/store';
 import store from '@/store';
-import { getToken } from '@/utils/token-util';
+import { getToken, setToken } from '@/utils/token-util';
 import { routes, getMenuRoutes } from './routes';
 import { routes, getMenuRoutes } from './routes';
 import { SYSTEM_NAME } from '@/config/setting';
 import { SYSTEM_NAME } from '@/config/setting';
 import { getLoginUser } from '@/api/login';
 import { getLoginUser } from '@/api/login';
+import { changeRole } from '@/api/layout/index';
 
 
 Vue.use(VueRouter);
 Vue.use(VueRouter);
 
 
@@ -117,14 +118,18 @@ router.afterEach((to) => {
   }
   }
 });
 });
 router.roleChange = ({ menus, homePath, authoritiesRouter }) => {
 router.roleChange = ({ menus, homePath, authoritiesRouter }) => {
-  if (menus&&menus.length > 0) {
+  if (menus && menus.length > 0) {
     router.addRoute(
     router.addRoute(
       getMenuRoutes([...menus, ...authoritiesRouter], homePath)
       getMenuRoutes([...menus, ...authoritiesRouter], homePath)
     );
     );
+
     router.push({
     router.push({
-      path:menus[0].redirect||menus[0].path,
-    }).then(res=>{
-      window.location.reload()
+      path: menus[0].redirect || menus[0].path,
+    }).then(res => {
+      changeRole({ groupId: store.state.user.info.currentGroupId, roleId: store.state.user.info.currentRoleId }).then(res => {
+        setToken(res)
+        window.location.reload()
+      })
 
 
     })
     })
   }
   }

+ 0 - 5
src/utils/request.js

@@ -35,11 +35,6 @@ service.interceptors.request.use(
     if (token && config.headers) {
     if (token && config.headers) {
       config.headers.common[TOKEN_HEADER_NAME] = token;
       config.headers.common[TOKEN_HEADER_NAME] = token;
     }
     }
-    if(store?.state?.user?.info){
-      config.headers.common['groupId'] = store?.state?.user?.info.currentGroupId;
-      config.headers.common['roleId'] = store?.state?.user?.info.currentRoleId;
-
-    }
     return config;
     return config;
   },
   },
   (error) => {
   (error) => {