Procházet zdrojové kódy

feat: tenant cache of super admin

daigang před 2 roky
rodič
revize
85e48670a2
2 změnil soubory, kde provedl 23 přidání a 10 odebrání
  1. 3 0
      .env.development
  2. 20 10
      src/store/modules/user.js

+ 3 - 0
.env.development

@@ -16,3 +16,6 @@ VUE_APP_GATEWAY = 'isoc.artaplay.com:8443'
 # 徐州
 # VUE_APP_GATEWAY = 'msr.rondochina.com:6443'
 # VUE_APP_KEYCLOAK_OPTIONS_URL = 'https://msr.rondochina.com:6443/auth'
+# 浪潮云
+# VUE_APP_GATEWAY = 'msr.inspur.com:8084'
+# VUE_APP_KEYCLOAK_OPTIONS_URL = 'https://msr.inspur.com:8084/auth'

+ 20 - 10
src/store/modules/user.js

@@ -42,6 +42,7 @@ const mutations = {
   SET_TENANT (state, tenant) {
     console.log('tenant', tenant)
     const { id, label, path } = tenant
+    window.localStorage.setItem('MSR_SUPER', JSON.stringify({ id, label, path }))
     state.tenantId = id
     state.tenantName = label
     state.tenantKey = path
@@ -107,6 +108,24 @@ function parseAccess (realmAccess, resourceAccess, options) {
   return { roleSet, accessSet, resourceAccessSet }
 }
 
+async function getSuperAdminTenant () {
+  const cache = window.localStorage.getItem('MSR_SUPER')
+  let randomTenant = { path: '', label: '请选择租户' }
+  if (cache) {
+    randomTenant = JSON.parse(cache)
+  } else {
+    try {
+      const { data } = await getTenantsByQuery({ pageSize: 1, pageNum: 1 }, false)
+      if (data.length) {
+        randomTenant = data[0]
+      }
+    } catch (e) {
+      console.log(e)
+    }
+  }
+  return randomTenant
+}
+
 const actions = {
   async login ({ commit, dispatch, rootGetters }, keycloak) {
     if (keycloak.authenticated) {
@@ -117,16 +136,7 @@ const actions = {
       commit('SET_ACCESS', accessSet)
       commit('SET_RESOURCE_ACCESS', resourceAccessSet)
       if (rootGetters.isSuperAdmin) {
-        let randomTenant = { path: '', label: '请选择租户' }
-        try {
-          const { data } = await getTenantsByQuery({ pageSize: 1, pageNum: 1 }, false)
-          if (data.length) {
-            randomTenant = data[0]
-          }
-        } catch (e) {
-          console.log(e)
-        }
-        commit('SET_TENANT', randomTenant)
+        commit('SET_TENANT', await getSuperAdminTenant())
       } else if (tenant?.length) {
         commit('SET_TENANT_KEY', tenant[0])
         commit('SET_ORG_KEY', org || tenant[0])