Prechádzať zdrojové kódy

✨ feat(保养查询): 添加字段

Zimo 2 dní pred
rodič
commit
5013042680

+ 4 - 0
src/api/pms/device/index.ts

@@ -3,6 +3,10 @@ import request from '@/config/axios'
 // 设备台账 VO
 export interface IotDeviceVO {
   id: number // 主键id
+  totalRunTime: number // 累计运行时长H
+  totalMileage: number // 累计运行里程KM
+  multiAttrsTotalMileage: Record<string, number> // 多属性累计运行里程KM
+  multiAttrsTotalRuntime: Record<string, number> // 多属性累计运行时长H
   deviceCode: string // 资产编码
   deviceName: string // 设备名称
   brand: number // 品牌

+ 39 - 2
src/views/pms/iotmainworkorder/IotDeviceMainAlarm.vue

@@ -81,6 +81,28 @@
               <span v-else>无保养计划</span>
             </template>
           </el-table-column>
+          <el-table-column
+            v-if="showRunTime"
+            label="累计运行时长H"
+            align="center"
+            prop="totalRunTime"
+          />
+          <el-table-column
+            v-if="showMileage"
+            label="累计运行里程KM"
+            align="center"
+            prop="totalMileage"
+          />
+          <el-table-column v-if="showMultiAttrs" label="多属性累计值" align="center" width="200">
+            <template #default="scope">
+              <template v-for="(value, key) in scope.row.multiAttrsTotalRuntime" :key="key">
+                <span v-if="value && key"> {{ key }}: {{ value }}&nbsp;&nbsp;</span>
+              </template>
+              <template v-for="(value, key) in scope.row.multiAttrsTotalMileage" :key="key">
+                <span v-if="value && key"> {{ key }}: {{ value }}&nbsp;&nbsp;</span>
+              </template>
+            </template>
+          </el-table-column>
           <el-table-column :label="t('iotDevice.dept')" align="center" prop="deptName" />
           <el-table-column :label="t('devicePerson.rp')" align="center" prop="responsibleNames" />
           <el-table-column :label="t('monitor.status')" align="center" prop="deviceStatus">
@@ -136,8 +158,23 @@ import DeptTree from '@/views/system/user/DeptTree.vue'
 import { useCache } from '@/hooks/web/useCache'
 import DeviceAlarmBomList from '@/views/pms/iotmainworkorder/DeviceAlarmBomList.vue'
 
-/** 设备台账 列表 */
-defineOptions({ name: 'IotDeviceMainAlarm' })
+const showRunTime = computed(() => {
+  const all = list.value?.map((item) => item.totalRunTime)
+  return all.some((item) => Boolean(item))
+})
+
+const showMileage = computed(() => {
+  const all = list.value?.map((item) => item.totalMileage)
+  return all.some((item) => Boolean(item))
+})
+
+const showMultiAttrs = computed(() => {
+  const all = list.value
+    ?.map((item) => item.multiAttrsTotalRuntime)
+    .concat(list.value.map((item) => item.multiAttrsTotalMileage))
+    .flatMap((item) => Object.values(item ?? {}))
+  return all.some((item) => Boolean(item))
+})
 
 const message = useMessage() // 消息弹窗
 const { t } = useI18n() // 国际化