| | |
| | | </ul> |
| | | <div class="auto-low-light"> |
| | | <div class="title">自动低光</div> |
| | | <a-switch /> |
| | | <a-tooltip |
| | | placement="right" |
| | | :title="tipDescriptionEnums.rowLightModeTip"> |
| | | <a-switch |
| | | v-model:checked="setting.orientedPhotoMode" |
| | | checkedValue="lowLightSmartShooting" |
| | | unCheckedValue="normalPhoto" /> |
| | | </a-tooltip> |
| | | </div> |
| | | </div> |
| | | <!-- 爬升 --> |
| | | <div class="climb-mode common"> |
| | | <a-tooltip |
| | | placement="right" |
| | | :title="tipDescriptionEnums.climbModeTip"> |
| | | <div class="mode-box"> |
| | | <a-radio-group |
| | | v-model:value="setting.flyToWaylineMode" |
| | | button-style="solid"> |
| | | <a-radio-button value="safely">垂直爬升</a-radio-button> |
| | | <a-radio-button value="pointToPoint">倾斜爬升</a-radio-button> |
| | | </a-radio-group> |
| | | </div> |
| | | <div class="parameter-tool"> |
| | | <div class="example-img"> |
| | | <img :src="climbImage" alt="climb-img" /> |
| | | </div> |
| | | <ul class="parameter-btn"> |
| | | <li>+100</li> |
| | | <li>+10</li> |
| | | <li> |
| | | <span>{{ setting.takeOffSecurityHeight }}</span |
| | | >m |
| | | </li> |
| | | <li>-100</li> |
| | | <li>-10</li> |
| | | </ul> |
| | | </div> |
| | | </a-tooltip> |
| | | </div> |
| | | <!-- 高度模式 --> |
| | | <div class="height-mode common"> |
| | | <div class="title">航线高度模式</div> |
| | | <div class="mode-box"> |
| | | <a-radio-group button-style="solid"> |
| | | <a-radio-button value="a">绝对高度</a-radio-button> |
| | | <a-radio-button value="b">相对起飞高度</a-radio-button> |
| | | <a-radio-button value="c">相对地面高度</a-radio-button> |
| | | <a-radio-group |
| | | v-model:value="setting.executeHeightMode" |
| | | button-style="solid"> |
| | | <a-radio-button value="WGS84">绝对高度</a-radio-button> |
| | | <a-radio-button value="relativeToStartPoint" |
| | | >相对起飞高度</a-radio-button |
| | | > |
| | | <a-radio-button value="realTimeFollowSurface" |
| | | >相对地面高度</a-radio-button |
| | | > |
| | | </a-radio-group> |
| | | </div> |
| | | <div class="parameter-tool"> |
| | | <div class="example-img"> |
| | | <img :src="imgs[0]" alt="height-img" /> |
| | | </div> |
| | | <div class="parameter-btn"> |
| | | <li>+100</li> |
| | | <li>+10</li> |
| | | <li> |
| | | <span>{{ setting.executeHeight }}</span> m |
| | | </li> |
| | | <li>-100</li> |
| | | <li>-10</li> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- 航线速度 --> |
| | | <div class="speed-setting common"> |
| | | <div class="title">全局航线速度</div> |
| | | <div class="speed-box"> |
| | | <div class="subtract">-</div> |
| | | <div class="text"> |
| | | <a-input-number :min="1" :max="15" class="value" v-model:value="setting.autoFlightSpeed">30</a-input-number> |
| | | m / s |
| | | </div> |
| | | <div class="add">+</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { min } from 'lodash' |
| | | import { tipDescriptionEnums } from './enums' |
| | | |
| | | const getResource = (name: string) => { |
| | | return new URL(`/src/assets/icons/${name}`, import.meta.url).href |
| | | } |
| | | const getSvgResource = (name: string) => { |
| | | return new URL(`/src/assets/svg/${name}`, import.meta.url).href |
| | | } |
| | | |
| | | const waylineSetting = reactive({}) |
| | | const climbImage = getSvgResource('climb.svg') |
| | | const imgs = [getSvgResource('xddm.svg')] |
| | | |
| | | const setting = reactive({ |
| | | flyToWaylineMode: 'safely', |
| | | takeOffSecurityHeight: 80, |
| | | executeHeightMode: 'WGS84', |
| | | executeHeight: 80, |
| | | // normal: normalPhoto row-light: lowLightSmartShooting |
| | | orientedPhotoMode: 'normalPhoto', |
| | | autoFlightSpeed: 10 |
| | | }) |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .setting { |
| | | margin-left: auto; |
| | | .setting-content { |
| | | width: 390px; |
| | | height: 50vh; |
| | | max-height: 80vh; |
| | | overflow-y: auto; |
| | | color: #fff; |
| | | .common { |
| | | background-color: #232323; |
| | |
| | | } |
| | | } |
| | | } |
| | | .height-mode { |
| | | .height-mode, |
| | | .climb-mode { |
| | | .mode-box { |
| | | margin-top: 10px; |
| | | :deep() { |
| | |
| | | } |
| | | } |
| | | } |
| | | .parameter-tool { |
| | | margin-top: 15px; |
| | | display: flex; |
| | | .example-img { |
| | | flex: 3; |
| | | flex-shrink: 0; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | img { |
| | | width: 100%; |
| | | } |
| | | } |
| | | .parameter-btn { |
| | | flex: 1; |
| | | padding: 0; |
| | | margin: 0; |
| | | flex-shrink: 0; |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | li { |
| | | width: 50px; |
| | | border-radius: 3px; |
| | | padding: 2px 0; |
| | | list-style-type: none; |
| | | cursor: pointer; |
| | | background-color: #3c3c3c; |
| | | margin-bottom: 5px; |
| | | text-align: center; |
| | | font-weight: bold; |
| | | transition: all 0.3s ease-in-out; |
| | | &:nth-child(3) { |
| | | width: 100%; |
| | | background-color: transparent; |
| | | cursor: auto; |
| | | span { |
| | | color: #409eff; |
| | | font-size: 23px; |
| | | font-weight: bolder; |
| | | margin-right: 5px; |
| | | } |
| | | } |
| | | &:not(:nth-child(3)) { |
| | | &:hover { |
| | | background-color: #5d5f61; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .speed-setting { |
| | | .speed-box { |
| | | margin-top: 10px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | .text { |
| | | font-weight: bolder; |
| | | .value { |
| | | color: #409eff; |
| | | width: 60px; |
| | | font-size: 30px; |
| | | background-color: transparent; |
| | | border: 0; |
| | | :deep() { |
| | | .ant-input-number-handler-wrap { |
| | | display: none; |
| | | } |
| | | .ant-input-number-input-wrap { |
| | | input { |
| | | font-weight: bolder; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .subtract, |
| | | .add { |
| | | width: 32px; |
| | | height: 32px; |
| | | text-align: center; |
| | | line-height: 32px; |
| | | font-size: 20px; |
| | | font-weight: bolder; |
| | | background-color: #3c3c3c; |
| | | border-radius: 3px; |
| | | cursor: pointer; |
| | | &:hover { |
| | | background-color: #5d5f61; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |