Commit 07334e5eadabad51276d63b97d5b28b4eb27def4
Merge branch 'f-dev' into 'main'
fix:修改场景联动新增或者编辑 设备、属性、条件筛选、清除告警验证问题 See merge request huang/yun-teng-iot-front!237
Showing
5 changed files
with
90 additions
and
22 deletions
| 1 | 1 | <template> |
| 2 | 2 | <BasicModal |
| 3 | - :useWrapper="true" | |
| 4 | 3 | width="82vw" |
| 5 | 4 | :height="compHeight" |
| 6 | 5 | v-bind="$attrs" |
| 7 | 6 | @register="registerModal" |
| 8 | 7 | @ok="handleSubmit" |
| 9 | 8 | :draggable="false" |
| 9 | + class="basic-modal" | |
| 10 | + className="{styles.headSetPop}" | |
| 10 | 11 | > |
| 11 | 12 | <div |
| 12 | 13 | style=" |
| ... | ... | @@ -254,4 +255,7 @@ |
| 254 | 255 | transition: border-color 0.3s ease; |
| 255 | 256 | } |
| 256 | 257 | } |
| 258 | + .headSetPop :global(.ant-modal-header) { | |
| 259 | + padding: 27px 0px !important; | |
| 260 | + } | |
| 257 | 261 | </style> | ... | ... |
| ... | ... | @@ -586,10 +586,10 @@ |
| 586 | 586 | getTriggerFormValue.value = unref(skipUnwrap.triggerItemRefs)?.map((item) => |
| 587 | 587 | genTriggerOrConditionData(item.getFieldsValueFunc()) |
| 588 | 588 | ); |
| 589 | - getConditionFormValue.value = unref(skipUnwrap.conditionItemRefs).map((item) => | |
| 589 | + getConditionFormValue.value = unref(skipUnwrap.conditionItemRefs)?.map((item) => | |
| 590 | 590 | genTriggerOrConditionData(item.getFieldsValueFunc()) |
| 591 | 591 | ); |
| 592 | - getActionFormValue.value = unref(skipUnwrap.actionItemRefs).map((item) => | |
| 592 | + getActionFormValue.value = unref(skipUnwrap.actionItemRefs)?.map((item) => | |
| 593 | 593 | genActionData(item.getFieldsValueFunc()) |
| 594 | 594 | ); |
| 595 | 595 | }; |
| ... | ... | @@ -611,21 +611,6 @@ |
| 611 | 611 | id: unref(id), |
| 612 | 612 | tenantId: unref(tenantId), |
| 613 | 613 | }; |
| 614 | - //TODO fengtao---修改之前如果是新增,如果条件筛选页面打开,但没填值,还是可以新增成功 | |
| 615 | - const typeBoolean = postAddOrEditData?.triggers?.some((f) => { | |
| 616 | - let type = false; | |
| 617 | - f?.triggerCondition?.condition?.condition?.some((s) => { | |
| 618 | - if (s?.predicate?.value?.defaultValue == undefined) { | |
| 619 | - type = true; | |
| 620 | - } else { | |
| 621 | - type = false; | |
| 622 | - } | |
| 623 | - }); | |
| 624 | - return type; | |
| 625 | - }); | |
| 626 | - if (typeBoolean) return createMessage.error('请填写条件筛选'); | |
| 627 | - //TODO 先暂时不加验证--设备-属性-填了加验证 | |
| 628 | - //TODO fengtao | |
| 629 | 614 | await screenLinkPageAddApi(postAddOrEditData, unref(isUpdate)); |
| 630 | 615 | createMessage.success(`${unref(isUpdate) ? '编辑' : '新增'}成功`); |
| 631 | 616 | closeDrawer(); | ... | ... |
| ... | ... | @@ -69,6 +69,7 @@ |
| 69 | 69 | import AlarmSchedule from './AlarmSchedule.vue'; |
| 70 | 70 | import { useModal } from '/@/components/Modal'; |
| 71 | 71 | import { cloneDeep } from 'lodash-es'; |
| 72 | + import { useMessage } from '/@/hooks/web/useMessage'; | |
| 72 | 73 | |
| 73 | 74 | const props = defineProps({ |
| 74 | 75 | title: { |
| ... | ... | @@ -85,6 +86,8 @@ |
| 85 | 86 | }, |
| 86 | 87 | }); |
| 87 | 88 | const emit = defineEmits(['delete']); |
| 89 | + const { createMessage } = useMessage(); | |
| 90 | + | |
| 88 | 91 | const isUpdate = ref(false); |
| 89 | 92 | const conditionScreeningRef = ref(); |
| 90 | 93 | const [registerForm, { resetFields, getFieldsValue, updateSchema, setFieldsValue }] = useForm({ |
| ... | ... | @@ -99,6 +102,30 @@ |
| 99 | 102 | const predicate = conditionScreeningRef?.value?.refItem?.conditionScreeningRefs?.value?.map( |
| 100 | 103 | (item) => item.getFieldsValue() |
| 101 | 104 | ); |
| 105 | + //TODO-fengtao-设备、属性、条件筛选验证 | |
| 106 | + const validate = getFieldsValue(); | |
| 107 | + if (validate.device == 'PART') { | |
| 108 | + if (validate.entityId == undefined) return createMessage.error('请选择设备'); | |
| 109 | + } | |
| 110 | + if (validate.type2 == '' || validate.type2 == null) return createMessage.error('请选择属性'); | |
| 111 | + if (predicate == undefined) return createMessage.error('请填写条件筛选'); | |
| 112 | + let predicateIsRequired = false; | |
| 113 | + if (predicate) { | |
| 114 | + predicate.some((f) => { | |
| 115 | + let arr = Object.keys(f); | |
| 116 | + if (arr.length == 0) { | |
| 117 | + predicateIsRequired = true; | |
| 118 | + } | |
| 119 | + if (f.operation == undefined) { | |
| 120 | + predicateIsRequired = true; | |
| 121 | + } | |
| 122 | + if (f.value == undefined) { | |
| 123 | + predicateIsRequired = true; | |
| 124 | + } | |
| 125 | + }); | |
| 126 | + } | |
| 127 | + if (predicateIsRequired) return createMessage.error('请填写条件筛选'); | |
| 128 | + //TODO-fengtao-设备、属性、条件筛选验证 | |
| 102 | 129 | return { ...getFieldsValue(), predicate, schedule: alarmScheduleRef.value.scheduleData }; |
| 103 | 130 | }; |
| 104 | 131 | ... | ... |
| ... | ... | @@ -68,6 +68,7 @@ |
| 68 | 68 | import 'jsoneditor/dist/jsoneditor.min.css'; |
| 69 | 69 | import { QuestionCircleOutlined } from '@ant-design/icons-vue'; |
| 70 | 70 | import ClearAlarm from './ClearAlarm.vue'; |
| 71 | + import { useMessage } from '/@/hooks/web/useMessage'; | |
| 71 | 72 | |
| 72 | 73 | const props = defineProps({ |
| 73 | 74 | actionIndex: { |
| ... | ... | @@ -99,6 +100,8 @@ |
| 99 | 100 | const refItem = { |
| 100 | 101 | clearRuleRefs: ref([]), |
| 101 | 102 | }; |
| 103 | + const { createMessage } = useMessage(); | |
| 104 | + | |
| 102 | 105 | const emit = defineEmits(['deleteAction', 'getActionFormArr']); |
| 103 | 106 | const options = computed(() => { |
| 104 | 107 | return [ |
| ... | ... | @@ -133,6 +136,51 @@ |
| 133 | 136 | schedule: item.alarmScheduleRef.scheduleData, |
| 134 | 137 | }; |
| 135 | 138 | }); |
| 139 | + //TODO-fengtao-清除告警验证 | |
| 140 | + let deviceIdIsRequired = false; | |
| 141 | + let attrIsRequired = false; | |
| 142 | + let predicateIsRequired = false; | |
| 143 | + let predicateDoubleIsRequired = false; | |
| 144 | + if (clearRule) { | |
| 145 | + clearRule.some((s) => { | |
| 146 | + if (s.device == 'PART') { | |
| 147 | + if (s.entityId == undefined) { | |
| 148 | + deviceIdIsRequired = true; | |
| 149 | + } | |
| 150 | + } | |
| 151 | + if (s.type2 == '' || s.type2 == null) { | |
| 152 | + attrIsRequired = true; | |
| 153 | + } | |
| 154 | + if (s.predicate == undefined) { | |
| 155 | + predicateIsRequired = true; | |
| 156 | + } | |
| 157 | + if (s?.predicate) { | |
| 158 | + s?.predicate.some((f) => { | |
| 159 | + let arr = Object.keys(f); | |
| 160 | + if (arr.length == 0) { | |
| 161 | + predicateDoubleIsRequired = true; | |
| 162 | + } | |
| 163 | + if (f.operation == undefined) { | |
| 164 | + predicateDoubleIsRequired = true; | |
| 165 | + } | |
| 166 | + if (f.value == undefined) { | |
| 167 | + predicateDoubleIsRequired = true; | |
| 168 | + } | |
| 169 | + }); | |
| 170 | + } | |
| 171 | + }); | |
| 172 | + } | |
| 173 | + if (deviceIdIsRequired) return createMessage.error('请选择设备'); | |
| 174 | + if (attrIsRequired) return createMessage.error('请选择属性'); | |
| 175 | + if (predicateIsRequired) return createMessage.error('请填写条件筛选'); | |
| 176 | + if (predicateDoubleIsRequired) return createMessage.error('请填写条件筛选'); | |
| 177 | + //TODO-fengtao-清除告警验证 | |
| 178 | + //TODO-fengtao-设备验证 | |
| 179 | + const validate = getFieldsValue(); | |
| 180 | + if (validate.device == 'PART') { | |
| 181 | + if (validate.deviceId == undefined) return createMessage.error('请选择设备'); | |
| 182 | + } | |
| 183 | + //TODO-fengtao-设备验证 | |
| 136 | 184 | return { |
| 137 | 185 | ...getFieldsValue(), |
| 138 | 186 | doContext: unref(jsonInstance.value)?.get(), |
| ... | ... | @@ -163,7 +211,6 @@ |
| 163 | 211 | }; |
| 164 | 212 | }); |
| 165 | 213 | deviceListItem.value = deviceList.value; |
| 166 | - console.log(' deviceListItem.value', deviceListItem.value); | |
| 167 | 214 | updateSchema({ |
| 168 | 215 | field: 'deviceId', |
| 169 | 216 | componentProps: { | ... | ... |
| ... | ... | @@ -144,16 +144,21 @@ |
| 144 | 144 | .then((res) => { |
| 145 | 145 | closeDrawer(); //关闭侧框 |
| 146 | 146 | emit('success'); |
| 147 | + setTimeout(() => { | |
| 148 | + setDrawerProps({ confirmLoading: false }); | |
| 149 | + }, 300); | |
| 147 | 150 | }) |
| 148 | 151 | .catch((e) => { |
| 149 | 152 | const { createMessage } = useMessage(); |
| 150 | 153 | createMessage.error(`${e.message}`); |
| 154 | + }) | |
| 155 | + .finally(() => { | |
| 156 | + setTimeout(() => { | |
| 157 | + setDrawerProps({ confirmLoading: false }); | |
| 158 | + }, 300); | |
| 151 | 159 | }); |
| 152 | 160 | } catch (e) { |
| 153 | 161 | } finally { |
| 154 | - setTimeout(() => { | |
| 155 | - setDrawerProps({ confirmLoading: false }); | |
| 156 | - }, 300); | |
| 157 | 162 | } |
| 158 | 163 | } |
| 159 | 164 | ... | ... |