diff --git a/apps/web-antd/src/views/dataManger/deviceData/index.vue b/apps/web-antd/src/views/dataManger/deviceData/index.vue index defcd16..5cafdca 100644 --- a/apps/web-antd/src/views/dataManger/deviceData/index.vue +++ b/apps/web-antd/src/views/dataManger/deviceData/index.vue @@ -19,6 +19,9 @@ const route = useRoute(); const { DeviceType, DeviceId, FocusAddress } = route.query; const formOptions: VbenFormProps = { schema: querySchema.value, + initialValues: { + FocusAddress: FocusAddress as string, + }, }; const gridOptions: VxeGridProps = { checkboxConfig: { diff --git a/apps/web-antd/src/views/dataManger/deviceData/schema.ts b/apps/web-antd/src/views/dataManger/deviceData/schema.ts index 2813e72..457e959 100644 --- a/apps/web-antd/src/views/dataManger/deviceData/schema.ts +++ b/apps/web-antd/src/views/dataManger/deviceData/schema.ts @@ -1,6 +1,6 @@ import type { VxeGridProps } from '#/adapter/vxe-table'; -import { computed, ref } from 'vue'; +import { computed } from 'vue'; import dayjs from 'dayjs'; @@ -8,34 +8,6 @@ import { $t } from '#/locales'; import { getSelectResultList } from '#/api-client'; -// 手动加载选项数据 -const systemNameOptions = ref>([]); - -const loadSystemNameOptions = async () => { - try { - const { data } = await getSelectResultList({ - params: { - query: { - TypeName: 'BusinessSystemEnum', - }, - }, - }); - console.log('API Response:', data); - if (data?.items) { - systemNameOptions.value = data.items.map((item: any) => ({ - label: item.secondValue || '', - value: item.value || '', - })); - console.log('Processed Options:', systemNameOptions.value); - } - } catch (error) { - console.error('Failed to load system name options:', error); - } -}; - -// 立即加载数据 -loadSystemNameOptions(); - export const querySchema = computed(() => [ { component: 'Input', @@ -43,13 +15,38 @@ export const querySchema = computed(() => [ label: $t('abp.focus.focusAddress'), }, { - component: 'Select', + component: 'ApiSelect', fieldName: 'SystemName', label: $t('abp.IoTDBBase.SystemName'), - componentProps: computed(() => ({ - options: systemNameOptions.value, - allowClear: true, - })), + componentProps: { + api: getSelectResultList, + params: { + query: { + TypeName: 'BusinessSystemEnum', + }, + }, + labelField: 'secondValue', + valueField: 'value', + optionsPropName: 'options', + immediate: true, + afterFetch: (res: any) => { + console.log('ApiSelect afterFetch result:', res); + // 确保返回的是数组格式 + if (Array.isArray(res)) { + return res; + } + // 如果是包装在 items 中的,提取出来 + if (res && Array.isArray(res.items)) { + return res.items; + } + // 如果是包装在 data 中的,提取出来 + if (res && Array.isArray(res.data)) { + return res.data; + } + // 如果都不是,返回空数组 + return []; + }, + }, }, ]); export const tableSchema: any = computed((): VxeGridProps['columns'] => [