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 | <template> | 1 | <template> |
2 | <BasicModal | 2 | <BasicModal |
3 | - :useWrapper="true" | ||
4 | width="82vw" | 3 | width="82vw" |
5 | :height="compHeight" | 4 | :height="compHeight" |
6 | v-bind="$attrs" | 5 | v-bind="$attrs" |
7 | @register="registerModal" | 6 | @register="registerModal" |
8 | @ok="handleSubmit" | 7 | @ok="handleSubmit" |
9 | :draggable="false" | 8 | :draggable="false" |
9 | + class="basic-modal" | ||
10 | + className="{styles.headSetPop}" | ||
10 | > | 11 | > |
11 | <div | 12 | <div |
12 | style=" | 13 | style=" |
@@ -254,4 +255,7 @@ | @@ -254,4 +255,7 @@ | ||
254 | transition: border-color 0.3s ease; | 255 | transition: border-color 0.3s ease; |
255 | } | 256 | } |
256 | } | 257 | } |
258 | + .headSetPop :global(.ant-modal-header) { | ||
259 | + padding: 27px 0px !important; | ||
260 | + } | ||
257 | </style> | 261 | </style> |
@@ -586,10 +586,10 @@ | @@ -586,10 +586,10 @@ | ||
586 | getTriggerFormValue.value = unref(skipUnwrap.triggerItemRefs)?.map((item) => | 586 | getTriggerFormValue.value = unref(skipUnwrap.triggerItemRefs)?.map((item) => |
587 | genTriggerOrConditionData(item.getFieldsValueFunc()) | 587 | genTriggerOrConditionData(item.getFieldsValueFunc()) |
588 | ); | 588 | ); |
589 | - getConditionFormValue.value = unref(skipUnwrap.conditionItemRefs).map((item) => | 589 | + getConditionFormValue.value = unref(skipUnwrap.conditionItemRefs)?.map((item) => |
590 | genTriggerOrConditionData(item.getFieldsValueFunc()) | 590 | genTriggerOrConditionData(item.getFieldsValueFunc()) |
591 | ); | 591 | ); |
592 | - getActionFormValue.value = unref(skipUnwrap.actionItemRefs).map((item) => | 592 | + getActionFormValue.value = unref(skipUnwrap.actionItemRefs)?.map((item) => |
593 | genActionData(item.getFieldsValueFunc()) | 593 | genActionData(item.getFieldsValueFunc()) |
594 | ); | 594 | ); |
595 | }; | 595 | }; |
@@ -611,21 +611,6 @@ | @@ -611,21 +611,6 @@ | ||
611 | id: unref(id), | 611 | id: unref(id), |
612 | tenantId: unref(tenantId), | 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 | await screenLinkPageAddApi(postAddOrEditData, unref(isUpdate)); | 614 | await screenLinkPageAddApi(postAddOrEditData, unref(isUpdate)); |
630 | createMessage.success(`${unref(isUpdate) ? '编辑' : '新增'}成功`); | 615 | createMessage.success(`${unref(isUpdate) ? '编辑' : '新增'}成功`); |
631 | closeDrawer(); | 616 | closeDrawer(); |
@@ -69,6 +69,7 @@ | @@ -69,6 +69,7 @@ | ||
69 | import AlarmSchedule from './AlarmSchedule.vue'; | 69 | import AlarmSchedule from './AlarmSchedule.vue'; |
70 | import { useModal } from '/@/components/Modal'; | 70 | import { useModal } from '/@/components/Modal'; |
71 | import { cloneDeep } from 'lodash-es'; | 71 | import { cloneDeep } from 'lodash-es'; |
72 | + import { useMessage } from '/@/hooks/web/useMessage'; | ||
72 | 73 | ||
73 | const props = defineProps({ | 74 | const props = defineProps({ |
74 | title: { | 75 | title: { |
@@ -85,6 +86,8 @@ | @@ -85,6 +86,8 @@ | ||
85 | }, | 86 | }, |
86 | }); | 87 | }); |
87 | const emit = defineEmits(['delete']); | 88 | const emit = defineEmits(['delete']); |
89 | + const { createMessage } = useMessage(); | ||
90 | + | ||
88 | const isUpdate = ref(false); | 91 | const isUpdate = ref(false); |
89 | const conditionScreeningRef = ref(); | 92 | const conditionScreeningRef = ref(); |
90 | const [registerForm, { resetFields, getFieldsValue, updateSchema, setFieldsValue }] = useForm({ | 93 | const [registerForm, { resetFields, getFieldsValue, updateSchema, setFieldsValue }] = useForm({ |
@@ -99,6 +102,30 @@ | @@ -99,6 +102,30 @@ | ||
99 | const predicate = conditionScreeningRef?.value?.refItem?.conditionScreeningRefs?.value?.map( | 102 | const predicate = conditionScreeningRef?.value?.refItem?.conditionScreeningRefs?.value?.map( |
100 | (item) => item.getFieldsValue() | 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 | return { ...getFieldsValue(), predicate, schedule: alarmScheduleRef.value.scheduleData }; | 129 | return { ...getFieldsValue(), predicate, schedule: alarmScheduleRef.value.scheduleData }; |
103 | }; | 130 | }; |
104 | 131 |
@@ -68,6 +68,7 @@ | @@ -68,6 +68,7 @@ | ||
68 | import 'jsoneditor/dist/jsoneditor.min.css'; | 68 | import 'jsoneditor/dist/jsoneditor.min.css'; |
69 | import { QuestionCircleOutlined } from '@ant-design/icons-vue'; | 69 | import { QuestionCircleOutlined } from '@ant-design/icons-vue'; |
70 | import ClearAlarm from './ClearAlarm.vue'; | 70 | import ClearAlarm from './ClearAlarm.vue'; |
71 | + import { useMessage } from '/@/hooks/web/useMessage'; | ||
71 | 72 | ||
72 | const props = defineProps({ | 73 | const props = defineProps({ |
73 | actionIndex: { | 74 | actionIndex: { |
@@ -99,6 +100,8 @@ | @@ -99,6 +100,8 @@ | ||
99 | const refItem = { | 100 | const refItem = { |
100 | clearRuleRefs: ref([]), | 101 | clearRuleRefs: ref([]), |
101 | }; | 102 | }; |
103 | + const { createMessage } = useMessage(); | ||
104 | + | ||
102 | const emit = defineEmits(['deleteAction', 'getActionFormArr']); | 105 | const emit = defineEmits(['deleteAction', 'getActionFormArr']); |
103 | const options = computed(() => { | 106 | const options = computed(() => { |
104 | return [ | 107 | return [ |
@@ -133,6 +136,51 @@ | @@ -133,6 +136,51 @@ | ||
133 | schedule: item.alarmScheduleRef.scheduleData, | 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 | return { | 184 | return { |
137 | ...getFieldsValue(), | 185 | ...getFieldsValue(), |
138 | doContext: unref(jsonInstance.value)?.get(), | 186 | doContext: unref(jsonInstance.value)?.get(), |
@@ -163,7 +211,6 @@ | @@ -163,7 +211,6 @@ | ||
163 | }; | 211 | }; |
164 | }); | 212 | }); |
165 | deviceListItem.value = deviceList.value; | 213 | deviceListItem.value = deviceList.value; |
166 | - console.log(' deviceListItem.value', deviceListItem.value); | ||
167 | updateSchema({ | 214 | updateSchema({ |
168 | field: 'deviceId', | 215 | field: 'deviceId', |
169 | componentProps: { | 216 | componentProps: { |
@@ -144,16 +144,21 @@ | @@ -144,16 +144,21 @@ | ||
144 | .then((res) => { | 144 | .then((res) => { |
145 | closeDrawer(); //关闭侧框 | 145 | closeDrawer(); //关闭侧框 |
146 | emit('success'); | 146 | emit('success'); |
147 | + setTimeout(() => { | ||
148 | + setDrawerProps({ confirmLoading: false }); | ||
149 | + }, 300); | ||
147 | }) | 150 | }) |
148 | .catch((e) => { | 151 | .catch((e) => { |
149 | const { createMessage } = useMessage(); | 152 | const { createMessage } = useMessage(); |
150 | createMessage.error(`${e.message}`); | 153 | createMessage.error(`${e.message}`); |
154 | + }) | ||
155 | + .finally(() => { | ||
156 | + setTimeout(() => { | ||
157 | + setDrawerProps({ confirmLoading: false }); | ||
158 | + }, 300); | ||
151 | }); | 159 | }); |
152 | } catch (e) { | 160 | } catch (e) { |
153 | } finally { | 161 | } finally { |
154 | - setTimeout(() => { | ||
155 | - setDrawerProps({ confirmLoading: false }); | ||
156 | - }, 300); | ||
157 | } | 162 | } |
158 | } | 163 | } |
159 | 164 |