From 39ec001f02bde6fd7b7a40bdf7b2313df87e8e76 Mon Sep 17 00:00:00 2001
From: 张含笑 <zhx18749296735@163.com>
Date: Sat, 17 Jan 2026 17:34:51 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
uniapps/work-wx/src/subPackages/flightApplication/add.vue | 153 +++++++++++++++++++++++++++++---------------------
1 files changed, 89 insertions(+), 64 deletions(-)
diff --git a/uniapps/work-wx/src/subPackages/flightApplication/add.vue b/uniapps/work-wx/src/subPackages/flightApplication/add.vue
index 02c5d54..2230615 100644
--- a/uniapps/work-wx/src/subPackages/flightApplication/add.vue
+++ b/uniapps/work-wx/src/subPackages/flightApplication/add.vue
@@ -373,7 +373,7 @@
@cancel="isShowFlightRouteInfo = false"
/>
</u-form>
- <u-button @click="submitForm" color="#1D6FE9">飞行申请</u-button>
+ <u-button :disabled="isSubmitDisabled" @click="submitForm" color="#1D6FE9">飞行申请</u-button>
<!-- 飞任务类型 -->
<view class="attention">
注:新增空域/航线/飞手等前往吉安市低空经济服务一体化
@@ -381,7 +381,14 @@
</view>
</template>
<script setup>
-import { flightPlanSaveApi, flightRoutePageInfoApi, aircraftInfoPageInfoOfMyApi, pilotInfoPageInfoOfMyApi, flightAirspacePageInfoApi, uploadFileApi } from '@/api/index'
+import { flightPlanSaveApi,
+ flightRoutePageInfoApi,
+ aircraftInfoPageInfoOfMyApi,
+ pilotInfoPageInfoOfMyApi,
+ droneFlightTaskApi,
+ uploadFileApi,
+ flightTaskApi,flightRulesApi,flightModeApi,flightPlanApi
+ } from '@/api/index'
import { ref, computed, onMounted } from 'vue'
import dayjs from 'dayjs'
@@ -400,7 +407,7 @@
planType: '', // 计划类型
planTypeText: '', // 计划类型文本
contactPerson: '', // 联系人
- contactPhon: '', // 联系人电话
+ contactPhone: '', // 联系人电话
undertaker: '', // 承办人
undertakerPhone: '', // 承办人电话
timeRange: '', // 时间范围
@@ -432,13 +439,37 @@
contactPerson: [
{ required: true, message: '请输入联系人', trigger: 'blur' }
],
- contactPhon: [
+ contactPhone: [
+ // 验证手机号码
+ {
+ validator: (rule, value, callback) => {
+ const reg = /^1[3456789]\d{9}$/
+ if (!reg.test(value)) {
+ callback(new Error('请输入正确的手机号码'))
+ } else {
+ callback()
+ }
+ },
+ trigger: 'blur'
+ },
{ required: true, message: '请输入联系人电话', trigger: 'blur' }
],
undertaker: [
{ required: true, message: '请输入承办人', trigger: 'blur' }
],
undertakerPhone: [
+ // 验证手机号码
+ {
+ validator: (rule, value, callback) => {
+ const reg = /^1[3456789]\d{9}$/
+ if (!reg.test(value)) {
+ callback(new Error('请输入正确的手机号码'))
+ } else {
+ callback()
+ }
+ },
+ trigger: 'blur'
+ },
{ required: true, message: '请输入承办人联系电话', trigger: 'blur' }
],
startTime: [
@@ -462,32 +493,7 @@
})
// 任务类型
const isShowFlightTaskType = ref(false)
-const actionsFlightTaskType = [
- {
- label: '警务',
- value: '警务',
- },
- {
- label: '文旅',
- value: '文旅',
- },
- {
- label: '航拍',
- value: '航拍',
- },
- {
- label: '物流',
- value: '物流',
- },
- {
- label: '巡检',
- value: '巡检',
- },
- {
- label: '植保',
- value: '植保',
- },
-]
+const actionsFlightTaskType = ref([])
const onPickerFlightTaskType = (e) => {
const selected = e.value[0]
formParams.value.flightTaskType = selected.value
@@ -497,16 +503,7 @@
// 飞行规则
const isShowFlightRule = ref(false)
-const actionsFlightRule = [
- {
- label: '目视餡相飞行规则(VFR)',
- value: '目视餡相飞行规则(VFR)',
- },
- {
- label: '仪表飞行规则(IFR)',
- value: '仪表飞行规则(IFR)',
- },
-]
+const actionsFlightRule = ref([])
const onPickerFlightRule = (e) => {
const selected = e.value[0]
formParams.value.flightRule = selected.value
@@ -515,16 +512,7 @@
}
// 飞行方式
const isShowFlightMode = ref(false)
-const actionsFlightMode = [
- {
- label: '视距内飞行 (VLOS)',
- value: '视距内飞行 (VLOS)',
- },
- {
- label: '超视距飞行(BVLOS)',
- value: '超视距飞行(BVLOS)',
- },
-]
+const actionsFlightMode = ref([])
const onPickerFlightMode = (e) => {
const selected = e.value[0]
formParams.value.flightMode = selected.value
@@ -533,16 +521,7 @@
}
// 计划类型
const isShowPlanType = ref(false)
-const actionsPlanType = [
- {
- label: '一般',
- value: '0',
- },
- {
- label: '紧急',
- value: '1',
- }
-]
+const actionsPlanType = ref([])
const onPickerPlanType = (e) => {
const selected = e.value[0]
formParams.value.planType = selected.value
@@ -611,12 +590,12 @@
const isShowAirspaceInfo = ref(false)
const airspaceInfoList = ref([])
function getAirspaceInfo() {
- flightAirspacePageInfoApi({
+ droneFlightTaskApi({
current: 1,
size: 1000,
}).then(res => {
airspaceInfoList.value = res.data.data.records.map(item => ({
- label: item.airspaceName || '暂无',
+ label: item.taskName || '暂无',
value: item.id,
}))
})
@@ -635,7 +614,6 @@
current: 1,
size: 1000,
}).then(res => {
- console.log(res.data.data, '0000')
flightRouteInfoList.value = res.data.data.records.map(item => ({
label: item.name,
value: item.id,
@@ -703,12 +681,14 @@
});
});
};
+const isSubmitDisabled = ref(false)
// 提交表单
const submitForm = async () => {
await formRef.value.validate()
-
+ isSubmitDisabled.value = true
flightPlanSaveApi(formParams.value).then(res => {
if (res.data.code === 200) {
+ isSubmitDisabled.value = true
uni.showToast({
title: '提交成功',
icon: 'success',
@@ -727,7 +707,52 @@
}
})
}
+// 获取任务类型
+function getTaskType() {
+ flightTaskApi().then(res => {
+ actionsFlightTaskType.value = res.data.data.map(item => ({
+ ...item,
+ label: item.dictLabel || '暂无',
+ value: item.dictValue || '暂无',
+ }))
+ })
+}
+// 获取飞行模式
+function getFlightMode() {
+ flightModeApi().then(res => {
+ actionsFlightMode.value = res.data.data.map(item => ({
+ ...item,
+ label: item.dictLabel || '暂无',
+ value: item.dictValue || '暂无',
+ }))
+ })
+}
+// 获取飞行规则
+function getFlightRules() {
+ flightRulesApi().then(res => {
+ actionsFlightRule.value = res.data.data.map(item => ({
+ ...item,
+ label: item.dictLabel || '暂无',
+ value: item.dictValue || '暂无',
+ }))
+ })
+}
+// 获取飞行计划
+function getFlightPlan() {
+ flightPlanApi().then(res => {
+ actionsPlanType.value = res.data.data.map(item => ({
+ ...item,
+ label: item.dictLabel || '暂无',
+ value: item.dictValue || '暂无',
+ }))
+ })
+}
onMounted(() => {
+ // getProTypeApi()
+ getTaskType()
+ getFlightMode()
+ getFlightRules()
+ getFlightPlan()
getAircraftInfo()
getPilotInfo()
getAirspaceInfo()
--
Gitblit v1.9.3