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 | ... | ... |