Commit 7f06695db9e9c59be2c3a66e07b48e927649c966

Authored by 1400859700@qq.com
1 parent a66b7372

fix:修复场景联动新增数据重复问题,fix:场景联动编辑数据重复问题

... ... @@ -200,28 +200,6 @@
200 200 compare: '',
201 201 value: '',
202 202 });
203   - let editTriggerData = reactive<IAddTrigger>({
204   - triggerType: '',
205   - entityId: '请选择设备',
206   - touchWay: '请选择触发方式',
207   - attributeChoose: '请选择属性',
208   - compare: '',
209   - value: '',
210   - });
211   - const editConditionData = reactive<IAddCondition>({
212   - entityId: '请选择设备',
213   - createTime: '',
214   - updateTime: '',
215   - triggerType: '',
216   - compare: '',
217   - value: '',
218   - });
219   - const editActionData = reactive<IAddAction>({
220   - outTarget: '',
221   - entityId: '请选择设备',
222   - command: '请输入执行命令',
223   - sceneLinkageId: '',
224   - });
225 203 const addConditionData = reactive<IAddCondition>({
226 204 triggerType: '',
227 205 entityId: '',
... ... @@ -278,6 +256,7 @@
278 256 doActions: [],
279 257 };
280 258 let optionsItemArray = ref<[]>([]);
  259 + const isNoChange = ref(false);
281 260
282 261 const [registerForm, { resetFields, setFieldsValue, validateFields }] = useForm({
283 262 labelWidth: 120,
... ... @@ -335,6 +314,8 @@
335 314 }
336 315 } else {
337 316 try {
  317 + pushEditArray.value = [];
  318 + pushEditArray.value.length = 0;
338 319 newFilterMap.value = [];
339 320 newConditionFilterMap.value = [];
340 321 newActionFilterMap.value = [];
... ... @@ -352,6 +333,7 @@
352 333 ...data.record,
353 334 });
354 335 editTriggerPushData.value = data.record.triggers;
  336 + isNoChange.value = true;
355 337 editConditionPushData.value = data.record.doConditions;
356 338 editActionPushData.value = data.record.doActions;
357 339 const options = await screenLinkPageByDeptIdGetDevice({
... ... @@ -501,15 +483,19 @@
501 483 };
502 484 Object.assign(getAllFormData, triggersObj, conditionsObj, actionsObj);
503 485 } else {
  486 + let kongTriggerObj = {};
  487 + editTriggerPushData.value.forEach((f) => {
  488 + kongTriggerObj = f;
  489 + pushEditArray.value.push(kongTriggerObj);
  490 + });
504 491 refTriggerChildDataFunc();
505   - refTriggerChildData = {};
506   - let newTriggerArray = editTriggerPushData.value.concat(refTriggerChildData);
507   - newTriggerArray = newTriggerArray.filter((f) => f != {});
  492 + let newTriggerArray = pushEditArray.value.concat(refTriggerChildData);
  493 + newTriggerArray = newTriggerArray.filter((f) => Object.keys(f).length !== 0);
  494 + newTriggerArray.shift();
508 495 triggersObj = {
509   - triggers: newTriggerArray,
  496 + triggers: isNoChange.value ? editTriggerPushData.value : newTriggerArray,
510 497 };
511   - // newTriggerArray.pop();
512   - console.log(newTriggerArray);
  498 + console.log(triggersObj);
513 499 // conditionsObj = {
514 500 // doConditions: newConditionArray,
515 501 // };
... ... @@ -537,10 +523,12 @@
537 523 Object.assign(getAllFormData, getValuesFormData);
538 524 getAllFormData.id = getId.value;
539 525 getAllFormData.tenantId = getTenantId.value;
540   - await screenLinkPageUpdateApi(getAllFormData);
541   - createMessage.success('场景联动编辑成功');
542   - closeDrawer();
543   - emit('success');
  526 + refTriggerChildData = {};
  527 + pushEditArray.value.length = 0;
  528 + // await screenLinkPageUpdateApi(getAllFormData);
  529 + // createMessage.success('场景联动编辑成功');
  530 + // closeDrawer();
  531 + // emit('success');
544 532 }
545 533 };
546 534 //新增触发器
... ... @@ -584,8 +572,48 @@
584 572 return e;
585 573 }
586 574 } else {
587   - refTriggerChildDataFunc();
  575 + isNoChange.value = false;
588 576 unref(editTriggerPushData).push(refTriggerChildData as never);
  577 + refTriggerChildDataFunc();
  578 + pushEditArray.value.push(refTriggerChildData);
  579 + pushEditArray.value = pushEditArray.value.map((m) => {
  580 + return {
  581 + triggerType: m?.triggerType,
  582 + entityId: m?.entityId || m?.entityId1 || m?.entityId2,
  583 + triggerCondition: {
  584 + condition: [
  585 + {
  586 + key: {
  587 + key: m.key1 == null ? 'CO2' : m.key1,
  588 + type: m.type1 == null ? 'TIME_SERIES' : m.type1,
  589 + },
  590 + valueType: m.type2 == null ? 'NUMERIC' : m.type2,
  591 + value: {},
  592 + predicate: {
  593 + type: m.type2 == null ? 'NUMERIC' : m.type2,
  594 + value: {
  595 + defaultValue: Number(m.value) == null ? 0 : Number(m.value),
  596 + },
  597 + operation: m.operation == null ? 'GREATER_OR_EQUAL' : m.operation,
  598 + },
  599 + },
  600 + ],
  601 + spec: {
  602 + type: 'SIMPLE',
  603 + },
  604 + },
  605 + };
  606 + });
  607 + console.log(pushEditArray.value);
  608 +
  609 + try {
  610 + setTimeout(() => {
  611 + proxy.$refs.refTriggerChild.updateFieldDeviceId(optionsItemArray.value);
  612 + }, 150);
  613 + } catch (e) {
  614 + return e;
  615 + }
  616 + refTriggerChildData = {};
589 617 }
590 618 };
591 619 const removeTrigger = () => {
... ...