From fabd5af6b48efcf029919bb1cdb6ba471fcc2eb1 Mon Sep 17 00:00:00 2001
From: huangxz <huangxz@xiaopeng.com>
Date: 星期三, 12 八月 2026 12:20:15 +0800
Subject: [PATCH] fix(fence): 前端运营区重叠校验排除测试中围栏

---
 src/views/businessOperations/geofenceManagement/detail.vue |   13 +++++++------
 1 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/src/views/businessOperations/geofenceManagement/detail.vue b/src/views/businessOperations/geofenceManagement/detail.vue
index e43eec5..ec291b3 100644
--- a/src/views/businessOperations/geofenceManagement/detail.vue
+++ b/src/views/businessOperations/geofenceManagement/detail.vue
@@ -364,17 +364,17 @@
       message.error('运营区域不允许自相交')
       return
     }
-    const fenceArea = renderedPolygons.value.filter((item: any) => item.areaType === 1).find((item: any) => isPolygonIntersectOthers(fencePoints, item.points))
+    const fenceArea = renderedPolygons.value.filter((item: any) => item.areaType === 1 && item.areaStatus === 1).find((item: any) => isPolygonIntersectOthers(fencePoints, item.points))
     if (fenceArea) {
       message.error(`当前区域已有运营区,若需修改,请编辑${fenceArea.areaName}`)
       return
     }
-    const fenceContained = renderedPolygons.value.filter((item: any) => item.areaType === 1).find((item: any) => isPolygonContained(fencePoints, item.points))
+    const fenceContained = renderedPolygons.value.filter((item: any) => item.areaType === 1 && item.areaStatus === 1).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).find((item: any) => isPolygonContainOthers(fencePoints, item.points))
+    const fenceContainOthers = renderedPolygons.value.filter((item: any) => item.areaType === 1 && item.areaStatus === 1).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).find((item: any) => isPolygonIntersectOthers(fencePoints, item.points))
+  const fenceArea = renderedPolygons.value.filter((item: any) => item.areaType === 1 && item.areaStatus === 1).find((item: any) => isPolygonIntersectOthers(fencePoints, item.points))
   if (fenceArea) {
     message.error(`当前区域已有运营区,若需修改,请编辑${fenceArea.areaName}`)
     return
   }
-  const fenceContained = renderedPolygons.value.filter((item: any) => item.areaType === 1).find((item: any) => isPolygonContained(fencePoints, item.points))
+  const fenceContained = renderedPolygons.value.filter((item: any) => item.areaType === 1 && item.areaStatus === 1).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).find((item: any) => isPolygonContainOthers(fencePoints, item.points))
+  const fenceContainOthers = renderedPolygons.value.filter((item: any) => item.areaType === 1 && item.areaStatus === 1).find((item: any) => isPolygonContainOthers(fencePoints, item.points))
   if (fenceContainOthers) {
     message.error(`当前区域包含${fenceContainOthers.areaName},若需修改,请编辑${fenceContainOthers.areaName}`)
     return
@@ -1856,6 +1856,7 @@
         points,
         areaType: item.areaType,
         areaName: item.areaName,
+        areaStatus: Number(item.areaStatus),
       })
     }
   })

--
Gitblit v1.7.1