jihongshun
7 天以前 cd1ecbca4881ba9d19858562f724aac3d152b901
src/views/system/shootPoint/components/shootPointDialog.vue
@@ -10,7 +10,7 @@
          <el-col :span="4">
              <el-card class="noScroll">
                <div class="chooseModel">
                  <el-button type="primary" @click='chooseModel'>选择模型</el-button>
                  <el-button type="primary" @click='chooseModel'>模型</el-button>
                  <div class="modelType">
                    模型名称:{{ modelName }}
                  </div>
@@ -45,7 +45,7 @@
                        <!-- 航点列表 -->
                        <div class="waypoints">
                          <div 
                            v-for="(wp, index) in waypoints"
                            v-for="(wp, index) in treeData"
                            :key="index" 
                            class="waypoint-item"
                            :class="{ active: selectedIndex === index }"
@@ -56,11 +56,11 @@
                                class="el-icon-success" 
                              ></i>
                              <div class="waypoint-contnet">
                                <span class="waypoint-index">{{ wp.label }}</span>
                                <span v-for="(action, aIndex) in wp.actions"
                                <span class="waypoint-index">{{ wp.label + wp.children[0].label }}</span>
                                <span v-for="(action, aIndex) in wp.children[0].actions"
                                      :key="action.id" 
                                      class="action-icon"
                                      @click="clickItem(action)">
                                      @click.stop="clickItem(action)">
                  
                                  <img src="@/assets/images/xuanting.svg" alt="svg图片" v-if="action.type==='悬停'" />
                                  <img src="@/assets/images/photo.svg" alt="svg图片" v-if="action.type==='拍照'" />
@@ -93,7 +93,6 @@
  </div>
</template>
<script>
import { compileToFunctions } from "vue-template-compiler";
import CesiumMap from "../../../../utils/components/cesium-map.vue";
import InitMap from "../../../../utils/components/init-map.vue";
import ChooseModelDialog from './chooseModelDialog.vue';
@@ -165,24 +164,27 @@
    }
  },  
  methods:{
    toggleSelect(wq,index) {
      this.chooseItem = wq
    toggleSelect(data,index) {
      this.chooseItem = data
      console.log(this.treeData)
      console.log(wq)
      console.log(data)
      // 如果点击的是当前行,则取消选中
      if (this.selectedIndex === index) {
        this.selectedIndex = null
      } else {
        this.selectedIndex = index
      }
      const result = this.treeData.filter(item =>
          item.children && item.children.some(child => child.label === wq.label)
      );
      const dataObj = result[0]
      const from = [dataObj.children[0]?.longitude,dataObj.children[0]?.latitude, dataObj.children[0]?.height];
      const to = [dataObj.longitude,dataObj.latitude, dataObj.height];
      // const result = this.treeData.filter(item =>
      //     item.children && item.children.some(child => child.label === data.label)
      // );
      // const dataObj = result[0]
      // const from = [dataObj.children[0]?.longitude,dataObj.children[0]?.latitude, dataObj.children[0]?.height];
      // const to = [dataObj.longitude,dataObj.latitude, dataObj.height];
       const from = [data.children[0].longitude,data.children[0].latitude, data.children[0].height];
        const to = [data.longitude,data.latitude, data.height];
        // this.flyToAndLookAt(from, to);
      this.flyToAndLookAt(from, to);
      this.$refs.initMap.DealVisualCone(dataObj)
      this.$refs.initMap.DealVisualCone(data)
    },
   // 计算 heading(偏航角)
    computeHeading(fromCartesian, toCartesian) {
@@ -252,6 +254,8 @@
    },
    dealTreeData(arrList){
      console.log(arrList)
      console.log(this.treeData)
      console.log(this.lastTableArr)
      this.treeData = arrList
      const childrenArr = arrList
        .filter(item => Array.isArray(item.children))
@@ -411,7 +415,10 @@
    },
    //合并逻辑  将附近n米范围内的点合并 并且处理成数据
    mergePoint(arr,mergeNumber,viewer){
      this.treeData = arr
      console.log(arr)
      console.log(this.treeData)
      // this.treeData = arr
      this.treeData = this.lastTableArr
      const result = this.replaceCloseChildrenWithHighestPoint(this.treeData,mergeNumber);
      // const updated = this.insertRaisedPoints(result, 0,0, 236, 130);
      const updated = this.insertRaisedPoints(result, globalon, globalat, towerHeight);
@@ -473,7 +480,7 @@
          const groundA = result[i];
          const raisedA = {
            id: this.generateId(),
            label: groundA.label+ "-加高",
            label: groundA.label+ "-加高111",
            longitude: groundA.longitude,
            latitude: groundA.latitude,
            height: groundA.height,
@@ -481,8 +488,9 @@
              {
                ...pointA,
                id: this.generateId(),
                label: pointA.label + "-加高",
                height: pointA.height + 50
                label: pointA.label + "-加高2222",
                height: pointA.height + 50,
                actions:[]
              }
            ]
          };
@@ -500,8 +508,9 @@
              {
                ...pointB,
                id: this.generateId(),
                label: pointB.label + "-加高",
                height: pointB.height + 50
                label: pointB.label + "-加高3333",
                height: pointB.height + 50,
                actions:[]
              }
            ]
          };
@@ -654,47 +663,50 @@
          type: 'warning'
        })
      }
      console.log(this.$refs.initMap.preVideoScopePrimitiveArrTie)
      console.log(this.treeData)
      console.log(this.waypoints)
      // this.dialogVisible = false
      // const dealArr = this.submitDealData()
      const transformed = this.treeData.map((ground, index) => {
        const pointNumber = index + 1;
        const child = ground.children?.[0] || {};
    //   const transformed = this.treeData.map((ground, index) => {
    //     const pointNumber = index + 1;
    //     const child = ground.children?.[0] || {};
        return {
          altitude: child.height,
          ardGroundPoint: [
            {
              height: ground.height,
              latitude: ground.latitude,
              longitude: ground.longitude,
              pointNumber: 1,
              targetName: ground.label
            }
          ],
          latitude: child.latitude,
          longitude: child.longitude,
          pointNumber: pointNumber,
          targetName: child.label
        };
    })
    console.log(transformed)
    let parmas = {
      templateName:this.form.templateName,
      modelId:this.chooseModelId,
      ardListWayPointsLS:transformed
    }
    addPoint(parmas).then(res=>{
      console.log(res)
      if(res.code == 200) {
        this.$message({
          message: '新增模板成功',
          type: 'success'
        })
        this.$emit('on-submit')
        this.$emit('close')
      }
    })
    console.log(parmas)
    //     return {
    //       altitude: child.height,
    //       ardGroundPoint: [
    //         {
    //           height: ground.height,
    //           latitude: ground.latitude,
    //           longitude: ground.longitude,
    //           pointNumber: 1,
    //           targetName: ground.label
    //         }
    //       ],
    //       latitude: child.latitude,
    //       longitude: child.longitude,
    //       pointNumber: pointNumber,
    //       targetName: child.label
    //     };
    // })
    // console.log(transformed)
    // let parmas = {
    //   templateName:this.form.templateName,
    //   modelId:this.chooseModelId,
    //   ardListWayPointsLS:transformed
    // }
    // addPoint(parmas).then(res=>{
    //   console.log(res)
    //   if(res.code == 200) {
    //     this.$message({
    //       message: '新增模板成功',
    //       type: 'success'
    //     })
    //     this.$emit('on-submit')
    //     this.$emit('close')
    //   }
    // })
    // console.log(parmas)
    },
    // 计算点A绕点B逆时针旋转指定角度后的新位置
    //  空中点或者地面点笛卡尔坐标 塔的笛卡尔坐标    塔的朝向值
@@ -721,6 +733,7 @@
      console.log(byLabel)
      console.log(this.lastTableArr)
      console.log( this.waypoints)
      this.treeData = this.lastTableArr
    },
    addOrUpdate(list, newItem, key = 'label', vm = null) {
      let index = list.findIndex(item => item[key] === newItem[key]);
@@ -742,6 +755,10 @@
}
</script>
<style scoped>
::v-deep .el-dialog__header {
  padding: 10px; /* 修改内边距 */
  font-size: 18px; /* 修改字体大小 */
}
.noScroll{
    height: calc(100vh - 175px);
    overflow: auto;