diff --git a/src/api/system/tenant/index.ts b/src/api/system/tenant/index.ts
index 176c3757..12c32528 100644
--- a/src/api/system/tenant/index.ts
+++ b/src/api/system/tenant/index.ts
@@ -41,6 +41,11 @@ export const getTenant = (id: number) => {
return request.get({ url: '/system/tenant/get?id=' + id })
}
+// 获取租户精简信息列表
+export const getTenantList = () => {
+ return request.get({ url: '/system/tenant/simple-list' })
+}
+
// 新增租户
export const createTenant = (data: TenantVO) => {
return request.post({ url: '/system/tenant/create', data })
diff --git a/src/config/axios/service.ts b/src/config/axios/service.ts
index 7c31e0b2..74280a92 100644
--- a/src/config/axios/service.ts
+++ b/src/config/axios/service.ts
@@ -3,7 +3,14 @@ import axios, { AxiosError, AxiosInstance, AxiosResponse, InternalAxiosRequestCo
import { ElMessage, ElMessageBox, ElNotification } from 'element-plus'
import qs from 'qs'
import { config } from '@/config/axios/config'
-import { getAccessToken, getRefreshToken, getTenantId, removeToken, setToken } from '@/utils/auth'
+import {
+ getAccessToken,
+ getRefreshToken,
+ getTenantId,
+ getVisitTenantId,
+ removeToken,
+ setToken
+} from '@/utils/auth'
import errorCode from './errorCode'
import { resetRouter } from '@/router'
@@ -24,7 +31,7 @@ export const isRelogin = { show: false }
let requestList: any[] = []
// 是否正在刷新中
let isRefreshToken = false
-// 请求白名单,无须token的接口
+// 请求白名单,无须 token 的接口
const whiteList: string[] = ['/login', '/refresh-token']
// 创建axios实例
@@ -55,6 +62,11 @@ service.interceptors.request.use(
if (tenantEnable && tenantEnable === 'true') {
const tenantId = getTenantId()
if (tenantId) config.headers['tenant-id'] = tenantId
+ // 只有登录时,才设置 visit-tenant-id 访问租户
+ const visitTenantId = getVisitTenantId()
+ if (config.headers.Authorization && visitTenantId) {
+ config.headers['visit-tenant-id'] = visitTenantId
+ }
}
const method = config.method?.toUpperCase()
// 防止 GET 请求缓存
diff --git a/src/hooks/web/useCache.ts b/src/hooks/web/useCache.ts
index 4f39f307..1acb03bc 100644
--- a/src/hooks/web/useCache.ts
+++ b/src/hooks/web/useCache.ts
@@ -10,6 +10,7 @@ export const CACHE_KEY = {
// 用户相关
ROLE_ROUTERS: 'roleRouters',
USER: 'user',
+ VisitTenantId: 'visitTenantId',
// 系统设置
IS_DARK: 'isDark',
LANG: 'lang',
@@ -35,5 +36,6 @@ export const deleteUserCache = () => {
const { wsCache } = useCache()
wsCache.delete(CACHE_KEY.USER)
wsCache.delete(CACHE_KEY.ROLE_ROUTERS)
+ wsCache.delete(CACHE_KEY.VisitTenantId)
// 注意,不要清理 LoginForm 登录表单
}
diff --git a/src/layout/components/TenantVisit/index.vue b/src/layout/components/TenantVisit/index.vue
new file mode 100644
index 00000000..81e04a97
--- /dev/null
+++ b/src/layout/components/TenantVisit/index.vue
@@ -0,0 +1,46 @@
+
+