From 057ca0bfdecde7d93bbecfa96afa5c7f5a3ce60f Mon Sep 17 00:00:00 2001 From: YunaiV Date: Thu, 21 May 2026 11:00:30 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E6=94=B6=E6=95=9B=20iot=20rule/sce?= =?UTF-8?q?ne=20API=20=E7=9A=84=E9=87=8D=E5=A4=8D=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E5=A3=B0=E6=98=8E=EF=BC=88P1=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - antd / ele api/iot/rule/scene,删除外层重复的 4 个 interface - createSceneRule / updateSceneRule 入参改用 RuleSceneApi.SceneRule - 业务文件 import 统一改用 RuleSceneApi.SceneRule / Trigger / TriggerCondition / Action - 清理 2 处 TODO @haohao 残留注释 Co-Authored-By: Claude Opus 4.7 (1M context) --- apps/web-antd/src/api/iot/rule/scene/index.ts | 52 +------------------ .../scene/form/configs/condition-config.vue | 37 ++++++------- .../configs/current-time-condition-config.vue | 6 +-- .../form/configs/device-control-config.vue | 21 ++++---- .../configs/main-condition-inner-config.vue | 18 +++---- .../configs/sub-condition-group-config.vue | 15 +++--- .../configs/timer-condition-group-config.vue | 34 +++++++----- .../scene/form/sections/action-section.vue | 30 +++++------ .../form/sections/basic-info-section.vue | 6 +-- .../scene/form/sections/trigger-section.vue | 20 +++---- .../src/views/iot/rule/scene/modules/form.vue | 10 ++-- apps/web-ele/src/api/iot/rule/scene/index.ts | 52 +------------------ .../scene/form/configs/condition-config.vue | 25 +++------ .../configs/current-time-condition-config.vue | 6 +-- .../form/configs/device-control-config.vue | 6 +-- .../configs/main-condition-inner-config.vue | 14 ++--- .../configs/sub-condition-group-config.vue | 15 +++--- .../configs/timer-condition-group-config.vue | 34 +++++++----- .../scene/form/sections/action-section.vue | 28 +++++----- .../form/sections/basic-info-section.vue | 6 +-- .../scene/form/sections/trigger-section.vue | 30 +++++------ .../src/views/iot/rule/scene/modules/form.vue | 10 ++-- 22 files changed, 183 insertions(+), 292 deletions(-) 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 d77b82d10..acbfbac42 100644 --- a/apps/web-antd/src/api/iot/rule/scene/index.ts +++ b/apps/web-antd/src/api/iot/rule/scene/index.ts @@ -50,53 +50,6 @@ export namespace RuleSceneApi { } } -// TODO @haohao:貌似下面的,和 RuleSceneApi 重复了。 -/** IoT 场景联动规则 */ -export interface IotSceneRule { - id?: number; - name?: string; - description?: string; - status?: number; - triggers?: Trigger[]; - actions?: Action[]; - createTime?: Date; -} - -/** IoT 场景联动规则触发器 */ -export interface Trigger { - type?: number; - productId?: number; - deviceId?: number; - identifier?: string; - operator?: string; - value?: any; - cronExpression?: string; - // 后端结构:List>;外层「或」、组内「且」 - conditionGroups?: TriggerCondition[][]; -} - -/** IoT 场景联动规则触发条件 */ -export interface TriggerCondition { - productId?: number; - deviceId?: number; - identifier?: string; - operator?: string; - value?: any; - type?: number; - param?: string; -} - -/** IoT 场景联动规则动作 */ -export interface Action { - type?: number; - productId?: number; - deviceId?: number; - identifier?: string; - value?: any; - alertConfigId?: number; - params?: Record; -} - /** 查询场景联动规则分页 */ export function getSceneRulePage(params: PageParam) { return requestClient.get>( @@ -113,12 +66,12 @@ export function getSceneRule(id: number) { } /** 新增场景联动规则 */ -export function createSceneRule(data: IotSceneRule) { +export function createSceneRule(data: RuleSceneApi.SceneRule) { return requestClient.post('/iot/scene-rule/create', data); } /** 修改场景联动规则 */ -export function updateSceneRule(data: IotSceneRule) { +export function updateSceneRule(data: RuleSceneApi.SceneRule) { return requestClient.put('/iot/scene-rule/update', data); } @@ -128,7 +81,6 @@ export function deleteSceneRule(id: number) { } /** 批量删除场景联动规则 */ -// TODO @haohao:貌似用上。 export function deleteSceneRuleList(ids: number[]) { return requestClient.delete('/iot/scene-rule/delete-list', { params: { ids: ids.join(',') }, diff --git a/apps/web-antd/src/views/iot/rule/scene/form/configs/condition-config.vue b/apps/web-antd/src/views/iot/rule/scene/form/configs/condition-config.vue index 1b922699e..c71110ba0 100644 --- a/apps/web-antd/src/views/iot/rule/scene/form/configs/condition-config.vue +++ b/apps/web-antd/src/views/iot/rule/scene/form/configs/condition-config.vue @@ -1,6 +1,6 @@