Răsfoiți Sursa

perf(views): 优化“环境监控”模块

1.修复监测点编辑“运行状态判断”显示异常问题。
2.修复监测点删除区域画布显示异常问题。
3.修复新增区域画布显示异常问题
wangshun 2 săptămâni în urmă
părinte
comite
9007ddf4b3
1 a modificat fișierele cu 42 adăugiri și 4 ștergeri
  1. 42 4
      src/views/env-monitor/EnvMonitor.vue

+ 42 - 4
src/views/env-monitor/EnvMonitor.vue

@@ -217,7 +217,11 @@ const regionNameOk = () => {
         }
       }
       getGroupRegionsList();
-      getRegionsPointsList(gradeTwo.value, false);
+
+      if (gradeTwo.value) {
+        getRegionsPointsList(gradeTwo.value, false);
+        obtainRegionsPointsData(gradeTwo.value);
+      }
 
       regionNameOpen.value = false;
     }
@@ -236,6 +240,7 @@ const regionNameDelete = () => {
 
       if (gradeTwo.value) {
         getRegionsPointsList(gradeTwo.value, false);
+        obtainRegionsPointsData(gradeTwo.value);
       }
 
       regionNameOpen.value = false;
@@ -363,8 +368,30 @@ const adddRunStatusDevice = (value: SelectValue, option: DefaultOptionType) => {
   monitoringForm.value.runStatusParamCode = '';
   monitoringForm.value.runStatusConditionCode = '';
   monitoringForm.value.runStatusConditionValue = '';
+  getDeviceListOptionsList(option.id, false, '');
+};
+
+const getDeviceListOptionsList = (id: number, show: boolean, runStatusParamCode: string) => {
   handleRequest(async () => {
-    runDeviceParamsList.value = await getDeviceListOptions(option.id);
+    runDeviceParamsList.value = await getDeviceListOptions(id);
+
+    if (show) {
+      runStatusList.value = [];
+      runDeviceParamsList.value.forEach((item) => {
+        if (item.deviceParamCode === runStatusParamCode) {
+          inputType.value = item.type;
+
+          if (item.type === 1) {
+            item.candidates.forEach((item: string, index: number) => {
+              runStatusList.value.push({
+                id: index,
+                name: item,
+              });
+            });
+          }
+        }
+      });
+    }
   });
 };
 
@@ -468,8 +495,10 @@ const deleteMonitoringPoint = () => {
         await deleteMonitorPoint(monitoringId.value);
         if (gradeTwo.value) {
           getRegionsPointsList(gradeTwo.value, false);
+          obtainRegionsPointsData(gradeTwo.value);
           timeLineIndex.value = timeList.value.length - 1;
         }
+
         closeModal();
       }
     });
@@ -602,6 +631,15 @@ const editorClick = (monitoringPointId: number) => {
     if (monitoringForm.value.tempHumidityControlMode === '1') {
       getDeviceParamsList(outdoorDevId, HumitureType.FreshAir, false);
     }
+    if (monitoringForm.value.runStatusFlag !== 0) {
+      if (runStatusDevGroupId) {
+        getDevicesGroupList(runStatusDevGroupId, HumitureType.OperatingStatus, false);
+      }
+      if (runStatusDevId) {
+        getDeviceListOptionsList(runStatusDevId, true, runStatusParamCode);
+      }
+    }
+
     titleMonitoring.value = false;
     monitoringPointOpen.value = true;
   });
@@ -1416,7 +1454,7 @@ const copyAreaCanvas = () => {
               <ARadio :value="1">{{ t('envMonitor.operationStatusDetermination') }}</ARadio>
             </ARadioGroup>
           </AFormItem>
-          <AFlex v-show="monitoringForm.runStatusFlag === 0">
+          <AFlex v-if="monitoringForm.runStatusFlag === 0">
             <AFormItem name="supplyReturnTempDiff">
               <AFlex align="center" class="spacing">
                 <AInputNumber
@@ -1442,7 +1480,7 @@ const copyAreaCanvas = () => {
               </AFlex>
             </AFormItem>
           </AFlex>
-          <AFlex justify="space-between" wrap="wrap" v-show="monitoringForm.runStatusFlag === 1">
+          <AFlex justify="space-between" wrap="wrap" v-else>
             <AFormItem name="runStatusDevGroupId">
               <ASelect
                 class="input-wdith"