Commit ac20103a2ac946f779d639563109429a73894bae

Authored by fengistao
1 parent 00427eef

feat:设备配置新增清除报警,wip:设备配置键名筛选器待修改预览

@@ -19,13 +19,13 @@ @@ -19,13 +19,13 @@
19 <DeviceProfileStep1 19 <DeviceProfileStep1
20 ref="DeviceProfileStep1Ref" 20 ref="DeviceProfileStep1Ref"
21 @next="handleStepNext1" 21 @next="handleStepNext1"
22 - v-if="current === 0" 22 + v-show="current === 0"
23 /> 23 />
24 <DeviceProfileStep2 24 <DeviceProfileStep2
25 ref="DeviceProfileStep2Ref" 25 ref="DeviceProfileStep2Ref"
26 @prev="handleStepPrev" 26 @prev="handleStepPrev"
27 @next="handleStep2Next" 27 @next="handleStep2Next"
28 - v-if="current === 1" 28 + v-show="current === 1"
29 /> 29 />
30 <DeviceProfileStep3 30 <DeviceProfileStep3
31 ref="DeviceProfileStep3Ref" 31 ref="DeviceProfileStep3Ref"
@@ -34,7 +34,11 @@ @@ -34,7 +34,11 @@
34 @redo="handleRedo" 34 @redo="handleRedo"
35 v-if="current === 2" 35 v-if="current === 2"
36 /> 36 />
37 - <DeviceProfileStep4 ref="DeviceProfileStep4Ref" @prev="handleStepPrev" v-if="current === 3" /> 37 + <DeviceProfileStep4
  38 + ref="DeviceProfileStep4Ref"
  39 + @prev="handleStepPrev"
  40 + v-show="current === 3"
  41 + />
38 </div> 42 </div>
39 </BasicModal> 43 </BasicModal>
40 </template> 44 </template>
@@ -87,20 +91,20 @@ @@ -87,20 +91,20 @@
87 isUpdate.value = !!data?.isUpdate; 91 isUpdate.value = !!data?.isUpdate;
88 if (!unref(isUpdate)) { 92 if (!unref(isUpdate)) {
89 current.value = 0; 93 current.value = 0;
90 - // switch (current.value) {  
91 - // case 0:  
92 - // proxy.$refs.DeviceProfileStep1Ref.customResetFunc();  
93 - // break;  
94 - // case 1:  
95 - // proxy.$refs.DeviceProfileStep2Ref.customResetAndFunc();  
96 - // break;  
97 - // case 2:  
98 - // // proxy.$refs.DeviceProfileStep3Ref.customResetFunc();  
99 - // // break;  
100 - // case 3:  
101 - // proxy.$refs.DeviceProfileStep4Ref.customResetAndFunc();  
102 - // break;  
103 - // } 94 + switch (current.value) {
  95 + case 0:
  96 + proxy.$refs.DeviceProfileStep1Ref.customResetFunc();
  97 + break;
  98 + case 1:
  99 + proxy.$refs.DeviceProfileStep2Ref.customResetAndFunc();
  100 + break;
  101 + case 2:
  102 + // proxy.$refs.DeviceProfileStep3Ref.customResetFunc();
  103 + // break;
  104 + case 3:
  105 + proxy.$refs.DeviceProfileStep4Ref.customResetAndFunc();
  106 + break;
  107 + }
104 } 108 }
105 if (unref(isUpdate)) { 109 if (unref(isUpdate)) {
106 current.value = 0; 110 current.value = 0;
@@ -8,7 +8,7 @@ @@ -8,7 +8,7 @@
8 @register="register" 8 @register="register"
9 :title="getTitle" 9 :title="getTitle"
10 > 10 >
11 - <Tabs v-model:activeKey="activeKey"> 11 + <Tabs @change="handleChange" v-model:activeKey="activeKey">
12 <TabPane key="1" tab="详情"> 12 <TabPane key="1" tab="详情">
13 <BasicForm 13 <BasicForm
14 :showSubmitButton="false" 14 :showSubmitButton="false"
@@ -94,26 +94,6 @@ @@ -94,26 +94,6 @@
94 const isUpdate = ref(true); 94 const isUpdate = ref(true);
95 const descInfo: any = ref(null); 95 const descInfo: any = ref(null);
96 const dataInfo: any = ref(''); 96 const dataInfo: any = ref('');
97 - watch(  
98 - () => activeKey.value,  
99 - (v) => {  
100 - dataInfo.value = v;  
101 - // switch (dataInfo.value) {  
102 - // case '1':  
103 - // console.log(1);  
104 - // break;  
105 - // case '2':  
106 - // console.log(2);  
107 - // break;  
108 - // case '3':  
109 - // console.log(3);  
110 - // break;  
111 - // case '4':  
112 - // console.log(4);  
113 - // break;  
114 - // }  
115 - }  
116 - );  
117 const [registerDetail, { setFieldsValue: setRegisterDetail }] = useForm({ 97 const [registerDetail, { setFieldsValue: setRegisterDetail }] = useForm({
118 schemas: step1Schemas, 98 schemas: step1Schemas,
119 actionColOptions: { 99 actionColOptions: {
@@ -182,24 +162,92 @@ @@ -182,24 +162,92 @@
182 descInfo.value = await deviceConfigGetDetail(data.record.id); 162 descInfo.value = await deviceConfigGetDetail(data.record.id);
183 try { 163 try {
184 await setRegisterDetail({ ...descInfo.value }); 164 await setRegisterDetail({ ...descInfo.value });
185 - await setRegisterTrans({ ...descInfo.value });  
186 - await setRegisterStep3Schemas({ ...descInfo.value });  
187 - await setRegisterStep3HighSetting({ ...descInfo.value });  
188 - await setRegisterStep3CreateAlarm({ ...descInfo.value });  
189 - await setRegisterStep3RuleAlarm({ ...descInfo.value });  
190 - await setRegisterContact({ ...descInfo.value });  
191 - await setRegisterStep3Condition({ ...descInfo.value });  
192 - await setRegisterStep3Enable({ ...descInfo.value });  
193 - await setRegisterStep3TemplateDetail({ ...descInfo.value }); 165 + // await setRegisterTrans({
  166 + // transportType: descInfo.value.profileData.transportConfiguration.type,
  167 + // });
  168 + // await setRegisterStep3Schemas({
  169 + // alarmType: descInfo.value.profileData.alarms[0].alarmType,
  170 + // });
  171 + // await setRegisterStep3HighSetting({
  172 + // propagate: descInfo.value.profileData.alarms[0].propagate,
  173 + // propagateRelationTypes: descInfo.value.profileData.alarms[0].propagateRelationTypes[0],
  174 + // });
  175 + // await setRegisterStep3CreateAlarm({ ...descInfo.value });
  176 + // await setRegisterStep3RuleAlarm({ ...descInfo.value });
  177 + // await setRegisterContact({ ...descInfo.value });
  178 + // await setRegisterStep3Condition({ ...descInfo.value });
  179 + // await setRegisterStep3Enable({ ...descInfo.value });
  180 + // await setRegisterStep3TemplateDetail({ ...descInfo.value });
194 } catch (e) { 181 } catch (e) {
195 return e; 182 return e;
196 } 183 }
197 }); 184 });
  185 + const handleChange = (v) => {
  186 + switch (v) {
  187 + case '1':
  188 + setRegisterDetail({ ...descInfo.value });
  189 + break;
  190 + case '2':
  191 + setRegisterTrans({
  192 + transportType: descInfo.value.profileData.transportConfiguration.type,
  193 + });
  194 + break;
  195 + case '3':
  196 + setRegisterStep3Schemas({
  197 + alarmType: descInfo.value.profileData.alarms[0].alarmType,
  198 + });
  199 + setRegisterStep3HighSetting({
  200 + propagate: descInfo.value.profileData.alarms[0].propagate,
  201 + propagateRelationTypes:
  202 + descInfo.value.profileData.alarms[0].propagateRelationTypes[0],
  203 + });
  204 + const getKey = Object.keys(descInfo.value.profileData.alarms[0].createRules);
  205 + console.log(descInfo.value.profileData.alarms[0].createRules[getKey[0]]);
  206 + // console.log(descInfo.value.profileData.alarms[0].createRules.MAJOR);
  207 + // console.log(descInfo.value.profileData.alarms[0].createRules['MAJOR']);
  208 + setRegisterStep3CreateAlarm({
  209 + MAJOR: descInfo.value.profileData.alarms[0].createRules[getKey[0]] + '',
  210 + });
  211 + setRegisterStep3RuleAlarm({
  212 + type: descInfo.value.profileData.alarms[0].createRules[getKey[0]].condition.condition
  213 + .key.type,
  214 + key: descInfo.value.profileData.alarms[0].createRules[getKey[0]].condition.condition
  215 + .key.key,
  216 + valueType:
  217 + descInfo.value.profileData.alarms[0].createRules[getKey[0]].condition.condition
  218 + .valueType,
  219 + });
  220 + setRegisterStep3Condition({
  221 + conditionType:
  222 + descInfo.value.profileData.alarms[0].createRules[getKey[0]].condition.spec.type,
  223 + });
  224 + setRegisterStep3Enable({
  225 + schedule: descInfo.value.profileData.alarms[0].createRules[getKey[0]].schedule,
  226 + });
  227 + setRegisterStep3TemplateDetail({
  228 + alarmDetails: descInfo.value.profileData.alarms[0].createRules,
  229 + });
  230 + break;
  231 + case '4':
  232 + setRegisterContact({
  233 + alarmContactId: descInfo.value.alarmProfile.alarmContactId,
  234 + messageMode: descInfo.value.alarmProfile.messageMode,
  235 + });
  236 + break;
  237 + }
  238 + };
  239 + watch(
  240 + () => activeKey.value,
  241 + (v) => {
  242 + dataInfo.value = v;
  243 + }
  244 + );
198 const getTitle = computed(() => { 245 const getTitle = computed(() => {
199 return '设备配置详情'; 246 return '设备配置详情';
200 }); 247 });
201 248
202 return { 249 return {
  250 + handleChange,
203 registerStep3TemplateDetail, 251 registerStep3TemplateDetail,
204 registerStep3Enable, 252 registerStep3Enable,
205 registerStep3Condition, 253 registerStep3Condition,
@@ -45,7 +45,7 @@ @@ -45,7 +45,7 @@
45 const customResetFunc = async () => { 45 const customResetFunc = async () => {
46 await resetFields(); 46 await resetFields();
47 }; 47 };
48 - return { register, customResetFunc, resetFieldsFunc }; 48 + return { register, resetFieldsFunc, customResetFunc };
49 }, 49 },
50 }); 50 });
51 </script> 51 </script>
@@ -70,30 +70,33 @@ @@ -70,30 +70,33 @@
70 > 70 >
71 <div style="height: 20px"></div> 71 <div style="height: 20px"></div>
72 <p>清除报警规则</p> 72 <p>清除报警规则</p>
73 - <template v-for="(childItem, createIndex) in item.alarms" :key="childItem.id"> 73 + <template v-for="(childItem, createIndex) in item.clearAlarms" :key="childItem.id">
74 <div class="aic mb-4" style="border: 1px solid #bfbfbf"> 74 <div class="aic mb-4" style="border: 1px solid #bfbfbf">
75 <div class="w-3/4"> 75 <div class="w-3/4">
76 <div style="margin-left: 5px"> 76 <div style="margin-left: 5px">
77 <p style="color: #f5594e" class="mt-4 ml-4" 77 <p style="color: #f5594e" class="mt-4 ml-4"
78 >请添加报警规则条件 78 >请添加报警规则条件
79 <PlusOutlined 79 <PlusOutlined
80 - @click="handleOpenAlaramRuleConditions" 80 + @click="handleOpenClearAlaramRuleConditions"
81 class="cursor-pointer ml-4" 81 class="cursor-pointer ml-4"
82 style="font-size: 20px" 82 style="font-size: 20px"
83 - /></p> 83 + />{{ ruleClearTemplateData }}</p
  84 + >
84 <p class="mt-4 ml-4" 85 <p class="mt-4 ml-4"
85 >启用规则:始终启用 86 >启用规则:始终启用
86 <EditOutlined 87 <EditOutlined
87 - @click="handleOpenEnableRule" 88 + @click="handleOpenClearEnableRule"
88 class="cursor-pointer ml-4" 89 class="cursor-pointer ml-4"
89 style="font-size: 20px" 90 style="font-size: 20px"
90 - /></p> 91 + />{{ enableClearTemplateData }}</p
  92 + >
91 <p class="mt-4 ml-4" 93 <p class="mt-4 ml-4"
92 >详情模板:<EditOutlined 94 >详情模板:<EditOutlined
93 - @click="handleOpenDetailTemplate" 95 + @click="handleOpenClearDetailTemplate"
94 class="cursor-pointer ml-4" 96 class="cursor-pointer ml-4"
95 style="font-size: 20px" 97 style="font-size: 20px"
96 - /></p> 98 + />{{ detailClearTemplateData }}</p
  99 + >
97 <div style="margin-left: 16px"> 100 <div style="margin-left: 16px">
98 <BasicForm @register="dashboardForm" /> 101 <BasicForm @register="dashboardForm" />
99 </div> 102 </div>
@@ -104,13 +107,13 @@ @@ -104,13 +107,13 @@
104 <MinusCircleOutlined 107 <MinusCircleOutlined
105 style="font-size: 25px; color: #305680" 108 style="font-size: 25px; color: #305680"
106 class="cursor-pointer" 109 class="cursor-pointer"
107 - @click="deleteCondition(index, createIndex)" 110 + @click="deleteClearCondition(index, createIndex)"
108 /> 111 />
109 </Tooltip> 112 </Tooltip>
110 </div> 113 </div>
111 </div> 114 </div>
112 </template> 115 </template>
113 - <a-button class="mt-5" @click="addCreateRole(index)" 116 + <a-button class="mt-5" @click="addClearRole(index)"
114 ><PlusCircleOutlined />添加清除条件</a-button 117 ><PlusCircleOutlined />添加清除条件</a-button
115 > 118 >
116 </CollapseContainer> 119 </CollapseContainer>
@@ -141,6 +144,28 @@ @@ -141,6 +144,28 @@
141 @getAllFieldsRule="getAllFieldsRuleFunc" 144 @getAllFieldsRule="getAllFieldsRuleFunc"
142 @register="registerModal3" 145 @register="registerModal3"
143 /> 146 />
  147 +
  148 + <!-- 清除条件的 -->
  149 + <!-- 详情模板 -->
  150 + <DetailTemplate
  151 + v-if="isRuleAlarmRuleConditions == 4"
  152 + @getAllFields="getAllClearFieldsFunc"
  153 + @register="registerModal4"
  154 + />
  155 + <!-- 启用规则 -->
  156 + <EnableRule
  157 + v-if="isRuleAlarmRuleConditions == 5"
  158 + ref="getChildData2"
  159 + @getAllFieldsEnab="getAllClearFieldsEnabFunc"
  160 + @register="registerModal5"
  161 + />
  162 + <!-- 报警规则条件 -->
  163 + <AlarmRuleConditions
  164 + v-if="isRuleAlarmRuleConditions == 6"
  165 + ref="getChildData3"
  166 + @getAllFieldsRule="getAllClearFieldsRuleFunc"
  167 + @register="registerModal6"
  168 + />
144 </template> 169 </template>
145 170
146 <script lang="ts"> 171 <script lang="ts">
@@ -202,6 +227,9 @@ @@ -202,6 +227,9 @@
202 const ruleTemplateData: any = ref(null); 227 const ruleTemplateData: any = ref(null);
203 const enableTemplateData: any = ref(null); 228 const enableTemplateData: any = ref(null);
204 const detailTemplateData: any = ref(null); 229 const detailTemplateData: any = ref(null);
  230 + const ruleClearTemplateData: any = ref(null);
  231 + const enableClearTemplateData: any = ref(null);
  232 + const detailClearTemplateData: any = ref(null);
205 //告警列表 233 //告警列表
206 let profileData = ref<alarmListItem[]>([]); 234 let profileData = ref<alarmListItem[]>([]);
207 const log = (e) => { 235 const log = (e) => {
@@ -232,6 +260,15 @@ @@ -232,6 +260,15 @@
232 propagateRelationTypes: [''], 260 propagateRelationTypes: [''],
233 }, 261 },
234 ], 262 ],
  263 + clearAlarms: [
  264 + {
  265 + id: Date.now() + Math.random(),
  266 + alarmType: '',
  267 + clearRules: {},
  268 + propagate: true,
  269 + propagateRelationTypes: [''],
  270 + },
  271 + ],
235 }); 272 });
236 }; 273 };
237 //Mobile dashboard: 274 //Mobile dashboard:
@@ -248,7 +285,6 @@ @@ -248,7 +285,6 @@
248 showResetButton: false, 285 showResetButton: false,
249 showSubmitButton: false, 286 showSubmitButton: false,
250 }); 287 });
251 -  
252 // 高级设置 288 // 高级设置
253 const [registerFormHighSetting, { validate: validateRegisterFormHighSetting }] = useForm({ 289 const [registerFormHighSetting, { validate: validateRegisterFormHighSetting }] = useForm({
254 labelWidth: 120, 290 labelWidth: 120,
@@ -259,7 +295,6 @@ @@ -259,7 +295,6 @@
259 span: 24, 295 span: 24,
260 }, 296 },
261 }); 297 });
262 -  
263 // 添加创建条件表单 298 // 添加创建条件表单
264 const [registerFormCreateAlarm, { validate: validateRegisterFormCreateAlarm }] = useForm({ 299 const [registerFormCreateAlarm, { validate: validateRegisterFormCreateAlarm }] = useForm({
265 labelWidth: 120, 300 labelWidth: 120,
@@ -270,7 +305,6 @@ @@ -270,7 +305,6 @@
270 span: 24, 305 span: 24,
271 }, 306 },
272 }); 307 });
273 -  
274 // 添加‘创建条件’ 308 // 添加‘创建条件’
275 const addCreateRole = (index: number) => { 309 const addCreateRole = (index: number) => {
276 unref(profileData)[index].alarms.push({ 310 unref(profileData)[index].alarms.push({
@@ -286,6 +320,21 @@ @@ -286,6 +320,21 @@
286 const deleteCondition = (index: number, createIndex: number) => { 320 const deleteCondition = (index: number, createIndex: number) => {
287 profileData.value[index].alarms.splice(createIndex, 1); 321 profileData.value[index].alarms.splice(createIndex, 1);
288 }; 322 };
  323 + // 添加‘清除条件’
  324 + const addClearRole = (index: number) => {
  325 + unref(profileData)[index].clearAlarms.push({
  326 + id: Date.now() + Math.random(),
  327 + alarmVisible: false,
  328 + addKeyFilterVisible: false,
  329 + detailVisible: false,
  330 + detail: '',
  331 + filterList: [],
  332 + });
  333 + };
  334 + // 删除‘清除条件’
  335 + const deleteClearCondition = (index: number, createIndex: number) => {
  336 + profileData.value[index].clearAlarms.splice(createIndex, 1);
  337 + };
289 watch(isWhereType, (nV) => { 338 watch(isWhereType, (nV) => {
290 isWhereTypeValue.value = nV; 339 isWhereTypeValue.value = nV;
291 }); 340 });
@@ -368,6 +417,125 @@ @@ -368,6 +417,125 @@
368 ruleTemplateData.value = ` 417 ruleTemplateData.value = `
369 键名:${v.key}...操作:${findRuleByValue?.label}...值:${v.value1} 418 键名:${v.key}...操作:${findRuleByValue?.label}...值:${v.value1}
370 `; 419 `;
  420 +
  421 + ruleLastObj.value = v1;
  422 + const predicate = {
  423 + operation: ruleObj.value.operation,
  424 + value: {
  425 + defaultValue: Number(ruleObj.value.value1),
  426 + },
  427 + type: ruleObj.value.type1,
  428 + };
  429 + const spec1 = {
  430 + type: ruleLastObj.value.conditionType,
  431 + // unit: ruleLastObj.value.unit,
  432 + // predicate: {
  433 + // defaultValue: Number(ruleLastObj.value.defaultValue),
  434 + // dynamicValue: {
  435 + // sourceType: ruleLastObj.value.sourceType,
  436 + // sourceAttribute: ruleLastObj.value.sourceAttribute,
  437 + // inherit: ruleLastObj.value.inherit,
  438 + // },
  439 + // },
  440 + };
  441 + const getCondition = {
  442 + condition: [
  443 + {
  444 + key: {
  445 + type: ruleObj.value?.type,
  446 + key: ruleObj.value?.key,
  447 + },
  448 + valueType: ruleObj.value.type1,
  449 + predicate,
  450 + },
  451 + ],
  452 + spec: spec1,
  453 + };
  454 + const getValueConditon = {
  455 + condition: getCondition,
  456 + };
  457 + Object.assign(additionalObj.value, getValueConditon);
  458 + };
  459 + //清除条件
  460 + //详情模板
  461 + const getAllClearFieldsFunc = (v) => {
  462 + detailObj.value = v;
  463 + detailClearTemplateData.value = `
  464 + 报警详细信息:${v.alarmDetails}
  465 + `;
  466 + };
  467 + //启用规则
  468 + const getAllClearFieldsEnabFunc = (v) => {
  469 + enableObj.value = v;
  470 + const findDay = [
  471 + {
  472 + label: '星期一',
  473 + value: '1',
  474 + },
  475 + {
  476 + label: '星期二',
  477 + value: '2',
  478 + },
  479 + {
  480 + label: '星期三',
  481 + value: '3',
  482 + },
  483 + {
  484 + label: '星期四',
  485 + value: '4',
  486 + },
  487 + {
  488 + label: '星期五',
  489 + value: '5',
  490 + },
  491 + {
  492 + label: '星期六',
  493 + value: '6',
  494 + },
  495 + {
  496 + label: '星期七',
  497 + value: '7',
  498 + },
  499 + ];
  500 + const findDayByValue = findDay.map((f, i) => {
  501 + try {
  502 + if (f.value == v.daysOfWeek[i]) {
  503 + return f.label;
  504 + }
  505 + } catch (e) {
  506 + console.log(e);
  507 + }
  508 + });
  509 + enableClearTemplateData.value = `
  510 + 开始时间:${v.startsOn}结束时间:${v.endsOn}天数:${findDayByValue}
  511 + `;
  512 + };
  513 + //规则条件
  514 + const getAllClearFieldsRuleFunc = (v, v1) => {
  515 + ruleObj.value = v;
  516 + const findDay = [
  517 + { label: '等于', value: 'EQUAL' },
  518 + { label: '不等于', value: 'NOT_EQUAL' },
  519 + { label: '开始于', value: 'STARTS_WITH' },
  520 + { label: '结束于', value: 'ENDS_WITH' },
  521 + { label: '包含', value: 'CONTAINS' },
  522 + { label: '不包含', value: 'NOT_CONTAINS' },
  523 + { label: '等于', value: 'EQUAL' },
  524 + { label: '不等于', value: 'NOT_EQUAL' },
  525 + { label: '大于', value: 'GREATER' },
  526 + { label: '小于', value: 'LESS' },
  527 + { label: '大于或等于', value: 'GREATER_OR_EQUAL' },
  528 + { label: '小于或等于', value: 'LESS_OR_EQUAL' },
  529 + ];
  530 + const findRuleByValue = findDay.find((f) => {
  531 + if (f.value == v.operation) {
  532 + return f.label;
  533 + }
  534 + });
  535 + ruleClearTemplateData.value = `
  536 + 键名:${v.key}...操作:${findRuleByValue?.label}...值:${v.value1}
  537 + `;
  538 +
371 ruleLastObj.value = v1; 539 ruleLastObj.value = v1;
372 const predicate = { 540 const predicate = {
373 operation: ruleObj.value.operation, 541 operation: ruleObj.value.operation,
@@ -425,6 +593,11 @@ @@ -425,6 +593,11 @@
425 getAdditionalProp, 593 getAdditionalProp,
426 additionalObj.value 594 additionalObj.value
427 ); 595 );
  596 + const getScheduleAndClearAlarmDetails = Object.assign(
  597 + {},
  598 + getAdditionalProp,
  599 + additionalObj.value
  600 + );
428 const getIsWhereTypeValue: any = isWhereTypeValue.value; 601 const getIsWhereTypeValue: any = isWhereTypeValue.value;
429 const getAdditionalPropObj = { 602 const getAdditionalPropObj = {
430 [getIsWhereTypeValue]: getScheduleAndAlarmDetails, 603 [getIsWhereTypeValue]: getScheduleAndAlarmDetails,
@@ -432,23 +605,25 @@ @@ -432,23 +605,25 @@
432 const getCreateRulesAllObj = { 605 const getCreateRulesAllObj = {
433 createRules: getAdditionalPropObj, 606 createRules: getAdditionalPropObj,
434 }; 607 };
  608 + const getClearRulesAllObj = {
  609 + clearRule: getScheduleAndClearAlarmDetails,
  610 + };
435 const valueRegisterForm = await validateRegisterForm(); 611 const valueRegisterForm = await validateRegisterForm();
436 const valueRegisterFormAndId = { 612 const valueRegisterFormAndId = {
437 alarmType: Object.values(valueRegisterForm)[0], 613 alarmType: Object.values(valueRegisterForm)[0],
438 }; 614 };
439 -  
440 const valueRegisterFormHighSetting = await validateRegisterFormHighSetting(); 615 const valueRegisterFormHighSetting = await validateRegisterFormHighSetting();
441 // const valueRegisterFormCreateAlarm = await validateRegisterFormCreateAlarm(); 616 // const valueRegisterFormCreateAlarm = await validateRegisterFormCreateAlarm();
442 const getValueRegisterFormHighSetting = { 617 const getValueRegisterFormHighSetting = {
443 propagate: valueRegisterFormHighSetting?.propagate, 618 propagate: valueRegisterFormHighSetting?.propagate,
444 propagateRelationTypes: [valueRegisterFormHighSetting?.propagateRelationTypes], 619 propagateRelationTypes: [valueRegisterFormHighSetting?.propagateRelationTypes],
445 }; 620 };
446 -  
447 Object.assign( 621 Object.assign(
448 emptyObj.value, 622 emptyObj.value,
449 valueRegisterFormAndId, 623 valueRegisterFormAndId,
450 getValueRegisterFormHighSetting, 624 getValueRegisterFormHighSetting,
451 - getCreateRulesAllObj 625 + getCreateRulesAllObj,
  626 + getClearRulesAllObj
452 ); 627 );
453 alarmss.value.push(emptyObj.value); 628 alarmss.value.push(emptyObj.value);
454 const getAlarms = { 629 const getAlarms = {
@@ -458,35 +633,70 @@ @@ -458,35 +633,70 @@
458 emit('next', getAllFormData.value); 633 emit('next', getAllFormData.value);
459 } catch (error) {} 634 } catch (error) {}
460 }; 635 };
461 -  
462 const [registerModal1, { openModal: openModal1 }] = useModal(); 636 const [registerModal1, { openModal: openModal1 }] = useModal();
463 const [registerModal2, { openModal: openModal2 }] = useModal(); 637 const [registerModal2, { openModal: openModal2 }] = useModal();
464 const [registerModal3, { openModal: openModal3 }] = useModal(); 638 const [registerModal3, { openModal: openModal3 }] = useModal();
465 - 639 + const [registerModal4, { openModal: openModal4 }] = useModal();
  640 + const [registerModal5, { openModal: openModal5 }] = useModal();
  641 + const [registerModal6, { openModal: openModal6 }] = useModal();
466 const handleOpenDetailTemplate = () => { 642 const handleOpenDetailTemplate = () => {
467 isRuleAlarmRuleConditions.value = 1; 643 isRuleAlarmRuleConditions.value = 1;
468 setTimeout(() => { 644 setTimeout(() => {
469 openModal1(true); 645 openModal1(true);
  646 + proxy.$refs.getChildData1.resetDataFunc();
470 }, 50); 647 }, 50);
471 }; 648 };
472 const handleOpenEnableRule = () => { 649 const handleOpenEnableRule = () => {
473 isRuleAlarmRuleConditions.value = 2; 650 isRuleAlarmRuleConditions.value = 2;
474 setTimeout(() => { 651 setTimeout(() => {
475 openModal2(true); 652 openModal2(true);
  653 + proxy.$refs.getChildData2.resetDataFunc();
476 }, 50); 654 }, 50);
477 }; 655 };
478 const handleOpenAlaramRuleConditions = () => { 656 const handleOpenAlaramRuleConditions = () => {
479 isRuleAlarmRuleConditions.value = 3; 657 isRuleAlarmRuleConditions.value = 3;
480 setTimeout(() => { 658 setTimeout(() => {
481 openModal3(true); 659 openModal3(true);
  660 + proxy.$refs.getChildData3.resetDataFunc();
  661 + }, 50);
  662 + };
  663 + const handleOpenClearDetailTemplate = () => {
  664 + isRuleAlarmRuleConditions.value = 4;
  665 + setTimeout(() => {
  666 + openModal4(true);
  667 + proxy.$refs.getChildData1.resetDataFunc();
  668 + }, 50);
  669 + };
  670 + const handleOpenClearEnableRule = () => {
  671 + isRuleAlarmRuleConditions.value = 5;
  672 + setTimeout(() => {
  673 + openModal5(true);
  674 + proxy.$refs.getChildData2.resetDataFunc();
  675 + }, 50);
  676 + };
  677 + const handleOpenClearAlaramRuleConditions = () => {
  678 + isRuleAlarmRuleConditions.value = 6;
  679 + setTimeout(() => {
  680 + openModal6(true);
  681 + proxy.$refs.getChildData3.resetDataFunc();
482 }, 50); 682 }, 50);
483 }; 683 };
484 -  
485 return { 684 return {
  685 + ruleClearTemplateData,
  686 + enableClearTemplateData,
  687 + detailClearTemplateData,
  688 + handleOpenClearDetailTemplate,
  689 + handleOpenClearEnableRule,
  690 + handleOpenClearAlaramRuleConditions,
  691 + addClearRole,
  692 + deleteClearCondition,
486 detailTemplateData, 693 detailTemplateData,
487 enableTemplateData, 694 enableTemplateData,
488 ruleTemplateData, 695 ruleTemplateData,
489 dashboardForm, 696 dashboardForm,
  697 + getAllClearFieldsRuleFunc,
  698 + getAllClearFieldsEnabFunc,
  699 + getAllClearFieldsFunc,
490 getAllFieldsRuleFunc, 700 getAllFieldsRuleFunc,
491 getAllFieldsEnabFunc, 701 getAllFieldsEnabFunc,
492 getAllFieldsFunc, 702 getAllFieldsFunc,
@@ -497,6 +707,9 @@ @@ -497,6 +707,9 @@
497 registerModal1, 707 registerModal1,
498 registerModal2, 708 registerModal2,
499 registerModal3, 709 registerModal3,
  710 + registerModal4,
  711 + registerModal5,
  712 + registerModal6,
500 handleOpenEnableRule, 713 handleOpenEnableRule,
501 handleOpenAlaramRuleConditions, 714 handleOpenAlaramRuleConditions,
502 handleOpenDetailTemplate, 715 handleOpenDetailTemplate,
@@ -60,16 +60,16 @@ export const formSchema: FormSchema[] = [ @@ -60,16 +60,16 @@ export const formSchema: FormSchema[] = [
60 field: 'key', 60 field: 'key',
61 label: '键名', 61 label: '键名',
62 colProps: { span: 24 }, 62 colProps: { span: 24 },
63 - component: 'Select', 63 + component: 'Input',
64 componentProps: { 64 componentProps: {
65 - placeholder: '请选择键名',  
66 - options: [  
67 - { label: 'active', value: 'active' },  
68 - { label: 'inactivityAlarmTime', value: 'inactivityAlarmTime' },  
69 - { label: 'lastActivityTime', value: 'lastActivityTime' },  
70 - { label: 'lastConnectTime', value: 'lastConnectTime' },  
71 - { label: 'lastDisconnectTime', value: 'lastDisconnectTime' },  
72 - ], 65 + placeholder: '请输入键名',
  66 + // options: [
  67 + // { label: 'active', value: 'active' },
  68 + // { label: 'inactivityAlarmTime', value: 'inactivityAlarmTime' },
  69 + // { label: 'lastActivityTime', value: 'lastActivityTime' },
  70 + // { label: 'lastConnectTime', value: 'lastConnectTime' },
  71 + // { label: 'lastDisconnectTime', value: 'lastDisconnectTime' },
  72 + // ],
73 }, 73 },
74 ifShow: ({ values }) => isShiDu(Reflect.get(values, 'type')), 74 ifShow: ({ values }) => isShiDu(Reflect.get(values, 'type')),
75 }, 75 },
@@ -77,14 +77,14 @@ export const formSchema: FormSchema[] = [ @@ -77,14 +77,14 @@ export const formSchema: FormSchema[] = [
77 field: 'key', 77 field: 'key',
78 label: '键名', 78 label: '键名',
79 colProps: { span: 24 }, 79 colProps: { span: 24 },
80 - component: 'Select', 80 + component: 'Input',
81 componentProps: { 81 componentProps: {
82 - placeholder: '请选择键名',  
83 - options: [  
84 - { label: 'CO2', value: 'CO2' },  
85 - { label: 'temp', value: 'temp' },  
86 - { label: 'wet', value: 'wet' },  
87 - ], 82 + placeholder: '请输入键名',
  83 + // options: [
  84 + // { label: 'CO2', value: 'CO2' },
  85 + // { label: 'temp', value: 'temp' },
  86 + // { label: 'wet', value: 'wet' },
  87 + // ],
88 }, 88 },
89 ifShow: ({ values }) => isWenDu(Reflect.get(values, 'type')), 89 ifShow: ({ values }) => isWenDu(Reflect.get(values, 'type')),
90 }, 90 },
@@ -30,12 +30,15 @@ @@ -30,12 +30,15 @@
30 }); 30 });
31 const [register, { closeModal }] = useModalInner(async (data) => { 31 const [register, { closeModal }] = useModalInner(async (data) => {
32 isUpdate.value = !!data?.isUpdate; 32 isUpdate.value = !!data?.isUpdate;
  33 + if (!unref(isUpdate)) {
  34 + console.log('新增键名筛选器');
  35 + resetFields();
  36 + }
33 if (unref(isUpdate)) { 37 if (unref(isUpdate)) {
34 - await setFieldsValue({ 38 + console.log('编辑键名筛选器');
  39 + setFieldsValue({
35 ...data.record, 40 ...data.record,
36 }); 41 });
37 - } else {  
38 - await resetFields();  
39 } 42 }
40 }); 43 });
41 44
@@ -72,7 +72,7 @@ @@ -72,7 +72,7 @@
72 const receiveData: any = ref(null); 72 const receiveData: any = ref(null);
73 const lastValues: any = ref(null); 73 const lastValues: any = ref(null);
74 const isUpdate = ref(true); 74 const isUpdate = ref(true);
75 - const [registerForm, { getFieldsValue }] = useForm({ 75 + const [registerForm, { getFieldsValue, resetFields }] = useForm({
76 labelWidth: 120, 76 labelWidth: 120,
77 schemas: formSchema, 77 schemas: formSchema,
78 }); 78 });
@@ -105,6 +105,13 @@ @@ -105,6 +105,13 @@
105 emit('getAllFieldsRule', receiveData.value, lastValues.value); 105 emit('getAllFieldsRule', receiveData.value, lastValues.value);
106 closeModal(); 106 closeModal();
107 }; 107 };
  108 + const resetDataFunc = () => {
  109 + getTableApiData.value = [];
  110 + getTableApiData.value.length = 0;
  111 + detailData.value = [];
  112 + detailData.value.length = 0;
  113 + resetFields();
  114 + };
108 const handleAddKey = () => { 115 const handleAddKey = () => {
109 openModal(true, { 116 openModal(true, {
110 isUpdate: false, 117 isUpdate: false,
@@ -133,6 +140,7 @@ @@ -133,6 +140,7 @@
133 detailData.value.push(receiveData.value); 140 detailData.value.push(receiveData.value);
134 }; 141 };
135 return { 142 return {
  143 + resetDataFunc,
136 columnsView, 144 columnsView,
137 DescDetailSchema, 145 DescDetailSchema,
138 detailData, 146 detailData,
@@ -25,7 +25,7 @@ @@ -25,7 +25,7 @@
25 setup(_, { emit }) { 25 setup(_, { emit }) {
26 // const getValueData: any = ref({}); 26 // const getValueData: any = ref({});
27 const isUpdate = ref(true); 27 const isUpdate = ref(true);
28 - const [registerForm, { getFieldsValue }] = useForm({ 28 + const [registerForm, { getFieldsValue, resetFields }] = useForm({
29 labelWidth: 120, 29 labelWidth: 120,
30 schemas: formSchema, 30 schemas: formSchema,
31 }); 31 });
@@ -33,6 +33,9 @@ @@ -33,6 +33,9 @@
33 const [register, { closeModal }] = useModalInner((data) => { 33 const [register, { closeModal }] = useModalInner((data) => {
34 isUpdate.value = !!data?.isUpdate; 34 isUpdate.value = !!data?.isUpdate;
35 }); 35 });
  36 + const resetDataFunc = () => {
  37 + resetFields();
  38 + };
36 const handleSubmit = () => { 39 const handleSubmit = () => {
37 const values = getFieldsValue(); 40 const values = getFieldsValue();
38 emit('getAllFields', values); 41 emit('getAllFields', values);
@@ -47,6 +50,7 @@ @@ -47,6 +50,7 @@
47 // return getV; 50 // return getV;
48 // } 51 // }
49 return { 52 return {
  53 + resetDataFunc,
50 // getAllFields, 54 // getAllFields,
51 registerForm, 55 registerForm,
52 handleSubmit, 56 handleSubmit,
@@ -25,7 +25,7 @@ @@ -25,7 +25,7 @@
25 setup(_, { emit }) { 25 setup(_, { emit }) {
26 // const getValueData: any = ref({}); 26 // const getValueData: any = ref({});
27 const isUpdate = ref(true); 27 const isUpdate = ref(true);
28 - const [registerForm, { getFieldsValue }] = useForm({ 28 + const [registerForm, { getFieldsValue, resetFields }] = useForm({
29 labelWidth: 120, 29 labelWidth: 120,
30 schemas: formSchema, 30 schemas: formSchema,
31 }); 31 });
@@ -33,6 +33,9 @@ @@ -33,6 +33,9 @@
33 const [register, { closeModal }] = useModalInner((data) => { 33 const [register, { closeModal }] = useModalInner((data) => {
34 isUpdate.value = !!data?.isUpdate; 34 isUpdate.value = !!data?.isUpdate;
35 }); 35 });
  36 + const resetDataFunc = () => {
  37 + resetFields();
  38 + };
36 const handleSubmit = () => { 39 const handleSubmit = () => {
37 const values = getFieldsValue(); 40 const values = getFieldsValue();
38 emit('getAllFieldsEnab', values); 41 emit('getAllFieldsEnab', values);
@@ -47,6 +50,7 @@ @@ -47,6 +50,7 @@
47 // return getV; 50 // return getV;
48 // } 51 // }
49 return { 52 return {
  53 + resetDataFunc,
50 // getAllFieldsEnab, 54 // getAllFieldsEnab,
51 registerForm, 55 registerForm,
52 handleSubmit, 56 handleSubmit,
@@ -73,6 +73,7 @@ export const step2Schemas: FormSchema[] = [ @@ -73,6 +73,7 @@ export const step2Schemas: FormSchema[] = [
73 field: 'transportType', 73 field: 'transportType',
74 component: 'Select', 74 component: 'Select',
75 label: '传输方式', 75 label: '传输方式',
  76 + defaultValue: 'CoAP',
76 componentProps: { 77 componentProps: {
77 options: [ 78 options: [
78 { label: 'MQTT', value: 'MQTT' }, 79 { label: 'MQTT', value: 'MQTT' },
@@ -125,7 +126,7 @@ export const isWhereType = ref(null); @@ -125,7 +126,7 @@ export const isWhereType = ref(null);
125 126
126 export const step3CreateAlarm: FormSchema[] = [ 127 export const step3CreateAlarm: FormSchema[] = [
127 { 128 {
128 - field: '', 129 + field: 'MAJOR',
129 component: 'Select', 130 component: 'Select',
130 label: '严重程度', 131 label: '严重程度',
131 colProps: { 132 colProps: {
@@ -26,6 +26,13 @@ interface IAddAlarms { @@ -26,6 +26,13 @@ interface IAddAlarms {
26 propagate: true; 26 propagate: true;
27 propagateRelationTypes: string[]; 27 propagateRelationTypes: string[];
28 } 28 }
  29 +interface IAddClearAlarms {
  30 + id: number;
  31 + alarmType: string;
  32 + clearRules: object;
  33 + propagate: true;
  34 + propagateRelationTypes: string[];
  35 +}
29 36
30 export interface alarmListItem { 37 export interface alarmListItem {
31 configuration?: object; 38 configuration?: object;
@@ -33,6 +40,7 @@ export interface alarmListItem { @@ -33,6 +40,7 @@ export interface alarmListItem {
33 provisionConfiguration?: provisionConfigurationD; 40 provisionConfiguration?: provisionConfigurationD;
34 // id?: number; 41 // id?: number;
35 alarms?: IAddAlarms[]; 42 alarms?: IAddAlarms[];
  43 + clearAlarms?: IAddClearAlarms[];
36 // alarmType?: string; 44 // alarmType?: string;
37 // messageMode?: string; 45 // messageMode?: string;
38 // createRule?: createRule[]; 46 // createRule?: createRule[];