吉安感知网项目-前端
shuishen
2026-02-12 3ec8d3625e6fb7614e2ec4bb02ed99a3cdf4cdb7
applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/ViewDiaLog.vue
@@ -179,7 +179,7 @@
                  <el-col :span="24">
                     <el-form-item label="巡查任务描述" prop="taskDesc">
                        <el-input
                           class="gd-input"
                           class="gd-input-text"
                           type="textarea"
                           :rows="4"
                           v-model="formData.taskDesc"
@@ -450,54 +450,54 @@
})
// 获取航线详情
function getAirDetails() {
   console.log(formData.value)
   const dockHeight = formData.value.height
   queryAirById(formData.value.patrolRouteUrl).then(res => {
      const list = res.data.data.airlineWaypoints
      const { airlineWaypoints, airlineSetting } = res.data.data;
      // 使用空值合并运算符 ?? 或 逻辑或 || 兜底
      const { globalAirlineHeight = 0, airlineHeightMode } = airlineSetting || {};
      const relative = airlineHeightMode === 'relativeToStartPoint'
      const list = airlineWaypoints
      if (!list.length) return mapRef.value?.flyBoundary()
      const result = list.map(item => [Number(item.longitude), Number(item.latitude)]).flat()
      const result = list.map(item => {
         let height = item?.globalHeight || globalAirlineHeight
         if (relative){
            height = height + Number(dockHeight)
         }
         return [Number(item.longitude), Number(item.latitude),height || 0]
      })
      viewer.entities.add({
         polyline: {
            positions: Cesium.Cartesian3.fromDegreesArray(result),
            clampToGround: true,
            positions: Cesium.Cartesian3.fromDegreesArrayHeights(result.flat()),
            width: 4,
            material: arrowLineMaterialProperty,
         },
      })
      // 渲染起点(蓝色)
      const startPoint = list[0]
      const startPoint = result[0]
      viewer.entities.add({
         position: Cesium.Cartesian3.fromDegrees(
            Number(startPoint.longitude),
            Number(startPoint.latitude),
            startPoint.height || 0
         ),
         position: Cesium.Cartesian3.fromDegrees(Number(startPoint[0]), Number(startPoint[1]), startPoint[2]),
         point: {
            pixelSize: 12,
            color: Cesium.Color.BLUE,
            outlineColor: Cesium.Color.WHITE,
            outlineWidth: 2,
            heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
         },
      })
      // 渲染终点(红色)
      const endPoint = list[list.length - 1]
      const endPoint = result[result.length - 1]
      viewer.entities.add({
         position: Cesium.Cartesian3.fromDegrees(
            Number(endPoint.longitude),
            Number(endPoint.latitude),
            endPoint.height || 0
         ),
         position: Cesium.Cartesian3.fromDegrees(Number(endPoint[0]), Number(endPoint[1]), endPoint[2]),
         point: {
            pixelSize: 12,
            color: Cesium.Color.RED,
            outlineColor: Cesium.Color.WHITE,
            outlineWidth: 2,
            heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
         },
      })
      flyVisual({
         positionsData: list.map(i => [Number(i.longitude), Number(i.latitude), i.height || 0]),
         viewer,
         multiple: 6,
      })
   })
}