GuLiMmo
2024-03-18 3e13dd0242140c7189b65e4171efaa9190d1763d
src/pages/page-web/projects/components/route-edit/components/setting.vue
@@ -12,13 +12,18 @@
          <div class="photo-setting common">
            <div class="title">拍照设置</div>
            <ul class="select-box">
              <li class="select-item" v-for="item in photoSetting" :key="item.value" :style="{
      '--settingColor': xmlTemplate.Folder.payloadParam?.imageFormat['#text']
        .split(',')
        .includes(item.value)
        ? '#409eff'
        : '#3c3c3c',
    }" @click="selectPhotoSetting(item.value)">
              <li
                class="select-item"
                v-for="item in photoSetting"
                :key="item.value"
                :style="{
                  '--settingColor': xmlTemplate.Folder.payloadParam?.imageFormat['#text']
                    .split(',')
                    .includes(item.value)
                    ? '#409eff'
                    : '#3c3c3c',
                }"
                @click="selectPhotoSetting(item.value)">
                {{ item.title }}照片
              </li>
            </ul>
@@ -51,8 +56,11 @@
                  <li @click="numberControls(true, 100, 'takeOffSecurityHeight')">+100</li>
                  <li @click="numberControls(true, 10, 'takeOffSecurityHeight')">+10</li>
                  <li class="parameter-input">
                    <a-input-number :min="2" :max="1500"
                      v-model:value="xmlTemplate.missionConfig.takeOffSecurityHeight['#text']"></a-input-number>m
                    <a-input-number
                      :min="2"
                      :max="1500"
                      v-model:value="xmlTemplate.missionConfig.takeOffSecurityHeight['#text']"></a-input-number
                    >m
                  </li>
                  <li @click="numberControls(false, 100, 'takeOffSecurityHeight')">-100</li>
                  <li @click="numberControls(false, 10, 'takeOffSecurityHeight')">-10</li>
@@ -62,15 +70,17 @@
          </div>
          <!-- 高度模式 -->
          <div class="height-mode common">
            <a-tooltip placement="right"
            <a-tooltip
              placement="right"
              :title="tipDescriptionEnums[xmlTemplate.Folder.waylineCoordinateSysParam.heightMode['#text']]">
              <div class="title">航线高度模式</div>
              <div class="mode-box">
                <a-radio-group v-model:value="xmlTemplate.Folder.waylineCoordinateSysParam.heightMode['#text']"
                <a-radio-group
                  v-model:value="xmlTemplate.Folder.waylineCoordinateSysParam.heightMode['#text']"
                  button-style="solid">
                  <a-radio-button v-for="item in heightModeSetting" :key="item.value" :value="item.value">{{
      item.title
    }}</a-radio-button>
                    item.title
                  }}</a-radio-button>
                </a-radio-group>
              </div>
              <div class="parameter-tool">
@@ -81,8 +91,11 @@
                  <li @click="numberControls(true, 100, 'globalHeight')">+100</li>
                  <li @click="numberControls(true, 10, 'globalHeight')">+10</li>
                  <li class="parameter-input">
                    <a-input-number :min="0" :max="10000"
                      v-model:value="xmlTemplate.Folder.globalHeight['#text']"></a-input-number>m
                    <a-input-number
                      :min="0"
                      :max="10000"
                      v-model:value="xmlTemplate.Folder.globalHeight['#text']"></a-input-number
                    >m
                  </li>
                  <li @click="numberControls(false, 100, 'globalHeight')">-100</li>
                  <li @click="numberControls(false, 10, 'globalHeight')">-10</li>
@@ -96,7 +109,10 @@
            <div class="speed-box">
              <div class="subtract" @click="numberControls(false, 1, 'autoFlightSpeed')">-</div>
              <div class="text">
                <a-input-number v-model:value="xmlTemplate.Folder.autoFlightSpeed['#text']" :min="1" :max="15"
                <a-input-number
                  v-model:value="xmlTemplate.Folder.autoFlightSpeed['#text']"
                  :min="1"
                  :max="15"
                  class="value">
                </a-input-number>
                m / s
@@ -115,7 +131,7 @@
import { reactive, defineProps } from 'vue'
import { tipDescriptionEnums } from './enums'
import useKmzTsa, { kmlStr, template as xmlTemplate } from '/@/utils/cesium/use-kmz-tsa'
import useMapDraw from '/@/utils/cesium/use-map-draw'
import useMapDraw, { kmlEntities as globalEntities } from '/@/utils/cesium/use-map-draw'
import { getKmlParams } from '/@/utils/cesium/kmz'
import { cesiumOperation } from '/@/hooks/use-cesium-tsa'
import { message } from 'ant-design-vue'
@@ -125,6 +141,7 @@
const mapDraw = useMapDraw('', '', '', global)
const { removeAllDataSource, removeAllPoint } = cesiumOperation()
const kmzUtils = useKmzTsa()
interface setting {
  imageFormat: string[]
@@ -168,7 +185,7 @@
// 计算
const numberControls = (isAdd: boolean, computeVal: number, key: string) => {
  let obj = { '#text': 0 }
  let obj = { '#text': '0' }
  if (key === 'takeOffSecurityHeight') {
    obj = xmlTemplate.value.missionConfig.takeOffSecurityHeight
  }
@@ -184,7 +201,17 @@
  } else {
    value -= computeVal
  }
  obj['#text'] = value
  obj['#text'] = value.toString()
  if (key === 'globalHeight') {
    const placemarkArr = xmlTemplate.value.Folder.Placemark
    placemarkArr.forEach((placemark: { useGlobalHeight: { [x: string]: any }; height: { [x: string]: string } }) => {
      if (Reflect.has(placemark, 'useGlobalHeight')) {
        placemark.height['#text'] = value.toString()
      }
    })
    const xmlString = kmzUtils.generateXML(xmlTemplate.value)
    mapDraw.drawWayline(globalEntities.value, xmlString)
  }
}
// 拍照选择
@@ -433,7 +460,6 @@
  :deep() {
    .ant-popover-content {
      .ant-popover-arrow,
      .ant-popover-inner {
        background-color: #101010;