Commit 67e1cea4bcdc68edf32c0e0967dba1b55385f9c7
Merge branch 'ft-dev' into 'main'
feat:新增场景联动新增按钮,删除按钮和编辑按钮权限,fix:修复设备配置编辑第三步数据回显和无法删除报警规则,修改设备配置文件夹名字 See merge request huang/yun-teng-iot-front!142
Showing
29 changed files
with
521 additions
and
1054 deletions
src/hooks/web/useGenerateUUID.ts
0 → 100644
1 | +//生成uuid | |
2 | +export function generateUUID() { | |
3 | + let d = new Date().getTime(); | |
4 | + if (window.performance && typeof window.performance.now === 'function') { | |
5 | + d += performance.now(); | |
6 | + } | |
7 | + const uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { | |
8 | + const r = (d + Math.random() * 16) % 16 | 0; | |
9 | + d = Math.floor(d / 16); | |
10 | + return (c == 'x' ? r : (r & 0x3) | 0x8).toString(16); | |
11 | + }); | |
12 | + return uuid; | |
13 | +} | ... | ... |
src/views/device/profile/cpns/config.ts
deleted
100644 → 0
1 | -import { FormSchema } from '/@/components/Form'; | |
2 | -import { findDictItemByCode } from '/@/api/system/dict'; | |
3 | -import { alarmContactGetPage } from '/@/api/device/deviceConfigApi'; | |
4 | - | |
5 | -export const alertContactsSchemas: FormSchema[] = [ | |
6 | - { | |
7 | - field: 'alarmContactId', | |
8 | - label: '告警通知联系人', | |
9 | - component: 'ApiSelect', | |
10 | - required: true, | |
11 | - componentProps: { | |
12 | - mode: 'multiple', | |
13 | - api: alarmContactGetPage, | |
14 | - labelField: 'username', | |
15 | - valueField: 'id', | |
16 | - resultField: 'items', | |
17 | - }, | |
18 | - }, | |
19 | - { | |
20 | - field: 'messageMode', | |
21 | - label: '告警通知方式', | |
22 | - required: true, | |
23 | - component: 'ApiSelect', | |
24 | - componentProps: { | |
25 | - mode: 'multiple', | |
26 | - api: findDictItemByCode, | |
27 | - params: { | |
28 | - dictCode: 'message_type', | |
29 | - }, | |
30 | - labelField: 'itemText', | |
31 | - valueField: 'itemValue', | |
32 | - }, | |
33 | - }, | |
34 | -]; |
src/views/device/profile/cpns/index.vue
deleted
100644 → 0
1 | -<template> | |
2 | - <BasicForm :showResetButton="false" :showSubmitButton="false" @register="register" /> | |
3 | -</template> | |
4 | -<script lang="ts"> | |
5 | - import { defineComponent, ref } from 'vue'; | |
6 | - import { BasicForm, useForm } from '/@/components/Form/index'; | |
7 | - import { alertContactsSchemas } from './config'; | |
8 | - | |
9 | - export default defineComponent({ | |
10 | - components: { BasicForm }, | |
11 | - setup() { | |
12 | - const getValueData: any = ref({}); | |
13 | - const [register, { getFieldsValue, resetFields }] = useForm({ | |
14 | - schemas: alertContactsSchemas, | |
15 | - actionColOptions: { | |
16 | - span: 24, | |
17 | - }, | |
18 | - }); | |
19 | - function getAllFields(getV) { | |
20 | - const values = getFieldsValue(); | |
21 | - getValueData.value = values; | |
22 | - getV = getValueData.value; | |
23 | - return getV; | |
24 | - } | |
25 | - const customResetStep4AndFunc = () => { | |
26 | - resetFields(); | |
27 | - }; | |
28 | - return { | |
29 | - customResetStep4AndFunc, | |
30 | - getAllFields, | |
31 | - register, | |
32 | - }; | |
33 | - }, | |
34 | - }); | |
35 | -</script> |
src/views/device/profile/deviceConfigDetail.vue
deleted
100644 → 0
1 | -<template> | |
2 | - <div> | |
3 | - <BasicModal | |
4 | - :showCancelBtn="false" | |
5 | - :showOkBtn="false" | |
6 | - v-bind="$attrs" | |
7 | - width="55rem" | |
8 | - @register="register" | |
9 | - :title="getTitle" | |
10 | - > | |
11 | - <Tabs @change="handleChange" v-model:activeKey="activeKey"> | |
12 | - <TabPane key="1" tab="详情"> | |
13 | - <BasicForm | |
14 | - :showSubmitButton="false" | |
15 | - :showResetButton="false" | |
16 | - @register="registerDetail" | |
17 | - /> | |
18 | - </TabPane> | |
19 | - <TabPane key="2" tab="传输配置" force-render> | |
20 | - <BasicForm :showSubmitButton="false" :showResetButton="false" @register="registerTrans" | |
21 | - /></TabPane> | |
22 | - <TabPane key="3" tab="报警规则"> | |
23 | - <div style="padding-top: 10px"> | |
24 | - <div style="border-radius: 10px"> | |
25 | - <p style="font-weight: 900">报警规则</p> | |
26 | - <div class="input-style" style="margin-left: 15px"> | |
27 | - <BasicForm | |
28 | - :showSubmitButton="false" | |
29 | - :showResetButton="false" | |
30 | - @register="registerStep3Schemas" | |
31 | - /> | |
32 | - <BasicForm | |
33 | - :showSubmitButton="false" | |
34 | - :showResetButton="false" | |
35 | - @register="registerStep3HighSetting" | |
36 | - /> | |
37 | - <BasicForm | |
38 | - :showSubmitButton="false" | |
39 | - :showResetButton="false" | |
40 | - @register="registerStep3CreateAlarm" | |
41 | - /> | |
42 | - <BasicForm | |
43 | - :showSubmitButton="false" | |
44 | - :showResetButton="false" | |
45 | - @register="registerStep3RuleAlarm" | |
46 | - /> | |
47 | - <BasicForm | |
48 | - :showSubmitButton="false" | |
49 | - :showResetButton="false" | |
50 | - @register="registerStep3Condition" | |
51 | - /> | |
52 | - <BasicForm | |
53 | - :showSubmitButton="false" | |
54 | - :showResetButton="false" | |
55 | - @register="registerStep3Enable" | |
56 | - /> | |
57 | - <BasicForm | |
58 | - :showSubmitButton="false" | |
59 | - :showResetButton="false" | |
60 | - @register="registerStep3TemplateDetail" | |
61 | - /> | |
62 | - </div> | |
63 | - </div> | |
64 | - <div style="border-radius: 10px; margin-top: 15px"> | |
65 | - <p style="font-weight: 900">清除报警规则</p> | |
66 | - <div class="clear-input-style" style="margin-left: 15px"> | |
67 | - <BasicForm | |
68 | - :showSubmitButton="false" | |
69 | - :showResetButton="false" | |
70 | - @register="registerStep3ClearRuleAlarm" | |
71 | - /> | |
72 | - <BasicForm | |
73 | - :showSubmitButton="false" | |
74 | - :showResetButton="false" | |
75 | - @register="registerStep3ClearCondition" | |
76 | - /> | |
77 | - <BasicForm | |
78 | - :showSubmitButton="false" | |
79 | - :showResetButton="false" | |
80 | - @register="registerStep3ClearEnable" | |
81 | - /> | |
82 | - <BasicForm | |
83 | - :showSubmitButton="false" | |
84 | - :showResetButton="false" | |
85 | - @register="registerStep3ClearTemplateDetail" | |
86 | - /> | |
87 | - </div> | |
88 | - </div> | |
89 | - </div> | |
90 | - </TabPane> | |
91 | - <TabPane key="4" tab="告警管理"> | |
92 | - <BasicForm :showSubmitButton="false" :showResetButton="false" @register="registerContact" | |
93 | - /></TabPane> | |
94 | - </Tabs> | |
95 | - </BasicModal> | |
96 | - </div> | |
97 | -</template> | |
98 | -<script lang="ts"> | |
99 | - import { defineComponent, ref, computed, watch } from 'vue'; | |
100 | - import { BasicModal, useModalInner } from '/@/components/Modal'; | |
101 | - import { Tabs } from 'ant-design-vue'; | |
102 | - import { deviceConfigGetDetail } from '/@/api/device/deviceConfigApi'; | |
103 | - import { BasicForm, useForm } from '/@/components/Form/index'; | |
104 | - import { | |
105 | - step1Schemas, | |
106 | - step2Schemas, | |
107 | - step3Schemas, | |
108 | - step3ViewHighSetting, | |
109 | - step3CreateAlarm, | |
110 | - alertContactsSchemas, | |
111 | - } from './step/data'; | |
112 | - | |
113 | - import { formSchema as conditionFormSchema } from './step/cpns/alarmruleconditions/config'; | |
114 | - import { formSchema as enableSchema } from './step/cpns/enablerule/config'; | |
115 | - import { formSchema as detailSchema } from './step/cpns/detailtemplate/config'; | |
116 | - import { formSchema as echoFormSchema } from './step/cpns/alarmruleconditions/cpns/config'; | |
117 | - import { formSchema as conditionFormClearschema } from './step/cpns/alarmruleconditions/config'; | |
118 | - import { formSchema as enableClearSchema } from './step/cpns/enablerule/config'; | |
119 | - import { formSchema as detailClearSchema } from './step/cpns/detailtemplate/config'; | |
120 | - import { formSchema as echoFormClearSchema } from './step/cpns/alarmruleconditions/cpns/config'; | |
121 | - | |
122 | - export default defineComponent({ | |
123 | - name: 'ConfigDrawer', | |
124 | - components: { Tabs, TabPane: Tabs.TabPane, BasicModal, BasicForm }, | |
125 | - emits: ['success', 'register'], | |
126 | - setup() { | |
127 | - const activeKey = ref('1'); | |
128 | - const isUpdate = ref(true); | |
129 | - const descInfo: any = ref(null); | |
130 | - const dataInfo: any = ref(''); | |
131 | - const [registerDetail, { resetFields, setFieldsValue: setRegisterDetail }] = useForm({ | |
132 | - schemas: step1Schemas, | |
133 | - actionColOptions: { | |
134 | - span: 24, | |
135 | - }, | |
136 | - }); | |
137 | - const [registerTrans, { setFieldsValue: setRegisterTrans }] = useForm({ | |
138 | - schemas: step2Schemas, | |
139 | - actionColOptions: { | |
140 | - span: 24, | |
141 | - }, | |
142 | - }); | |
143 | - const [ | |
144 | - registerStep3Schemas, | |
145 | - { setFieldsValue: setRegisterStep3Schemas, resetFields: resetFieldsStep3Schemas }, | |
146 | - ] = useForm({ | |
147 | - schemas: step3Schemas, | |
148 | - actionColOptions: { | |
149 | - span: 24, | |
150 | - }, | |
151 | - }); | |
152 | - const [ | |
153 | - registerStep3HighSetting, | |
154 | - { setFieldsValue: setRegisterStep3HighSetting, resetFields: resetFieldsStep3HighSetting }, | |
155 | - ] = useForm({ | |
156 | - schemas: step3ViewHighSetting, | |
157 | - actionColOptions: { | |
158 | - span: 24, | |
159 | - }, | |
160 | - }); | |
161 | - const [ | |
162 | - registerStep3CreateAlarm, | |
163 | - { setFieldsValue: setRegisterStep3CreateAlarm, resetFields: resetFieldsStep3CreateAlarm }, | |
164 | - ] = useForm({ | |
165 | - schemas: step3CreateAlarm, | |
166 | - actionColOptions: { | |
167 | - span: 24, | |
168 | - }, | |
169 | - }); | |
170 | - const [ | |
171 | - registerContact, | |
172 | - { setFieldsValue: setRegisterContact, resetFields: resetFieldsContact }, | |
173 | - ] = useForm({ | |
174 | - schemas: alertContactsSchemas, | |
175 | - actionColOptions: { | |
176 | - span: 24, | |
177 | - }, | |
178 | - }); | |
179 | - const [ | |
180 | - registerStep3RuleAlarm, | |
181 | - { setFieldsValue: setRegisterStep3RuleAlarm, resetFields: resetFieldsStep3RuleAlarm }, | |
182 | - ] = useForm({ | |
183 | - schemas: echoFormSchema, | |
184 | - actionColOptions: { | |
185 | - span: 24, | |
186 | - }, | |
187 | - }); | |
188 | - const [ | |
189 | - registerStep3Condition, | |
190 | - { setFieldsValue: setRegisterStep3Condition, resetFields: resetFieldsrStep3Condition }, | |
191 | - ] = useForm({ | |
192 | - schemas: conditionFormSchema, | |
193 | - actionColOptions: { | |
194 | - span: 24, | |
195 | - }, | |
196 | - }); | |
197 | - const [ | |
198 | - registerStep3Enable, | |
199 | - { setFieldsValue: setRegisterStep3Enable, resetFields: resetFieldsStep3Enable }, | |
200 | - ] = useForm({ | |
201 | - schemas: enableSchema, | |
202 | - actionColOptions: { | |
203 | - span: 24, | |
204 | - }, | |
205 | - }); | |
206 | - const [ | |
207 | - registerStep3TemplateDetail, | |
208 | - { | |
209 | - setFieldsValue: setRegisterStep3TemplateDetail, | |
210 | - resetFields: resetFieldsStep3TemplateDetail, | |
211 | - }, | |
212 | - ] = useForm({ | |
213 | - schemas: detailSchema, | |
214 | - actionColOptions: { | |
215 | - span: 24, | |
216 | - }, | |
217 | - }); | |
218 | - | |
219 | - //清除报警 | |
220 | - const [ | |
221 | - registerStep3ClearRuleAlarm, | |
222 | - { | |
223 | - setFieldsValue: setRegisterStep3ClearRuleAlarm, | |
224 | - resetFields: resetFieldsStep3ClearRuleAlarm, | |
225 | - }, | |
226 | - ] = useForm({ | |
227 | - schemas: echoFormClearSchema, | |
228 | - actionColOptions: { | |
229 | - span: 24, | |
230 | - }, | |
231 | - }); | |
232 | - const [ | |
233 | - registerStep3ClearCondition, | |
234 | - { | |
235 | - setFieldsValue: setRegisterStep3ClearCondition, | |
236 | - resetFields: resetFieldsStep3ClearCondition, | |
237 | - }, | |
238 | - ] = useForm({ | |
239 | - schemas: conditionFormClearschema, | |
240 | - actionColOptions: { | |
241 | - span: 24, | |
242 | - }, | |
243 | - }); | |
244 | - const [ | |
245 | - registerStep3ClearEnable, | |
246 | - { setFieldsValue: setRegisterStep3ClearEnable, resetFields: resetFieldStep3ClearEnablel }, | |
247 | - ] = useForm({ | |
248 | - schemas: enableClearSchema, | |
249 | - actionColOptions: { | |
250 | - span: 24, | |
251 | - }, | |
252 | - }); | |
253 | - const [ | |
254 | - registerStep3ClearTemplateDetail, | |
255 | - { | |
256 | - setFieldsValue: setRegisterStep3ClearTemplateDetail, | |
257 | - resetFields: resetFieldStep3ClearTemplateDetail, | |
258 | - }, | |
259 | - ] = useForm({ | |
260 | - schemas: detailClearSchema, | |
261 | - actionColOptions: { | |
262 | - span: 24, | |
263 | - }, | |
264 | - }); | |
265 | - | |
266 | - const [register] = useModalInner(async (data) => { | |
267 | - activeKey.value = '1'; | |
268 | - isUpdate.value = !!data?.isUpdate; | |
269 | - const getV = await deviceConfigGetDetail(data.record.id); | |
270 | - descInfo.value = getV; | |
271 | - try { | |
272 | - resetFields(); | |
273 | - await setRegisterDetail({ ...descInfo.value }); | |
274 | - } catch (e) { | |
275 | - return e; | |
276 | - } | |
277 | - }); | |
278 | - const handleChange = (v) => { | |
279 | - try { | |
280 | - switch (v) { | |
281 | - // case '1': | |
282 | - // setRegisterDetail({ ...descInfo.value }); | |
283 | - // break; | |
284 | - case '2': | |
285 | - setRegisterTrans({ | |
286 | - transportType: descInfo.value.profileData?.transportConfiguration.type, | |
287 | - }); | |
288 | - break; | |
289 | - case '3': | |
290 | - setTimeout(() => { | |
291 | - resetFieldsStep3SchemasFunc(); | |
292 | - resetFieldsStep3HighSettingFunc(); | |
293 | - resetFieldsStep3CreateAlarmFunc(); | |
294 | - resetFieldsStep3RuleAlarmFunc(); | |
295 | - resetFieldsStep3RuleAlarmFunc1(); | |
296 | - resetFieldsrStep3ConditionFunc(); | |
297 | - resetFieldsStep3EnableFunc(); | |
298 | - resetFieldsStep3TemplateDetailFunc(); | |
299 | - resetFieldsStep3ClearRuleAlarmFunc(); | |
300 | - resetFieldsStep3ClearRuleAlarmlFunc(); | |
301 | - resetFieldsStep3ClearConditionFunc(); | |
302 | - resetFieldStep3ClearEnablelFunc(); | |
303 | - resetFieldStep3ClearTemplateDetailFunc(); | |
304 | - }, 100); | |
305 | - setTimeout(() => { | |
306 | - try { | |
307 | - setRegisterStep3Schemas({ | |
308 | - alarmType: descInfo.value.profileData?.alarms[0]?.alarmType, | |
309 | - }); | |
310 | - } catch (e) { | |
311 | - return e; | |
312 | - } | |
313 | - | |
314 | - try { | |
315 | - setRegisterStep3HighSetting({ | |
316 | - propagate: descInfo.value.profileData?.alarms[0]?.propagate, | |
317 | - propagateRelationTypes: | |
318 | - descInfo.value.profileData?.alarms[0]?.propagateRelationTypes[0], | |
319 | - }); | |
320 | - const getKey = Object.keys(descInfo.value.profileData?.alarms[0]?.createRules); | |
321 | - setRegisterStep3CreateAlarm({ | |
322 | - default: getKey[0], | |
323 | - }); | |
324 | - setRegisterStep3RuleAlarm({ | |
325 | - type: descInfo.value.profileData?.alarms[0].createRules[getKey[0]].condition | |
326 | - .condition[0].key.type, | |
327 | - key1: descInfo.value.profileData?.alarms[0].createRules[getKey[0]].condition | |
328 | - .condition[0].key.key, | |
329 | - type1: | |
330 | - descInfo.value.profileData?.alarms[0].createRules[getKey[0]].condition | |
331 | - .condition[0].valueType, | |
332 | - value1: | |
333 | - descInfo.value.profileData?.alarms[0].createRules[getKey[0]].condition | |
334 | - .condition[0].predicate.value.defaultValue, | |
335 | - operation: | |
336 | - descInfo.value.profileData?.alarms[0].createRules[getKey[0]].condition | |
337 | - .condition[0].predicate.operation, | |
338 | - }); | |
339 | - setRegisterStep3Condition({ | |
340 | - conditionType: | |
341 | - descInfo.value.profileData?.alarms[0].createRules[getKey[0]].condition.spec | |
342 | - .type, | |
343 | - }); | |
344 | - setRegisterStep3Enable({ | |
345 | - schedule: | |
346 | - descInfo.value.profileData?.alarms[0].createRules[getKey[0]].schedule.type, | |
347 | - }); | |
348 | - setRegisterStep3TemplateDetail({ | |
349 | - alarmDetails: | |
350 | - descInfo.value.profileData?.alarms[0].createRules[getKey[0]].alarmDetails, | |
351 | - }); | |
352 | - //清除报警 | |
353 | - setRegisterStep3ClearRuleAlarm({ | |
354 | - type: descInfo.value.profileData?.alarms[0].clearRule.condition.condition[0].key | |
355 | - .type, | |
356 | - key1: descInfo.value.profileData?.alarms[0].clearRule.condition.condition[0].key | |
357 | - .key, | |
358 | - type1: | |
359 | - descInfo.value.profileData?.alarms[0].clearRule.condition.condition[0] | |
360 | - .valueType, | |
361 | - value1: | |
362 | - descInfo.value.profileData?.alarms[0].clearRule.condition.condition[0] | |
363 | - .predicate.value.defaultValue, | |
364 | - operation: | |
365 | - descInfo.value.profileData?.alarms[0].clearRule.condition.condition[0] | |
366 | - .predicate.operation, | |
367 | - }); | |
368 | - setRegisterStep3ClearCondition({ | |
369 | - conditionType: | |
370 | - descInfo.value.profileData?.alarms[0].clearRule.condition.spec.type, | |
371 | - }); | |
372 | - setRegisterStep3ClearEnable({ | |
373 | - schedule: descInfo.value.profileData?.alarms[0].clearRule.schedule.type, | |
374 | - }); | |
375 | - setRegisterStep3ClearTemplateDetail({ | |
376 | - alarmDetails: descInfo.value.profileData?.alarms[0].clearRule.alarmDetails, | |
377 | - }); | |
378 | - } catch (e) { | |
379 | - return e; | |
380 | - } | |
381 | - }, 1000); | |
382 | - break; | |
383 | - case '4': | |
384 | - setTimeout(() => { | |
385 | - resetFieldsContactFunc(); | |
386 | - }, 100); | |
387 | - setTimeout(() => { | |
388 | - try { | |
389 | - setRegisterContact({ | |
390 | - alarmContactId: descInfo.value.alarmProfile.alarmContactId, | |
391 | - messageMode: descInfo.value.alarmProfile.messageMode, | |
392 | - }); | |
393 | - } catch (e) { | |
394 | - return e; | |
395 | - } | |
396 | - }, 500); | |
397 | - | |
398 | - break; | |
399 | - } | |
400 | - } catch (e) { | |
401 | - return e; | |
402 | - } | |
403 | - }; | |
404 | - | |
405 | - const resetFieldsContactFunc = () => { | |
406 | - resetFieldsContact(); | |
407 | - }; | |
408 | - const resetFieldsStep3SchemasFunc = () => { | |
409 | - resetFieldsStep3Schemas(); | |
410 | - }; | |
411 | - | |
412 | - const resetFieldsStep3HighSettingFunc = () => { | |
413 | - resetFieldsStep3HighSetting(); | |
414 | - }; | |
415 | - const resetFieldsStep3CreateAlarmFunc = () => { | |
416 | - resetFieldsStep3CreateAlarm(); | |
417 | - }; | |
418 | - const resetFieldsStep3RuleAlarmFunc = () => { | |
419 | - resetFieldsStep3RuleAlarm(); | |
420 | - }; | |
421 | - | |
422 | - const resetFieldsrStep3ConditionFunc = () => { | |
423 | - resetFieldsrStep3Condition(); | |
424 | - }; | |
425 | - | |
426 | - const resetFieldsStep3RuleAlarmFunc1 = () => { | |
427 | - resetFieldsStep3RuleAlarm(); | |
428 | - }; | |
429 | - | |
430 | - const resetFieldsStep3EnableFunc = () => { | |
431 | - resetFieldsStep3Enable(); | |
432 | - }; | |
433 | - const resetFieldsStep3TemplateDetailFunc = () => { | |
434 | - resetFieldsStep3TemplateDetail(); | |
435 | - }; | |
436 | - //清除报警 | |
437 | - const resetFieldsStep3ClearRuleAlarmFunc = () => { | |
438 | - resetFieldsStep3ClearRuleAlarm(); | |
439 | - }; | |
440 | - const resetFieldsStep3ClearRuleAlarmlFunc = () => { | |
441 | - resetFieldsStep3ClearRuleAlarm(); | |
442 | - }; | |
443 | - const resetFieldsStep3ClearConditionFunc = () => { | |
444 | - resetFieldsStep3ClearCondition(); | |
445 | - }; | |
446 | - const resetFieldStep3ClearEnablelFunc = () => { | |
447 | - resetFieldStep3ClearEnablel(); | |
448 | - }; | |
449 | - const resetFieldStep3ClearTemplateDetailFunc = () => { | |
450 | - resetFieldStep3ClearTemplateDetail(); | |
451 | - }; | |
452 | - watch( | |
453 | - () => activeKey.value, | |
454 | - (v) => { | |
455 | - dataInfo.value = v; | |
456 | - } | |
457 | - ); | |
458 | - const getTitle = computed(() => { | |
459 | - return '设备配置详情'; | |
460 | - }); | |
461 | - | |
462 | - return { | |
463 | - resetFieldsContactFunc, | |
464 | - registerStep3ClearTemplateDetail, | |
465 | - registerStep3ClearEnable, | |
466 | - registerStep3ClearCondition, | |
467 | - registerStep3ClearRuleAlarm, | |
468 | - handleChange, | |
469 | - registerStep3TemplateDetail, | |
470 | - registerStep3Enable, | |
471 | - registerStep3Condition, | |
472 | - registerStep3RuleAlarm, | |
473 | - registerContact, | |
474 | - registerStep3HighSetting, | |
475 | - registerStep3CreateAlarm, | |
476 | - registerStep3Schemas, | |
477 | - registerTrans, | |
478 | - activeKey, | |
479 | - registerDetail, | |
480 | - register, | |
481 | - getTitle, | |
482 | - }; | |
483 | - }, | |
484 | - }); | |
485 | -</script> | |
486 | - | |
487 | -<style scoped lang="less"> | |
488 | - .input-style { | |
489 | - :deep .ant-form-item-control-input { | |
490 | - position: relative; | |
491 | - display: flex; | |
492 | - align-items: center; | |
493 | - min-height: 02px; | |
494 | - } | |
495 | - :deep.ant-col-24 { | |
496 | - display: block; | |
497 | - flex: 0 0 100%; | |
498 | - max-width: 100%; | |
499 | - margin-top: -20px; | |
500 | - } | |
501 | - } | |
502 | - | |
503 | - .clear-input-style { | |
504 | - :deep .ant-form-item-control-input { | |
505 | - position: relative; | |
506 | - display: flex; | |
507 | - align-items: center; | |
508 | - min-height: 02px; | |
509 | - } | |
510 | - :deep.ant-col-24 { | |
511 | - display: block; | |
512 | - flex: 0 0 100%; | |
513 | - max-width: 100%; | |
514 | - margin-top: -20px; | |
515 | - } | |
516 | - } | |
517 | -</style> |
src/views/device/profiles/DeviceProfileModal.vue
renamed from
src/views/device/profile/DeviceProfileModal.vue
... | ... | @@ -80,7 +80,7 @@ |
80 | 80 | 'handleStep2Next', |
81 | 81 | ], |
82 | 82 | setup(_, { emit }) { |
83 | - const { proxy } = getCurrentInstance(); | |
83 | + const { proxy } = getCurrentInstance() as any; | |
84 | 84 | const DeviceProfileStep1Ref = ref(null); |
85 | 85 | const DeviceProfileStep2Ref = ref(null); |
86 | 86 | const DeviceProfileStep3Ref = ref(null); |
... | ... | @@ -90,9 +90,9 @@ |
90 | 90 | const getStepOneData: any = ref({}); |
91 | 91 | const getStepTwoData: any = ref({}); |
92 | 92 | const getStepThreeData = ref([]); |
93 | - const editData = ref({}); | |
93 | + const editData: any = ref({}); | |
94 | 94 | let getBackendData = reactive({}); |
95 | - let getStepFourData = reactive({}); | |
95 | + let getStepFourData: any = reactive({}); | |
96 | 96 | const alarmProfileData = reactive({ |
97 | 97 | alarmProfile: { |
98 | 98 | alarmContactId: '', |
... | ... | @@ -112,6 +112,7 @@ |
112 | 112 | const isStatus: any = ref(null); |
113 | 113 | const isShowOkBtnFalse = ref(true); |
114 | 114 | const isShowRule = ref(true); |
115 | + const isEditAndChange = ref(true); | |
115 | 116 | |
116 | 117 | const getTitle = computed(() => |
117 | 118 | isUpdate.value == 1 ? '新增设备配置' : isUpdate.value == 2 ? '编辑设备配置' : '设备配置详情' |
... | ... | @@ -135,6 +136,12 @@ |
135 | 136 | stepThreeData: {}, |
136 | 137 | }); |
137 | 138 | } else if (isUpdate.value == 2) { |
139 | + isGetStepThreeData.profileData.alarms.length = 0; | |
140 | + try { | |
141 | + proxy.$refs.DeviceProfileStep3Ref.clearEditAllRegisterFormFunc(); | |
142 | + } catch (e) { | |
143 | + return e; | |
144 | + } | |
138 | 145 | postEditId.value = data.record.id; |
139 | 146 | getBackendData = await deviceConfigGetDetail(postEditId.value); |
140 | 147 | editData.value = getBackendData; |
... | ... | @@ -253,7 +260,9 @@ |
253 | 260 | //回显创建报警规则和清除报警规则 |
254 | 261 | } |
255 | 262 | } |
256 | - function handleStep3Next(v) { | |
263 | + function handleStep3Next(v, v1) { | |
264 | + console.log(v1); | |
265 | + isEditAndChange.value = v1; | |
257 | 266 | current.value++; |
258 | 267 | getStepThreeData.value = v; |
259 | 268 | if (isUpdate.value == 1) { |
... | ... | @@ -295,8 +304,12 @@ |
295 | 304 | closeModal(); |
296 | 305 | emit('success'); |
297 | 306 | } else if (isUpdate.value == 2) { |
307 | + isGetStepThreeData.profileData.alarms = | |
308 | + isEditAndChange.value == true | |
309 | + ? editData.value.profileData.alarms | |
310 | + : getStepThreeData.value; | |
311 | + // isGetStepThreeData.profileData.alarms = getStepThreeData.value; | |
298 | 312 | postDeviceConfogData.value.id = postEditId.value; |
299 | - isGetStepThreeData.profileData.alarms = getStepThreeData.value; | |
300 | 313 | getStepFourData = await proxy.$refs.DeviceProfileStep4Ref.getAllFields(); |
301 | 314 | const getJoinAlarmContactIdData = getStepFourData.alarmContactId.join(','); |
302 | 315 | const getJoinMessageModeData = getStepFourData.messageMode.join(','); |
... | ... | @@ -322,11 +335,14 @@ |
322 | 335 | closeModal(); |
323 | 336 | try { |
324 | 337 | proxy.$refs.DeviceProfileStep4Ref.clearAlaramContactAndNoticeMethodFunc(); |
338 | + proxy.$refs.DeviceProfileStep3Ref.clearDetailTemplateFunc(); | |
339 | + proxy.$refs.DeviceProfileStep3Ref.clearEditAllRegisterFormFunc(); | |
325 | 340 | } catch (e) { |
326 | 341 | return e; |
327 | 342 | } |
328 | 343 | }; |
329 | 344 | return { |
345 | + // isEditFunc, | |
330 | 346 | isShowRule, |
331 | 347 | isShowOkBtnFalse, |
332 | 348 | isStatus, | ... | ... |
src/views/device/profiles/device.profile.data.ts
renamed from
src/views/device/profile/device.profile.data.ts
... | ... | @@ -2,8 +2,6 @@ import { BasicColumn } from '/@/components/Table'; |
2 | 2 | import { FormSchema } from '/@/components/Table'; |
3 | 3 | import { findDictItemByCode } from '/@/api/system/dict'; |
4 | 4 | import { MessageEnum } from '/@/enums/messageEnum'; |
5 | -// import { getOrganizationList } from '/@/api/system/system'; | |
6 | -// import { copyTransFun } from '/@/utils/fnUtils'; | |
7 | 5 | import { numberRule } from '/@/utils/rules'; |
8 | 6 | |
9 | 7 | export const columns: BasicColumn[] = [ |
... | ... | @@ -34,24 +32,11 @@ export const searchFormSchema: FormSchema[] = [ |
34 | 32 | field: 'name', |
35 | 33 | label: '配置名称', |
36 | 34 | component: 'Input', |
37 | - colProps: { span: 8 }, | |
35 | + colProps: { span: 6 }, | |
38 | 36 | componentProps: { |
39 | 37 | maxLength: 255, |
40 | 38 | placeholder: '请输入配置名称', |
41 | 39 | }, |
42 | - dynamicRules: () => { | |
43 | - return [ | |
44 | - { | |
45 | - required: false, | |
46 | - validator: (_, value) => { | |
47 | - if (String(value).length > 255) { | |
48 | - return Promise.reject('字数不超过255个字'); | |
49 | - } | |
50 | - return Promise.resolve(); | |
51 | - }, | |
52 | - }, | |
53 | - ]; | |
54 | - }, | |
55 | 40 | }, |
56 | 41 | ]; |
57 | 42 | |
... | ... | @@ -181,19 +166,6 @@ export const formSchema: FormSchema[] = [ |
181 | 166 | maxLength: 255, |
182 | 167 | placeholder: '请输入消息配置', |
183 | 168 | }, |
184 | - dynamicRules: () => { | |
185 | - return [ | |
186 | - { | |
187 | - required: false, | |
188 | - validator: (_, value) => { | |
189 | - if (String(value).length > 255) { | |
190 | - return Promise.reject('字数不超过255个字'); | |
191 | - } | |
192 | - return Promise.resolve(); | |
193 | - }, | |
194 | - }, | |
195 | - ]; | |
196 | - }, | |
197 | 169 | }, |
198 | 170 | { |
199 | 171 | field: 'id', |
... | ... | @@ -225,18 +197,5 @@ export const formSchema: FormSchema[] = [ |
225 | 197 | maxLength: 255, |
226 | 198 | placeholder: '请输入备注', |
227 | 199 | }, |
228 | - dynamicRules: () => { | |
229 | - return [ | |
230 | - { | |
231 | - required: false, | |
232 | - validator: (_, value) => { | |
233 | - if (String(value).length > 255) { | |
234 | - return Promise.reject('字数不超过255个字'); | |
235 | - } | |
236 | - return Promise.resolve(); | |
237 | - }, | |
238 | - }, | |
239 | - ]; | |
240 | - }, | |
241 | 200 | }, |
242 | 201 | ]; | ... | ... |
src/views/device/profiles/index.vue
renamed from
src/views/device/profile/index.vue
... | ... | @@ -5,7 +5,6 @@ |
5 | 5 | @selection-change="useSelectionChange" |
6 | 6 | @register="registerTable" |
7 | 7 | :rowSelection="{ type: 'checkbox' }" |
8 | - :rowClassName="setRowClassName" | |
9 | 8 | > |
10 | 9 | <template #toolbar> |
11 | 10 | <a-button type="primary" @click="handleCreate"> 新增设备配置 </a-button> |
... | ... | @@ -48,31 +47,24 @@ |
48 | 47 | </template> |
49 | 48 | </BasicTable> |
50 | 49 | <DeviceProfileModal @register="registerModal" @success="handleSuccess" /> |
51 | - <DeviceConfigDetail | |
52 | - ref="deviceDetailRef" | |
53 | - @register="registerModalDetail" | |
54 | - @success="handleSuccess" | |
55 | - /> | |
56 | 50 | <!-- <ExpExcelModal @register="register1" @success="defaultHeader" /> --> |
57 | 51 | </div> |
58 | 52 | </template> |
59 | 53 | <script lang="ts"> |
60 | - import { defineComponent, ref, reactive, getCurrentInstance } from 'vue'; | |
54 | + import { defineComponent, ref, reactive } from 'vue'; | |
61 | 55 | import { BasicTable, useTable, TableAction, BasicColumn } from '/@/components/Table'; |
62 | 56 | import { columns, searchFormSchema } from './device.profile.data'; |
63 | 57 | import { useMessage } from '/@/hooks/web/useMessage'; |
64 | 58 | import { deviceConfigGetQuery, deviceConfigDelete } from '/@/api/device/deviceConfigApi'; |
65 | 59 | import { useModal } from '/@/components/Modal'; |
66 | 60 | import DeviceProfileModal from '/@/views/device/profile/DeviceProfileModal.vue'; |
67 | - import DeviceConfigDetail from '/@/views/device/profile/deviceConfigDetail.vue'; | |
68 | 61 | import { ImpExcel, ExcelData } from '/@/components/Excel'; |
69 | 62 | // import { jsonToSheetXlsx, ExportModalResult } from '/@/components/Excel'; |
70 | 63 | |
71 | 64 | export default defineComponent({ |
72 | 65 | name: 'DeviceProfileManagement', |
73 | - components: { BasicTable, DeviceProfileModal, TableAction, ImpExcel, DeviceConfigDetail }, | |
66 | + components: { BasicTable, DeviceProfileModal, TableAction, ImpExcel }, | |
74 | 67 | setup() { |
75 | - const { proxy } = getCurrentInstance(); | |
76 | 68 | const deviceDetailRef = ref(null); |
77 | 69 | let selectedRowKeys: string[] = reactive([]); |
78 | 70 | const getPathUrl = ref(''); |
... | ... | @@ -125,11 +117,11 @@ |
125 | 117 | const getName = getParam(getPathUrl.value, name); |
126 | 118 | getPathUrlName.value = decodeURIComponent(getName); |
127 | 119 | |
128 | - const setRowClassName = (record) => { | |
129 | - if (record.name === getPathUrlName.value) { | |
130 | - return 'rowcolor2'; | |
131 | - } | |
132 | - }; | |
120 | + // const setRowClassName = (record) => { | |
121 | + // if (record.name === getPathUrlName.value) { | |
122 | + // return 'rowcolor2'; | |
123 | + // } | |
124 | + // }; | |
133 | 125 | |
134 | 126 | const tableListRef = ref< |
135 | 127 | { |
... | ... | @@ -231,7 +223,7 @@ |
231 | 223 | return { |
232 | 224 | disabled, |
233 | 225 | deviceDetailRef, |
234 | - setRowClassName, | |
226 | + // setRowClassName, | |
235 | 227 | registerModalDetail, |
236 | 228 | // register1, |
237 | 229 | // defaultHeader, | ... | ... |
src/views/device/profiles/step/DeviceProfileStep1.vue
renamed from
src/views/device/profile/step/DeviceProfileStep1.vue
src/views/device/profiles/step/DeviceProfileStep2.vue
renamed from
src/views/device/profile/step/DeviceProfileStep2.vue
src/views/device/profiles/step/DeviceProfileStep3.vue
renamed from
src/views/device/profile/step/DeviceProfileStep3.vue
... | ... | @@ -67,24 +67,14 @@ |
67 | 67 | <div class="aic" style="border: 1px solid #bfbfbf"> |
68 | 68 | <div class="w-3/4" style="margin-left: 40px"> |
69 | 69 | <!-- 报警严重程度 --> |
70 | - <div style="margin-left: 10px; margin-top: 20px" | |
71 | - ><BasicForm v-if="childItem" @register="registerFormCreateAlarm" /> | |
72 | - <div> | |
73 | - <div | |
74 | - v-for="(i8, index8) in getStepThreeEditStatus ? createAlarmArray : []" | |
75 | - :key="index8" | |
76 | - style="position: relative" | |
77 | - > | |
78 | - <p | |
79 | - style="position: absolute; top: -10.2vh; left: 6.5vw; z-index: 1" | |
80 | - v-if="index8 == createIndex" | |
81 | - >{{ formatAlarmFunc(i8) }}</p | |
82 | - > | |
83 | - </div> | |
84 | - </div> | |
70 | + <div style="height: 2vh; margin-top: 0.8vh; margin-left: 0.35vw"> | |
71 | + <AlarmSeverity | |
72 | + ref="alarmSeverityRef" | |
73 | + :alarmSeverityInfo="getStepThreeEditStatus ? childItem : 1" | |
74 | + /> | |
85 | 75 | </div> |
86 | 76 | <!-- 报警严重程度 --> |
87 | - <div style="margin-left: 5px; margin-top: -35px"> | |
77 | + <div style="margin-left: 5px; margin-top: 35px"> | |
88 | 78 | <div style="color: #f5594e" class="ml-4" |
89 | 79 | >报警规则条件: |
90 | 80 | <Button |
... | ... | @@ -107,14 +97,6 @@ |
107 | 97 | >报警规则条件:{{ openRuleConditionComp(v2) }}</p |
108 | 98 | > |
109 | 99 | </template> |
110 | - <template | |
111 | - v-for="(vi, indexi) in isEditDataAndValue ? getEditDataAndValue : []" | |
112 | - :key="indexi" | |
113 | - > | |
114 | - <p v-if="indexi == createIndex && isEditDataAndValue" | |
115 | - >报警规则条件:{{ isEditDataAndValueFunc(vi) }}</p | |
116 | - > | |
117 | - </template> | |
118 | 100 | </div> |
119 | 101 | <div style="white-space: wrap; margin-top: 25px" class="mt-4 ml-4" |
120 | 102 | >报警启用规则: |
... | ... | @@ -144,27 +126,30 @@ |
144 | 126 | 启用方式:{{ openRuleComp(v1) }} |
145 | 127 | </p> |
146 | 128 | </template> |
129 | + <!-- 报警详情模板--> | |
147 | 130 | <div |
148 | 131 | class="mt-4 ml-4" |
149 | - style="margin-left: 0px; position: relative; margin-top: 25px" | |
150 | - >报警详情模板: | |
151 | - <div style="position: absolute; top: -5px; left: 106px; width: 581px"> | |
152 | - <BasicForm @register="registerFormChangeDetail" /> | |
153 | - </div> | |
154 | - <div | |
155 | - style="position: relative" | |
156 | - v-for="(i7, index7) in getStepThreeEditStatus | |
157 | - ? detailDetailModelArray | |
158 | - : []" | |
159 | - :key="index7" | |
160 | - > | |
161 | - <p | |
162 | - style="position: absolute; top: -2.3vh; left: 5.68vw" | |
163 | - v-if="index7 == createIndex" | |
164 | - >{{ i7 }}</p | |
165 | - > | |
132 | + style=" | |
133 | + margin-left: -0.2vw; | |
134 | + margin-top: 25px; | |
135 | + display: flex; | |
136 | + flex-direction: row; | |
137 | + justify-content: space-between; | |
138 | + width: 29vw; | |
139 | + height: 2vh; | |
140 | + " | |
141 | + > | |
142 | + <div style="width: 6vw; height: 2vh"> 报警详情模板: </div> | |
143 | + <div style="width: 25vw; height: 2vh"> | |
144 | + <DetailTemplate | |
145 | + ref="detailTemplateRef" | |
146 | + :detailTemplateInfo=" | |
147 | + getStepThreeEditStatus ? returnChildItem(childItem) : 1 | |
148 | + " | |
149 | + /> | |
166 | 150 | </div> |
167 | 151 | </div> |
152 | + <!-- 报警详情模板--> | |
168 | 153 | <div style="margin-top: 25px; position: relative"> |
169 | 154 | <div style="margin-left: -14px"> |
170 | 155 | <BasicForm @register="dashboardForm" /> |
... | ... | @@ -172,9 +157,10 @@ |
172 | 157 | </div> |
173 | 158 | </div> |
174 | 159 | </div> |
160 | + <!-- 移除按钮 --> | |
175 | 161 | <div |
176 | 162 | class="remove-type" |
177 | - style="display: inline-block; position: relative; top: -33vh; left: 39.4vw" | |
163 | + style="display: inline-block; position: relative; top: -25.2vh; left: 39.4vw" | |
178 | 164 | > |
179 | 165 | <img |
180 | 166 | v-if="isAddRuleStatus" |
... | ... | @@ -184,6 +170,7 @@ |
184 | 170 | src="../../../../assets/images/close.png" |
185 | 171 | /> |
186 | 172 | </div> |
173 | + <!-- 移除按钮 --> | |
187 | 174 | </div> |
188 | 175 | </div> |
189 | 176 | </div> |
... | ... | @@ -237,7 +224,6 @@ |
237 | 224 | @click="handleOpenClearAlaramRuleConditions" |
238 | 225 | >添加</Button |
239 | 226 | > |
240 | - | |
241 | 227 | <template |
242 | 228 | v-for="(v4, index4) in getStepThreeEditStatus |
243 | 229 | ? getFilterStepThreeEditClearArr |
... | ... | @@ -334,10 +320,8 @@ |
334 | 320 | import { |
335 | 321 | step3Schemas, |
336 | 322 | step3HighSetting, |
337 | - step3CreateAlarm, | |
338 | 323 | dashboardFormScheme, |
339 | 324 | isWhereType, |
340 | - isLostFocux, | |
341 | 325 | formChangeDetailSchema, |
342 | 326 | } from './data'; |
343 | 327 | import { PlusCircleOutlined } from '@ant-design/icons-vue'; |
... | ... | @@ -347,6 +331,9 @@ |
347 | 331 | import AlarmRuleConditions from './cpns/alarmruleconditions/index.vue'; |
348 | 332 | import { Button } from '/@/components/Button'; |
349 | 333 | export const isWhereTypeValueDisabled = ref(false); |
334 | + import AlarmSeverity from './cpns/alarmseverity/index.vue'; | |
335 | + import DetailTemplate from './cpns/detailtemplate/index.vue'; | |
336 | + import { generateUUID } from '/@/hooks/web/useGenerateUUID'; | |
350 | 337 | |
351 | 338 | export default defineComponent({ |
352 | 339 | components: { |
... | ... | @@ -357,12 +344,17 @@ |
357 | 344 | EnableRule, |
358 | 345 | AlarmRuleConditions, |
359 | 346 | Button, |
347 | + AlarmSeverity, | |
348 | + DetailTemplate, | |
360 | 349 | }, |
361 | - emits: ['prev', 'next', 'redo', 'handleFormStep3toStep4Next'], | |
350 | + emits: ['prev', 'next', 'redo', 'handleFormStep3toStep4Next', 'isEdit'], | |
362 | 351 | props: ['getAllStepThreeData', 'isAddOrEdit', 'isShowAddRule'], |
352 | + | |
363 | 353 | setup(props, { emit }) { |
354 | + const detailTemplateRef = ref(null); | |
355 | + const alarmSeverityRef = ref(null); | |
364 | 356 | const isAddRuleStatus = ref(true); |
365 | - const { proxy } = getCurrentInstance(); | |
357 | + const { proxy } = getCurrentInstance() as any; | |
366 | 358 | const changeGetDetailValue = ref({}); |
367 | 359 | const changeGetClearDetailValue = ref({}); |
368 | 360 | const getChildData1 = ref(null); |
... | ... | @@ -384,7 +376,7 @@ |
384 | 376 | const detailClearTemplateData: any = ref(null); |
385 | 377 | //重构 |
386 | 378 | //告警列表接口 |
387 | - let profileData = ref<IProfileData[]>([]); | |
379 | + let profileData: any = ref<IProfileData[]>([]); | |
388 | 380 | //初始化alarams数据 |
389 | 381 | const initProfileData = reactive({ |
390 | 382 | alarms: [ |
... | ... | @@ -407,7 +399,7 @@ |
407 | 399 | propagate: '', |
408 | 400 | propagateRelationTypes: [''], |
409 | 401 | schedule: { |
410 | - type: 'string', | |
402 | + type: '', | |
411 | 403 | }, |
412 | 404 | condition: {}, |
413 | 405 | }, |
... | ... | @@ -426,11 +418,11 @@ |
426 | 418 | //接收临时规则条件数据 |
427 | 419 | const receiveRuleConditionTempArr = ref<[]>([]); |
428 | 420 | //创建条件总对象 |
429 | - const createRulesObj = ref({}); | |
421 | + const createRulesObj: any = ref({}); | |
430 | 422 | let addCreateRulesObj = reactive({ |
431 | 423 | createRules: {}, |
432 | 424 | }); |
433 | - const addChangeSeverity = ref({}); | |
425 | + const addChangeSeverity: any = ref({}); | |
434 | 426 | let addNewOpenRule = reactive({ |
435 | 427 | schedule: {}, |
436 | 428 | }); |
... | ... | @@ -473,20 +465,21 @@ |
473 | 465 | condition: {}, |
474 | 466 | }); |
475 | 467 | let fliterTempRuleConditionTempArr = ref<[]>([]); |
476 | - let fliterTempOpenRuleTempArr = ref<[]>([]); | |
468 | + let fliterTempOpenRuleTempArr: any = ref<[]>([]); | |
477 | 469 | let fliterClearTempRuleConditionTempArr = ref<[]>([]); |
478 | - let fliterClearTempOpenRuleTempArr = ref<[]>([]); | |
470 | + let fliterClearTempOpenRuleTempArr: any = ref<[]>([]); | |
479 | 471 | const getStepThreeEditStatus: any = ref(false); |
480 | - const isEditDataAndValue = ref(false); | |
472 | + // const isEditDataAndValue = ref(false); | |
481 | 473 | const getStepThreeEditArr = ref<[]>([]); |
482 | - const getFilterStepThreeEditArr = ref<[]>([]); | |
483 | - const getFilterStepThreeEditClearArr = ref<[]>([]); | |
474 | + const getFilterStepThreeEditArr: any = ref<[]>([]); | |
475 | + const getFilterStepThreeEditClearArr: any = ref<[]>([]); | |
484 | 476 | const getFilterStepThreeClearDetailEditArr = ref<[]>([]); |
485 | 477 | let getIsShowAddRule = true; |
486 | 478 | const detailDetailModelArray = ref<[]>([]); |
487 | 479 | const createAlarmArray = ref<[]>([]); |
488 | 480 | const isLostFocuxStatus = ref(true); |
489 | - const getEditDataAndValue = ref<[]>([]); | |
481 | + // const getEditDataAndValue = ref<[]>([]); | |
482 | + const editIndex = ref(-1); | |
490 | 483 | |
491 | 484 | setTimeout(() => { |
492 | 485 | getIsShowAddRule = props.isShowAddRule; |
... | ... | @@ -558,19 +551,6 @@ |
558 | 551 | span: 24, |
559 | 552 | }, |
560 | 553 | }); |
561 | - //详情模板 | |
562 | - const [ | |
563 | - registerFormChangeDetail, | |
564 | - { getFieldsValue: getRegisterFormChangeDetail, resetFields: resetRegisterFormChangeDetail }, | |
565 | - ] = useForm({ | |
566 | - labelWidth: 120, | |
567 | - schemas: formChangeDetailSchema, | |
568 | - showResetButton: false, | |
569 | - showSubmitButton: false, | |
570 | - actionColOptions: { | |
571 | - span: 24, | |
572 | - }, | |
573 | - }); | |
574 | 554 | //清除详情模板 |
575 | 555 | const [ |
576 | 556 | registerFormChangeClearDetail, |
... | ... | @@ -588,36 +568,20 @@ |
588 | 568 | span: 24, |
589 | 569 | }, |
590 | 570 | }); |
591 | - // 添加创建条件表单 | |
592 | - const [ | |
593 | - registerFormCreateAlarm, | |
594 | - { | |
595 | - setFieldsValue: setRegisterFormCreateAlarm, | |
596 | - resetFields: resetRegisterFormCreateAlarm, | |
597 | - validate: validateRegisterFormCreateAlarm, | |
598 | - }, | |
599 | - ] = useForm({ | |
600 | - labelWidth: 120, | |
601 | - schemas: step3CreateAlarm, | |
602 | - showResetButton: false, | |
603 | - showSubmitButton: false, | |
604 | - actionColOptions: { | |
605 | - span: 24, | |
606 | - }, | |
607 | - }); | |
608 | 571 | |
609 | - const resetRegisterFormCreateAlarmFunc = () => { | |
610 | - resetRegisterFormCreateAlarm(); | |
572 | + //重置编辑数据 | |
573 | + const clearEditAllRegisterFormFunc = () => { | |
574 | + getFilterStepThreeEditArr.value.length = 0; | |
575 | + getFilterStepThreeEditArr.value = []; | |
611 | 576 | }; |
577 | + | |
612 | 578 | //重置表单数据 |
613 | 579 | const clearAllRegisterFormFunc = () => { |
614 | 580 | setTimeout(() => { |
615 | 581 | clearAlaramTypeValueFunc(); |
616 | 582 | clearTransmitAlarmFunc(); |
617 | - resetRegisterFormChangeDetailFunc(); | |
618 | 583 | resetRegisterFormClearChangeDetailFunc(); |
619 | 584 | resetAllTemplateFunc(); |
620 | - resetRegisterFormCreateAlarmFunc(); | |
621 | 585 | }, 10); |
622 | 586 | }; |
623 | 587 | //重置报警启用规则-报警规则条件 |
... | ... | @@ -647,10 +611,6 @@ |
647 | 611 | }); |
648 | 612 | }; |
649 | 613 | |
650 | - //重置详情模板数据 | |
651 | - const resetRegisterFormChangeDetailFunc = () => { | |
652 | - resetRegisterFormChangeDetail(); | |
653 | - }; | |
654 | 614 | //清除修改详情模板 |
655 | 615 | const resetRegisterFormClearChangeDetailFunc = () => { |
656 | 616 | resetRegisterFormClearChangeDetail(); |
... | ... | @@ -663,13 +623,8 @@ |
663 | 623 | const setTransmitAlarmFormFunc = (v) => { |
664 | 624 | setTransmitAlarmFunc(v); |
665 | 625 | }; |
666 | - const setRegisterFormCreateAlarmFunc = async () => { | |
667 | - setRegisterFormCreateAlarm({ | |
668 | - default: '', | |
669 | - }); | |
670 | - }; | |
671 | 626 | const openRuleComp = (v1) => { |
672 | - let openSchemObj = {}; | |
627 | + let openSchemObj: any = {}; | |
673 | 628 | for (let i in v1) { |
674 | 629 | if (i == 'CRITICAL') { |
675 | 630 | openSchemObj = v1[i]; |
... | ... | @@ -721,7 +676,7 @@ |
721 | 676 | |
722 | 677 | const openRuleConditionComp = (v2) => { |
723 | 678 | try { |
724 | - let openRuleConditObj = {}; | |
679 | + let openRuleConditObj: any = {}; | |
725 | 680 | for (let i in v2) { |
726 | 681 | if (i == 'CRITICAL') { |
727 | 682 | openRuleConditObj = v2[i]; |
... | ... | @@ -766,7 +721,7 @@ |
766 | 721 | getFilterStepThreeEditArr.value = []; |
767 | 722 | getFilterStepThreeEditClearArr.value = []; |
768 | 723 | getStepThreeEditStatus.value = v.isEditStatus; |
769 | - isEditDataAndValue.value = v.isEditStatus; | |
724 | + // isEditDataAndValue.value = v.isEditStatus; | |
770 | 725 | getStepThreeEditArr.value = v.stepThreeData; |
771 | 726 | if (getFilterStepThreeEditClearArr.value.length == 0) { |
772 | 727 | getFilterStepThreeEditClearArr.value.push(v.stepThreeClearData as never); |
... | ... | @@ -784,17 +739,6 @@ |
784 | 739 | createAlarmArray.value.push(i as never); |
785 | 740 | } |
786 | 741 | }; |
787 | - const formatAlarmFunc = (v) => { | |
788 | - return v == 'CRITICAL' | |
789 | - ? '危险' | |
790 | - : v == 'MAJOR' | |
791 | - ? '重要' | |
792 | - : v == 'MINOR' | |
793 | - ? '次要' | |
794 | - : v == 'WARNING' | |
795 | - ? '警告' | |
796 | - : '不确定'; | |
797 | - }; | |
798 | 742 | |
799 | 743 | //清除修改详情模板 |
800 | 744 | const setRegisterFormClearChangeDetailFunc = (v) => { |
... | ... | @@ -802,7 +746,18 @@ |
802 | 746 | }; |
803 | 747 | |
804 | 748 | const getRegisterFormChangeDetailFunc = () => { |
805 | - changeGetDetailValue.value = getRegisterFormChangeDetail(); | |
749 | + try { | |
750 | + changeGetDetailValue.value = proxy.$refs.detailTemplateRef.getFieldsValueFunc(); | |
751 | + } catch (e) { | |
752 | + return e; | |
753 | + } | |
754 | + }; | |
755 | + const clearDetailTemplateFunc = () => { | |
756 | + try { | |
757 | + proxy.$refs.detailTemplateRef.resetFieldsFunc(); | |
758 | + } catch (e) { | |
759 | + return e; | |
760 | + } | |
806 | 761 | }; |
807 | 762 | const getRegisterClearFormChangeDetailFunc = () => { |
808 | 763 | changeGetClearDetailValue.value = getRegisterFormClearChangeDetail(); |
... | ... | @@ -821,7 +776,7 @@ |
821 | 776 | tempOpenRuleTempArr.value.push(addNewOpenRule.schedule as never); |
822 | 777 | tempRuleConditionTempArr.value.push({ |
823 | 778 | condition: addNewRuleTem.condition.condition, |
824 | - }); | |
779 | + } as never); | |
825 | 780 | }; |
826 | 781 | |
827 | 782 | const getClearOpenRuleAndRuleCondition = () => { |
... | ... | @@ -845,32 +800,36 @@ |
845 | 800 | |
846 | 801 | // 添加创建条件方法 |
847 | 802 | const addCreateRuleFunc = async () => { |
848 | - getRegisterFormChangeDetailFunc(); | |
849 | - tempDetailTempArr.value.push(changeGetDetailValue.value as never); | |
850 | - tempDetailTempArr.value.forEach((f1) => { | |
851 | - kongDetail.value = f1; | |
852 | - }); | |
853 | - addChangeSeverity.value = await validateRegisterFormCreateAlarm(); | |
854 | - emptyCreateRoleFunc(); | |
855 | - getOpenRuleAndRuleCondition(); | |
803 | + try { | |
804 | + getRegisterFormChangeDetailFunc(); | |
805 | + tempDetailTempArr.value.push(changeGetDetailValue.value as never); | |
806 | + tempDetailTempArr.value.forEach((f1) => { | |
807 | + kongDetail.value = f1; | |
808 | + }); | |
809 | + addChangeSeverity.value = proxy.$refs.alarmSeverityRef.getFieldsValueFunc(); | |
810 | + emptyCreateRoleFunc(); | |
811 | + getOpenRuleAndRuleCondition(); | |
856 | 812 | |
857 | - tempOpenRuleTempArr.value.forEach((f2) => { | |
858 | - kongOpenRuleObj.schedule = f2; | |
859 | - }); | |
813 | + tempOpenRuleTempArr.value.forEach((f2) => { | |
814 | + kongOpenRuleObj.schedule = f2; | |
815 | + }); | |
860 | 816 | |
861 | - tempRuleConditionTempArr.value.forEach((f3) => { | |
862 | - kongRuleConditionObj.condition = f3; | |
863 | - }); | |
817 | + tempRuleConditionTempArr.value.forEach((f3) => { | |
818 | + kongRuleConditionObj.condition = f3; | |
819 | + }); | |
864 | 820 | |
865 | - createRulesObj.value[addChangeSeverity.value?.default] = { | |
866 | - ...kongDetail.value, | |
867 | - ...addNewOpenRule, | |
868 | - ...addNewRuleTem, | |
869 | - ...kongOpenRuleObj, | |
870 | - ...kongRuleConditionObj, | |
871 | - }; | |
872 | - addCreateRulesObj.createRules = createRulesObj.value; | |
873 | - initCreateRules.createRules = addCreateRulesObj; | |
821 | + createRulesObj.value[addChangeSeverity.value?.default] = { | |
822 | + ...kongDetail.value, | |
823 | + ...addNewOpenRule, | |
824 | + ...addNewRuleTem, | |
825 | + ...kongOpenRuleObj, | |
826 | + ...kongRuleConditionObj, | |
827 | + }; | |
828 | + addCreateRulesObj.createRules = createRulesObj.value; | |
829 | + initCreateRules.createRules = addCreateRulesObj; | |
830 | + } catch (e) { | |
831 | + return e; | |
832 | + } | |
874 | 833 | }; |
875 | 834 | |
876 | 835 | //清除报警规则 |
... | ... | @@ -894,6 +853,9 @@ |
894 | 853 | // 删除创建条件 |
895 | 854 | const deleteCondition = (index: number, createIndex: number) => { |
896 | 855 | profileData.value[index].alarms.splice(createIndex, 1); |
856 | + if (getStepThreeEditStatus.value) { | |
857 | + getFilterStepThreeEditArr.value.pop(); | |
858 | + } | |
897 | 859 | }; |
898 | 860 | |
899 | 861 | watch(isWhereType, (nV) => { |
... | ... | @@ -902,9 +864,6 @@ |
902 | 864 | isWhereTypeValueDisabled.value = true; |
903 | 865 | } |
904 | 866 | }); |
905 | - watch(isLostFocux, (nV) => { | |
906 | - isLostFocuxStatus.value = nV; | |
907 | - }); | |
908 | 867 | //报警规则 |
909 | 868 | //启用规则 |
910 | 869 | const getAllFieldsEnabFunc = (v) => { |
... | ... | @@ -917,36 +876,34 @@ |
917 | 876 | addNewRuleTem.condition.condition = ruleObj.value as never; |
918 | 877 | fliterTempRuleConditionTempArr.value.push({ |
919 | 878 | condition: addNewRuleTem.condition.condition, |
920 | - }); | |
921 | - | |
922 | - getEditDataAndValue.value.push({ | |
923 | - condition: addNewRuleTem.condition.condition, | |
924 | - }); | |
925 | - console.log(getEditDataAndValue.value); | |
879 | + } as never); | |
880 | + // getEditDataAndValue.value.push({ | |
881 | + // condition: addNewRuleTem.condition.condition, | |
882 | + // } as never); | |
926 | 883 | }; |
927 | 884 | //格式化编辑 |
928 | - const isEditDataAndValueFunc = (v) => { | |
929 | - let formatMap = v.condition.map((f) => { | |
930 | - return f.predicate.operation == 'EQUAL' | |
931 | - ? f.key.key + '等于' + f.predicate.value.defaultValue | |
932 | - : f.predicate.operation == 'STARTS_WITH' | |
933 | - ? f.key.key + '开始于' + f.predicate.value.defaultValue | |
934 | - : f.predicate.operation == 'ENDS_WITH' | |
935 | - ? f.key.key + '结束于' + f.predicate.value.defaultValue | |
936 | - : f.predicate.operation == 'NOT_CONTAINS' | |
937 | - ? f.key.key + '不包含' + f.predicate.value.defaultValue | |
938 | - : f.predicate.operation == 'NOT_EQUAL' | |
939 | - ? f.key.key + '不等于' + f.predicate.value.defaultValue | |
940 | - : f.predicate.operation == 'GREATER' | |
941 | - ? f.key.key + '大于' + f.predicate.value.defaultValue | |
942 | - : f.predicate.operation == 'LESS' | |
943 | - ? f.key.key + '小于' + f.predicate.value.defaultValue | |
944 | - : f.predicate.operation == 'GREATER_OR_EQUAL' | |
945 | - ? f.key.key + '大于或等于' + f.predicate.value.defaultValue | |
946 | - : f.key.key + '小于或等于' + f.predicate.value.defaultValue; | |
947 | - }); | |
948 | - return formatMap; | |
949 | - }; | |
885 | + // const isEditDataAndValueFunc = (v) => { | |
886 | + // let formatMap = v.condition.map((f) => { | |
887 | + // return f.predicate.operation == 'EQUAL' | |
888 | + // ? f.key.key + '等于' + f.predicate.value.defaultValue | |
889 | + // : f.predicate.operation == 'STARTS_WITH' | |
890 | + // ? f.key.key + '开始于' + f.predicate.value.defaultValue | |
891 | + // : f.predicate.operation == 'ENDS_WITH' | |
892 | + // ? f.key.key + '结束于' + f.predicate.value.defaultValue | |
893 | + // : f.predicate.operation == 'NOT_CONTAINS' | |
894 | + // ? f.key.key + '不包含' + f.predicate.value.defaultValue | |
895 | + // : f.predicate.operation == 'NOT_EQUAL' | |
896 | + // ? f.key.key + '不等于' + f.predicate.value.defaultValue | |
897 | + // : f.predicate.operation == 'GREATER' | |
898 | + // ? f.key.key + '大于' + f.predicate.value.defaultValue | |
899 | + // : f.predicate.operation == 'LESS' | |
900 | + // ? f.key.key + '小于' + f.predicate.value.defaultValue | |
901 | + // : f.predicate.operation == 'GREATER_OR_EQUAL' | |
902 | + // ? f.key.key + '大于或等于' + f.predicate.value.defaultValue | |
903 | + // : f.key.key + '小于或等于' + f.predicate.value.defaultValue; | |
904 | + // }); | |
905 | + // return formatMap; | |
906 | + // }; | |
950 | 907 | //格式化新增 |
951 | 908 | const formatAddRuleFunc = (v) => { |
952 | 909 | let formatMap = v.condition.map((f) => { |
... | ... | @@ -982,7 +939,7 @@ |
982 | 939 | addNewRuleTem.condition.condition = ruleLastObj.value as never; |
983 | 940 | fliterClearTempRuleConditionTempArr.value.push({ |
984 | 941 | condition: addNewRuleTem.condition.condition, |
985 | - }); | |
942 | + } as never); | |
986 | 943 | }; |
987 | 944 | |
988 | 945 | const formatClearRuleFunc = (v) => { |
... | ... | @@ -1008,19 +965,6 @@ |
1008 | 965 | return formatMap; |
1009 | 966 | }; |
1010 | 967 | |
1011 | - //生成uuid | |
1012 | - function generateUUID() { | |
1013 | - let d = new Date().getTime(); | |
1014 | - if (window.performance && typeof window.performance.now === 'function') { | |
1015 | - d += performance.now(); | |
1016 | - } | |
1017 | - let uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { | |
1018 | - let r = (d + Math.random() * 16) % 16 | 0; | |
1019 | - d = Math.floor(d / 16); | |
1020 | - return (c == 'x' ? r : (r & 0x3) | 0x8).toString(16); | |
1021 | - }); | |
1022 | - return uuid; | |
1023 | - } | |
1024 | 968 | const handleFormStep3toStep4Next = () => { |
1025 | 969 | try { |
1026 | 970 | validateRegisterFormFunc(); |
... | ... | @@ -1031,7 +975,6 @@ |
1031 | 975 | getRegisterFormChangeDetailFunc(); |
1032 | 976 | addCreateRuleFunc(); |
1033 | 977 | addClearAlaramRule(); |
1034 | - | |
1035 | 978 | getAllObjTemp = { |
1036 | 979 | ...alarmTypeGet.value, |
1037 | 980 | ...propagateAndpropagateRelationTypes, |
... | ... | @@ -1041,7 +984,7 @@ |
1041 | 984 | Object.assign(getAllObjTemp, addCreateRulesObj, getClearObj); |
1042 | 985 | }, 10); |
1043 | 986 | allAlarms.value.push(getAllObjTemp as never); |
1044 | - emit('next', allAlarms.value); | |
987 | + emit('next', allAlarms.value, getStepThreeEditStatus.value); | |
1045 | 988 | } catch (e) { |
1046 | 989 | return e; |
1047 | 990 | } |
... | ... | @@ -1073,6 +1016,7 @@ |
1073 | 1016 | }; |
1074 | 1017 | const handleOpenAlaramRuleConditions = () => { |
1075 | 1018 | isRuleAlarmRuleConditions.value = 3; |
1019 | + getStepThreeEditStatus.value = false; | |
1076 | 1020 | setTimeout(() => { |
1077 | 1021 | openModal3(true); |
1078 | 1022 | try { |
... | ... | @@ -1109,11 +1053,33 @@ |
1109 | 1053 | openModal6(true); |
1110 | 1054 | }, 10); |
1111 | 1055 | }; |
1056 | + const handleClickHidenEdit = (v) => { | |
1057 | + editIndex.value = v; | |
1058 | + }; | |
1059 | + const returnChildItem = (v) => { | |
1060 | + let openRuleConditObj: any = {}; | |
1061 | + for (let i in v) { | |
1062 | + if (i == 'CRITICAL') { | |
1063 | + openRuleConditObj = v[i]; | |
1064 | + } else if (i == 'MAJOR') { | |
1065 | + openRuleConditObj = v[i]; | |
1066 | + } else if (i == 'MINOR') { | |
1067 | + openRuleConditObj = v[i]; | |
1068 | + } else if (i == 'WARNING') { | |
1069 | + openRuleConditObj = v[i]; | |
1070 | + } else if (i == 'INDETERMINATE') { | |
1071 | + openRuleConditObj = v[i]; | |
1072 | + } | |
1073 | + } | |
1074 | + return openRuleConditObj.alarmDetails; | |
1075 | + }; | |
1112 | 1076 | |
1113 | 1077 | return { |
1078 | + clearEditAllRegisterFormFunc, | |
1079 | + returnChildItem, | |
1080 | + editIndex, | |
1114 | 1081 | isAddRuleStatusFunc, |
1115 | 1082 | isAddRuleStatus, |
1116 | - formatAlarmFunc, | |
1117 | 1083 | createAlarmArray, |
1118 | 1084 | formatClearRuleFunc, |
1119 | 1085 | formatAddRuleFunc, |
... | ... | @@ -1126,8 +1092,6 @@ |
1126 | 1092 | getFilterStepThreeEditArr, |
1127 | 1093 | getStepThreeEditStatus, |
1128 | 1094 | getStepThreeEditArr, |
1129 | - setRegisterFormCreateAlarmFunc, | |
1130 | - resetRegisterFormCreateAlarmFunc, | |
1131 | 1095 | initClearCreateRuleFunc, |
1132 | 1096 | fliterTempOpenRuleTempArr, |
1133 | 1097 | fliterTempRuleConditionTempArr, |
... | ... | @@ -1144,7 +1108,6 @@ |
1144 | 1108 | setRegisterFormClearChangeDetailFunc, |
1145 | 1109 | setRegisterFormChangeDetailFunc, |
1146 | 1110 | registerFormChangeClearDetail, |
1147 | - registerFormChangeDetail, | |
1148 | 1111 | clearProfileDataFunc, |
1149 | 1112 | setAlaramTypeFormFunc, |
1150 | 1113 | setTransmitAlarmFormFunc, |
... | ... | @@ -1184,15 +1147,18 @@ |
1184 | 1147 | addAlarmRule, |
1185 | 1148 | registerForm, |
1186 | 1149 | registerFormHighSetting, |
1187 | - registerFormCreateAlarm, | |
1188 | 1150 | addCreateRole, |
1189 | 1151 | deleteCondition, |
1190 | 1152 | setCreateRegisterFormChangeDetailFunc, |
1191 | 1153 | detailDetailModelArray, |
1192 | 1154 | isLostFocuxStatus, |
1193 | - isEditDataAndValue, | |
1194 | - getEditDataAndValue, | |
1195 | - isEditDataAndValueFunc, | |
1155 | + // isEditDataAndValue, | |
1156 | + // getEditDataAndValue, | |
1157 | + // isEditDataAndValueFunc, | |
1158 | + handleClickHidenEdit, | |
1159 | + alarmSeverityRef, | |
1160 | + detailTemplateRef, | |
1161 | + clearDetailTemplateFunc, | |
1196 | 1162 | }; |
1197 | 1163 | }, |
1198 | 1164 | }); | ... | ... |
src/views/device/profiles/step/DeviceProfileStep4.vue
renamed from
src/views/device/profile/step/DeviceProfileStep4.vue
... | ... | @@ -6,7 +6,7 @@ |
6 | 6 | <script lang="ts"> |
7 | 7 | import { defineComponent, ref } from 'vue'; |
8 | 8 | import { BasicForm, useForm } from '/@/components/Form/index'; |
9 | - import { alertContactsSchemas } from '../cpns/config'; | |
9 | + import { alertContactsSchemas } from './data'; | |
10 | 10 | |
11 | 11 | export default defineComponent({ |
12 | 12 | components: { | ... | ... |
src/views/device/profiles/step/cpns/alarmruleconditions/config.ts
renamed from
src/views/device/profile/step/cpns/alarmruleconditions/config.ts
src/views/device/profiles/step/cpns/alarmruleconditions/cpns/config.ts
renamed from
src/views/device/profile/step/cpns/alarmruleconditions/cpns/config.ts
src/views/device/profiles/step/cpns/alarmruleconditions/cpns/cpns/config.ts
renamed from
src/views/device/profile/step/cpns/alarmruleconditions/cpns/cpns/config.ts
src/views/device/profiles/step/cpns/alarmruleconditions/cpns/cpns/index.vue
renamed from
src/views/device/profile/step/cpns/alarmruleconditions/cpns/cpns/index.vue
src/views/device/profiles/step/cpns/alarmruleconditions/cpns/index.vue
renamed from
src/views/device/profile/step/cpns/alarmruleconditions/cpns/index.vue
... | ... | @@ -106,7 +106,7 @@ |
106 | 106 | if (!unref(isUpdate)) { |
107 | 107 | getValue.value = getFieldsValue(); |
108 | 108 | getKeyAndValArr.value.push(getValue.value); |
109 | - mapGetKeyAndValArr = getKeyAndValArr.value.map((m) => { | |
109 | + mapGetKeyAndValArr = getKeyAndValArr.value.map((m: any) => { | |
110 | 110 | return { |
111 | 111 | key: { |
112 | 112 | type: m.type, |
... | ... | @@ -131,7 +131,7 @@ |
131 | 131 | } else { |
132 | 132 | getValue.value = getFieldsValue(); |
133 | 133 | getKeyAndValArr.value.push(getValue.value); |
134 | - mapGetKeyAndValArr = getKeyAndValArr.value.map((m) => { | |
134 | + mapGetKeyAndValArr = getKeyAndValArr.value.map((m: any) => { | |
135 | 135 | return { |
136 | 136 | key: { |
137 | 137 | type: m.type, |
... | ... | @@ -207,7 +207,6 @@ |
207 | 207 | } |
208 | 208 | watch(isWhereType, (v) => { |
209 | 209 | switch (v) { |
210 | - // console.log(v) | |
211 | 210 | case 'STRING': |
212 | 211 | getIsWhereType.value = v; |
213 | 212 | break; | ... | ... |
src/views/device/profiles/step/cpns/alarmruleconditions/index.vue
renamed from
src/views/device/profile/step/cpns/alarmruleconditions/index.vue
1 | +import { FormSchema } from '/@/components/Table'; | |
2 | +import { ref } from 'vue'; | |
3 | +export const isWhereType = ref(null); | |
4 | + | |
5 | +export const formSchema: FormSchema[] = [ | |
6 | + { | |
7 | + field: 'default', | |
8 | + component: 'Select', | |
9 | + label: '报警严重程度:', | |
10 | + colProps: { | |
11 | + span: 17, | |
12 | + }, | |
13 | + componentProps() { | |
14 | + return { | |
15 | + options: [ | |
16 | + { | |
17 | + value: 'CRITICAL', | |
18 | + label: '危险', | |
19 | + }, | |
20 | + { | |
21 | + value: 'MAJOR', | |
22 | + label: '重要', | |
23 | + }, | |
24 | + { | |
25 | + value: 'MINOR', | |
26 | + label: '次要', | |
27 | + }, | |
28 | + { | |
29 | + value: 'WARNING', | |
30 | + label: '警告', | |
31 | + }, | |
32 | + { | |
33 | + value: 'INDETERMINATE', | |
34 | + label: '不确定', | |
35 | + }, | |
36 | + ], | |
37 | + onChange: (v) => { | |
38 | + isWhereType.value = v ? v : 'CRITICAL'; | |
39 | + }, | |
40 | + }; | |
41 | + }, | |
42 | + }, | |
43 | +]; | ... | ... |
src/views/device/profiles/step/cpns/alarmseverity/index.vue
renamed from
src/views/device/profile/step/cpns/detailtemplate/index.vue
... | ... | @@ -13,10 +13,11 @@ |
13 | 13 | components: { |
14 | 14 | BasicForm, |
15 | 15 | }, |
16 | + props: ['alarmSeverityInfo'], | |
16 | 17 | emits: ['success', 'register', 'getAllFields'], |
17 | - setup() { | |
18 | + setup(props) { | |
18 | 19 | const fieldValue: any = ref({}); |
19 | - const [registerForm, { getFieldsValue }] = useForm({ | |
20 | + const [registerForm, { getFieldsValue, setFieldsValue }] = useForm({ | |
20 | 21 | labelWidth: 120, |
21 | 22 | schemas: formSchema, |
22 | 23 | }); |
... | ... | @@ -26,6 +27,17 @@ |
26 | 27 | return fieldValue.value; |
27 | 28 | }; |
28 | 29 | |
30 | + const setFieldsValueFunc = () => { | |
31 | + if (props.alarmSeverityInfo != 1) { | |
32 | + let newArr = Object.keys(props.alarmSeverityInfo); | |
33 | + setTimeout(() => { | |
34 | + newArr.forEach((f) => { | |
35 | + setFieldsValue({ default: f }); | |
36 | + }); | |
37 | + }, 10); | |
38 | + } | |
39 | + }; | |
40 | + setFieldsValueFunc(); | |
29 | 41 | return { |
30 | 42 | getFieldsValueFunc, |
31 | 43 | registerForm, | ... | ... |
src/views/device/profiles/step/cpns/detailtemplate/config.ts
renamed from
src/views/device/profile/step/cpns/detailtemplate/config.ts
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: ['detailTemplateInfo'], | |
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 | + | |
25 | + const getFieldsValueFunc = () => { | |
26 | + fieldValue.value = getFieldsValue(); | |
27 | + return fieldValue.value; | |
28 | + }; | |
29 | + const setFieldsValueFunc = () => { | |
30 | + if (props.detailTemplateInfo != 1) { | |
31 | + resetFields(); | |
32 | + setTimeout(() => { | |
33 | + setFieldsValue({ | |
34 | + alarmDetails: props.detailTemplateInfo, | |
35 | + }); | |
36 | + }, 10); | |
37 | + } | |
38 | + }; | |
39 | + setFieldsValueFunc(); | |
40 | + | |
41 | + const resetFieldsFunc = () => { | |
42 | + resetFields(); | |
43 | + }; | |
44 | + return { | |
45 | + resetFieldsFunc, | |
46 | + getFieldsValueFunc, | |
47 | + registerForm, | |
48 | + }; | |
49 | + }, | |
50 | + }); | |
51 | +</script> | ... | ... |
src/views/device/profiles/step/cpns/enablerule/config.ts
renamed from
src/views/device/profile/step/cpns/enablerule/config.ts
src/views/device/profiles/step/cpns/enablerule/index.vue
renamed from
src/views/device/profile/step/cpns/enablerule/index.vue
... | ... | @@ -23,7 +23,6 @@ |
23 | 23 | }, |
24 | 24 | emits: ['success', 'register', 'getAllFieldsEnab'], |
25 | 25 | setup(_, { emit }) { |
26 | - // const getValueData: any = ref({}); | |
27 | 26 | const isUpdate = ref(true); |
28 | 27 | const [registerForm, { getFieldsValue, resetFields }] = useForm({ |
29 | 28 | labelWidth: 120, |
... | ... | @@ -39,19 +38,10 @@ |
39 | 38 | const handleSubmit = () => { |
40 | 39 | const values = getFieldsValue(); |
41 | 40 | emit('getAllFieldsEnab', values); |
42 | - // let getV = {}; | |
43 | - // getAllFieldsEnab(getV); | |
44 | 41 | closeModal(); |
45 | 42 | }; |
46 | - // function getAllFieldsEnab(getV) { | |
47 | - // const values = getFieldsValue(); | |
48 | - // getValueData.value = values; | |
49 | - // getV = getValueData.value; | |
50 | - // return getV; | |
51 | - // } | |
52 | 43 | return { |
53 | 44 | resetDataFunc, |
54 | - // getAllFieldsEnab, | |
55 | 45 | registerForm, |
56 | 46 | handleSubmit, |
57 | 47 | register, | ... | ... |
src/views/device/profiles/step/data.ts
renamed from
src/views/device/profile/step/data.ts
1 | 1 | import { FormSchema } from '/@/components/Form'; |
2 | -// import { getOrganizationList } from '/@/api/system/system'; | |
3 | -// import { copyTransFun } from '/@/utils/fnUtils'; | |
4 | 2 | import { deviceConfigGetRuleChain } from '/@/api/device/deviceConfigApi'; |
5 | 3 | import { ref } from 'vue'; |
6 | 4 | import { findDictItemByCode } from '/@/api/system/dict'; |
... | ... | @@ -148,7 +146,6 @@ export const step3HighSetting: FormSchema[] = [ |
148 | 146 | ]; |
149 | 147 | |
150 | 148 | export const isWhereType = ref(null); |
151 | -export const isLostFocux = ref(true); | |
152 | 149 | |
153 | 150 | export const step3CreateAlarm: FormSchema[] = [ |
154 | 151 | { |
... | ... | @@ -185,9 +182,6 @@ export const step3CreateAlarm: FormSchema[] = [ |
185 | 182 | onChange: (v) => { |
186 | 183 | isWhereType.value = v ? v : 'INDETERMINATE'; |
187 | 184 | }, |
188 | - onFocus: () => { | |
189 | - isLostFocux.value = false; | |
190 | - }, | |
191 | 185 | }; |
192 | 186 | }, |
193 | 187 | }, |
... | ... | @@ -224,7 +218,9 @@ export const alertContactsSchemas: FormSchema[] = [ |
224 | 218 | field: 'alarmContactId', |
225 | 219 | label: '告警通知联系人', |
226 | 220 | component: 'ApiSelect', |
221 | + required: true, | |
227 | 222 | componentProps: { |
223 | + mode: 'multiple', | |
228 | 224 | placeholder: '请选择告警通知联系人', |
229 | 225 | api: alarmContactGetPage, |
230 | 226 | labelField: 'username', |
... | ... | @@ -236,7 +232,9 @@ export const alertContactsSchemas: FormSchema[] = [ |
236 | 232 | field: 'messageMode', |
237 | 233 | label: '告警通知方式', |
238 | 234 | component: 'ApiSelect', |
235 | + required: true, | |
239 | 236 | componentProps: { |
237 | + mode: 'multiple', | |
240 | 238 | placeholder: '请选择告警通知方式', |
241 | 239 | api: findDictItemByCode, |
242 | 240 | params: { |
... | ... | @@ -256,7 +254,7 @@ export const formChangeDetailSchema: FormSchema[] = [ |
256 | 254 | component: 'Input', |
257 | 255 | defaultValue: '', |
258 | 256 | componentProps: { |
259 | - placeholder: '.', | |
257 | + placeholder: '', | |
260 | 258 | maxLength: 255, |
261 | 259 | }, |
262 | 260 | }, | ... | ... |
src/views/device/profiles/step/index.t.ts
renamed from
src/views/device/profile/step/index.t.ts
... | ... | @@ -17,7 +17,6 @@ |
17 | 17 | import { BasicForm, useForm } from '/@/components/Form/index'; |
18 | 18 | import { Input } from 'ant-design-vue'; |
19 | 19 | import { useConditionDrawerSchema } from '../config'; |
20 | - // import { screenLinkPageByDeptIdGetDevice } from '/@/api/ruleengine/ruleengineApi'; | |
21 | 20 | |
22 | 21 | export default defineComponent({ |
23 | 22 | components: { CollapseContainer, BasicForm, [Input.name]: Input }, |
... | ... | @@ -96,14 +95,6 @@ |
96 | 95 | }, |
97 | 96 | }); |
98 | 97 | }; |
99 | - // const editSelectDevice = (v) => { | |
100 | - // updateSchema({ | |
101 | - // field: 'entityId', | |
102 | - // componentProps: { | |
103 | - // options: v, | |
104 | - // }, | |
105 | - // }); | |
106 | - // }; | |
107 | 98 | return { |
108 | 99 | updateFieldDeviceId, |
109 | 100 | resetFieldsValueFunc, | ... | ... |
... | ... | @@ -293,7 +293,7 @@ export const useTriggerDrawerSchema: FormSchema[] = [ |
293 | 293 | placeholder: '属性触发', |
294 | 294 | options: [ |
295 | 295 | { label: '属性触发', value: 'ATTRIBUTE' }, |
296 | - { label: '上下线触发', value: 'TIME_SERIES' }, | |
296 | + // { label: '上下线触发', value: 'ATTRIBUTE' }, | |
297 | 297 | ], |
298 | 298 | }, |
299 | 299 | ifShow: ({ values }) => |
... | ... | @@ -302,25 +302,25 @@ export const useTriggerDrawerSchema: FormSchema[] = [ |
302 | 302 | !isHand(Reflect.get(values, 'triggerType')), |
303 | 303 | colProps: { span: 12 }, |
304 | 304 | }, |
305 | - { | |
306 | - field: 'key1', | |
307 | - label: '', | |
308 | - component: 'Select', | |
309 | - componentProps: { | |
310 | - placeholder: '请选择上下线', | |
311 | - options: [ | |
312 | - { label: '上下线', value: '1' }, | |
313 | - { label: '上线', value: '2' }, | |
314 | - { label: '下线', value: '3' }, | |
315 | - ], | |
316 | - }, | |
317 | - colProps: { span: 12 }, | |
318 | - ifShow: ({ values }) => | |
319 | - isUpAndDown(Reflect.get(values, 'type1')) && | |
320 | - !isTime(Reflect.get(values, 'triggerType')) && | |
321 | - !isScene(Reflect.get(values, 'triggerType')) && | |
322 | - !isHand(Reflect.get(values, 'triggerType')), | |
323 | - }, | |
305 | + // { | |
306 | + // field: 'key1', | |
307 | + // label: '', | |
308 | + // component: 'Select', | |
309 | + // componentProps: { | |
310 | + // placeholder: '请选择上下线', | |
311 | + // options: [ | |
312 | + // { label: '上下线', value: '1' }, | |
313 | + // { label: '上线', value: '2' }, | |
314 | + // { label: '下线', value: '3' }, | |
315 | + // ], | |
316 | + // }, | |
317 | + // colProps: { span: 12 }, | |
318 | + // ifShow: ({ values }) => | |
319 | + // isUpAndDown(Reflect.get(values, 'type1')) && | |
320 | + // !isTime(Reflect.get(values, 'triggerType')) && | |
321 | + // !isScene(Reflect.get(values, 'triggerType')) && | |
322 | + // !isHand(Reflect.get(values, 'triggerType')), | |
323 | + // }, | |
324 | 324 | { |
325 | 325 | field: 'type2', |
326 | 326 | label: '', |
... | ... | @@ -369,7 +369,6 @@ export const useTriggerDrawerSchema: FormSchema[] = [ |
369 | 369 | maxLength: 16, |
370 | 370 | placeholder: '请输入比较值', |
371 | 371 | }, |
372 | - | |
373 | 372 | ifShow: ({ values }) => |
374 | 373 | isWenDu(Reflect.get(values, 'type2')) && |
375 | 374 | !isUpAndDown(Reflect.get(values, 'type1')) && | ... | ... |
... | ... | @@ -6,7 +6,9 @@ |
6 | 6 | :rowSelection="{ type: 'checkbox' }" |
7 | 7 | > |
8 | 8 | <template #toolbar> |
9 | - <a-button type="primary" @click="handleAdd"> 新增场景联动 </a-button> | |
9 | + <a-button v-if="isSysadmin || isCustomer || isPlatform" type="primary" @click="handleAdd"> | |
10 | + 新增场景联动 | |
11 | + </a-button> | |
10 | 12 | <a-button color="error" @click="handleDeleteOrBatchDelete(null)" :disabled="hasBatchDelete"> |
11 | 13 | 批量删除 |
12 | 14 | </a-button> |
... | ... | @@ -18,11 +20,13 @@ |
18 | 20 | label: '编辑', |
19 | 21 | icon: 'clarity:note-edit-line', |
20 | 22 | onClick: handleEdit.bind(null, record), |
23 | + ifShow: isTenant, | |
21 | 24 | }, |
22 | 25 | { |
23 | 26 | label: '删除', |
24 | 27 | icon: 'ant-design:delete-outlined', |
25 | 28 | color: 'error', |
29 | + ifShow: isTenant, | |
26 | 30 | popConfirm: { |
27 | 31 | title: '是否确认删除', |
28 | 32 | confirm: handleDeleteOrBatchDelete.bind(null, record), |
... | ... | @@ -40,7 +44,7 @@ |
40 | 44 | </div> |
41 | 45 | </template> |
42 | 46 | <script lang="ts"> |
43 | - import { defineComponent, getCurrentInstance, ref } from 'vue'; | |
47 | + import { defineComponent, getCurrentInstance, ref, computed } from 'vue'; | |
44 | 48 | import { BasicTable, useTable, TableAction } from '/@/components/Table'; |
45 | 49 | import { useDrawer } from '/@/components/Drawer'; |
46 | 50 | import SceneLinkAgeDrawer from './useDrawer.vue'; |
... | ... | @@ -48,13 +52,22 @@ |
48 | 52 | import { useMessage } from '/@/hooks/web/useMessage'; |
49 | 53 | import { screenLinkPageGetApi, screenLinkPageDeleteApi } from '/@/api/ruleengine/ruleengineApi'; |
50 | 54 | import { useBatchDelete } from '/@/hooks/web/useBatchDelete'; |
55 | + import { RoleEnum } from '/@/enums/roleEnum'; | |
56 | + import { usePermission } from '/@/hooks/web/usePermission'; | |
57 | + import { useUserStore } from '/@/store/modules/user'; | |
51 | 58 | |
52 | 59 | export default defineComponent({ |
53 | 60 | name: 'Index', |
54 | 61 | components: { BasicTable, SceneLinkAgeDrawer, TableAction }, |
55 | 62 | emits: ['default', 'registerTable', 'registerDrawer', 'register'], |
56 | 63 | setup() { |
57 | - const { proxy } = getCurrentInstance(); | |
64 | + const { hasPermission } = usePermission(); | |
65 | + const userStore = useUserStore(); | |
66 | + const isTenant = computed(() => userStore.getRoleList.includes(RoleEnum.TENANT_ADMIN)); | |
67 | + const isCustomer = computed(() => userStore.getRoleList.includes(RoleEnum.CUSTOMER_USER)); | |
68 | + const isSysadmin = computed(() => userStore.getRoleList.includes(RoleEnum.SYS_ADMIN)); | |
69 | + const isPlatform = computed(() => userStore.getRoleList.includes(RoleEnum.PLATFORM_ADMIN)); | |
70 | + const { proxy } = getCurrentInstance() as any; | |
58 | 71 | const sceneLinkAgeDrawerRef: any = ref(null); |
59 | 72 | const { hasBatchDelete, handleDeleteOrBatchDelete, selectionOptions } = useBatchDelete( |
60 | 73 | screenLinkPageDeleteApi, |
... | ... | @@ -91,8 +104,6 @@ |
91 | 104 | }); |
92 | 105 | try { |
93 | 106 | setTimeout(() => { |
94 | - // proxy.$refs.sceneLinkAgeDrawerRef.defaultAddTrigger(); | |
95 | - // proxy.$refs.sceneLinkAgeDrawerRef.defaultAddCondition(); | |
96 | 107 | proxy.$refs.sceneLinkAgeDrawerRef.defaultAddAction(); |
97 | 108 | }, 50); |
98 | 109 | } catch (e) { |
... | ... | @@ -130,6 +141,12 @@ |
130 | 141 | reload(); |
131 | 142 | } |
132 | 143 | return { |
144 | + isPlatform, | |
145 | + isSysadmin, | |
146 | + isCustomer, | |
147 | + isTenant, | |
148 | + RoleEnum, | |
149 | + hasPermission, | |
133 | 150 | sceneLinkAgeDrawerRef, |
134 | 151 | useSelectionChange, |
135 | 152 | registerTable, | ... | ... |
1 | 1 | <template> |
2 | - <BasicDrawer | |
3 | - v-bind="$attrs" | |
4 | - @register="registerDrawer" | |
5 | - showFooter | |
6 | - :title="getTitle" | |
7 | - width="1000px" | |
8 | - @ok="handleSubmit" | |
9 | - @close="handleClose" | |
10 | - > | |
11 | - <div> | |
12 | - <BasicForm @register="registerForm" /> | |
13 | - <!-- 触发器 --> | |
14 | - <div style="border-radius: 4px"> | |
15 | - <template | |
16 | - v-for="(item, index) in isUpdate == false ? addTriggerPushData : editTriggerPushData" | |
17 | - :key="index" | |
18 | - > | |
19 | - <span style="display: none">{{ item + index }}</span> | |
20 | - <span style="position: relative; top: 3.2vh; left: 0.5vw">触发器 {{ index + 1 }}</span> | |
21 | - <div style="display: block"> | |
22 | - <AddTriggerForm | |
23 | - ref="refTriggerChild" | |
24 | - :editTriggerFather="isUpdate == false ? 1 : item" | |
25 | - :newFilterMapFather="isUpdate == false ? 1 : newFilterMap" | |
26 | - :deviceInfo="getDeviceInfo" | |
27 | - /> | |
28 | - </div> | |
29 | - <div style="height: 3vh"></div> | |
30 | - </template> | |
31 | - <div | |
32 | - style=" | |
33 | - display: flex; | |
34 | - width: 11vw; | |
35 | - height: 4vh; | |
36 | - flex-direction: row; | |
37 | - justify-content: space-between; | |
38 | - " | |
39 | - > | |
40 | - <div style="display: flex; width: 4vw; height: 4vh"> | |
41 | - <Button type="primary" style="border-radius: 2px" class="mt-5" @click="addTrigger" | |
42 | - >新增触发器</Button | |
43 | - > | |
44 | - </div> | |
45 | - <div style="display: flex; width: 4vw; height: 4vh"> | |
46 | - <Button | |
47 | - v-if="addTriggerPushData.length != 0 || editTriggerPushData.length != 0" | |
48 | - type="default" | |
49 | - style="border-radius: 2px; background-color: rgba(237, 111, 111, 1)" | |
50 | - class="mt-5" | |
51 | - @click="removeTrigger" | |
52 | - > | |
53 | - <span style="color: white">删除</span></Button | |
54 | - > | |
2 | + <div> | |
3 | + <BasicDrawer | |
4 | + v-bind="$attrs" | |
5 | + @register="registerDrawer" | |
6 | + showFooter | |
7 | + :title="getTitle" | |
8 | + width="1000px" | |
9 | + @ok="handleSubmit" | |
10 | + @close="handleClose" | |
11 | + > | |
12 | + <div> | |
13 | + <BasicForm @register="registerForm" /> | |
14 | + <!-- 触发器 --> | |
15 | + <div style="border-radius: 4px"> | |
16 | + <template | |
17 | + v-for="(item, index) in isUpdate == false ? addTriggerPushData : editTriggerPushData" | |
18 | + :key="index" | |
19 | + > | |
20 | + <span style="display: none">{{ item + index }}</span> | |
21 | + <span style="position: relative; top: 3.2vh; left: 0.5vw">触发器 {{ index + 1 }}</span> | |
22 | + <div style="display: block"> | |
23 | + <AddTriggerForm | |
24 | + ref="refTriggerChild" | |
25 | + :editTriggerFather="isUpdate == false ? 1 : item" | |
26 | + :newFilterMapFather="isUpdate == false ? 1 : newFilterMap" | |
27 | + :deviceInfo="getDeviceInfo" | |
28 | + /> | |
29 | + </div> | |
30 | + <div style="height: 3vh"></div> | |
31 | + </template> | |
32 | + <div | |
33 | + style=" | |
34 | + display: flex; | |
35 | + width: 11vw; | |
36 | + height: 4vh; | |
37 | + flex-direction: row; | |
38 | + justify-content: space-between; | |
39 | + " | |
40 | + > | |
41 | + <div style="display: flex; width: 4vw; height: 4vh"> | |
42 | + <Button type="primary" style="border-radius: 2px" class="mt-5" @click="addTrigger" | |
43 | + >新增触发器</Button | |
44 | + > | |
45 | + </div> | |
46 | + <div style="display: flex; width: 4vw; height: 4vh"> | |
47 | + <Button | |
48 | + v-if="addTriggerPushData.length != 0 || editTriggerPushData.length != 0" | |
49 | + type="default" | |
50 | + style="border-radius: 2px; background-color: rgba(237, 111, 111, 1)" | |
51 | + class="mt-5" | |
52 | + @click="removeTrigger" | |
53 | + > | |
54 | + <span style="color: white">删除</span></Button | |
55 | + > | |
56 | + </div> | |
55 | 57 | </div> |
56 | 58 | </div> |
57 | - </div> | |
58 | - <div style="height: 5vh"></div> | |
59 | - <!-- 执行条件 --> | |
60 | - <div style="border-radius: 4px" class="condition-style"> | |
61 | - <template | |
62 | - v-for="(item, index) in isUpdate == false ? addConditionPushData : editConditionPushData" | |
63 | - :key="index" | |
64 | - > | |
65 | - <span style="display: none">{{ item + index }}</span> | |
66 | - <span style="position: relative; top: 3.2vh; left: 0.5vw">执行条件 {{ index + 1 }}</span> | |
67 | - | |
68 | - <div> | |
69 | - <AddConditiForm | |
70 | - :editConditionFather="isUpdate == false ? 1 : item" | |
71 | - :newConditionMapFather="isUpdate == false ? 1 : newConditionFilterMap" | |
72 | - :deviceInfo1="getDeviceInfo1" | |
73 | - ref="refConditionChild" | |
74 | - /> | |
75 | - </div> | |
76 | - <div style="height: 3vh"></div> | |
77 | - </template> | |
78 | - <div | |
79 | - style=" | |
80 | - display: flex; | |
81 | - width: 11vw; | |
82 | - height: 4vh; | |
83 | - flex-direction: row; | |
84 | - justify-content: space-between; | |
85 | - " | |
86 | - > | |
87 | - <div style="display: flex; width: 4vw; height: 4vh"> | |
88 | - <Button type="primary" style="border-radius: 2px" class="mt-5" @click="addCondition" | |
89 | - >新增执行条件</Button | |
90 | - > | |
91 | - </div> | |
92 | - <div style="display: flex; width: 4vw; height: 4vh"> | |
93 | - <Button | |
94 | - v-if="addConditionPushData.length != 0 || editConditionPushData.length != 0" | |
95 | - style="border-radius: 2px; background-color: rgba(237, 111, 111, 1)" | |
96 | - type="default" | |
97 | - class="mt-5" | |
98 | - @click="removeCondition" | |
99 | - > | |
100 | - <span style="color: white">删除</span></Button | |
59 | + <div style="height: 5vh"></div> | |
60 | + <!-- 执行条件 --> | |
61 | + <div style="border-radius: 4px" class="condition-style"> | |
62 | + <template | |
63 | + v-for="(item, index) in isUpdate == false | |
64 | + ? addConditionPushData | |
65 | + : editConditionPushData" | |
66 | + :key="index" | |
67 | + > | |
68 | + <span style="display: none">{{ item + index }}</span> | |
69 | + <span style="position: relative; top: 3.2vh; left: 0.5vw" | |
70 | + >执行条件 {{ index + 1 }}</span | |
101 | 71 | > |
102 | - </div> | |
103 | - </div> | |
104 | - </div> | |
105 | - <!-- 执行动作 --> | |
106 | - <div style="height: 5vh"></div> | |
107 | - <div style="border-radius: 4px"> | |
108 | - <template | |
109 | - v-for="(item, index) in isUpdate == false ? addActionPushData : editActionPushData" | |
110 | - :key="index" | |
111 | - > | |
112 | - <span style="display: none">{{ item + index }}</span> | |
113 | - <span style="position: relative; top: 4.2vh; left: 0.65vw">执行动作 {{ index + 1 }}</span> | |
114 | 72 | |
115 | - <div> | |
116 | - <AddActionForm | |
117 | - :editActionFather="isUpdate == false ? 1 : item" | |
118 | - :newActionMapFather="isUpdate == false ? 1 : newActionFilterMap" | |
119 | - :deviceInfo2="getDeviceInfo2" | |
120 | - ref="refActionChild" | |
121 | - /> | |
122 | - </div> | |
123 | - <div style="height: 3vh"></div> | |
124 | - </template> | |
125 | - <div | |
126 | - style=" | |
127 | - display: flex; | |
128 | - width: 11vw; | |
129 | - height: 4vh; | |
130 | - flex-direction: row; | |
131 | - justify-content: space-between; | |
132 | - " | |
133 | - > | |
134 | - <div style="display: flex; width: 4vw; height: 4vh"> | |
135 | - <Button type="primary" style="border-radius: 2px" class="mt-5" @click="addAction" | |
136 | - >新增执行动作</Button | |
137 | - > | |
73 | + <div> | |
74 | + <AddConditiForm | |
75 | + :editConditionFather="isUpdate == false ? 1 : item" | |
76 | + :newConditionMapFather="isUpdate == false ? 1 : newConditionFilterMap" | |
77 | + :deviceInfo1="getDeviceInfo1" | |
78 | + ref="refConditionChild" | |
79 | + /> | |
80 | + </div> | |
81 | + <div style="height: 3vh"></div> | |
82 | + </template> | |
83 | + <div | |
84 | + style=" | |
85 | + display: flex; | |
86 | + width: 11vw; | |
87 | + height: 4vh; | |
88 | + flex-direction: row; | |
89 | + justify-content: space-between; | |
90 | + " | |
91 | + > | |
92 | + <div style="display: flex; width: 4vw; height: 4vh"> | |
93 | + <Button type="primary" style="border-radius: 2px" class="mt-5" @click="addCondition" | |
94 | + >新增执行条件</Button | |
95 | + > | |
96 | + </div> | |
97 | + <div style="display: flex; width: 4vw; height: 4vh"> | |
98 | + <Button | |
99 | + v-if="addConditionPushData.length != 0 || editConditionPushData.length != 0" | |
100 | + style="border-radius: 2px; background-color: rgba(237, 111, 111, 1)" | |
101 | + type="default" | |
102 | + class="mt-5" | |
103 | + @click="removeCondition" | |
104 | + > | |
105 | + <span style="color: white">删除</span></Button | |
106 | + > | |
107 | + </div> | |
138 | 108 | </div> |
139 | - <div style="display: flex; width: 4vw; height: 4vh"> | |
140 | - <Button | |
141 | - v-if="addActionPushData.length !== 0 || editActionPushData.length !== 0" | |
142 | - style="border-radius: 2px; background-color: rgba(237, 111, 111, 1)" | |
143 | - type="default" | |
144 | - class="mt-5" | |
145 | - @click="removeAction" | |
146 | - > | |
147 | - <span style="color: white">删除</span></Button | |
109 | + </div> | |
110 | + <!-- 执行动作 --> | |
111 | + <div style="height: 5vh"></div> | |
112 | + <div style="border-radius: 4px"> | |
113 | + <template | |
114 | + v-for="(item, index) in isUpdate == false ? addActionPushData : editActionPushData" | |
115 | + :key="index" | |
116 | + > | |
117 | + <span style="display: none">{{ item + index }}</span> | |
118 | + <span style="position: relative; top: 4.2vh; left: 0.65vw" | |
119 | + >执行动作 {{ index + 1 }}</span | |
148 | 120 | > |
121 | + | |
122 | + <div> | |
123 | + <AddActionForm | |
124 | + :editActionFather="isUpdate == false ? 1 : item" | |
125 | + :newActionMapFather="isUpdate == false ? 1 : newActionFilterMap" | |
126 | + :deviceInfo2="getDeviceInfo2" | |
127 | + ref="refActionChild" | |
128 | + /> | |
129 | + </div> | |
130 | + <div style="height: 3vh"></div> | |
131 | + </template> | |
132 | + <div | |
133 | + style=" | |
134 | + display: flex; | |
135 | + width: 11vw; | |
136 | + height: 4vh; | |
137 | + flex-direction: row; | |
138 | + justify-content: space-between; | |
139 | + " | |
140 | + > | |
141 | + <div style="display: flex; width: 4vw; height: 4vh"> | |
142 | + <Button type="primary" style="border-radius: 2px" class="mt-5" @click="addAction" | |
143 | + >新增执行动作</Button | |
144 | + > | |
145 | + </div> | |
146 | + <div style="display: flex; width: 4vw; height: 4vh"> | |
147 | + <Button | |
148 | + v-if="addActionPushData.length !== 0 || editActionPushData.length !== 0" | |
149 | + style="border-radius: 2px; background-color: rgba(237, 111, 111, 1)" | |
150 | + type="default" | |
151 | + class="mt-5" | |
152 | + @click="removeAction" | |
153 | + > | |
154 | + <span style="color: white">删除</span></Button | |
155 | + > | |
156 | + </div> | |
149 | 157 | </div> |
158 | + <div style="height: 5vh"></div> | |
150 | 159 | </div> |
151 | - <div style="height: 5vh"></div> | |
152 | 160 | </div> |
153 | - </div> | |
154 | - </BasicDrawer> | |
161 | + </BasicDrawer> | |
162 | + </div> | |
155 | 163 | </template> |
156 | 164 | <script lang="ts"> |
157 | 165 | import { defineComponent, ref, computed, unref, reactive, getCurrentInstance, watch } from 'vue'; |
... | ... | @@ -182,7 +190,7 @@ |
182 | 190 | }, |
183 | 191 | emits: ['success', 'register', 'registerForm'], |
184 | 192 | setup(_, { emit }) { |
185 | - const { proxy } = getCurrentInstance(); | |
193 | + const { proxy } = getCurrentInstance() as any; | |
186 | 194 | const lastEditRefTriggerChildDataArray = ref<[]>([]); |
187 | 195 | const lastRefTriggerChildDataArray = ref<[]>([]); |
188 | 196 | const lastRefConditionChildDataArray = ref<[]>([]); |
... | ... | @@ -301,7 +309,6 @@ |
301 | 309 | } |
302 | 310 | } else { |
303 | 311 | try { |
304 | - emit('success'); | |
305 | 312 | kongTriggerObj = {}; |
306 | 313 | kongConditionObj = {}; |
307 | 314 | kongActionObj = {}; |
... | ... | @@ -364,6 +371,7 @@ |
364 | 371 | } |
365 | 372 | }); |
366 | 373 | }); |
374 | + emit('success'); | |
367 | 375 | } catch (e) { |
368 | 376 | return e; |
369 | 377 | } |
... | ... | @@ -464,7 +472,7 @@ |
464 | 472 | let newTriggerArray = addTriggerPushData.value.concat(refTriggerChildData); |
465 | 473 | let newConditionArray = addConditionPushData.value.concat(refConditionChildData); |
466 | 474 | let newActionArray = addActionPushData.value.concat(refActionChildData); |
467 | - (newTriggerArray as any) = newTriggerArray.map((m) => { | |
475 | + (newTriggerArray as any) = newTriggerArray.map((m: any) => { | |
468 | 476 | return { |
469 | 477 | triggerType: m?.triggerType, |
470 | 478 | entityId: m?.entityId || m?.entityId1 || m?.entityId2, |
... | ... | @@ -492,7 +500,7 @@ |
492 | 500 | }, |
493 | 501 | }; |
494 | 502 | }); |
495 | - (newConditionArray as any) = newConditionArray.map((m) => { | |
503 | + (newConditionArray as any) = newConditionArray.map((m: any) => { | |
496 | 504 | return { |
497 | 505 | triggerType: m?.triggerType, |
498 | 506 | entityId: m?.entityId, |
... | ... | @@ -597,7 +605,6 @@ |
597 | 605 | getAllFormData.doActions.forEach((f) => { |
598 | 606 | isKongNum = Object.keys(f).length; |
599 | 607 | }); |
600 | - | |
601 | 608 | if (getAllFormData.doActions.length == 1 && isKongNum == 0) |
602 | 609 | return createMessage.error('请填写执行动作'); |
603 | 610 | Object.assign(getAllFormData, getValuesFormData); |
... | ... | @@ -626,7 +633,7 @@ |
626 | 633 | if (!unref(isUpdate)) { |
627 | 634 | refTriggerChildDataFunc(); |
628 | 635 | unref(addTriggerPushData).push(refTriggerChildData as never); |
629 | - (addTriggerPushData.value as any) = addTriggerPushData.value.map((m) => { | |
636 | + (addTriggerPushData.value as any) = addTriggerPushData.value.map((m: any) => { | |
630 | 637 | return { |
631 | 638 | triggerType: m?.triggerType, |
632 | 639 | entityId: m?.entityId || m?.entityId1 || m?.entityId2, |
... | ... | @@ -644,7 +651,7 @@ |
644 | 651 | value: { |
645 | 652 | defaultValue: Number(m.value) == null ? 0 : Number(m.value), |
646 | 653 | }, |
647 | - operation: m.operation == null ? 'GREATER_OR_EQUAL' : m.operation, | |
654 | + operation: m.operation == null ? 'EQUAL' : m.operation, | |
648 | 655 | }, |
649 | 656 | }, |
650 | 657 | ], |
... | ... | @@ -684,7 +691,7 @@ |
684 | 691 | value: { |
685 | 692 | defaultValue: Number(m.value) == null ? 0 : Number(m.value), |
686 | 693 | }, |
687 | - operation: m.operation == null ? 'GREATER_OR_EQUAL' : m.operation, | |
694 | + operation: m.operation == null ? 'EQUAL' : m.operation, | |
688 | 695 | }, |
689 | 696 | }, |
690 | 697 | ], |
... | ... | @@ -725,7 +732,7 @@ |
725 | 732 | if (!unref(isUpdate)) { |
726 | 733 | refConditionChildDataFunc(); |
727 | 734 | unref(addConditionPushData).push(refConditionChildData as never); |
728 | - (addConditionPushData.value as any) = addConditionPushData.value.map((m) => { | |
735 | + (addConditionPushData.value as any) = addConditionPushData.value.map((m: any) => { | |
729 | 736 | return { |
730 | 737 | triggerType: m?.triggerType, |
731 | 738 | entityId: m?.entityId, | ... | ... |