From da0ba109dad30444fe1a29d5cf234cf4a143a04c Mon Sep 17 00:00:00 2001
From: 董国庆 <364620639@qq.com>
Date: 星期四, 04 六月 2026 12:35:25 +0800
Subject: [PATCH] 修复(车辆管理、运维工作台): 修复处理人显示及场站围栏生命周期逻辑

---
 src/views/assetManagement/vehicleManagement/operatingVehicle/detail.vue |    2 +-
 src/views/businessOperations/operationWorkbench/map.vue                 |   39 +++++++++++++++++++++++++++++----------
 2 files changed, 30 insertions(+), 11 deletions(-)

diff --git a/src/views/assetManagement/vehicleManagement/operatingVehicle/detail.vue b/src/views/assetManagement/vehicleManagement/operatingVehicle/detail.vue
index f8914a2..5e38a03 100644
--- a/src/views/assetManagement/vehicleManagement/operatingVehicle/detail.vue
+++ b/src/views/assetManagement/vehicleManagement/operatingVehicle/detail.vue
@@ -282,7 +282,7 @@
       return status ? <NTag type={status.type} size="small" bordered={false}>{status.text}</NTag> : '-'
     },
   },
-  { title: '处理人', key: 'processor', align: 'left' as const, width: 120, render: (row: any) => row.processor || '-' },
+  { title: '处理人', key: 'handleUserName', align: 'left' as const, width: 120, render: (row: any) => row.handleUserName || '-' },
   {
     title: '操作',
     key: 'actions',
diff --git a/src/views/businessOperations/operationWorkbench/map.vue b/src/views/businessOperations/operationWorkbench/map.vue
index f6e7810..e1560c9 100644
--- a/src/views/businessOperations/operationWorkbench/map.vue
+++ b/src/views/businessOperations/operationWorkbench/map.vue
@@ -1574,8 +1574,17 @@
     .filter((item: any) => visibleFenceIdSet.value.has(String(item.electronicId)))
     .map((item: any) => ({
       id: String(item.id || item.electronicId),
+      electronicId: item.electronicId,
       areaName: item.areaName || item.electronicName || "运营区",
       points: parseFencePoints(item.fencePoints),
+      effectType: item.effectType,
+      effectTime: item.effectTime,
+      failureType: item.failureType,
+      failureTime: item.failureTime,
+      fenceEffectType: item.fenceEffectType,
+      fenceEffectTime: item.fenceEffectTime,
+      fenceFailureType: item.fenceFailureType,
+      fenceFailureTime: item.fenceFailureTime,
     }))
     .filter((item) => item.points.length >= 3);
 }
@@ -2847,8 +2856,21 @@
 const stationLifecycleCache = ref<Record<string, Record<string, any> | null>>({});
 const stationOperationLifecycleFallback = ref<Record<string, any> | null>(null);
 const stationOperationArea = computed(() => resolveStationOperationArea());
+
+function resolveStationOperationFenceId(source?: Record<string, any> | null) {
+  if (!source) return "";
+  const fenceId
+    = source.electronicId
+      ?? source.electronicFenceId
+      ?? source.fenceId
+      ?? source.raw?.electronicId
+      ?? source.raw?.electronicFenceId
+      ?? source.raw?.fenceId;
+  return fenceId !== undefined && fenceId !== null ? String(fenceId) : "";
+}
+
 const stationOperationFenceId = computed(() =>
-  String(stationOperationArea.value?.electronicId || "")
+  resolveStationOperationFenceId(stationOperationArea.value)
 );
 
 async function ensureStationOperationLifecycleFallback() {
@@ -2858,17 +2880,14 @@
   }
   const operationArea = stationOperationArea.value;
   const inlineLifecycle = normalizeStationLifecycleSource(operationArea);
-  if (inlineLifecycle) {
+  const fenceId = stationOperationFenceId.value;
+  if (!fenceId) {
     stationOperationLifecycleFallback.value = inlineLifecycle;
     return;
   }
-  const fenceId = stationOperationFenceId.value;
-  if (!fenceId) {
-    stationOperationLifecycleFallback.value = null;
-    return;
-  }
   if (Object.prototype.hasOwnProperty.call(stationLifecycleCache.value, fenceId)) {
-    stationOperationLifecycleFallback.value = stationLifecycleCache.value[fenceId];
+    stationOperationLifecycleFallback.value
+      = stationLifecycleCache.value[fenceId] || inlineLifecycle;
     return;
   }
   try {
@@ -2882,7 +2901,7 @@
       [fenceId]: lifecycle,
     };
     if (stationOperationFenceId.value === fenceId)
-      stationOperationLifecycleFallback.value = lifecycle;
+      stationOperationLifecycleFallback.value = lifecycle || inlineLifecycle;
   } catch (error) {
     console.error("加载场站所属围栏生命周期失败:", error);
     stationLifecycleCache.value = {
@@ -2890,7 +2909,7 @@
       [fenceId]: null,
     };
     if (stationOperationFenceId.value === fenceId)
-      stationOperationLifecycleFallback.value = null;
+      stationOperationLifecycleFallback.value = inlineLifecycle;
   }
 }
 

--
Gitblit v1.7.1