Commit c24771e59e8edb7fd5d08a703604fc74156ec00e

Authored by fengtao
1 parent 0b95a849

refractor:重构设备配置,fix:待修复设备配置编辑bug

  1 +export const deteleObject = (obj) => {
  2 + let uniques = [];
  3 + const stringify = {};
  4 + for (let i = 0; i < obj.length; i++) {
  5 + const keys = Object.keys(obj[i]);
  6 + keys.sort(function (a, b) {
  7 + return Number(a) - Number(b);
  8 + });
  9 + let str = '';
  10 + for (let j = 0; j < keys.length; j++) {
  11 + str += JSON.stringify(keys[j]);
  12 + str += JSON.stringify(obj[i][keys[j]]);
  13 + }
  14 + if (!stringify.hasOwnProperty(str)) {
  15 + uniques.push(obj[i] as never);
  16 + stringify[str] = true;
  17 + }
  18 + }
  19 + uniques = uniques;
  20 + return uniques;
  21 +};
@@ -53,7 +53,15 @@ @@ -53,7 +53,15 @@
53 </div> 53 </div>
54 </template> 54 </template>
55 <script lang="ts"> 55 <script lang="ts">
56 - import { defineComponent, ref, computed, unref, getCurrentInstance, reactive } from 'vue'; 56 + import {
  57 + defineComponent,
  58 + nextTick,
  59 + ref,
  60 + computed,
  61 + unref,
  62 + getCurrentInstance,
  63 + reactive,
  64 + } from 'vue';
57 import { BasicModal, useModalInner } from '/@/components/Modal'; 65 import { BasicModal, useModalInner } from '/@/components/Modal';
58 import DeviceProfileStep1 from '/@/views/device/profiles/step/DeviceProfileStep1.vue'; 66 import DeviceProfileStep1 from '/@/views/device/profiles/step/DeviceProfileStep1.vue';
59 import DeviceProfileStep2 from '/@/views/device/profiles/step/DeviceProfileStep2.vue'; 67 import DeviceProfileStep2 from '/@/views/device/profiles/step/DeviceProfileStep2.vue';
@@ -93,8 +101,8 @@ @@ -93,8 +101,8 @@
93 const DeviceProfileStep4Ref = ref(null); 101 const DeviceProfileStep4Ref = ref(null);
94 const { createMessage } = useMessage(); 102 const { createMessage } = useMessage();
95 const postDeviceConfogData: any = ref({}); 103 const postDeviceConfogData: any = ref({});
96 - const getStepOneData: any = ref({});  
97 - const getStepTwoData: any = ref({}); 104 + let getStepOneData: any = reactive({});
  105 + let getStepTwoData: any = reactive({});
98 const getStepThreeData = ref([]); 106 const getStepThreeData = ref([]);
99 const editData: any = ref({}); 107 const editData: any = ref({});
100 let getStepFourData: any = reactive({}); 108 let getStepFourData: any = reactive({});
@@ -104,7 +112,11 @@ @@ -104,7 +112,11 @@
104 messageMode: '', 112 messageMode: '',
105 }, 113 },
106 }); 114 });
107 - let isGetStepThreeData = reactive({}); 115 + let isGetStepThreeData: any = reactive({
  116 + profileData: {
  117 + alarms: [],
  118 + },
  119 + });
108 const postEditId = ref(''); 120 const postEditId = ref('');
109 const current = ref(0); 121 const current = ref(0);
110 const isUpdate = ref(0); 122 const isUpdate = ref(0);
@@ -115,6 +127,7 @@ @@ -115,6 +127,7 @@
115 const isShowRule = ref(true); 127 const isShowRule = ref(true);
116 const isEditAndChange = ref(true); 128 const isEditAndChange = ref(true);
117 const isEchoEditStatus = ref(false); 129 const isEchoEditStatus = ref(false);
  130 + const isNextStatus = ref(false);
118 131
119 const getTitle = computed(() => 132 const getTitle = computed(() =>
120 isUpdate.value == 1 ? '新增设备配置' : isUpdate.value == 2 ? '编辑设备配置' : '设备配置详情' 133 isUpdate.value == 1 ? '新增设备配置' : isUpdate.value == 2 ? '编辑设备配置' : '设备配置详情'
@@ -123,56 +136,39 @@ @@ -123,56 +136,39 @@
123 const [register, { closeModal }] = useModalInner(async (data) => { 136 const [register, { closeModal }] = useModalInner(async (data) => {
124 isUpdate.value = data.isUpdate; 137 isUpdate.value = data.isUpdate;
125 if (isUpdate.value == 1) { 138 if (isUpdate.value == 1) {
126 - try {  
127 - proxy.$refs.DeviceProfileStep1Ref?.customResetStepOneFunc();  
128 - proxy.$refs.DeviceProfileStep1Ref?.resetIconFunc();  
129 - proxy.$refs.DeviceProfileStep2Ref?.customClearStepTwoValueFunc();  
130 - proxy.$refs.DeviceProfileStep3Ref?.clearStep3DataFunc();  
131 - proxy.$refs.DeviceProfileStep4Ref?.clearAlaramContactAndNoticeMethodFunc();  
132 - } catch {} 139 + handleCancel();
133 isShowRule.value = true; 140 isShowRule.value = true;
134 isShowOkBtnFalse.value = true; 141 isShowOkBtnFalse.value = true;
135 current.value = 0; 142 current.value = 0;
136 isStatus.value = !data.isUpdate; 143 isStatus.value = !data.isUpdate;
137 isEchoEditStatus.value = false; 144 isEchoEditStatus.value = false;
138 } else if (isUpdate.value == 2) { 145 } else if (isUpdate.value == 2) {
  146 + handleCancel();
139 isShowRule.value = true; 147 isShowRule.value = true;
140 isShowOkBtnFalse.value = true; 148 isShowOkBtnFalse.value = true;
  149 + isEchoEditStatus.value = true;
141 current.value = 0; 150 current.value = 0;
142 postEditId.value = data.record.id; 151 postEditId.value = data.record.id;
143 editData.value = await deviceConfigGetDetail(postEditId.value); 152 editData.value = await deviceConfigGetDetail(postEditId.value);
144 - // proxy.$refs.DeviceProfileStep3Ref.isAddRuleStatusFunc(true);  
145 - // isStatus.value = data.isUpdate;  
146 - //回显第一步数据  
147 proxy.$refs.DeviceProfileStep1Ref.setStepOneFieldsValueFunc({ 153 proxy.$refs.DeviceProfileStep1Ref.setStepOneFieldsValueFunc({
148 name: editData.value.name, 154 name: editData.value.name,
149 defaultRuleChainId: editData.value.defaultRuleChainId, 155 defaultRuleChainId: editData.value.defaultRuleChainId,
150 defaultQueueName: editData.value.defaultQueueName, 156 defaultQueueName: editData.value.defaultQueueName,
151 description: editData.value.description, 157 description: editData.value.description,
152 }); 158 });
153 - // proxy.$refs.DeviceProfileStep3Ref.clearProfileDataFunc();  
154 - // proxy.$refs.DeviceProfileStep3Ref.addAlarmRule();  
155 - emit('success');  
156 } else if (isUpdate.value == 3) { 159 } else if (isUpdate.value == 3) {
  160 + handleCancel();
157 isShowRule.value = false; 161 isShowRule.value = false;
158 isShowOkBtnFalse.value = false; 162 isShowOkBtnFalse.value = false;
159 current.value = 0; 163 current.value = 0;
160 - // postEditId.value = data.record.id;  
161 - // getBackendData = await deviceConfigGetDetail(postEditId.value);  
162 - // editData.value = getBackendData;  
163 - // proxy.$refs.DeviceProfileStep3Ref.isAddRuleStatusFunc(false);  
164 - // isStatus.value = data.isUpdate;  
165 - // //清空第一步数据  
166 - // proxy.$refs.DeviceProfileStep1Ref.customResetStepOneFunc();  
167 - // //回显第一步数据  
168 - // proxy.$refs.DeviceProfileStep1Ref.setStepOneFieldsValueFunc({  
169 - // name: editData.value.name,  
170 - // defaultRuleChainId: editData.value.defaultRuleChainId,  
171 - // defaultQueueName: editData.value.defaultQueueName,  
172 - // description: editData.value.description,  
173 - // });  
174 - // proxy.$refs.DeviceProfileStep3Ref.clearProfileDataFunc();  
175 - // proxy.$refs.DeviceProfileStep3Ref.addAlarmRule(); 164 + postEditId.value = data.record.id;
  165 + editData.value = await deviceConfigGetDetail(postEditId.value);
  166 + proxy.$refs.DeviceProfileStep1Ref.setStepOneFieldsValueFunc({
  167 + name: editData.value.name,
  168 + defaultRuleChainId: editData.value.defaultRuleChainId,
  169 + defaultQueueName: editData.value.defaultQueueName,
  170 + description: editData.value.description,
  171 + });
176 } 172 }
177 }); 173 });
178 function handleStepPrev() { 174 function handleStepPrev() {
@@ -180,11 +176,15 @@ @@ -180,11 +176,15 @@
180 } 176 }
181 //第一步 177 //第一步
182 function handleStepNext1(v, v1) { 178 function handleStepNext1(v, v1) {
  179 + isNextStatus.value = true;
  180 + if (isNextStatus.value) {
  181 + getStepOneData = {
  182 + ...v,
  183 + ...{ icon: v1 },
  184 + };
  185 + }
183 current.value++; 186 current.value++;
184 - getStepOneData.value = v;  
185 - getStepOneData.value.icon = v1;  
186 - if (isUpdate.value == 1) {  
187 - } else if (isUpdate.value == 2) { 187 + if (isUpdate.value == 2) {
188 proxy.$refs.DeviceProfileStep2Ref?.setStepTwoFieldsValueFunc({ 188 proxy.$refs.DeviceProfileStep2Ref?.setStepTwoFieldsValueFunc({
189 transportType: editData.value?.profileData.transportConfiguration.type, 189 transportType: editData.value?.profileData.transportConfiguration.type,
190 }); 190 });
@@ -196,97 +196,93 @@ @@ -196,97 +196,93 @@
196 } 196 }
197 //第二步 197 //第二步
198 function handleStep2Next(v) { 198 function handleStep2Next(v) {
  199 + isNextStatus.value = true;
  200 + if ((isNextStatus.value = true)) {
  201 + getStepTwoData = {
  202 + ...v,
  203 + };
  204 + }
199 current.value++; 205 current.value++;
200 - getStepTwoData.value = v;  
201 - if (isUpdate.value == 1) {  
202 - } else if (isUpdate.value == 2) { 206 + if (isUpdate.value == 2) {
203 try { 207 try {
204 isEchoEditStatus.value = true; 208 isEchoEditStatus.value = true;
205 proxy.$refs.DeviceProfileStep3Ref?.echoStep3DataFunc( 209 proxy.$refs.DeviceProfileStep3Ref?.echoStep3DataFunc(
206 editData.value.profileData.alarms, 210 editData.value.profileData.alarms,
207 isEchoEditStatus.value 211 isEchoEditStatus.value
208 ); 212 );
209 - // proxy.$refs.DeviceProfileStep3Ref.setAlaramTypeFormFunc({  
210 - // alarmType: editData.value?.profileData.alarms[0].alarmType,  
211 - // });  
212 - // proxy.$refs.DeviceProfileStep3Ref.setTransmitAlarmFormFunc({  
213 - // propagate: editData.value?.profileData.alarms[0].propagate,  
214 - // propagateRelationTypes:  
215 - // editData.value?.profileData.alarms[0].propagateRelationTypes[0],  
216 - // });  
217 - // //回显报警详细信息  
218 - // proxy.$refs.DeviceProfileStep3Ref.setRegisterFormChangeDetailFunc({  
219 - // isEditStatus: true,  
220 - // stepThreeData: editData.value?.profileData.alarms[0].createRules,  
221 - // stepThreeClearData: editData.value?.profileData.alarms[0].clearRule,  
222 - // });  
223 - // proxy.$refs.DeviceProfileStep3Ref.setCreateRegisterFormChangeDetailFunc(  
224 - // editData.value?.profileData.alarms[0].createRules  
225 - // );  
226 - // proxy.$refs.DeviceProfileStep3Ref.setRegisterFormClearChangeDetailFunc({  
227 - // alarmDetails: editData.value?.profileData.alarms[0].clearRule.alarmDetails,  
228 - // });  
229 - // proxy.$refs.DeviceProfileStep3Ref.setRegisterFormCreateAlarmFunc({  
230 - // default: editData.value?.profileData.alarms[0].createRules,  
231 - // });  
232 - // //回显创建报警规则和清除报警规则  
233 } catch {} 213 } catch {}
234 } else if (isUpdate.value == 3) { 214 } else if (isUpdate.value == 3) {
235 - // try {  
236 - // proxy.$refs.DeviceProfileStep3Ref.setAlaramTypeFormFunc({  
237 - // alarmType: editData.value?.profileData.alarms[0].alarmType,  
238 - // });  
239 - // proxy.$refs.DeviceProfileStep3Ref.setTransmitAlarmFormFunc({  
240 - // propagate: editData.value?.profileData.alarms[0].propagate,  
241 - // propagateRelationTypes:  
242 - // editData.value?.profileData.alarms[0].propagateRelationTypes[0],  
243 - // });  
244 - // //回显报警详细信息  
245 - // proxy.$refs.DeviceProfileStep3Ref.setRegisterFormChangeDetailFunc({  
246 - // isEditStatus: true,  
247 - // stepThreeData: editData.value?.profileData.alarms[0].createRules,  
248 - // stepThreeClearData: editData.value?.profileData.alarms[0].clearRule,  
249 - // });  
250 - // proxy.$refs.DeviceProfileStep3Ref.setCreateRegisterFormChangeDetailFunc(  
251 - // editData.value?.profileData.alarms[0].createRules  
252 - // );  
253 - // proxy.$refs.DeviceProfileStep3Ref.setRegisterFormClearChangeDetailFunc({  
254 - // alarmDetails: editData.value?.profileData.alarms[0].clearRule.alarmDetails,  
255 - // });  
256 - // //回显创建报警规则和清除报警规则  
257 - // } catch {} 215 + try {
  216 + isEchoEditStatus.value = true;
  217 + proxy.$refs.DeviceProfileStep3Ref?.echoStep3DataFunc(
  218 + editData.value.profileData.alarms,
  219 + isEchoEditStatus.value
  220 + );
  221 + } catch {}
258 } 222 }
259 } 223 }
260 //第三步 224 //第三步
261 function handleStep3Next(v, v1) { 225 function handleStep3Next(v, v1) {
262 try { 226 try {
  227 + isNextStatus.value = true;
263 isEditAndChange.value = v1; 228 isEditAndChange.value = v1;
264 current.value++; 229 current.value++;
265 getStepThreeData.value = v; 230 getStepThreeData.value = v;
266 proxy.$refs.DeviceProfileStep4Ref?.step3LinkStep4DefalutClose(); 231 proxy.$refs.DeviceProfileStep4Ref?.step3LinkStep4DefalutClose();
267 - if (isUpdate.value == 1) {  
268 - } else if (isUpdate.value == 2) {  
269 - proxy.$refs.DeviceProfileStep4Ref?.setAlaramContactAndNoticeMethodFunc({  
270 - alarmContactId: editData.value?.alarmProfile.alarmContactId.split(','),  
271 - messageMode: editData.value?.alarmProfile.messageMode.split(','), 232 + if (isUpdate.value == 2) {
  233 + if (
  234 + editData.value?.alarmProfile.messageMode !== null ||
  235 + editData.value?.alarmProfile.alarmContactId !== null
  236 + ) {
  237 + proxy.$refs.DeviceProfileStep4Ref?.addStep4();
  238 + } else {
  239 + proxy.$refs.DeviceProfileStep4Ref?.closeStep4();
  240 + }
  241 + nextTick(() => {
  242 + proxy.$refs.DeviceProfileStep4Ref?.setAlaramContactAndNoticeMethodFunc({
  243 + alarmContactId: editData.value?.alarmProfile.alarmContactId.split(','),
  244 + messageMode: editData.value?.alarmProfile.messageMode.split(','),
  245 + });
272 }); 246 });
273 } else if (isUpdate.value == 3) { 247 } else if (isUpdate.value == 3) {
274 - proxy.$refs.DeviceProfileStep4Ref?.setAlaramContactAndNoticeMethodFunc({  
275 - alarmContactId: editData.value?.alarmProfile.alarmContactId.split(','),  
276 - messageMode: editData.value?.alarmProfile.messageMode.split(','), 248 + if (
  249 + editData.value?.alarmProfile.messageMode !== null ||
  250 + editData.value?.alarmProfile.alarmContactId !== null
  251 + ) {
  252 + proxy.$refs.DeviceProfileStep4Ref?.addStep4();
  253 + } else {
  254 + proxy.$refs.DeviceProfileStep4Ref?.closeStep4();
  255 + }
  256 + nextTick(() => {
  257 + proxy.$refs.DeviceProfileStep4Ref?.setAlaramContactAndNoticeMethodFunc({
  258 + alarmContactId: editData.value?.alarmProfile.alarmContactId.split(','),
  259 + messageMode: editData.value?.alarmProfile.messageMode.split(','),
  260 + });
277 }); 261 });
278 } 262 }
279 } catch {} 263 } catch {}
280 } 264 }
281 const handleSubmit = async () => { 265 const handleSubmit = async () => {
282 - const step1Val = await proxy.$refs.DeviceProfileStep1Ref?.getStep1Func();  
283 - if (isUpdate.value == 1) {  
284 - isGetStepThreeData = {  
285 - ...{  
286 - profileData:  
287 - getStepThreeData.value.length == 0 ? { alarms: null } : getStepThreeData.value,  
288 - },  
289 - }; 266 + let getPic = null;
  267 + let getStep2Obj = proxy.$refs.DeviceProfileStep2Ref?.getStep2DataFunc();
  268 + Object.assign(getStepTwoData, getStep2Obj);
  269 + try {
  270 + //没有点击下一步
  271 + if (!isNextStatus.value) {
  272 + const getStep1Obj = await proxy.$refs.DeviceProfileStep1Ref?.getStep1Func();
  273 + getPic = getStep1Obj.icon;
  274 + getStepOneData = {
  275 + ...getStep1Obj.key,
  276 + ...{ image: getPic },
  277 + };
  278 + Object.assign(getStepOneData, getStep1Obj.key);
  279 + }
  280 + let step3Val = await proxy.$refs.DeviceProfileStep3Ref?.getStep3AllDataFunc();
  281 + if (step3Val.length === 0) {
  282 + isGetStepThreeData.profileData.alarms = null;
  283 + } else {
  284 + isGetStepThreeData.profileData.alarms = step3Val;
  285 + }
290 try { 286 try {
291 getStepFourData = await proxy.$refs.DeviceProfileStep4Ref?.getAllFields(); 287 getStepFourData = await proxy.$refs.DeviceProfileStep4Ref?.getAllFields();
292 const getJoinAlarmContactIdData = getStepFourData.alarmContactId.join(','); 288 const getJoinAlarmContactIdData = getStepFourData.alarmContactId.join(',');
@@ -296,51 +292,51 @@ @@ -296,51 +292,51 @@
296 alarmProfileData.alarmProfile.alarmContactId = getAlarmContactId.value; 292 alarmProfileData.alarmProfile.alarmContactId = getAlarmContactId.value;
297 alarmProfileData.alarmProfile.messageMode = getMessageMode.value; 293 alarmProfileData.alarmProfile.messageMode = getMessageMode.value;
298 } catch {} 294 } catch {}
299 - Object.assign(  
300 - postDeviceConfogData.value,  
301 - step1Val,  
302 - getStepTwoData.value,  
303 - isGetStepThreeData,  
304 - alarmProfileData.alarmProfile.alarmContactId == '' ? null : alarmProfileData  
305 - );  
306 - await deviceConfigAddOrEdit(postDeviceConfogData.value);  
307 - createMessage.success('新增成功');  
308 - closeModal();  
309 - emit('success');  
310 - } else if (isUpdate.value == 2) {  
311 - // isGetStepThreeData.profileData.alarms =  
312 - // isEditAndChange.value == true  
313 - // ? editData.value.profileData.alarms  
314 - // : getStepThreeData.value;  
315 - // postDeviceConfogData.value.id = postEditId.value;  
316 - // getStepFourData = await proxy.$refs.DeviceProfileStep4Ref.getAllFields();  
317 - // const getJoinAlarmContactIdData = getStepFourData.alarmContactId.join(',');  
318 - // const getJoinMessageModeData = getStepFourData.messageMode.join(',');  
319 - // getAlarmContactId.value = getJoinAlarmContactIdData;  
320 - // getMessageMode.value = getJoinMessageModeData;  
321 - // alarmProfileData.alarmProfile.alarmContactId = getAlarmContactId.value;  
322 - // alarmProfileData.alarmProfile.messageMode = getMessageMode.value;  
323 - // Object.assign(  
324 - // postDeviceConfogData.value,  
325 - // getStepOneData.value,  
326 - // getStepTwoData.value,  
327 - // isGetStepThreeData,  
328 - // alarmProfileData  
329 - // );  
330 - // await deviceConfigAddOrEdit(postDeviceConfogData.value);  
331 - // createMessage.success('编辑成功');  
332 - // closeModal();  
333 - // emit('success');  
334 - } 295 + if (isUpdate.value == 1) {
  296 + Object.assign(
  297 + postDeviceConfogData.value,
  298 + getStepOneData,
  299 + getStepTwoData,
  300 + isGetStepThreeData,
  301 + alarmProfileData.alarmProfile.alarmContactId == '' ? null : alarmProfileData
  302 + );
  303 + await deviceConfigAddOrEdit(postDeviceConfogData.value);
  304 + createMessage.success('新增成功');
  305 + closeModal();
  306 + emit('success');
  307 + } else if (isUpdate.value == 2) {
  308 + const id = {
  309 + id: postEditId,
  310 + };
  311 + Object.assign(
  312 + postDeviceConfogData.value,
  313 + getStepOneData,
  314 + getStepTwoData,
  315 + isGetStepThreeData,
  316 + id,
  317 + alarmProfileData.alarmProfile.alarmContactId == '' ? null : alarmProfileData
  318 + );
  319 + await deviceConfigAddOrEdit(postDeviceConfogData.value);
  320 + createMessage.success('编辑成功');
  321 + closeModal();
  322 + emit('success');
  323 + }
  324 + } catch {}
335 }; 325 };
336 const handleCancel = () => { 326 const handleCancel = () => {
337 - closeModal();  
338 try { 327 try {
339 - proxy.$refs.DeviceProfileStep1Ref?.customResetStepOneFunc();  
340 - proxy.$refs.DeviceProfileStep1Ref?.resetIconFunc();  
341 - proxy.$refs.DeviceProfileStep2Ref?.customClearStepTwoValueFunc();  
342 - proxy.$refs.DeviceProfileStep3Ref?.clearStep3DataFunc();  
343 - proxy.$refs.DeviceProfileStep4Ref?.clearAlaramContactAndNoticeMethodFunc(); 328 + nextTick(() => {
  329 + proxy.$refs.DeviceProfileStep1Ref?.customResetStepOneFunc();
  330 + proxy.$refs.DeviceProfileStep1Ref?.resetIconFunc();
  331 + proxy.$refs.DeviceProfileStep2Ref?.customClearStepTwoValueFunc();
  332 + proxy.$refs.DeviceProfileStep3Ref?.clearStep3DataFunc();
  333 + proxy.$refs.DeviceProfileStep4Ref?.clearAlaramContactAndNoticeMethodFunc();
  334 + getStepOneData = {};
  335 + getStepTwoData = {};
  336 + isGetStepThreeData.profileData.alarms.length = 0;
  337 + alarmProfileData.alarmProfile.alarmContactId = '';
  338 + alarmProfileData.alarmProfile.messageMode = '';
  339 + });
344 } catch {} 340 } catch {}
345 }; 341 };
346 function handleRedo() { 342 function handleRedo() {
@@ -201,6 +201,7 @@ @@ -201,6 +201,7 @@
201 await deviceConfigDelete(selectedRowKeys); 201 await deviceConfigDelete(selectedRowKeys);
202 createMessage.success('删除成功'); 202 createMessage.success('删除成功');
203 handleSuccess(); 203 handleSuccess();
  204 + selectedRowKeys.length = 0;
204 } 205 }
205 206
206 function handleDelete(record: Recordable) { 207 function handleDelete(record: Recordable) {
@@ -15,7 +15,7 @@ @@ -15,7 +15,7 @@
15 > 15 >
16 <img 16 <img
17 v-if="peresonalPic" 17 v-if="peresonalPic"
18 - :src="peresonalPic" 18 + :src="peresonalPic ? peresonalPic : echoPic"
19 alt="avatar" 19 alt="avatar"
20 style="width: 6.25rem; height: 6.25rem" 20 style="width: 6.25rem; height: 6.25rem"
21 /> 21 />
@@ -54,6 +54,7 @@ @@ -54,6 +54,7 @@
54 emits: ['next', 'resetFunc', 'register'], 54 emits: ['next', 'resetFunc', 'register'],
55 setup(_, { emit }) { 55 setup(_, { emit }) {
56 const { createMessage } = useMessage(); 56 const { createMessage } = useMessage();
  57 + const echoPic = ref('');
57 const [register, { validate, setFieldsValue, resetFields }] = useForm({ 58 const [register, { validate, setFieldsValue, resetFields }] = useForm({
58 labelWidth: 100, 59 labelWidth: 100,
59 schemas: step1Schemas, 60 schemas: step1Schemas,
@@ -69,6 +70,9 @@ @@ -69,6 +70,9 @@
69 //回显数据 70 //回显数据
70 const setStepOneFieldsValueFunc = (v) => { 71 const setStepOneFieldsValueFunc = (v) => {
71 setFieldsValue(v); 72 setFieldsValue(v);
  73 + if (v.image !== null) {
  74 + echoPic.value = v.image;
  75 + }
72 }; 76 };
73 const peresonalPic = ref(); 77 const peresonalPic = ref();
74 78
@@ -115,7 +119,11 @@ @@ -115,7 +119,11 @@
115 }; 119 };
116 const getStep1Func = async () => { 120 const getStep1Func = async () => {
117 const valueStep1 = await validate(); 121 const valueStep1 = await validate();
118 - return valueStep1; 122 + const pic = peresonalPic.value;
  123 + return {
  124 + key: valueStep1,
  125 + icon: pic,
  126 + };
119 }; 127 };
120 return { 128 return {
121 editIconFunc, 129 editIconFunc,
@@ -128,6 +136,7 @@ @@ -128,6 +136,7 @@
128 beforeUploadqrcodePic, 136 beforeUploadqrcodePic,
129 customUploadqrcodePic, 137 customUploadqrcodePic,
130 getStep1Func, 138 getStep1Func,
  139 + echoPic,
131 }; 140 };
132 }, 141 },
133 }); 142 });
@@ -41,7 +41,7 @@ @@ -41,7 +41,7 @@
41 }, 41 },
42 emits: ['next', 'prev', 'register'], 42 emits: ['next', 'prev', 'register'],
43 setup(_, { emit }) { 43 setup(_, { emit }) {
44 - const [register, { validate, setFieldsValue, resetFields }] = useForm({ 44 + const [register, { getFieldsValue, validate, setFieldsValue, resetFields }] = useForm({
45 labelWidth: 80, 45 labelWidth: 80,
46 schemas: step2Schemas, 46 schemas: step2Schemas,
47 actionColOptions: { 47 actionColOptions: {
@@ -66,12 +66,18 @@ @@ -66,12 +66,18 @@
66 } finally { 66 } finally {
67 } 67 }
68 } 68 }
  69 +
  70 + const getStep2DataFunc = () => {
  71 + const val = getFieldsValue();
  72 + return val;
  73 + };
69 return { 74 return {
70 customResetFunc, 75 customResetFunc,
71 customSubmitFunc, 76 customSubmitFunc,
72 register, 77 register,
73 setStepTwoFieldsValueFunc, 78 setStepTwoFieldsValueFunc,
74 customClearStepTwoValueFunc, 79 customClearStepTwoValueFunc,
  80 + getStep2DataFunc,
75 }; 81 };
76 }, 82 },
77 }); 83 });
1 <template> 1 <template>
2 <div> 2 <div>
3 <div> 3 <div>
4 - <div v-if="alarmsData.length === 0" style="text-align: center"> 4 + <div
  5 + v-if="!getIsEchoEditStatus ? alarmsData.length == 0 : echoEditData.length == 0"
  6 + style="text-align: center"
  7 + >
5 <p style="font-size: large">未配置报警规则</p> 8 <p style="font-size: large">未配置报警规则</p>
6 </div> 9 </div>
7 <div> 10 <div>
8 <template 11 <template
9 v-for="(item, index) in !getIsEchoEditStatus ? alarmsData : echoEditData" 12 v-for="(item, index) in !getIsEchoEditStatus ? alarmsData : echoEditData"
10 :key="index" 13 :key="index"
  14 + :ref="item"
11 > 15 >
12 <span style="display: none">{{ item }}</span> 16 <span style="display: none">{{ item }}</span>
13 <span style="display: none">{{ index }}</span> 17 <span style="display: none">{{ index }}</span>
14 <div class="cursor-pointer" style="position: relative; top: 3.5vh; right: -41.6vw"> 18 <div class="cursor-pointer" style="position: relative; top: 3.5vh; right: -41.6vw">
15 <img 19 <img
16 style="cursor: pointer" 20 style="cursor: pointer"
17 - @click="removeAlarmRule(index, item)" 21 + @click="removeAlarmRule(item, index)"
18 alt="移除" 22 alt="移除"
19 src="../../../../assets/images/delete.png" 23 src="../../../../assets/images/delete.png"
20 /> 24 />
@@ -44,7 +48,11 @@ @@ -44,7 +48,11 @@
44 <div style="margin-left: 14.5vw; margin-top: 2vh"> 48 <div style="margin-left: 14.5vw; margin-top: 2vh">
45 <a-button class="mr-5" @click="prevStepFunc">上一步</a-button> 49 <a-button class="mr-5" @click="prevStepFunc">上一步</a-button>
46 <a-button @click="nextStepFunc">下一步</a-button> 50 <a-button @click="nextStepFunc">下一步</a-button>
47 - <a-button style="margin-left: 20px" type="primary" @click="clickAddAlaramRuleFunc" 51 + <a-button
  52 + v-if="btnClose"
  53 + style="margin-left: 20px"
  54 + type="primary"
  55 + @click="clickAddAlaramRuleFunc"
48 >添加报警规则</a-button 56 >添加报警规则</a-button
49 > 57 >
50 </div> 58 </div>
@@ -53,40 +61,65 @@ @@ -53,40 +61,65 @@
53 </template> 61 </template>
54 62
55 <script lang="ts"> 63 <script lang="ts">
56 - import { defineComponent, ref, getCurrentInstance, reactive } from 'vue'; 64 + import { defineComponent, ref, getCurrentInstance, reactive, watch } from 'vue';
57 import CommonCpns from './common/index.vue'; 65 import CommonCpns from './common/index.vue';
  66 + import { deteleObject } from '/@/hooks/web/useFilter';
58 67
59 export default defineComponent({ 68 export default defineComponent({
60 components: { 69 components: {
61 CommonCpns, 70 CommonCpns,
62 }, 71 },
  72 + props: ['isShowAddRule'],
63 emits: ['next', 'prev'], 73 emits: ['next', 'prev'],
64 - setup(_, { emit }) { 74 + setup(props, { emit }) {
65 const { proxy } = getCurrentInstance() as any; 75 const { proxy } = getCurrentInstance() as any;
66 const commonCpnsRef = ref(null); 76 const commonCpnsRef = ref(null);
67 const alarmsData: any = ref([]); 77 const alarmsData: any = ref([]);
68 let profileData: any = reactive({}); 78 let profileData: any = reactive({});
69 const echoEditData: any = ref([]); 79 const echoEditData: any = ref([]);
70 const getIsEchoEditStatus = ref(false); 80 const getIsEchoEditStatus = ref(false);
  81 + const btnClose = ref(true);
  82 + let getO = reactive({});
71 const prevStepFunc = () => { 83 const prevStepFunc = () => {
72 emit('prev'); 84 emit('prev');
73 }; 85 };
74 const nextStepFunc = async () => { 86 const nextStepFunc = async () => {
75 profileData = await proxy.$refs.commonCpnsRef?.getStep3AllDataFunc(); 87 profileData = await proxy.$refs.commonCpnsRef?.getStep3AllDataFunc();
76 alarmsData.value.push(profileData); 88 alarmsData.value.push(profileData);
77 - alarmsData.value.shift();  
78 emit('next', { 89 emit('next', {
79 alarms: alarmsData.value, 90 alarms: alarmsData.value,
80 }); 91 });
81 }; 92 };
82 - const clickAddAlaramRuleFunc = async () => { 93 + const getStep3AllDataFunc = async () => {
83 profileData = await proxy.$refs.commonCpnsRef?.getStep3AllDataFunc(); 94 profileData = await proxy.$refs.commonCpnsRef?.getStep3AllDataFunc();
84 alarmsData.value.push(profileData); 95 alarmsData.value.push(profileData);
  96 + console.log(await proxy.$refs.commonCpnsRef?.getStep3AllDataFunc());
  97 + if (getIsEchoEditStatus.value) {
  98 + for (let i = 0; i < echoEditData.value.length; i++) {
  99 + getO = await proxy.$refs.commonCpnsRef?.getStep3AllDataFunc();
  100 + alarmsData.value.push(getO);
  101 + }
  102 + }
  103 + console.log(alarmsData.value);
  104 + alarmsData.value = alarmsData.value.filter((i) => i);
  105 + alarmsData.value = deteleObject(alarmsData.value);
  106 + console.log(alarmsData.value);
  107 + return alarmsData.value;
85 }; 108 };
86 - const removeAlarmRule = (i, e) => {  
87 - console.log(e);  
88 - let delI = i;  
89 - alarmsData.value.splice(delI, 1); 109 + const clickAddAlaramRuleFunc = async () => {
  110 + try {
  111 + profileData = await proxy.$refs.commonCpnsRef?.getStep3AllDataFunc();
  112 + alarmsData.value.push(profileData);
  113 + if (getIsEchoEditStatus.value) {
  114 + echoEditData.value.push(profileData);
  115 + // proxy.$refs.commonCpnsRef?.clearStep3CpnDataFunc();
  116 + }
  117 + } catch {}
  118 + };
  119 + const removeAlarmRule = (e, i) => {
  120 + const key = alarmsData.value.indexOf(e);
  121 + console.log(i);
  122 + alarmsData.value.splice(key, 1);
90 }; 123 };
91 /** 124 /**
92 * 清空数据 125 * 清空数据
@@ -94,8 +127,11 @@ @@ -94,8 +127,11 @@
94 const clearStep3DataFunc = () => { 127 const clearStep3DataFunc = () => {
95 try { 128 try {
96 alarmsData.value.length = 0; 129 alarmsData.value.length = 0;
97 - profileData = {}; 130 + echoEditData.value.length = 0;
  131 + // profileData = {};
98 proxy.$refs.commonCpnsRef?.clearStep3CpnDataFunc(); 132 proxy.$refs.commonCpnsRef?.clearStep3CpnDataFunc();
  133 + getIsEchoEditStatus.value = false;
  134 + getO = {};
99 } catch {} 135 } catch {}
100 }; 136 };
101 /** 137 /**
@@ -106,10 +142,18 @@ @@ -106,10 +142,18 @@
106 getIsEchoEditStatus.value = s; 142 getIsEchoEditStatus.value = s;
107 if (getIsEchoEditStatus.value === true) { 143 if (getIsEchoEditStatus.value === true) {
108 echoEditData.value = e; 144 echoEditData.value = e;
  145 + if (echoEditData.value == null) {
  146 + echoEditData.value = [];
  147 + }
109 } 148 }
110 } catch {} 149 } catch {}
111 }; 150 };
112 - 151 + watch(
  152 + () => props.isShowAddRule,
  153 + (v) => {
  154 + btnClose.value = v;
  155 + }
  156 + );
113 return { 157 return {
114 clickAddAlaramRuleFunc, 158 clickAddAlaramRuleFunc,
115 prevStepFunc, 159 prevStepFunc,
@@ -121,6 +165,8 @@ @@ -121,6 +165,8 @@
121 echoStep3DataFunc, 165 echoStep3DataFunc,
122 echoEditData, 166 echoEditData,
123 getIsEchoEditStatus, 167 getIsEchoEditStatus,
  168 + getStep3AllDataFunc,
  169 + btnClose,
124 }; 170 };
125 }, 171 },
126 }); 172 });
@@ -15,17 +15,17 @@ @@ -15,17 +15,17 @@
15 margin-top: -1.2vh; 15 margin-top: -1.2vh;
16 " 16 "
17 > 17 >
18 - <div style="width: 5vw; height: 4vh; margin-top: -3.5vh"> 18 + <div style="width: 5vw; height: 4vh; margin-top: -3.6vh">
19 <Button type="primary" style="border-radius: 2px" class="mt-5" @click="prevStep4" 19 <Button type="primary" style="border-radius: 2px" class="mt-5" @click="prevStep4"
20 >上一步</Button 20 >上一步</Button
21 > 21 >
22 </div> 22 </div>
23 - <div style="width: 5vw; height: 4vh; margin-top: -3.5vh"> 23 + <div style="width: 5vw; height: 4vh; margin-top: -3.6vh">
24 <Button type="default" style="border-radius: 2px" class="mt-5" @click="addStep4"> 24 <Button type="default" style="border-radius: 2px" class="mt-5" @click="addStep4">
25 打开告警通知</Button 25 打开告警通知</Button
26 > 26 >
27 </div> 27 </div>
28 - <div style="width: 5vw; height: 4vh; margin-top: -3.5vh; margin-left: 2.2vw"> 28 + <div style="width: 5vw; height: 4vh; margin-top: -3.6vh; margin-left: 2.2vw">
29 <Button type="default" style="border-radius: 2px" class="mt-5" @click="closeStep4"> 29 <Button type="default" style="border-radius: 2px" class="mt-5" @click="closeStep4">
30 关闭</Button 30 关闭</Button
31 > 31 >
@@ -34,7 +34,7 @@ @@ -34,7 +34,7 @@
34 </div> 34 </div>
35 </template> 35 </template>
36 <script lang="ts"> 36 <script lang="ts">
37 - import { defineComponent, ref } from 'vue'; 37 + import { defineComponent, ref, nextTick } from 'vue';
38 import { BasicForm, useForm } from '/@/components/Form/index'; 38 import { BasicForm, useForm } from '/@/components/Form/index';
39 import { alertContactsSchemas } from './data'; 39 import { alertContactsSchemas } from './data';
40 import { Button } from '/@/components/Button'; 40 import { Button } from '/@/components/Button';
@@ -58,7 +58,11 @@ @@ -58,7 +58,11 @@
58 setFieldsValue(v); 58 setFieldsValue(v);
59 }; 59 };
60 const clearAlaramContactAndNoticeMethodFunc = () => { 60 const clearAlaramContactAndNoticeMethodFunc = () => {
61 - resetFields(); 61 + try {
  62 + nextTick(() => {
  63 + // resetFields();
  64 + });
  65 + } catch {}
62 }; 66 };
63 const getAllFields = async (getV) => { 67 const getAllFields = async (getV) => {
64 const values = await validate(); 68 const values = await validate();
1 export const formatAlarmRuleConditionsData = (f) => { 1 export const formatAlarmRuleConditionsData = (f) => {
2 - return f.predicate.operation == 'EQUAL'  
3 - ? f.key.key + '等于' + f.predicate.value.defaultValue  
4 - : f.predicate.operation == 'STARTS_WITH'  
5 - ? f.key.key + '开始于' + f.predicate.value.defaultValue  
6 - : f.predicate.operation == 'ENDS_WITH'  
7 - ? f.key.key + '结束于' + f.predicate.value.defaultValue  
8 - : f.predicate.operation == 'NOT_CONTAINS'  
9 - ? f.key.key + '不包含' + f.predicate.value.defaultValue  
10 - : f.predicate.operation == 'NOT_EQUAL'  
11 - ? f.key.key + '不等于' + f.predicate.value.defaultValue  
12 - : f.predicate.operation == 'GREATER'  
13 - ? f.key.key + '大于' + f.predicate.value.defaultValue  
14 - : f.predicate.operation == 'LESS'  
15 - ? f.key.key + '小于' + f.predicate.value.defaultValue  
16 - : f.predicate.operation == 'GREATER_OR_EQUAL'  
17 - ? f.key.key + '大于或等于' + f.predicate.value.defaultValue  
18 - : f.key.key + '小于或等于' + f.predicate.value.defaultValue; 2 + return f?.predicate.operation == 'EQUAL'
  3 + ? f?.key.key + '等于' + f?.predicate.value.defaultValue
  4 + : f?.predicate.operation == 'STARTS_WITH'
  5 + ? f?.key.key + '开始于' + f?.predicate.value.defaultValue
  6 + : f?.predicate.operation == 'ENDS_WITH'
  7 + ? f?.key.key + '结束于' + f?.predicate.value.defaultValue
  8 + : f?.predicate.operation == 'NOT_CONTAINS'
  9 + ? f?.key.key + '不包含' + f?.predicate.value.defaultValue
  10 + : f?.predicate.operation == 'NOT_EQUAL'
  11 + ? f?.key.key + '不等于' + f?.predicate.value.defaultValue
  12 + : f?.predicate.operation == 'GREATER'
  13 + ? f?.key.key + '大于' + f?.predicate.value.defaultValue
  14 + : f?.predicate.operation == 'LESS'
  15 + ? f?.key.key + '小于' + f?.predicate.value.defaultValue
  16 + : f?.predicate.operation == 'GREATER_OR_EQUAL'
  17 + ? f?.key.key + '大于或等于' + f?.predicate.value.defaultValue
  18 + : f?.key.key + '小于或等于' + f?.predicate.value.defaultValue;
19 }; 19 };
20 20
21 export const formatEnableRuleData = (f) => { 21 export const formatEnableRuleData = (f) => {
22 - return f.type == 'ANY_TIME' ? '始终启用' : f.type == 'SPECIFIC_TIME' ? '定时启用' : '自定义启用'; 22 + return f?.type == 'ANY_TIME'
  23 + ? '始终启用'
  24 + : f?.type == 'SPECIFIC_TIME'
  25 + ? '定时启用'
  26 + : '自定义启用';
  27 +};
  28 +
  29 +export const formatAlarmRuleConditionsData1 = (v) => {
  30 + let openEditRuleConditObj: any = {};
  31 + for (const i in v) {
  32 + if (i == 'CRITICAL') {
  33 + openEditRuleConditObj = v[i];
  34 + } else if (i == 'MAJOR') {
  35 + openEditRuleConditObj = v[i];
  36 + } else if (i == 'MINOR') {
  37 + openEditRuleConditObj = v[i];
  38 + } else if (i == 'WARNING') {
  39 + openEditRuleConditObj = v[i];
  40 + } else if (i == 'INDETERMINATE') {
  41 + openEditRuleConditObj = v[i];
  42 + }
  43 + }
  44 + return openEditRuleConditObj;
23 }; 45 };
@@ -22,11 +22,19 @@ @@ -22,11 +22,19 @@
22 <!-- 创建报警规则 --> 22 <!-- 创建报警规则 -->
23 <div style="margin-top: -6vh"> 23 <div style="margin-top: -6vh">
24 <p style="margin-left: 10px; font-size: medium">创建报警规则</p> 24 <p style="margin-left: 10px; font-size: medium">创建报警规则</p>
25 - <p v-if="createAlarmRuleData.length === 0" style="text-align: center; font-size: large" 25 + <p
  26 + v-if="createAlarmRuleData.length === 0 && createEditAlarmRuleData.length == 0"
  27 + style="text-align: center; font-size: large"
26 >请添加创建报警规则</p 28 >请添加创建报警规则</p
27 > 29 >
28 <div v-if="createAlarmRuleData.length > 0"> 30 <div v-if="createAlarmRuleData.length > 0">
29 - <template v-for="(item, index) in createAlarmRuleData" :key="index"> 31 + <template
  32 + v-for="(item, index) in !isStep3FatherAddOrEditStatus
  33 + ? createAlarmRuleData
  34 + : createEditAlarmRuleData"
  35 + :key="index"
  36 + :ref="item"
  37 + >
30 <span style="display: none">{{ item }}</span> 38 <span style="display: none">{{ item }}</span>
31 <span style="display: none">{{ index }}</span> 39 <span style="display: none">{{ index }}</span>
32 <div class="cursor-pointer" style="position: relative; top: 15.5vh; right: -40.8vw"> 40 <div class="cursor-pointer" style="position: relative; top: 15.5vh; right: -40.8vw">
@@ -39,8 +47,14 @@ @@ -39,8 +47,14 @@
39 </div> 47 </div>
40 <div style="width: 38vw; height: 30vh; border: 1px solid grey; border-radius: 4px"> 48 <div style="width: 38vw; height: 30vh; border: 1px solid grey; border-radius: 4px">
41 <div style="margin-top: 1vh"> 49 <div style="margin-top: 1vh">
42 - <AlarmSeverityCpn ref="AlarmSeverityRef" />  
43 - <DetailTemplateCpn ref="DetailTemplateRef" /> 50 + <AlarmSeverityCpn
  51 + ref="AlarmSeverityRef"
  52 + :AlarmSeverityCpnData="!isStep3FatherAddOrEditStatus ? 1 : item"
  53 + />
  54 + <DetailTemplateCpn
  55 + ref="DetailTemplateRef"
  56 + :DetailTemplateCpnData="!isStep3FatherAddOrEditStatus ? 1 : item"
  57 + />
44 <AlarmRuleConditionsCpn 58 <AlarmRuleConditionsCpn
45 ref="AlarmRuleConditionsRef" 59 ref="AlarmRuleConditionsRef"
46 @register="registerAlarmRuleConditionsModal" 60 @register="registerAlarmRuleConditionsModal"
@@ -61,21 +75,19 @@ @@ -61,21 +75,19 @@
61 /></a-button> 75 /></a-button>
62 <div> 76 <div>
63 <div> 77 <div>
64 - <template v-for="(item1, index1) in formatAlarmRuleConditions" :key="index1"> 78 + <template
  79 + v-for="(item1, index1) in !isStep3FatherAddOrEditStatus
  80 + ? formatAlarmRuleConditions
  81 + : []"
  82 + :key="index1"
  83 + >
65 <p v-if="index1 == index"> 84 <p v-if="index1 == index">
66 报警规则条件:{{ formatAlarmRuleConditionsFunc(item1) }} 85 报警规则条件:{{ formatAlarmRuleConditionsFunc(item1) }}
67 </p> 86 </p>
68 </template> 87 </template>
69 </div> 88 </div>
70 - <div>  
71 - <template  
72 - v-for="(item11, index11) in formatEditAlarmRuleConditions"  
73 - :key="index11"  
74 - >  
75 - <p v-if="index11 == index">  
76 - 报警规则条件:{{ formatAlarmRuleConditionsData(item11) }}  
77 - </p>  
78 - </template> 89 + <div v-if="isStep3FatherAddOrEditStatus">
  90 + <p> 报警规则条件:{{ formatAlarmRuleConditionsDataFunc(item) }} </p>
79 </div> 91 </div>
80 </div> 92 </div>
81 </div> 93 </div>
@@ -85,18 +97,21 @@ @@ -85,18 +97,21 @@
85 ><PlusCircleOutlined 97 ><PlusCircleOutlined
86 /></a-button> 98 /></a-button>
87 <div> 99 <div>
88 - <p v-if="formatEnableRule.length == 0 && formatEditEnableRule.length == 0"  
89 - >始终启用</p 100 + <p v-if="formatEnableRule.length == 0 && !isStep3FatherAddOrEditStatus"
  101 + >启用规则:始终启用</p
90 > 102 >
91 <div> 103 <div>
92 - <template v-for="(item2, index2) in formatEnableRule" :key="index2"> 104 + <template
  105 + v-for="(item2, index2) in !isStep3FatherAddOrEditStatus
  106 + ? formatEnableRule
  107 + : []"
  108 + :key="index2"
  109 + >
93 <p v-if="index2 == index"> 启用规则:{{ formatEnableRuleFunc(item2) }} </p> 110 <p v-if="index2 == index"> 启用规则:{{ formatEnableRuleFunc(item2) }} </p>
94 </template> 111 </template>
95 </div> 112 </div>
96 - <div>  
97 - <template v-for="(item22, index22) in formatEditEnableRule" :key="index22">  
98 - <p v-if="index22 == index"> 启用规则:{{ formatEnableRuleData(item22) }} </p>  
99 - </template> 113 + <div v-if="isStep3FatherAddOrEditStatus">
  114 + <p> 启用规则:{{ formatEnableRuleFuncData(item) }} </p>
100 </div> 115 </div>
101 </div> 116 </div>
102 </div> 117 </div>
@@ -176,7 +191,9 @@ @@ -176,7 +191,9 @@
176 ><PlusCircleOutlined 191 ><PlusCircleOutlined
177 /></a-button> 192 /></a-button>
178 <div> 193 <div>
179 - <p v-if="formatEnableRule.length == 0">始终启用</p> 194 + <p v-if="formatEnableRule.length == 0 && !isStep3FatherAddOrEditStatus"
  195 + >启用规则:始终启用</p
  196 + >
180 <div> 197 <div>
181 <template v-for="(item4, index4) in formatClearEnableRule" :key="index4"> 198 <template v-for="(item4, index4) in formatClearEnableRule" :key="index4">
182 <span style="display: none">{{ index4 }}</span> 199 <span style="display: none">{{ index4 }}</span>
@@ -184,9 +201,14 @@ @@ -184,9 +201,14 @@
184 </template> 201 </template>
185 </div> 202 </div>
186 <div> 203 <div>
187 - <template v-for="(item44, index44) in formatEditClearEnableRule" :key="index44"> 204 + <template
  205 + v-for="(item44, index44) in isStep3FatherAddOrEditStatus
  206 + ? formatEditClearEnableRule
  207 + : []"
  208 + :key="index44"
  209 + >
188 <span style="display: none">{{ index44 }}</span> 210 <span style="display: none">{{ index44 }}</span>
189 - <p> 启用规则:{{ formatClearEnableRuleFunc(item44) }} </p> 211 + <p> 启用规则:{{ formatEnableRuleData(item44) }} </p>
190 </template> 212 </template>
191 </div> 213 </div>
192 </div> 214 </div>
@@ -207,7 +229,7 @@ @@ -207,7 +229,7 @@
207 </div> 229 </div>
208 </template> 230 </template>
209 <script lang="ts"> 231 <script lang="ts">
210 - import { defineComponent, ref, nextTick, getCurrentInstance, reactive } from 'vue'; 232 + import { defineComponent, ref, nextTick, getCurrentInstance, reactive, watch } from 'vue';
211 import { BasicForm, useForm } from '/@/components/Form'; 233 import { BasicForm, useForm } from '/@/components/Form';
212 import { step3Schemas, step3HighSetting, formChangeDetailSchema } from '../data'; 234 import { step3Schemas, step3HighSetting, formChangeDetailSchema } from '../data';
213 import { Checkbox } from 'ant-design-vue'; 235 import { Checkbox } from 'ant-design-vue';
@@ -218,7 +240,11 @@ @@ -218,7 +240,11 @@
218 import EnableRuleCpn from '../cpns/enablerule/index.vue'; 240 import EnableRuleCpn from '../cpns/enablerule/index.vue';
219 import { useModal } from '/@/components/Modal'; 241 import { useModal } from '/@/components/Modal';
220 import { generateUUID } from '/@/hooks/web/useGenerateUUID'; 242 import { generateUUID } from '/@/hooks/web/useGenerateUUID';
221 - import { formatAlarmRuleConditionsData, formatEnableRuleData } from '../common/format-data/index'; 243 + import {
  244 + formatAlarmRuleConditionsData,
  245 + formatEnableRuleData,
  246 + formatAlarmRuleConditionsData1,
  247 + } from '../common/format-data/index';
222 248
223 export default defineComponent({ 249 export default defineComponent({
224 components: { 250 components: {
@@ -234,14 +260,13 @@ @@ -234,14 +260,13 @@
234 setup(props) { 260 setup(props) {
235 const { proxy } = getCurrentInstance() as any; 261 const { proxy } = getCurrentInstance() as any;
236 const createAlarmRuleData: any = ref([1]); 262 const createAlarmRuleData: any = ref([1]);
  263 + const createEditAlarmRuleData: any = ref([]);
237 const AlarmRuleConditionsRef = ref(null); 264 const AlarmRuleConditionsRef = ref(null);
238 const EnableRuleRef = ref(null); 265 const EnableRuleRef = ref(null);
239 const formatAlarmRuleConditions: any = ref([]); 266 const formatAlarmRuleConditions: any = ref([]);
240 - const formatEditAlarmRuleConditions: any = ref([]);  
241 const formatClearAlarmRuleConditions: any = ref([]); 267 const formatClearAlarmRuleConditions: any = ref([]);
242 const formatEditClearAlarmRuleConditions: any = ref([]); 268 const formatEditClearAlarmRuleConditions: any = ref([]);
243 const formatEnableRule: any = ref([]); 269 const formatEnableRule: any = ref([]);
244 - const formatEditEnableRule: any = ref([]);  
245 const formatClearEnableRule: any = ref([]); 270 const formatClearEnableRule: any = ref([]);
246 const formatEditClearEnableRule: any = ref([]); 271 const formatEditClearEnableRule: any = ref([]);
247 let alaramsObj: any = reactive({ 272 let alaramsObj: any = reactive({
@@ -314,6 +339,10 @@ @@ -314,6 +339,10 @@
314 const clickAddCreateRuleFunc = () => { 339 const clickAddCreateRuleFunc = () => {
315 createAlarmRuleData.value.push(1); 340 createAlarmRuleData.value.push(1);
316 getAddCreateRuleFunc(); 341 getAddCreateRuleFunc();
  342 + if (isStep3FatherAddOrEditStatus.value) {
  343 + createEditAlarmRuleData.value.push(1);
  344 + getAddCreateRuleFunc();
  345 + }
317 }; 346 };
318 /** 347 /**
319 * 获取创建报警规则数据 348 * 获取创建报警规则数据
@@ -340,6 +369,9 @@ @@ -340,6 +369,9 @@
340 ...{ schedule: Object.keys(kongEnable).length == 0 ? null : kongEnable }, 369 ...{ schedule: Object.keys(kongEnable).length == 0 ? null : kongEnable },
341 }; 370 };
342 }; 371 };
  372 + /**
  373 + * 获取清除报警规则数据
  374 + */
343 const clickAddClearRuleFunc = () => { 375 const clickAddClearRuleFunc = () => {
344 isClearStatus.value = true; 376 isClearStatus.value = true;
345 const val6 = getRegisterFormClearChangeDetailFunc(); 377 const val6 = getRegisterFormClearChangeDetailFunc();
@@ -377,21 +409,25 @@ @@ -377,21 +409,25 @@
377 const clickAddAlarmRuleConditionsFunc = () => { 409 const clickAddAlarmRuleConditionsFunc = () => {
378 nextTick(() => { 410 nextTick(() => {
379 openModalAlarmRuleConditions(true); 411 openModalAlarmRuleConditions(true);
  412 + proxy.$refs.AlarmRuleConditionsRef?.resetDataFunc();
380 }); 413 });
381 }; 414 };
382 const clickAddEnableRuleFunc = () => { 415 const clickAddEnableRuleFunc = () => {
383 nextTick(() => { 416 nextTick(() => {
384 openModalEnableRule(true); 417 openModalEnableRule(true);
  418 + proxy.$refs.DetailTemplateRef?.resetDataFunc();
385 }); 419 });
386 }; 420 };
387 const clickClearAlarmRuleConditionsFunc = () => { 421 const clickClearAlarmRuleConditionsFunc = () => {
388 nextTick(() => { 422 nextTick(() => {
389 openModalClearAlarmRuleConditions(true); 423 openModalClearAlarmRuleConditions(true);
  424 + proxy.$refs.AlarmRuleConditionsRef?.resetDataFunc();
390 }); 425 });
391 }; 426 };
392 const clickClearEnableRuleFunc = () => { 427 const clickClearEnableRuleFunc = () => {
393 nextTick(() => { 428 nextTick(() => {
394 openModalClearEnableRule(true); 429 openModalClearEnableRule(true);
  430 + proxy.$refs.DetailTemplateRef?.resetDataFunc();
395 }); 431 });
396 }; 432 };
397 const getAlarmRuleConditionsValFunc = (e) => { 433 const getAlarmRuleConditionsValFunc = (e) => {
@@ -441,8 +477,9 @@ @@ -441,8 +477,9 @@
441 } 477 }
442 getAddCreateRuleFunc(); 478 getAddCreateRuleFunc();
443 clickAddClearRuleFunc(); 479 clickAddClearRuleFunc();
444 - if (alaramsObj.clearRule.condition == null) { 480 + if (alaramsObj.clearRule.condition == null || alaramsObj.clearRule.schedule == null) {
445 isClearStatus.value = false; 481 isClearStatus.value = false;
  482 + alaramsObj.clearRule = null;
446 } 483 }
447 return alaramsObj; 484 return alaramsObj;
448 }; 485 };
@@ -463,24 +500,46 @@ @@ -463,24 +500,46 @@
463 formatEnableRule.value.length = 0; 500 formatEnableRule.value.length = 0;
464 formatClearEnableRule.value.length = 0; 501 formatClearEnableRule.value.length = 0;
465 tempDetailTemplateData.value.length = 0; 502 tempDetailTemplateData.value.length = 0;
  503 + formatEditClearEnableRule.value.length = 0;
  504 + formatEditClearAlarmRuleConditions.value.length = 0;
  505 + createEditAlarmRuleData.value.length = 0;
  506 + alaramsObj.alarmType = null;
  507 + alaramsObj.propagate = null;
  508 + alaramsObj.propagateRelationTypes = null;
  509 + alaramsObj.clearRule = {};
  510 + alaramsObj.createRules = {};
  511 + alaramsObj.id = '';
466 } catch {} 512 } catch {}
467 }; 513 };
468 /** 514 /**
469 * 回显第三步数据 515 * 回显第三步数据
470 */ 516 */
  517 + watch(
  518 + () => props.step3FatherEmitCpnData,
  519 + (v) => {
  520 + console.log(v);
  521 + }
  522 + );
471 const echoStep3DataCpnFunc = () => { 523 const echoStep3DataCpnFunc = () => {
472 try { 524 try {
473 if (props.step3FatherEmitCpnData !== 1) { 525 if (props.step3FatherEmitCpnData !== 1) {
474 - console.log(props.step3FatherEmitCpnData); 526 + if (props.step3FatherEmitCpnData == undefined) return;
475 isStep3FatherAddOrEditStatus.value = props.step3FatherEmitCpnStatus; 527 isStep3FatherAddOrEditStatus.value = props.step3FatherEmitCpnStatus;
  528 + for (let i in props.step3FatherEmitCpnData?.createRules) {
  529 + createEditAlarmRuleData.value.push({
  530 + [i]: props.step3FatherEmitCpnData?.createRules[i],
  531 + });
  532 + }
476 nextTick(() => { 533 nextTick(() => {
477 setAlarmTypeValFunc({ 534 setAlarmTypeValFunc({
478 alarmType: props.step3FatherEmitCpnData?.alarmType, 535 alarmType: props.step3FatherEmitCpnData?.alarmType,
479 }); 536 });
480 - setDeliverAlertsValFunc({  
481 - propagate: props.step3FatherEmitCpnData?.propagate,  
482 - propagateRelationTypes: props.step3FatherEmitCpnData?.propagateRelationTypes[0],  
483 - }); 537 + try {
  538 + setDeliverAlertsValFunc({
  539 + propagate: props.step3FatherEmitCpnData?.propagate,
  540 + propagateRelationTypes: props.step3FatherEmitCpnData?.propagateRelationTypes[0],
  541 + });
  542 + } catch {}
484 if (props.step3FatherEmitCpnData?.clearRule?.alarmDetails !== '') { 543 if (props.step3FatherEmitCpnData?.clearRule?.alarmDetails !== '') {
485 isClearStatus.value = true; 544 isClearStatus.value = true;
486 nextTick(() => { 545 nextTick(() => {
@@ -489,34 +548,34 @@ @@ -489,34 +548,34 @@
489 }); 548 });
490 }); 549 });
491 } 550 }
492 - /**  
493 - * 回显第三步创建条件和清除条件  
494 - */  
495 - if (isStep3FatherAddOrEditStatus.value == true) {  
496 - let openEditRuleConditObj: any = {};  
497 - for (let i in props.step3FatherEmitCpnData?.createRules) {  
498 - if (i == 'CRITICAL') {  
499 - openEditRuleConditObj = props.step3FatherEmitCpnData?.createRules[i];  
500 - } else if (i == 'MAJOR') {  
501 - openEditRuleConditObj = props.step3FatherEmitCpnData?.createRules[i];  
502 - } else if (i == 'MINOR') {  
503 - openEditRuleConditObj = props.step3FatherEmitCpnData?.createRules[i];  
504 - } else if (i == 'WARNING') {  
505 - openEditRuleConditObj = props.step3FatherEmitCpnData?.createRules[i];  
506 - } else if (i == 'INDETERMINATE') {  
507 - openEditRuleConditObj = props.step3FatherEmitCpnData?.createRules[i];  
508 - }  
509 - }  
510 - formatEditAlarmRuleConditions.value = openEditRuleConditObj?.condition?.condition;  
511 - formatEditEnableRule.value.push(openEditRuleConditObj?.schedule);  
512 - }  
513 formatEditClearAlarmRuleConditions.value = 551 formatEditClearAlarmRuleConditions.value =
514 props.step3FatherEmitCpnData?.clearRule?.condition?.condition; 552 props.step3FatherEmitCpnData?.clearRule?.condition?.condition;
  553 + formatEditClearEnableRule.value.push(
  554 + props.step3FatherEmitCpnData?.clearRule?.schedule
  555 + );
  556 + if (props.step3FatherEmitCpnData?.clearRule == null) {
  557 + nextTick(() => {
  558 + return (isClearStatus.value = false);
  559 + });
  560 + } else {
  561 + nextTick(() => {
  562 + return (isClearStatus.value = true);
  563 + });
  564 + }
515 }); 565 });
516 } 566 }
517 } catch {} 567 } catch {}
518 }; 568 };
519 echoStep3DataCpnFunc(); 569 echoStep3DataCpnFunc();
  570 + const formatAlarmRuleConditionsDataFunc = (v) => {
  571 + let formatMap = formatAlarmRuleConditionsData1(v)?.condition?.condition.map((f: any) =>
  572 + formatAlarmRuleConditionsData(f)
  573 + );
  574 + return formatMap;
  575 + };
  576 + const formatEnableRuleFuncData = (v) => {
  577 + return formatEnableRuleData(formatAlarmRuleConditionsData1(v)?.schedule);
  578 + };
520 return { 579 return {
521 registerForm, 580 registerForm,
522 registerFormHighSetting, 581 registerFormHighSetting,
@@ -554,13 +613,14 @@ @@ -554,13 +613,14 @@
554 registerFormChangeClearDetail, 613 registerFormChangeClearDetail,
555 clearStep3CpnDataFunc, 614 clearStep3CpnDataFunc,
556 echoStep3DataCpnFunc, 615 echoStep3DataCpnFunc,
557 - formatEditAlarmRuleConditions,  
558 isStep3FatherAddOrEditStatus, 616 isStep3FatherAddOrEditStatus,
559 formatAlarmRuleConditionsData, 617 formatAlarmRuleConditionsData,
560 formatEditClearAlarmRuleConditions, 618 formatEditClearAlarmRuleConditions,
561 - formatEditEnableRule,  
562 formatEnableRuleData, 619 formatEnableRuleData,
563 formatEditClearEnableRule, 620 formatEditClearEnableRule,
  621 + createEditAlarmRuleData,
  622 + formatAlarmRuleConditionsDataFunc,
  623 + formatEnableRuleFuncData,
564 }; 624 };
565 }, 625 },
566 }); 626 });
@@ -13,7 +13,7 @@ @@ -13,7 +13,7 @@
13 components: { 13 components: {
14 BasicForm, 14 BasicForm,
15 }, 15 },
16 - props: ['alarmSeverityInfo'], 16 + props: ['AlarmSeverityCpnData'],
17 emits: ['success', 'register', 'getAllFields'], 17 emits: ['success', 'register', 'getAllFields'],
18 setup(props) { 18 setup(props) {
19 const fieldValue: any = ref({}); 19 const fieldValue: any = ref({});
@@ -26,12 +26,10 @@ @@ -26,12 +26,10 @@
26 const resetFieldsFunc = () => { 26 const resetFieldsFunc = () => {
27 resetFields(); 27 resetFields();
28 }; 28 };
29 -  
30 const getFieldsValueFunc = () => { 29 const getFieldsValueFunc = () => {
31 fieldValue.value = getFieldsValue(); 30 fieldValue.value = getFieldsValue();
32 return fieldValue.value; 31 return fieldValue.value;
33 }; 32 };
34 -  
35 const item = [ 33 const item = [
36 { 34 {
37 value: 'CRITICAL', 35 value: 'CRITICAL',
@@ -69,23 +67,28 @@ @@ -69,23 +67,28 @@
69 }, 67 },
70 }); 68 });
71 }; 69 };
72 -  
73 - // const setFieldsValueFunc = () => {  
74 - // if (props.alarmSeverityInfo != 1) {  
75 - // let newArr = Object.keys(props.alarmSeverityInfo);  
76 - // setTimeout(() => {  
77 - // newArr.forEach((f) => {  
78 - // setFieldsValue({ default: f });  
79 - // });  
80 - // }, 10);  
81 - // } 70 + // const setFieldsValueFunc = (v) => {
  71 + // setFieldsValue({
  72 + // default: v,
  73 + // });
82 // }; 74 // };
83 - // setFieldsValueFunc(); 75 + const setFieldsValueFunc = () => {
  76 + if (props.AlarmSeverityCpnData != 1) {
  77 + let newArr = Object.keys(props.AlarmSeverityCpnData);
  78 + setTimeout(() => {
  79 + newArr.forEach((f) => {
  80 + setFieldsValue({ default: f });
  81 + });
  82 + }, 10);
  83 + }
  84 + };
  85 + setFieldsValueFunc();
84 return { 86 return {
85 resetFieldsFunc, 87 resetFieldsFunc,
86 updateSchemaSelectDisableFunc, 88 updateSchemaSelectDisableFunc,
87 getFieldsValueFunc, 89 getFieldsValueFunc,
88 registerForm, 90 registerForm,
  91 + setFieldsValueFunc,
89 }; 92 };
90 }, 93 },
91 }); 94 });
@@ -13,7 +13,7 @@ @@ -13,7 +13,7 @@
13 components: { 13 components: {
14 BasicForm, 14 BasicForm,
15 }, 15 },
16 - props: ['detailTemplateInfo'], 16 + props: ['DetailTemplateCpnData'],
17 emits: ['success', 'register', 'getAllFields'], 17 emits: ['success', 'register', 'getAllFields'],
18 setup(props) { 18 setup(props) {
19 const fieldValue: any = ref({}); 19 const fieldValue: any = ref({});
@@ -21,17 +21,29 @@ @@ -21,17 +21,29 @@
21 labelWidth: 120, 21 labelWidth: 120,
22 schemas: formSchema, 22 schemas: formSchema,
23 }); 23 });
24 -  
25 const getFieldsValueFunc = () => { 24 const getFieldsValueFunc = () => {
26 fieldValue.value = getFieldsValue(); 25 fieldValue.value = getFieldsValue();
27 return fieldValue.value; 26 return fieldValue.value;
28 }; 27 };
29 const setFieldsValueFunc = () => { 28 const setFieldsValueFunc = () => {
30 - if (props.detailTemplateInfo != 1) {  
31 - resetFields(); 29 + if (props.DetailTemplateCpnData != 1) {
  30 + let openEditRuleConditObj: any = {};
  31 + for (let i in props.DetailTemplateCpnData) {
  32 + if (i == 'CRITICAL') {
  33 + openEditRuleConditObj = props.DetailTemplateCpnData[i];
  34 + } else if (i == 'MAJOR') {
  35 + openEditRuleConditObj = props.DetailTemplateCpnData[i];
  36 + } else if (i == 'MINOR') {
  37 + openEditRuleConditObj = props.DetailTemplateCpnData[i];
  38 + } else if (i == 'WARNING') {
  39 + openEditRuleConditObj = props.DetailTemplateCpnData[i];
  40 + } else if (i == 'INDETERMINATE') {
  41 + openEditRuleConditObj = props.DetailTemplateCpnData[i];
  42 + }
  43 + }
32 setTimeout(() => { 44 setTimeout(() => {
33 setFieldsValue({ 45 setFieldsValue({
34 - alarmDetails: props.detailTemplateInfo, 46 + alarmDetails: openEditRuleConditObj?.alarmDetails,
35 }); 47 });
36 }, 10); 48 }, 10);
37 } 49 }
@@ -45,6 +57,7 @@ @@ -45,6 +57,7 @@
45 resetFieldsFunc, 57 resetFieldsFunc,
46 getFieldsValueFunc, 58 getFieldsValueFunc,
47 registerForm, 59 registerForm,
  60 + setFieldsValueFunc,
48 }; 61 };
49 }, 62 },
50 }); 63 });