From caf28b0ad79f0e9e96d275f04eaf5a41446931f9 Mon Sep 17 00:00:00 2001 From: ChenYi <296215406@outlook.com> Date: Thu, 26 Feb 2026 16:05:35 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=AE=BE=E5=A4=87=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web-antd/.env.development | 4 +- .../web-antd/src/locales/langs/en-US/abp.json | 1 + .../web-antd/src/locales/langs/zh-CN/abp.json | 1 + .../devicemanagement/deviceinfo/index.vue | 5 ++- .../devicemanagement/deviceinfo/schema.ts | 43 +++++++++++++++++++ 5 files changed, 51 insertions(+), 3 deletions(-) diff --git a/apps/web-antd/.env.development b/apps/web-antd/.env.development index 43923b4..6a156ff 100644 --- a/apps/web-antd/.env.development +++ b/apps/web-antd/.env.development @@ -36,9 +36,9 @@ VITE_REFRESH_ROLE = true # 后端接口地址 #VITE_APP_API_ADDRESS=http://47.110.53.196:28080 - VITE_APP_API_ADDRESS=http://10.10.10.103:10500 + VITE_APP_API_ADDRESS=http://10.10.10.104:10500 # websocket地址 -VITE_WEBSOCKET_URL=http://10.10.10.103:10500/signalr/notification +VITE_WEBSOCKET_URL=http://10.10.10.104:10500/signalr/notification diff --git a/apps/web-antd/src/locales/langs/en-US/abp.json b/apps/web-antd/src/locales/langs/en-US/abp.json index 088e0b3..954a12e 100644 --- a/apps/web-antd/src/locales/langs/en-US/abp.json +++ b/apps/web-antd/src/locales/langs/en-US/abp.json @@ -220,6 +220,7 @@ "thingModelInfoManage": "ThingModelInfoManage", "isNeedConfigDeviceModel": "IsNeedConfigDeviceModel", "readingMode": "ReadingMode", + "deviceType": "DeviceType", "deviceThingModelName": "ThingModelInfoManage" }, "thingModelInfos": { diff --git a/apps/web-antd/src/locales/langs/zh-CN/abp.json b/apps/web-antd/src/locales/langs/zh-CN/abp.json index 1a3e6cb..b72c422 100644 --- a/apps/web-antd/src/locales/langs/zh-CN/abp.json +++ b/apps/web-antd/src/locales/langs/zh-CN/abp.json @@ -212,6 +212,7 @@ "deviceInfoManage": "设备管理", "thingModelInfoManage": "物模型管理", "isNeedConfigDeviceModel": "是否绑定设备模型", + "deviceType": "设备类型", "readingMode": "抄读模式", "deviceThingModelName": "设备物模型名称" }, diff --git a/apps/web-antd/src/views/devicemanagement/deviceinfo/index.vue b/apps/web-antd/src/views/devicemanagement/deviceinfo/index.vue index 8c8b9b8..b18fe36 100644 --- a/apps/web-antd/src/views/devicemanagement/deviceinfo/index.vue +++ b/apps/web-antd/src/views/devicemanagement/deviceinfo/index.vue @@ -2280,7 +2280,10 @@ const toolbarActions = computed(() => [ - +
diff --git a/apps/web-antd/src/views/devicemanagement/deviceinfo/schema.ts b/apps/web-antd/src/views/devicemanagement/deviceinfo/schema.ts index d3081be..9e23f36 100644 --- a/apps/web-antd/src/views/devicemanagement/deviceinfo/schema.ts +++ b/apps/web-antd/src/views/devicemanagement/deviceinfo/schema.ts @@ -131,6 +131,11 @@ export const tableSchema: any = computed((): VxeGridProps['columns'] => [ title: $t('common.BelongingProductName'), minWidth: '150', }, + { + field: 'deviceTypeName', + title: $t('abp.deviceInfos.deviceType'), + minWidth: '150', + }, { field: 'deviceName', title: $t('abp.deviceInfos.deviceName'), @@ -219,6 +224,44 @@ export const addDeviceFormSchema: any = computed(() => [ message: `${$t('common.pleaseInput')}${$t('abp.deviceInfos.deviceAddress')}`, }), }, + { + component: 'ApiSelect', + fieldName: 'deviceType', + label: $t('abp.deviceInfos.deviceType'), + componentProps: { + api: getCommonGetSelectList, + params: { + query: { + typeName: 'DeviceTypeEnum', + }, + }, + labelField: 'value', + valueField: 'key', + optionsPropName: 'options', + immediate: true, + allowClear: true, + placeholder: $t('common.pleaseSelect') + $t('abp.deviceInfos.deviceType'), + afterFetch: (res: any) => { + // 确保返回的是数组格式 + 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 []; + }, + }, + rules: z.string().min(1, { + message: `${$t('common.pleaseSelect')}${$t('abp.deviceInfos.deviceType')}`, + }), + }, { component: 'ApiSelect', fieldName: 'ioTPlatform',