Showing
21 changed files
with
462 additions
and
3595 deletions
@@ -13,8 +13,6 @@ | @@ -13,8 +13,6 @@ | ||
13 | <a-steps :current="current"> | 13 | <a-steps :current="current"> |
14 | <a-step title="设备配置" /> | 14 | <a-step title="设备配置" /> |
15 | <a-step title="传输配置" /> | 15 | <a-step title="传输配置" /> |
16 | - <a-step title="告警配置" /> | ||
17 | - <a-step title="告警通知" /> | ||
18 | </a-steps> | 16 | </a-steps> |
19 | </div> | 17 | </div> |
20 | <div class="mt-5"> | 18 | <div class="mt-5"> |
@@ -25,29 +23,9 @@ | @@ -25,29 +23,9 @@ | ||
25 | <!-- 设备配置 --> | 23 | <!-- 设备配置 --> |
26 | <!-- 传输配置 --> | 24 | <!-- 传输配置 --> |
27 | <div v-show="current === 1"> | 25 | <div v-show="current === 1"> |
28 | - <DeviceProfileStep2 | ||
29 | - ref="DeviceProfileStep2Ref" | ||
30 | - @prev="handleStepPrev" | ||
31 | - @next="handleStep2Next" | 26 | + <DeviceProfileStep2 ref="DeviceProfileStep2Ref" @prev="handleStepPrev" |
32 | /></div> | 27 | /></div> |
33 | <!-- 传输配置 --> | 28 | <!-- 传输配置 --> |
34 | - <!-- 告警配置 --> | ||
35 | - <div v-show="current === 2"> | ||
36 | - <DeviceProfileStep3 | ||
37 | - ref="DeviceProfileStep3Ref" | ||
38 | - @prev="handleStepPrev" | ||
39 | - @next="handleStep3Next" | ||
40 | - @redo="handleRedo" | ||
41 | - :getAllStepThreeData="editData" | ||
42 | - :isAddOrEdit="isStatus" | ||
43 | - :isShowAddRule="isShowRule" | ||
44 | - /></div> | ||
45 | - <!-- 告警配置 --> | ||
46 | - <!-- 告警通知 --> | ||
47 | - <div v-show="current === 3"> | ||
48 | - <DeviceProfileStep4 ref="DeviceProfileStep4Ref" @prev="handleStepPrev" /> | ||
49 | - </div> | ||
50 | - <!-- 告警通知 --> | ||
51 | </div> | 29 | </div> |
52 | </BasicModal> | 30 | </BasicModal> |
53 | </div> | 31 | </div> |
@@ -65,8 +43,6 @@ | @@ -65,8 +43,6 @@ | ||
65 | import { BasicModal, useModalInner } from '/@/components/Modal'; | 43 | import { BasicModal, useModalInner } from '/@/components/Modal'; |
66 | import DeviceProfileStep1 from '/@/views/device/profiles/step/DeviceProfileStep1.vue'; | 44 | import DeviceProfileStep1 from '/@/views/device/profiles/step/DeviceProfileStep1.vue'; |
67 | import DeviceProfileStep2 from '/@/views/device/profiles/step/DeviceProfileStep2.vue'; | 45 | import DeviceProfileStep2 from '/@/views/device/profiles/step/DeviceProfileStep2.vue'; |
68 | - import DeviceProfileStep3 from '/@/views/device/profiles/step/DeviceProfileStep3.vue'; | ||
69 | - import DeviceProfileStep4 from '/@/views/device/profiles/step/DeviceProfileStep4.vue'; | ||
70 | import { Steps } from 'ant-design-vue'; | 46 | import { Steps } from 'ant-design-vue'; |
71 | import { deviceConfigAddOrEdit, deviceConfigGetDetail } from '/@/api/device/deviceConfigApi'; | 47 | import { deviceConfigAddOrEdit, deviceConfigGetDetail } from '/@/api/device/deviceConfigApi'; |
72 | import { useMessage } from '/@/hooks/web/useMessage'; | 48 | import { useMessage } from '/@/hooks/web/useMessage'; |
@@ -77,56 +53,33 @@ | @@ -77,56 +53,33 @@ | ||
77 | BasicModal, | 53 | BasicModal, |
78 | DeviceProfileStep1, | 54 | DeviceProfileStep1, |
79 | DeviceProfileStep2, | 55 | DeviceProfileStep2, |
80 | - DeviceProfileStep3, | ||
81 | - DeviceProfileStep4, | ||
82 | [Steps.name]: Steps, | 56 | [Steps.name]: Steps, |
83 | [Steps.Step.name]: Steps.Step, | 57 | [Steps.Step.name]: Steps.Step, |
84 | }, | 58 | }, |
85 | props: { | 59 | props: { |
86 | userData: { type: Object }, | 60 | userData: { type: Object }, |
87 | }, | 61 | }, |
88 | - emits: [ | ||
89 | - 'success', | ||
90 | - 'register', | ||
91 | - 'handleStepPrev', | ||
92 | - 'handleStep3Next', | ||
93 | - 'handleRedo', | ||
94 | - 'handleStep2Next', | ||
95 | - ], | 62 | + emits: ['success', 'register', 'handleStepPrev', 'handleStep3Next', 'handleRedo'], |
96 | setup(_, { emit }) { | 63 | setup(_, { emit }) { |
97 | const { proxy } = getCurrentInstance() as any; | 64 | const { proxy } = getCurrentInstance() as any; |
98 | const DeviceProfileStep1Ref = ref(null); | 65 | const DeviceProfileStep1Ref = ref(null); |
99 | const DeviceProfileStep2Ref = ref(null); | 66 | const DeviceProfileStep2Ref = ref(null); |
100 | - const DeviceProfileStep3Ref = ref(null); | ||
101 | - const DeviceProfileStep4Ref = ref(null); | ||
102 | const { createMessage } = useMessage(); | 67 | const { createMessage } = useMessage(); |
103 | - const postDeviceConfogData: any = ref({}); | 68 | + let postDeviceConfogData: any = reactive({}); |
104 | let getStepOneData: any = reactive({}); | 69 | let getStepOneData: any = reactive({}); |
105 | let getStepTwoData: any = reactive({}); | 70 | let getStepTwoData: any = reactive({}); |
106 | const editData: any = ref({}); | 71 | const editData: any = ref({}); |
107 | - let getStepFourData: any = reactive({}); | ||
108 | - const alarmProfileData = reactive({ | ||
109 | - alarmProfile: { | ||
110 | - alarmContactId: '', | ||
111 | - messageMode: '', | ||
112 | - }, | ||
113 | - }); | ||
114 | - let isGetStepThreeData: any = reactive({ | ||
115 | - profileData: { | ||
116 | - alarms: [], | ||
117 | - }, | ||
118 | - }); | ||
119 | const postEditId = ref(''); | 72 | const postEditId = ref(''); |
120 | const current = ref(0); | 73 | const current = ref(0); |
121 | const isUpdate = ref(0); | 74 | const isUpdate = ref(0); |
122 | - const getAlarmContactId = ref(''); | ||
123 | - const getMessageMode = ref(''); | ||
124 | - const isStatus: any = ref(null); | ||
125 | const isShowOkBtnFalse = ref(true); | 75 | const isShowOkBtnFalse = ref(true); |
126 | - const isShowRule = ref(true); | ||
127 | - const isEditAndChange = ref(true); | ||
128 | - const isEchoEditStatus = ref(false); | ||
129 | const isNextStatus = ref(false); | 76 | const isNextStatus = ref(false); |
77 | + let transportTypeObj = reactive({ | ||
78 | + transportType: '', | ||
79 | + }); | ||
80 | + const profileDataObj = reactive({ | ||
81 | + profileData: null, | ||
82 | + }); | ||
130 | 83 | ||
131 | const getTitle = computed(() => | 84 | const getTitle = computed(() => |
132 | isUpdate.value == 1 ? '新增设备配置' : isUpdate.value == 2 ? '编辑设备配置' : '设备配置详情' | 85 | isUpdate.value == 1 ? '新增设备配置' : isUpdate.value == 2 ? '编辑设备配置' : '设备配置详情' |
@@ -136,16 +89,11 @@ | @@ -136,16 +89,11 @@ | ||
136 | isUpdate.value = data.isUpdate; | 89 | isUpdate.value = data.isUpdate; |
137 | if (isUpdate.value == 1) { | 90 | if (isUpdate.value == 1) { |
138 | handleCancel(); | 91 | handleCancel(); |
139 | - isShowRule.value = true; | ||
140 | isShowOkBtnFalse.value = true; | 92 | isShowOkBtnFalse.value = true; |
141 | current.value = 0; | 93 | current.value = 0; |
142 | - isStatus.value = !data.isUpdate; | ||
143 | - isEchoEditStatus.value = false; | ||
144 | } else if (isUpdate.value == 2) { | 94 | } else if (isUpdate.value == 2) { |
145 | handleCancel(); | 95 | handleCancel(); |
146 | - isShowRule.value = true; | ||
147 | isShowOkBtnFalse.value = true; | 96 | isShowOkBtnFalse.value = true; |
148 | - isEchoEditStatus.value = true; | ||
149 | current.value = 0; | 97 | current.value = 0; |
150 | postEditId.value = data.record.id; | 98 | postEditId.value = data.record.id; |
151 | editData.value = await deviceConfigGetDetail(postEditId.value); | 99 | editData.value = await deviceConfigGetDetail(postEditId.value); |
@@ -158,7 +106,6 @@ | @@ -158,7 +106,6 @@ | ||
158 | }); | 106 | }); |
159 | } else if (isUpdate.value == 3) { | 107 | } else if (isUpdate.value == 3) { |
160 | handleCancel(); | 108 | handleCancel(); |
161 | - isShowRule.value = false; | ||
162 | isShowOkBtnFalse.value = false; | 109 | isShowOkBtnFalse.value = false; |
163 | current.value = 0; | 110 | current.value = 0; |
164 | postEditId.value = data.record.id; | 111 | postEditId.value = data.record.id; |
@@ -181,188 +128,64 @@ | @@ -181,188 +128,64 @@ | ||
181 | if (isNextStatus.value) { | 128 | if (isNextStatus.value) { |
182 | getStepOneData = { | 129 | getStepOneData = { |
183 | ...v, | 130 | ...v, |
184 | - ...{ icon: v1 }, | 131 | + ...{ image: v1 }, |
185 | }; | 132 | }; |
186 | } | 133 | } |
187 | current.value++; | 134 | current.value++; |
188 | if (isUpdate.value == 2) { | 135 | if (isUpdate.value == 2) { |
189 | - proxy.$refs.DeviceProfileStep2Ref?.setStepTwoFieldsValueFunc({ | ||
190 | - transportType: editData.value?.profileData.transportConfiguration.type, | ||
191 | - }); | 136 | + proxy.$refs.DeviceProfileStep2Ref?.setStepTwoFieldsValueFunc( |
137 | + editData.value?.profileData.transportConfiguration | ||
138 | + ); | ||
192 | } else if (isUpdate.value == 3) { | 139 | } else if (isUpdate.value == 3) { |
193 | - proxy.$refs.DeviceProfileStep2Ref?.setStepTwoFieldsValueFunc({ | ||
194 | - transportType: editData.value?.profileData.transportConfiguration.type, | ||
195 | - }); | 140 | + proxy.$refs.DeviceProfileStep2Ref?.setStepTwoFieldsValueFunc( |
141 | + editData.value?.profileData.transportConfiguration | ||
142 | + ); | ||
196 | } | 143 | } |
197 | } | 144 | } |
198 | - //第二步 | ||
199 | - function handleStep2Next(v) { | ||
200 | - isNextStatus.value = true; | ||
201 | - if ((isNextStatus.value = true)) { | ||
202 | - getStepTwoData = { | ||
203 | - ...v, | 145 | + const handleSubmit = async () => { |
146 | + let getPic = null; | ||
147 | + getStepTwoData = await proxy.$refs.DeviceProfileStep2Ref?.getStep2DataFunc(); | ||
148 | + profileDataObj.profileData = getStepTwoData; | ||
149 | + transportTypeObj.transportType = getStepTwoData.transportConfiguration.type; | ||
150 | + //没有点击下一步 | ||
151 | + if (!isNextStatus.value) { | ||
152 | + const getStep1Obj = await proxy.$refs.DeviceProfileStep1Ref?.getStep1Func(); | ||
153 | + getPic = getStep1Obj.icon; | ||
154 | + getStepOneData = { | ||
155 | + ...getStep1Obj.key, | ||
156 | + ...{ image: getPic }, | ||
204 | }; | 157 | }; |
205 | } | 158 | } |
206 | - current.value++; | ||
207 | - if (isUpdate.value == 2) { | ||
208 | - try { | ||
209 | - isEchoEditStatus.value = true; | ||
210 | - proxy.$refs.DeviceProfileStep3Ref?.echoStep3DataFunc( | ||
211 | - editData.value.profileData.alarms, | ||
212 | - isEchoEditStatus.value | ||
213 | - ); | ||
214 | - } catch {} | ||
215 | - } else if (isUpdate.value == 3) { | ||
216 | - try { | ||
217 | - isEchoEditStatus.value = true; | ||
218 | - proxy.$refs.DeviceProfileStep3Ref?.echoStep3DataFunc( | ||
219 | - editData.value.profileData.alarms, | ||
220 | - isEchoEditStatus.value | ||
221 | - ); | ||
222 | - } catch {} | 159 | + const id = isUpdate.value == 1 ? '' : postEditId.value; |
160 | + postDeviceConfogData = { | ||
161 | + ...getStepOneData, | ||
162 | + ...profileDataObj, | ||
163 | + ...transportTypeObj, | ||
164 | + id, | ||
165 | + }; | ||
166 | + if (isUpdate.value == 1) { | ||
167 | + delete postDeviceConfogData.id; | ||
223 | } | 168 | } |
224 | - } | ||
225 | - //第三步 | ||
226 | - async function handleStep3Next(_, v1) { | ||
227 | - try { | ||
228 | - isNextStatus.value = true; | ||
229 | - isEditAndChange.value = v1; | ||
230 | - current.value++; | ||
231 | - let step3NextVal = await proxy.$refs.DeviceProfileStep3Ref?.getStep3AllDataFunc( | ||
232 | - isUpdate.value | ||
233 | - ); | ||
234 | - if (step3NextVal.length === 0) { | ||
235 | - isGetStepThreeData.profileData.alarms = null; | ||
236 | - } else { | ||
237 | - isGetStepThreeData.profileData.alarms = step3NextVal; | ||
238 | - } | ||
239 | - proxy.$refs.DeviceProfileStep4Ref?.step3LinkStep4DefalutClose(); | ||
240 | - if (isUpdate.value == 2) { | ||
241 | - if ( | ||
242 | - editData.value?.alarmProfile.messageMode !== null || | ||
243 | - editData.value?.alarmProfile.alarmContactId !== null | ||
244 | - ) { | ||
245 | - proxy.$refs.DeviceProfileStep4Ref?.addStep4(); | ||
246 | - } else { | ||
247 | - proxy.$refs.DeviceProfileStep4Ref?.closeStep4(); | ||
248 | - } | ||
249 | - nextTick(() => { | ||
250 | - proxy.$refs.DeviceProfileStep4Ref?.setAlaramContactAndNoticeMethodFunc({ | ||
251 | - alarmContactId: editData.value?.alarmProfile.alarmContactId.split(','), | ||
252 | - messageMode: editData.value?.alarmProfile.messageMode.split(','), | ||
253 | - }); | ||
254 | - }); | ||
255 | - } else if (isUpdate.value == 3) { | ||
256 | - if ( | ||
257 | - editData.value?.alarmProfile.messageMode !== null || | ||
258 | - editData.value?.alarmProfile.alarmContactId !== null | ||
259 | - ) { | ||
260 | - proxy.$refs.DeviceProfileStep4Ref?.addStep4(); | ||
261 | - } else { | ||
262 | - proxy.$refs.DeviceProfileStep4Ref?.closeStep4(); | ||
263 | - } | ||
264 | - nextTick(() => { | ||
265 | - proxy.$refs.DeviceProfileStep4Ref?.setAlaramContactAndNoticeMethodFunc({ | ||
266 | - alarmContactId: editData.value?.alarmProfile.alarmContactId.split(','), | ||
267 | - messageMode: editData.value?.alarmProfile.messageMode.split(','), | ||
268 | - }); | ||
269 | - }); | ||
270 | - } | ||
271 | - } catch {} | ||
272 | - } | ||
273 | - const handleSubmit = async () => { | ||
274 | - let getPic = null; | ||
275 | - let getStep2Obj = proxy.$refs.DeviceProfileStep2Ref?.getStep2DataFunc(); | ||
276 | - Object.assign(getStepTwoData, getStep2Obj); | ||
277 | - try { | ||
278 | - //没有点击下一步 | ||
279 | - if (!isNextStatus.value) { | ||
280 | - const getStep1Obj = await proxy.$refs.DeviceProfileStep1Ref?.getStep1Func(); | ||
281 | - getPic = getStep1Obj.icon; | ||
282 | - getStepOneData = { | ||
283 | - ...getStep1Obj.key, | ||
284 | - ...{ image: getPic }, | ||
285 | - }; | ||
286 | - Object.assign(getStepOneData, getStep1Obj.key); | ||
287 | - } | ||
288 | - let step3Val = await proxy.$refs.DeviceProfileStep3Ref?.getStep3AllDataFunc( | ||
289 | - isUpdate.value | ||
290 | - ); | ||
291 | - if (step3Val.length === 0) { | ||
292 | - isGetStepThreeData.profileData.alarms = null; | ||
293 | - } else { | ||
294 | - isGetStepThreeData.profileData.alarms = step3Val; | ||
295 | - } | ||
296 | - try { | ||
297 | - getStepFourData = await proxy.$refs.DeviceProfileStep4Ref?.getAllFields(); | ||
298 | - const getJoinAlarmContactIdData = getStepFourData.alarmContactId.join(','); | ||
299 | - const getJoinMessageModeData = getStepFourData.messageMode.join(','); | ||
300 | - getAlarmContactId.value = getJoinAlarmContactIdData; | ||
301 | - getMessageMode.value = getJoinMessageModeData; | ||
302 | - alarmProfileData.alarmProfile.alarmContactId = getAlarmContactId.value; | ||
303 | - alarmProfileData.alarmProfile.messageMode = getMessageMode.value; | ||
304 | - } catch {} | ||
305 | - if (isUpdate.value == 1) { | ||
306 | - Object.assign( | ||
307 | - postDeviceConfogData.value, | ||
308 | - getStepOneData, | ||
309 | - getStepTwoData, | ||
310 | - isGetStepThreeData, | ||
311 | - alarmProfileData.alarmProfile.alarmContactId == '' ? null : alarmProfileData | ||
312 | - ); | ||
313 | - await deviceConfigAddOrEdit(postDeviceConfogData.value); | ||
314 | - createMessage.success('新增成功'); | ||
315 | - closeModal(); | ||
316 | - emit('success'); | ||
317 | - } else if (isUpdate.value == 2) { | ||
318 | - const id = { | ||
319 | - id: postEditId, | ||
320 | - }; | ||
321 | - Object.assign( | ||
322 | - postDeviceConfogData.value, | ||
323 | - getStepOneData, | ||
324 | - getStepTwoData, | ||
325 | - isGetStepThreeData, | ||
326 | - id, | ||
327 | - alarmProfileData.alarmProfile.alarmContactId == '' ? null : alarmProfileData | ||
328 | - ); | ||
329 | - console.log('==========', postDeviceConfogData.value); | ||
330 | - // await deviceConfigAddOrEdit(postDeviceConfogData.value); | ||
331 | - // createMessage.success('编辑成功'); | ||
332 | - // closeModal(); | ||
333 | - // emit('success'); | ||
334 | - } | ||
335 | - } catch {} | 169 | + await deviceConfigAddOrEdit(postDeviceConfogData); |
170 | + createMessage.success(isUpdate.value == 1 ? '新增' + '成功' : '编辑' + '成功'); | ||
171 | + closeModal(); | ||
172 | + emit('success'); | ||
173 | + isNextStatus.value = false; | ||
336 | }; | 174 | }; |
337 | const handleCancel = () => { | 175 | const handleCancel = () => { |
338 | - try { | ||
339 | - nextTick(() => { | ||
340 | - proxy.$refs.DeviceProfileStep1Ref?.customResetStepOneFunc(); | ||
341 | - proxy.$refs.DeviceProfileStep1Ref?.resetIconFunc(); | ||
342 | - proxy.$refs.DeviceProfileStep2Ref?.customClearStepTwoValueFunc(); | ||
343 | - proxy.$refs.DeviceProfileStep3Ref?.clearStep3DataFunc(); | ||
344 | - proxy.$refs.DeviceProfileStep4Ref?.clearAlaramContactAndNoticeMethodFunc(); | ||
345 | - getStepOneData = {}; | ||
346 | - getStepTwoData = {}; | ||
347 | - isGetStepThreeData.profileData.alarms.length = 0; | ||
348 | - alarmProfileData.alarmProfile.alarmContactId = ''; | ||
349 | - alarmProfileData.alarmProfile.messageMode = ''; | ||
350 | - }); | ||
351 | - } catch {} | 176 | + nextTick(() => { |
177 | + proxy.$refs.DeviceProfileStep1Ref?.customResetStepOneFunc(); | ||
178 | + proxy.$refs.DeviceProfileStep2Ref?.customClearStepTwoValueFunc(); | ||
179 | + }); | ||
352 | }; | 180 | }; |
353 | function handleRedo() { | 181 | function handleRedo() { |
354 | current.value = 0; | 182 | current.value = 0; |
355 | } | 183 | } |
356 | return { | 184 | return { |
357 | - isShowRule, | ||
358 | isShowOkBtnFalse, | 185 | isShowOkBtnFalse, |
359 | - isStatus, | ||
360 | DeviceProfileStep2Ref, | 186 | DeviceProfileStep2Ref, |
361 | - DeviceProfileStep3Ref, | ||
362 | - DeviceProfileStep4Ref, | ||
363 | DeviceProfileStep1Ref, | 187 | DeviceProfileStep1Ref, |
364 | editData, | 188 | editData, |
365 | - handleStep3Next, | ||
366 | handleSubmit, | 189 | handleSubmit, |
367 | handleCancel, | 190 | handleCancel, |
368 | register, | 191 | register, |
@@ -371,7 +194,6 @@ | @@ -371,7 +194,6 @@ | ||
371 | current, | 194 | current, |
372 | handleStepPrev, | 195 | handleStepPrev, |
373 | handleStepNext1, | 196 | handleStepNext1, |
374 | - handleStep2Next, | ||
375 | handleRedo, | 197 | handleRedo, |
376 | }; | 198 | }; |
377 | }, | 199 | }, |
@@ -14,8 +14,8 @@ | @@ -14,8 +14,8 @@ | ||
14 | :before-upload="beforeUploadqrcodePic" | 14 | :before-upload="beforeUploadqrcodePic" |
15 | > | 15 | > |
16 | <img | 16 | <img |
17 | - v-if="peresonalPic || echoPic" | ||
18 | - :src="peresonalPic != '' ? peresonalPic : echoPic" | 17 | + v-if="peresonalPic" |
18 | + :src="peresonalPic" | ||
19 | alt="avatar" | 19 | alt="avatar" |
20 | style="width: 6.25rem; height: 6.25rem" | 20 | style="width: 6.25rem; height: 6.25rem" |
21 | /> | 21 | /> |
@@ -54,8 +54,8 @@ | @@ -54,8 +54,8 @@ | ||
54 | emits: ['next', 'resetFunc', 'register'], | 54 | emits: ['next', 'resetFunc', 'register'], |
55 | setup(_, { emit }) { | 55 | setup(_, { emit }) { |
56 | const { createMessage } = useMessage(); | 56 | const { createMessage } = useMessage(); |
57 | - const echoPic = ref(''); | ||
58 | const peresonalPic = ref(''); | 57 | const peresonalPic = ref(''); |
58 | + | ||
59 | const [register, { validate, setFieldsValue, resetFields }] = useForm({ | 59 | const [register, { validate, setFieldsValue, resetFields }] = useForm({ |
60 | labelWidth: 100, | 60 | labelWidth: 100, |
61 | schemas: step1Schemas, | 61 | schemas: step1Schemas, |
@@ -71,14 +71,7 @@ | @@ -71,14 +71,7 @@ | ||
71 | //回显数据 | 71 | //回显数据 |
72 | const setStepOneFieldsValueFunc = (v) => { | 72 | const setStepOneFieldsValueFunc = (v) => { |
73 | setFieldsValue(v); | 73 | setFieldsValue(v); |
74 | - echoPic.value = v.image; | ||
75 | - }; | ||
76 | - const resetIconFunc = () => { | ||
77 | - peresonalPic.value = ''; | ||
78 | - echoPic.value = ''; | ||
79 | - }; | ||
80 | - const editIconFunc = (v) => { | ||
81 | - peresonalPic.value = v; | 74 | + peresonalPic.value = v.image; |
82 | }; | 75 | }; |
83 | const customUploadqrcodePic = async ({ file }) => { | 76 | const customUploadqrcodePic = async ({ file }) => { |
84 | if (beforeUploadqrcodePic(file)) { | 77 | if (beforeUploadqrcodePic(file)) { |
@@ -90,7 +83,6 @@ | @@ -90,7 +83,6 @@ | ||
90 | } | 83 | } |
91 | } | 84 | } |
92 | }; | 85 | }; |
93 | - | ||
94 | const beforeUploadqrcodePic = (file: FileItem) => { | 86 | const beforeUploadqrcodePic = (file: FileItem) => { |
95 | const isJpgOrPng = | 87 | const isJpgOrPng = |
96 | file.type === 'image/jpeg' || file.type === 'image/png' || file.type === 'image/jpg'; | 88 | file.type === 'image/jpeg' || file.type === 'image/png' || file.type === 'image/jpg'; |
@@ -103,15 +95,15 @@ | @@ -103,15 +95,15 @@ | ||
103 | } | 95 | } |
104 | return isJpgOrPng && isLt2M; | 96 | return isJpgOrPng && isLt2M; |
105 | }; | 97 | }; |
98 | + | ||
106 | async function customSubmitFunc() { | 99 | async function customSubmitFunc() { |
107 | - try { | ||
108 | - const values = await validate(); | ||
109 | - emit('next', values, peresonalPic.value); | ||
110 | - } catch (error) {} | 100 | + const values = await validate(); |
101 | + emit('next', values, peresonalPic.value); | ||
111 | } | 102 | } |
112 | //清空数据 | 103 | //清空数据 |
113 | const customResetStepOneFunc = () => { | 104 | const customResetStepOneFunc = () => { |
114 | resetFields(); | 105 | resetFields(); |
106 | + peresonalPic.value = ''; | ||
115 | }; | 107 | }; |
116 | const getStep1Func = async () => { | 108 | const getStep1Func = async () => { |
117 | const valueStep1 = await validate(); | 109 | const valueStep1 = await validate(); |
@@ -122,8 +114,6 @@ | @@ -122,8 +114,6 @@ | ||
122 | }; | 114 | }; |
123 | }; | 115 | }; |
124 | return { | 116 | return { |
125 | - editIconFunc, | ||
126 | - resetIconFunc, | ||
127 | register, | 117 | register, |
128 | setStepOneFieldsValueFunc, | 118 | setStepOneFieldsValueFunc, |
129 | customResetStepOneFunc, | 119 | customResetStepOneFunc, |
@@ -132,7 +122,6 @@ | @@ -132,7 +122,6 @@ | ||
132 | beforeUploadqrcodePic, | 122 | beforeUploadqrcodePic, |
133 | customUploadqrcodePic, | 123 | customUploadqrcodePic, |
134 | getStep1Func, | 124 | getStep1Func, |
135 | - echoPic, | ||
136 | }; | 125 | }; |
137 | }, | 126 | }, |
138 | }); | 127 | }); |
1 | <template> | 1 | <template> |
2 | <div class="step2"> | 2 | <div class="step2"> |
3 | - <BasicForm :showResetButton="false" :showSubmitButton="false" @register="register" /> | ||
4 | - <div | ||
5 | - style=" | ||
6 | - display: flex; | ||
7 | - width: 11vw; | ||
8 | - height: 4vh; | ||
9 | - flex-direction: row; | ||
10 | - justify-content: space-between; | ||
11 | - margin-left: 8vw; | ||
12 | - margin-top: -4vh; | ||
13 | - " | ||
14 | - > | ||
15 | - <div style="display: flex; width: 4vw; height: 4vh"> | ||
16 | - <Button type="default" style="border-radius: 2px" class="mt-5" @click="customResetFunc" | ||
17 | - >上一步</Button | 3 | + <div class="step2-style"> |
4 | + <div style="margin-top: 0.8vh; margin-left: 2.8vw; overflow: scroll"> | ||
5 | + <BasicForm :showResetButton="false" :showSubmitButton="false" @register="register" /> | ||
6 | + <div | ||
7 | + style=" | ||
8 | + display: flex; | ||
9 | + width: 11vw; | ||
10 | + height: 8vh; | ||
11 | + flex-direction: row; | ||
12 | + justify-content: space-between; | ||
13 | + margin-left: 17vw; | ||
14 | + margin-top: -4vh; | ||
15 | + " | ||
18 | > | 16 | > |
19 | - </div> | ||
20 | - <div style="display: flex; width: 4vw; height: 4vh"> | ||
21 | - <Button type="default" class="mt-5" @click="customSubmitFunc"> 下一步</Button> | 17 | + <div style="display: flex; width: 4vw; height: 4vh; margin-top: -2.35vh"> |
18 | + <Button type="default" style="border-radius: 2px" class="mt-5" @click="customResetFunc" | ||
19 | + >上一步</Button | ||
20 | + > | ||
21 | + </div> | ||
22 | + </div> | ||
22 | </div> | 23 | </div> |
23 | </div> | 24 | </div> |
24 | </div> | 25 | </div> |
25 | </template> | 26 | </template> |
26 | <script lang="ts"> | 27 | <script lang="ts"> |
27 | - import { defineComponent } from 'vue'; | 28 | + import { defineComponent, reactive } from 'vue'; |
28 | import { BasicForm, useForm } from '/@/components/Form'; | 29 | import { BasicForm, useForm } from '/@/components/Form'; |
29 | import { step2Schemas } from './data'; | 30 | import { step2Schemas } from './data'; |
30 | import { Alert, Divider, Descriptions } from 'ant-design-vue'; | 31 | import { Alert, Divider, Descriptions } from 'ant-design-vue'; |
@@ -41,7 +42,33 @@ | @@ -41,7 +42,33 @@ | ||
41 | }, | 42 | }, |
42 | emits: ['next', 'prev', 'register'], | 43 | emits: ['next', 'prev', 'register'], |
43 | setup(_, { emit }) { | 44 | setup(_, { emit }) { |
44 | - const [register, { getFieldsValue, validate, setFieldsValue, resetFields }] = useForm({ | 45 | + const transportData: any = reactive({ |
46 | + transportConfiguration: { | ||
47 | + clientSettings: { | ||
48 | + powerMode: null, | ||
49 | + edrxCycle: null, | ||
50 | + pagingTransmissionWindow: null, | ||
51 | + psmActivityTimer: null, | ||
52 | + }, | ||
53 | + coapDeviceTypeConfiguration: { | ||
54 | + coapDeviceType: null, | ||
55 | + }, | ||
56 | + deviceTelemetryTopic: null, | ||
57 | + deviceAttributesTopic: null, | ||
58 | + transportPayloadTypeConfiguration: { | ||
59 | + transportPayloadType: null, | ||
60 | + enableCompatibilityWithJsonPayloadFormat: false, | ||
61 | + useJsonPayloadFormatForDefaultDownlinkTopics: false, | ||
62 | + deviceAttributesProtoSchema: null, | ||
63 | + deviceRpcRequestProtoSchema: null, | ||
64 | + deviceRpcResponseProtoSchema: null, | ||
65 | + deviceTelemetryProtoSchema: null, | ||
66 | + }, | ||
67 | + type: null, | ||
68 | + }, | ||
69 | + }); | ||
70 | + | ||
71 | + const [register, { validate, setFieldsValue, resetFields }] = useForm({ | ||
45 | labelWidth: 80, | 72 | labelWidth: 80, |
46 | schemas: step2Schemas, | 73 | schemas: step2Schemas, |
47 | actionColOptions: { | 74 | actionColOptions: { |
@@ -49,7 +76,32 @@ | @@ -49,7 +76,32 @@ | ||
49 | }, | 76 | }, |
50 | }); | 77 | }); |
51 | const setStepTwoFieldsValueFunc = (v) => { | 78 | const setStepTwoFieldsValueFunc = (v) => { |
52 | - setFieldsValue(v); | 79 | + console.log(v); |
80 | + setFieldsValue({ | ||
81 | + transportType: v?.type || v?.transportConfiguration.type, | ||
82 | + transportPayloadType: | ||
83 | + v?.transportPayloadTypeConfiguration?.transportPayloadType || | ||
84 | + v?.coapDeviceTypeConfiguration?.transportPayloadTypeConfiguration?.transportPayloadType, | ||
85 | + deviceTelemetryTopic: v?.deviceTelemetryTopic, | ||
86 | + deviceAttributesTopic: v?.deviceAttributesTopic, | ||
87 | + enableCompatibilityWithJsonPayloadFormat: | ||
88 | + v?.transportPayloadTypeConfiguration?.enableCompatibilityWithJsonPayloadFormat, | ||
89 | + useJsonPayloadFormatForDefaultDownlinkTopics: | ||
90 | + v?.transportPayloadTypeConfiguration?.useJsonPayloadFormatForDefaultDownlinkTopics, | ||
91 | + deviceAttributesProtoSchema: | ||
92 | + v?.transportPayloadTypeConfiguration?.deviceAttributesProtoSchema, | ||
93 | + deviceRpcRequestProtoSchema: | ||
94 | + v?.transportPayloadTypeConfiguration?.deviceRpcRequestProtoSchema, | ||
95 | + deviceRpcResponseProtoSchema: | ||
96 | + v?.transportPayloadTypeConfiguration?.deviceRpcResponseProtoSchema, | ||
97 | + deviceTelemetryProtoSchema: | ||
98 | + v?.transportPayloadTypeConfiguration?.deviceTelemetryProtoSchema, | ||
99 | + powerMode: v?.clientSettings?.powerMode, | ||
100 | + edrxCycle: v?.clientSettings?.edrxCycle, | ||
101 | + pagingTransmissionWindow: v?.clientSettings?.pagingTransmissionWindow, | ||
102 | + psmActivityTimer: v?.clientSettings?.psmActivityTimer, | ||
103 | + coapDeviceType: v?.coapDeviceTypeConfiguration?.coapDeviceType, | ||
104 | + }); | ||
53 | }; | 105 | }; |
54 | const customClearStepTwoValueFunc = () => { | 106 | const customClearStepTwoValueFunc = () => { |
55 | resetFields(); | 107 | resetFields(); |
@@ -57,23 +109,39 @@ | @@ -57,23 +109,39 @@ | ||
57 | async function customResetFunc() { | 109 | async function customResetFunc() { |
58 | emit('prev'); | 110 | emit('prev'); |
59 | } | 111 | } |
60 | - async function customSubmitFunc() { | ||
61 | - try { | ||
62 | - const values = await validate(); | ||
63 | - emit('next', values); | ||
64 | - } catch (error) { | ||
65 | - console.log(error); | ||
66 | - } finally { | ||
67 | - } | ||
68 | - } | ||
69 | - | ||
70 | - const getStep2DataFunc = () => { | ||
71 | - const val = getFieldsValue(); | ||
72 | - return val; | 112 | + const getStep2DataFunc = async () => { |
113 | + const val = await validate(); | ||
114 | + if (!val) return; | ||
115 | + transportData.transportConfiguration.deviceTelemetryTopic = val.deviceTelemetryTopic; | ||
116 | + transportData.transportConfiguration.deviceAttributesTopic = val.deviceAttributesTopic; | ||
117 | + transportData.transportConfiguration.transportPayloadTypeConfiguration.transportPayloadType = | ||
118 | + val.transportPayloadType; | ||
119 | + transportData.transportConfiguration.transportPayloadTypeConfiguration.enableCompatibilityWithJsonPayloadFormat = | ||
120 | + val.enableCompatibilityWithJsonPayloadFormat; | ||
121 | + transportData.transportConfiguration.transportPayloadTypeConfiguration.useJsonPayloadFormatForDefaultDownlinkTopics = | ||
122 | + val.useJsonPayloadFormatForDefaultDownlinkTopics; | ||
123 | + transportData.transportConfiguration.transportPayloadTypeConfiguration.enableCompatibilityWithJsonPayloadFormat = | ||
124 | + val.enableCompatibilityWithJsonPayloadFormat; | ||
125 | + transportData.transportConfiguration.transportPayloadTypeConfiguration.deviceAttributesProtoSchema = | ||
126 | + val.deviceAttributesProtoSchema; | ||
127 | + transportData.transportConfiguration.transportPayloadTypeConfiguration.deviceRpcRequestProtoSchema = | ||
128 | + val.deviceRpcRequestProtoSchema; | ||
129 | + transportData.transportConfiguration.transportPayloadTypeConfiguration.deviceRpcResponseProtoSchema = | ||
130 | + val.deviceRpcResponseProtoSchema; | ||
131 | + transportData.transportConfiguration.transportPayloadTypeConfiguration.deviceTelemetryProtoSchema = | ||
132 | + val.deviceTelemetryProtoSchema; | ||
133 | + transportData.transportConfiguration.type = val.transportType; | ||
134 | + transportData.transportConfiguration.clientSettings.powerMode = val.powerMode; | ||
135 | + transportData.transportConfiguration.clientSettings.edrxCycle = val.edrxCycle; | ||
136 | + transportData.transportConfiguration.clientSettings.psmActivityTimer = val.psmActivityTimer; | ||
137 | + transportData.transportConfiguration.clientSettings.pagingTransmissionWindow = | ||
138 | + val.pagingTransmissionWindow; | ||
139 | + transportData.transportConfiguration.coapDeviceTypeConfiguration.coapDeviceType = | ||
140 | + val.coapDeviceType; | ||
141 | + return transportData; | ||
73 | }; | 142 | }; |
74 | return { | 143 | return { |
75 | customResetFunc, | 144 | customResetFunc, |
76 | - customSubmitFunc, | ||
77 | register, | 145 | register, |
78 | setStepTwoFieldsValueFunc, | 146 | setStepTwoFieldsValueFunc, |
79 | customClearStepTwoValueFunc, | 147 | customClearStepTwoValueFunc, |
@@ -84,7 +152,16 @@ | @@ -84,7 +152,16 @@ | ||
84 | </script> | 152 | </script> |
85 | <style lang="less" scoped> | 153 | <style lang="less" scoped> |
86 | .step2 { | 154 | .step2 { |
87 | - width: 500px; | ||
88 | - margin: 0 auto; | 155 | + width: 100%; |
156 | + .step2-style { | ||
157 | + width: 43vw; | ||
158 | + // height: 50vh; | ||
159 | + border: 1px solid gray; | ||
160 | + margin: 0vh 0.6vw; | ||
161 | + border-radius: 4px; | ||
162 | + } | ||
163 | + } | ||
164 | + ::-webkit-scrollbar { | ||
165 | + display: none; | ||
89 | } | 166 | } |
90 | </style> | 167 | </style> |
src/views/device/profiles/step/DeviceProfileStep3.vue
deleted
100644 → 0
1 | -<template> | ||
2 | - <div> | ||
3 | - <div> | ||
4 | - <div | ||
5 | - v-if="!getIsEchoEditStatus ? alarmsData.length == 0 : echoEditData.length == 0" | ||
6 | - style="text-align: center" | ||
7 | - > | ||
8 | - <p style="font-size: large">未配置报警规则</p> | ||
9 | - </div> | ||
10 | - <div> | ||
11 | - <template | ||
12 | - v-for="(item, index) in !getIsEchoEditStatus ? alarmsData : echoEditData" | ||
13 | - :key="index" | ||
14 | - > | ||
15 | - <div class="cursor-pointer" style="position: relative; top: 3.5vh; right: -41.6vw"> | ||
16 | - <img | ||
17 | - style="cursor: pointer" | ||
18 | - @click="removeAlarmRule(item, index)" | ||
19 | - alt="移除" | ||
20 | - src="../../../../assets/images/delete.png" | ||
21 | - /> | ||
22 | - </div> | ||
23 | - <div | ||
24 | - style=" | ||
25 | - margin-left: 0.21vw; | ||
26 | - border-radius: 4px; | ||
27 | - width: 44vw; | ||
28 | - height: 47vh; | ||
29 | - border: 1px solid grey; | ||
30 | - overflow-y: scroll; | ||
31 | - " | ||
32 | - > | ||
33 | - <CommonCpns | ||
34 | - :ref="ruleRef.createRuleRefs" | ||
35 | - :step3FatherEmitCpnData="!getIsEchoEditStatus ? 1 : item" | ||
36 | - :step3FatherEmitCpnStatus=" | ||
37 | - !getIsEchoEditStatus ? !getIsEchoEditStatus : getIsEchoEditStatus | ||
38 | - " | ||
39 | - /> | ||
40 | - </div> | ||
41 | - </template> | ||
42 | - </div> | ||
43 | - </div> | ||
44 | - <!-- 按钮 --> | ||
45 | - <div style="margin-left: 14.5vw; margin-top: 2vh"> | ||
46 | - <a-button class="mr-5" @click="prevStepFunc">上一步</a-button> | ||
47 | - <a-button @click="nextStepFunc">下一步</a-button> | ||
48 | - <a-button | ||
49 | - v-if="btnClose" | ||
50 | - style="margin-left: 20px" | ||
51 | - type="primary" | ||
52 | - @click="clickAddAlaramRuleFunc" | ||
53 | - >添加报警规则</a-button | ||
54 | - > | ||
55 | - </div> | ||
56 | - <!-- 按钮 --> | ||
57 | - </div> | ||
58 | -</template> | ||
59 | - | ||
60 | -<script lang="ts"> | ||
61 | - import { defineComponent, ref, getCurrentInstance, reactive, watch, nextTick } from 'vue'; | ||
62 | - import CommonCpns from './common/index.vue'; | ||
63 | - import { deteleObject } from '/@/hooks/web/useFilter'; | ||
64 | - | ||
65 | - export default defineComponent({ | ||
66 | - components: { | ||
67 | - CommonCpns, | ||
68 | - }, | ||
69 | - props: ['isShowAddRule'], | ||
70 | - emits: ['next', 'prev'], | ||
71 | - setup(props, { emit }) { | ||
72 | - const { proxy } = getCurrentInstance() as any; | ||
73 | - const commonCpnsRef = ref(null); | ||
74 | - const alarmsData: any = ref([]); | ||
75 | - const echoEditData: any = ref([]); | ||
76 | - const getIsEchoEditStatus = ref(false); | ||
77 | - const btnClose = ref(true); | ||
78 | - let addObj = reactive({}); | ||
79 | - const ruleRef = { | ||
80 | - createRuleRefs: ref([]), | ||
81 | - }; | ||
82 | - const prevStepFunc = () => { | ||
83 | - emit('prev'); | ||
84 | - }; | ||
85 | - const nextStepFunc = async () => { | ||
86 | - emit('next', { | ||
87 | - alarms: alarmsData.value, | ||
88 | - }); | ||
89 | - }; | ||
90 | - const getStep3AllDataFunc = async (e) => { | ||
91 | - let temp = []; | ||
92 | - if (e == 1) { | ||
93 | - temp = alarmsData.value; | ||
94 | - } else { | ||
95 | - temp = echoEditData.value; | ||
96 | - } | ||
97 | - for (let i = 0; i < temp.length; i++) { | ||
98 | - for (const item of ruleRef.createRuleRefs.value) { | ||
99 | - addObj = await item.getStep3AllDataFunc(); | ||
100 | - alarmsData.value.push(addObj); | ||
101 | - } | ||
102 | - } | ||
103 | - /** | ||
104 | - * 过滤null和重复对象和1 | ||
105 | - */ | ||
106 | - alarmsData.value = alarmsData.value.filter((i) => i); | ||
107 | - alarmsData.value = deteleObject(alarmsData.value); | ||
108 | - alarmsData.value = alarmsData.value.filter((f) => f !== 1); | ||
109 | - return alarmsData.value; | ||
110 | - }; | ||
111 | - const clickAddAlaramRuleFunc = async () => { | ||
112 | - alarmsData.value.push(1); | ||
113 | - nextTick(() => { | ||
114 | - ruleRef.createRuleRefs.value[alarmsData.value.length - 1].updateCpnSchemaSelectEnableFunc( | ||
115 | - alarmsData.value.length - 1 | ||
116 | - ); | ||
117 | - }); | ||
118 | - | ||
119 | - // try { | ||
120 | - // // proxy.$refs['commonCpnsRef' + 0].updateCpnSchemaSelectEnableFunc(); | ||
121 | - // // proxy.$refs['commonCpnsRef' + 1].updateCpnSchemaSelectEnableFunc(); | ||
122 | - // if (getIsEchoEditStatus.value) { | ||
123 | - // echoEditData.value.push(1); | ||
124 | - // } | ||
125 | - // } catch {} | ||
126 | - }; | ||
127 | - const removeAlarmRule = (e, i) => { | ||
128 | - const key = alarmsData.value.indexOf(e); | ||
129 | - console.log(i); | ||
130 | - alarmsData.value.splice(key, 1); | ||
131 | - if (getIsEchoEditStatus.value) { | ||
132 | - const key1 = echoEditData.value.indexOf(e); | ||
133 | - console.log(i); | ||
134 | - echoEditData.value.splice(key1, 1); | ||
135 | - } | ||
136 | - }; | ||
137 | - /** | ||
138 | - * 清空数据 | ||
139 | - */ | ||
140 | - const clearStep3DataFunc = () => { | ||
141 | - alarmsData.value.length = 0; | ||
142 | - echoEditData.value.length = 0; | ||
143 | - proxy.$refs.commonCpnsRef?.clearStep3CpnDataFunc(); | ||
144 | - getIsEchoEditStatus.value = false; | ||
145 | - }; | ||
146 | - /** | ||
147 | - * 回显数据 | ||
148 | - */ | ||
149 | - const echoStep3DataFunc = (e, s) => { | ||
150 | - getIsEchoEditStatus.value = s; | ||
151 | - if (getIsEchoEditStatus.value === true) { | ||
152 | - echoEditData.value = e; | ||
153 | - if (echoEditData.value == null) { | ||
154 | - echoEditData.value = []; | ||
155 | - } | ||
156 | - } | ||
157 | - }; | ||
158 | - watch( | ||
159 | - () => props.isShowAddRule, | ||
160 | - (v) => { | ||
161 | - btnClose.value = v; | ||
162 | - } | ||
163 | - ); | ||
164 | - return { | ||
165 | - clickAddAlaramRuleFunc, | ||
166 | - prevStepFunc, | ||
167 | - nextStepFunc, | ||
168 | - alarmsData, | ||
169 | - removeAlarmRule, | ||
170 | - commonCpnsRef, | ||
171 | - clearStep3DataFunc, | ||
172 | - echoStep3DataFunc, | ||
173 | - echoEditData, | ||
174 | - getIsEchoEditStatus, | ||
175 | - getStep3AllDataFunc, | ||
176 | - btnClose, | ||
177 | - ruleRef, | ||
178 | - }; | ||
179 | - }, | ||
180 | - }); | ||
181 | -</script> | ||
182 | - | ||
183 | -<style lang="less" scoped> | ||
184 | - ::-webkit-scrollbar { | ||
185 | - display: none; | ||
186 | - } | ||
187 | -</style> |
src/views/device/profiles/step/DeviceProfileStep4.vue
deleted
100644 → 0
1 | -<template> | ||
2 | - <div class="step-4"> | ||
3 | - <div v-if="isShow"> | ||
4 | - <BasicForm :showResetButton="false" :showSubmitButton="false" @register="register" /> | ||
5 | - </div> | ||
6 | - <div | ||
7 | - style=" | ||
8 | - display: flex; | ||
9 | - width: 17vw; | ||
10 | - height: 4vh; | ||
11 | - flex-direction: row; | ||
12 | - align-items: center; | ||
13 | - justify-content: space-between; | ||
14 | - margin-left: 14vw; | ||
15 | - margin-top: -1.2vh; | ||
16 | - " | ||
17 | - > | ||
18 | - <div style="width: 5vw; height: 4vh; margin-top: -3.6vh"> | ||
19 | - <Button type="primary" style="border-radius: 2px" class="mt-5" @click="prevStep4" | ||
20 | - >上一步</Button | ||
21 | - > | ||
22 | - </div> | ||
23 | - <div style="width: 5vw; height: 4vh; margin-top: -3.6vh"> | ||
24 | - <Button type="default" style="border-radius: 2px" class="mt-5" @click="addStep4"> | ||
25 | - 打开告警通知</Button | ||
26 | - > | ||
27 | - </div> | ||
28 | - <div style="width: 5vw; height: 4vh; margin-top: -3.6vh; margin-left: 2.2vw"> | ||
29 | - <Button type="default" style="border-radius: 2px" class="mt-5" @click="closeStep4"> | ||
30 | - 关闭</Button | ||
31 | - > | ||
32 | - </div> | ||
33 | - </div> | ||
34 | - </div> | ||
35 | -</template> | ||
36 | -<script lang="ts"> | ||
37 | - import { defineComponent, ref, nextTick } from 'vue'; | ||
38 | - import { BasicForm, useForm } from '/@/components/Form/index'; | ||
39 | - import { alertContactsSchemas } from './data'; | ||
40 | - import { Button } from '/@/components/Button'; | ||
41 | - | ||
42 | - export default defineComponent({ | ||
43 | - components: { | ||
44 | - BasicForm, | ||
45 | - Button, | ||
46 | - }, | ||
47 | - emits: ['prev', 'register'], | ||
48 | - setup(_, { emit }) { | ||
49 | - const getValueData: any = ref({}); | ||
50 | - const isShow = ref(false); | ||
51 | - const [register, { setProps, validate, setFieldsValue, resetFields }] = useForm({ | ||
52 | - schemas: alertContactsSchemas, | ||
53 | - actionColOptions: { | ||
54 | - span: 24, | ||
55 | - }, | ||
56 | - }); | ||
57 | - const setAlaramContactAndNoticeMethodFunc = (v) => { | ||
58 | - setFieldsValue(v); | ||
59 | - }; | ||
60 | - const clearAlaramContactAndNoticeMethodFunc = () => { | ||
61 | - try { | ||
62 | - nextTick(() => { | ||
63 | - // resetFields(); | ||
64 | - }); | ||
65 | - } catch {} | ||
66 | - }; | ||
67 | - const getAllFields = async (getV) => { | ||
68 | - const values = await validate(); | ||
69 | - getValueData.value = values; | ||
70 | - getV = getValueData.value; | ||
71 | - return getV; | ||
72 | - }; | ||
73 | - const prevStep4 = () => { | ||
74 | - emit('prev'); | ||
75 | - }; | ||
76 | - const addStep4 = () => { | ||
77 | - isShow.value = true; | ||
78 | - }; | ||
79 | - const closeStep4 = () => { | ||
80 | - isShow.value = false; | ||
81 | - }; | ||
82 | - const step3LinkStep4DefalutClose = () => { | ||
83 | - isShow.value = false; | ||
84 | - }; | ||
85 | - return { | ||
86 | - clearAlaramContactAndNoticeMethodFunc, | ||
87 | - setAlaramContactAndNoticeMethodFunc, | ||
88 | - getAllFields, | ||
89 | - register, | ||
90 | - setProps, | ||
91 | - addStep4, | ||
92 | - prevStep4, | ||
93 | - isShow, | ||
94 | - closeStep4, | ||
95 | - step3LinkStep4DefalutClose, | ||
96 | - }; | ||
97 | - }, | ||
98 | - }); | ||
99 | -</script> | ||
100 | -<style lang="less" scoped> | ||
101 | - .step-4 { | ||
102 | - // :deep .ant-btn { | ||
103 | - // position: relative; | ||
104 | - // right: 375px; | ||
105 | - // top: 18px; | ||
106 | - // } | ||
107 | - } | ||
108 | -</style> |
src/views/device/profiles/step/common/format-data/index.ts
deleted
100644 → 0
1 | -export const formatAlarmRuleConditionsData = (item) => { | ||
2 | - console.log('==', item); | ||
3 | - let item1 = []; | ||
4 | - item1 = item.map((f) => { | ||
5 | - return f?.predicate.operation == 'EQUAL' | ||
6 | - ? f?.key.key + '等于' + f?.predicate.value.defaultValue | ||
7 | - : f?.predicate.operation == 'STARTS_WITH' | ||
8 | - ? f?.key.key + '开始于' + f?.predicate.value.defaultValue | ||
9 | - : f?.predicate.operation == 'ENDS_WITH' | ||
10 | - ? f?.key.key + '结束于' + f?.predicate.value.defaultValue | ||
11 | - : f?.predicate.operation == 'NOT_CONTAINS' | ||
12 | - ? f?.key.key + '不包含' + f?.predicate.value.defaultValue | ||
13 | - : f?.predicate.operation == 'NOT_EQUAL' | ||
14 | - ? f?.key.key + '不等于' + f?.predicate.value.defaultValue | ||
15 | - : f?.predicate.operation == 'GREATER' | ||
16 | - ? f?.key.key + '大于' + f?.predicate.value.defaultValue | ||
17 | - : f?.predicate.operation == 'LESS' | ||
18 | - ? f?.key.key + '小于' + f?.predicate.value.defaultValue | ||
19 | - : f?.predicate.operation == 'GREATER_OR_EQUAL' | ||
20 | - ? f?.key.key + '大于或等于' + f?.predicate.value.defaultValue | ||
21 | - : f?.key.key + '小于或等于' + f?.predicate.value.defaultValue; | ||
22 | - }); | ||
23 | - return item1; | ||
24 | -}; | ||
25 | - | ||
26 | -export const formatEnableRuleData = (f) => { | ||
27 | - return f?.type == 'ANY_TIME' | ||
28 | - ? '始终启用' | ||
29 | - : f?.type == 'SPECIFIC_TIME' | ||
30 | - ? '定时启用' | ||
31 | - : '自定义启用'; | ||
32 | -}; | ||
33 | - | ||
34 | -export const formatAlarmRuleConditionsData1 = (v) => { | ||
35 | - let openEditRuleConditObj: any = {}; | ||
36 | - for (const i in v) { | ||
37 | - if (i == 'CRITICAL') { | ||
38 | - openEditRuleConditObj = v[i]; | ||
39 | - } else if (i == 'MAJOR') { | ||
40 | - openEditRuleConditObj = v[i]; | ||
41 | - } else if (i == 'MINOR') { | ||
42 | - openEditRuleConditObj = v[i]; | ||
43 | - } else if (i == 'WARNING') { | ||
44 | - openEditRuleConditObj = v[i]; | ||
45 | - } else if (i == 'INDETERMINATE') { | ||
46 | - openEditRuleConditObj = v[i]; | ||
47 | - } | ||
48 | - } | ||
49 | - return openEditRuleConditObj; | ||
50 | -}; |
src/views/device/profiles/step/common/index.vue
deleted
100644 → 0
1 | -<template> | ||
2 | - <div style="margin-left: 0.6vw"> | ||
3 | - <!-- 报警类型和传递报警--> | ||
4 | - <div> | ||
5 | - <div class="alert-type" style="margin-left: -2.1vw; margin-top: 1vh"> | ||
6 | - <BasicForm @register="registerForm" /> | ||
7 | - </div> | ||
8 | - <div style="margin-top: -15px"> | ||
9 | - <div style="margin-left: -8px; margin-top: -10px"> | ||
10 | - <BasicForm | ||
11 | - @register="registerFormHighSetting" | ||
12 | - style="margin-left: 12px; margin-top: -10px" | ||
13 | - > | ||
14 | - <template #checkBox="{ model, field }"> | ||
15 | - <Checkbox v-model:checked="model[field]">传递报警</Checkbox> | ||
16 | - </template> | ||
17 | - </BasicForm> | ||
18 | - </div> | ||
19 | - </div> | ||
20 | - </div> | ||
21 | - <!-- 报警类型和传递报警 --> | ||
22 | - <!-- 创建报警规则 --> | ||
23 | - <div style="margin-top: -6vh"> | ||
24 | - <p style="margin-left: 10px; font-size: medium">创建报警规则</p> | ||
25 | - <p | ||
26 | - v-if="createAlarmRuleData.length === 0 && createEditAlarmRuleData.length == 0" | ||
27 | - style="text-align: center; font-size: large" | ||
28 | - >请添加创建报警规则</p | ||
29 | - > | ||
30 | - <div v-if="createAlarmRuleData.length > 0 || createEditAlarmRuleData.length > 0"> | ||
31 | - <template | ||
32 | - v-for="(item, index) in !isStep3FatherAddOrEditStatus | ||
33 | - ? createAlarmRuleData | ||
34 | - : createEditAlarmRuleData" | ||
35 | - :key="index" | ||
36 | - > | ||
37 | - <div class="cursor-pointer" style="position: relative; top: 15.5vh; right: -40.8vw"> | ||
38 | - <img | ||
39 | - style="cursor: pointer" | ||
40 | - @click="removeAddCreateRuleFunc(item, index)" | ||
41 | - alt="移除" | ||
42 | - src="../../../../../../src/assets/images/close.png" | ||
43 | - /> | ||
44 | - </div> | ||
45 | - <div style="width: 38vw; height: 30vh; border: 1px solid grey; border-radius: 4px"> | ||
46 | - <div style="margin-top: 1vh"> | ||
47 | - <AlarmSeverityCpn | ||
48 | - :ref="conditionRefs.AlarmSeverityRef" | ||
49 | - :AlarmSeverityCpnData="!isStep3FatherAddOrEditStatus ? 1 : item" | ||
50 | - /> | ||
51 | - <DetailTemplateCpn | ||
52 | - :ref="conditionRefs.DetailTemplateRef" | ||
53 | - :DetailTemplateCpnData="!isStep3FatherAddOrEditStatus ? 1 : item" | ||
54 | - /> | ||
55 | - <AlarmRuleConditionsCpn | ||
56 | - :ref="conditionRefs.AlarmRuleConditionsRef" | ||
57 | - @getAllFieldsRule="getAlarmRuleConditionsValFunc" | ||
58 | - /> | ||
59 | - <EnableRuleCpn | ||
60 | - :ref="conditionRefs.EnableRuleRef" | ||
61 | - @register="registerEnableRuleModal" | ||
62 | - @getAllFieldsEnab="getEnableRuleFunc" | ||
63 | - /> | ||
64 | - <div style="margin-left: 0.5vw"> | ||
65 | - <span style="color: red">请添加报警规则条件:</span> | ||
66 | - <a-button | ||
67 | - style="border-radius: 10px" | ||
68 | - class="mt-5" | ||
69 | - @click="clickAddAlarmRuleConditionsFunc(item, index)" | ||
70 | - > | ||
71 | - <PlusCircleOutlined /> | ||
72 | - </a-button> | ||
73 | - <div> | ||
74 | - <div v-for="(item1, index1) in formatAlarmRuleConditions" :key="index1"> | ||
75 | - <p v-if="item1.key === index && item1.data.length > 0"> | ||
76 | - 报警规则条件:{{ formatAlarmRuleConditionsData(item1.data) }} | ||
77 | - </p> | ||
78 | - </div> | ||
79 | - </div> | ||
80 | - </div> | ||
81 | - <div style="margin-left: 0.5vw"> | ||
82 | - <span style="color: red">启用规则:</span> | ||
83 | - <a-button style="border-radius: 10px" class="mt-5" @click="clickAddEnableRuleFunc"> | ||
84 | - <PlusCircleOutlined /> | ||
85 | - </a-button> | ||
86 | - <div> | ||
87 | - <p v-if="formatEnableRule.length == 0 && !isStep3FatherAddOrEditStatus" | ||
88 | - >启用规则:始终启用</p | ||
89 | - > | ||
90 | - <div> | ||
91 | - <template | ||
92 | - v-for="(item2, index2) in !isStep3FatherAddOrEditStatus | ||
93 | - ? formatEnableRule | ||
94 | - : []" | ||
95 | - :key="index2" | ||
96 | - > | ||
97 | - <p v-if="index2 == index"> 启用规则:{{ formatEnableRuleFunc(item2) }} </p> | ||
98 | - </template> | ||
99 | - </div> | ||
100 | - <div v-if="isStep3FatherAddOrEditStatus && formatEditEnableData.length == 0"> | ||
101 | - <p> 启用规则:{{ formatEnableRuleFuncData(item) }} </p> | ||
102 | - </div> | ||
103 | - <template | ||
104 | - v-for="(item111, index111) in !isStep3FatherAddOrEditStatus | ||
105 | - ? [] | ||
106 | - : formatEditEnableData" | ||
107 | - :key="index111" | ||
108 | - > | ||
109 | - <div | ||
110 | - v-if=" | ||
111 | - index111 == index && | ||
112 | - isStep3FatherAddOrEditStatus && | ||
113 | - formatEditEnableData.length > 0 | ||
114 | - " | ||
115 | - > | ||
116 | - <p> 启用规则:{{ formatEditEnableRuleFunc(item111) }} </p> | ||
117 | - </div> | ||
118 | - </template> | ||
119 | - </div> | ||
120 | - </div> | ||
121 | - <div></div> | ||
122 | - <div></div> | ||
123 | - </div> | ||
124 | - </div> | ||
125 | - </template> | ||
126 | - </div> | ||
127 | - <div> | ||
128 | - <a-button style="border-radius: 10px" class="mt-5" @click="clickAddCreateRuleFunc"> | ||
129 | - <PlusCircleOutlined /> | ||
130 | - 添加创建条件 | ||
131 | - </a-button> | ||
132 | - </div> | ||
133 | - <!-- 清除报警规则 --> | ||
134 | - <div style="margin-top: 2vh"> | ||
135 | - <p style="margin-left: 10px; font-size: medium">清除报警规则</p> | ||
136 | - <div | ||
137 | - v-if="isClearStatus" | ||
138 | - class="cursor-pointer" | ||
139 | - style="position: relative; top: 15.5vh; right: -40.8vw" | ||
140 | - > | ||
141 | - <img | ||
142 | - style="cursor: pointer" | ||
143 | - @click="removeAddClearRuleFunc" | ||
144 | - alt="移除" | ||
145 | - src="../../../../../../src/assets/images/close.png" | ||
146 | - /> | ||
147 | - </div> | ||
148 | - <div | ||
149 | - v-if="isClearStatus" | ||
150 | - style="width: 38vw; height: 30vh; border: 1px solid grey; border-radius: 4px" | ||
151 | - > | ||
152 | - <div style="margin-top: 2vh"> | ||
153 | - <div style="height: 3vh"> | ||
154 | - <BasicForm @register="registerFormChangeClearDetail" /> | ||
155 | - </div> | ||
156 | - <AlarmRuleConditionsCpn | ||
157 | - ref="AlarmClearRuleConditionsRef" | ||
158 | - @register="registerClearAlarmRuleConditionsModal" | ||
159 | - @getAllFieldsRule="getClearAlarmRuleConditionsValFunc" | ||
160 | - /> | ||
161 | - <EnableRuleCpn | ||
162 | - ref="EnableClearRuleRef" | ||
163 | - @register="registerClearEnableRuleModal" | ||
164 | - @getAllFieldsEnab="getClearEnableRuleFunc" | ||
165 | - /> | ||
166 | - <div style="margin-left: 0.5vw"> | ||
167 | - <span style="color: red">请添加报警规则条件:</span> | ||
168 | - <a-button | ||
169 | - style="border-radius: 10px" | ||
170 | - class="mt-5" | ||
171 | - @click="clickClearAlarmRuleConditionsFunc" | ||
172 | - > | ||
173 | - <PlusCircleOutlined /> | ||
174 | - </a-button> | ||
175 | - <div> | ||
176 | - <div> | ||
177 | - <template v-for="(item3, index3) in formatClearAlarmRuleConditions" :key="index3"> | ||
178 | - <span style="display: none">{{ index3 }}</span> | ||
179 | - <p> 报警规则条件:{{ formatClearAlarmRuleConditionsFunc(item3) }} </p> | ||
180 | - </template> | ||
181 | - </div> | ||
182 | - </div> | ||
183 | - </div> | ||
184 | - <div style="margin-left: 0.5vw"> | ||
185 | - <span style="color: red">启用规则:</span> | ||
186 | - <a-button style="border-radius: 10px" class="mt-5" @click="clickClearEnableRuleFunc"> | ||
187 | - <PlusCircleOutlined /> | ||
188 | - </a-button> | ||
189 | - <div> | ||
190 | - <p v-if="formatEnableRule.length == 0 && !isStep3FatherAddOrEditStatus" | ||
191 | - >启用规则:始终启用</p | ||
192 | - > | ||
193 | - <div> | ||
194 | - <template v-for="(item4, index4) in formatClearEnableRule" :key="index4"> | ||
195 | - <span style="display: none">{{ index4 }}</span> | ||
196 | - <p> 启用规则:{{ formatClearEnableRuleFunc(item4) }} </p> | ||
197 | - </template> | ||
198 | - </div> | ||
199 | - <div> | ||
200 | - <template | ||
201 | - v-for="(item44, index44) in isStep3FatherAddOrEditStatus | ||
202 | - ? formatEditClearEnableRule | ||
203 | - : []" | ||
204 | - :key="index44" | ||
205 | - > | ||
206 | - <span style="display: none">{{ index44 }}</span> | ||
207 | - <p> 启用规则:{{ formatEnableRuleData(item44) }} </p> | ||
208 | - </template> | ||
209 | - </div> | ||
210 | - </div> | ||
211 | - </div> | ||
212 | - <div></div> | ||
213 | - <div></div> | ||
214 | - </div> | ||
215 | - </div> | ||
216 | - <div style="position: relative; top: -1.2vh"> | ||
217 | - <a-button style="border-radius: 10px" class="mt-5" @click="clickAddClearRuleFunc"> | ||
218 | - <PlusCircleOutlined /> | ||
219 | - 添加清除条件 | ||
220 | - </a-button> | ||
221 | - </div> | ||
222 | - </div> | ||
223 | - <!-- 清除报警规则 --> | ||
224 | - </div> | ||
225 | - <!-- 创建报警规则 --> | ||
226 | - </div> | ||
227 | -</template> | ||
228 | -<script lang="ts"> | ||
229 | - import { defineComponent, ref, nextTick, getCurrentInstance, reactive, watch } from 'vue'; | ||
230 | - import { BasicForm, useForm } from '/@/components/Form'; | ||
231 | - import { step3Schemas, step3HighSetting, formChangeDetailSchema } from '../data'; | ||
232 | - import { Checkbox } from 'ant-design-vue'; | ||
233 | - import { PlusCircleOutlined } from '@ant-design/icons-vue'; | ||
234 | - import AlarmSeverityCpn from '../cpns/alarmseverity/index.vue'; | ||
235 | - import DetailTemplateCpn from '../cpns/detailtemplate/index.vue'; | ||
236 | - import AlarmRuleConditionsCpn from '../cpns/alarmruleconditions/index.vue'; | ||
237 | - import EnableRuleCpn from '../cpns/enablerule/index.vue'; | ||
238 | - import { useModal } from '/@/components/Modal'; | ||
239 | - import { generateUUID } from '/@/hooks/web/useGenerateUUID'; | ||
240 | - | ||
241 | - import { | ||
242 | - formatAlarmRuleConditionsData, | ||
243 | - formatEnableRuleData, | ||
244 | - formatAlarmRuleConditionsData1, | ||
245 | - } from '../common/format-data/index'; | ||
246 | - | ||
247 | - export default defineComponent({ | ||
248 | - components: { | ||
249 | - BasicForm, | ||
250 | - Checkbox, | ||
251 | - PlusCircleOutlined, | ||
252 | - AlarmSeverityCpn, | ||
253 | - DetailTemplateCpn, | ||
254 | - AlarmRuleConditionsCpn, | ||
255 | - EnableRuleCpn, | ||
256 | - }, | ||
257 | - props: ['step3FatherEmitCpnData', 'step3FatherEmitCpnStatus'], | ||
258 | - setup(props) { | ||
259 | - const getConditionData = ref([]); | ||
260 | - const getConditionData1 = ref([{ key: 0, data: {} }]); | ||
261 | - const { proxy } = getCurrentInstance() as any; | ||
262 | - const createAlarmRuleData: any = ref([1]); | ||
263 | - const createEditAlarmRuleData: any = ref([]); | ||
264 | - const AlarmRuleConditionsRef = ref(null); | ||
265 | - const EnableRuleRef = ref(null); | ||
266 | - const AlarmClearRuleConditionsRef = ref(null); | ||
267 | - const EnableClearRuleRef = ref(null); | ||
268 | - const formatAlarmRuleConditions = ref([]); | ||
269 | - const formatClearAlarmRuleConditions: any = ref([]); | ||
270 | - const formatEditClearAlarmRuleConditions: any = ref([]); | ||
271 | - const formatEnableRule: any = ref([]); | ||
272 | - const formatClearEnableRule: any = ref([]); | ||
273 | - const formatEditClearEnableRule: any = ref([]); | ||
274 | - const level = ref(['CRITICAL', 'MAJOR', 'MINOR', 'WARNING', 'INDETERMINATE']); | ||
275 | - const conditionRefs = { | ||
276 | - AlarmRuleConditionsRef: ref([]), | ||
277 | - AlarmSeverityRef: ref([]), | ||
278 | - DetailTemplateRef: ref([]), | ||
279 | - EnableRuleRef: ref([]), | ||
280 | - }; | ||
281 | - let alaramsObj: any = reactive({ | ||
282 | - alarmType: null, | ||
283 | - propagate: null, | ||
284 | - propagateRelationTypes: null, | ||
285 | - clearRule: {}, | ||
286 | - createRules: {}, | ||
287 | - id: '', | ||
288 | - }); | ||
289 | - const AlarmSeverityRef = ref(null); | ||
290 | - const DetailTemplateRef = ref(null); | ||
291 | - const tempDetailTemplateData: any = ref([]); | ||
292 | - const isClearStatus = ref(false); | ||
293 | - const isStep3FatherAddOrEditStatus = ref(false); | ||
294 | - let val4: any = reactive({}); | ||
295 | - let val5: any = reactive({}); | ||
296 | - let val6: any = ref([]); | ||
297 | - let val7: any = ref(null); | ||
298 | - let val9: any = ref([]); | ||
299 | - let val10: any = ref(null); | ||
300 | - const formatEditRuleData: any = ref([]); | ||
301 | - const formatEditEnableData: any = ref([]); | ||
302 | - const [registerEnableRuleModal, { openModal: openModalEnableRule }] = useModal(); | ||
303 | - const [ | ||
304 | - registerClearAlarmRuleConditionsModal, | ||
305 | - { openModal: openModalClearAlarmRuleConditions }, | ||
306 | - ] = useModal(); | ||
307 | - const [registerClearEnableRuleModal, { openModal: openModalClearEnableRule }] = useModal(); | ||
308 | - const [ | ||
309 | - registerForm, | ||
310 | - { | ||
311 | - setFieldsValue: setAlarmTypeValFunc, | ||
312 | - validate: getAlarmTypeValFunc, | ||
313 | - resetFields: resetAlarmTypeValFunc, | ||
314 | - }, | ||
315 | - ] = useForm({ | ||
316 | - labelWidth: 120, | ||
317 | - schemas: step3Schemas, | ||
318 | - showResetButton: false, | ||
319 | - showSubmitButton: false, | ||
320 | - }); | ||
321 | - const [ | ||
322 | - registerFormHighSetting, | ||
323 | - { | ||
324 | - setFieldsValue: setDeliverAlertsValFunc, | ||
325 | - getFieldsValue: getDeliverAlertsValFunc, | ||
326 | - resetFields: resetDeliverAlertsValFunc, | ||
327 | - }, | ||
328 | - ] = useForm({ | ||
329 | - labelWidth: 120, | ||
330 | - schemas: step3HighSetting, | ||
331 | - showResetButton: false, | ||
332 | - showSubmitButton: false, | ||
333 | - actionColOptions: { | ||
334 | - span: 24, | ||
335 | - }, | ||
336 | - }); | ||
337 | - const [ | ||
338 | - registerFormChangeClearDetail, | ||
339 | - { | ||
340 | - setFieldsValue: setRegisterFormClearChangeDetailFunc, | ||
341 | - getFieldsValue: getRegisterFormClearChangeDetailFunc, | ||
342 | - resetFields: resetRegisterFormClearChangeDetailFunc, | ||
343 | - }, | ||
344 | - ] = useForm({ | ||
345 | - labelWidth: 120, | ||
346 | - schemas: formChangeDetailSchema, | ||
347 | - showResetButton: false, | ||
348 | - showSubmitButton: false, | ||
349 | - actionColOptions: { | ||
350 | - span: 24, | ||
351 | - }, | ||
352 | - }); | ||
353 | - const clickAddCreateRuleFunc = () => { | ||
354 | - let i = 1; | ||
355 | - i--; | ||
356 | - createAlarmRuleData.value.push(1); | ||
357 | - nextTick(() => { | ||
358 | - conditionRefs.AlarmSeverityRef.value.map((item, index) => { | ||
359 | - if (i === index) { | ||
360 | - nextTick(() => { | ||
361 | - item.updateSchemaSelectDisableFunc(); | ||
362 | - }); | ||
363 | - } | ||
364 | - }); | ||
365 | - }); | ||
366 | - if (isStep3FatherAddOrEditStatus.value) { | ||
367 | - createEditAlarmRuleData.value.push(1); | ||
368 | - } | ||
369 | - }; | ||
370 | - const updateCpnSchemaSelectEnableFunc = (select) => { | ||
371 | - conditionRefs.AlarmSeverityRef.value.map((item, index) => { | ||
372 | - if (select === index) { | ||
373 | - nextTick(() => { | ||
374 | - item.updateSchemaSelectEnableFunc(); | ||
375 | - }); | ||
376 | - } | ||
377 | - }); | ||
378 | - }; | ||
379 | - | ||
380 | - /** | ||
381 | - * 获取清除报警规则数据 | ||
382 | - */ | ||
383 | - const clickAddClearRuleFunc = () => { | ||
384 | - isClearStatus.value = true; | ||
385 | - }; | ||
386 | - const removeAddClearRuleFunc = () => { | ||
387 | - isClearStatus.value = false; | ||
388 | - alaramsObj.clearRule = null; | ||
389 | - }; | ||
390 | - const removeAddCreateRuleFunc = (e, i) => { | ||
391 | - const key = createAlarmRuleData.value.indexOf(e); | ||
392 | - createAlarmRuleData.value.splice(key, 1); | ||
393 | - console.log(i); | ||
394 | - Object.keys(alaramsObj.createRules).forEach((i1, e) => { | ||
395 | - if (e == i) { | ||
396 | - delete alaramsObj.createRules[i1]; | ||
397 | - } | ||
398 | - }); | ||
399 | - if (isStep3FatherAddOrEditStatus.value) { | ||
400 | - const key1 = createEditAlarmRuleData.value.indexOf(e); | ||
401 | - createEditAlarmRuleData.value.splice(key1, 1); | ||
402 | - } | ||
403 | - }; | ||
404 | - const clickAddAlarmRuleConditionsFunc = (e, i) => { | ||
405 | - getConditionData.value = []; | ||
406 | - | ||
407 | - //获取对应下标 | ||
408 | - let currentAlarmCondition = { key: 0, data: {} }; | ||
409 | - let isUpdate = false; | ||
410 | - getConditionData1.value.forEach((obj) => { | ||
411 | - if (obj.data.length != undefined && obj.key == i) { | ||
412 | - currentAlarmCondition.key = i; | ||
413 | - currentAlarmCondition.data = obj.data; | ||
414 | - isUpdate = true; | ||
415 | - } | ||
416 | - }); | ||
417 | - getConditionData.value.push(currentAlarmCondition); | ||
418 | - conditionRefs.AlarmRuleConditionsRef.value.map((item, index) => { | ||
419 | - if (i === index) { | ||
420 | - nextTick(() => { | ||
421 | - item.resetDataFunc(index, currentAlarmCondition, isUpdate); | ||
422 | - }); | ||
423 | - } | ||
424 | - }); | ||
425 | - }; | ||
426 | - | ||
427 | - const clickAddEnableRuleFunc = () => { | ||
428 | - nextTick(() => { | ||
429 | - openModalEnableRule(true); | ||
430 | - proxy.$refs.DetailTemplateRef?.resetDataFunc(); | ||
431 | - }); | ||
432 | - }; | ||
433 | - const clickClearAlarmRuleConditionsFunc = () => { | ||
434 | - nextTick(() => { | ||
435 | - openModalClearAlarmRuleConditions(true); | ||
436 | - proxy.$refs.AlarmRuleConditionsRef?.resetDataFunc(); | ||
437 | - }); | ||
438 | - }; | ||
439 | - const clickClearEnableRuleFunc = () => { | ||
440 | - nextTick(() => { | ||
441 | - openModalClearEnableRule(true); | ||
442 | - proxy.$refs.DetailTemplateRef?.resetDataFunc(); | ||
443 | - }); | ||
444 | - }; | ||
445 | - const getAlarmRuleConditionsValFunc = (e) => { | ||
446 | - console.log('获取值'); | ||
447 | - if (!isStep3FatherAddOrEditStatus) { | ||
448 | - formatAlarmRuleConditions.value.push(e); | ||
449 | - } else { | ||
450 | - for (let i = 0; i < formatAlarmRuleConditions.value.length; i++) { | ||
451 | - if (formatAlarmRuleConditions.value[i].key == e.key) { | ||
452 | - formatAlarmRuleConditions.value.splice(i, 1); | ||
453 | - } | ||
454 | - } | ||
455 | - formatAlarmRuleConditions.value.push(e); | ||
456 | - } | ||
457 | - | ||
458 | - let addValue = undefined; | ||
459 | - getConditionData1.value.forEach((obj) => { | ||
460 | - if (Object.keys(obj.data).length != 0 && obj.key == e.key) { | ||
461 | - obj.data = e.data; | ||
462 | - } else { | ||
463 | - addValue = e; | ||
464 | - } | ||
465 | - }); | ||
466 | - if (addValue != undefined) { | ||
467 | - getConditionData1.value.push(addValue); | ||
468 | - } | ||
469 | - }; | ||
470 | - const getClearAlarmRuleConditionsValFunc = (e) => { | ||
471 | - formatClearAlarmRuleConditions.value.push({ | ||
472 | - condition: e, | ||
473 | - } as never); | ||
474 | - }; | ||
475 | - const formatClearAlarmRuleConditionsFunc = (e) => { | ||
476 | - // let formatMap = e.condition.map((f: any) => formatAlarmRuleConditionsData(f)); | ||
477 | - // return formatMap; | ||
478 | - }; | ||
479 | - const getEnableRuleFunc = (e) => { | ||
480 | - formatEnableRule.value.push(e); | ||
481 | - formatEditEnableData.value.push(e); | ||
482 | - }; | ||
483 | - const getClearEnableRuleFunc = (e) => { | ||
484 | - formatClearEnableRule.value.push(e); | ||
485 | - }; | ||
486 | - const formatEnableRuleFunc = (e) => { | ||
487 | - let formatMap = formatEnableRuleData(e); | ||
488 | - return formatMap; | ||
489 | - }; | ||
490 | - const formatEditEnableRuleFunc = (e) => { | ||
491 | - let formatMap = formatEnableRuleData(e); | ||
492 | - return formatMap; | ||
493 | - }; | ||
494 | - const formatClearEnableRuleFunc = (e) => { | ||
495 | - let formatMap = formatEnableRuleData(e); | ||
496 | - return formatMap; | ||
497 | - }; | ||
498 | - /** | ||
499 | - * 获取第三步所有的数据 | ||
500 | - */ | ||
501 | - const getStep3AllDataFunc = async () => { | ||
502 | - try { | ||
503 | - const UUID = generateUUID(); | ||
504 | - const val1 = await getAlarmTypeValFunc(); | ||
505 | - const val2 = getDeliverAlertsValFunc(); | ||
506 | - const val3 = []; | ||
507 | - val3.push(val2.propagateRelationTypes as never); | ||
508 | - alaramsObj.alarmType = val1.alarmType; | ||
509 | - alaramsObj.propagate = val2.propagate; | ||
510 | - alaramsObj.id = UUID; | ||
511 | - if (val2.propagateRelationTypes == undefined) { | ||
512 | - alaramsObj.propagateRelationTypes = null; | ||
513 | - } else { | ||
514 | - alaramsObj.propagateRelationTypes = val3; | ||
515 | - } | ||
516 | - const val8 = getRegisterFormClearChangeDetailFunc(); | ||
517 | - val9.value = proxy.$refs['AlarmClearRuleConditionsRef']?.getFieldsValueFunc(); | ||
518 | - val10.value = proxy.$refs['EnableClearRuleRef']?.getFieldsValueFunc(); | ||
519 | - if (val9.value == undefined || val10.value == undefined) { | ||
520 | - alaramsObj.clearRule = null; | ||
521 | - isClearStatus.value = false; | ||
522 | - } else { | ||
523 | - alaramsObj.clearRule = { | ||
524 | - ...val8, | ||
525 | - ...{ | ||
526 | - schedule: val10.value == undefined ? undefined : val10.value, | ||
527 | - }, | ||
528 | - ...{ | ||
529 | - condition: { | ||
530 | - condition: val9.value == undefined ? undefined : val9.value, | ||
531 | - }, | ||
532 | - }, | ||
533 | - }; | ||
534 | - } | ||
535 | - let temp = []; | ||
536 | - if (!isStep3FatherAddOrEditStatus) { | ||
537 | - temp = createAlarmRuleData.value; | ||
538 | - } else { | ||
539 | - temp = createEditAlarmRuleData.value; | ||
540 | - } | ||
541 | - for (let i = 0; i < temp.length; i++) { | ||
542 | - formatAlarmRuleConditions.value.forEach((f, ii) => { | ||
543 | - if (ii == i) { | ||
544 | - conditionRefs.AlarmSeverityRef.value.forEach((item, index) => { | ||
545 | - if (index == ii) { | ||
546 | - val4 = item.getFieldsValueFunc(); | ||
547 | - } | ||
548 | - }); | ||
549 | - conditionRefs.DetailTemplateRef.value.forEach((item, index) => { | ||
550 | - if (index == ii) { | ||
551 | - val5 = item.getFieldsValueFunc(); | ||
552 | - } | ||
553 | - }); | ||
554 | - conditionRefs.AlarmRuleConditionsRef.value.forEach((item, index) => { | ||
555 | - if (index == ii) { | ||
556 | - val6.value = item.getFieldsValueFunc(); | ||
557 | - } | ||
558 | - }); | ||
559 | - conditionRefs.EnableRuleRef.value.forEach((item, index) => { | ||
560 | - if (index == ii) { | ||
561 | - val7.value = item.getFieldsValueFunc(); | ||
562 | - } | ||
563 | - }); | ||
564 | - alaramsObj.createRules[val4?.default] = { | ||
565 | - ...val5, | ||
566 | - ...{ | ||
567 | - schedule: val7.value, | ||
568 | - }, | ||
569 | - ...{ | ||
570 | - condition: { | ||
571 | - condition: val6.value, | ||
572 | - }, | ||
573 | - }, | ||
574 | - }; | ||
575 | - } | ||
576 | - }); | ||
577 | - } | ||
578 | - return alaramsObj; | ||
579 | - } catch (e) { | ||
580 | - console.log(e); | ||
581 | - } | ||
582 | - }; | ||
583 | - /** | ||
584 | - * 清空第三步数据 | ||
585 | - */ | ||
586 | - const clearStep3CpnDataFunc = () => { | ||
587 | - try { | ||
588 | - resetAlarmTypeValFunc(); | ||
589 | - resetDeliverAlertsValFunc(); | ||
590 | - proxy.$refs.AlarmSeverityRef?.resetFieldsFunc(); | ||
591 | - proxy.$refs.DetailTemplateRef?.resetFieldsFunc(); | ||
592 | - proxy.$refs.AlarmRuleConditionsRef?.resetFieldsFunc(); | ||
593 | - proxy.$refs.EnableRuleRef?.resetFieldsFunc(); | ||
594 | - resetRegisterFormClearChangeDetailFunc(); | ||
595 | - formatAlarmRuleConditions.value.length = 0; | ||
596 | - formatClearAlarmRuleConditions.value.length = 0; | ||
597 | - formatEnableRule.value.length = 0; | ||
598 | - formatClearEnableRule.value.length = 0; | ||
599 | - tempDetailTemplateData.value.length = 0; | ||
600 | - formatEditClearEnableRule.value.length = 0; | ||
601 | - formatEditClearAlarmRuleConditions.value.length = 0; | ||
602 | - createEditAlarmRuleData.value.length = 0; | ||
603 | - alaramsObj.alarmType = null; | ||
604 | - alaramsObj.propagate = null; | ||
605 | - alaramsObj.propagateRelationTypes = null; | ||
606 | - alaramsObj.clearRule = {}; | ||
607 | - alaramsObj.createRules = {}; | ||
608 | - alaramsObj.id = ''; | ||
609 | - formatEditRuleData.value.length = 0; | ||
610 | - formatEditEnableData.value.length = 0; | ||
611 | - val6.value.length = 0; | ||
612 | - val7.value = null; | ||
613 | - val9.value.length = 0; | ||
614 | - val10.value = null; | ||
615 | - } catch {} | ||
616 | - }; | ||
617 | - /** | ||
618 | - * 回显第三步数据 | ||
619 | - */ | ||
620 | - watch( | ||
621 | - () => props.step3FatherEmitCpnData, | ||
622 | - (v) => { | ||
623 | - console.log(v); | ||
624 | - } | ||
625 | - ); | ||
626 | - const echoStep3DataCpnFunc = () => { | ||
627 | - if (props.step3FatherEmitCpnData !== 1) { | ||
628 | - if (props.step3FatherEmitCpnData == undefined) return; | ||
629 | - isStep3FatherAddOrEditStatus.value = props.step3FatherEmitCpnStatus; | ||
630 | - for (let i in props.step3FatherEmitCpnData?.createRules) { | ||
631 | - console.log(props.step3FatherEmitCpnData); | ||
632 | - createEditAlarmRuleData.value.push({ | ||
633 | - [i]: props.step3FatherEmitCpnData?.createRules[i], | ||
634 | - }); | ||
635 | - } | ||
636 | - level.value.forEach((item, index) => { | ||
637 | - createEditAlarmRuleData.value.forEach((item1) => { | ||
638 | - for (let i in item1) { | ||
639 | - if (i != undefined && i == item) { | ||
640 | - formatAlarmRuleConditions.value.push({ | ||
641 | - key: index, | ||
642 | - data: item1[i].condition.condition, | ||
643 | - }); | ||
644 | - } | ||
645 | - } | ||
646 | - }); | ||
647 | - }); | ||
648 | - getConditionData1.value = formatAlarmRuleConditions.value; | ||
649 | - nextTick(() => { | ||
650 | - setAlarmTypeValFunc({ | ||
651 | - alarmType: props.step3FatherEmitCpnData?.alarmType, | ||
652 | - }); | ||
653 | - try { | ||
654 | - setDeliverAlertsValFunc({ | ||
655 | - propagate: props.step3FatherEmitCpnData?.propagate, | ||
656 | - propagateRelationTypes: props.step3FatherEmitCpnData?.propagateRelationTypes[0], | ||
657 | - }); | ||
658 | - } catch {} | ||
659 | - if (props.step3FatherEmitCpnData?.clearRule?.alarmDetails !== '') { | ||
660 | - isClearStatus.value = true; | ||
661 | - nextTick(() => { | ||
662 | - setRegisterFormClearChangeDetailFunc({ | ||
663 | - alarmDetails: props.step3FatherEmitCpnData?.clearRule?.alarmDetails, | ||
664 | - }); | ||
665 | - }); | ||
666 | - } | ||
667 | - formatEditClearAlarmRuleConditions.value = | ||
668 | - props.step3FatherEmitCpnData?.clearRule?.condition?.condition; | ||
669 | - formatEditClearEnableRule.value.push(props.step3FatherEmitCpnData?.clearRule?.schedule); | ||
670 | - if (props.step3FatherEmitCpnData?.clearRule == null) { | ||
671 | - nextTick(() => { | ||
672 | - return (isClearStatus.value = false); | ||
673 | - }); | ||
674 | - } else { | ||
675 | - nextTick(() => { | ||
676 | - return (isClearStatus.value = true); | ||
677 | - }); | ||
678 | - } | ||
679 | - }); | ||
680 | - } | ||
681 | - }; | ||
682 | - echoStep3DataCpnFunc(); | ||
683 | - const formatEnableRuleFuncData = (v) => { | ||
684 | - return formatEnableRuleData(formatAlarmRuleConditionsData1(v)?.schedule); | ||
685 | - }; | ||
686 | - return { | ||
687 | - registerForm, | ||
688 | - registerFormHighSetting, | ||
689 | - clickAddCreateRuleFunc, | ||
690 | - createAlarmRuleData, | ||
691 | - clickAddClearRuleFunc, | ||
692 | - removeAddCreateRuleFunc, | ||
693 | - clickAddEnableRuleFunc, | ||
694 | - clickAddAlarmRuleConditionsFunc, | ||
695 | - AlarmRuleConditionsRef, | ||
696 | - EnableRuleRef, | ||
697 | - registerEnableRuleModal, | ||
698 | - getAlarmRuleConditionsValFunc, | ||
699 | - formatAlarmRuleConditions, | ||
700 | - formatEnableRule, | ||
701 | - formatEnableRuleFunc, | ||
702 | - getEnableRuleFunc, | ||
703 | - getStep3AllDataFunc, | ||
704 | - AlarmSeverityRef, | ||
705 | - DetailTemplateRef, | ||
706 | - isClearStatus, | ||
707 | - removeAddClearRuleFunc, | ||
708 | - formatClearAlarmRuleConditions, | ||
709 | - formatClearAlarmRuleConditionsFunc, | ||
710 | - formatClearEnableRule, | ||
711 | - formatClearEnableRuleFunc, | ||
712 | - registerClearAlarmRuleConditionsModal, | ||
713 | - registerClearEnableRuleModal, | ||
714 | - clickClearAlarmRuleConditionsFunc, | ||
715 | - clickClearEnableRuleFunc, | ||
716 | - getClearAlarmRuleConditionsValFunc, | ||
717 | - getClearEnableRuleFunc, | ||
718 | - registerFormChangeClearDetail, | ||
719 | - clearStep3CpnDataFunc, | ||
720 | - echoStep3DataCpnFunc, | ||
721 | - isStep3FatherAddOrEditStatus, | ||
722 | - formatAlarmRuleConditionsData, | ||
723 | - formatEditClearAlarmRuleConditions, | ||
724 | - formatEnableRuleData, | ||
725 | - formatEditClearEnableRule, | ||
726 | - createEditAlarmRuleData, | ||
727 | - formatEnableRuleFuncData, | ||
728 | - AlarmClearRuleConditionsRef, | ||
729 | - EnableClearRuleRef, | ||
730 | - formatEditRuleData, | ||
731 | - formatEditEnableData, | ||
732 | - formatEditEnableRuleFunc, | ||
733 | - updateCpnSchemaSelectEnableFunc, | ||
734 | - getConditionData, | ||
735 | - getConditionData1, | ||
736 | - conditionRefs, | ||
737 | - level, | ||
738 | - }; | ||
739 | - }, | ||
740 | - }); | ||
741 | -</script> | ||
742 | - | ||
743 | -<style lang="less" scoped></style> |
src/views/device/profiles/step/cpns/alarmruleconditions/config.ts
deleted
100644 → 0
1 | -import { FormSchema, BasicColumn } from '/@/components/Table'; | ||
2 | -import { DescItem } from '/@/components/Description/index'; | ||
3 | - | ||
4 | -/** | ||
5 | - * 所使用的枚举值 | ||
6 | - */ | ||
7 | - | ||
8 | -export enum TriggerEnum { | ||
9 | - IS_DEVICE_ACT = 'SIMPLE', | ||
10 | - IS_TIME_ACT = 'DURATION', | ||
11 | - IS_SCENE_ACT = 'REPEATING', | ||
12 | - IS_CURRENT_CUSTOMER = 'CURRENT_CUSTOMER', | ||
13 | - IS_CURRENT_DEVICE = 'CURRENT_DEVICE', | ||
14 | -} | ||
15 | -export const isCurrentCus = (type: string) => { | ||
16 | - return type === TriggerEnum.IS_CURRENT_CUSTOMER; | ||
17 | -}; | ||
18 | -export const isCurrentDev = (type: string) => { | ||
19 | - return type === TriggerEnum.IS_CURRENT_DEVICE; | ||
20 | -}; | ||
21 | - | ||
22 | -export const isShiDu = (type: string) => { | ||
23 | - return type === TriggerEnum.IS_DEVICE_ACT; | ||
24 | -}; | ||
25 | -export const isWenDu = (type: string) => { | ||
26 | - return type === TriggerEnum.IS_TIME_ACT; | ||
27 | -}; | ||
28 | - | ||
29 | -export const isTimeAll = (type: string) => { | ||
30 | - return type === TriggerEnum.IS_SCENE_ACT; | ||
31 | -}; | ||
32 | - | ||
33 | -export const keyColumns: BasicColumn[] = [ | ||
34 | - { | ||
35 | - title: '键名', | ||
36 | - dataIndex: 'key1', | ||
37 | - width: 100, | ||
38 | - }, | ||
39 | - { | ||
40 | - title: '键类型', | ||
41 | - dataIndex: 'type', | ||
42 | - width: 100, | ||
43 | - }, | ||
44 | - { | ||
45 | - title: '操作', | ||
46 | - dataIndex: 'operation', | ||
47 | - width: 100, | ||
48 | - format: (text: string, record: Recordable) => { | ||
49 | - const findDay = [ | ||
50 | - { label: '等于', value: 'EQUAL' }, | ||
51 | - { label: '不等于', value: 'NOT_EQUAL' }, | ||
52 | - { label: '开始于', value: 'STARTS_WITH' }, | ||
53 | - { label: '结束于', value: 'ENDS_WITH' }, | ||
54 | - { label: '包含', value: 'CONTAINS' }, | ||
55 | - { label: '不包含', value: 'NOT_CONTAINS' }, | ||
56 | - { label: '等于', value: 'EQUAL' }, | ||
57 | - { label: '不等于', value: 'NOT_EQUAL' }, | ||
58 | - { label: '大于', value: 'GREATER' }, | ||
59 | - { label: '小于', value: 'LESS' }, | ||
60 | - { label: '大于或等于', value: 'GREATER_OR_EQUAL' }, | ||
61 | - { label: '小于或等于', value: 'LESS_OR_EQUAL' }, | ||
62 | - ]; | ||
63 | - const findRuleByValue = findDay.find((f) => { | ||
64 | - if (f.value == record.operation) { | ||
65 | - return f.label; | ||
66 | - } | ||
67 | - }); | ||
68 | - if (findRuleByValue) { | ||
69 | - return findRuleByValue.label; | ||
70 | - } | ||
71 | - }, | ||
72 | - }, | ||
73 | - { | ||
74 | - title: '值', | ||
75 | - dataIndex: 'value1', | ||
76 | - width: 80, | ||
77 | - }, | ||
78 | -]; | ||
79 | -// export const columnsView: BasicColumn[] = [ | ||
80 | -// { | ||
81 | -// title: '键名', | ||
82 | -// dataIndex: 'key1', | ||
83 | -// width: 200, | ||
84 | -// }, | ||
85 | -// { | ||
86 | -// title: '操作', | ||
87 | -// dataIndex: 'operation', | ||
88 | -// width: 200, | ||
89 | -// format: (text: string, record: Recordable) => { | ||
90 | -// const findDay = [ | ||
91 | -// { label: '等于', value: 'EQUAL' }, | ||
92 | -// { label: '不等于', value: 'NOT_EQUAL' }, | ||
93 | -// { label: '开始于', value: 'STARTS_WITH' }, | ||
94 | -// { label: '结束于', value: 'ENDS_WITH' }, | ||
95 | -// { label: '包含', value: 'CONTAINS' }, | ||
96 | -// { label: '不包含', value: 'NOT_CONTAINS' }, | ||
97 | -// { label: '等于', value: 'EQUAL' }, | ||
98 | -// { label: '不等于', value: 'NOT_EQUAL' }, | ||
99 | -// { label: '大于', value: 'GREATER' }, | ||
100 | -// { label: '小于', value: 'LESS' }, | ||
101 | -// { label: '大于或等于', value: 'GREATER_OR_EQUAL' }, | ||
102 | -// { label: '小于或等于', value: 'LESS_OR_EQUAL' }, | ||
103 | -// ]; | ||
104 | -// const findRuleByValue = findDay.find((f) => { | ||
105 | -// if (f.value == record.operation) { | ||
106 | -// return f.label; | ||
107 | -// } | ||
108 | -// }); | ||
109 | -// if (findRuleByValue) { | ||
110 | -// return findRuleByValue.label; | ||
111 | -// } | ||
112 | -// }, | ||
113 | -// }, | ||
114 | -// { | ||
115 | -// title: '值', | ||
116 | -// dataIndex: 'value1', | ||
117 | -// width: 200, | ||
118 | -// }, | ||
119 | -// ]; | ||
120 | - | ||
121 | -export const DescDetailSchema: DescItem[] = [ | ||
122 | - { | ||
123 | - field: 'key1', | ||
124 | - label: '键名', | ||
125 | - }, | ||
126 | - { | ||
127 | - field: 'type', | ||
128 | - label: '键类型', | ||
129 | - }, | ||
130 | -]; | ||
131 | - | ||
132 | -export const formSchema: FormSchema[] = [ | ||
133 | - { | ||
134 | - field: 'conditionType', | ||
135 | - label: '条件类型', | ||
136 | - colProps: { span: 13 }, | ||
137 | - component: 'Select', | ||
138 | - defaultValue: 'SIMPLE', | ||
139 | - componentProps: { | ||
140 | - placeholder: '请选择报警日程表', | ||
141 | - options: [ | ||
142 | - { label: '简单', value: 'SIMPLE' }, | ||
143 | - { label: '持续时间', value: 'DURATION' }, | ||
144 | - { label: '重复', value: 'REPEATING' }, | ||
145 | - ], | ||
146 | - }, | ||
147 | - }, | ||
148 | - // { | ||
149 | - // field: 'sourceType', | ||
150 | - // label: '动态源类型', | ||
151 | - // colProps: { span: 24 }, | ||
152 | - // component: 'Select', | ||
153 | - // componentProps: { | ||
154 | - // placeholder: '请选择动态源类型', | ||
155 | - // options: [ | ||
156 | - // { label: '无动态值', value: '' }, | ||
157 | - // { label: '当前租户', value: 'CURRENT_TENANT' }, | ||
158 | - // { label: '当前客户', value: 'CURRENT_CUSTOMER' }, | ||
159 | - // { label: '当前设备', value: 'CURRENT_DEVICE' }, | ||
160 | - // ], | ||
161 | - // }, | ||
162 | - // ifShow: ({ values }) => isWenDu(Reflect.get(values, 'conditionType')), | ||
163 | - // show: ({ values }) => { | ||
164 | - // return !!values.field5; | ||
165 | - // }, | ||
166 | - // }, | ||
167 | - // { | ||
168 | - // field: 'sourceAttribute', | ||
169 | - // label: '源属性', | ||
170 | - // colProps: { span: 24 }, | ||
171 | - // component: 'Input', | ||
172 | - // componentProps: { | ||
173 | - // placeholder: '源属性', | ||
174 | - // }, | ||
175 | - // ifShow: ({ values }) => isWenDu(Reflect.get(values, 'conditionType')), | ||
176 | - // show: ({ values }) => { | ||
177 | - // return !!values.field5; | ||
178 | - // }, | ||
179 | - // }, | ||
180 | - // { | ||
181 | - // field: 'sourceType', | ||
182 | - // label: '动态源类型', | ||
183 | - // colProps: { span: 24 }, | ||
184 | - // component: 'Select', | ||
185 | - // componentProps: { | ||
186 | - // placeholder: '请选择动态源类型', | ||
187 | - // options: [ | ||
188 | - // { label: '无动态值', value: '' }, | ||
189 | - // { label: '当前租户', value: 'CURRENT_TENANT' }, | ||
190 | - // { label: '当前客户', value: 'CURRENT_CUSTOMER' }, | ||
191 | - // { label: '当前设备', value: 'CURRENT_DEVICE' }, | ||
192 | - // ], | ||
193 | - // }, | ||
194 | - // ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'conditionType')), | ||
195 | - // show: ({ values }) => { | ||
196 | - // return !!values.field6; | ||
197 | - // }, | ||
198 | - // }, | ||
199 | - // { | ||
200 | - // field: 'sourceAttribute', | ||
201 | - // label: '源属性', | ||
202 | - // colProps: { span: 24 }, | ||
203 | - // component: 'Input', | ||
204 | - // componentProps: { | ||
205 | - // placeholder: '源属性', | ||
206 | - // }, | ||
207 | - // ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'conditionType')), | ||
208 | - // show: ({ values }) => { | ||
209 | - // return !!values.field6; | ||
210 | - // }, | ||
211 | - // }, | ||
212 | - { | ||
213 | - field: 'defaultValue', | ||
214 | - label: '持续时间值', | ||
215 | - colProps: { span: 13 }, | ||
216 | - component: 'Input', | ||
217 | - defaultValue: 0, | ||
218 | - componentProps: { | ||
219 | - maxLength: 16, | ||
220 | - placeholder: '请输入持续时间值(请输入数字)', | ||
221 | - }, | ||
222 | - dynamicRules: () => { | ||
223 | - return [ | ||
224 | - { | ||
225 | - validator: (_, value) => { | ||
226 | - if (!value) { | ||
227 | - return Promise.reject('持续时间值不能为空'); | ||
228 | - } | ||
229 | - const pwdRegex = new RegExp(/-?\d+/); | ||
230 | - if (!pwdRegex.test(value)) { | ||
231 | - return Promise.reject('只能为数字,且最长不超过16位'); | ||
232 | - } | ||
233 | - return Promise.resolve(); | ||
234 | - }, | ||
235 | - }, | ||
236 | - ]; | ||
237 | - }, | ||
238 | - ifShow: ({ values }) => isWenDu(Reflect.get(values, 'conditionType')), | ||
239 | - show: ({ values }) => { | ||
240 | - return !values.field5; | ||
241 | - }, | ||
242 | - }, | ||
243 | - // { | ||
244 | - // field: 'field5', | ||
245 | - // component: 'Switch', | ||
246 | - // label: '切换到动态值', | ||
247 | - // colProps: { | ||
248 | - // span: 8, | ||
249 | - // }, | ||
250 | - // labelWidth: 200, | ||
251 | - // ifShow: ({ values }) => isWenDu(Reflect.get(values, 'conditionType')), | ||
252 | - // }, | ||
253 | - // { | ||
254 | - // field: 'field6', | ||
255 | - // component: 'Switch', | ||
256 | - // label: '切换到动态值', | ||
257 | - // colProps: { | ||
258 | - // span: 8, | ||
259 | - // }, | ||
260 | - // labelWidth: 200, | ||
261 | - // ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'conditionType')), | ||
262 | - // }, | ||
263 | - { | ||
264 | - field: 'unit', | ||
265 | - label: '时间单位', | ||
266 | - colProps: { span: 13 }, | ||
267 | - component: 'Select', | ||
268 | - componentProps: { | ||
269 | - placeholder: '请选择时间单位', | ||
270 | - options: [ | ||
271 | - { label: '秒', value: 'SECONDS' }, | ||
272 | - { label: '分钟', value: 'MINUTES' }, | ||
273 | - { label: '小时', value: 'HOURS' }, | ||
274 | - { label: '天', value: 'DAYS' }, | ||
275 | - ], | ||
276 | - }, | ||
277 | - ifShow: ({ values }) => isWenDu(Reflect.get(values, 'conditionType')), | ||
278 | - }, | ||
279 | - { | ||
280 | - field: 'defaultValue', | ||
281 | - label: '事件计数值必填', | ||
282 | - colProps: { span: 13 }, | ||
283 | - component: 'Input', | ||
284 | - componentProps: { | ||
285 | - maxLength: 2147483637, | ||
286 | - placeholder: '请输入事件计数值(应在1到2147483637之间)', | ||
287 | - }, | ||
288 | - dynamicRules: () => { | ||
289 | - return [ | ||
290 | - { | ||
291 | - validator: (_, value) => { | ||
292 | - if (!value) { | ||
293 | - return Promise.reject('事件计数不能为空'); | ||
294 | - } | ||
295 | - const pwdRegex = new RegExp(/-?\d+/); | ||
296 | - if (!pwdRegex.test(value)) { | ||
297 | - return Promise.reject('只能为数字,且最长不超过16位'); | ||
298 | - } | ||
299 | - return Promise.resolve(); | ||
300 | - }, | ||
301 | - }, | ||
302 | - ]; | ||
303 | - }, | ||
304 | - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'conditionType')), | ||
305 | - show: ({ values }) => { | ||
306 | - return !values.field6; | ||
307 | - }, | ||
308 | - }, | ||
309 | - { | ||
310 | - field: 'inherit', | ||
311 | - label: '', | ||
312 | - colProps: { span: 13 }, | ||
313 | - component: 'Checkbox', | ||
314 | - renderComponentContent: 'Inherit from owner', | ||
315 | - ifShow: ({ values }) => | ||
316 | - isCurrentCus(Reflect.get(values, 'sourceType')) || | ||
317 | - isCurrentDev(Reflect.get(values, 'sourceType')), | ||
318 | - }, | ||
319 | -]; |
src/views/device/profiles/step/cpns/alarmruleconditions/cpns/config.ts
deleted
100644 → 0
1 | -import { FormSchema } from '/@/components/Table'; | ||
2 | -import { ref } from 'vue'; | ||
3 | - | ||
4 | -export const isWhereType: any = ref(null); | ||
5 | - | ||
6 | -/** | ||
7 | - * 所使用的枚举值 | ||
8 | - */ | ||
9 | - | ||
10 | -export enum TriggerEnum { | ||
11 | - IS_DEVICE_ACT = '属性', | ||
12 | - IS_TIME_ACT = 'TIME_SERIES', | ||
13 | - IS_SCENE_ACT = '常量', | ||
14 | - IS_STRING = 'STRING', | ||
15 | - IS_NUMERIC = 'NUMERIC', | ||
16 | - IS_BOOLEAN = 'BOOLEAN', | ||
17 | - IS_COMPLEX = 'COMPLEX', | ||
18 | -} | ||
19 | - | ||
20 | -export const isShiDu = (type: string) => { | ||
21 | - return type === TriggerEnum.IS_DEVICE_ACT; | ||
22 | -}; | ||
23 | -export const isWenDu = (type: string) => { | ||
24 | - return type === TriggerEnum.IS_TIME_ACT; | ||
25 | -}; | ||
26 | - | ||
27 | -export const isTimeAll = (type: string) => { | ||
28 | - return type === TriggerEnum.IS_SCENE_ACT; | ||
29 | -}; | ||
30 | - | ||
31 | -export const isString = (type: string) => { | ||
32 | - return type === TriggerEnum.IS_STRING; | ||
33 | -}; | ||
34 | - | ||
35 | -export const isNumeric = (type: string) => { | ||
36 | - return type === TriggerEnum.IS_NUMERIC; | ||
37 | -}; | ||
38 | - | ||
39 | -export const isBoolean = (type: string) => { | ||
40 | - return type === TriggerEnum.IS_BOOLEAN; | ||
41 | -}; | ||
42 | - | ||
43 | -export const isComplex = (type: string) => { | ||
44 | - return type === TriggerEnum.IS_COMPLEX; | ||
45 | -}; | ||
46 | - | ||
47 | -export const formSchema: FormSchema[] = [ | ||
48 | - { | ||
49 | - field: 'id', | ||
50 | - label: '', | ||
51 | - component: 'InputNumber', | ||
52 | - ifShow: false, | ||
53 | - }, | ||
54 | - { | ||
55 | - field: 'type', | ||
56 | - label: '键类型', | ||
57 | - colProps: { span: 13 }, | ||
58 | - component: 'Select', | ||
59 | - componentProps: { | ||
60 | - placeholder: '请选择键类型', | ||
61 | - options: [ | ||
62 | - { label: '属性', value: '属性' }, | ||
63 | - { label: 'Timeseries', value: 'TIME_SERIES' }, | ||
64 | - { label: '常量', value: '常量' }, | ||
65 | - ], | ||
66 | - }, | ||
67 | - }, | ||
68 | - { | ||
69 | - field: 'key1', | ||
70 | - label: '键名', | ||
71 | - colProps: { span: 13 }, | ||
72 | - component: 'Input', | ||
73 | - componentProps: { | ||
74 | - maxLength: 255, | ||
75 | - placeholder: '请输入键名', | ||
76 | - }, | ||
77 | - | ||
78 | - ifShow: ({ values }) => isShiDu(Reflect.get(values, 'type')), | ||
79 | - }, | ||
80 | - { | ||
81 | - field: 'key1', | ||
82 | - label: '键名', | ||
83 | - colProps: { span: 13 }, | ||
84 | - component: 'Input', | ||
85 | - componentProps: { | ||
86 | - maxLength: 255, | ||
87 | - placeholder: '请输入键名', | ||
88 | - }, | ||
89 | - | ||
90 | - ifShow: ({ values }) => isWenDu(Reflect.get(values, 'type')), | ||
91 | - }, | ||
92 | - { | ||
93 | - field: 'key1', | ||
94 | - label: '键名', | ||
95 | - colProps: { span: 13 }, | ||
96 | - component: 'Input', | ||
97 | - componentProps: { | ||
98 | - maxLength: 255, | ||
99 | - placeholder: '请输入键名', | ||
100 | - }, | ||
101 | - | ||
102 | - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')), | ||
103 | - }, | ||
104 | - { | ||
105 | - field: 'type1', | ||
106 | - label: '值类型', | ||
107 | - colProps: { span: 13 }, | ||
108 | - component: 'Select', | ||
109 | - componentProps: { | ||
110 | - placeholder: '请选择值类型', | ||
111 | - options: [ | ||
112 | - { label: '字符串', value: 'STRING' }, | ||
113 | - { label: '数字', value: 'NUMERIC' }, | ||
114 | - { label: '布尔值', value: 'BOOLEAN' }, | ||
115 | - { label: '日期时间', value: 'COMPLEX' }, | ||
116 | - ], | ||
117 | - onChange: (v) => { | ||
118 | - isWhereType.value = v; | ||
119 | - }, | ||
120 | - }, | ||
121 | - }, | ||
122 | - { | ||
123 | - field: 'operation', | ||
124 | - label: '操作', | ||
125 | - colProps: { span: 13 }, | ||
126 | - component: 'Select', | ||
127 | - componentProps: { | ||
128 | - placeholder: '请选择操作', | ||
129 | - options: [ | ||
130 | - { label: '等于', value: 'EQUAL' }, | ||
131 | - { label: '不等于', value: 'NOT_EQUAL' }, | ||
132 | - { label: '开始于', value: 'STARTS_WITH' }, | ||
133 | - { label: '结束于', value: 'ENDS_WITH' }, | ||
134 | - { label: '包含', value: 'CONTAINS' }, | ||
135 | - { label: '不包含', value: 'NOT_CONTAINS' }, | ||
136 | - ], | ||
137 | - }, | ||
138 | - ifShow: ({ values }) => isString(Reflect.get(values, 'type1')), | ||
139 | - }, | ||
140 | - { | ||
141 | - field: 'no', | ||
142 | - label: '大小写', | ||
143 | - component: 'Checkbox', | ||
144 | - colProps: { span: 13 }, | ||
145 | - renderComponentContent: '忽略大小写', | ||
146 | - ifShow: ({ values }) => isString(Reflect.get(values, 'type1')), | ||
147 | - }, | ||
148 | - // { | ||
149 | - // field: 'sourceType', | ||
150 | - // label: '动态源类型', | ||
151 | - // colProps: { span: 24 }, | ||
152 | - // component: 'Select', | ||
153 | - // componentProps: { | ||
154 | - // placeholder: '请选择动态源类型', | ||
155 | - // options: [ | ||
156 | - // { label: '无动态值', value: '' }, | ||
157 | - // { label: '当前租户', value: 'CURRENT_TENANT' }, | ||
158 | - // { label: '当前客户', value: 'CURRENT_CUSTOMER' }, | ||
159 | - // { label: '当前设备', value: 'CURRENT_DEVICE' }, | ||
160 | - // ], | ||
161 | - // }, | ||
162 | - // ifShow: ({ values }) => isString(Reflect.get(values, 'type1')), | ||
163 | - // show: ({ values }) => { | ||
164 | - // return !!values.field5; | ||
165 | - // }, | ||
166 | - // }, | ||
167 | - // { | ||
168 | - // field: 'sourceAttribute', | ||
169 | - // label: '源属性', | ||
170 | - // colProps: { span: 24 }, | ||
171 | - // component: 'Input', | ||
172 | - // componentProps: { | ||
173 | - // placeholder: '请输入源属性', | ||
174 | - // }, | ||
175 | - // ifShow: ({ values }) => isString(Reflect.get(values, 'type1')), | ||
176 | - // show: ({ values }) => { | ||
177 | - // return !!values.field5; | ||
178 | - // }, | ||
179 | - // }, | ||
180 | - { | ||
181 | - field: 'value1', | ||
182 | - label: '默认值', | ||
183 | - colProps: { span: 13 }, | ||
184 | - component: 'InputNumber', | ||
185 | - defaultValue: 0, | ||
186 | - componentProps: { | ||
187 | - maxLength: 16, | ||
188 | - placeholder: '请输入值(数字)', | ||
189 | - }, | ||
190 | - dynamicRules: () => { | ||
191 | - return [ | ||
192 | - { | ||
193 | - validator: (_, value) => { | ||
194 | - if (!value) { | ||
195 | - return Promise.reject('默认值不能为空'); | ||
196 | - } | ||
197 | - const pwdRegex = new RegExp(/-?\d+/); | ||
198 | - if (!pwdRegex.test(value)) { | ||
199 | - return Promise.reject('只能为数字,且最长不超过16位'); | ||
200 | - } | ||
201 | - return Promise.resolve(); | ||
202 | - }, | ||
203 | - }, | ||
204 | - ]; | ||
205 | - }, | ||
206 | - ifShow: ({ values }) => isString(Reflect.get(values, 'type1')), | ||
207 | - show: ({ values }) => { | ||
208 | - return !values.field5; | ||
209 | - }, | ||
210 | - }, | ||
211 | - // { | ||
212 | - // field: 'field5', | ||
213 | - // component: 'Switch', | ||
214 | - // label: '切换到动态值', | ||
215 | - // colProps: { | ||
216 | - // span: 8, | ||
217 | - // }, | ||
218 | - // labelWidth: 200, | ||
219 | - // ifShow: ({ values }) => isString(Reflect.get(values, 'type1')), | ||
220 | - // }, | ||
221 | - { | ||
222 | - field: 'operation', | ||
223 | - label: '操作', | ||
224 | - colProps: { span: 13 }, | ||
225 | - component: 'Select', | ||
226 | - componentProps: { | ||
227 | - placeholder: '请选择操作', | ||
228 | - options: [ | ||
229 | - { label: '等于', value: 'EQUAL' }, | ||
230 | - { label: '不等于', value: 'NOT_EQUAL' }, | ||
231 | - { label: '大于', value: 'GREATER' }, | ||
232 | - { label: '小于', value: 'LESS' }, | ||
233 | - { label: '大于或等于', value: 'GREATER_OR_EQUAL' }, | ||
234 | - { label: '小于或等于', value: 'LESS_OR_EQUAL' }, | ||
235 | - ], | ||
236 | - }, | ||
237 | - ifShow: ({ values }) => isNumeric(Reflect.get(values, 'type1')), | ||
238 | - }, | ||
239 | - | ||
240 | - // { | ||
241 | - // field: 'sourceType', | ||
242 | - // label: '动态源类型', | ||
243 | - // colProps: { span: 24 }, | ||
244 | - // component: 'Select', | ||
245 | - // componentProps: { | ||
246 | - // placeholder: '请选择动态源类型', | ||
247 | - // options: [ | ||
248 | - // { label: '无动态值', value: '' }, | ||
249 | - // { label: '当前租户', value: 'CURRENT_TENANT' }, | ||
250 | - // { label: '当前客户', value: 'CURRENT_CUSTOMER' }, | ||
251 | - // { label: '当前设备', value: 'CURRENT_DEVICE' }, | ||
252 | - // ], | ||
253 | - // }, | ||
254 | - // ifShow: ({ values }) => isNumeric(Reflect.get(values, 'type1')), | ||
255 | - // show: ({ values }) => { | ||
256 | - // return !!values.field6; | ||
257 | - // }, | ||
258 | - // }, | ||
259 | - // { | ||
260 | - // field: 'sourceAttribute', | ||
261 | - // label: '源属性', | ||
262 | - // colProps: { span: 24 }, | ||
263 | - // component: 'Input', | ||
264 | - // componentProps: { | ||
265 | - // placeholder: '请输入源属性', | ||
266 | - // }, | ||
267 | - // ifShow: ({ values }) => isNumeric(Reflect.get(values, 'type1')), | ||
268 | - // show: ({ values }) => { | ||
269 | - // return !!values.field6; | ||
270 | - // }, | ||
271 | - // }, | ||
272 | - { | ||
273 | - field: 'value1', | ||
274 | - label: '值', | ||
275 | - colProps: { span: 13 }, | ||
276 | - component: 'InputNumber', | ||
277 | - defaultValue: 0, | ||
278 | - componentProps: { | ||
279 | - placeholder: '请输入值(数字)', | ||
280 | - }, | ||
281 | - dynamicRules: () => { | ||
282 | - return [ | ||
283 | - { | ||
284 | - validator: (_, value) => { | ||
285 | - if (!value) { | ||
286 | - return Promise.reject('值'); | ||
287 | - } | ||
288 | - const pwdRegex = new RegExp(/-?\d+/); | ||
289 | - if (!pwdRegex.test(value)) { | ||
290 | - return Promise.reject('只能为数字,且最长不超过16位'); | ||
291 | - } | ||
292 | - return Promise.resolve(); | ||
293 | - }, | ||
294 | - }, | ||
295 | - ]; | ||
296 | - }, | ||
297 | - ifShow: ({ values }) => isNumeric(Reflect.get(values, 'type1')), | ||
298 | - show: ({ values }) => { | ||
299 | - return !values.field6; | ||
300 | - }, | ||
301 | - }, | ||
302 | - // { | ||
303 | - // field: 'field6', | ||
304 | - // component: 'Switch', | ||
305 | - // label: '切换到动态值', | ||
306 | - // colProps: { | ||
307 | - // span: 8, | ||
308 | - // }, | ||
309 | - // labelWidth: 200, | ||
310 | - // ifShow: ({ values }) => isNumeric(Reflect.get(values, 'type1')), | ||
311 | - // }, | ||
312 | - | ||
313 | - { | ||
314 | - field: 'operation', | ||
315 | - label: '操作', | ||
316 | - colProps: { span: 13 }, | ||
317 | - component: 'Select', | ||
318 | - componentProps: { | ||
319 | - placeholder: '请选择操作', | ||
320 | - options: [ | ||
321 | - { label: '等于', value: 'EQUAL' }, | ||
322 | - { label: '不等于', value: 'NOT_EQUAL' }, | ||
323 | - ], | ||
324 | - }, | ||
325 | - ifShow: ({ values }) => isBoolean(Reflect.get(values, 'type1')), | ||
326 | - }, | ||
327 | - { | ||
328 | - field: 'no', | ||
329 | - label: '默认值', | ||
330 | - colProps: { span: 13 }, | ||
331 | - component: 'Checkbox', | ||
332 | - renderComponentContent: '真', | ||
333 | - ifShow: ({ values }) => isBoolean(Reflect.get(values, 'type1')), | ||
334 | - show: ({ values }) => { | ||
335 | - return !values.field7; | ||
336 | - }, | ||
337 | - }, | ||
338 | - // { | ||
339 | - // field: 'field7', | ||
340 | - // component: 'Switch', | ||
341 | - // label: '切换到动态值', | ||
342 | - // colProps: { | ||
343 | - // span: 8, | ||
344 | - // }, | ||
345 | - // labelWidth: 200, | ||
346 | - // ifShow: ({ values }) => isBoolean(Reflect.get(values, 'type1')), | ||
347 | - // }, | ||
348 | - // { | ||
349 | - // field: 'sourceType', | ||
350 | - // label: '动态源类型', | ||
351 | - // colProps: { span: 24 }, | ||
352 | - // component: 'Select', | ||
353 | - // componentProps: { | ||
354 | - // placeholder: '请选择动态源类型', | ||
355 | - // options: [ | ||
356 | - // { label: '无动态值', value: '' }, | ||
357 | - // { label: '当前租户', value: 'CURRENT_TENANT' }, | ||
358 | - // { label: '当前客户', value: 'CURRENT_CUSTOMER' }, | ||
359 | - // { label: '当前设备', value: 'CURRENT_DEVICE' }, | ||
360 | - // ], | ||
361 | - // }, | ||
362 | - // ifShow: ({ values }) => isBoolean(Reflect.get(values, 'type1')), | ||
363 | - // show: ({ values }) => { | ||
364 | - // return !!values.field7; | ||
365 | - // }, | ||
366 | - // }, | ||
367 | - // { | ||
368 | - // field: 'sourceAttribute', | ||
369 | - // label: '源属性', | ||
370 | - // colProps: { span: 24 }, | ||
371 | - // component: 'Input', | ||
372 | - // componentProps: { | ||
373 | - // placeholder: '请输入源属性', | ||
374 | - // }, | ||
375 | - // ifShow: ({ values }) => isBoolean(Reflect.get(values, 'type1')), | ||
376 | - // show: ({ values }) => { | ||
377 | - // return !!values.field7; | ||
378 | - // }, | ||
379 | - // }, | ||
380 | - { | ||
381 | - field: 'operation', | ||
382 | - label: '操作', | ||
383 | - colProps: { span: 13 }, | ||
384 | - component: 'Select', | ||
385 | - componentProps: { | ||
386 | - placeholder: '请选择操作', | ||
387 | - options: [ | ||
388 | - { label: '等于', value: 'EQUAL' }, | ||
389 | - { label: '不等于', value: 'NOT_EQUAL' }, | ||
390 | - { label: '大于', value: 'GREATER' }, | ||
391 | - { label: '小于', value: 'LESS' }, | ||
392 | - { label: '大于或等于', value: 'GREATER_OR_EQUAL' }, | ||
393 | - { label: '小于或等于', value: 'LESS_OR_EQUAL' }, | ||
394 | - ], | ||
395 | - }, | ||
396 | - ifShow: ({ values }) => isComplex(Reflect.get(values, 'type1')), | ||
397 | - }, | ||
398 | - { | ||
399 | - field: 'no', | ||
400 | - component: 'DatePicker', | ||
401 | - label: '请选择日期', | ||
402 | - colProps: { | ||
403 | - span: 13, | ||
404 | - }, | ||
405 | - ifShow: ({ values }) => isComplex(Reflect.get(values, 'type1')), | ||
406 | - show: ({ values }) => { | ||
407 | - return !values.field8; | ||
408 | - }, | ||
409 | - }, | ||
410 | - { | ||
411 | - field: 'no', | ||
412 | - component: 'TimePicker', | ||
413 | - label: '请选择时间', | ||
414 | - colProps: { | ||
415 | - span: 13, | ||
416 | - }, | ||
417 | - ifShow: ({ values }) => isComplex(Reflect.get(values, 'type1')), | ||
418 | - show: ({ values }) => { | ||
419 | - return !values.field8; | ||
420 | - }, | ||
421 | - }, | ||
422 | - // { | ||
423 | - // field: 'field8', | ||
424 | - // component: 'Switch', | ||
425 | - // label: '切换到动态值', | ||
426 | - // colProps: { | ||
427 | - // span: 8, | ||
428 | - // }, | ||
429 | - // labelWidth: 200, | ||
430 | - // ifShow: ({ values }) => isComplex(Reflect.get(values, 'type1')), | ||
431 | - // }, | ||
432 | - // { | ||
433 | - // field: 'sourceType', | ||
434 | - // label: '动态源类型', | ||
435 | - // colProps: { span: 24 }, | ||
436 | - // component: 'Select', | ||
437 | - // componentProps: { | ||
438 | - // placeholder: '请选择动态源类型', | ||
439 | - // options: [ | ||
440 | - // { label: '无动态值', value: '' }, | ||
441 | - // { label: '当前租户', value: 'CURRENT_TENANT' }, | ||
442 | - // { label: '当前客户', value: 'CURRENT_CUSTOMER' }, | ||
443 | - // { label: '当前设备', value: 'CURRENT_DEVICE' }, | ||
444 | - // ], | ||
445 | - // }, | ||
446 | - // ifShow: ({ values }) => isComplex(Reflect.get(values, 'type1')), | ||
447 | - // show: ({ values }) => { | ||
448 | - // return !!values.field8; | ||
449 | - // }, | ||
450 | - // }, | ||
451 | - // { | ||
452 | - // field: 'sourceAttribute', | ||
453 | - // label: '源属性', | ||
454 | - // colProps: { span: 24 }, | ||
455 | - // component: 'Input', | ||
456 | - // componentProps: { | ||
457 | - // placeholder: '请输入源属性', | ||
458 | - // }, | ||
459 | - // ifShow: ({ values }) => isComplex(Reflect.get(values, 'type1')), | ||
460 | - // show: ({ values }) => { | ||
461 | - // return !!values.field8; | ||
462 | - // }, | ||
463 | - // }, | ||
464 | - // { | ||
465 | - // field: 'value1', | ||
466 | - // label: '默认值', | ||
467 | - // colProps: { span: 24 }, | ||
468 | - // component: 'Input', | ||
469 | - // componentProps: { | ||
470 | - // placeholder: '请输入默认值(数字)', | ||
471 | - // }, | ||
472 | - // }, | ||
473 | -]; |
src/views/device/profiles/step/cpns/alarmruleconditions/cpns/cpns/config.ts
deleted
100644 → 0
1 | -import { FormSchema } from '/@/components/Table'; | ||
2 | - | ||
3 | -export const formSchema: FormSchema[] = [ | ||
4 | - { | ||
5 | - field: 'type', | ||
6 | - label: '操作', | ||
7 | - colProps: { span: 24 }, | ||
8 | - component: 'Select', | ||
9 | - componentProps: { | ||
10 | - placeholder: '请选择操作', | ||
11 | - options: [ | ||
12 | - { label: '和', value: '和' }, | ||
13 | - { label: '或', value: '或' }, | ||
14 | - ], | ||
15 | - }, | ||
16 | - }, | ||
17 | -]; |
src/views/device/profiles/step/cpns/alarmruleconditions/cpns/cpns/index.vue
deleted
100644 → 0
1 | -<template> | ||
2 | - <BasicModal | ||
3 | - v-bind="$attrs" | ||
4 | - width="55rem" | ||
5 | - @register="registerAdd" | ||
6 | - :title="getTitle" | ||
7 | - @ok="handleSubmit" | ||
8 | - @cancel="handleCancel" | ||
9 | - > | ||
10 | - <BasicForm :showResetButton="false" :showSubmitButton="false" @register="registerForm" /> | ||
11 | - </BasicModal> | ||
12 | -</template> | ||
13 | -<script lang="ts"> | ||
14 | - import { defineComponent, ref, computed, unref } from 'vue'; | ||
15 | - import { BasicModal, useModalInner } from '/@/components/Modal'; | ||
16 | - import { BasicForm, useForm } from '/@/components/Form'; | ||
17 | - import { formSchema } from './config'; | ||
18 | - | ||
19 | - export default defineComponent({ | ||
20 | - name: 'index', | ||
21 | - components: { BasicModal, BasicForm }, | ||
22 | - emits: ['success', 'register'], | ||
23 | - setup(_, { emit }) { | ||
24 | - const isUpdate = ref(true); | ||
25 | - const getValue: any = ref({}); | ||
26 | - const setId: any = ref(1); | ||
27 | - const getTitle = computed(() => (!unref(isUpdate) ? '新增复合筛选器' : '编辑复合筛选器')); | ||
28 | - const [registerForm, { getFieldsValue, setFieldsValue, resetFields }] = useForm({ | ||
29 | - labelWidth: 120, | ||
30 | - schemas: formSchema, | ||
31 | - }); | ||
32 | - const [registerAdd, { closeModal }] = useModalInner(async (data) => { | ||
33 | - isUpdate.value = !!data?.isUpdate; | ||
34 | - if (!unref(isUpdate)) { | ||
35 | - resetFields(); | ||
36 | - } | ||
37 | - if (unref(isUpdate)) { | ||
38 | - setFieldsValue({ | ||
39 | - ...data.record, | ||
40 | - }); | ||
41 | - } | ||
42 | - }); | ||
43 | - const handleSubmit = () => { | ||
44 | - if (!unref(isUpdate)) { | ||
45 | - getValue.value = getFieldsValue(); | ||
46 | - setId.value += 1; | ||
47 | - getValue.value.id = setId.value; | ||
48 | - } else { | ||
49 | - getValue.value = getFieldsValue(); | ||
50 | - setId.value += 1000; | ||
51 | - getValue.value.id = setId.value; | ||
52 | - } | ||
53 | - emit('success', getValue.value); | ||
54 | - closeModal(); | ||
55 | - }; | ||
56 | - const handleCancel = () => { | ||
57 | - return; | ||
58 | - }; | ||
59 | - return { | ||
60 | - registerForm, | ||
61 | - handleCancel, | ||
62 | - handleSubmit, | ||
63 | - registerAdd, | ||
64 | - getTitle, | ||
65 | - }; | ||
66 | - }, | ||
67 | - }); | ||
68 | -</script> |
src/views/device/profiles/step/cpns/alarmruleconditions/cpns/index.vue
deleted
100644 → 0
1 | -<template> | ||
2 | - <BasicModal | ||
3 | - v-bind="$attrs" | ||
4 | - width="55rem" | ||
5 | - @register="register" | ||
6 | - :title="getTitle" | ||
7 | - @ok="handleSubmit" | ||
8 | - @cancel="handleCancel" | ||
9 | - > | ||
10 | - <BasicForm :showResetButton="false" :showSubmitButton="false" @register="registerForm" /> | ||
11 | - <template v-if="getIsWhereType"> | ||
12 | - <div><p style="text-align: center">未配置筛选器</p></div> | ||
13 | - <!-- <div><p style="text-align: left">筛选器</p></div> --> | ||
14 | - <div style="width: 50vw; height: 5vh; display: flex; justify-content: space-between"> | ||
15 | - <div style="width: 5vw; height: 2vh"> | ||
16 | - <p v-for="(item, index) in n" :key="index"></p> | ||
17 | - </div> | ||
18 | - <div style="width: 45vw; height: 2vh"> | ||
19 | - <BasicForm :showActionButtonGroup="false" @register="registerFilter"> | ||
20 | - <template #add="{ field }"> | ||
21 | - <!-- <Button v-if="Number(field) === 0" @click="add">添加</Button> --> | ||
22 | - <Button v-if="Number(field) === 0" disabled @click="handleAdd">添加复合器</Button> | ||
23 | - <!-- <Button v-if="Number(field) === 0" @click="handleEdit">编辑复合器</Button> --> | ||
24 | - <Button v-if="field > 0" @click="del(field)">-</Button> | ||
25 | - </template> | ||
26 | - </BasicForm> | ||
27 | - </div> | ||
28 | - </div> | ||
29 | - <AddkeyValueModal @register="registerModal" /> | ||
30 | - </template> | ||
31 | - </BasicModal> | ||
32 | -</template> | ||
33 | -<script lang="ts"> | ||
34 | - import { defineComponent, ref, computed, unref, watch } from 'vue'; | ||
35 | - import { BasicModal, useModalInner } from '/@/components/Modal'; | ||
36 | - import { useModal } from '/@/components/Modal'; | ||
37 | - import { BasicForm, useForm } from '/@/components/Form'; | ||
38 | - import { formSchema, isWhereType } from './config'; | ||
39 | - import { Button } from '/@/components/Button'; | ||
40 | - import AddkeyValueModal from './cpns/index.vue'; | ||
41 | - | ||
42 | - export default defineComponent({ | ||
43 | - name: 'index', | ||
44 | - components: { BasicModal, BasicForm, Button, AddkeyValueModal }, | ||
45 | - emits: ['success', 'register'], | ||
46 | - setup(_, { emit }) { | ||
47 | - const getIsWhereType: any = ref(null); | ||
48 | - const isUpdate = ref(true); | ||
49 | - const getValue: any = ref(null); | ||
50 | - const getKeyAndValArr = ref<[]>([]); | ||
51 | - | ||
52 | - const getTitle = computed(() => (!unref(isUpdate) ? '新增键名筛选器' : '编辑键名筛选器')); | ||
53 | - const [registerForm, { getFieldsValue, setFieldsValue, resetFields }] = useForm({ | ||
54 | - labelWidth: 120, | ||
55 | - schemas: formSchema, | ||
56 | - }); | ||
57 | - const [registerFilter, { appendSchemaByField, removeSchemaByFiled }] = useForm({ | ||
58 | - // schemas: [ | ||
59 | - // { | ||
60 | - // field: 'field0a', | ||
61 | - // component: 'Input', | ||
62 | - // label: '字段0', | ||
63 | - // colProps: { | ||
64 | - // span: 8, | ||
65 | - // }, | ||
66 | - // required: true, | ||
67 | - // }, | ||
68 | - // { | ||
69 | - // field: 'field0b', | ||
70 | - // component: 'Input', | ||
71 | - // label: '字段0', | ||
72 | - // colProps: { | ||
73 | - // span: 8, | ||
74 | - // }, | ||
75 | - // required: true, | ||
76 | - // }, | ||
77 | - // { | ||
78 | - // field: '0', | ||
79 | - // component: 'Input', | ||
80 | - // label: ' ', | ||
81 | - // colProps: { | ||
82 | - // span: 8, | ||
83 | - // }, | ||
84 | - // slot: 'add', | ||
85 | - // }, | ||
86 | - // ], | ||
87 | - labelWidth: 100, | ||
88 | - actionColOptions: { span: 24 }, | ||
89 | - }); | ||
90 | - const [register, { closeModal }] = useModalInner(async (data) => { | ||
91 | - isUpdate.value = !!data?.isUpdate; | ||
92 | - if (!unref(isUpdate)) { | ||
93 | - resetFields(); | ||
94 | - getIsWhereType.value = 100; | ||
95 | - } | ||
96 | - if (unref(isUpdate)) { | ||
97 | - setFieldsValue({ | ||
98 | - ...data.record, | ||
99 | - }); | ||
100 | - } | ||
101 | - }); | ||
102 | - | ||
103 | - const handleSubmit = () => { | ||
104 | - let mapGetKeyAndValArr = []; | ||
105 | - getValue.value = getFieldsValue(); | ||
106 | - if (!unref(isUpdate)) { | ||
107 | - getKeyAndValArr.value.push(getValue.value); | ||
108 | - } | ||
109 | - mapGetKeyAndValArr = getKeyAndValArr.value.map((m: any, index) => { | ||
110 | - return { | ||
111 | - key: { | ||
112 | - id: index, | ||
113 | - type: m.type, | ||
114 | - key: m.key1, | ||
115 | - }, | ||
116 | - valueType: m.type1, | ||
117 | - value: m.value1, | ||
118 | - predicate: { | ||
119 | - type: m.type1, | ||
120 | - operation: m.operation, | ||
121 | - value: { | ||
122 | - defaultValue: m.value1, | ||
123 | - }, | ||
124 | - }, | ||
125 | - }; | ||
126 | - }); | ||
127 | - if (!unref(isUpdate)) { | ||
128 | - getValue.value.id = getKeyAndValArr.value.length - 1; | ||
129 | - } | ||
130 | - | ||
131 | - emit('success', mapGetKeyAndValArr, getValue.value, unref(isUpdate)); | ||
132 | - closeModal(); | ||
133 | - }; | ||
134 | - const handleCancel = () => { | ||
135 | - return; | ||
136 | - }; | ||
137 | - const n = ref(1); | ||
138 | - | ||
139 | - function add() { | ||
140 | - appendSchemaByField( | ||
141 | - { | ||
142 | - field: `field${n.value}a`, | ||
143 | - component: 'Input', | ||
144 | - label: '字段' + n.value, | ||
145 | - colProps: { | ||
146 | - span: 8, | ||
147 | - }, | ||
148 | - required: true, | ||
149 | - }, | ||
150 | - '' | ||
151 | - ); | ||
152 | - appendSchemaByField( | ||
153 | - { | ||
154 | - field: `field${n.value}b`, | ||
155 | - component: 'Input', | ||
156 | - label: '字段' + n.value, | ||
157 | - colProps: { | ||
158 | - span: 8, | ||
159 | - }, | ||
160 | - required: true, | ||
161 | - }, | ||
162 | - '' | ||
163 | - ); | ||
164 | - | ||
165 | - appendSchemaByField( | ||
166 | - { | ||
167 | - field: `${n.value}`, | ||
168 | - component: 'Input', | ||
169 | - label: ' ', | ||
170 | - colProps: { | ||
171 | - span: 8, | ||
172 | - }, | ||
173 | - slot: 'add', | ||
174 | - }, | ||
175 | - '' | ||
176 | - ); | ||
177 | - n.value++; | ||
178 | - } | ||
179 | - | ||
180 | - function del(field) { | ||
181 | - removeSchemaByFiled([`field${field}a`, `field${field}b`, `${field}`]); | ||
182 | - n.value--; | ||
183 | - } | ||
184 | - | ||
185 | - watch(isWhereType, (v) => { | ||
186 | - switch (v) { | ||
187 | - case 'STRING': | ||
188 | - getIsWhereType.value = v; | ||
189 | - break; | ||
190 | - case 'NUMERIC': | ||
191 | - getIsWhereType.value = v; | ||
192 | - break; | ||
193 | - case 'BOOLEAN': | ||
194 | - getIsWhereType.value = v; | ||
195 | - break; | ||
196 | - case 'COMPLEX': | ||
197 | - getIsWhereType.value = v; | ||
198 | - break; | ||
199 | - default: | ||
200 | - getIsWhereType.value = 100; | ||
201 | - } | ||
202 | - }); | ||
203 | - const [registerModal, { openModal }] = useModal(); | ||
204 | - //复合器弹窗 | ||
205 | - const addPlusIfEdit = ref(1); | ||
206 | - const handleAdd = () => { | ||
207 | - openModal(true, { | ||
208 | - isUpdate: false, | ||
209 | - addPlusIfEdit: addPlusIfEdit.value++, | ||
210 | - }); | ||
211 | - }; | ||
212 | - const handleEdit = () => { | ||
213 | - openModal(true, { | ||
214 | - isUpdate: true, | ||
215 | - }); | ||
216 | - }; | ||
217 | - | ||
218 | - return { | ||
219 | - getIsWhereType, | ||
220 | - registerModal, | ||
221 | - handleEdit, | ||
222 | - handleAdd, | ||
223 | - n, | ||
224 | - add, | ||
225 | - del, | ||
226 | - registerFilter, | ||
227 | - registerForm, | ||
228 | - handleCancel, | ||
229 | - handleSubmit, | ||
230 | - register, | ||
231 | - getTitle, | ||
232 | - }; | ||
233 | - }, | ||
234 | - }); | ||
235 | -</script> |
src/views/device/profiles/step/cpns/alarmruleconditions/index.vue
deleted
100644 → 0
1 | -<template> | ||
2 | - <div class="key-style"> | ||
3 | - <BasicModal | ||
4 | - v-bind="$attrs" | ||
5 | - width="55rem" | ||
6 | - @register="register" | ||
7 | - :title="getTitle" | ||
8 | - @ok="handleSubmit" | ||
9 | - @cancel="handleCancel" | ||
10 | - > | ||
11 | - <CollapseContainer title="键名筛选器" class="border mb-8"> | ||
12 | - <div class="table-style"> | ||
13 | - <BasicTable | ||
14 | - :showIndexColumn="false" | ||
15 | - :dataSource="getTableApiData.value" | ||
16 | - @register="registerTable" | ||
17 | - > | ||
18 | - <template #toolbar> | ||
19 | - <a-button type="primary" @click="handleAddKey">新增键名筛选器</a-button> | ||
20 | - </template> | ||
21 | - <template #action="{ record }"> | ||
22 | - <TableAction | ||
23 | - :actions="[ | ||
24 | - { | ||
25 | - label: '编辑', | ||
26 | - icon: 'clarity:note-edit-line', | ||
27 | - onClick: handleEdit.bind(null, record), | ||
28 | - }, | ||
29 | - { | ||
30 | - label: '删除', | ||
31 | - icon: 'ant-design:delete-outlined', | ||
32 | - color: 'error', | ||
33 | - popConfirm: { | ||
34 | - title: '是否确认删除', | ||
35 | - confirm: handleDelete.bind(null, record), | ||
36 | - }, | ||
37 | - }, | ||
38 | - ]" | ||
39 | - /> | ||
40 | - </template> | ||
41 | - </BasicTable> | ||
42 | - </div> | ||
43 | - </CollapseContainer> | ||
44 | - <!-- <CollapseContainer title="筛选器预览" class="border mb-8">--> | ||
45 | - <!-- <!– <p v-for="(item, index) in detailData" :key="index">{{ item }}</p> –>--> | ||
46 | - <!-- <Description--> | ||
47 | - <!-- v-for="(item, index) in detailData"--> | ||
48 | - <!-- :key="index"--> | ||
49 | - <!-- :column="3"--> | ||
50 | - <!-- :data="item"--> | ||
51 | - <!-- :schema="schema"--> | ||
52 | - <!-- />--> | ||
53 | - <!-- </CollapseContainer>--> | ||
54 | - <BasicForm :showResetButton="false" :showSubmitButton="false" @register="registerForm" /> | ||
55 | - </BasicModal> | ||
56 | - <KeyValueModal @register="registerModal" @success="handleSuccess" /> | ||
57 | - </div> | ||
58 | -</template> | ||
59 | -<script lang="ts"> | ||
60 | - import { defineComponent, ref, computed, unref, reactive, nextTick } from 'vue'; | ||
61 | - import { BasicModal } from '/@/components/Modal'; | ||
62 | - import { BasicForm, useForm } from '/@/components/Form'; | ||
63 | - import { formSchema, keyColumns, DescDetailSchema } from './config'; | ||
64 | - import { CollapseContainer } from '/@/components/Container/index'; | ||
65 | - import { BasicTable, useTable, TableAction } from '/@/components/Table'; | ||
66 | - import { useModal } from '/@/components/Modal'; | ||
67 | - import KeyValueModal from './cpns/index.vue'; | ||
68 | - import { Description, DescItem } from '/@/components/Description/index'; | ||
69 | - const schema: DescItem[] = [ | ||
70 | - { | ||
71 | - field: 'key1', | ||
72 | - label: '键名', | ||
73 | - }, | ||
74 | - { | ||
75 | - field: 'operation', | ||
76 | - label: '操作', | ||
77 | - render: (_, data) => { | ||
78 | - const findDay = [ | ||
79 | - { label: '等于', value: 'EQUAL' }, | ||
80 | - { label: '不等于', value: 'NOT_EQUAL' }, | ||
81 | - { label: '开始于', value: 'STARTS_WITH' }, | ||
82 | - { label: '结束于', value: 'ENDS_WITH' }, | ||
83 | - { label: '包含', value: 'CONTAINS' }, | ||
84 | - { label: '不包含', value: 'NOT_CONTAINS' }, | ||
85 | - { label: '等于', value: 'EQUAL' }, | ||
86 | - { label: '不等于', value: 'NOT_EQUAL' }, | ||
87 | - { label: '大于', value: 'GREATER' }, | ||
88 | - { label: '小于', value: 'LESS' }, | ||
89 | - { label: '大于或等于', value: 'GREATER_OR_EQUAL' }, | ||
90 | - { label: '小于或等于', value: 'LESS_OR_EQUAL' }, | ||
91 | - ]; | ||
92 | - const findRuleByValue = findDay.find((f) => { | ||
93 | - if (f.value == data.operation) { | ||
94 | - return f.label; | ||
95 | - } | ||
96 | - }); | ||
97 | - return findRuleByValue?.label; | ||
98 | - }, | ||
99 | - }, | ||
100 | - { | ||
101 | - field: 'value1', | ||
102 | - label: '值', | ||
103 | - }, | ||
104 | - ]; | ||
105 | - | ||
106 | - export default defineComponent({ | ||
107 | - name: 'DetailTemplate', | ||
108 | - components: { | ||
109 | - KeyValueModal, | ||
110 | - BasicModal, | ||
111 | - BasicForm, | ||
112 | - CollapseContainer, | ||
113 | - BasicTable, | ||
114 | - TableAction, | ||
115 | - Description, | ||
116 | - }, | ||
117 | - props: ['getFatherData'], | ||
118 | - emits: ['success', 'register', 'getAllFieldsRule', 'getLastAllFieldsRule'], | ||
119 | - setup(props, { emit }) { | ||
120 | - let getKeyAndValueChildData = ref<[]>([]); | ||
121 | - const getTableApiData: any = ref([]); | ||
122 | - const detailData: any = ref([]); | ||
123 | - const currentIndex = ref(0); | ||
124 | - const lastValues: any = ref(null); | ||
125 | - const isUpdate = ref(true); | ||
126 | - const watchCurrentAlarmConditionValue = reactive({ | ||
127 | - key: 0, | ||
128 | - data: {}, | ||
129 | - }); | ||
130 | - | ||
131 | - const [registerForm, { getFieldsValue, resetFields }] = useForm({ | ||
132 | - labelWidth: 120, | ||
133 | - schemas: formSchema, | ||
134 | - }); | ||
135 | - const [registerModal, { openModal }] = useModal(); | ||
136 | - const getTitle = computed(() => (!unref(isUpdate) ? '添加报警规则条件' : '编辑报警规则条件')); | ||
137 | - const [register, { closeModal, openModal: openCondition }] = useModal(); | ||
138 | - const [registerTable, { reload, setTableData: setFunc }] = useTable({ | ||
139 | - title: '键名筛选器', | ||
140 | - columns: keyColumns, | ||
141 | - bordered: true, | ||
142 | - showIndexColumn: false, | ||
143 | - pagination: false, | ||
144 | - autoCreateKey: true, | ||
145 | - actionColumn: { | ||
146 | - width: 200, | ||
147 | - title: '操作', | ||
148 | - dataIndex: 'action', | ||
149 | - slots: { customRender: 'action' }, | ||
150 | - }, | ||
151 | - }); | ||
152 | - const getFieldsValueFunc = () => { | ||
153 | - return watchCurrentAlarmConditionValue.data; | ||
154 | - }; | ||
155 | - const handleSubmit = () => { | ||
156 | - lastValues.value = getFieldsValue(); | ||
157 | - watchCurrentAlarmConditionValue.key = currentIndex.value; | ||
158 | - let allTableDatas = []; | ||
159 | - getTableApiData.value.forEach((tableObj) => { | ||
160 | - let key = { type: tableObj.type, key: tableObj.key1 }; | ||
161 | - let predicate = { | ||
162 | - operation: tableObj.operation, | ||
163 | - type: tableObj.type1, | ||
164 | - value: { | ||
165 | - defaultValue: tableObj.value1, | ||
166 | - }, | ||
167 | - }; | ||
168 | - allTableDatas.push({ | ||
169 | - key: key, | ||
170 | - predicate: predicate, | ||
171 | - value: tableObj.value1, | ||
172 | - valueType: tableObj.type1, | ||
173 | - }); | ||
174 | - }); | ||
175 | - watchCurrentAlarmConditionValue.data = allTableDatas; | ||
176 | - emit('getAllFieldsRule', watchCurrentAlarmConditionValue, lastValues.value); | ||
177 | - closeModal(); | ||
178 | - }; | ||
179 | - const resetDataFunc = (j, currentAlarmCondition, update) => { | ||
180 | - isUpdate.value = update; | ||
181 | - openCondition(true); | ||
182 | - currentIndex.value = j; | ||
183 | - resetFields(); | ||
184 | - getTableApiData.value = []; | ||
185 | - getTableApiData.value.length = 0; | ||
186 | - detailData.value = []; | ||
187 | - detailData.value.length = 0; | ||
188 | - console.log('father', props.getFatherData); | ||
189 | - let index = 0; | ||
190 | - if (currentAlarmCondition.data.length != undefined) { | ||
191 | - for (let i in currentAlarmCondition.data) { | ||
192 | - let obj = { | ||
193 | - id: index, | ||
194 | - key1: currentAlarmCondition.data[i].key.key, | ||
195 | - type: currentAlarmCondition.data[i].key.type, | ||
196 | - operation: currentAlarmCondition.data[i].predicate.operation, | ||
197 | - value1: currentAlarmCondition.data[i].value, | ||
198 | - type1: currentAlarmCondition.data[i].valueType, | ||
199 | - }; | ||
200 | - getTableApiData.value.push(obj); | ||
201 | - index++; | ||
202 | - } | ||
203 | - } | ||
204 | - nextTick(() => { | ||
205 | - setFunc(getTableApiData.value); | ||
206 | - }); | ||
207 | - }; | ||
208 | - | ||
209 | - const handleCancel = () => {}; | ||
210 | - const handleAddKey = () => { | ||
211 | - setTimeout(() => { | ||
212 | - openModal(true, { | ||
213 | - isUpdate: false, | ||
214 | - }); | ||
215 | - }, 10); | ||
216 | - }; | ||
217 | - const handleEdit = (record: Recordable) => { | ||
218 | - openModal(true, { | ||
219 | - isUpdate: true, | ||
220 | - record, | ||
221 | - }); | ||
222 | - reload(); | ||
223 | - }; | ||
224 | - const handleDelete = (record: Recordable) => { | ||
225 | - let newGetTableApiData = []; | ||
226 | - getTableApiData.value.forEach((currentTable) => { | ||
227 | - if (currentTable.id != record.id) { | ||
228 | - newGetTableApiData.push(currentTable as never); | ||
229 | - } | ||
230 | - }); | ||
231 | - getTableApiData.value = newGetTableApiData; | ||
232 | - setFunc(getTableApiData.value); | ||
233 | - reload(); | ||
234 | - }; | ||
235 | - const handleSuccess = (v, v1, isUpdate) => { | ||
236 | - if (isUpdate) { | ||
237 | - getTableApiData.value.forEach((tableValue) => { | ||
238 | - if (tableValue.id == v1.id) { | ||
239 | - tableValue.key1 = v1.key1; | ||
240 | - tableValue.operation = v1.operation; | ||
241 | - tableValue.type = v1.type; | ||
242 | - tableValue.type1 = v1.type1; | ||
243 | - tableValue.value1 = v1.value1; | ||
244 | - } | ||
245 | - }); | ||
246 | - } else { | ||
247 | - getTableApiData.value.push(v1); | ||
248 | - } | ||
249 | - getKeyAndValueChildData.value = v; | ||
250 | - setFunc(getTableApiData.value); | ||
251 | - reload(); | ||
252 | - }; | ||
253 | - return { | ||
254 | - handleCancel, | ||
255 | - schema, | ||
256 | - detailData, | ||
257 | - getTableApiData, | ||
258 | - resetDataFunc, | ||
259 | - DescDetailSchema, | ||
260 | - handleSuccess, | ||
261 | - handleEdit, | ||
262 | - handleDelete, | ||
263 | - registerModal, | ||
264 | - registerTable, | ||
265 | - handleAddKey, | ||
266 | - registerForm, | ||
267 | - handleSubmit, | ||
268 | - register, | ||
269 | - getTitle, | ||
270 | - currentIndex, | ||
271 | - getFieldsValueFunc, | ||
272 | - }; | ||
273 | - }, | ||
274 | - }); | ||
275 | -</script> | ||
276 | -<style lang="less" scoped> | ||
277 | - :deep .ant-table-body { | ||
278 | - overflow-y: auto !important; | ||
279 | - min-height: 90px !important; | ||
280 | - height: 0px !important; | ||
281 | - } | ||
282 | -</style> |
src/views/device/profiles/step/cpns/alarmseverity/config.ts
deleted
100644 → 0
1 | -import { FormSchema } from '/@/components/Form'; | ||
2 | -import { ref } from 'vue'; | ||
3 | - | ||
4 | -const isWhereType = ref(''); | ||
5 | - | ||
6 | -export const formSchema: FormSchema[] = [ | ||
7 | - { | ||
8 | - field: 'default', | ||
9 | - component: 'Select', | ||
10 | - label: '报警严重程度:', | ||
11 | - required: true, | ||
12 | - colProps: { | ||
13 | - span: 17, | ||
14 | - }, | ||
15 | - componentProps() { | ||
16 | - return { | ||
17 | - placeholder: '请选择严重程度', | ||
18 | - options: [ | ||
19 | - { | ||
20 | - value: 'CRITICAL', | ||
21 | - label: '危险', | ||
22 | - }, | ||
23 | - { | ||
24 | - value: 'MAJOR', | ||
25 | - label: '重要', | ||
26 | - }, | ||
27 | - { | ||
28 | - value: 'MINOR', | ||
29 | - label: '次要', | ||
30 | - }, | ||
31 | - { | ||
32 | - value: 'WARNING', | ||
33 | - label: '警告', | ||
34 | - }, | ||
35 | - { | ||
36 | - value: 'INDETERMINATE', | ||
37 | - label: '不确定', | ||
38 | - }, | ||
39 | - ], | ||
40 | - onChange: (v) => { | ||
41 | - isWhereType.value = v ? v : 'INDETERMINATE'; | ||
42 | - }, | ||
43 | - }; | ||
44 | - }, | ||
45 | - }, | ||
46 | -]; |
src/views/device/profiles/step/cpns/alarmseverity/index.vue
deleted
100644 → 0
1 | -<template> | ||
2 | - <div> | ||
3 | - <BasicForm :showResetButton="false" :showSubmitButton="false" @register="registerForm" /> | ||
4 | - </div> | ||
5 | -</template> | ||
6 | -<script lang="ts"> | ||
7 | - import { defineComponent, ref } from 'vue'; | ||
8 | - import { BasicForm, useForm } from '/@/components/Form'; | ||
9 | - import { formSchema } from './config'; | ||
10 | - | ||
11 | - export default defineComponent({ | ||
12 | - name: 'DetailTemplate', | ||
13 | - components: { | ||
14 | - BasicForm, | ||
15 | - }, | ||
16 | - props: ['AlarmSeverityCpnData'], | ||
17 | - emits: ['success', 'register', 'getAllFields'], | ||
18 | - setup(props) { | ||
19 | - const fieldValue: any = ref({}); | ||
20 | - const [registerForm, { resetFields, getFieldsValue, setFieldsValue, updateSchema }] = useForm( | ||
21 | - { | ||
22 | - labelWidth: 120, | ||
23 | - schemas: formSchema, | ||
24 | - } | ||
25 | - ); | ||
26 | - const resetFieldsFunc = () => { | ||
27 | - resetFields(); | ||
28 | - }; | ||
29 | - const getFieldsValueFunc = () => { | ||
30 | - fieldValue.value = getFieldsValue(); | ||
31 | - return fieldValue.value; | ||
32 | - }; | ||
33 | - const item = [ | ||
34 | - { | ||
35 | - value: 'CRITICAL', | ||
36 | - label: '危险', | ||
37 | - }, | ||
38 | - { | ||
39 | - value: 'MAJOR', | ||
40 | - label: '重要', | ||
41 | - }, | ||
42 | - { | ||
43 | - value: 'MINOR', | ||
44 | - label: '次要', | ||
45 | - }, | ||
46 | - { | ||
47 | - value: 'WARNING', | ||
48 | - label: '警告', | ||
49 | - }, | ||
50 | - { | ||
51 | - value: 'INDETERMINATE', | ||
52 | - label: '不确定', | ||
53 | - }, | ||
54 | - ]; | ||
55 | - const updateSchemaSelectDisableFunc = () => { | ||
56 | - updateSchema({ | ||
57 | - field: 'default', | ||
58 | - componentProps: ({ formModel }) => { | ||
59 | - item.forEach((f: any) => { | ||
60 | - if (f.value == formModel.default) { | ||
61 | - f.disabled = true; | ||
62 | - } | ||
63 | - }); | ||
64 | - return { | ||
65 | - options: item, | ||
66 | - }; | ||
67 | - }, | ||
68 | - }); | ||
69 | - }; | ||
70 | - const updateSchemaSelectEnableFunc = () => { | ||
71 | - updateSchema({ | ||
72 | - field: 'default', | ||
73 | - componentProps: ({ formModel }) => { | ||
74 | - console.log(formModel); | ||
75 | - return { | ||
76 | - disabled: false, | ||
77 | - options: item, | ||
78 | - }; | ||
79 | - }, | ||
80 | - }); | ||
81 | - }; | ||
82 | - const setFieldsValueFunc = () => { | ||
83 | - if (props.AlarmSeverityCpnData != 1) { | ||
84 | - let newArr = Object.keys(props.AlarmSeverityCpnData); | ||
85 | - setTimeout(() => { | ||
86 | - newArr.forEach((f) => { | ||
87 | - setFieldsValue({ default: f }); | ||
88 | - }); | ||
89 | - }, 10); | ||
90 | - } | ||
91 | - }; | ||
92 | - setFieldsValueFunc(); | ||
93 | - return { | ||
94 | - resetFieldsFunc, | ||
95 | - updateSchemaSelectDisableFunc, | ||
96 | - getFieldsValueFunc, | ||
97 | - registerForm, | ||
98 | - setFieldsValueFunc, | ||
99 | - updateSchemaSelectEnableFunc, | ||
100 | - item, | ||
101 | - }; | ||
102 | - }, | ||
103 | - }); | ||
104 | -</script> |
src/views/device/profiles/step/cpns/detailtemplate/config.ts
deleted
100644 → 0
1 | -import { FormSchema } from '/@/components/Table'; | ||
2 | - | ||
3 | -export const formSchema: FormSchema[] = [ | ||
4 | - { | ||
5 | - field: 'alarmDetails', | ||
6 | - label: '报警详细信息:', | ||
7 | - colProps: { span: 17 }, | ||
8 | - component: 'Input', | ||
9 | - componentProps: { | ||
10 | - maxLength: 255, | ||
11 | - placeholder: '请输入报警详细信息', | ||
12 | - }, | ||
13 | - }, | ||
14 | -]; |
src/views/device/profiles/step/cpns/detailtemplate/index.vue
deleted
100644 → 0
1 | -<template> | ||
2 | - <div> | ||
3 | - <BasicForm :showResetButton="false" :showSubmitButton="false" @register="registerForm" /> | ||
4 | - </div> | ||
5 | -</template> | ||
6 | -<script lang="ts"> | ||
7 | - import { defineComponent, ref } from 'vue'; | ||
8 | - import { BasicForm, useForm } from '/@/components/Form'; | ||
9 | - import { formSchema } from './config'; | ||
10 | - | ||
11 | - export default defineComponent({ | ||
12 | - name: 'DetailTemplate', | ||
13 | - components: { | ||
14 | - BasicForm, | ||
15 | - }, | ||
16 | - props: ['DetailTemplateCpnData'], | ||
17 | - emits: ['success', 'register', 'getAllFields'], | ||
18 | - setup(props) { | ||
19 | - const fieldValue: any = ref({}); | ||
20 | - const [registerForm, { getFieldsValue, setFieldsValue, resetFields }] = useForm({ | ||
21 | - labelWidth: 120, | ||
22 | - schemas: formSchema, | ||
23 | - }); | ||
24 | - const getFieldsValueFunc = () => { | ||
25 | - fieldValue.value = getFieldsValue(); | ||
26 | - return fieldValue.value; | ||
27 | - }; | ||
28 | - const setFieldsValueFunc = () => { | ||
29 | - if (props.DetailTemplateCpnData != 1) { | ||
30 | - let openEditRuleConditObj: any = {}; | ||
31 | - for (let i in props.DetailTemplateCpnData) { | ||
32 | - if (i == 'CRITICAL') { | ||
33 | - openEditRuleConditObj = props.DetailTemplateCpnData[i]; | ||
34 | - } else if (i == 'MAJOR') { | ||
35 | - openEditRuleConditObj = props.DetailTemplateCpnData[i]; | ||
36 | - } else if (i == 'MINOR') { | ||
37 | - openEditRuleConditObj = props.DetailTemplateCpnData[i]; | ||
38 | - } else if (i == 'WARNING') { | ||
39 | - openEditRuleConditObj = props.DetailTemplateCpnData[i]; | ||
40 | - } else if (i == 'INDETERMINATE') { | ||
41 | - openEditRuleConditObj = props.DetailTemplateCpnData[i]; | ||
42 | - } | ||
43 | - } | ||
44 | - setTimeout(() => { | ||
45 | - setFieldsValue({ | ||
46 | - alarmDetails: openEditRuleConditObj?.alarmDetails, | ||
47 | - }); | ||
48 | - }, 10); | ||
49 | - } | ||
50 | - }; | ||
51 | - setFieldsValueFunc(); | ||
52 | - | ||
53 | - const resetFieldsFunc = () => { | ||
54 | - resetFields(); | ||
55 | - }; | ||
56 | - return { | ||
57 | - resetFieldsFunc, | ||
58 | - getFieldsValueFunc, | ||
59 | - registerForm, | ||
60 | - setFieldsValueFunc, | ||
61 | - }; | ||
62 | - }, | ||
63 | - }); | ||
64 | -</script> |
src/views/device/profiles/step/cpns/enablerule/config.ts
deleted
100644 → 0
1 | -import { FormSchema } from '/@/components/Table'; | ||
2 | - | ||
3 | -/** | ||
4 | - * 所使用的枚举值 | ||
5 | - */ | ||
6 | - | ||
7 | -export enum TriggerEnum { | ||
8 | - IS_DEVICE_ACT = 'ANY_TIME', | ||
9 | - IS_TIME_ACT = 'SPECIFIC_TIME', | ||
10 | - IS_SCENE_ACT = 'CUSTOM', | ||
11 | -} | ||
12 | - | ||
13 | -export const isShiDu = (type: string) => { | ||
14 | - return type === TriggerEnum.IS_DEVICE_ACT; | ||
15 | -}; | ||
16 | -export const isWenDu = (type: string) => { | ||
17 | - return type === TriggerEnum.IS_TIME_ACT; | ||
18 | -}; | ||
19 | - | ||
20 | -export const isTimeAll = (type: string) => { | ||
21 | - return type === TriggerEnum.IS_SCENE_ACT; | ||
22 | -}; | ||
23 | - | ||
24 | -export const formSchema: FormSchema[] = [ | ||
25 | - { | ||
26 | - field: 'type', | ||
27 | - label: '报警日程表', | ||
28 | - colProps: { span: 12 }, | ||
29 | - required: true, | ||
30 | - component: 'Select', | ||
31 | - defaultValue: 'ANY_TIME', | ||
32 | - componentProps: { | ||
33 | - placeholder: '请选择报警日程表', | ||
34 | - options: [ | ||
35 | - { label: '始终启用', value: 'ANY_TIME' }, | ||
36 | - { label: '定时启用', value: 'SPECIFIC_TIME' }, | ||
37 | - { label: '自定义启用', value: 'CUSTOM' }, | ||
38 | - ], | ||
39 | - }, | ||
40 | - }, | ||
41 | - { | ||
42 | - field: 'timezone', | ||
43 | - label: '时区', | ||
44 | - colProps: { span: 12 }, | ||
45 | - required: true, | ||
46 | - component: 'Select', | ||
47 | - defaultValue: 'Asia/Shanghai (UTC+08:00)', | ||
48 | - componentProps: { | ||
49 | - placeholder: '请选择时区', | ||
50 | - options: [ | ||
51 | - { label: 'Asia/Shanghai (UTC+08:00)', value: 'Asia/Shanghai' }, | ||
52 | - { label: 'Africa/Accra (UTC+00:00)', value: 'Africa/Accra' }, | ||
53 | - { label: 'Africa/Addis Ababa (UTC+03:00)', value: 'Africa/Addis Ababa' }, | ||
54 | - { label: 'Africa/Asmara (UTC+03:00)', value: 'Africa/Asmara' }, | ||
55 | - ], | ||
56 | - }, | ||
57 | - ifShow: ({ values }) => | ||
58 | - isWenDu(Reflect.get(values, 'type')) || isTimeAll(Reflect.get(values, 'type')), | ||
59 | - }, | ||
60 | - | ||
61 | - { | ||
62 | - field: 'daysOfWeek1', | ||
63 | - component: 'CheckboxGroup', | ||
64 | - label: '天', | ||
65 | - colProps: { | ||
66 | - span: 8, | ||
67 | - }, | ||
68 | - componentProps: { | ||
69 | - options: [ | ||
70 | - { | ||
71 | - label: '星期一', | ||
72 | - value: '1', | ||
73 | - }, | ||
74 | - ], | ||
75 | - }, | ||
76 | - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')), | ||
77 | - }, | ||
78 | - { | ||
79 | - field: 'startsOn1', | ||
80 | - component: 'TimePicker', | ||
81 | - label: '开始时间选择', | ||
82 | - componentProps: { | ||
83 | - valueFormat: 'HH:mm:ss', | ||
84 | - }, | ||
85 | - colProps: { | ||
86 | - span: 8, | ||
87 | - }, | ||
88 | - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')), | ||
89 | - }, | ||
90 | - { | ||
91 | - field: 'endsOn1', | ||
92 | - component: 'TimePicker', | ||
93 | - label: '结束时间选择', | ||
94 | - componentProps: { | ||
95 | - valueFormat: 'HH:mm:ss', | ||
96 | - }, | ||
97 | - colProps: { | ||
98 | - span: 8, | ||
99 | - }, | ||
100 | - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')), | ||
101 | - }, | ||
102 | - | ||
103 | - { | ||
104 | - field: 'daysOfWeek2', | ||
105 | - component: 'CheckboxGroup', | ||
106 | - label: '天', | ||
107 | - colProps: { | ||
108 | - span: 8, | ||
109 | - }, | ||
110 | - componentProps: { | ||
111 | - options: [ | ||
112 | - { | ||
113 | - label: '星期二', | ||
114 | - value: '2', | ||
115 | - }, | ||
116 | - ], | ||
117 | - }, | ||
118 | - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')), | ||
119 | - }, | ||
120 | - { | ||
121 | - field: 'startsOn2', | ||
122 | - component: 'TimePicker', | ||
123 | - label: '开始时间选择', | ||
124 | - componentProps: { | ||
125 | - valueFormat: 'HH:mm:ss', | ||
126 | - }, | ||
127 | - colProps: { | ||
128 | - span: 8, | ||
129 | - }, | ||
130 | - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')), | ||
131 | - }, | ||
132 | - { | ||
133 | - field: 'endsOn2', | ||
134 | - component: 'TimePicker', | ||
135 | - label: '结束时间选择', | ||
136 | - componentProps: { | ||
137 | - valueFormat: 'HH:mm:ss', | ||
138 | - }, | ||
139 | - colProps: { | ||
140 | - span: 8, | ||
141 | - }, | ||
142 | - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')), | ||
143 | - }, | ||
144 | - { | ||
145 | - field: 'daysOfWeek3', | ||
146 | - component: 'CheckboxGroup', | ||
147 | - label: '天', | ||
148 | - colProps: { | ||
149 | - span: 8, | ||
150 | - }, | ||
151 | - componentProps: { | ||
152 | - options: [ | ||
153 | - { | ||
154 | - label: '星期三', | ||
155 | - value: '3', | ||
156 | - }, | ||
157 | - ], | ||
158 | - }, | ||
159 | - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')), | ||
160 | - }, | ||
161 | - { | ||
162 | - field: 'startsOn3', | ||
163 | - component: 'TimePicker', | ||
164 | - label: '开始时间选择', | ||
165 | - componentProps: { | ||
166 | - valueFormat: 'HH:mm:ss', | ||
167 | - }, | ||
168 | - colProps: { | ||
169 | - span: 8, | ||
170 | - }, | ||
171 | - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')), | ||
172 | - }, | ||
173 | - { | ||
174 | - field: 'endsOn3', | ||
175 | - component: 'TimePicker', | ||
176 | - label: '结束时间选择', | ||
177 | - componentProps: { | ||
178 | - valueFormat: 'HH:mm:ss', | ||
179 | - }, | ||
180 | - colProps: { | ||
181 | - span: 8, | ||
182 | - }, | ||
183 | - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')), | ||
184 | - }, | ||
185 | - { | ||
186 | - field: 'daysOfWeek4', | ||
187 | - component: 'CheckboxGroup', | ||
188 | - label: '天', | ||
189 | - colProps: { | ||
190 | - span: 8, | ||
191 | - }, | ||
192 | - componentProps: { | ||
193 | - options: [ | ||
194 | - { | ||
195 | - label: '星期四', | ||
196 | - value: '4', | ||
197 | - }, | ||
198 | - ], | ||
199 | - }, | ||
200 | - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')), | ||
201 | - }, | ||
202 | - { | ||
203 | - field: 'startsOn4', | ||
204 | - component: 'TimePicker', | ||
205 | - label: '开始时间选择', | ||
206 | - componentProps: { | ||
207 | - valueFormat: 'HH:mm:ss', | ||
208 | - }, | ||
209 | - colProps: { | ||
210 | - span: 8, | ||
211 | - }, | ||
212 | - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')), | ||
213 | - }, | ||
214 | - { | ||
215 | - field: 'endsOn4', | ||
216 | - component: 'TimePicker', | ||
217 | - label: '结束时间选择', | ||
218 | - componentProps: { | ||
219 | - valueFormat: 'HH:mm:ss', | ||
220 | - }, | ||
221 | - colProps: { | ||
222 | - span: 8, | ||
223 | - }, | ||
224 | - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')), | ||
225 | - }, | ||
226 | - { | ||
227 | - field: 'daysOfWeek5', | ||
228 | - component: 'CheckboxGroup', | ||
229 | - label: '天', | ||
230 | - colProps: { | ||
231 | - span: 8, | ||
232 | - }, | ||
233 | - componentProps: { | ||
234 | - options: [ | ||
235 | - { | ||
236 | - label: '星期五', | ||
237 | - value: '5', | ||
238 | - }, | ||
239 | - ], | ||
240 | - }, | ||
241 | - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')), | ||
242 | - }, | ||
243 | - { | ||
244 | - field: 'startsOn5', | ||
245 | - component: 'TimePicker', | ||
246 | - label: '开始时间选择', | ||
247 | - componentProps: { | ||
248 | - valueFormat: 'HH:mm:ss', | ||
249 | - }, | ||
250 | - colProps: { | ||
251 | - span: 8, | ||
252 | - }, | ||
253 | - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')), | ||
254 | - }, | ||
255 | - { | ||
256 | - field: 'endsOn5', | ||
257 | - component: 'TimePicker', | ||
258 | - label: '结束时间选择', | ||
259 | - componentProps: { | ||
260 | - valueFormat: 'HH:mm:ss', | ||
261 | - }, | ||
262 | - colProps: { | ||
263 | - span: 8, | ||
264 | - }, | ||
265 | - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')), | ||
266 | - }, | ||
267 | - { | ||
268 | - field: 'daysOfWeek6', | ||
269 | - component: 'CheckboxGroup', | ||
270 | - label: '天', | ||
271 | - colProps: { | ||
272 | - span: 8, | ||
273 | - }, | ||
274 | - componentProps: { | ||
275 | - options: [ | ||
276 | - { | ||
277 | - label: '星期六', | ||
278 | - value: '6', | ||
279 | - }, | ||
280 | - ], | ||
281 | - }, | ||
282 | - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')), | ||
283 | - }, | ||
284 | - { | ||
285 | - field: 'startsOn6', | ||
286 | - component: 'TimePicker', | ||
287 | - label: '开始时间选择', | ||
288 | - componentProps: { | ||
289 | - valueFormat: 'HH:mm:ss', | ||
290 | - }, | ||
291 | - colProps: { | ||
292 | - span: 8, | ||
293 | - }, | ||
294 | - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')), | ||
295 | - }, | ||
296 | - { | ||
297 | - field: 'endsOn6', | ||
298 | - component: 'TimePicker', | ||
299 | - label: '结束时间选择', | ||
300 | - componentProps: { | ||
301 | - valueFormat: 'HH:mm:ss', | ||
302 | - }, | ||
303 | - colProps: { | ||
304 | - span: 8, | ||
305 | - }, | ||
306 | - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')), | ||
307 | - }, | ||
308 | - { | ||
309 | - field: 'daysOfWeek7', | ||
310 | - component: 'CheckboxGroup', | ||
311 | - label: '天', | ||
312 | - colProps: { | ||
313 | - span: 8, | ||
314 | - }, | ||
315 | - componentProps: { | ||
316 | - options: [ | ||
317 | - { | ||
318 | - label: '星期七', | ||
319 | - value: '7', | ||
320 | - }, | ||
321 | - ], | ||
322 | - }, | ||
323 | - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')), | ||
324 | - }, | ||
325 | - { | ||
326 | - field: 'startsOn7', | ||
327 | - component: 'TimePicker', | ||
328 | - label: '开始时间选择', | ||
329 | - componentProps: { | ||
330 | - valueFormat: 'HH:mm:ss', | ||
331 | - }, | ||
332 | - colProps: { | ||
333 | - span: 8, | ||
334 | - }, | ||
335 | - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')), | ||
336 | - }, | ||
337 | - { | ||
338 | - field: 'endsOn7', | ||
339 | - component: 'TimePicker', | ||
340 | - label: '结束时间选择', | ||
341 | - componentProps: { | ||
342 | - valueFormat: 'HH:mm:ss', | ||
343 | - }, | ||
344 | - colProps: { | ||
345 | - span: 8, | ||
346 | - }, | ||
347 | - ifShow: ({ values }) => isTimeAll(Reflect.get(values, 'type')), | ||
348 | - }, | ||
349 | - | ||
350 | - { | ||
351 | - field: 'daysOfWeek', | ||
352 | - component: 'CheckboxGroup', | ||
353 | - label: '天', | ||
354 | - colProps: { | ||
355 | - span: 24, | ||
356 | - }, | ||
357 | - rules: [ | ||
358 | - { | ||
359 | - message: '每周至少选择一天', | ||
360 | - trigger: 'blur', | ||
361 | - }, | ||
362 | - ], | ||
363 | - componentProps: { | ||
364 | - options: [ | ||
365 | - { | ||
366 | - label: '星期一', | ||
367 | - value: '1', | ||
368 | - }, | ||
369 | - { | ||
370 | - label: '星期二', | ||
371 | - value: '2', | ||
372 | - }, | ||
373 | - { | ||
374 | - label: '星期三', | ||
375 | - value: '3', | ||
376 | - }, | ||
377 | - { | ||
378 | - label: '星期四', | ||
379 | - value: '4', | ||
380 | - }, | ||
381 | - { | ||
382 | - label: '星期五', | ||
383 | - value: '5', | ||
384 | - }, | ||
385 | - { | ||
386 | - label: '星期六', | ||
387 | - value: '6', | ||
388 | - }, | ||
389 | - { | ||
390 | - label: '星期七', | ||
391 | - value: '7', | ||
392 | - }, | ||
393 | - ], | ||
394 | - }, | ||
395 | - ifShow: ({ values }) => isWenDu(Reflect.get(values, 'type')), | ||
396 | - }, | ||
397 | - { | ||
398 | - field: 'startsOn', | ||
399 | - component: 'TimePicker', | ||
400 | - label: '开始时间选择', | ||
401 | - colProps: { | ||
402 | - span: 12, | ||
403 | - }, | ||
404 | - componentProps: { | ||
405 | - valueFormat: 'HH:mm:ss', | ||
406 | - }, | ||
407 | - ifShow: ({ values }) => isWenDu(Reflect.get(values, 'type')), | ||
408 | - }, | ||
409 | - { | ||
410 | - field: 'endsOn', | ||
411 | - component: 'TimePicker', | ||
412 | - label: '结束时间选择', | ||
413 | - colProps: { | ||
414 | - span: 12, | ||
415 | - }, | ||
416 | - componentProps: { | ||
417 | - valueFormat: 'HH:mm:ss', | ||
418 | - }, | ||
419 | - ifShow: ({ values }) => isWenDu(Reflect.get(values, 'type')), | ||
420 | - }, | ||
421 | -]; |
src/views/device/profiles/step/cpns/enablerule/index.vue
deleted
100644 → 0
1 | -<template> | ||
2 | - <BasicModal | ||
3 | - v-bind="$attrs" | ||
4 | - width="55rem" | ||
5 | - @register="register" | ||
6 | - :title="getTitle" | ||
7 | - @ok="handleSubmit" | ||
8 | - > | ||
9 | - <BasicForm :showResetButton="false" :showSubmitButton="false" @register="registerForm" /> | ||
10 | - </BasicModal> | ||
11 | -</template> | ||
12 | -<script lang="ts"> | ||
13 | - import { defineComponent, ref, computed, unref } from 'vue'; | ||
14 | - import { BasicModal, useModalInner } from '/@/components/Modal'; | ||
15 | - import { BasicForm, useForm } from '/@/components/Form'; | ||
16 | - import { formSchema } from './config'; | ||
17 | - | ||
18 | - export default defineComponent({ | ||
19 | - name: 'DetailTemplate', | ||
20 | - components: { | ||
21 | - BasicModal, | ||
22 | - BasicForm, | ||
23 | - }, | ||
24 | - emits: ['success', 'register', 'getAllFieldsEnab'], | ||
25 | - setup(_, { emit }) { | ||
26 | - const isUpdate = ref(true); | ||
27 | - const [registerForm, { getFieldsValue, resetFields }] = useForm({ | ||
28 | - labelWidth: 120, | ||
29 | - schemas: formSchema, | ||
30 | - }); | ||
31 | - const getTitle = computed(() => (!unref(isUpdate) ? '新增报警日程表' : '编辑报警日程表')); | ||
32 | - const [register, { closeModal }] = useModalInner((data) => { | ||
33 | - isUpdate.value = !!data?.isUpdate; | ||
34 | - }); | ||
35 | - const resetDataFunc = () => { | ||
36 | - resetFields(); | ||
37 | - }; | ||
38 | - const handleSubmit = () => { | ||
39 | - const values = getFieldsValue(); | ||
40 | - emit('getAllFieldsEnab', values); | ||
41 | - closeModal(); | ||
42 | - }; | ||
43 | - const getFieldsValueFunc = () => { | ||
44 | - const val = getFieldsValue(); | ||
45 | - return val; | ||
46 | - }; | ||
47 | - return { | ||
48 | - resetDataFunc, | ||
49 | - registerForm, | ||
50 | - handleSubmit, | ||
51 | - register, | ||
52 | - getTitle, | ||
53 | - getFieldsValueFunc, | ||
54 | - }; | ||
55 | - }, | ||
56 | - }); | ||
57 | -</script> |
1 | import { FormSchema } from '/@/components/Form'; | 1 | import { FormSchema } from '/@/components/Form'; |
2 | import { deviceConfigGetRuleChain } from '/@/api/device/deviceConfigApi'; | 2 | import { deviceConfigGetRuleChain } from '/@/api/device/deviceConfigApi'; |
3 | import { findDictItemByCode } from '/@/api/system/dict'; | 3 | import { findDictItemByCode } from '/@/api/system/dict'; |
4 | -import { alarmContactGetPage } from '/@/api/device/deviceConfigApi'; | 4 | + |
5 | +enum EnumMQTT { | ||
6 | + IS_DEFAULT = 'DEFAULT', | ||
7 | + IS_MQTT = 'MQTT', | ||
8 | + IS_PROTOBUF = 'PROTOBUF', | ||
9 | + IS_COAP = 'COAP', | ||
10 | + IS_LWM2M = 'LWM2M', | ||
11 | + IS_SNMP = 'SNMP', | ||
12 | + IS_PSM = 'PSM', | ||
13 | + IS_DRX = 'E_DRX', | ||
14 | + IS_EFENTO_NBIOT = 'EFENTO', | ||
15 | +} | ||
16 | + | ||
17 | +const isMqtt = (type: string) => { | ||
18 | + return type === EnumMQTT.IS_MQTT; | ||
19 | +}; | ||
20 | +const isProtobuf = (type: string) => { | ||
21 | + return type === EnumMQTT.IS_PROTOBUF; | ||
22 | +}; | ||
23 | + | ||
24 | +const isNBIOt = (type: string) => { | ||
25 | + return type === EnumMQTT.IS_COAP; | ||
26 | +}; | ||
27 | + | ||
28 | +const isPsm = (type: string) => { | ||
29 | + return type === EnumMQTT.IS_PSM; | ||
30 | +}; | ||
31 | + | ||
32 | +const isDrx = (type: string) => { | ||
33 | + return type === EnumMQTT.IS_DRX; | ||
34 | +}; | ||
35 | + | ||
36 | +const isEfentoNb = (type: string) => { | ||
37 | + return type === EnumMQTT.IS_EFENTO_NBIOT; | ||
38 | +}; | ||
5 | 39 | ||
6 | export const step1Schemas: FormSchema[] = [ | 40 | export const step1Schemas: FormSchema[] = [ |
7 | { | 41 | { |
@@ -20,7 +54,6 @@ export const step1Schemas: FormSchema[] = [ | @@ -20,7 +54,6 @@ export const step1Schemas: FormSchema[] = [ | ||
20 | placeholder: '请输入配置名称', | 54 | placeholder: '请输入配置名称', |
21 | }, | 55 | }, |
22 | }, | 56 | }, |
23 | - //规则链(string) | ||
24 | { | 57 | { |
25 | field: 'defaultRuleChainId', | 58 | field: 'defaultRuleChainId', |
26 | label: '规则链', | 59 | label: '规则链', |
@@ -74,127 +107,309 @@ export const step2Schemas: FormSchema[] = [ | @@ -74,127 +107,309 @@ export const step2Schemas: FormSchema[] = [ | ||
74 | label: '传输方式', | 107 | label: '传输方式', |
75 | defaultValue: 'DEFAULT', | 108 | defaultValue: 'DEFAULT', |
76 | componentProps: { | 109 | componentProps: { |
77 | - options: [{ label: '默认', value: 'DEFAULT' }], | 110 | + options: [ |
111 | + { label: '默认', value: 'DEFAULT' }, | ||
112 | + { label: 'MQTT', value: 'MQTT' }, | ||
113 | + { label: 'CoAP', value: 'COAP' }, | ||
114 | + ], | ||
78 | }, | 115 | }, |
116 | + colProps: { span: 11 }, | ||
79 | }, | 117 | }, |
80 | -]; | ||
81 | - | ||
82 | -export const step3Schemas: FormSchema[] = [ | ||
83 | { | 118 | { |
84 | - field: 'alarmType', | 119 | + field: 'deviceTelemetryTopic', |
85 | component: 'Input', | 120 | component: 'Input', |
121 | + label: '筛选器', | ||
86 | required: true, | 122 | required: true, |
87 | - label: '报警类型', | ||
88 | - colProps: { | ||
89 | - span: 12, | ||
90 | - }, | 123 | + defaultValue: 'v1/devices/me/telemetry', |
91 | componentProps: { | 124 | componentProps: { |
92 | - maxLength: 255, | ||
93 | - placeholder: '请输入报警类型', | 125 | + placeholder: '请输入遥测数据 topic 筛选器', |
94 | }, | 126 | }, |
127 | + colProps: { span: 11 }, | ||
128 | + ifShow: ({ values }) => isMqtt(values.transportType), | ||
95 | }, | 129 | }, |
96 | -]; | ||
97 | - | ||
98 | -export const step3ViewHighSetting: FormSchema[] = [ | ||
99 | { | 130 | { |
100 | - field: 'propagate', | ||
101 | - component: 'Checkbox', | ||
102 | - label: '传递报警', | 131 | + field: 'deviceAttributesTopic', |
132 | + component: 'Input', | ||
133 | + required: true, | ||
134 | + label: 'topic filter', | ||
135 | + defaultValue: 'v1/devices/me/attributes', | ||
136 | + componentProps: { | ||
137 | + placeholder: '请输入Attributes topic 筛选器', | ||
138 | + }, | ||
139 | + colProps: { span: 11 }, | ||
140 | + ifShow: ({ values }) => isMqtt(values.transportType), | ||
103 | }, | 141 | }, |
104 | { | 142 | { |
105 | - field: 'propagateRelationTypes', | ||
106 | - component: 'Input', | ||
107 | - label: '关联类型', | ||
108 | - colProps: { | ||
109 | - span: 11, | 143 | + field: 'desc', |
144 | + component: 'InputTextArea', | ||
145 | + label: '描述', | ||
146 | + defaultValue: `支持单[+]和多级[#]通配符。[+] is suitable for any topic filter level。例如:v1/devices/+/telemetry or +/devices/+/attributes。[#]可以替换 topic filter 本身,并且必须是 topic 的最后一个符号。例如:# or v1/devices/me/#。 | ||
147 | + `, | ||
148 | + componentProps: { | ||
149 | + autoSize: { | ||
150 | + maxRows: 10, | ||
151 | + }, | ||
152 | + placeholder: '请输入Attributes topic 筛选器', | ||
110 | }, | 153 | }, |
154 | + colProps: { span: 24 }, | ||
155 | + ifShow: ({ values }) => isMqtt(values.transportType), | ||
156 | + }, | ||
157 | + { | ||
158 | + field: 'transportPayloadType', | ||
159 | + component: 'Select', | ||
160 | + label: '设备Payload', | ||
161 | + defaultValue: 'JSON', | ||
111 | componentProps: { | 162 | componentProps: { |
112 | - maxLength: 255, | ||
113 | - placeholder: '请输入关联类型', | 163 | + options: [ |
164 | + { label: 'JSON', value: 'JSON' }, | ||
165 | + { label: 'PROTOBUF', value: 'PROTOBUF' }, | ||
166 | + ], | ||
114 | }, | 167 | }, |
168 | + colProps: { span: 11 }, | ||
169 | + ifShow: ({ values }) => isMqtt(values.transportType), | ||
115 | }, | 170 | }, |
116 | -]; | ||
117 | - | ||
118 | -export const step3HighSetting: FormSchema[] = [ | ||
119 | { | 171 | { |
120 | - field: 'propagate', | 172 | + field: 'useJsonPayloadFormatForDefaultDownlinkTopics', |
173 | + label: '', | ||
174 | + colProps: { span: 14 }, | ||
175 | + defaultValue: false, | ||
121 | component: 'Checkbox', | 176 | component: 'Checkbox', |
177 | + renderComponentContent: `启用后,平台将默认使用Protobuf有效载荷格式。如果解析失败,平台将尝试使用JSON有效负载格式。用于固件更新期间的向后兼容性。例如,固件的初始版本使用Json,而新版本使用Protobuf。在设备组的固件更新过程中,需要同时支持Protobuf和JSON。兼容性模式会导致性能轻微下降,因此建议在所有设备更新后禁用此模式。`, | ||
178 | + ifShow: ({ values }) => | ||
179 | + isProtobuf(values.transportPayloadType) && !isNBIOt(values.transportType), | ||
180 | + }, | ||
181 | + { | ||
182 | + field: 'enableCompatibilityWithJsonPayloadFormat', | ||
122 | label: '', | 183 | label: '', |
123 | - slot: 'checkBox', | 184 | + colProps: { span: 14 }, |
185 | + defaultValue: false, | ||
186 | + component: 'Checkbox', | ||
187 | + renderComponentContent: `启用后,平台将使用Json有效负载格式通过以下主题推送属性和RPC:v1/devices/me/attributes/response/$request_id、v1/devices/me/attributes、v1/devices/me/RPC/request/$request_id、,v1/devices/me/rpc/response/$request id。此设置不影响使用新(v2)主题发送的属性和rpc订阅:v2/a/res/$request id、v2/a、v2/r/req/$request id、v2/r/res/$request id。其中,$request id是整数请求标识符。`, | ||
188 | + ifShow: ({ values }) => | ||
189 | + isProtobuf(values.transportPayloadType) && | ||
190 | + !!values.useJsonPayloadFormatForDefaultDownlinkTopics && | ||
191 | + !isNBIOt(values.transportType), | ||
124 | }, | 192 | }, |
125 | { | 193 | { |
126 | - field: 'propagateRelationTypes', | ||
127 | - component: 'Input', | ||
128 | - label: '关联类型', | ||
129 | - colProps: { | ||
130 | - span: 11, | 194 | + field: 'coapDeviceType', |
195 | + component: 'Select', | ||
196 | + label: 'CoAP类型', | ||
197 | + defaultValue: 'DEFAULT', | ||
198 | + componentProps: { | ||
199 | + options: [ | ||
200 | + { label: '默认', value: 'DEFAULT' }, | ||
201 | + { label: 'Efento NB-IoT', value: 'EFENTO' }, | ||
202 | + ], | ||
131 | }, | 203 | }, |
204 | + colProps: { span: 11 }, | ||
205 | + ifShow: ({ values }) => isNBIOt(values.transportType), | ||
206 | + }, | ||
207 | + { | ||
208 | + field: 'transportPayloadType', | ||
209 | + component: 'Select', | ||
210 | + label: 'Payload', | ||
211 | + defaultValue: 'JSON', | ||
132 | componentProps: { | 212 | componentProps: { |
133 | - maxLength: 255, | ||
134 | - placeholder: '请输入关联类型', | 213 | + options: [ |
214 | + { label: 'JSON', value: 'JSON' }, | ||
215 | + { label: 'PROTOBUF', value: 'PROTOBUF' }, | ||
216 | + ], | ||
135 | }, | 217 | }, |
136 | - ifShow: ({ values }) => !!values.propagate, | 218 | + colProps: { span: 11 }, |
219 | + ifShow: ({ values }) => isNBIOt(values.transportType) && !isEfentoNb(values.coapDeviceType), | ||
137 | }, | 220 | }, |
138 | -]; | ||
139 | - | ||
140 | -export const dashboardFormScheme: FormSchema[] = [ | ||
141 | { | 221 | { |
142 | - field: 'dashboardId', | 222 | + field: 'powerMode', |
143 | component: 'Select', | 223 | component: 'Select', |
144 | - label: 'Mobile :', | ||
145 | - colProps: { | ||
146 | - span: 17, | 224 | + label: 'Power Mode', |
225 | + defaultValue: 'DRX', | ||
226 | + componentProps: { | ||
227 | + options: [ | ||
228 | + { label: 'Power Saving Mode', value: 'PSM' }, | ||
229 | + { label: 'Discontinuous Reception', value: 'DRX' }, | ||
230 | + { | ||
231 | + label: 'Extended Discontinuous Reception', | ||
232 | + value: 'E_DRX', | ||
233 | + }, | ||
234 | + ], | ||
147 | }, | 235 | }, |
236 | + colProps: { span: 11 }, | ||
237 | + ifShow: ({ values }) => isNBIOt(values.transportType), | ||
238 | + }, | ||
239 | + { | ||
240 | + field: 'psmActivityTimer', | ||
241 | + component: 'InputNumber', | ||
242 | + label: 'Timer', | ||
243 | + required: true, | ||
244 | + defaultValue: '10', | ||
148 | componentProps: { | 245 | componentProps: { |
149 | - placeholder: '请选择Mobile dashboard', | ||
150 | - options: [{ label: 'DASHBOARD', value: 'DASHBOARD' }], | 246 | + placeholder: '请输入PSM Activity Timer', |
151 | }, | 247 | }, |
248 | + colProps: { span: 11 }, | ||
249 | + ifShow: ({ values }) => isNBIOt(values.transportType) && isPsm(values.powerMode), | ||
152 | }, | 250 | }, |
153 | -]; | ||
154 | - | ||
155 | -export const alertContactsSchemas: FormSchema[] = [ | ||
156 | { | 251 | { |
157 | - field: 'alarmContactId', | ||
158 | - label: '告警通知联系人', | ||
159 | - component: 'ApiSelect', | 252 | + field: 'unit', |
253 | + component: 'Select', | ||
254 | + label: '时间单位', | ||
255 | + defaultValue: 'second', | ||
256 | + componentProps: { | ||
257 | + options: [ | ||
258 | + { label: 'Milliseconds', value: 'Milliseconds' }, | ||
259 | + { label: '秒', value: 'second' }, | ||
260 | + { label: '分钟', value: 'minute' }, | ||
261 | + { label: '小时', value: 'hour' }, | ||
262 | + ], | ||
263 | + }, | ||
264 | + colProps: { span: 11 }, | ||
265 | + ifShow: ({ values }) => isNBIOt(values.transportType) && isPsm(values.powerMode), | ||
266 | + }, | ||
267 | + { | ||
268 | + field: 'edrxCycle', | ||
269 | + component: 'InputNumber', | ||
270 | + label: 'eDRX cycle', | ||
160 | required: true, | 271 | required: true, |
272 | + defaultValue: '81', | ||
161 | componentProps: { | 273 | componentProps: { |
162 | - mode: 'multiple', | ||
163 | - placeholder: '请选择告警通知联系人', | ||
164 | - api: alarmContactGetPage, | ||
165 | - labelField: 'username', | ||
166 | - valueField: 'id', | ||
167 | - resultField: 'items', | 274 | + placeholder: '请输入PSM Activity Timer', |
168 | }, | 275 | }, |
276 | + colProps: { span: 11 }, | ||
277 | + ifShow: ({ values }) => isNBIOt(values.transportType) && isDrx(values.powerMode), | ||
169 | }, | 278 | }, |
170 | { | 279 | { |
171 | - field: 'messageMode', | ||
172 | - label: '告警通知方式', | ||
173 | - component: 'ApiSelect', | 280 | + field: 'unit', |
281 | + component: 'Select', | ||
282 | + label: '时间单位', | ||
283 | + defaultValue: 'second', | ||
284 | + componentProps: { | ||
285 | + options: [ | ||
286 | + { label: 'Milliseconds', value: 'Milliseconds' }, | ||
287 | + { label: '秒', value: 'second' }, | ||
288 | + { label: '分钟', value: 'minute' }, | ||
289 | + { label: '小时', value: 'hour' }, | ||
290 | + ], | ||
291 | + }, | ||
292 | + colProps: { span: 11 }, | ||
293 | + ifShow: ({ values }) => isNBIOt(values.transportType) && isDrx(values.powerMode), | ||
294 | + }, | ||
295 | + { | ||
296 | + field: 'pagingTransmissionWindow', | ||
297 | + component: 'InputNumber', | ||
298 | + label: 'Paging', | ||
174 | required: true, | 299 | required: true, |
300 | + defaultValue: '10', | ||
175 | componentProps: { | 301 | componentProps: { |
176 | - mode: 'multiple', | ||
177 | - placeholder: '请选择告警通知方式', | ||
178 | - api: findDictItemByCode, | ||
179 | - params: { | ||
180 | - dictCode: 'message_type', | 302 | + placeholder: '请输入Paging Transmission Window', |
303 | + }, | ||
304 | + colProps: { span: 11 }, | ||
305 | + ifShow: ({ values }) => isNBIOt(values.transportType) && isDrx(values.powerMode), | ||
306 | + }, | ||
307 | + { | ||
308 | + field: 'unit', | ||
309 | + component: 'Select', | ||
310 | + label: '时间单位', | ||
311 | + defaultValue: 'second', | ||
312 | + componentProps: { | ||
313 | + options: [ | ||
314 | + { label: 'Milliseconds', value: 'Milliseconds' }, | ||
315 | + { label: '秒', value: 'second' }, | ||
316 | + { label: '分钟', value: 'minute' }, | ||
317 | + { label: '小时', value: 'hour' }, | ||
318 | + ], | ||
319 | + }, | ||
320 | + colProps: { span: 11 }, | ||
321 | + ifShow: ({ values }) => isNBIOt(values.transportType) && isDrx(values.powerMode), | ||
322 | + }, | ||
323 | + { | ||
324 | + field: 'deviceTelemetryProtoSchema', | ||
325 | + label: '遥测数据', | ||
326 | + colProps: { span: 22 }, | ||
327 | + component: 'InputTextArea', | ||
328 | + componentProps: { | ||
329 | + autoSize: { | ||
330 | + maxRows: 10, | ||
181 | }, | 331 | }, |
182 | - labelField: 'itemText', | ||
183 | - valueField: 'itemValue', | ||
184 | }, | 332 | }, |
333 | + defaultValue: ` | ||
334 | + syntax ="proto3"; | ||
335 | + package telemetry; | ||
336 | + | ||
337 | + message SensorDataReading { | ||
338 | + optional double temperature = 1; | ||
339 | + optional double humidity = 2; | ||
340 | + InnerObject innerObject = 3; | ||
341 | + message InnerObject { | ||
342 | + optional string key1 = 1; | ||
343 | + optional bool key2 = 2; | ||
344 | + optional double key3 = 3; | ||
345 | + optional int32 key4 = 4; | ||
346 | + optional string key5 = 5; | ||
347 | + } | ||
348 | + } | ||
349 | + `, | ||
350 | + ifShow: ({ values }) => isProtobuf(values.transportPayloadType), | ||
185 | }, | 351 | }, |
186 | -]; | 352 | + { |
353 | + field: 'deviceAttributesProtoSchema', | ||
354 | + label: 'Attributes', | ||
355 | + colProps: { span: 22 }, | ||
356 | + component: 'InputTextArea', | ||
357 | + componentProps: { | ||
358 | + autoSize: { | ||
359 | + maxRows: 10, | ||
360 | + }, | ||
361 | + }, | ||
362 | + defaultValue: ` | ||
363 | + syntax ="proto3"; | ||
364 | + package attributes; | ||
187 | 365 | ||
188 | -export const formChangeDetailSchema: FormSchema[] = [ | 366 | + message SensorConfiguration { |
367 | + optional string firmwareVersion = 1; | ||
368 | + optional string serialNumber = 2; | ||
369 | + } | ||
370 | + `, | ||
371 | + ifShow: ({ values }) => isProtobuf(values.transportPayloadType), | ||
372 | + }, | ||
189 | { | 373 | { |
190 | - field: 'alarmDetails', | ||
191 | - label: '报警详细信息:', | ||
192 | - colProps: { span: 13 }, | ||
193 | - component: 'Input', | ||
194 | - defaultValue: '', | 374 | + field: 'deviceRpcRequestProtoSchema', |
375 | + label: 'RPC 请求 ', | ||
376 | + colProps: { span: 22 }, | ||
377 | + component: 'InputTextArea', | ||
195 | componentProps: { | 378 | componentProps: { |
196 | - placeholder: '', | ||
197 | - maxLength: 255, | 379 | + autoSize: { |
380 | + maxRows: 10, | ||
381 | + }, | ||
382 | + }, | ||
383 | + defaultValue: ` | ||
384 | + syntax ="proto3"; | ||
385 | + package rpc; | ||
386 | + | ||
387 | + message RpcRequestMsg { | ||
388 | + optional string method = 1; | ||
389 | + optional int32 requestId = 2; | ||
390 | + optional string params = 3; | ||
391 | + } | ||
392 | + `, | ||
393 | + ifShow: ({ values }) => isProtobuf(values.transportPayloadType), | ||
394 | + }, | ||
395 | + { | ||
396 | + field: 'deviceRpcResponseProtoSchema', | ||
397 | + label: 'RPC 响应', | ||
398 | + colProps: { span: 22 }, | ||
399 | + component: 'InputTextArea', | ||
400 | + componentProps: { | ||
401 | + autoSize: { | ||
402 | + maxRows: 10, | ||
403 | + }, | ||
198 | }, | 404 | }, |
405 | + defaultValue: ` | ||
406 | + syntax ="proto3"; | ||
407 | + package rpc; | ||
408 | + | ||
409 | + message RpcResponseMsg { | ||
410 | + optional string payload = 1; | ||
411 | + } | ||
412 | + `, | ||
413 | + ifShow: ({ values }) => isProtobuf(values.transportPayloadType), | ||
199 | }, | 414 | }, |
200 | ]; | 415 | ]; |
src/views/device/profiles/step/index.t.ts
deleted
100644 → 0
1 | -interface IConfiguration { | ||
2 | - type?: string; | ||
3 | -} | ||
4 | -interface ITansportConfiguration { | ||
5 | - type?: string; | ||
6 | -} | ||
7 | -interface provisionConfigurationD { | ||
8 | - provisionDeviceSecret?: string; | ||
9 | -} | ||
10 | -type ICreateRule = {}; | ||
11 | -type IClearRule = { | ||
12 | - id: string; | ||
13 | - alarmDetails: string; | ||
14 | - dashboardId: { | ||
15 | - id: string; | ||
16 | - entityType: string; | ||
17 | - }; | ||
18 | - propagate: string; | ||
19 | - propagateRelationTypes: string[]; | ||
20 | - schedule: { | ||
21 | - type: string; | ||
22 | - }; | ||
23 | - condition: object; | ||
24 | -}; | ||
25 | -interface IAlarms { | ||
26 | - id: string; | ||
27 | - alarmType: string; | ||
28 | - createRules: ICreateRule; | ||
29 | - propagate: boolean; | ||
30 | - propagateRelationTypes: string[]; | ||
31 | -} | ||
32 | - | ||
33 | -export interface IProfileData { | ||
34 | - configuration?: IConfiguration; | ||
35 | - transportConfiguration?: ITansportConfiguration; | ||
36 | - provisionConfiguration?: provisionConfigurationD; | ||
37 | - alarms?: IAlarms[]; | ||
38 | - clearRule?: IClearRule[]; | ||
39 | -} | ||
40 | - | ||
41 | -export interface IAddAlarms { | ||
42 | - id: string; | ||
43 | - alarmType: string; | ||
44 | - createRules: []; | ||
45 | - clearRule: {}; | ||
46 | - propagate: boolean; | ||
47 | - propagateRelationTypes: string[]; | ||
48 | -} |