Procházet zdrojové kódy

台账、运行监控查询条件添加,多语言,巡检路线选择设备调整部门展示与状态信息

lipenghui před 1 měsícem
rodič
revize
84c3aab127

+ 3 - 1
src/locales/en.ts

@@ -604,7 +604,9 @@ export default {
     latestDataTime:'LatestDataTime',
     operation:'Operation',
     check:'Check',
-    details:'Details'
+    details:'Details',
+    ifInline:'IfOnline',
+    ifiInlineHolder:'Please select OnlineStatus',
   },
   deviceAllot:{
     setUp:'SetUp',

+ 5 - 3
src/locales/zh-CN.ts

@@ -599,7 +599,9 @@ export default {
     latestDataTime:'最新在线时间',
     operation:'操作',
     check:'查看',
-    details:'详情'
+    details:'详情',
+    ifInline: '在线状态',
+    ifInlineHolder:'请选择状态',
   },
   deviceAllot:{
     setUp:'调拨设备',
@@ -845,8 +847,8 @@ export default {
     confirm:'确认选择',
     selectAll:'全选',
     cancelAllSelection:'取消全选',
-    deviceName:'设备名称:',
-    deviceCode:'资产编码:',
+    deviceName:'设备名称',
+    deviceCode:'资产编码',
     repairItems:'维修项',
     createTime:'创建时间',
   },

+ 24 - 6
src/views/pms/device/index.vue

@@ -17,7 +17,7 @@
           :inline="true"
           label-width="68px"
         >
-          <el-form-item :label="t('iotDevice.code')" prop="deviceCode" style="margin-left: 25px">
+          <el-form-item :label="t('iotDevice.code')" prop="deviceCode" style="margin-left: 20px">
             <el-input
               v-model="queryParams.deviceCode"
               :placeholder="t('iotDevice.codeHolder')"
@@ -50,7 +50,7 @@
               v-model="queryParams.deviceStatus"
               :placeholder="t('iotDevice.statusHolder')"
               clearable
-              class="!w-240px"
+              class="!w-200px"
             >
               <el-option
                 v-for="dict in getStrDictOptions(DICT_TYPE.PMS_DEVICE_STATUS)"
@@ -66,7 +66,7 @@
               v-model="queryParams.assetProperty"
               :placeholder="t('iotDevice.assetsHolder')"
               clearable
-              class="!w-240px"
+              class="!w-200px"
             >
               <el-option
                 v-for="dict in getStrDictOptions(DICT_TYPE.PMS_ASSET_PROPERTY)"
@@ -76,6 +76,17 @@
               />
             </el-select>
           </el-form-item>
+          <el-form-item v-show="ifShow" :label="t('deviceForm.category')" prop="assetClass" style="width: 15vw" >
+            <el-tree-select
+              v-model="queryParams.assetClass"
+              :data="productClassifyList"
+              :props="defaultProps"
+              check-strictly
+              node-key="id"
+              :placeholder="t('deviceForm.categoryHolder')"
+              filterable
+            />
+          </el-form-item>
 
           <el-form-item>
             <el-button v-if="!ifShow" @click="moreQuery(true)" type="warning"
@@ -188,6 +199,8 @@ import { dateFormatter } from '@/utils/formatTime'
 import DeptTree from '@/views/system/user/DeptTree.vue'
 import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
 import {buildSortingField} from "@/utils";
+import {defaultProps, handleTree} from "@/utils/tree";
+import * as ProductClassifyApi from "@/api/pms/productclassify";
 
 /** 设备台账 列表 */
 defineOptions({ name: 'IotDevicePms' })
@@ -200,6 +213,7 @@ const loading = ref(true) // 列表的加载中
 const ifShow = ref(false)
 const isDetail = ref(false) // 是否查看详情
 const list = ref<IotDeviceVO[]>([]) // 列表的数据
+const productClassifyList = ref<Tree[]>([]) // 树形结构
 const total = ref(0) // 列表的总页数
 const queryParams = reactive({
   pageNo: 1,
@@ -232,7 +246,8 @@ const queryParams = reactive({
   infoUrl: undefined,
   templateJson: undefined,
   creator: undefined,
-  sortingFields: []
+  sortingFields: [],
+  assetClass: undefined,
 })
 const queryFormRef = ref() // 搜索的表单
 const exportLoading = ref(false) // 导出的加载中
@@ -339,13 +354,16 @@ const handleExport = async () => {
 }
 const { wsCache } = useCache()
 /** 初始化 **/
-onMounted(() => {
+onMounted(async () => {
+  productClassifyList.value = handleTree(
+    await ProductClassifyApi.IotProductClassifyApi.getSimpleProductClassifyList()
+  )
   const sort = {
     field: 'sortColumn',
     order: 'asc',
   }
   queryParams.sortingFields.push(sort);
-  getList()
+  await getList()
 })
 </script>
 <style scoped></style>

+ 274 - 221
src/views/pms/device/monitor/index.vue

@@ -8,239 +8,288 @@
     </el-col>
     <el-col :span="20" :xs="24">
       <ContentWrap v-loading="loading">
-    <ContentWrap>
-      <!-- 搜索工作栏 -->
-      <el-form
-        class="-mb-15px"
-        :model="queryParams"
-        ref="queryFormRef"
-        :inline="true"
-        label-width="68px"
-      >
-        <el-form-item :label="t('monitor.deviceName')" prop="deviceName" style="margin-left: 25px">
-          <el-input
-            v-model="queryParams.deviceName"
-            :placeholder="t('monitor.nameHolder')"
-            clearable
-            @keyup.enter="handleQuery"
-            class="!w-240px"
-          />
-        </el-form-item>
-        <el-form-item :label="t('monitor.deviceCode')" prop="deviceCode">
-          <el-input
-            v-model="queryParams.deviceCode"
-            :placeholder="t('monitor.codeHolder')"
-            clearable
-            @keyup.enter="handleQuery"
-            class="!w-240px"
-          />
-        </el-form-item>
-        <el-form-item class="float-right !mr-0 !mb-0">
-          <el-button-group>
-            <el-button :type="viewMode === 'card' ? 'primary' : 'default'" @click="viewMode = 'card'">
-              <Icon icon="ep:grid" />
-            </el-button>
-            <el-button :type="viewMode === 'list' ? 'primary' : 'default'" @click="viewMode = 'list'">
-              <Icon icon="ep:list" />
-            </el-button>
-          </el-button-group>
-        </el-form-item>
-        <el-form-item>
-          <el-button @click="handleQuery">
-            <Icon icon="ep:search" class="mr-5px" />
-            {{t('monitor.search')}}
-          </el-button>
-          <el-button @click="resetQuery">
-            <Icon icon="ep:refresh" class="mr-5px" />
-            {{t('monitor.reset')}}
-          </el-button>
-          <el-button
-            type="success"
-            plain
-            @click="handleExport"
-            :loading="exportLoading"
-            v-hasPermi="['iot:device:export']"
+        <ContentWrap>
+          <!-- 搜索工作栏 -->
+          <el-form
+            class="-mb-15px"
+            :model="queryParams"
+            ref="queryFormRef"
+            :inline="true"
+            label-width="68px"
           >
-            <Icon icon="ep:download" class="mr-5px" /> 导出
-          </el-button>
-        </el-form-item>
-      </el-form>
-    </ContentWrap>
-
-    <!-- 列表 -->
-    <ContentWrap>
-      <template v-if="viewMode === 'card'">
-        <el-row :gutter="16">
-          <el-col v-for="item in list" :key="item.id" :xs="24" :sm="12" :md="12" :lg="6" class="mb-4">
-            <el-card
-              class="h-full transition-colors relative overflow-hidden"
-              :body-style="{ padding: '0' }"
+            <el-form-item
+              :label="t('monitor.deviceName')"
+              prop="deviceName"
+              style="margin-left: 20px"
             >
-              <!-- 添加渐变背景层 -->
-              <div
-                class="absolute top-0 left-0 right-0 h-[50px] pointer-events-none"
-                :class="[
-                  item.ifInline===3
-                    ? 'bg-gradient-to-b from-[#eefaff] to-transparent'
-                    : 'bg-gradient-to-b from-[#fff1f1] to-transparent'
-                ]"
+              <el-input
+                v-model="queryParams.deviceName"
+                :placeholder="t('monitor.nameHolder')"
+                clearable
+                @keyup.enter="handleQuery"
+                class="!w-240px"
+              />
+            </el-form-item>
+            <el-form-item :label="t('monitor.deviceCode')" prop="deviceCode">
+              <el-input
+                v-model="queryParams.deviceCode"
+                :placeholder="t('monitor.codeHolder')"
+                clearable
+                @keyup.enter="handleQuery"
+                class="!w-240px"
+              />
+            </el-form-item>
+            <el-form-item :label="t('monitor.ifInline')" prop="ifInline">
+              <el-select
+                v-model="queryParams.ifInline"
+                :placeholder="t('monitor.ifInlineHolder')"
+                clearable
+                class="!w-240px"
+              >
+                <el-option
+                  v-for="dict in getStrDictOptions(DICT_TYPE.IOT_DEVICE_STATUS)"
+                  :key="dict.value"
+                  :label="dict.label"
+                  :value="dict.value"
+                />
+              </el-select>
+            </el-form-item>
+            <el-form-item class="float-right !mr-0 !mb-0">
+              <el-button-group>
+                <el-button
+                  :type="viewMode === 'card' ? 'primary' : 'default'"
+                  @click="viewMode = 'card'"
+                >
+                  <Icon icon="ep:grid" />
+                </el-button>
+                <el-button
+                  :type="viewMode === 'list' ? 'primary' : 'default'"
+                  @click="viewMode = 'list'"
+                >
+                  <Icon icon="ep:list" />
+                </el-button>
+              </el-button-group>
+            </el-form-item>
+            <el-form-item>
+              <el-button @click="handleQuery">
+                <Icon icon="ep:search" class="mr-5px" />
+                {{ t('monitor.search') }}
+              </el-button>
+              <el-button @click="resetQuery">
+                <Icon icon="ep:refresh" class="mr-5px" />
+                {{ t('monitor.reset') }}
+              </el-button>
+              <el-button
+                type="success"
+                plain
+                @click="handleExport"
+                :loading="exportLoading"
+                v-hasPermi="['iot:device:export']"
               >
-              </div>
-              <div class="p-4 relative">
-                <!-- 标题区域 -->
-                <div class="flex items-center mb-3">
-                  <div class="mr-2.5 flex items-center">
-                    <img src="@/assets/svgs/iot/card-fill.svg" class="w-[18px] h-[18px]" />
+                <Icon icon="ep:download" class="mr-5px" /> 导出
+              </el-button>
+            </el-form-item>
+          </el-form>
+        </ContentWrap>
+
+        <!-- 列表 -->
+        <ContentWrap>
+          <template v-if="viewMode === 'card'">
+            <el-row :gutter="16">
+              <el-col
+                v-for="item in list"
+                :key="item.id"
+                :xs="24"
+                :sm="12"
+                :md="12"
+                :lg="6"
+                class="mb-4"
+              >
+                <el-card
+                  class="h-full transition-colors relative overflow-hidden"
+                  :body-style="{ padding: '0' }"
+                >
+                  <!-- 添加渐变背景层 -->
+                  <div
+                    class="absolute top-0 left-0 right-0 h-[50px] pointer-events-none"
+                    :class="[
+                      item.ifInline === 3
+                        ? 'bg-gradient-to-b from-[#eefaff] to-transparent'
+                        : 'bg-gradient-to-b from-[#fff1f1] to-transparent'
+                    ]"
+                  >
                   </div>
-                  <div class="text-[16px] font-600 flex-1">{{ item.deviceCode+item.deviceName }}</div>
-                  <!-- 添加设备状态标签 -->
-                  <div class="inline-flex items-center">
-                    <div
-                      class="w-1 h-1 rounded-full mr-1.5"
-                      :class="item.ifInline===3? 'bg-[var(--el-color-success)]': 'bg-[var(--el-color-danger)]'"
-                    >
+                  <div class="p-4 relative">
+                    <!-- 标题区域 -->
+                    <div class="flex items-center mb-3">
+                      <div class="mr-2.5 flex items-center">
+                        <img src="@/assets/svgs/iot/card-fill.svg" class="w-[18px] h-[18px]" />
+                      </div>
+                      <div class="text-[16px] font-600 flex-1">{{
+                        item.deviceCode + item.deviceName
+                      }}</div>
+                      <!-- 添加设备状态标签 -->
+                      <div class="inline-flex items-center">
+                        <div
+                          class="w-1 h-1 rounded-full mr-1.5"
+                          :class="
+                            item.ifInline === 3
+                              ? 'bg-[var(--el-color-success)]'
+                              : 'bg-[var(--el-color-danger)]'
+                          "
+                        >
+                        </div>
+                        <el-text
+                          class="!text-xs font-bold"
+                          :type="item.ifInline === 3 ? 'success' : 'danger'"
+                        >
+                          {{ getDictLabel(DICT_TYPE.IOT_DEVICE_STATUS, item.ifInline) }}
+                        </el-text>
+                      </div>
                     </div>
-                    <el-text
-                      class="!text-xs font-bold"
-                      :type="item.ifInline===3 ? 'success' : 'danger'"
-                    >
-                      {{ getDictLabel(DICT_TYPE.IOT_DEVICE_STATUS, item.ifInline) }}
-                    </el-text>
-                  </div>
-                </div>
 
-                <!-- 信息区域 -->
-                <div class="flex items-center text-[14px]">
-                  <div class="flex-1">
-                    <div class="mb-2.5 last:mb-0">
-                      <span class="text-[#717c8e] mr-2.5">{{ t('monitor.deviceCode') }}</span>
-                      <span class="text-[#0070ff]">
-                        {{ item.deviceCode }}
-                      </span>
+                    <!-- 信息区域 -->
+                    <div class="flex items-center text-[14px]">
+                      <div class="flex-1">
+                        <div class="mb-2.5 last:mb-0">
+                          <span class="text-[#717c8e] mr-2.5">{{ t('monitor.deviceCode') }}</span>
+                          <span class="text-[#0070ff]">
+                            {{ item.deviceCode }}
+                          </span>
+                        </div>
+                        <div class="mb-2.5 last:mb-0">
+                          <span class="text-[#717c8e] mr-2.5">{{ t('monitor.category') }}</span>
+                          <span class="text-[#0070ff]">
+                            {{ item.assetClassName }}
+                          </span>
+                        </div>
+                        <div class="mb-2.5 last:mb-0">
+                          <span class="text-[#717c8e] mr-2.5">{{
+                            t('monitor.latestDataTime')
+                          }}</span>
+                          <span class="text-[#0070ff]">
+                            {{ item.lastInlineTime }}
+                          </span>
+                        </div>
+                      </div>
+                      <div class="w-[100px] h-[100px]">
+                        <img src="@/assets/imgs/iot/device.png" class="w-full h-full" />
+                      </div>
                     </div>
-                    <div class="mb-2.5 last:mb-0">
-                      <span class="text-[#717c8e] mr-2.5">{{t('monitor.category')}}</span>
-                      <span class="text-[#0070ff]">
-                        {{ item.assetClassName }}
-                      </span>
-                    </div>
-                    <div class="mb-2.5 last:mb-0">
-                      <span class="text-[#717c8e] mr-2.5">{{ t('monitor.latestDataTime') }}</span>
-                      <span class="text-[#0070ff]">
-                        {{ item.lastInlineTime }}
-                      </span>
-                    </div>
-                  </div>
-                  <div class="w-[100px] h-[100px]">
-                    <img src="@/assets/imgs/iot/device.png" class="w-full h-full" />
-                  </div>
-                </div>
-
-                <!-- 分隔线 -->
-                <el-divider class="!my-3" />
-
-                <!-- 按钮 -->
-                <div class="flex items-center px-0">
-                  <el-button
-                    class="flex-1 !px-2 !h-[32px] text-[13px]"
-                    type="warning"
-                    plain
-                    @click="openDetail(item.id, item.ifInline, item.lastInlineTime,item.deviceName,item.deviceCode,item.deptName)"
-                  >
-                    <Icon icon="ep:view" class="mr-1" />
-                    {{ t('monitor.details') }}
-                  </el-button>
-<!--                  <div class="mx-[10px] h-[20px] w-[1px] bg-[#dcdfe6]"></div>-->
-                </div>
-              </div>
-            </el-card>
-          </el-col>
-        </el-row>
-      </template>
 
-      <!-- 列表视图 -->
-      <el-table
-        v-else
-        v-loading="loading"
-        :data="list"
-        :stripe="true"
-        :show-overflow-tooltip="true"
+                    <!-- 分隔线 -->
+                    <el-divider class="!my-3" />
 
-      >
-        <el-table-column :label="t('monitor.serial')" width="60" align="center">
-          <template #default="scope">
-            {{ scope.$index + 1 }}
-          </template>
-        </el-table-column>
-        <el-table-column :label="t('monitor.deviceName')" align="center" prop="deviceName">
-          <template #default="scope">
-            <el-link @click="openDetail(scope.row.id)">{{ scope.row.deviceName }}</el-link>
+                    <!-- 按钮 -->
+                    <div class="flex items-center px-0">
+                      <el-button
+                        class="flex-1 !px-2 !h-[32px] text-[13px]"
+                        type="warning"
+                        plain
+                        @click="
+                          openDetail(
+                            item.id,
+                            item.ifInline,
+                            item.lastInlineTime,
+                            item.deviceName,
+                            item.deviceCode,
+                            item.deptName
+                          )
+                        "
+                      >
+                        <Icon icon="ep:view" class="mr-1" />
+                        {{ t('monitor.details') }}
+                      </el-button>
+                      <!--                  <div class="mx-[10px] h-[20px] w-[1px] bg-[#dcdfe6]"></div>-->
+                    </div>
+                  </div>
+                </el-card>
+              </el-col>
+            </el-row>
           </template>
-        </el-table-column>
-        <el-table-column :label="t('monitor.deviceCode')"  align="center" prop="deviceCode" />
 
-        <el-table-column :label="t('monitor.category')" align="center" prop="assetClassName" />
-        <el-table-column :label="t('monitor.status')" align="center" prop="deviceStatus" >
-          <template #default="scope">
-            <dict-tag :type="DICT_TYPE.PMS_DEVICE_STATUS" :value="scope.row.deviceStatus" />
-          </template>
-        </el-table-column>
-        <el-table-column :label="t('monitor.online')" align="center" prop="ifInline" >
-          <template #default="scope">
-            <dict-tag :type="DICT_TYPE.IOT_DEVICE_STATUS" :value="scope.row.ifInline" />
-          </template>
-        </el-table-column>
-        <el-table-column
-          :label="t('monitor.latestDataTime')"
-          align="center"
-          prop="lastInlineTime"
-          :formatter="dateFormatter"
-          width="180px"
-        />
-        <el-table-column :label="t('monitor.operation')" align="center" min-width="120px">
-          <template #default="scope">
-            <el-button
-              link
-              type="primary"
-              @click="openDetail(scope.row.id, scope.row.ifInline, scope.row.lastInlineTime,scope.row.deviceName,scope.row.deviceCode)"
-            >
-              {{t('monitor.check')}}
-            </el-button>
-          </template>
-        </el-table-column>
-      </el-table>
+          <!-- 列表视图 -->
+          <el-table
+            v-else
+            v-loading="loading"
+            :data="list"
+            :stripe="true"
+            :show-overflow-tooltip="true"
+          >
+            <el-table-column :label="t('monitor.serial')" width="60" align="center">
+              <template #default="scope">
+                {{ scope.$index + 1 }}
+              </template>
+            </el-table-column>
+            <el-table-column :label="t('monitor.deviceName')" align="center" prop="deviceName">
+              <template #default="scope">
+                <el-link @click="openDetail(scope.row.id)">{{ scope.row.deviceName }}</el-link>
+              </template>
+            </el-table-column>
+            <el-table-column :label="t('monitor.deviceCode')" align="center" prop="deviceCode" />
+
+            <el-table-column :label="t('monitor.category')" align="center" prop="assetClassName" />
+            <el-table-column :label="t('monitor.status')" align="center" prop="deviceStatus">
+              <template #default="scope">
+                <dict-tag :type="DICT_TYPE.PMS_DEVICE_STATUS" :value="scope.row.deviceStatus" />
+              </template>
+            </el-table-column>
+            <el-table-column :label="t('monitor.online')" align="center" prop="ifInline">
+              <template #default="scope">
+                <dict-tag :type="DICT_TYPE.IOT_DEVICE_STATUS" :value="scope.row.ifInline" />
+              </template>
+            </el-table-column>
+            <el-table-column
+              :label="t('monitor.latestDataTime')"
+              align="center"
+              prop="lastInlineTime"
+              :formatter="dateFormatter"
+              width="180px"
+            />
+            <el-table-column :label="t('monitor.operation')" align="center" min-width="120px">
+              <template #default="scope">
+                <el-button
+                  link
+                  type="primary"
+                  @click="
+                    openDetail(
+                      scope.row.id,
+                      scope.row.ifInline,
+                      scope.row.lastInlineTime,
+                      scope.row.deviceName,
+                      scope.row.deviceCode,
+                      scope.row.deptName,
+                    )
+                  "
+                >
+                  {{ t('monitor.check') }}
+                </el-button>
+              </template>
+            </el-table-column>
+          </el-table>
 
-      <!-- 分页 -->
-      <Pagination
-        :total="total"
-        v-model:page="queryParams.pageNo"
-        v-model:limit="queryParams.pageSize"
-        @pagination="getList"
-      />
-    </ContentWrap>
+          <!-- 分页 -->
+          <Pagination
+            :total="total"
+            v-model:page="queryParams.pageNo"
+            v-model:limit="queryParams.pageSize"
+            @pagination="getList"
+          />
+        </ContentWrap>
       </ContentWrap>
     </el-col>
   </el-row>
-
-<!--  &lt;!&ndash; 表单弹窗:添加/修改 &ndash;&gt;-->
-<!--  <DeviceForm ref="formRef" @success="getList" />-->
-<!--  &lt;!&ndash; 分组表单组件 &ndash;&gt;-->
-<!--  <DeviceGroupForm ref="groupFormRef" @success="getList" />-->
-<!--  &lt;!&ndash; 导入表单组件 &ndash;&gt;-->
-<!--  <DeviceImportForm ref="importFormRef" @success="getList" />-->
 </template>
 
 <script setup lang="ts">
-import { DICT_TYPE, getDictLabel } from '@/utils/dict'
+import { DICT_TYPE, getDictLabel, getStrDictOptions } from '@/utils/dict'
 import { dateFormatter } from '@/utils/formatTime'
-import { DeviceApi, DeviceVO, DeviceStateEnum } from '@/api/iot/device/device'
+import { DeviceApi, DeviceVO } from '@/api/iot/device/device'
 import download from '@/utils/download'
-
-import DeptTree from "@/views/system/user/DeptTree.vue";
-import {IotDeviceApi} from "@/api/pms/device";
-
+import DeptTree from '@/views/system/user/DeptTree.vue'
+import { IotDeviceApi } from '@/api/pms/device'
 /** IoT 设备列表 */
-defineOptions({ name: 'IoTDevice' })
+defineOptions({ name: 'IoTDeviceMonitor' })
 
 const message = useMessage() // 消息弹窗
 const { t } = useI18n() // 国际化
@@ -278,16 +327,14 @@ const queryParams = reactive({
   infoRemark: undefined,
   infoUrl: undefined,
   templateJson: undefined,
-  creator: undefined
+  creator: undefined,
+  ifInline: undefined
 })
 const queryFormRef = ref() // 搜索的表单
 const exportLoading = ref(false) // 导出加载状态
 const products = ref<ProductVO[]>([]) // 产品列表
-const deviceGroups = ref<DeviceGroupVO[]>([]) // 设备分组列表
 const selectedIds = ref<number[]>([]) // 选中的设备编号数组
 const viewMode = ref<'card' | 'list'>('card') // 视图模式状态
-const defaultPicUrl = ref('@/src/assets/imgs/iot/device.png') // 默认设备图片
-const defaultIconUrl = ref('/src/assets/svgs/iot/card-fill.svg') // 默认设备图标
 
 /** 查询列表 */
 const getList = async () => {
@@ -322,15 +369,21 @@ const resetQuery = () => {
 
 /** 打开详情 */
 const { push } = useRouter()
-const openDetail = (id: number,ifInline: string, time:string, name:string,code:string, dept:string) => {
-  if (time === null||time === undefined) {
-    message.warning("没有数采数据")
+const openDetail = (
+  id: number,
+  ifInline: string,
+  time: string,
+  name: string,
+  code: string,
+  dept: string
+) => {
+  if (time === null || time === undefined) {
+    message.warning('没有数采数据')
     return
   }
-  push({ name: 'TdDeviceDetail', params: { id,ifInline, time,name,code,dept } })
+  push({ name: 'TdDeviceDetail', params: { id, ifInline, time, name, code, dept } })
 }
 
-
 /** 导出方法 */
 const handleExport = async () => {
   try {

+ 2 - 2
src/views/pms/failure/DeviceList.vue

@@ -53,10 +53,10 @@
         </el-table-column>
         <el-table-column :label="t('deviceList.deviceCode')" align="center" prop="deviceCode" />
         <el-table-column :label="t('deviceList.deviceName')" align="center" prop="deviceName" />
-        <el-table-column :label="t('deviceStatus.dept')" align="center" prop="deptId" />
+        <el-table-column :label="t('deviceStatus.dept')" align="center" prop="deptName" />
         <el-table-column :label="t('maintain.status')" align="center" prop="deviceStatus">
           <template #default="scope">
-            <dict-tag :type="DICT_TYPE.PMS_DEVICE_STATUS" :value="scope.row.status" />
+            <dict-tag :type="DICT_TYPE.PMS_DEVICE_STATUS" :value="scope.row.deviceStatus" />
           </template>
         </el-table-column>
         <el-table-column