|
|
@@ -0,0 +1,105 @@
|
|
|
+import apis from "@a"
|
|
|
+import appStore from "@s"
|
|
|
+
|
|
|
+export const useTenantStore = defineStore("tenant", () => {
|
|
|
+ const dynamicTenant = ref("")
|
|
|
+ const isNewPage = ref(false)
|
|
|
+ const tenantEnabled = ref(true)
|
|
|
+ const tenantList = ref<any>([])
|
|
|
+
|
|
|
+ const getCompanyName = () => {
|
|
|
+ return (
|
|
|
+ tenantList.value.find((item: any) => {
|
|
|
+ return item.tenantId === getTenantId()
|
|
|
+ })?.companyName ?? ""
|
|
|
+ )
|
|
|
+ }
|
|
|
+ const initTenant = async () => {
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ apis.loginApi.getTenantList().then((res: any) => {
|
|
|
+ tenantEnabled.value = res.data.tenantEnabled === undefined ? true : res.data.tenantEnabled
|
|
|
+ if (tenantEnabled.value) {
|
|
|
+ tenantList.value = res.data.voList
|
|
|
+ resolve(res.data.voList)
|
|
|
+ } else {
|
|
|
+ reject(false)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ }
|
|
|
+ function getTenantList() {
|
|
|
+ return tenantList.value
|
|
|
+ }
|
|
|
+ function enable() {
|
|
|
+ return tenantEnabled.value
|
|
|
+ }
|
|
|
+ function setTenantId(tenantId: string) {
|
|
|
+ localCache.set("tenantId", tenantId)
|
|
|
+ }
|
|
|
+ function setTenantNewPage(tenantId: string) {
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ dynamicTenant.value = tenantId
|
|
|
+ isNewPage.value = true
|
|
|
+ appStore.tagViewStore.delAllViews().then(() => {
|
|
|
+ resolve(tenantId)
|
|
|
+ })
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ function setDynamicTenant(tenantId: string) {
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ dynamicTenant.value = tenantId
|
|
|
+ appStore.tagViewStore.delAllViews().then(() => {
|
|
|
+ resolve(tenantId)
|
|
|
+ })
|
|
|
+ })
|
|
|
+ }
|
|
|
+ function getTenantId() {
|
|
|
+ return dynamicTenant.value || localCache.get("tenantId")
|
|
|
+ }
|
|
|
+ function getTenantName() {
|
|
|
+ return getCompanyName() || ""
|
|
|
+ }
|
|
|
+
|
|
|
+ function canChangeTenant() {
|
|
|
+ return (
|
|
|
+ !isNewPage.value &&
|
|
|
+ (appStore.authStore.user.roles.includes("super_admin") ||
|
|
|
+ appStore.authStore.user.permissions.includes("system:tenant"))
|
|
|
+ )
|
|
|
+ }
|
|
|
+
|
|
|
+ function isDynamic() {
|
|
|
+ return getTenantId() != appStore.authStore.user.tenantId
|
|
|
+ }
|
|
|
+
|
|
|
+ function clearDynamicTenant() {
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ apis.system.tenantApi
|
|
|
+ .dynamicClear()
|
|
|
+ .then((res: any) => {
|
|
|
+ setDynamicTenant("")
|
|
|
+ appStore.tagViewStore.delAllViews().then(() => {
|
|
|
+ resolve(res)
|
|
|
+ })
|
|
|
+ })
|
|
|
+ .catch((err) => {
|
|
|
+ reject(err)
|
|
|
+ })
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ return {
|
|
|
+ initTenant,
|
|
|
+ getTenantList,
|
|
|
+ enable,
|
|
|
+ canChangeTenant,
|
|
|
+ setDynamicTenant,
|
|
|
+ setTenantNewPage,
|
|
|
+ clearDynamicTenant,
|
|
|
+ setTenantId,
|
|
|
+ getTenantId,
|
|
|
+ getTenantName,
|
|
|
+ isDynamic
|
|
|
+ }
|
|
|
+})
|