chen.cheng 2 місяців тому
батько
коміт
163237d7fe

+ 2 - 0
src/layout/components/Sidebar/index.vue

@@ -78,6 +78,8 @@ export default {
   watch: {
     tenantId(val) {
       this.$store.dispatch("setTenant", val)
+      // 刷新页面
+      window.location.reload()
     }
   },
   data() {

+ 5 - 3
src/store/modules/user.js

@@ -1,5 +1,5 @@
 import {getInfo, login, logout} from '@/api/login'
-import {getToken, removeToken, setToken} from '@/utils/auth'
+import {getTenant, getToken, removeToken, setTenant as setTenantCookie, setToken} from '@/utils/auth'
 import {listTenant} from "@/api/system/tenant";
 
 const user = {
@@ -10,7 +10,7 @@ const user = {
     avatar: '',
     roles: [],
     permissions: [],
-    tenant: null
+    tenant: getTenant()
   },
 
   mutations: {
@@ -34,6 +34,7 @@ const user = {
     },
     SET_TENANT: (state, tenant) => {
       state.tenant = tenant
+      setTenantCookie(tenant)
     }
   },
 
@@ -66,7 +67,7 @@ const user = {
         let defaultTenant;
         const {rows} = await listTenant()
         if (rows.length > 0) {
-          defaultTenant = rows[0].id
+          defaultTenant = state.tenant || rows[0].id
         }
         getInfo().then(res => {
           const user = res.user
@@ -98,6 +99,7 @@ const user = {
           commit('SET_TOKEN', '')
           commit('SET_ROLES', [])
           commit('SET_PERMISSIONS', [])
+          commit('SET_TENANT', '')
           removeToken()
           resolve()
         }).catch(error => {

+ 9 - 0
src/utils/auth.js

@@ -1,6 +1,7 @@
 import Cookies from 'js-cookie'
 
 const TokenKey = 'Admin-Token'
+const tenantKey = 'X-Tenant'
 
 export function getToken() {
   return Cookies.get(TokenKey)
@@ -13,3 +14,11 @@ export function setToken(token) {
 export function removeToken() {
   return Cookies.remove(TokenKey)
 }
+
+export function getTenant() {
+  return Cookies.get(tenantKey)
+}
+
+export function setTenant(tenant) {
+  return Cookies.set(tenantKey, tenant)
+}