wwf
13 小时以前 a1d7e81859f554f3a53680cc35f0f49bf1f77098
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
import request from '@/config/axios'
 
// 场景联动
export interface IotSceneRule {
  id?: number // 场景编号
  name: string // 场景名称
  description?: string // 场景描述
  status: number // 场景状态:0-开启,1-关闭
  triggers: Trigger[] // 触发器数组
  actions: Action[] // 执行器数组
}
 
// 触发器结构
export interface Trigger {
  type: number // 触发类型
  productId?: number // 产品编号
  deviceId?: number // 设备编号
  identifier?: string // 物模型标识符
  operator?: string // 操作符
  value?: string // 参数值
  cronExpression?: string // CRON 表达式
  conditionGroups?: TriggerCondition[][] // 条件组(二维数组)
}
 
// 触发条件结构
export interface TriggerCondition {
  type: number // 条件类型:1-设备状态,2-设备属性,3-当前时间
  productId?: number // 产品编号
  deviceId?: number // 设备编号
  identifier?: string // 标识符
  operator: string // 操作符
  param: string // 参数
}
 
// 执行器结构
export interface Action {
  type: number // 执行类型
  productId?: number // 产品编号
  deviceId?: number // 设备编号
  identifier?: string // 物模型标识符(服务调用时使用)
  params?: string // 请求参数
  alertConfigId?: number // 告警配置编号
}
 
// IoT 场景联动 API
export const RuleSceneApi = {
  // 查询场景联动分页
  getRuleScenePage: async (params: any) => {
    return await request.get({ url: `/iot/scene-rule/page`, params })
  },
 
  // 查询场景联动详情
  getRuleScene: async (id: number) => {
    return await request.get({ url: `/iot/scene-rule/get?id=` + id })
  },
 
  // 新增场景联动
  createRuleScene: async (data: IotSceneRule) => {
    return await request.post({ url: `/iot/scene-rule/create`, data })
  },
 
  // 修改场景联动
  updateRuleScene: async (data: IotSceneRule) => {
    return await request.put({ url: `/iot/scene-rule/update`, data })
  },
 
  // 修改场景联动
  updateRuleSceneStatus: async (id: number, status: number) => {
    return await request.put({
      url: `/iot/scene-rule/update-status`,
      data: {
        id,
        status
      }
    })
  },
 
  // 删除场景联动
  deleteRuleScene: async (id: number) => {
    return await request.delete({ url: `/iot/scene-rule/delete?id=` + id })
  },
 
  // 获取场景联动简单列表
  getSimpleRuleSceneList: async () => {
    return await request.get({ url: `/iot/scene-rule/simple-list` })
  }
}