| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- 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") || "000000"
- }
- function getTenantName() {
- return getCompanyName() || ""
- }
- function canChangeTenant() {
- return enable() && (
- !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
- }
- })
|