diff --git a/apps/web-antd/src/api/iot/rule/scene/index.ts b/apps/web-antd/src/api/iot/rule/scene/index.ts index acbfbac42..fd522a324 100644 --- a/apps/web-antd/src/api/iot/rule/scene/index.ts +++ b/apps/web-antd/src/api/iot/rule/scene/index.ts @@ -80,13 +80,6 @@ export function deleteSceneRule(id: number) { return requestClient.delete(`/iot/scene-rule/delete?id=${id}`); } -/** 批量删除场景联动规则 */ -export function deleteSceneRuleList(ids: number[]) { - return requestClient.delete('/iot/scene-rule/delete-list', { - params: { ids: ids.join(',') }, - }); -} - /** 更新场景联动规则状态 */ export function updateSceneRuleStatus(id: number, status: number) { return requestClient.put(`/iot/scene-rule/update-status`, { diff --git a/apps/web-antd/src/router/routes/modules/iot.ts b/apps/web-antd/src/router/routes/modules/iot.ts index ec0191863..a1d2203b9 100644 --- a/apps/web-antd/src/router/routes/modules/iot.ts +++ b/apps/web-antd/src/router/routes/modules/iot.ts @@ -12,7 +12,7 @@ const routes: RouteRecordRaw[] = [ }, children: [ { - path: 'product/detail/:id', + path: 'product/product/detail/:id', name: 'IoTProductDetail', meta: { title: '产品详情', @@ -30,14 +30,13 @@ const routes: RouteRecordRaw[] = [ component: () => import('#/views/iot/device/device/detail/index.vue'), }, { - path: 'ota/firmware/detail/:id', + path: 'ota/operation/firmware/detail/:id', name: 'IoTOtaFirmwareDetail', meta: { title: '固件详情', - activePath: '/iot/ota', + activePath: '/iot/operation/ota/firmware', }, - component: () => - import('#/views/iot/ota/firmware/detail/index.vue'), + component: () => import('#/views/iot/ota/firmware/detail/index.vue'), }, ], }, diff --git a/apps/web-antd/src/views/iot/device/device/data.ts b/apps/web-antd/src/views/iot/device/device/data.ts index 3eb5ebb1b..1908033ef 100644 --- a/apps/web-antd/src/views/iot/device/device/data.ts +++ b/apps/web-antd/src/views/iot/device/device/data.ts @@ -276,6 +276,7 @@ export function useGridColumns(): VxeTableGridOptions['colu field: 'deviceName', title: 'DeviceName', minWidth: 150, + slots: { default: 'deviceName' }, }, { field: 'nickname', diff --git a/apps/web-antd/src/views/iot/device/device/detail/modules/info.vue b/apps/web-antd/src/views/iot/device/device/detail/modules/info.vue index ded227804..234ad1b33 100644 --- a/apps/web-antd/src/views/iot/device/device/detail/modules/info.vue +++ b/apps/web-antd/src/views/iot/device/device/detail/modules/info.vue @@ -36,9 +36,9 @@ const authInfo = ref( ); const mapDialogRef = ref>(); -/** 是否有位置信息 */ +/** 是否有位置信息(合法经纬度 0 不应视为空) */ const hasLocation = computed(() => { - return !!(props.device.longitude && props.device.latitude); + return props.device.longitude != null && props.device.latitude != null; }); /** 打开地图弹窗 */ diff --git a/apps/web-antd/src/views/iot/device/device/detail/modules/modbus-config-form.vue b/apps/web-antd/src/views/iot/device/device/detail/modules/modbus-config-form.vue index 669b01fbf..fe3a7afdb 100644 --- a/apps/web-antd/src/views/iot/device/device/detail/modules/modbus-config-form.vue +++ b/apps/web-antd/src/views/iot/device/device/detail/modules/modbus-config-form.vue @@ -58,11 +58,13 @@ const [Form, formApi] = useVbenForm({ componentProps: { placeholder: '请输入 Modbus 服务器 IP 地址', }, + // Client 模式专有字段:必填;Server 模式不显示也不校验 dependencies: { triggerFields: [''], - show: () => isClient.value, // Client 模式专有字段:IP 地址 + show: () => isClient.value, + rules: () => + isClient.value ? z.string().min(1, '请输入 IP 地址') : null, }, - rules: z.string().min(1, '请输入 IP 地址').optional(), }, { fieldName: 'port', @@ -76,9 +78,12 @@ const [Form, formApi] = useVbenForm({ }, dependencies: { triggerFields: [''], - show: () => isClient.value, // Client 模式专有字段:端口 + show: () => isClient.value, + rules: () => + isClient.value + ? z.number({ message: '请输入端口' }).min(1).max(65_535) + : null, }, - rules: z.number().min(1).max(65_535).optional(), defaultValue: 502, }, { @@ -106,9 +111,12 @@ const [Form, formApi] = useVbenForm({ }, dependencies: { triggerFields: [''], - show: () => isClient.value, // Client 模式专有字段:连接超时 + show: () => isClient.value, + rules: () => + isClient.value + ? z.number({ message: '请输入连接超时时间' }).min(1000) + : null, }, - rules: z.number().min(1000).optional(), defaultValue: 3000, }, { @@ -123,9 +131,12 @@ const [Form, formApi] = useVbenForm({ }, dependencies: { triggerFields: [''], - show: () => isClient.value, // Client 模式专有字段:重试间隔 + show: () => isClient.value, + rules: () => + isClient.value + ? z.number({ message: '请输入重试间隔' }).min(1000) + : null, }, - rules: z.number().min(1000).optional(), defaultValue: 10_000, }, { diff --git a/apps/web-antd/src/views/iot/device/device/index.vue b/apps/web-antd/src/views/iot/device/device/index.vue index 682fcac25..3d2db1277 100644 --- a/apps/web-antd/src/views/iot/device/device/index.vue +++ b/apps/web-antd/src/views/iot/device/device/index.vue @@ -430,6 +430,11 @@ onMounted(async () => { + diff --git a/apps/web-antd/src/views/iot/rule/scene/form/configs/current-time-condition-config.vue b/apps/web-antd/src/views/iot/rule/scene/form/configs/current-time-condition-config.vue index bbe7913c5..df03b53a3 100644 --- a/apps/web-antd/src/views/iot/rule/scene/form/configs/current-time-condition-config.vue +++ b/apps/web-antd/src/views/iot/rule/scene/form/configs/current-time-condition-config.vue @@ -1,11 +1,14 @@ diff --git a/apps/web-antd/src/views/iot/thingmodel/modules/data-specs/array.vue b/apps/web-antd/src/views/iot/thingmodel/modules/data-specs/array.vue index 4ab4ba7e1..1e88342b9 100644 --- a/apps/web-antd/src/views/iot/thingmodel/modules/data-specs/array.vue +++ b/apps/web-antd/src/views/iot/thingmodel/modules/data-specs/array.vue @@ -68,5 +68,6 @@ function handleChange(val: any) { diff --git a/apps/web-antd/src/views/iot/thingmodel/modules/data-specs/enum.vue b/apps/web-antd/src/views/iot/thingmodel/modules/data-specs/enum.vue index aca1e5fc5..35a84aabe 100644 --- a/apps/web-antd/src/views/iot/thingmodel/modules/data-specs/enum.vue +++ b/apps/web-antd/src/views/iot/thingmodel/modules/data-specs/enum.vue @@ -2,6 +2,7 @@ diff --git a/apps/web-ele/src/views/iot/thingmodel/modules/data-specs/enum.vue b/apps/web-ele/src/views/iot/thingmodel/modules/data-specs/enum.vue index 22030d2ce..f3ebfcb16 100644 --- a/apps/web-ele/src/views/iot/thingmodel/modules/data-specs/enum.vue +++ b/apps/web-ele/src/views/iot/thingmodel/modules/data-specs/enum.vue @@ -2,6 +2,7 @@