huangxz
2026-08-18 cf82b13c51d2a75d6825647e53f9699d96c0d21b
Merge remote-tracking branch 'origin/feat-ops-workbench-optimization-20260817' into feat/deploy-uat
1个文件已修改
40 ■■■■■ 已修改文件
src/views/businessOperations/operationWorkbench/map.vue 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/businessOperations/operationWorkbench/map.vue
@@ -36,7 +36,6 @@
  fetchEnabledOpenCityList,
  getFenceDetail,
  getFenceList,
  updateFenceStatus,
  validateFenceOperationStrategyShorten,
} from '@/service/api/operations'
import { uploadSingleFile } from '@/utils/upload'
@@ -7725,28 +7724,23 @@
  const fence = fenceDetailData.value
  if (!fence?.id)
    return
  const confirmed = await openConfirmDialog(
    '提示',
    '是否确认停运?停运后此区域停止派单,订单静默处理(已下单、进行中的订单正常执行)',
  )
  if (!confirmed)
    return
  try {
    const res = await updateFenceStatus({ id: fence.id, status: 2 })
    if (res.code === 200) {
      window.$message?.success('停用成功')
      const detailRes = await getFenceDetail(fence.id)
      if (detailRes.code === 200)
        fenceDetailData.value = detailRes.data
      workbenchStore.markListNeedRefresh()
      renderMapEntities()
    }
    else {
      window.$message?.error(res.msg || '停用失败,请稍后重试。')
    }
  }
  catch (e) {
    window.$message?.error('停用失败,请稍后重试。')
  // 与顶部“启用/停用”开关保持一致:走编辑保存链路,将 areaStatus 置为停用后按发布执行提交,
  // 二次确认由 handleSaveFenceEdit 内部统一处理,避免与开关路径出现两套确认文案。
  const wasEditing = fenceEditMode.value
  if (!wasEditing)
    handleEnterFenceEdit()
  fenceForm.value.areaStatus = 2
  await handleSaveFenceEdit(1)
  // 用户在确认弹窗中取消,或保存未成功时不会退出编辑态;
  // 此时静默恢复回详情态,避免残留在编辑视图。
  if (!wasEditing && fenceEditMode.value) {
    const workflowState = buildFenceCancelEditState(fenceDetailData.value)
    fenceForm.value = workflowState.fenceForm
    fenceStrategyList.value = workflowState.fenceStrategyList
    fenceEditMode.value = workflowState.fenceEditMode
    fenceEditSnapshot.value = workflowState.fenceEditSnapshot
    cleanupFenceEditorState()
    renderMapEntities()
  }
}