fix: show bound tenant in im menus

This commit is contained in:
richjohnrambo
2026-09-16 16:54:12 +08:00
parent 156e8b9c9f
commit fe5c7af7e2
47 changed files with 401 additions and 437 deletions
+5 -10
View File
@@ -11,7 +11,7 @@
label-placement="left"
label-width="120"
>
<n-form-item v-if="isPlatformAdmin" label="商户">
<n-form-item label="商户">
<n-select
v-model:value="selectedTenantId"
:options="tenantOptions"
@@ -71,20 +71,17 @@
import { computed, onMounted, ref } from 'vue';
import { useMessage } from 'naive-ui';
import { usePermission } from '@/hooks/web/usePermission';
import { useUserStore } from '@/store/modules/user';
import { Get, Update } from '@/api/imFeedbackConfig';
import { loadOptions, loadTenantOptions, newState, rules, State, tenantOptions } from './model';
const message = useMessage();
const { hasPermission } = usePermission();
const userStore = useUserStore();
const isPlatformAdmin = computed(() => userStore.isCompanyDept);
const formRef = ref();
const formValue = ref<State>(newState(null));
const selectedTenantId = ref(0);
const loadLoading = ref(false);
const submitLoading = ref(false);
const currentTenantReady = computed(() => !isPlatformAdmin.value || selectedTenantId.value > 0);
const currentTenantReady = computed(() => selectedTenantId.value > 0);
const allowContactValue = computed({
get: () => formValue.value.allowContact === 1,
@@ -130,11 +127,9 @@
onMounted(async () => {
loadOptions();
if (isPlatformAdmin.value) {
await loadTenantOptions();
if (tenantOptions.value.length > 0) selectedTenantId.value = tenantOptions.value[0].value;
else message.warning('暂无可用商户');
}
await loadTenantOptions();
if (tenantOptions.value.length > 0) selectedTenantId.value = tenantOptions.value[0].value;
else message.warning('暂无可用商户');
await loadConfig();
});
</script>
+2 -7
View File
@@ -1,6 +1,6 @@
import { ref } from 'vue';
import { cloneDeep } from 'lodash-es';
import { List as TenantList } from '@/api/imTenant';
import { loadImTenantOptions } from '@/views/imTenantOptions';
import { useDictStore } from '@/store/modules/dict';
export const tenantOptions = ref<any[]>([]);
@@ -49,10 +49,5 @@ export function loadOptions() {
}
export async function loadTenantOptions() {
const res = await TenantList({ page: 1, perPage: 100 });
tenantOptions.value = (res?.list || []).map((item) => ({
label: `${item.name}(${item.code})`,
value: item.id,
}));
return tenantOptions.value;
return loadImTenantOptions(tenantOptions, { page: 1, perPage: 100 });
}