6 changed files with 79 additions and 2 deletions
@ -0,0 +1,46 @@ |
|||
<template> |
|||
<a-select v-bind="$attrs" :options="computedOptions" /> |
|||
</template> |
|||
|
|||
<script setup lang="ts"> |
|||
import { computed, ref, unref, watch } from 'vue'; |
|||
import { storeToRefs } from 'pinia'; |
|||
import { useUserStore } from '@/store/modules/user'; |
|||
import { ApiServiceEnum, defHttp } from '@/utils/http/axios'; |
|||
|
|||
let dataLoaded = false; |
|||
const { getIsPlatformTenant } = storeToRefs(useUserStore()); |
|||
|
|||
const dataListRef = ref<Recordable[]>([]); |
|||
const computedOptions = computed(() => { |
|||
if (!unref(getIsPlatformTenant)) { |
|||
return []; |
|||
} |
|||
return unref(dataListRef).map((item) => { |
|||
return { |
|||
label: item.tenantShortName || item.tenantName, |
|||
value: item.id, |
|||
}; |
|||
}); |
|||
}); |
|||
|
|||
const loadTenantData = async () => { |
|||
dataListRef.value = await defHttp.post({ |
|||
service: ApiServiceEnum.SMART_SYSTEM, |
|||
url: 'sys/tenant/manager/listTenantNoAuth', |
|||
}); |
|||
dataLoaded = true; |
|||
}; |
|||
|
|||
watch( |
|||
getIsPlatformTenant, |
|||
(value) => { |
|||
if (value && !dataLoaded) { |
|||
loadTenantData(); |
|||
} |
|||
}, |
|||
{ immediate: true }, |
|||
); |
|||
</script> |
|||
|
|||
<style scoped lang="less"></style> |
|||
@ -0,0 +1 @@ |
|||
export { default as SysTenantSelect } from './SysTenant/SysTenantSelect.vue'; |
|||
Loading…
Reference in new issue