perf:【IoT 物联网】场景联动优化统一类型定义,简化告警配置
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import request from '@/config/axios'
|
||||
import { IotRuleScene } from './scene.types'
|
||||
import { IotSceneRule } from './scene.types'
|
||||
|
||||
// IoT 场景联动 API
|
||||
export const RuleSceneApi = {
|
||||
@@ -14,21 +14,24 @@ export const RuleSceneApi = {
|
||||
},
|
||||
|
||||
// 新增场景联动
|
||||
createRuleScene: async (data: IotRuleScene) => {
|
||||
createRuleScene: async (data: IotSceneRule) => {
|
||||
return await request.post({ url: `/iot/rule-scene/create`, data })
|
||||
},
|
||||
|
||||
// 修改场景联动
|
||||
updateRuleScene: async (data: IotRuleScene) => {
|
||||
updateRuleScene: async (data: IotSceneRule) => {
|
||||
return await request.put({ url: `/iot/rule-scene/update`, data })
|
||||
},
|
||||
|
||||
// 修改场景联动
|
||||
updateRuleSceneStatus: async (id: number, status: number) => {
|
||||
return await request.put({ url: `/iot/rule-scene/update-status`, data: {
|
||||
id,
|
||||
status
|
||||
}})
|
||||
return await request.put({
|
||||
url: `/iot/rule-scene/update-status`,
|
||||
data: {
|
||||
id,
|
||||
status
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
// 删除场景联动
|
||||
|
||||
@@ -137,122 +137,18 @@ export interface PropertySelectorItem {
|
||||
|
||||
// ========== 场景联动规则相关接口定义 ==========
|
||||
|
||||
// 基础接口(如果项目中有全局的 BaseDO,可以使用全局的)
|
||||
interface TenantBaseDO {
|
||||
createTime?: Date // 创建时间
|
||||
updateTime?: Date // 更新时间
|
||||
creator?: string // 创建者
|
||||
updater?: string // 更新者
|
||||
deleted?: boolean // 是否删除
|
||||
tenantId?: number // 租户编号
|
||||
}
|
||||
|
||||
// 触发条件参数
|
||||
interface TriggerConditionParameter {
|
||||
identifier0?: string // 标识符(事件、服务)
|
||||
identifier?: string // 标识符(属性)
|
||||
operator: string // 操作符(必填)
|
||||
value: string // 比较值(必填,多值用逗号分隔)
|
||||
}
|
||||
|
||||
// 触发条件
|
||||
interface TriggerCondition {
|
||||
type: string // 消息类型
|
||||
identifier: string // 消息标识符
|
||||
parameters: TriggerConditionParameter[] // 参数数组
|
||||
}
|
||||
|
||||
// 触发器配置
|
||||
interface TriggerConfig {
|
||||
key?: string // 组件唯一标识符,用于解决索引重用问题
|
||||
type: number // 触发类型(必填)
|
||||
productKey?: string // 产品标识(设备触发时必填)
|
||||
deviceNames?: string[] // 设备名称数组(设备触发时必填)
|
||||
conditions?: TriggerCondition[] // 触发条件数组(设备触发时必填)
|
||||
cronExpression?: string // CRON表达式(定时触发时必填)
|
||||
}
|
||||
|
||||
// 执行设备控制
|
||||
interface ActionDeviceControl {
|
||||
productKey: string // 产品标识(必填)
|
||||
deviceNames: string[] // 设备名称数组(必填)
|
||||
type: string // 消息类型(必填)
|
||||
identifier: string // 消息标识符(必填)
|
||||
params: Record<string, any> // 参数对象(必填)- 统一使用 params 字段
|
||||
}
|
||||
|
||||
// 执行器配置
|
||||
interface ActionConfig {
|
||||
key?: string // 组件唯一标识符,用于解决索引重用问题
|
||||
type: number // 执行类型(必填)
|
||||
deviceControl?: ActionDeviceControl // 设备控制(设备控制时必填)
|
||||
alertConfigId?: number // 告警配置ID(告警恢复时必填)
|
||||
}
|
||||
|
||||
// 表单数据接口 - 直接对应后端 DO 结构
|
||||
interface RuleSceneFormData {
|
||||
id?: number
|
||||
name: string
|
||||
description?: string
|
||||
status: number
|
||||
triggers: TriggerFormData[] // 支持多个触发器
|
||||
actions: ActionFormData[]
|
||||
}
|
||||
|
||||
// 触发器表单数据 - 直接对应 TriggerDO
|
||||
interface TriggerFormData {
|
||||
type: number // 触发类型
|
||||
productId?: number // 产品编号
|
||||
deviceId?: number // 设备编号
|
||||
identifier?: string // 物模型标识符
|
||||
operator?: string // 操作符
|
||||
value?: string // 参数值
|
||||
cronExpression?: string // CRON 表达式
|
||||
conditionGroups?: TriggerConditionFormData[][] // 条件组(二维数组)
|
||||
}
|
||||
|
||||
// 触发条件表单数据 - 直接对应 TriggerConditionDO
|
||||
interface TriggerConditionFormData {
|
||||
type: number // 条件类型:1-设备状态,2-设备属性,3-当前时间
|
||||
productId?: number // 产品编号
|
||||
deviceId?: number // 设备编号
|
||||
identifier?: string // 标识符
|
||||
operator: string // 操作符
|
||||
param: string // 参数值
|
||||
}
|
||||
|
||||
// 执行器表单数据 - 直接对应 ActionDO
|
||||
interface ActionFormData {
|
||||
type: number // 执行类型
|
||||
productId?: number // 产品编号
|
||||
deviceId?: number // 设备编号
|
||||
identifier?: string // 物模型标识符(服务调用时使用)
|
||||
params?: Record<string, any> // 请求参数
|
||||
alertConfigId?: number // 告警配置编号
|
||||
}
|
||||
|
||||
// 主接口 - 原有的 API 接口格式(保持兼容性)
|
||||
interface IotRuleScene extends TenantBaseDO {
|
||||
id?: number // 场景编号(新增时为空)
|
||||
name: string // 场景名称(必填)
|
||||
description?: string // 场景描述(可选)
|
||||
status: number // 场景状态:0-开启,1-关闭
|
||||
triggers: TriggerConfig[] // 触发器数组(必填,至少一个)
|
||||
actions: ActionConfig[] // 执行器数组(必填,至少一个)
|
||||
}
|
||||
|
||||
// 后端 DO 接口 - 匹配后端数据结构
|
||||
interface IotRuleSceneDO {
|
||||
interface IotSceneRule {
|
||||
id?: number // 场景编号
|
||||
name: string // 场景名称
|
||||
description?: string // 场景描述
|
||||
status: number // 场景状态:0-开启,1-关闭
|
||||
triggers: TriggerDO[] // 触发器数组
|
||||
actions: ActionDO[] // 执行器数组
|
||||
triggers: Trigger[] // 触发器数组
|
||||
actions: Action[] // 执行器数组
|
||||
}
|
||||
|
||||
// 触发器 DO 结构
|
||||
interface TriggerDO {
|
||||
interface Trigger {
|
||||
type: number // 触发类型
|
||||
productId?: number // 产品编号
|
||||
deviceId?: number // 设备编号
|
||||
@@ -260,12 +156,12 @@ interface TriggerDO {
|
||||
operator?: string // 操作符
|
||||
value?: string // 参数值
|
||||
cronExpression?: string // CRON 表达式
|
||||
conditionGroups?: TriggerConditionDO[][] // 条件组(二维数组)
|
||||
conditionGroups?: TriggerCondition[][] // 条件组(二维数组)
|
||||
}
|
||||
|
||||
// 触发条件 DO 结构
|
||||
interface TriggerConditionDO {
|
||||
type: number // 条件类型
|
||||
interface TriggerCondition {
|
||||
type: number // 条件类型:1-设备状态,2-设备属性,3-当前时间
|
||||
productId?: number // 产品编号
|
||||
deviceId?: number // 设备编号
|
||||
identifier?: string // 标识符
|
||||
@@ -274,7 +170,7 @@ interface TriggerConditionDO {
|
||||
}
|
||||
|
||||
// 执行器 DO 结构
|
||||
interface ActionDO {
|
||||
interface Action {
|
||||
type: number // 执行类型
|
||||
productId?: number // 产品编号
|
||||
deviceId?: number // 设备编号
|
||||
@@ -300,21 +196,4 @@ interface FormValidationRules {
|
||||
|
||||
// TODO @puhui999:这个文件,目标最终没有哈,和别的模块一致;
|
||||
|
||||
export {
|
||||
IotRuleScene,
|
||||
IotRuleSceneDO,
|
||||
TriggerDO,
|
||||
TriggerConditionDO,
|
||||
ActionDO,
|
||||
TriggerConfig,
|
||||
TriggerCondition,
|
||||
TriggerConditionParameter,
|
||||
ActionConfig,
|
||||
ActionDeviceControl,
|
||||
RuleSceneFormData,
|
||||
TriggerFormData,
|
||||
TriggerConditionFormData,
|
||||
ActionFormData,
|
||||
ValidationRule,
|
||||
FormValidationRules
|
||||
}
|
||||
export { IotSceneRule, Trigger, TriggerCondition, Action, ValidationRule, FormValidationRules }
|
||||
|
||||
Reference in New Issue
Block a user