Commit d6954312ba4a32d08ce67107274c776e9d912983
1 parent
a5b42b0f
fix:修复场景联动新增数据重复问题,fix:修复场景联动编辑数据重复问题
Showing
1 changed file
with
105 additions
and
38 deletions
| ... | ... | @@ -167,7 +167,7 @@ |
| 167 | 167 | import AddTriggerForm from './addForm/trigger.vue'; |
| 168 | 168 | import AddConditiForm from './addForm/condition.vue'; |
| 169 | 169 | import AddActionForm from './addForm/doaction.vue'; |
| 170 | - import { IAddTrigger, IAddCondition, IAddAction } from './index'; | |
| 170 | + import { IAddTrigger } from './index'; | |
| 171 | 171 | import { Button } from '/@/components/Button'; |
| 172 | 172 | |
| 173 | 173 | export default defineComponent({ |
| ... | ... | @@ -184,8 +184,6 @@ |
| 184 | 184 | setup(_, { emit }) { |
| 185 | 185 | const { proxy } = getCurrentInstance(); |
| 186 | 186 | const lastEditRefTriggerChildDataArray = ref<[]>([]); |
| 187 | - const lastEditRefConditionChildDataArray = ref<[]>([]); | |
| 188 | - const lastEditRefActionChildDataArray = ref<[]>([]); | |
| 189 | 187 | const lastRefTriggerChildDataArray = ref<[]>([]); |
| 190 | 188 | const lastRefConditionChildDataArray = ref<[]>([]); |
| 191 | 189 | const lastRefActionChildDataArray = ref<[]>([]); |
| ... | ... | @@ -200,20 +198,6 @@ |
| 200 | 198 | compare: '', |
| 201 | 199 | value: '', |
| 202 | 200 | }); |
| 203 | - const addConditionData = reactive<IAddCondition>({ | |
| 204 | - triggerType: '', | |
| 205 | - entityId: '', | |
| 206 | - createTime: '', | |
| 207 | - updateTime: '', | |
| 208 | - compare: '', | |
| 209 | - value: '', | |
| 210 | - }); | |
| 211 | - const addActionData = reactive<IAddAction>({ | |
| 212 | - outTarget: '', | |
| 213 | - deviceId: '', | |
| 214 | - command: '', | |
| 215 | - sceneLinkageId: '', | |
| 216 | - }); | |
| 217 | 201 | const addTriggerPushData = ref<[]>([]); |
| 218 | 202 | const addConditionPushData = ref<[]>([]); |
| 219 | 203 | const addActionPushData = ref<[]>([]); |
| ... | ... | @@ -240,8 +224,8 @@ |
| 240 | 224 | const newActionFilterMap = ref<[]>([]); |
| 241 | 225 | let filterNewConditionArr = []; |
| 242 | 226 | const pushEditArray = ref<any>([{}]); |
| 243 | - const pushEditConditionArray = []; | |
| 244 | - const pushEditActionArray = []; | |
| 227 | + const pushEditConditionArray = ref<any>([{}]); | |
| 228 | + const pushEditActionArray = ref<any>([{}]); | |
| 245 | 229 | let filterArrayTrigger = []; |
| 246 | 230 | const filterArrayCondition = ref<[]>([]); |
| 247 | 231 | const filterArrayAction = ref<[]>([]); |
| ... | ... | @@ -316,6 +300,10 @@ |
| 316 | 300 | try { |
| 317 | 301 | pushEditArray.value = []; |
| 318 | 302 | pushEditArray.value.length = 0; |
| 303 | + pushEditConditionArray.value.length = 0; | |
| 304 | + pushEditConditionArray.value = []; | |
| 305 | + pushEditActionArray.value = []; | |
| 306 | + pushEditActionArray.value.length = 0; | |
| 319 | 307 | newFilterMap.value = []; |
| 320 | 308 | newConditionFilterMap.value = []; |
| 321 | 309 | newActionFilterMap.value = []; |
| ... | ... | @@ -377,6 +365,8 @@ |
| 377 | 365 | const getTitle = computed(() => (!unref(isUpdate) ? '新增场景联动' : '编辑场景联动')); |
| 378 | 366 | const handleClose = () => { |
| 379 | 367 | pushEditArray.value.length = 0; |
| 368 | + pushEditConditionArray.value.length = 0; | |
| 369 | + pushEditActionArray.value.length = 0; | |
| 380 | 370 | lastRefTriggerChildDataArray.value.length = 0; |
| 381 | 371 | lastRefTriggerChildDataArray.value = []; |
| 382 | 372 | lastRefConditionChildDataArray.value.length = 0; |
| ... | ... | @@ -484,10 +474,20 @@ |
| 484 | 474 | Object.assign(getAllFormData, triggersObj, conditionsObj, actionsObj); |
| 485 | 475 | } else { |
| 486 | 476 | let kongTriggerObj = {}; |
| 477 | + let kongConditionObj = {}; | |
| 478 | + let kongActionObj = {}; | |
| 487 | 479 | editTriggerPushData.value.forEach((f) => { |
| 488 | 480 | kongTriggerObj = f; |
| 489 | 481 | pushEditArray.value.push(kongTriggerObj); |
| 490 | 482 | }); |
| 483 | + editConditionPushData.value.forEach((f) => { | |
| 484 | + kongConditionObj = f; | |
| 485 | + pushEditConditionArray.value.push(kongConditionObj); | |
| 486 | + }); | |
| 487 | + editActionPushData.value.forEach((f) => { | |
| 488 | + kongActionObj = f; | |
| 489 | + pushEditActionArray.value.push(kongActionObj); | |
| 490 | + }); | |
| 491 | 491 | refTriggerChildDataFunc(); |
| 492 | 492 | let newTriggerArray = pushEditArray.value.concat(refTriggerChildData); |
| 493 | 493 | newTriggerArray = newTriggerArray.filter((f) => Object.keys(f).length !== 0); |
| ... | ... | @@ -495,13 +495,20 @@ |
| 495 | 495 | triggersObj = { |
| 496 | 496 | triggers: isNoChange.value ? editTriggerPushData.value : newTriggerArray, |
| 497 | 497 | }; |
| 498 | - console.log(triggersObj); | |
| 499 | - // conditionsObj = { | |
| 500 | - // doConditions: newConditionArray, | |
| 501 | - // }; | |
| 502 | - // actionsObj = { | |
| 503 | - // doActions: newActionArray, | |
| 504 | - // }; | |
| 498 | + refConditionChildDataFunc(); | |
| 499 | + let newConditionArray = pushEditConditionArray.value.concat(refConditionChildData); | |
| 500 | + newConditionArray = newConditionArray.filter((f) => Object.keys(f).length !== 0); | |
| 501 | + newConditionArray.shift(); | |
| 502 | + conditionsObj = { | |
| 503 | + doConditions: newConditionArray, | |
| 504 | + }; | |
| 505 | + refActionChildDataFunc(); | |
| 506 | + let newActionArray = pushEditActionArray.value.concat(refActionChildData); | |
| 507 | + newActionArray = newActionArray.filter((f) => Object.keys(f).length !== 0); | |
| 508 | + newActionArray.shift(); | |
| 509 | + actionsObj = { | |
| 510 | + doActions: newActionArray, | |
| 511 | + }; | |
| 505 | 512 | Object.assign(getAllFormData, triggersObj, conditionsObj, actionsObj); |
| 506 | 513 | } |
| 507 | 514 | }; |
| ... | ... | @@ -525,10 +532,13 @@ |
| 525 | 532 | getAllFormData.tenantId = getTenantId.value; |
| 526 | 533 | refTriggerChildData = {}; |
| 527 | 534 | pushEditArray.value.length = 0; |
| 528 | - // await screenLinkPageUpdateApi(getAllFormData); | |
| 529 | - // createMessage.success('场景联动编辑成功'); | |
| 530 | - // closeDrawer(); | |
| 531 | - // emit('success'); | |
| 535 | + pushEditConditionArray.value.length = 0; | |
| 536 | + pushEditActionArray.value.length = 0; | |
| 537 | + console.log('edit data', getAllFormData); | |
| 538 | + await screenLinkPageUpdateApi(getAllFormData); | |
| 539 | + createMessage.success('场景联动编辑成功'); | |
| 540 | + closeDrawer(); | |
| 541 | + emit('success'); | |
| 532 | 542 | } |
| 533 | 543 | }; |
| 534 | 544 | //新增触发器 |
| ... | ... | @@ -604,8 +614,6 @@ |
| 604 | 614 | }, |
| 605 | 615 | }; |
| 606 | 616 | }); |
| 607 | - console.log(pushEditArray.value); | |
| 608 | - | |
| 609 | 617 | try { |
| 610 | 618 | setTimeout(() => { |
| 611 | 619 | proxy.$refs.refTriggerChild.updateFieldDeviceId(optionsItemArray.value); |
| ... | ... | @@ -688,9 +696,61 @@ |
| 688 | 696 | return e; |
| 689 | 697 | } |
| 690 | 698 | } else { |
| 699 | + isNoChange.value = false; | |
| 700 | + unref(editConditionPushData).push(refConditionChildData as never); | |
| 691 | 701 | refConditionChildDataFunc(); |
| 692 | - pushEditConditionArray.push(refConditionChildData as never); | |
| 693 | - unref(editConditionPushData).push(addConditionData as never); | |
| 702 | + pushEditConditionArray.value.push(refConditionChildData); | |
| 703 | + pushEditConditionArray.value = pushEditConditionArray.value.map((m) => { | |
| 704 | + return { | |
| 705 | + triggerType: m?.triggerType, | |
| 706 | + entityId: m?.entityId, | |
| 707 | + triggerCondition: { | |
| 708 | + condition: [ | |
| 709 | + { | |
| 710 | + key: { | |
| 711 | + type: 'TIME_SERIES', | |
| 712 | + key: 'CO2', | |
| 713 | + }, | |
| 714 | + valueType: | |
| 715 | + m.type == 'NUMERIC1' | |
| 716 | + ? 'NUMERIC' | |
| 717 | + : m.type == 'NUMERIC2' | |
| 718 | + ? 'NUMERIC' | |
| 719 | + : 'NUMERIC', | |
| 720 | + value: {}, | |
| 721 | + predicate: { | |
| 722 | + type: | |
| 723 | + m.type == 'NUMERIC1' | |
| 724 | + ? 'NUMERIC' | |
| 725 | + : m.type == 'NUMERIC2' | |
| 726 | + ? 'NUMERIC' | |
| 727 | + : 'NUMERIC', | |
| 728 | + value: { | |
| 729 | + defaultValue: | |
| 730 | + Number(m.value1) == null | |
| 731 | + ? 0 | |
| 732 | + : Number(m.value1) || Number(m.value2) == null | |
| 733 | + ? 0 | |
| 734 | + : Number(m.value2), | |
| 735 | + }, | |
| 736 | + operation: m.operation1 || m.operatio2, | |
| 737 | + }, | |
| 738 | + }, | |
| 739 | + ], | |
| 740 | + spec: { | |
| 741 | + type: 'SIMPLE', | |
| 742 | + }, | |
| 743 | + }, | |
| 744 | + }; | |
| 745 | + }); | |
| 746 | + try { | |
| 747 | + setTimeout(() => { | |
| 748 | + proxy.$refs.refConditionChild.updateFieldDeviceId(optionsItemArray.value); | |
| 749 | + }, 150); | |
| 750 | + } catch (e) { | |
| 751 | + return e; | |
| 752 | + } | |
| 753 | + refConditionChildData = {}; | |
| 694 | 754 | } |
| 695 | 755 | }; |
| 696 | 756 | const removeCondition = () => { |
| ... | ... | @@ -703,7 +763,6 @@ |
| 703 | 763 | } else { |
| 704 | 764 | try { |
| 705 | 765 | unref(editConditionPushData).splice(0, 1); |
| 706 | - lastEditRefConditionChildDataArray.value.pop(); | |
| 707 | 766 | } catch (e) { |
| 708 | 767 | return e; |
| 709 | 768 | } |
| ... | ... | @@ -729,9 +788,18 @@ |
| 729 | 788 | return e; |
| 730 | 789 | } |
| 731 | 790 | } else { |
| 791 | + isNoChange.value = false; | |
| 792 | + unref(editActionPushData).push(refActionChildData as never); | |
| 732 | 793 | refActionChildDataFunc(); |
| 733 | - pushEditActionArray.push(refActionChildData as never); | |
| 734 | - unref(editActionPushData).push(addActionData as never); | |
| 794 | + pushEditActionArray.value.push(refActionChildData); | |
| 795 | + try { | |
| 796 | + setTimeout(() => { | |
| 797 | + proxy.$refs.refActionChild.updateFieldDeviceId(optionsItemArray.value); | |
| 798 | + }, 150); | |
| 799 | + } catch (e) { | |
| 800 | + return e; | |
| 801 | + } | |
| 802 | + refActionChildData = {}; | |
| 735 | 803 | } |
| 736 | 804 | }; |
| 737 | 805 | const removeAction = () => { |
| ... | ... | @@ -744,7 +812,6 @@ |
| 744 | 812 | } else { |
| 745 | 813 | try { |
| 746 | 814 | unref(editActionPushData).splice(0, 1); |
| 747 | - lastEditRefActionChildDataArray.value.pop(); | |
| 748 | 815 | } catch (e) { |
| 749 | 816 | return e; |
| 750 | 817 | } | ... | ... |