Commit 2b86ed7df57e32161f92eca9c039848ef51b19b1
Merge branch 'ft-dev' into 'main'
refractor:重构设备配置,fix:待修复设备配置编辑bug See merge request huang/yun-teng-iot-front!156
Showing
11 changed files
with
441 additions
and
260 deletions
src/hooks/web/useFilter.ts
0 → 100644
| 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 | 53 | </div> |
| 54 | 54 | </template> |
| 55 | 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 | 65 | import { BasicModal, useModalInner } from '/@/components/Modal'; |
| 58 | 66 | import DeviceProfileStep1 from '/@/views/device/profiles/step/DeviceProfileStep1.vue'; |
| 59 | 67 | import DeviceProfileStep2 from '/@/views/device/profiles/step/DeviceProfileStep2.vue'; |
| ... | ... | @@ -93,8 +101,8 @@ |
| 93 | 101 | const DeviceProfileStep4Ref = ref(null); |
| 94 | 102 | const { createMessage } = useMessage(); |
| 95 | 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 | 106 | const getStepThreeData = ref([]); |
| 99 | 107 | const editData: any = ref({}); |
| 100 | 108 | let getStepFourData: any = reactive({}); |
| ... | ... | @@ -104,7 +112,11 @@ |
| 104 | 112 | messageMode: '', |
| 105 | 113 | }, |
| 106 | 114 | }); |
| 107 | - let isGetStepThreeData = reactive({}); | |
| 115 | + let isGetStepThreeData: any = reactive({ | |
| 116 | + profileData: { | |
| 117 | + alarms: [], | |
| 118 | + }, | |
| 119 | + }); | |
| 108 | 120 | const postEditId = ref(''); |
| 109 | 121 | const current = ref(0); |
| 110 | 122 | const isUpdate = ref(0); |
| ... | ... | @@ -115,6 +127,7 @@ |
| 115 | 127 | const isShowRule = ref(true); |
| 116 | 128 | const isEditAndChange = ref(true); |
| 117 | 129 | const isEchoEditStatus = ref(false); |
| 130 | + const isNextStatus = ref(false); | |
| 118 | 131 | |
| 119 | 132 | const getTitle = computed(() => |
| 120 | 133 | isUpdate.value == 1 ? '新增设备配置' : isUpdate.value == 2 ? '编辑设备配置' : '设备配置详情' |
| ... | ... | @@ -123,56 +136,39 @@ |
| 123 | 136 | const [register, { closeModal }] = useModalInner(async (data) => { |
| 124 | 137 | isUpdate.value = data.isUpdate; |
| 125 | 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 | 140 | isShowRule.value = true; |
| 134 | 141 | isShowOkBtnFalse.value = true; |
| 135 | 142 | current.value = 0; |
| 136 | 143 | isStatus.value = !data.isUpdate; |
| 137 | 144 | isEchoEditStatus.value = false; |
| 138 | 145 | } else if (isUpdate.value == 2) { |
| 146 | + handleCancel(); | |
| 139 | 147 | isShowRule.value = true; |
| 140 | 148 | isShowOkBtnFalse.value = true; |
| 149 | + isEchoEditStatus.value = true; | |
| 141 | 150 | current.value = 0; |
| 142 | 151 | postEditId.value = data.record.id; |
| 143 | 152 | editData.value = await deviceConfigGetDetail(postEditId.value); |
| 144 | - // proxy.$refs.DeviceProfileStep3Ref.isAddRuleStatusFunc(true); | |
| 145 | - // isStatus.value = data.isUpdate; | |
| 146 | - //回显第一步数据 | |
| 147 | 153 | proxy.$refs.DeviceProfileStep1Ref.setStepOneFieldsValueFunc({ |
| 148 | 154 | name: editData.value.name, |
| 149 | 155 | defaultRuleChainId: editData.value.defaultRuleChainId, |
| 150 | 156 | defaultQueueName: editData.value.defaultQueueName, |
| 151 | 157 | description: editData.value.description, |
| 152 | 158 | }); |
| 153 | - // proxy.$refs.DeviceProfileStep3Ref.clearProfileDataFunc(); | |
| 154 | - // proxy.$refs.DeviceProfileStep3Ref.addAlarmRule(); | |
| 155 | - emit('success'); | |
| 156 | 159 | } else if (isUpdate.value == 3) { |
| 160 | + handleCancel(); | |
| 157 | 161 | isShowRule.value = false; |
| 158 | 162 | isShowOkBtnFalse.value = false; |
| 159 | 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 | 174 | function handleStepPrev() { |
| ... | ... | @@ -180,11 +176,15 @@ |
| 180 | 176 | } |
| 181 | 177 | //第一步 |
| 182 | 178 | function handleStepNext1(v, v1) { |
| 179 | + isNextStatus.value = true; | |
| 180 | + if (isNextStatus.value) { | |
| 181 | + getStepOneData = { | |
| 182 | + ...v, | |
| 183 | + ...{ icon: v1 }, | |
| 184 | + }; | |
| 185 | + } | |
| 183 | 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 | 188 | proxy.$refs.DeviceProfileStep2Ref?.setStepTwoFieldsValueFunc({ |
| 189 | 189 | transportType: editData.value?.profileData.transportConfiguration.type, |
| 190 | 190 | }); |
| ... | ... | @@ -196,97 +196,93 @@ |
| 196 | 196 | } |
| 197 | 197 | //第二步 |
| 198 | 198 | function handleStep2Next(v) { |
| 199 | + isNextStatus.value = true; | |
| 200 | + if ((isNextStatus.value = true)) { | |
| 201 | + getStepTwoData = { | |
| 202 | + ...v, | |
| 203 | + }; | |
| 204 | + } | |
| 199 | 205 | current.value++; |
| 200 | - getStepTwoData.value = v; | |
| 201 | - if (isUpdate.value == 1) { | |
| 202 | - } else if (isUpdate.value == 2) { | |
| 206 | + if (isUpdate.value == 2) { | |
| 203 | 207 | try { |
| 204 | 208 | isEchoEditStatus.value = true; |
| 205 | 209 | proxy.$refs.DeviceProfileStep3Ref?.echoStep3DataFunc( |
| 206 | 210 | editData.value.profileData.alarms, |
| 207 | 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 | 213 | } catch {} |
| 234 | 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 | 225 | function handleStep3Next(v, v1) { |
| 262 | 226 | try { |
| 227 | + isNextStatus.value = true; | |
| 263 | 228 | isEditAndChange.value = v1; |
| 264 | 229 | current.value++; |
| 265 | 230 | getStepThreeData.value = v; |
| 266 | 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 | 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 | 263 | } catch {} |
| 280 | 264 | } |
| 281 | 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 | 286 | try { |
| 291 | 287 | getStepFourData = await proxy.$refs.DeviceProfileStep4Ref?.getAllFields(); |
| 292 | 288 | const getJoinAlarmContactIdData = getStepFourData.alarmContactId.join(','); |
| ... | ... | @@ -296,51 +292,51 @@ |
| 296 | 292 | alarmProfileData.alarmProfile.alarmContactId = getAlarmContactId.value; |
| 297 | 293 | alarmProfileData.alarmProfile.messageMode = getMessageMode.value; |
| 298 | 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 | 326 | const handleCancel = () => { |
| 337 | - closeModal(); | |
| 338 | 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 | 340 | } catch {} |
| 345 | 341 | }; |
| 346 | 342 | function handleRedo() { | ... | ... |
| ... | ... | @@ -15,7 +15,7 @@ |
| 15 | 15 | > |
| 16 | 16 | <img |
| 17 | 17 | v-if="peresonalPic" |
| 18 | - :src="peresonalPic" | |
| 18 | + :src="peresonalPic ? peresonalPic : echoPic" | |
| 19 | 19 | alt="avatar" |
| 20 | 20 | style="width: 6.25rem; height: 6.25rem" |
| 21 | 21 | /> |
| ... | ... | @@ -54,6 +54,7 @@ |
| 54 | 54 | emits: ['next', 'resetFunc', 'register'], |
| 55 | 55 | setup(_, { emit }) { |
| 56 | 56 | const { createMessage } = useMessage(); |
| 57 | + const echoPic = ref(''); | |
| 57 | 58 | const [register, { validate, setFieldsValue, resetFields }] = useForm({ |
| 58 | 59 | labelWidth: 100, |
| 59 | 60 | schemas: step1Schemas, |
| ... | ... | @@ -69,6 +70,9 @@ |
| 69 | 70 | //回显数据 |
| 70 | 71 | const setStepOneFieldsValueFunc = (v) => { |
| 71 | 72 | setFieldsValue(v); |
| 73 | + if (v.image !== null) { | |
| 74 | + echoPic.value = v.image; | |
| 75 | + } | |
| 72 | 76 | }; |
| 73 | 77 | const peresonalPic = ref(); |
| 74 | 78 | |
| ... | ... | @@ -115,7 +119,11 @@ |
| 115 | 119 | }; |
| 116 | 120 | const getStep1Func = async () => { |
| 117 | 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 | 128 | return { |
| 121 | 129 | editIconFunc, |
| ... | ... | @@ -128,6 +136,7 @@ |
| 128 | 136 | beforeUploadqrcodePic, |
| 129 | 137 | customUploadqrcodePic, |
| 130 | 138 | getStep1Func, |
| 139 | + echoPic, | |
| 131 | 140 | }; |
| 132 | 141 | }, |
| 133 | 142 | }); | ... | ... |
| ... | ... | @@ -41,7 +41,7 @@ |
| 41 | 41 | }, |
| 42 | 42 | emits: ['next', 'prev', 'register'], |
| 43 | 43 | setup(_, { emit }) { |
| 44 | - const [register, { validate, setFieldsValue, resetFields }] = useForm({ | |
| 44 | + const [register, { getFieldsValue, validate, setFieldsValue, resetFields }] = useForm({ | |
| 45 | 45 | labelWidth: 80, |
| 46 | 46 | schemas: step2Schemas, |
| 47 | 47 | actionColOptions: { |
| ... | ... | @@ -66,12 +66,18 @@ |
| 66 | 66 | } finally { |
| 67 | 67 | } |
| 68 | 68 | } |
| 69 | + | |
| 70 | + const getStep2DataFunc = () => { | |
| 71 | + const val = getFieldsValue(); | |
| 72 | + return val; | |
| 73 | + }; | |
| 69 | 74 | return { |
| 70 | 75 | customResetFunc, |
| 71 | 76 | customSubmitFunc, |
| 72 | 77 | register, |
| 73 | 78 | setStepTwoFieldsValueFunc, |
| 74 | 79 | customClearStepTwoValueFunc, |
| 80 | + getStep2DataFunc, | |
| 75 | 81 | }; |
| 76 | 82 | }, |
| 77 | 83 | }); | ... | ... |
| 1 | 1 | <template> |
| 2 | 2 | <div> |
| 3 | 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 | 8 | <p style="font-size: large">未配置报警规则</p> |
| 6 | 9 | </div> |
| 7 | 10 | <div> |
| 8 | 11 | <template |
| 9 | 12 | v-for="(item, index) in !getIsEchoEditStatus ? alarmsData : echoEditData" |
| 10 | 13 | :key="index" |
| 14 | + :ref="item" | |
| 11 | 15 | > |
| 12 | 16 | <span style="display: none">{{ item }}</span> |
| 13 | 17 | <span style="display: none">{{ index }}</span> |
| 14 | 18 | <div class="cursor-pointer" style="position: relative; top: 3.5vh; right: -41.6vw"> |
| 15 | 19 | <img |
| 16 | 20 | style="cursor: pointer" |
| 17 | - @click="removeAlarmRule(index, item)" | |
| 21 | + @click="removeAlarmRule(item, index)" | |
| 18 | 22 | alt="移除" |
| 19 | 23 | src="../../../../assets/images/delete.png" |
| 20 | 24 | /> |
| ... | ... | @@ -44,7 +48,11 @@ |
| 44 | 48 | <div style="margin-left: 14.5vw; margin-top: 2vh"> |
| 45 | 49 | <a-button class="mr-5" @click="prevStepFunc">上一步</a-button> |
| 46 | 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 | 56 | >添加报警规则</a-button |
| 49 | 57 | > |
| 50 | 58 | </div> |
| ... | ... | @@ -53,40 +61,65 @@ |
| 53 | 61 | </template> |
| 54 | 62 | |
| 55 | 63 | <script lang="ts"> |
| 56 | - import { defineComponent, ref, getCurrentInstance, reactive } from 'vue'; | |
| 64 | + import { defineComponent, ref, getCurrentInstance, reactive, watch } from 'vue'; | |
| 57 | 65 | import CommonCpns from './common/index.vue'; |
| 66 | + import { deteleObject } from '/@/hooks/web/useFilter'; | |
| 58 | 67 | |
| 59 | 68 | export default defineComponent({ |
| 60 | 69 | components: { |
| 61 | 70 | CommonCpns, |
| 62 | 71 | }, |
| 72 | + props: ['isShowAddRule'], | |
| 63 | 73 | emits: ['next', 'prev'], |
| 64 | - setup(_, { emit }) { | |
| 74 | + setup(props, { emit }) { | |
| 65 | 75 | const { proxy } = getCurrentInstance() as any; |
| 66 | 76 | const commonCpnsRef = ref(null); |
| 67 | 77 | const alarmsData: any = ref([]); |
| 68 | 78 | let profileData: any = reactive({}); |
| 69 | 79 | const echoEditData: any = ref([]); |
| 70 | 80 | const getIsEchoEditStatus = ref(false); |
| 81 | + const btnClose = ref(true); | |
| 82 | + let getO = reactive({}); | |
| 71 | 83 | const prevStepFunc = () => { |
| 72 | 84 | emit('prev'); |
| 73 | 85 | }; |
| 74 | 86 | const nextStepFunc = async () => { |
| 75 | 87 | profileData = await proxy.$refs.commonCpnsRef?.getStep3AllDataFunc(); |
| 76 | 88 | alarmsData.value.push(profileData); |
| 77 | - alarmsData.value.shift(); | |
| 78 | 89 | emit('next', { |
| 79 | 90 | alarms: alarmsData.value, |
| 80 | 91 | }); |
| 81 | 92 | }; |
| 82 | - const clickAddAlaramRuleFunc = async () => { | |
| 93 | + const getStep3AllDataFunc = async () => { | |
| 83 | 94 | profileData = await proxy.$refs.commonCpnsRef?.getStep3AllDataFunc(); |
| 84 | 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 | 127 | const clearStep3DataFunc = () => { |
| 95 | 128 | try { |
| 96 | 129 | alarmsData.value.length = 0; |
| 97 | - profileData = {}; | |
| 130 | + echoEditData.value.length = 0; | |
| 131 | + // profileData = {}; | |
| 98 | 132 | proxy.$refs.commonCpnsRef?.clearStep3CpnDataFunc(); |
| 133 | + getIsEchoEditStatus.value = false; | |
| 134 | + getO = {}; | |
| 99 | 135 | } catch {} |
| 100 | 136 | }; |
| 101 | 137 | /** |
| ... | ... | @@ -106,10 +142,18 @@ |
| 106 | 142 | getIsEchoEditStatus.value = s; |
| 107 | 143 | if (getIsEchoEditStatus.value === true) { |
| 108 | 144 | echoEditData.value = e; |
| 145 | + if (echoEditData.value == null) { | |
| 146 | + echoEditData.value = []; | |
| 147 | + } | |
| 109 | 148 | } |
| 110 | 149 | } catch {} |
| 111 | 150 | }; |
| 112 | - | |
| 151 | + watch( | |
| 152 | + () => props.isShowAddRule, | |
| 153 | + (v) => { | |
| 154 | + btnClose.value = v; | |
| 155 | + } | |
| 156 | + ); | |
| 113 | 157 | return { |
| 114 | 158 | clickAddAlaramRuleFunc, |
| 115 | 159 | prevStepFunc, |
| ... | ... | @@ -121,6 +165,8 @@ |
| 121 | 165 | echoStep3DataFunc, |
| 122 | 166 | echoEditData, |
| 123 | 167 | getIsEchoEditStatus, |
| 168 | + getStep3AllDataFunc, | |
| 169 | + btnClose, | |
| 124 | 170 | }; |
| 125 | 171 | }, |
| 126 | 172 | }); | ... | ... |
| ... | ... | @@ -15,17 +15,17 @@ |
| 15 | 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 | 19 | <Button type="primary" style="border-radius: 2px" class="mt-5" @click="prevStep4" |
| 20 | 20 | >上一步</Button |
| 21 | 21 | > |
| 22 | 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 | 24 | <Button type="default" style="border-radius: 2px" class="mt-5" @click="addStep4"> |
| 25 | 25 | 打开告警通知</Button |
| 26 | 26 | > |
| 27 | 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 | 29 | <Button type="default" style="border-radius: 2px" class="mt-5" @click="closeStep4"> |
| 30 | 30 | 关闭</Button |
| 31 | 31 | > |
| ... | ... | @@ -34,7 +34,7 @@ |
| 34 | 34 | </div> |
| 35 | 35 | </template> |
| 36 | 36 | <script lang="ts"> |
| 37 | - import { defineComponent, ref } from 'vue'; | |
| 37 | + import { defineComponent, ref, nextTick } from 'vue'; | |
| 38 | 38 | import { BasicForm, useForm } from '/@/components/Form/index'; |
| 39 | 39 | import { alertContactsSchemas } from './data'; |
| 40 | 40 | import { Button } from '/@/components/Button'; |
| ... | ... | @@ -58,7 +58,11 @@ |
| 58 | 58 | setFieldsValue(v); |
| 59 | 59 | }; |
| 60 | 60 | const clearAlaramContactAndNoticeMethodFunc = () => { |
| 61 | - resetFields(); | |
| 61 | + try { | |
| 62 | + nextTick(() => { | |
| 63 | + // resetFields(); | |
| 64 | + }); | |
| 65 | + } catch {} | |
| 62 | 66 | }; |
| 63 | 67 | const getAllFields = async (getV) => { |
| 64 | 68 | const values = await validate(); | ... | ... |
| 1 | 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 | 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 | 22 | <!-- 创建报警规则 --> |
| 23 | 23 | <div style="margin-top: -6vh"> |
| 24 | 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 | 28 | >请添加创建报警规则</p |
| 27 | 29 | > |
| 28 | 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 | 38 | <span style="display: none">{{ item }}</span> |
| 31 | 39 | <span style="display: none">{{ index }}</span> |
| 32 | 40 | <div class="cursor-pointer" style="position: relative; top: 15.5vh; right: -40.8vw"> |
| ... | ... | @@ -39,8 +47,14 @@ |
| 39 | 47 | </div> |
| 40 | 48 | <div style="width: 38vw; height: 30vh; border: 1px solid grey; border-radius: 4px"> |
| 41 | 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 | 58 | <AlarmRuleConditionsCpn |
| 45 | 59 | ref="AlarmRuleConditionsRef" |
| 46 | 60 | @register="registerAlarmRuleConditionsModal" |
| ... | ... | @@ -61,21 +75,19 @@ |
| 61 | 75 | /></a-button> |
| 62 | 76 | <div> |
| 63 | 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 | 84 | <p v-if="index1 == index"> |
| 66 | 85 | 报警规则条件:{{ formatAlarmRuleConditionsFunc(item1) }} |
| 67 | 86 | </p> |
| 68 | 87 | </template> |
| 69 | 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 | 91 | </div> |
| 80 | 92 | </div> |
| 81 | 93 | </div> |
| ... | ... | @@ -85,18 +97,21 @@ |
| 85 | 97 | ><PlusCircleOutlined |
| 86 | 98 | /></a-button> |
| 87 | 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 | 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 | 110 | <p v-if="index2 == index"> 启用规则:{{ formatEnableRuleFunc(item2) }} </p> |
| 94 | 111 | </template> |
| 95 | 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 | 115 | </div> |
| 101 | 116 | </div> |
| 102 | 117 | </div> |
| ... | ... | @@ -176,7 +191,9 @@ |
| 176 | 191 | ><PlusCircleOutlined |
| 177 | 192 | /></a-button> |
| 178 | 193 | <div> |
| 179 | - <p v-if="formatEnableRule.length == 0">始终启用</p> | |
| 194 | + <p v-if="formatEnableRule.length == 0 && !isStep3FatherAddOrEditStatus" | |
| 195 | + >启用规则:始终启用</p | |
| 196 | + > | |
| 180 | 197 | <div> |
| 181 | 198 | <template v-for="(item4, index4) in formatClearEnableRule" :key="index4"> |
| 182 | 199 | <span style="display: none">{{ index4 }}</span> |
| ... | ... | @@ -184,9 +201,14 @@ |
| 184 | 201 | </template> |
| 185 | 202 | </div> |
| 186 | 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 | 210 | <span style="display: none">{{ index44 }}</span> |
| 189 | - <p> 启用规则:{{ formatClearEnableRuleFunc(item44) }} </p> | |
| 211 | + <p> 启用规则:{{ formatEnableRuleData(item44) }} </p> | |
| 190 | 212 | </template> |
| 191 | 213 | </div> |
| 192 | 214 | </div> |
| ... | ... | @@ -207,7 +229,7 @@ |
| 207 | 229 | </div> |
| 208 | 230 | </template> |
| 209 | 231 | <script lang="ts"> |
| 210 | - import { defineComponent, ref, nextTick, getCurrentInstance, reactive } from 'vue'; | |
| 232 | + import { defineComponent, ref, nextTick, getCurrentInstance, reactive, watch } from 'vue'; | |
| 211 | 233 | import { BasicForm, useForm } from '/@/components/Form'; |
| 212 | 234 | import { step3Schemas, step3HighSetting, formChangeDetailSchema } from '../data'; |
| 213 | 235 | import { Checkbox } from 'ant-design-vue'; |
| ... | ... | @@ -218,7 +240,11 @@ |
| 218 | 240 | import EnableRuleCpn from '../cpns/enablerule/index.vue'; |
| 219 | 241 | import { useModal } from '/@/components/Modal'; |
| 220 | 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 | 249 | export default defineComponent({ |
| 224 | 250 | components: { |
| ... | ... | @@ -234,14 +260,13 @@ |
| 234 | 260 | setup(props) { |
| 235 | 261 | const { proxy } = getCurrentInstance() as any; |
| 236 | 262 | const createAlarmRuleData: any = ref([1]); |
| 263 | + const createEditAlarmRuleData: any = ref([]); | |
| 237 | 264 | const AlarmRuleConditionsRef = ref(null); |
| 238 | 265 | const EnableRuleRef = ref(null); |
| 239 | 266 | const formatAlarmRuleConditions: any = ref([]); |
| 240 | - const formatEditAlarmRuleConditions: any = ref([]); | |
| 241 | 267 | const formatClearAlarmRuleConditions: any = ref([]); |
| 242 | 268 | const formatEditClearAlarmRuleConditions: any = ref([]); |
| 243 | 269 | const formatEnableRule: any = ref([]); |
| 244 | - const formatEditEnableRule: any = ref([]); | |
| 245 | 270 | const formatClearEnableRule: any = ref([]); |
| 246 | 271 | const formatEditClearEnableRule: any = ref([]); |
| 247 | 272 | let alaramsObj: any = reactive({ |
| ... | ... | @@ -314,6 +339,10 @@ |
| 314 | 339 | const clickAddCreateRuleFunc = () => { |
| 315 | 340 | createAlarmRuleData.value.push(1); |
| 316 | 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 | 369 | ...{ schedule: Object.keys(kongEnable).length == 0 ? null : kongEnable }, |
| 341 | 370 | }; |
| 342 | 371 | }; |
| 372 | + /** | |
| 373 | + * 获取清除报警规则数据 | |
| 374 | + */ | |
| 343 | 375 | const clickAddClearRuleFunc = () => { |
| 344 | 376 | isClearStatus.value = true; |
| 345 | 377 | const val6 = getRegisterFormClearChangeDetailFunc(); |
| ... | ... | @@ -377,21 +409,25 @@ |
| 377 | 409 | const clickAddAlarmRuleConditionsFunc = () => { |
| 378 | 410 | nextTick(() => { |
| 379 | 411 | openModalAlarmRuleConditions(true); |
| 412 | + proxy.$refs.AlarmRuleConditionsRef?.resetDataFunc(); | |
| 380 | 413 | }); |
| 381 | 414 | }; |
| 382 | 415 | const clickAddEnableRuleFunc = () => { |
| 383 | 416 | nextTick(() => { |
| 384 | 417 | openModalEnableRule(true); |
| 418 | + proxy.$refs.DetailTemplateRef?.resetDataFunc(); | |
| 385 | 419 | }); |
| 386 | 420 | }; |
| 387 | 421 | const clickClearAlarmRuleConditionsFunc = () => { |
| 388 | 422 | nextTick(() => { |
| 389 | 423 | openModalClearAlarmRuleConditions(true); |
| 424 | + proxy.$refs.AlarmRuleConditionsRef?.resetDataFunc(); | |
| 390 | 425 | }); |
| 391 | 426 | }; |
| 392 | 427 | const clickClearEnableRuleFunc = () => { |
| 393 | 428 | nextTick(() => { |
| 394 | 429 | openModalClearEnableRule(true); |
| 430 | + proxy.$refs.DetailTemplateRef?.resetDataFunc(); | |
| 395 | 431 | }); |
| 396 | 432 | }; |
| 397 | 433 | const getAlarmRuleConditionsValFunc = (e) => { |
| ... | ... | @@ -441,8 +477,9 @@ |
| 441 | 477 | } |
| 442 | 478 | getAddCreateRuleFunc(); |
| 443 | 479 | clickAddClearRuleFunc(); |
| 444 | - if (alaramsObj.clearRule.condition == null) { | |
| 480 | + if (alaramsObj.clearRule.condition == null || alaramsObj.clearRule.schedule == null) { | |
| 445 | 481 | isClearStatus.value = false; |
| 482 | + alaramsObj.clearRule = null; | |
| 446 | 483 | } |
| 447 | 484 | return alaramsObj; |
| 448 | 485 | }; |
| ... | ... | @@ -463,24 +500,46 @@ |
| 463 | 500 | formatEnableRule.value.length = 0; |
| 464 | 501 | formatClearEnableRule.value.length = 0; |
| 465 | 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 | 512 | } catch {} |
| 467 | 513 | }; |
| 468 | 514 | /** |
| 469 | 515 | * 回显第三步数据 |
| 470 | 516 | */ |
| 517 | + watch( | |
| 518 | + () => props.step3FatherEmitCpnData, | |
| 519 | + (v) => { | |
| 520 | + console.log(v); | |
| 521 | + } | |
| 522 | + ); | |
| 471 | 523 | const echoStep3DataCpnFunc = () => { |
| 472 | 524 | try { |
| 473 | 525 | if (props.step3FatherEmitCpnData !== 1) { |
| 474 | - console.log(props.step3FatherEmitCpnData); | |
| 526 | + if (props.step3FatherEmitCpnData == undefined) return; | |
| 475 | 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 | 533 | nextTick(() => { |
| 477 | 534 | setAlarmTypeValFunc({ |
| 478 | 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 | 543 | if (props.step3FatherEmitCpnData?.clearRule?.alarmDetails !== '') { |
| 485 | 544 | isClearStatus.value = true; |
| 486 | 545 | nextTick(() => { |
| ... | ... | @@ -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 | 551 | formatEditClearAlarmRuleConditions.value = |
| 514 | 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 | 567 | } catch {} |
| 518 | 568 | }; |
| 519 | 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 | 579 | return { |
| 521 | 580 | registerForm, |
| 522 | 581 | registerFormHighSetting, |
| ... | ... | @@ -554,13 +613,14 @@ |
| 554 | 613 | registerFormChangeClearDetail, |
| 555 | 614 | clearStep3CpnDataFunc, |
| 556 | 615 | echoStep3DataCpnFunc, |
| 557 | - formatEditAlarmRuleConditions, | |
| 558 | 616 | isStep3FatherAddOrEditStatus, |
| 559 | 617 | formatAlarmRuleConditionsData, |
| 560 | 618 | formatEditClearAlarmRuleConditions, |
| 561 | - formatEditEnableRule, | |
| 562 | 619 | formatEnableRuleData, |
| 563 | 620 | formatEditClearEnableRule, |
| 621 | + createEditAlarmRuleData, | |
| 622 | + formatAlarmRuleConditionsDataFunc, | |
| 623 | + formatEnableRuleFuncData, | |
| 564 | 624 | }; |
| 565 | 625 | }, |
| 566 | 626 | }); | ... | ... |
| ... | ... | @@ -13,7 +13,7 @@ |
| 13 | 13 | components: { |
| 14 | 14 | BasicForm, |
| 15 | 15 | }, |
| 16 | - props: ['alarmSeverityInfo'], | |
| 16 | + props: ['AlarmSeverityCpnData'], | |
| 17 | 17 | emits: ['success', 'register', 'getAllFields'], |
| 18 | 18 | setup(props) { |
| 19 | 19 | const fieldValue: any = ref({}); |
| ... | ... | @@ -26,12 +26,10 @@ |
| 26 | 26 | const resetFieldsFunc = () => { |
| 27 | 27 | resetFields(); |
| 28 | 28 | }; |
| 29 | - | |
| 30 | 29 | const getFieldsValueFunc = () => { |
| 31 | 30 | fieldValue.value = getFieldsValue(); |
| 32 | 31 | return fieldValue.value; |
| 33 | 32 | }; |
| 34 | - | |
| 35 | 33 | const item = [ |
| 36 | 34 | { |
| 37 | 35 | value: 'CRITICAL', |
| ... | ... | @@ -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 | 86 | return { |
| 85 | 87 | resetFieldsFunc, |
| 86 | 88 | updateSchemaSelectDisableFunc, |
| 87 | 89 | getFieldsValueFunc, |
| 88 | 90 | registerForm, |
| 91 | + setFieldsValueFunc, | |
| 89 | 92 | }; |
| 90 | 93 | }, |
| 91 | 94 | }); | ... | ... |
| ... | ... | @@ -13,7 +13,7 @@ |
| 13 | 13 | components: { |
| 14 | 14 | BasicForm, |
| 15 | 15 | }, |
| 16 | - props: ['detailTemplateInfo'], | |
| 16 | + props: ['DetailTemplateCpnData'], | |
| 17 | 17 | emits: ['success', 'register', 'getAllFields'], |
| 18 | 18 | setup(props) { |
| 19 | 19 | const fieldValue: any = ref({}); |
| ... | ... | @@ -21,17 +21,29 @@ |
| 21 | 21 | labelWidth: 120, |
| 22 | 22 | schemas: formSchema, |
| 23 | 23 | }); |
| 24 | - | |
| 25 | 24 | const getFieldsValueFunc = () => { |
| 26 | 25 | fieldValue.value = getFieldsValue(); |
| 27 | 26 | return fieldValue.value; |
| 28 | 27 | }; |
| 29 | 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 | 44 | setTimeout(() => { |
| 33 | 45 | setFieldsValue({ |
| 34 | - alarmDetails: props.detailTemplateInfo, | |
| 46 | + alarmDetails: openEditRuleConditObj?.alarmDetails, | |
| 35 | 47 | }); |
| 36 | 48 | }, 10); |
| 37 | 49 | } |
| ... | ... | @@ -45,6 +57,7 @@ |
| 45 | 57 | resetFieldsFunc, |
| 46 | 58 | getFieldsValueFunc, |
| 47 | 59 | registerForm, |
| 60 | + setFieldsValueFunc, | |
| 48 | 61 | }; |
| 49 | 62 | }, |
| 50 | 63 | }); | ... | ... |