index.ts
4.95 KB
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
import type { ThingsModelItemType } from '@/api/device/model'
import type { ImageSelectorDataType } from '@/core/Library/components/ImageSelector'
import type { CommandWayEnum } from '@/enums/commandEnum'
import type { ActTypeEnum, AggregateTypeEnum, CommandDeliveryWayEnum, DeviceTypeEnum, EventActionTypeEnum, EventTypeEnum, SocketSubscriberEnum, TransportTypeEnum } from '@/enums/datasource'
export enum DeleteNodeDataTypeEnum {
  DATASOURCE = 'DATASOURCE',
  EVENT = 'EVENT',
  ACT = 'ACT',
}
export interface BasicNodeBindType {
  id: string
  contentId: string
  configurationId: string
}
export interface SaveNodeDataParamsType extends BasicNodeBindType {
  actJson?: NodeDataActJsonType
  dataSourceJson?: Partial<NodeDataDataSourceJsonType>
  eventJson?: NodeDataEventJsonType
}
export interface SaveNodeActParamsType extends BasicNodeBindType {
  data?: NodeDataActJsonType
}
export interface SaveNodeDataSourceParamsType extends BasicNodeBindType {
  data?: NodeDataDataSourceJsonType
}
export interface SaveNodeEventParamsType extends BasicNodeBindType {
  data?: NodeDataEventJsonType
}
export interface DeleteNodeDataByType extends BasicNodeBindType {
  type: DeleteNodeDataTypeEnum
}
export interface NodeDataBasicType {
  id: string
  creator: string
  createTime: string
  enabled: boolean
  tenantId: string
  configurationId: string
  contentId: string
}
export interface ChartOptionType {
  interval: number
  effectScope?: number
  queryType?: SocketSubscriberEnum
  agg?: AggregateTypeEnum
  unit?: string
}
export interface FlowMeterColorItemType {
  key: string
  value: string
  label: string
}
export interface VideoOptionType {
  accessMode: number
  id: string
  orgId: string
  videoComponentFlag: boolean
  videoUrl: string
}
export interface AlarmListOptionType {
  startTime: number
  endTime: number
  autoPlay: boolean
  deviceId: string[]
  interval: number
  polling: number
}
export interface DeviceInfoType {
  code?: string
  transportType?: string
  deviceType?: string
  deviceProfileId?: string
  deviceName?: string
  codeType?: string
}
export interface NodeDataDataSourceJsonType {
  deviceId: string
  deviceProfileId: string
  deviceProfileTemplateId?: string
  attr: string
  attrInfo: ThingsModelItemType
  deviceType?: DeviceTypeEnum
  transportType?: TransportTypeEnum
  enable: boolean
  chartOption?: ChartOptionType
  videoOption?: VideoOptionType
  alarmListOption?: AlarmListOptionType
  deviceInfo?: DeviceInfoType
  circularFlowMeterOption?: FlowMeterColorItemType[] // 圆形水球图数据暂定any
  rectFlowMeterOption?: FlowMeterColorItemType[] // 方形水球图颜色配置数据暂定any
}
export interface DeviceCommandListItemType {
  deviceId: string
  way: CommandWayEnum
  command: string | Recordable
}
export interface MouseDownEventDataType {
  enable?: boolean
  commandList?: DeviceCommandListItemType[]
}
export interface MouseUpEventDataType extends MouseDownEventDataType { }
export interface DoubleClickEventDataType {
  actionType: EventActionTypeEnum
  openLink?: string
  openPage?: string
  enable: boolean
  service?: string
  serviceCommand?: Recordable
  way?: CommandWayEnum
  customCommand?: string
  deviceInfo?: DeviceInfoType
  commandWay?: CommandDeliveryWayEnum
  callType?: string
  operationPassword?: {
    label: string
    value: string | number
    checked: boolean
  }
}
export interface SingleClickEventDataType extends DoubleClickEventDataType { }
export interface NodeDataEventJsonType {
  [EventTypeEnum.DOUBLE]: DoubleClickEventDataType
  [EventTypeEnum.SINGLE]: SingleClickEventDataType
  [EventTypeEnum.DOWN]: MouseDownEventDataType
  [EventTypeEnum.UP]: MouseUpEventDataType
  [EventTypeEnum.OPERATION_PASSWORD]: { password: string } | any
}
export interface RangeItemType {
  type?: string
  min?: number
  max?: number
  statusValue?: number
  title?: string
  label?: string
  imageInfo?: ImageSelectorDataType
}
export interface BasicActDataType {
  deviceId: string
  attr: string
  enable?: boolean
  deviceProfileId?: string | number
  attrInfo?: ThingsModelItemType
}
export interface FlashActDataType extends BasicActDataType {
  rangeList: RangeItemType[]
}
export interface DisplayActDataType extends FlashActDataType { }
export interface RotateActDataType extends FlashActDataType { }
export interface DynamicActDataType extends FlashActDataType { }
export interface StatusActDataType extends FlashActDataType {
}
export interface VariableImageActDataType extends FlashActDataType {
  defaultImage: ImageSelectorDataType
}
export interface NodeDataActJsonType {
  [ActTypeEnum.FLASH]: FlashActDataType
  [ActTypeEnum.DISPLAY]: DisplayActDataType
  [ActTypeEnum.ROTATE]: RotateActDataType
  [ActTypeEnum.STATUS_SETTING]: StatusActDataType
  [ActTypeEnum.VARIABLE_IMAGE]: VariableImageActDataType
  [ActTypeEnum.DYNAMIC]: DynamicActDataType
}
export interface NodeDataType extends NodeDataBasicType {
  dataSourceJson: NodeDataDataSourceJsonType
  eventJson: NodeDataEventJsonType
  actJson: NodeDataActJsonType
}