Commit 07334e5eadabad51276d63b97d5b28b4eb27def4

Authored by xp.Huang
2 parents 8a6e1ea4 06f15142

Merge branch 'f-dev' into 'main'

fix:修改场景联动新增或者编辑 设备、属性、条件筛选、清除告警验证问题

See merge request huang/yun-teng-iot-front!237
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