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