huangxz
2026-08-12 d7a1c3a5b06c133ea6a45b9d7f78dfd2833a8359
fix(fence): 运营区重叠校验同时按 flowStatus 排除测试中围栏
1个文件已修改
13 ■■■■■ 已修改文件
src/views/businessOperations/geofenceManagement/detail.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/businessOperations/geofenceManagement/detail.vue
@@ -364,17 +364,17 @@
      message.error('运营区域不允许自相交')
      return
    }
    const fenceArea = renderedPolygons.value.filter((item: any) => item.areaType === 1 && item.areaStatus === 1).find((item: any) => isPolygonIntersectOthers(fencePoints, item.points))
    const fenceArea = renderedPolygons.value.filter((item: any) => item.areaType === 1 && item.areaStatus === 1 && (item.flowStatus == null || Number(item.flowStatus) === 5)).find((item: any) => isPolygonIntersectOthers(fencePoints, item.points))
    if (fenceArea) {
      message.error(`当前区域已有运营区,若需修改,请编辑${fenceArea.areaName}`)
      return
    }
    const fenceContained = renderedPolygons.value.filter((item: any) => item.areaType === 1 && item.areaStatus === 1).find((item: any) => isPolygonContained(fencePoints, item.points))
    const fenceContained = renderedPolygons.value.filter((item: any) => item.areaType === 1 && item.areaStatus === 1 && (item.flowStatus == null || Number(item.flowStatus) === 5)).find((item: any) => isPolygonContained(fencePoints, item.points))
    if (fenceContained) {
      message.error(`当前区域已被${fenceContained.areaName}包含,若需修改,请编辑${fenceContained.areaName}`)
      return
    }
    const fenceContainOthers = renderedPolygons.value.filter((item: any) => item.areaType === 1 && item.areaStatus === 1).find((item: any) => isPolygonContainOthers(fencePoints, item.points))
    const fenceContainOthers = renderedPolygons.value.filter((item: any) => item.areaType === 1 && item.areaStatus === 1 && (item.flowStatus == null || Number(item.flowStatus) === 5)).find((item: any) => isPolygonContainOthers(fencePoints, item.points))
    if (fenceContainOthers) {
      message.error(`当前区域包含${fenceContainOthers.areaName},若需修改,请编辑${fenceContainOthers.areaName}`)
    }
@@ -1499,17 +1499,17 @@
    message.error('运营区域不允许自相交')
    return
  }
  const fenceArea = renderedPolygons.value.filter((item: any) => item.areaType === 1 && item.areaStatus === 1).find((item: any) => isPolygonIntersectOthers(fencePoints, item.points))
  const fenceArea = renderedPolygons.value.filter((item: any) => item.areaType === 1 && item.areaStatus === 1 && (item.flowStatus == null || Number(item.flowStatus) === 5)).find((item: any) => isPolygonIntersectOthers(fencePoints, item.points))
  if (fenceArea) {
    message.error(`当前区域已有运营区,若需修改,请编辑${fenceArea.areaName}`)
    return
  }
  const fenceContained = renderedPolygons.value.filter((item: any) => item.areaType === 1 && item.areaStatus === 1).find((item: any) => isPolygonContained(fencePoints, item.points))
  const fenceContained = renderedPolygons.value.filter((item: any) => item.areaType === 1 && item.areaStatus === 1 && (item.flowStatus == null || Number(item.flowStatus) === 5)).find((item: any) => isPolygonContained(fencePoints, item.points))
  if (fenceContained) {
    message.error(`当前区域已被${fenceContained.areaName}包含,若需修改,请编辑${fenceContained.areaName}`)
    return
  }
  const fenceContainOthers = renderedPolygons.value.filter((item: any) => item.areaType === 1 && item.areaStatus === 1).find((item: any) => isPolygonContainOthers(fencePoints, item.points))
  const fenceContainOthers = renderedPolygons.value.filter((item: any) => item.areaType === 1 && item.areaStatus === 1 && (item.flowStatus == null || Number(item.flowStatus) === 5)).find((item: any) => isPolygonContainOthers(fencePoints, item.points))
  if (fenceContainOthers) {
    message.error(`当前区域包含${fenceContainOthers.areaName},若需修改,请编辑${fenceContainOthers.areaName}`)
    return
@@ -1857,6 +1857,7 @@
        areaType: item.areaType,
        areaName: item.areaName,
        areaStatus: Number(item.areaStatus),
        flowStatus: item.flowStatus != null ? Number(item.flowStatus) : undefined,
      })
    }
  })