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