董国庆
2026-06-04 da0ba109dad30444fe1a29d5cf234cf4a143a04c
修复(车辆管理、运维工作台): 修复处理人显示及场站围栏生命周期逻辑

- 调整车辆详情页表格列的数据源key,将processor替换为handleUserName以正确展示处理人名称
- 新增围栏ID解析工具函数,优化运维工作台地图的场站生命周期缓存与回退逻辑
- 补充场站运维区域的额外属性字段,完善数据映射与赋值处理
2个文件已修改
41 ■■■■■ 已修改文件
src/views/assetManagement/vehicleManagement/operatingVehicle/detail.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/businessOperations/operationWorkbench/map.vue 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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',
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;
  }
}