chenyao
2025-02-25 0d2edb0421b6aaf586a9df317e6076231f00d919
修改航线和提交安装组件
4 files modified
147 ■■■■■ changed files
package-lock.json 27 ●●●●● patch | view | raw | blame | history
package.json 1 ●●●● patch | view | raw | blame | history
src/views/DronePilotDetails.vue 7 ●●●●● patch | view | raw | blame | history
src/views/hooks/droneFly.ts 112 ●●●● patch | view | raw | blame | history
package-lock.json
@@ -27,6 +27,7 @@
        "query-string": "^7.0.1",
        "reconnecting-websocket": "^4.4.0",
        "v-viewer": "^3.0.11",
        "vant": "^4.9.17",
        "vconsole": "^3.15.1",
        "video.js": "^8.5.2",
        "viewerjs": "^1.11.6",
@@ -3198,6 +3199,19 @@
      "version": "0.0.16",
      "resolved": "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz",
      "integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ=="
    },
    "node_modules/@vant/popperjs": {
      "version": "1.3.0",
      "resolved": "https://registry.npmmirror.com/@vant/popperjs/-/popperjs-1.3.0.tgz",
      "integrity": "sha512-hB+czUG+aHtjhaEmCJDuXOep0YTZjdlRR+4MSmIFnkCQIxJaXLQdSsR90XWvAI2yvKUI7TCGqR8pQg2RtvkMHw=="
    },
    "node_modules/@vant/use": {
      "version": "1.6.0",
      "resolved": "https://registry.npmmirror.com/@vant/use/-/use-1.6.0.tgz",
      "integrity": "sha512-PHHxeAASgiOpSmMjceweIrv2AxDZIkWXyaczksMoWvKV2YAYEhoizRuk/xFnKF+emUIi46TsQ+rvlm/t2BBCfA==",
      "peerDependencies": {
        "vue": "^3.0.0"
      }
    },
    "node_modules/@videojs/http-streaming": {
      "version": "3.16.2",
@@ -6956,6 +6970,19 @@
        "vue": "^3.0.0"
      }
    },
    "node_modules/vant": {
      "version": "4.9.17",
      "resolved": "https://registry.npmmirror.com/vant/-/vant-4.9.17.tgz",
      "integrity": "sha512-so/plH9G4au9rUrqy7yLB1slmZqY2Ub3Gq8ckMSQXbUEwTzmViVjEDqh/hNck/XELxwL+gIy2hLXiSgVcf2EBQ==",
      "dependencies": {
        "@vant/popperjs": "^1.3.0",
        "@vant/use": "^1.6.0",
        "@vue/shared": "^3.5.13"
      },
      "peerDependencies": {
        "vue": "^3.0.0"
      }
    },
    "node_modules/vconsole": {
      "version": "3.15.1",
      "resolved": "https://registry.npmmirror.com/vconsole/-/vconsole-3.15.1.tgz",
package.json
@@ -29,6 +29,7 @@
    "query-string": "^7.0.1",
    "reconnecting-websocket": "^4.4.0",
    "v-viewer": "^3.0.11",
    "vant": "^4.9.17",
    "vconsole": "^3.15.1",
    "video.js": "^8.5.2",
    "viewerjs": "^1.11.6",
src/views/DronePilotDetails.vue
@@ -573,6 +573,13 @@
onBeforeUnmount(() => {
  window.removeEventListener('orientationchange', checkOrientation);
  window.removeEventListener('resize', checkOrientation);
  // 销毁地图实例
  if (window.cesiumViewer && !window.cesiumViewer.isDestroyed()) {
    window.cesiumViewer.destroy();
  }
  if (globalViewer && !globalViewer.isDestroyed()) {
    globalViewer.destroy();
  }
  if (player) {
    player.dispose();
  }
src/views/hooks/droneFly.ts
@@ -127,65 +127,63 @@
        }
      }
      const imgRightBlue = new URL('@/assets/images/arrow-right-pink.png', import.meta.url).href
      // 暂时把航线屏蔽
      // 无人机路线轨迹,判断是否存在drone_route_remove
      // if (getEntityById('drone_route_remove')) {
      //   window.cesiumViewer.entities.add({
      //     name: 'drone_route_remove',
      //     id: 'drone_route_remove',
      //     polyline: {
      //       width: 7,
      //       positions: previousPositions,
      //       material: new ImageTrailMaterial({
      //         color: globalCesium.Color.ORANGE,
      //         speed: 10,
      //         image: imgRightBlue,
      //         repeat: { x: 1, y: 0 },
      //       }),
      //       clampToGround: false,
      //     },
      //   })
      // }
      if (getEntityById('drone_route_remove')) {
        window.cesiumViewer.entities.add({
          name: 'drone_route_remove',
          id: 'drone_route_remove',
          polyline: {
            width: 7,
            positions: previousPositions,
            material: new ImageTrailMaterial({
              color: globalCesium.Color.ORANGE,
              speed: 10,
              image: imgRightBlue,
              repeat: { x: 1, y: 0 },
            }),
            clampToGround: false,
          },
        })
      }
      
      // if (data.deviceInfo[data.currentSn].mode_code && [3, 4, 5, 9, 10].includes(deviceInfo.mode_code)) {
      //   if (switchSaving) return (switchSaving = false)
      //     // console.log('5555', data.deviceInfo[data.currentSn].longitude)
      //   const newPositions = globalCesium.Cartesian3.fromDegrees(
      //     data.deviceInfo[data.currentSn].longitude,
      //     data.deviceInfo[data.currentSn].latitude,
      //     Math.floor(viewDroneInfo.elevation),
      //   )
      //   //若刷新,恢复无人机之前的路线轨迹
      //   const dataIndexedDB = await IndexedDBService.getDataById(wId)
      //   if (previousPositions.length == 0 && dataIndexedDB) {
      //     previousPositions = previousPositions.concat(dataIndexedDB?.temporaryflightData)
      //   } else {
      //     previousPositions = previousPositions.concat(newPositions)
      //   }
      //   // 保存无人机当前执行的路线,防止刷新数据丢失
      //   if (!dataIndexedDB) {
      //     await IndexedDBService.addData({
      //       id: wId,
      //       temporaryflightData: previousPositions,
      //     })
      //   } else {
      //     await IndexedDBService.updateData(wId, {temporaryflightData: previousPositions})
      //   }
      //   //  更新线段的位置
      //   const drone_route_remove = getEntityById('drone_route_remove')
      //   if (!drone_route_remove) return
      //   drone_route_remove.polyline.positions = previousPositions
      //   drone_route_remove.polyline._material._repeat._value.x = Math.floor(previousPositions.length / 7)
      // } else if ([0, 14].includes(deviceInfo.mode_code)) {
      //   previousPositions = []
      //   await IndexedDBService.deleteData(wId)
      //   const drone_route_remove = getEntityById('drone_route_remove')
      //   if (!drone_route_remove) return
      //   drone_route_remove.polyline.positions = previousPositions
      //   removeById('drone_route_remove')
      //   viewInfoFrustum?.clear()
      //   viewInfoFrustum = null
      // }
      if (data.deviceInfo[data.currentSn].mode_code && [3, 4, 5, 9, 10].includes(deviceInfo.mode_code)) {
        if (switchSaving) return (switchSaving = false)
        const newPositions = globalCesium.Cartesian3.fromDegrees(
          data.deviceInfo[data.currentSn].longitude,
          data.deviceInfo[data.currentSn].latitude,
          Math.floor(viewDroneInfo.elevation),
        )
        //若刷新,恢复无人机之前的路线轨迹
        const dataIndexedDB = await IndexedDBService.getDataById(wId)
        if (previousPositions.length == 0 && dataIndexedDB) {
          previousPositions = previousPositions.concat(dataIndexedDB?.temporaryflightData)
        } else {
          previousPositions = previousPositions.concat(newPositions)
        }
        // 保存无人机当前执行的路线,防止刷新数据丢失
        if (!dataIndexedDB) {
          await IndexedDBService.addData({
            id: wId,
            temporaryflightData: previousPositions,
          })
        } else {
          await IndexedDBService.updateData(wId, {temporaryflightData: previousPositions})
        }
        //  更新线段的位置
        const drone_route_remove = getEntityById('drone_route_remove')
        if (!drone_route_remove) return
        drone_route_remove.polyline.positions = previousPositions
        drone_route_remove.polyline._material._repeat._value.x = Math.floor(previousPositions.length / 7)
      } else if ([0, 14].includes(deviceInfo.mode_code)) {
        previousPositions = []
        await IndexedDBService.deleteData(wId)
        const drone_route_remove = getEntityById('drone_route_remove')
        if (!drone_route_remove) return
        drone_route_remove.polyline.positions = previousPositions
        removeById('drone_route_remove')
        viewInfoFrustum?.clear()
        viewInfoFrustum = null
      }
    }
    if (data.currentType === EDeviceTypeName.Dock && data.dockInfo[data.currentSn]) {
      if (!deviceInfo?.basic_osd?.longitude || !deviceInfo?.basic_osd?.latitude) return