feat: 新增租户切换组件和css目录优化

This commit is contained in:
Ray.Hao
2025-12-15 08:04:05 +08:00
parent 6e0597437e
commit 62e0af68a6
23 changed files with 193 additions and 166 deletions

View File

@@ -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,