huangxz
2026-08-13 81ed9aef38d7d8d195f3bc5519c0a171ff40cbcb
fix(fence): 还原电子围栏详情页改动,该菜单已废弃
1个文件已修改
31 ■■■■■ 已修改文件
src/views/businessOperations/geofenceManagement/detail.vue 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/businessOperations/geofenceManagement/detail.vue
@@ -227,11 +227,6 @@
  )
}
// 获取参与重叠/包含判断的已启用运营区
function getOperableFenceAreas() {
  return renderedPolygons.value.filter((item: any) => item.areaType === 1 && item.areaStatus === 1 && (item.flowStatus == null || Number(item.flowStatus) === 5))
}
// 判断禁行区域是否完全在运营区域内
function isDisallowedAreaInOperationArea(disallowedPath: any, operationPath: any): boolean {
  // 使用高德地图的几何工具来判断禁行区域是否完全在运营区域内
@@ -369,23 +364,18 @@
      message.error('运营区域不允许自相交')
      return
    }
    const operableAreas = getOperableFenceAreas()
    console.warn('[fence-overlap] 绘制完成,参与校验的运营区:', operableAreas.map((item: any) => ({ id: item.id, areaName: item.areaName, areaStatus: item.areaStatus, flowStatus: item.flowStatus })))
    const fenceArea = operableAreas.find((item: any) => isPolygonIntersectOthers(fencePoints, item.points))
    const fenceArea = renderedPolygons.value.filter((item: any) => item.areaType === 1).find((item: any) => isPolygonIntersectOthers(fencePoints, item.points))
    if (fenceArea) {
      console.error('[fence-overlap] 命中相交:', fenceArea)
      message.error(`当前区域已有运营区,若需修改,请编辑${fenceArea.areaName}`)
      return
    }
    const fenceContained = operableAreas.find((item: any) => isPolygonContained(fencePoints, item.points))
    const fenceContained = renderedPolygons.value.filter((item: any) => item.areaType === 1).find((item: any) => isPolygonContained(fencePoints, item.points))
    if (fenceContained) {
      console.error('[fence-overlap] 命中被包含:', fenceContained)
      message.error(`当前区域已被${fenceContained.areaName}包含,若需修改,请编辑${fenceContained.areaName}`)
      return
    }
    const fenceContainOthers = operableAreas.find((item: any) => isPolygonContainOthers(fencePoints, item.points))
    const fenceContainOthers = renderedPolygons.value.filter((item: any) => item.areaType === 1).find((item: any) => isPolygonContainOthers(fencePoints, item.points))
    if (fenceContainOthers) {
      console.error('[fence-overlap] 命中包含其他:', fenceContainOthers)
      message.error(`当前区域包含${fenceContainOthers.areaName},若需修改,请编辑${fenceContainOthers.areaName}`)
    }
  })
@@ -1509,23 +1499,18 @@
    message.error('运营区域不允许自相交')
    return
  }
  const operableAreas = getOperableFenceAreas()
  console.warn('[fence-overlap] 保存前,参与校验的运营区:', operableAreas.map((item: any) => ({ id: item.id, areaName: item.areaName, areaStatus: item.areaStatus, flowStatus: item.flowStatus })))
  const fenceArea = operableAreas.find((item: any) => isPolygonIntersectOthers(fencePoints, item.points))
  const fenceArea = renderedPolygons.value.filter((item: any) => item.areaType === 1).find((item: any) => isPolygonIntersectOthers(fencePoints, item.points))
  if (fenceArea) {
    console.error('[fence-overlap] 命中相交:', fenceArea)
    message.error(`当前区域已有运营区,若需修改,请编辑${fenceArea.areaName}`)
    return
  }
  const fenceContained = operableAreas.find((item: any) => isPolygonContained(fencePoints, item.points))
  const fenceContained = renderedPolygons.value.filter((item: any) => item.areaType === 1).find((item: any) => isPolygonContained(fencePoints, item.points))
  if (fenceContained) {
    console.error('[fence-overlap] 命中被包含:', fenceContained)
    message.error(`当前区域已被${fenceContained.areaName}包含,若需修改,请编辑${fenceContained.areaName}`)
    return
  }
  const fenceContainOthers = operableAreas.find((item: any) => isPolygonContainOthers(fencePoints, item.points))
  const fenceContainOthers = renderedPolygons.value.filter((item: any) => item.areaType === 1).find((item: any) => isPolygonContainOthers(fencePoints, item.points))
  if (fenceContainOthers) {
    console.error('[fence-overlap] 命中包含其他:', fenceContainOthers)
    message.error(`当前区域包含${fenceContainOthers.areaName},若需修改,请编辑${fenceContainOthers.areaName}`)
    return
  }
@@ -1792,7 +1777,6 @@
function getFenceArea() {
  fetchElectronicFenceAreaList().then((res) => {
    if (res.code === 200) {
      console.warn('[fence-overlap] listElectronicFenceArea 原始返回:', res.data.map((item: any) => ({ id: item.id, areaName: item.areaName, areaType: item.areaType, areaStatus: item.areaStatus, electronicId: item.electronicId, flowStatus: item.flowStatus })))
      if (modalType.value !== 'add') {
        fenceAreaList.value = res.data.filter((item: any) => item.electronicId !== routeId.value && item.electronicId !== Number(routeId.value))
      }
@@ -1801,7 +1785,6 @@
      }
      // 渲染新获取的多边形
      renderFencePolygons(fenceAreaList.value)
      console.warn('[fence-overlap] 渲染后全部多边形:', renderedPolygons.value.map((item: any) => ({ id: item.id, areaName: item.areaName, areaType: item.areaType, areaStatus: item.areaStatus, flowStatus: item.flowStatus })))
    }
  }).finally(() => {
    getPointList()
@@ -1873,8 +1856,6 @@
        points,
        areaType: item.areaType,
        areaName: item.areaName,
        areaStatus: Number(item.areaStatus),
        flowStatus: item.flowStatus != null ? Number(item.flowStatus) : undefined,
      })
    }
  })