Merge branch 'main' of http://123.132.248.154:10000/gitY/DiKongGanZhiPingTai
commit
d8c9935e13
@ -0,0 +1,7 @@
|
||||
{
|
||||
"i18n-ally.localesPaths": [
|
||||
"src/locales",
|
||||
"src/locales/lang",
|
||||
"public/resource/tinymce/langs"
|
||||
]
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 644 B |
@ -0,0 +1,233 @@
|
||||
<template>
|
||||
<div class="container">
|
||||
<div class="title">
|
||||
新建计划
|
||||
</div>
|
||||
<a-form
|
||||
ref="formRef"
|
||||
:layout="'vertical'"
|
||||
:model="submitForm"
|
||||
:rules="rules"
|
||||
:label-col="labelCol"
|
||||
:wrapper-col="wrapperCol"
|
||||
:size="'middle'"
|
||||
>
|
||||
<a-form-item ref="name" label="计划名称" name="name">
|
||||
<a-input v-model:value="submitForm.name" />
|
||||
</a-form-item>
|
||||
|
||||
<a-form-item ref="name" label="任务类型" name="name">
|
||||
<a-radio-group v-model:value="submitForm.type" button-style="solid">
|
||||
<a-radio-button :value="1">普通任务</a-radio-button>
|
||||
<a-radio-button :value="2">蛙跳任务</a-radio-button>
|
||||
</a-radio-group>
|
||||
</a-form-item>
|
||||
|
||||
<a-form-item ref="name" label="选择航线" name="name">
|
||||
<a-button type="primary" style="width:100%;" @click="selectAriLine">
|
||||
<PlusOutlined />
|
||||
选择航线
|
||||
</a-button>
|
||||
|
||||
</a-form-item>
|
||||
|
||||
<a-form-item ref="name" label="选择设备" name="name">
|
||||
<a-button type="primary" style="width:100%;" @click="selectAircraft">
|
||||
<PlusOutlined />
|
||||
选择设备
|
||||
</a-button>
|
||||
</a-form-item>
|
||||
|
||||
<a-form-item ref="accuracy" label="任务精度" name="accuracy">
|
||||
<a-radio-group v-model:value="submitForm.accuracy" button-style="solid">
|
||||
<a-radio-button :value="1">高精度RTK</a-radio-button>
|
||||
<a-radio-button :value="2">GNSS</a-radio-button>
|
||||
</a-radio-group>
|
||||
</a-form-item>
|
||||
|
||||
<a-form-item ref="accuracy" label="任务策略" name="accuracy">
|
||||
<a-radio-group v-model:value="submitForm.strategy" button-style="solid">
|
||||
<a-radio-button :value="1">立即</a-radio-button>
|
||||
<a-radio-button :value="2">单次定时</a-radio-button>
|
||||
<a-radio-button :value="3">重复定时</a-radio-button>
|
||||
<a-radio-button :value="4">继续执行</a-radio-button>
|
||||
</a-radio-group>
|
||||
</a-form-item>
|
||||
|
||||
<div style="display:flex;margin-bottom:12px;color:#fff;font-size:12px;">
|
||||
<div style="flex:1;">智能最佳返航路线</div>
|
||||
<div>
|
||||
<a-switch v-model:checked="submitForm.breakFly" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<a-form-item ref="outOfContact" label="航线飞行中失联" name="outOfContact">
|
||||
<a-radio-group v-model:value="submitForm.outOfContact" button-style="solid">
|
||||
<a-radio-button :value="1">返航</a-radio-button>
|
||||
<a-radio-button :value="2">继续执行</a-radio-button>
|
||||
</a-radio-group>
|
||||
</a-form-item>
|
||||
|
||||
<a-form-item ref="outOfContact" label="完成动作" name="outOfContact">
|
||||
<a-radio-group v-model:value="submitForm.outOfContact" button-style="solid">
|
||||
<a-radio-button :value="1">返航</a-radio-button>
|
||||
<a-radio-button :value="2">继续执行</a-radio-button>
|
||||
</a-radio-group>
|
||||
</a-form-item>
|
||||
|
||||
<div style="display:flex;margin-bottom:12px;color:#fff;font-size:12px;">
|
||||
<div style="flex:1;">自动断点续飞</div>
|
||||
<div>
|
||||
<a-switch v-model:checked="submitForm.breakFly" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<a-form-item :wrapper-col="{ span: 24, offset: 0 }">
|
||||
<a-button @click="resetForm" style="width:44%;">取消</a-button>
|
||||
<a-button style="margin-left: 10px;width:44%;" type="primary" @click="onSubmit">确定</a-button>
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
import { ref, defineEmits } from "vue";
|
||||
import { PlusOutlined,LeftOutlined } from '@ant-design/icons-vue';
|
||||
const formRef = ref();
|
||||
const labelCol = { span: 24 };
|
||||
const wrapperCol = { span: 24 };
|
||||
|
||||
const submitForm = ref({
|
||||
name:"工作计划1",
|
||||
type:1,
|
||||
airline:1,
|
||||
device:1,
|
||||
accuracy:1,
|
||||
strategy:1,
|
||||
outOfContact:1,
|
||||
completeAction:1,
|
||||
breakFly:1,
|
||||
})
|
||||
|
||||
const emit = defineEmits(['selectAriLine','cancleCraete',"selectAircraft"]);
|
||||
|
||||
const selectAriLine = ()=> {
|
||||
emit("selectAriLine",true)
|
||||
}
|
||||
|
||||
const selectAircraft = ()=>{
|
||||
emit("selectAircraft",true)
|
||||
}
|
||||
|
||||
const rules = {
|
||||
|
||||
};
|
||||
|
||||
const onSubmit = () => {
|
||||
formRef.value
|
||||
.validate()
|
||||
.then(() => {
|
||||
|
||||
})
|
||||
.catch(error => {
|
||||
console.log('error', error);
|
||||
});
|
||||
};
|
||||
const resetForm = () => {
|
||||
emit("cancleCraete");
|
||||
formRef.value.resetFields();
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
.container{
|
||||
padding:10px 20px;
|
||||
}
|
||||
.title{
|
||||
padding:15px 0px;
|
||||
color:#fff;
|
||||
}
|
||||
.ant-form-item{
|
||||
margin-bottom:12px;
|
||||
}
|
||||
|
||||
::v-deep .ant-form-item-label > label{
|
||||
color:#ffffff!important;
|
||||
font-size:12px;
|
||||
}
|
||||
|
||||
|
||||
::v-deep .ant-select-selector{
|
||||
border:none!important;
|
||||
color:#fff!important;
|
||||
background:#3F4150!important ;
|
||||
border-radius: 3px!important;
|
||||
}
|
||||
|
||||
|
||||
::v-deep .ant-select-selection-placeholder {
|
||||
color:rgba(255, 255, 255, 0.533)!important;
|
||||
}
|
||||
::v-deep .ant-select-arrow {
|
||||
color:rgba(255, 255, 255, 0.533)!important;
|
||||
}
|
||||
::v-deep .ant-select-selection-search-input::placeholder{
|
||||
color:rgba(255, 255, 255, 0.933)!important;
|
||||
}
|
||||
|
||||
|
||||
::v-deep .ant-tree {
|
||||
background:none!important;
|
||||
color:#fff!important;
|
||||
}
|
||||
|
||||
::v-deep .ant-tree-treenode-selected{
|
||||
background:#3a57e877!important;
|
||||
}
|
||||
|
||||
::v-deep .ant-tree-treenode-selected::before{
|
||||
background:none!important;
|
||||
}
|
||||
|
||||
::v-deep .ant-tree-treenode-selected::after{
|
||||
content:"";
|
||||
height:28px;
|
||||
width:4px;
|
||||
background:#3A57E8;
|
||||
position:absolute;
|
||||
top:0px;
|
||||
left:0px;
|
||||
}
|
||||
|
||||
::v-deep .ant-input{
|
||||
background:#3B4154!important;
|
||||
border:none!important;
|
||||
border-radius: 3px !important;
|
||||
color:#fff!important;
|
||||
}
|
||||
|
||||
::v-deep .ant-input::placeholder{
|
||||
color:rgba(255, 255, 255, 0.533)!important;
|
||||
}
|
||||
|
||||
|
||||
::v-deep .ant-btn-default{
|
||||
background:none!important;
|
||||
border:none!important;
|
||||
outline:none!important;
|
||||
color:#fff!important;
|
||||
height:30px !important;
|
||||
background:#29305477!important;
|
||||
}
|
||||
|
||||
::v-deep .ant-btn-primary{
|
||||
background:#3A57E8!important;
|
||||
border-radius:3px!important;
|
||||
}
|
||||
|
||||
::v-deep .ant-radio-button-wrapper-checked{
|
||||
background:#3A57E8!important;
|
||||
}
|
||||
|
||||
::v-deep .ant-radio-button-wrapper{
|
||||
border-radius: 2px !important;
|
||||
}
|
||||
</style>
|
@ -0,0 +1,68 @@
|
||||
<template>
|
||||
<div>
|
||||
<div style="width:100%;height: calc( 100vh - 80px);" >
|
||||
<Map></Map>
|
||||
</div>
|
||||
|
||||
<!-- 工作计划列表 -->
|
||||
<div v-if="planListShow" style="width:360px;background:#0d0e15c1 ;position:absolute;top:0px;left:0px;z-index:1;height: calc( 100vh - 104px);overflow-y:hidden;">
|
||||
<planList @createWorkPlan="createWorkPlan" ></planList>
|
||||
</div>
|
||||
|
||||
<!-- 创建计划弹窗 -->
|
||||
<div v-if="workPlanFormShow" style="width:380px;background:#0d0e15ce ;position:absolute;top:30px;left:30px;z-index:1;height: calc( 100vh - 164px);overflow-y:hidden;">
|
||||
<WorkPlanForm @cancleCraete="cancleCraete" @selectAircraft="selectAircraft" @selectAriLine="selectAriLine"></WorkPlanForm>
|
||||
</div>
|
||||
|
||||
<!-- 航线库 -->
|
||||
<div v-if="ariLineShow" style="width:566px;background:#0d0e15c1 ;position:absolute;top:30px;left:440px;z-index:1;height: calc( 100vh - 164px);overflow-y:hidden;">
|
||||
<airLineList @checkAriLine="checkAriLine" ></airLineList>
|
||||
</div>
|
||||
|
||||
<!-- 飞行器 -->
|
||||
<div v-if="aircraftShow" style="width:340px;background:#0d0e15c1 ;position:absolute;top:30px;left:440px;z-index:1;height: calc( 100vh - 164px);overflow-y:hidden;">
|
||||
<aircraft @checkAriLine="checkAriLine" ></aircraft>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
import {ref} from 'vue';
|
||||
import planList from './components/planList.vue';
|
||||
import airLineList from './components/airLineList.vue';
|
||||
import aircraft from './components/aircraft.vue';
|
||||
import WorkPlanForm from './components/workPlanForm.vue';
|
||||
import Map from './components/map.vue'
|
||||
|
||||
const planListShow = ref(true);
|
||||
const workPlanFormShow = ref(false);
|
||||
const ariLineShow = ref(false);
|
||||
const aircraftShow = ref(false);
|
||||
const selectAriLine = ()=> {
|
||||
ariLineShow.value = true;
|
||||
aircraftShow.value = false;
|
||||
}
|
||||
|
||||
const selectAircraft = ()=>{
|
||||
aircraftShow.value = true;
|
||||
ariLineShow.value = false;
|
||||
}
|
||||
|
||||
const cancleCraete = ()=>{
|
||||
workPlanFormShow.value = false;
|
||||
ariLineShow.value = false;
|
||||
aircraftShow.value = false;
|
||||
planListShow.value = true;
|
||||
}
|
||||
const checkAriLine = (item)=>{
|
||||
if(item){
|
||||
ariLineShow.value = false;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
const createWorkPlan = ()=> {
|
||||
planListShow.value = false;
|
||||
workPlanFormShow.value = true;
|
||||
}
|
||||
</script>
|
Loading…
Reference in New Issue