ソースを参照

refactor(manholeCover): 统一设备编号字段并优化界面显示

- 将设备编号字段统一从 deviceId 更改为 deviceCode
- 移除冗余的 ID 显示字段,简化案件和工单详情界面
- 优化阈值配置提示文案
- 改进用户选择和工单分配的显示逻辑
- 清理表格列中的多余 ID 字段
- 修复工单下派时的用户名称显示问题
nahida 4 日 前
コミット
70fd66ca04

+ 3 - 3
src/views/subSystem/manholeCover/alarm/alarmList.vue

@@ -87,7 +87,7 @@
                 {{ selectedAlert.level === 'critical' ? '严重报警' : '一般报警' }}
               </el-tag>
             </el-descriptions-item>
-            <el-descriptions-item label="设备编号">{{ selectedAlert.deviceId }}</el-descriptions-item>
+            <el-descriptions-item label="设备编号">{{ selectedAlert.deviceCode || '—' }}</el-descriptions-item>
             <el-descriptions-item label="设备类型">{{ selectedAlert.deviceType }}</el-descriptions-item>
             <el-descriptions-item label="报警类型">{{ selectedAlert.alertType }}</el-descriptions-item>
             <el-descriptions-item label="报警时间">{{ selectedAlert.time }}</el-descriptions-item>
@@ -261,7 +261,7 @@ function normalizeAlert(raw, baseAlert = null) {
   return {
     id: raw?.equipmentId || raw?.equipmentCode,
     equipmentId: raw?.equipmentId || '',
-    deviceId: raw?.equipmentCode || raw?.equipmentId || '—',
+    deviceCode: raw?.equipmentCode || '',
     deviceName: raw?.equipmentName || raw?.equipmentCode || '未命名设备',
     deviceType: raw?.equipmentTypeName || '井盖监测设备',
     location: raw?.equipmentLocation || '暂无位置信息',
@@ -344,7 +344,7 @@ const filteredAlerts = computed(() => {
     const kw = searchText.value.toLowerCase()
     list = list.filter(a =>
       `${a.location || ''}`.toLowerCase().includes(kw) ||
-      `${a.deviceId || ''}`.toLowerCase().includes(kw) ||
+      `${a.deviceCode || ''}`.toLowerCase().includes(kw) ||
       `${a.deviceName || ''}`.toLowerCase().includes(kw)
     )
   }

+ 2 - 1
src/views/subSystem/manholeCover/alarm/alarmSanalysis.vue

@@ -106,7 +106,7 @@
         <el-drawer v-model="drawerVisible" :title="selectedDevice?.name + ' - 监测报警详情'" direction="rtl" size="420px">
           <div v-if="selectedDevice" v-loading="detailLoading">
             <el-descriptions :column="1" border>
-              <el-descriptions-item label="设备编号">{{ selectedDevice.id }}</el-descriptions-item>
+              <el-descriptions-item label="设备编号">{{ selectedDevice.deviceCode || '—' }}</el-descriptions-item>
               <el-descriptions-item label="地理位置">{{ selectedDevice.address }}</el-descriptions-item>
               <el-descriptions-item label="当前状态">
                 <el-tag :type="getStatusTag(selectedDevice.status)">{{ selectedDevice.statusText }}</el-tag>
@@ -358,6 +358,7 @@ function normalizeDevice(raw, _index = 0, baseDevice = {}) {
   return {
     equipmentId: raw?.equipmentId || baseDevice.equipmentId || '',
     id: raw?.equipmentCode || baseDevice.id || raw?.equipmentId || '',
+    deviceCode: raw?.equipmentCode || baseDevice.deviceCode || '',
     name: raw?.equipmentName || baseDevice.name || raw?.equipmentCode || '未命名设备',
     lng,
     lat,

+ 1 - 2
src/views/subSystem/manholeCover/alarm/index.vue

@@ -162,8 +162,7 @@
                   placeholder="请输入备注"
                 />
                 <div class="saved-hint">
-                  预警编码:{{ item.warningCode }}
-                  <span v-if="thresholds[item.key].id">,当前记录ID:{{ thresholds[item.key].id }}</span>
+                  当前阈值配置将保存到后端预警规则
                 </div>
               </div>
             </el-tab-pane>

+ 0 - 7
src/views/subSystem/manholeCover/caseHandling/circulation.vue

@@ -81,34 +81,27 @@
               <span><el-icon><InfoFilled /></el-icon> 案件信息</span>
             </div>
             <el-descriptions :column="1" border>
-              <el-descriptions-item label="案件ID">{{ selectedCase.caseId || '—' }}</el-descriptions-item>
               <el-descriptions-item label="案件编号">{{ selectedCase.caseNo }}</el-descriptions-item>
-              <el-descriptions-item label="报警ID">{{ selectedCase.alarmId || '—' }}</el-descriptions-item>
               <el-descriptions-item label="案件等级">
                 <el-tag :type="selectedCase.levelTag">{{ selectedCase.levelText }}</el-tag>
               </el-descriptions-item>
               <el-descriptions-item label="案件来源">{{ selectedCase.sourceText }}</el-descriptions-item>
               <el-descriptions-item label="案件描述">{{ selectedCase.caseDesc || '—' }}</el-descriptions-item>
               <el-descriptions-item label="案件状态">{{ selectedCase.statusText }}</el-descriptions-item>
-              <el-descriptions-item label="立案人ID">{{ selectedCase.fileUser || '—' }}</el-descriptions-item>
               <el-descriptions-item label="立案时间">{{ selectedCase.createTimeText }}</el-descriptions-item>
-              <el-descriptions-item label="核查人ID">{{ selectedCase.verifyUser || '—' }}</el-descriptions-item>
               <el-descriptions-item label="核查时间">{{ selectedCase.verifyTimeText }}</el-descriptions-item>
               <el-descriptions-item label="办结时间">{{ selectedCase.finishTimeText }}</el-descriptions-item>
               <el-descriptions-item label="处置结果">{{ selectedCase.handleResult || '—' }}</el-descriptions-item>
-              <el-descriptions-item label="更新时间">{{ selectedCase.updateTimeText }}</el-descriptions-item>
             </el-descriptions>
           </div>
           <div class="flex-1">
             <div class="mb-[14px] flex items-center gap-2 text-[16px] font-600"><el-icon><Monitor /></el-icon> 设备信息</div>
             <el-descriptions :column="1" border>
-              <el-descriptions-item label="设备ID">{{ selectedCase.deviceId || '—' }}</el-descriptions-item>
               <el-descriptions-item label="设备编号">{{ selectedCase.deviceCode || '—' }}</el-descriptions-item>
               <el-descriptions-item label="设备类别">{{ selectedCase.equipmentTypeName || '—' }}</el-descriptions-item>
               <el-descriptions-item label="运维状态">{{ selectedCase.currentStatusText }}</el-descriptions-item>
               <el-descriptions-item label="在线状态">{{ selectedCase.onlineStatusText }}</el-descriptions-item>
               <el-descriptions-item label="报警状态">{{ selectedCase.alarmStatusText }}</el-descriptions-item>
-              <el-descriptions-item label="状态更新时间">{{ selectedCase.statusUpdateTimeText }}</el-descriptions-item>
             </el-descriptions>
           </div>
         </div>

+ 0 - 10
src/views/subSystem/manholeCover/caseHandling/closeWorkOrder.vue

@@ -105,12 +105,8 @@
     <el-drawer v-model="detailDrawerVisible" :title="`工单详情 - ${currentOrder?.orderNo || ''}`" size="560px" direction="rtl">
       <div v-if="currentOrder" class="p-2" v-loading="detailLoading">
         <el-descriptions :column="1" border>
-          <el-descriptions-item label="工单ID">{{ currentOrder.orderId || '—' }}</el-descriptions-item>
           <el-descriptions-item label="工单编号">{{ currentOrder.orderNo }}</el-descriptions-item>
-          <el-descriptions-item label="报警ID">{{ currentOrder.alarmId || '—' }}</el-descriptions-item>
-          <el-descriptions-item label="案件ID">{{ currentOrder.caseId || '—' }}</el-descriptions-item>
           <el-descriptions-item label="关联案件编号">{{ currentOrder.caseNo || '—' }}</el-descriptions-item>
-          <el-descriptions-item label="设备ID">{{ currentOrder.deviceId || '—' }}</el-descriptions-item>
           <el-descriptions-item label="设备编号">{{ currentOrder.deviceCode || '—' }}</el-descriptions-item>
           <el-descriptions-item label="工单状态">
             <el-tag :type="currentOrder.orderStatusTag">{{ currentOrder.orderStatusText }}</el-tag>
@@ -120,11 +116,7 @@
           </el-descriptions-item>
           <el-descriptions-item label="工单类型">{{ currentOrder.orderTypeText }}</el-descriptions-item>
           <el-descriptions-item label="问题描述">{{ currentOrder.orderDesc || '—' }}</el-descriptions-item>
-          <el-descriptions-item label="负责部门ID">{{ currentOrder.deptId || '—' }}</el-descriptions-item>
           <el-descriptions-item label="设备类别">{{ currentOrder.equipmentTypeName || '—' }}</el-descriptions-item>
-          <el-descriptions-item label="接单人ID">{{ currentOrder.receiveUser || '—' }}</el-descriptions-item>
-          <el-descriptions-item label="派单人ID">{{ currentOrder.dispatchUser || '—' }}</el-descriptions-item>
-          <el-descriptions-item label="验收人ID">{{ currentOrder.verifyUser || '—' }}</el-descriptions-item>
           <el-descriptions-item label="派单时间">{{ currentOrder.dispatchTimeText }}</el-descriptions-item>
           <el-descriptions-item label="创建时间">{{ currentOrder.createTimeText }}</el-descriptions-item>
           <el-descriptions-item label="计划完成时间">{{ currentOrder.planFinishTimeText }}</el-descriptions-item>
@@ -136,8 +128,6 @@
           <el-descriptions-item label="设备运维状态">{{ currentOrder.currentStatusText }}</el-descriptions-item>
           <el-descriptions-item label="设备在线状态">{{ currentOrder.onlineStatusText }}</el-descriptions-item>
           <el-descriptions-item label="设备报警状态">{{ currentOrder.alarmStatusText }}</el-descriptions-item>
-          <el-descriptions-item label="状态更新时间">{{ currentOrder.statusUpdateTimeText }}</el-descriptions-item>
-          <el-descriptions-item label="更新时间">{{ currentOrder.updateTimeText }}</el-descriptions-item>
         </el-descriptions>
 
         <div class="mt-4">

+ 0 - 10
src/views/subSystem/manholeCover/caseHandling/handlingWorkO.vue

@@ -105,12 +105,8 @@
     <el-drawer v-model="detailDrawerVisible" :title="`工单详情 - ${currentOrder?.orderNo || ''}`" size="540px" direction="rtl">
       <div v-if="currentOrder" class="p-2" v-loading="detailLoading">
         <el-descriptions :column="1" border>
-          <el-descriptions-item label="工单ID">{{ currentOrder.orderId || '—' }}</el-descriptions-item>
           <el-descriptions-item label="工单编号">{{ currentOrder.orderNo }}</el-descriptions-item>
-          <el-descriptions-item label="报警ID">{{ currentOrder.alarmId || '—' }}</el-descriptions-item>
-          <el-descriptions-item label="案件ID">{{ currentOrder.caseId || '—' }}</el-descriptions-item>
           <el-descriptions-item label="关联案件编号">{{ currentOrder.caseNo || '—' }}</el-descriptions-item>
-          <el-descriptions-item label="设备ID">{{ currentOrder.deviceId || '—' }}</el-descriptions-item>
           <el-descriptions-item label="设备编号">{{ currentOrder.deviceCode || '—' }}</el-descriptions-item>
           <el-descriptions-item label="工单状态">
             <el-tag :type="currentOrder.orderStatusTag">{{ currentOrder.orderStatusText }}</el-tag>
@@ -120,24 +116,18 @@
           </el-descriptions-item>
           <el-descriptions-item label="工单类型">{{ currentOrder.orderTypeText }}</el-descriptions-item>
           <el-descriptions-item label="问题描述">{{ currentOrder.orderDesc || '—' }}</el-descriptions-item>
-          <el-descriptions-item label="负责部门ID">{{ currentOrder.deptId || '—' }}</el-descriptions-item>
           <el-descriptions-item label="设备类别">{{ currentOrder.equipmentTypeName || '—' }}</el-descriptions-item>
-          <el-descriptions-item label="接单人ID">{{ currentOrder.receiveUser || '—' }}</el-descriptions-item>
-          <el-descriptions-item label="派单人ID">{{ currentOrder.dispatchUser || '—' }}</el-descriptions-item>
           <el-descriptions-item label="派单时间">{{ currentOrder.dispatchTimeText }}</el-descriptions-item>
           <el-descriptions-item label="创建时间">{{ currentOrder.createTimeText }}</el-descriptions-item>
           <el-descriptions-item label="计划完成时间">{{ currentOrder.planFinishTimeText }}</el-descriptions-item>
           <el-descriptions-item label="延期原因">{{ currentOrder.delayedReason || '—' }}</el-descriptions-item>
           <el-descriptions-item label="延期截止时间">{{ currentOrder.delayedDeadlineText }}</el-descriptions-item>
-          <el-descriptions-item label="验收人ID">{{ currentOrder.verifyUser || '—' }}</el-descriptions-item>
           <el-descriptions-item label="验收时间">{{ currentOrder.verifyTimeText }}</el-descriptions-item>
           <el-descriptions-item label="实际完成时间">{{ currentOrder.realFinishTimeText }}</el-descriptions-item>
           <el-descriptions-item label="维修处置结果">{{ currentOrder.repairResult || '—' }}</el-descriptions-item>
           <el-descriptions-item label="设备运维状态">{{ currentOrder.currentStatusText }}</el-descriptions-item>
           <el-descriptions-item label="设备在线状态">{{ currentOrder.onlineStatusText }}</el-descriptions-item>
           <el-descriptions-item label="设备报警状态">{{ currentOrder.alarmStatusText }}</el-descriptions-item>
-          <el-descriptions-item label="状态更新时间">{{ currentOrder.statusUpdateTimeText }}</el-descriptions-item>
-          <el-descriptions-item label="更新时间">{{ currentOrder.updateTimeText }}</el-descriptions-item>
         </el-descriptions>
 
         <div class="mt-4">

+ 6 - 16
src/views/subSystem/manholeCover/caseHandling/orderDisposal.vue

@@ -78,39 +78,29 @@
               <span><el-icon><Document /></el-icon> 工单基本信息</span>
             </div>
             <el-descriptions :column="2" border>
-              <el-descriptions-item label="工单ID">{{ selectedOrder.orderId || '—' }}</el-descriptions-item>
               <el-descriptions-item label="工单编号">{{ selectedOrder.orderNo }}</el-descriptions-item>
-              <el-descriptions-item label="报警ID">{{ selectedOrder.alarmId || '—' }}</el-descriptions-item>
               <el-descriptions-item label="工单状态">
                 <el-tag :type="selectedOrder.orderStatusTag">{{ selectedOrder.orderStatusText }}</el-tag>
               </el-descriptions-item>
-              <el-descriptions-item label="案件ID">{{ selectedOrder.caseId || '—' }}</el-descriptions-item>
               <el-descriptions-item label="关联案件编号">{{ selectedOrder.caseNo || '—' }}</el-descriptions-item>
-              <el-descriptions-item label="设备ID">{{ selectedOrder.deviceId || '—' }}</el-descriptions-item>
               <el-descriptions-item label="设备编号">{{ selectedOrder.deviceCode || '—' }}</el-descriptions-item>
               <el-descriptions-item label="优先级">
                 <el-tag :type="selectedOrder.orderLevelTag">{{ selectedOrder.orderLevelText }}</el-tag>
               </el-descriptions-item>
               <el-descriptions-item label="工单类型">{{ selectedOrder.orderTypeText }}</el-descriptions-item>
               <el-descriptions-item label="问题描述" :span="2">{{ selectedOrder.orderDesc || '—' }}</el-descriptions-item>
-              <el-descriptions-item label="负责部门ID">{{ selectedOrder.deptId || '—' }}</el-descriptions-item>
               <el-descriptions-item label="设备类别">{{ selectedOrder.equipmentTypeName || '—' }}</el-descriptions-item>
-              <el-descriptions-item label="接单人ID">{{ selectedOrder.receiveUser || '—' }}</el-descriptions-item>
-              <el-descriptions-item label="派单人ID">{{ selectedOrder.dispatchUser || '—' }}</el-descriptions-item>
               <el-descriptions-item label="派单时间">{{ selectedOrder.dispatchTimeText }}</el-descriptions-item>
               <el-descriptions-item label="创建时间">{{ selectedOrder.createTimeText }}</el-descriptions-item>
               <el-descriptions-item label="计划完成时间">{{ selectedOrder.planFinishTimeText }}</el-descriptions-item>
               <el-descriptions-item label="延期原因">{{ selectedOrder.delayedReason || '—' }}</el-descriptions-item>
               <el-descriptions-item label="延期截止时间">{{ selectedOrder.delayedDeadlineText }}</el-descriptions-item>
-              <el-descriptions-item label="验收人ID">{{ selectedOrder.verifyUser || '—' }}</el-descriptions-item>
               <el-descriptions-item label="验收时间">{{ selectedOrder.verifyTimeText }}</el-descriptions-item>
               <el-descriptions-item label="实际完成时间">{{ selectedOrder.realFinishTimeText }}</el-descriptions-item>
               <el-descriptions-item label="运维状态">{{ selectedOrder.currentStatusText }}</el-descriptions-item>
               <el-descriptions-item label="在线状态">{{ selectedOrder.onlineStatusText }}</el-descriptions-item>
               <el-descriptions-item label="报警状态">{{ selectedOrder.alarmStatusText }}</el-descriptions-item>
-              <el-descriptions-item label="状态更新时间">{{ selectedOrder.statusUpdateTimeText }}</el-descriptions-item>
               <el-descriptions-item label="处置结果" :span="2">{{ selectedOrder.repairResult || '—' }}</el-descriptions-item>
-              <el-descriptions-item label="更新时间">{{ selectedOrder.updateTimeText }}</el-descriptions-item>
             </el-descriptions>
 
             <div class="mt-5 border-t border-[#e9ecef] pt-3">
@@ -212,13 +202,12 @@
             @current-change="handleUserCurrentChange"
             @row-click="handleUserCurrentChange"
           >
-            <el-table-column prop="userId" label="ID" width="90" />
             <el-table-column prop="userName" label="用户名" min-width="120" />
             <el-table-column prop="nickName" label="昵称" min-width="120" />
             <el-table-column prop="dept.deptName" label="部门" min-width="140" show-overflow-tooltip />
           </el-table>
           <div class="mt-3 text-[#606266]">
-            已选人员:{{ dispatchSelectedUser ? `${dispatchSelectedUser.userName} / ID: ${dispatchSelectedUser.userId}` : '未选择' }}
+            已选人员:{{ dispatchSelectedUser ? `${dispatchSelectedUser.userName}${dispatchSelectedUser.nickName ? ` / ${dispatchSelectedUser.nickName}` : ''}` : '未选择' }}
           </div>
         </div>
       </div>
@@ -406,12 +395,12 @@ async function loadOrders() {
 async function selectOrder(order) {
   detailLoading.value = true
   receiveUserId.value = order.receiveUser || null
-  receiveUserDisplay.value = order.receiveUser ? `用户ID: ${order.receiveUser}` : ''
+  receiveUserDisplay.value = order.receiveUser ? '已选择接单人' : ''
   try {
     const res = await getManholeWorkOrderDetail(order.orderId)
     selectedOrder.value = normalizeOrder(res?.data || order)
     receiveUserId.value = selectedOrder.value.receiveUser || null
-    receiveUserDisplay.value = selectedOrder.value.receiveUser ? `用户ID: ${selectedOrder.value.receiveUser}` : ''
+    receiveUserDisplay.value = selectedOrder.value.receiveUser ? '已选择接单人' : ''
   } catch (error) {
     selectedOrder.value = order
     ElMessage.error('工单详情加载失败')
@@ -493,7 +482,8 @@ async function dispatchOrder() {
     return
   }
   try {
-    await operateCurrent(2, `下派工单至用户${receiveUserId.value}`, { receiveUser: Number(receiveUserId.value) })
+    const receiveUserName = dispatchSelectedUser.value?.userName || '指定人员'
+    await operateCurrent(2, `下派工单至${receiveUserName}`, { receiveUser: Number(receiveUserId.value) })
     ElMessage.success('工单下派成功')
   } catch (error) {
     ElMessage.error(error?.message || '工单下派失败')
@@ -577,7 +567,7 @@ function confirmDispatchUser() {
     return
   }
   receiveUserId.value = dispatchSelectedUser.value.userId
-  receiveUserDisplay.value = `${dispatchSelectedUser.value.userName} / ID: ${dispatchSelectedUser.value.userId}`
+  receiveUserDisplay.value = `${dispatchSelectedUser.value.userName}${dispatchSelectedUser.value.nickName ? ` / ${dispatchSelectedUser.value.nickName}` : ''}`
   dispatchDialogVisible.value = false
 }