diff --git a/kicc-ui/src/api/platform/system/controller/user.ts b/kicc-ui/src/api/platform/system/controller/user.ts index e05a8ad9..39e85cfe 100644 --- a/kicc-ui/src/api/platform/system/controller/user.ts +++ b/kicc-ui/src/api/platform/system/controller/user.ts @@ -45,4 +45,4 @@ export const resetPwd = (params: Partial) => defHttp.put({ url: Api.resetP export const changeStatus = (id: string, status: string) => defHttp.put({ url: Api.changeStatus, data: { id: id, status: status } }); /** 修改用户多租户 */ -export const changeTenant = (tenantIds: string) => defHttp.put({ url: Api.changeTenant, params: { tenantIds } }); +export const changeTenant = (tenantIds: string[]) => defHttp.get({ url: Api.changeTenant, params: { tenantIds } }); diff --git a/kicc-ui/src/hooks/web/useTenant.ts b/kicc-ui/src/hooks/web/useTenant.ts new file mode 100644 index 00000000..f7c65126 --- /dev/null +++ b/kicc-ui/src/hooks/web/useTenant.ts @@ -0,0 +1,30 @@ +/** + * @program: kicc-ui + * @description: 多租户相关操作 + * @author: entfrm开发团队-王翔 + * @create: 2022/4/8 + */ +import { useUserStore } from '/@/store/modules/user'; +import { changeTenant } from '/@/api/platform/system/controller/user'; + +export function useTenant() { + const userStore = useUserStore(); + + // 切换多租户会改变当前系统中的数据环境 + async function changeTenantEnv(tenantIds: string[], reload = true) { + // 更改当前后端系统中的全局多租户数据 + await changeTenant(tenantIds); + // 更改当前前端系统中的全局多租户数据 + const userInfo = userStore.getUserInfo; + userInfo.tenantIds = tenantIds; + userInfo.tenantId = tenantIds.join(','); + userStore.setUserInfo(userInfo); + reload && location.reload(); + return tenantIds; + } + + return { + userStore, + changeTenantEnv + }; +} diff --git a/kicc-ui/src/layouts/default/setting/components/TenantSelect.vue b/kicc-ui/src/layouts/default/setting/components/TenantSelect.vue index bc789766..1aac8293 100644 --- a/kicc-ui/src/layouts/default/setting/components/TenantSelect.vue +++ b/kicc-ui/src/layouts/default/setting/components/TenantSelect.vue @@ -1,39 +1,93 @@