feat: 新增租户切换组件和css目录优化
This commit is contained in:
@@ -108,35 +108,38 @@ export const useTenantStore = defineStore("tenant", () => {
|
||||
*
|
||||
* @param tenantId 目标租户ID
|
||||
*/
|
||||
function switchTenant(tenantId: number) {
|
||||
return new Promise<void>((resolve, reject) => {
|
||||
TenantAPI.switchTenant(tenantId)
|
||||
.then((tenantInfo) => {
|
||||
// 后端返回切换后的租户信息
|
||||
if (tenantInfo) {
|
||||
setCurrentTenant(tenantInfo);
|
||||
} else {
|
||||
// 如果后端未返回,从租户列表中找到对应的租户信息
|
||||
const tenant = tenantList.value.find((t) => t.id === tenantId);
|
||||
if (tenant) {
|
||||
setCurrentTenant(tenant);
|
||||
async function switchTenant(tenantId: number): Promise<void> {
|
||||
try {
|
||||
// 调用后端切换接口
|
||||
const tenantInfo = await TenantAPI.switchTenant(tenantId);
|
||||
|
||||
// 后端返回切换后的租户信息
|
||||
if (tenantInfo) {
|
||||
setCurrentTenant(tenantInfo);
|
||||
} else {
|
||||
// 如果后端未返回,从租户列表中找到对应的租户信息
|
||||
const tenant = tenantList.value.find((t) => t.id === tenantId);
|
||||
if (tenant) {
|
||||
setCurrentTenant(tenant);
|
||||
} else {
|
||||
// 如果列表中没有,重新获取租户信息
|
||||
try {
|
||||
const info = await TenantAPI.getCurrentTenant();
|
||||
if (info) {
|
||||
setCurrentTenant(info);
|
||||
} else {
|
||||
// 如果列表中没有,重新获取租户信息
|
||||
TenantAPI.getCurrentTenant()
|
||||
.then((info) => {
|
||||
if (info) {
|
||||
setCurrentTenant(info);
|
||||
}
|
||||
})
|
||||
.catch(console.error);
|
||||
throw new Error("无法获取租户信息");
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("获取租户信息失败:", error);
|
||||
throw new Error("切换租户后无法获取租户信息");
|
||||
}
|
||||
resolve();
|
||||
})
|
||||
.catch((error) => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("切换租户失败:", error);
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -150,6 +153,13 @@ export const useTenantStore = defineStore("tenant", () => {
|
||||
localStorage.removeItem(STORAGE_KEYS.TENANT_INFO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置租户列表
|
||||
*/
|
||||
function setTenantList(list: TenantInfo[]) {
|
||||
tenantList.value = list || [];
|
||||
}
|
||||
|
||||
// 恢复本地租户信息
|
||||
restoreTenant();
|
||||
|
||||
@@ -159,6 +169,7 @@ export const useTenantStore = defineStore("tenant", () => {
|
||||
tenantList,
|
||||
loadTenant,
|
||||
fetchTenantList,
|
||||
setTenantList,
|
||||
setCurrentTenant,
|
||||
switchTenant,
|
||||
clearTenant,
|
||||
|
||||
Reference in New Issue
Block a user