ai-coding
2026-08-18 36268f0850bae449aa0b702d08862f5562b0cb00
feat: branch-change-analysis

Co-Authored-By: 黄星炤 <huangxz@xiaopeng.com>
2个文件已修改
44 ■■■■■ 已修改文件
src/views/businessOperations/operationWorkbench/components/FencePanel.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/businessOperations/operationWorkbench/map.vue 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/businessOperations/operationWorkbench/components/FencePanel.vue
@@ -51,6 +51,7 @@
  'focus-restricted-area',
  'view-source',
  'edit-current',
  'stop-current',
  'close-panel',
  'cancel-edit',
  'save-draft',
@@ -90,6 +91,10 @@
const isAreaStatusSwitchDisabled = computed(
  () =>
    !props.createMode && [0, 1].includes(Number(props.fenceDetailData?.status)),
)
// 停用按钮:围栏已停用(3)时禁用,避免重复操作。
const isStopFenceDisabled = computed(
  () => Number(props.fenceDetailData?.status) === 3,
)
const showDraftButton = computed(
  () => !!props.createMode || Number(props.fenceDetailData?.status) === 0,
@@ -1276,6 +1281,14 @@
        </div>
      </div>
      <div class="drawer-footer">
        <NButton
          secondary
          class="w-full"
          :disabled="isStopFenceDisabled"
          @click="emit('stop-current')"
        >
          停用
        </NButton>
        <NButton type="primary" class="w-full" @click="emit('edit-current')">
          编辑
        </NButton>
src/views/businessOperations/operationWorkbench/map.vue
@@ -36,6 +36,7 @@
  fetchEnabledOpenCityList,
  getFenceDetail,
  getFenceList,
  updateFenceStatus,
  validateFenceOperationStrategyShorten,
} from '@/service/api/operations'
import { uploadSingleFile } from '@/utils/upload'
@@ -7720,6 +7721,35 @@
  showFenceEditGuideOnEntry()
}
async function handleStopCurrentFence() {
  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('停用失败,请稍后重试。')
  }
}
async function handleWorkbenchCreateByTab(tab: WorkbenchTab) {
  if (tab !== 'station')
    return
@@ -10323,6 +10353,7 @@
          @focus-restricted-area="focusRestrictedArea"
          @view-source="handleViewSourcePage"
          @edit-current="handleEnterFenceEdit"
          @stop-current="handleStopCurrentFence"
          @close-panel="handleCloseFencePanel"
          @cancel-edit="handleCancelFenceEdit"
          @save-draft="() => handleSaveFenceEdit(0)"