Răsfoiți Sursa

perf(views): 优化“设备工况”页面

1. 优化获取设备实时数据的接口传参
2. 支持显示冷水主机的制冷量、今日耗电量、本月耗电量
3. 冷水主机的今日耗电量、本月耗电量不显示历史数据
4. 优化参数图表 color 主题设置
wangcong 1 lună în urmă
părinte
comite
754967ff69

+ 2 - 1
src/api/index.ts

@@ -459,10 +459,11 @@ export const getDevWorkTypeCount = async (deviceGroupId: number, deviceTypes: nu
   return data;
 };
 
-export const getDevWorkRealTimeData = async (deviceIds: number[], deviceParamCode: string[]) => {
+export const getDevWorkRealTimeData = async (deviceType: number, deviceIds: number[], deviceParamCode: string[]) => {
   const data = await request<DevWorkRealTimeData[]>(apiBiz('/deviceCondition/getRTDList'), {
     method: 'POST',
     body: JSON.stringify({
+      deviceType,
       deviceIds,
       deviceParamCode,
     }),

+ 2 - 2
src/constants/device-params.ts

@@ -39,8 +39,8 @@ export const enum DevParamChillerUnit {
   有功功率 = 'outputActivePower',
   负载率 = 'loadRatio',
   冷冻水出水温度设定值反馈 = 'evapWaterTempOutSetFb',
-  今日耗电量 = 'chillerUnitTodayPowerConsumption',
-  本月耗电量 = 'chillerUnitMonthSPowerConsumption',
+  今日耗电量 = 'energyToday',
+  本月耗电量 = 'energyMonth',
   冷冻水回水温度 = 'evapWaterTempIn',
   冷冻水出水温度 = 'evapWaterTempOut',
   蒸发压力 = 'evapPre',

+ 2 - 1
src/views/device-work-status/DevWorkParamData.vue

@@ -19,6 +19,7 @@ import { useRequest } from '@/hooks/request';
 import { useViewVisible } from '@/hooks/view-visible';
 import { t } from '@/i18n';
 import { getDevWorkHistoryData } from '@/api';
+import { getEChartsColors } from '@/utils';
 import { TimeRangePreset } from '@/constants';
 
 import type { Dayjs } from 'dayjs';
@@ -125,7 +126,7 @@ const option = computed<EChartsOption>(() => {
   })) as LineSeriesOption;
 
   return {
-    color: ['#32BAC0'],
+    color: getEChartsColors(1),
     legend: {
       show: false,
     },

+ 11 - 4
src/views/device-work-status/DeviceWorkStatus.vue

@@ -105,16 +105,23 @@ const getDeviceList = () => {
     const deviceIds = records.map((item) => item.id);
     const deviceParamCode = deviceCardData[activeDeviceType.value]?.paramCodes || [];
 
-    const data = await getDevWorkRealTimeData(deviceIds, deviceParamCode);
+    const data = await getDevWorkRealTimeData(activeDeviceType.value, deviceIds, deviceParamCode);
+    const isDeviceChillerUnit = activeDeviceType.value === DeviceType.冷水主机;
 
     data.forEach((item) => {
-      if (!deviceRealTimeData.value[item.deviceId]) {
-        deviceRealTimeData.value[item.deviceId] = {};
+      const { deviceId, deviceParamMapList, ...chillerUnitExtraParams } = item;
+
+      if (!deviceRealTimeData.value[deviceId]) {
+        deviceRealTimeData.value[deviceId] = {};
       }
 
-      item.deviceParamMapList.forEach((paramItem) => {
+      deviceParamMapList.forEach((paramItem) => {
         Object.assign(deviceRealTimeData.value[item.deviceId], paramItem);
       });
+
+      if (isDeviceChillerUnit) {
+        Object.assign(deviceRealTimeData.value[item.deviceId], chillerUnitExtraParams);
+      }
     });
 
     deviceList.value.push(...records);

+ 2 - 2
src/views/device-work-status/device-card/ChillerUnit.vue

@@ -104,13 +104,13 @@ defineProps<DevWorkCardProps<DevParamChillerUnit>>();
       </div>
       <div>
         <div class="device-card-label">{{ $t('deviceWorkStatus.chillerUnit.todayPowerConsumption') }} (kWh)</div>
-        <div class="device-card-value" :data-param-code="DevParamChillerUnit.今日耗电量">
+        <div class="device-card-value device-card-no-history">
           {{ realTimeData?.[DevParamChillerUnit.今日耗电量] ?? '-' }}
         </div>
       </div>
       <div>
         <div class="device-card-label">{{ $t('deviceWorkStatus.chillerUnit.monthSPowerConsumption') }} (kWh)</div>
-        <div class="device-card-value" :data-param-code="DevParamChillerUnit.本月耗电量">
+        <div class="device-card-value device-card-no-history">
           {{ realTimeData?.[DevParamChillerUnit.本月耗电量] ?? '-' }}
         </div>
       </div>