forked from drone/command-center-dashboard

罗广辉
2025-04-09 dd04b26581614110fa318bab79a85d81de9245e8
feat: 完成智引即飞
2 files modified
41 ■■■■■ changed files
src/views/Home/AINowFly.vue 40 ●●●●● patch | view | raw | blame | history
src/views/SignMachineNest/MachineLeft/MachineLeft.vue 1 ●●●● patch | view | raw | blame | history
src/views/Home/AINowFly.vue
@@ -2,16 +2,20 @@
    <div class="AINowFly">
        <div>智引即飞</div>
        <el-form ref="ruleFormRef" :model="params" :rules="rules" label-width="auto" size="small" status-icon>
            <el-form-item label="任务名称" prop="taskName">
                <el-input v-model="params.taskName" />
            <el-form-item label="任务名称" prop="name">
                <el-input v-model="params.name" />
            </el-form-item>
            <el-form-item label="关联算法" prop="ai_types">
                <el-select v-model="params.ai_types" placeholder="请选择">
                <el-select v-model="params.ai_types" placeholder="请选择" multiple>
                    <el-option v-for="item in taskAlgorithm" :key="item.id" :label="item.dictValue" :value="item.dictKey" />
                </el-select>
            </el-form-item>
            <el-form-item label="地址" >
            <el-form-item label="地址">
                <el-input disabled type="text" v-model="di" />
            </el-form-item>
            <!--            todo-->
            <el-form-item label="事件">
                <div>默认拍照</div>
            </el-form-item>
        </el-form>
@@ -40,23 +44,24 @@
import dayjs from 'dayjs'
import { useStore } from 'vuex'
const now = dayjs().format('YYYY/MM/DD HH:mm')
const now = dayjs().format('YYYYMMDDHHmm')
const nowTime = dayjs().format('YYYY-MM-DD HH:mm:ss')
const paramsInit = {
    taskName: `智引即飞 ${now}`,
    name: `智引即飞${now}`,
    ai_types: '',
    longitude: '',
    latitude: '',
    dock_sns: [],
    type: 1,
    begin_time: nowTime,
    end_time: nowTime,
}
const params = ref(_.cloneDeep(paramsInit))
const di = computed(() => params.value.longitude + ',' + params.value.latitude)
const rules = ref({
    taskName: [
    name: [
        { required: true, message: '请输入任务名称', trigger: 'blur' },
        { min: 3, max: 50, message: '长度在 3 到 20 个字符', trigger: 'blur' },
    ],
@@ -79,11 +84,14 @@
    await ruleFormRef.value.validate()
    if (!params.value.dock_sns.length) return ElMessage.warning('请选择将要飞行的机巢')
    if (!params.value.longitude) return ElMessage.warning('请选择飞行的点')
    if (params.value.dock_sns.length === 1){
        store.commit('setSingleUavHome', { device_sn: params.value.dock_sns[0]})
    }else{
        store.commit('setFootActiveIndex', 0)
    }
    createTask(params.value).then(res => {
        ElMessage.success('起飞成功')
        if (params.value.dock_sns.length === 1) {
            store.commit('setSingleUavHome', { device_sn: params.value.dock_sns[0] })
        } else {
            store.commit('setFootActiveIndex', 0)
        }
    })
}
const renderingLine = () => {
@@ -158,7 +166,7 @@
    })
    const { longitude, latitude } = cartesian3Convert(earthPosition, viewer)
    eventPoint = { longitude, latitude }
    params.value = {...params.value,longitude, latitude}
    params.value = { ...params.value, longitude, latitude }
    getFJList()
}
src/views/SignMachineNest/MachineLeft/MachineLeft.vue
@@ -24,6 +24,7 @@
const goBack = () => {
  store.commit('setSingleUavHome', {});
    store.commit('setFootActiveIndex', 0)
};
</script>