From 039679bf092a8a6cb1f8c921c8a2cfa5306dcf73 Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Thu, 26 Feb 2026 14:25:02 +0800
Subject: [PATCH] Merge branch 'master' of http://139.196.74.78:10010/r/jagzwxm/ja_web
---
applications/task-work-order/src/views/orderView/orderManage/orderManage/FormDiaLog.vue | 42 +++++++++++++++++++++++++++++++++++++++---
1 files changed, 39 insertions(+), 3 deletions(-)
diff --git a/applications/task-work-order/src/views/orderView/orderManage/orderManage/FormDiaLog.vue b/applications/task-work-order/src/views/orderView/orderManage/orderManage/FormDiaLog.vue
index 7ab4e00..b5c8899 100644
--- a/applications/task-work-order/src/views/orderView/orderManage/orderManage/FormDiaLog.vue
+++ b/applications/task-work-order/src/views/orderView/orderManage/orderManage/FormDiaLog.vue
@@ -317,6 +317,7 @@
const suddenlyEdit = ref(false)
const processList = ref([])
let viewPlane
+let allDeviceList = []
const hasPatrolTaskList = computed(() => ['30', '40', '50', '60'].includes(String(formData.value.workOrderStatus)))
const gdStatusObj = {
@@ -472,7 +473,7 @@
// 新增模式绘制
function addPolygon() {
- drawPolygonExample = new DrawPolygon(viewer)
+ drawPolygonExample = new DrawPolygon({ deviceList: allDeviceList })
drawPolygonExample.initHandler(viewer)
drawPolygonExample.subscribe('getPolygonPositions', drawFinished)
}
@@ -494,7 +495,7 @@
if (!formData.value?.geom) return
pointList.value = geomAnalysis(formData.value.geom)
drawPolygonExample?.destroy()
- drawPolygonExample = new DrawPolygon(viewer)
+ drawPolygonExample = new DrawPolygon({ deviceList: allDeviceList })
let noClosedList = _.cloneDeep(pointList.value)
noClosedList.pop()
drawPolygonExample.initPolygon(
@@ -550,6 +551,19 @@
})
}
+// 生成圆形坐标点
+function buildCirclePositions(center, radius, segments = 120) {
+ const cartographic = Cesium.Cartographic.fromCartesian(center)
+ const positions = []
+ for (let i = 0; i < segments; i++) {
+ const angle = (i / segments) * 2 * Math.PI
+ const lat = cartographic.latitude + (radius / 6378137) * Math.cos(angle)
+ const lon = cartographic.longitude + (radius / (6378137 * Math.cos(cartographic.latitude))) * Math.sin(angle)
+ positions.push(Cesium.Cartesian3.fromRadians(lon, lat))
+ }
+ return positions
+}
+
// 渲染
function renderingAllDevice(list) {
list.forEach(item => {
@@ -576,6 +590,27 @@
pixelOffset: new Cesium.Cartesian2(0, -20),
},
})
+ // 覆盖范围 - 5km圆形区域
+ viewer.entities.add({
+ position: position,
+ ellipse: {
+ semiMajorAxis: 5000,
+ semiMinorAxis: 5000,
+ material: Cesium.Color.fromBytes(45, 140, 240, 80),
+ outline: false,
+ heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
+ },
+ })
+ // 覆盖范围描边线 - 贴地
+ const circlePositions = buildCirclePositions(position, 5000)
+ viewer.entities.add({
+ polyline: {
+ positions: [...circlePositions, circlePositions[0]],
+ clampToGround: true,
+ width: 2,
+ material: Cesium.Color.fromBytes(45, 140, 240, 255),
+ },
+ })
})
}
@@ -593,7 +628,8 @@
initMap()
const allDeviceRes = await gdManageDeviceListApi()
formData.value = dialogMode.value === 'add' ? initForm() : row
- renderingAllDevice(allDeviceRes?.data?.data || [])
+ allDeviceList = allDeviceRes?.data?.data || []
+ renderingAllDevice(allDeviceList)
if (dialogMode.value === 'add') {
addPolygon()
} else {
--
Gitblit v1.9.3