From 3e531ec229f2c02150c4edeef2a7f9026141c049 Mon Sep 17 00:00:00 2001
From: chenyao <1219716595@qq.com>
Date: Mon, 02 Feb 2026 14:08:14 +0800
Subject: [PATCH] feat:更新计划申请

---
 uniapps/work-wx/src/subPackages/flightApplication/add.vue |  151 ++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 127 insertions(+), 24 deletions(-)

diff --git a/uniapps/work-wx/src/subPackages/flightApplication/add.vue b/uniapps/work-wx/src/subPackages/flightApplication/add.vue
index bfb7db3..971bff7 100644
--- a/uniapps/work-wx/src/subPackages/flightApplication/add.vue
+++ b/uniapps/work-wx/src/subPackages/flightApplication/add.vue
@@ -209,14 +209,14 @@
         <u-form-item
                 label="飞行器"
                 labelWidth="230rpx"
-                prop="aircraftId"
+                prop="spacecraftText"
                 :borderBottom="true"
                 required
                 ref="item2"
                 @click="isShowAircraftInfo = true"
         >
             <u-input
-                v-model="formParams.aircraftText"
+                v-model="formParams.spacecraftText"
                 disabled
                 disabledColor="#ffffff"
                 placeholder="请选择"
@@ -231,7 +231,7 @@
         <u-form-item
                 label="飞手"
                 labelWidth="230rpx"
-                prop="pilotId"
+                prop="pilotText"
                 :borderBottom="true"
                 ref="item2"
                 required
@@ -276,7 +276,7 @@
         <u-form-item
                 label="航线"
                 labelWidth="230rpx"
-                prop="routeId"
+                prop="selectedRouteId"
                 :borderBottom="true"
                 ref="item2"
                 required
@@ -350,21 +350,85 @@
     <!-- <u-calendar :show="isShowTimeRange" mode="date" @confirm="onConfirmTimeRange" @close="isShowTimeRange = false" :close-on-click-overlay="true"></u-calendar> -->
     <!-- <u-calendar :show="isShowTimeRange" mode="range" @confirm="onConfirmTimeRange" @close="isShowTimeRange = false" :close-on-click-overlay="true" :allow-same-day="true" :show-time="true" time-format="HH:mm:ss"></u-calendar> -->
     <!-- 飞行器 -->
-     <u-picker
+     <!-- <u-picker
         :show="isShowAircraftInfo"
         :columns="[aircraftInfoList]"
         keyName="label"
         @confirm="onPickerAircraftInfo"
         @cancel="isShowAircraftInfo = false"
-    />
+    /> -->
+    <u-popup
+    :show="isShowAircraftInfo"
+    mode="bottom"
+    round="20"
+    @close="isShowAircraftInfo = false"
+  >
+  <scroll-view scroll-y>
+    <view class="select-header">
+        <view>请选择飞行器</view>
+        <view class="select-header-btn">
+            <view class="cancel-btn" @click="isShowAircraftInfo = false">取消</view>
+            <view @click="onPickerAircraftInfo">确定</view>
+        </view>
+    </view>
+    <view class="select-content">
+          <up-checkbox-group
+            v-model="formParams.spacecraftId"
+            placement="column"
+            @change="checkboxChange"
+        >
+            <up-checkbox
+                :customStyle="{marginBottom: '8px'}"
+                v-for="(item, index) in aircraftInfoList"
+                :key="item.id"
+                :label="item.label"
+                :name="item.value"
+            >
+            </up-checkbox>
+        </up-checkbox-group>
+    </view>
+    </scroll-view>
+  </u-popup>
     <!-- 飞手 -->
-    <u-picker
+    <!-- <u-picker
         :show="isShowPilotInfo"
         :columns="[pilotInfoList]"
         keyName="label"
         @confirm="onPickerPilotInfo"
         @cancel="isShowPilotInfo = false"
-    />
+    /> -->
+    <u-popup
+    :show="isShowPilotInfo"
+    mode="bottom"
+    round="20"
+    @close="isShowPilotInfo = false"
+  >
+  <scroll-view scroll-y>
+    <view class="select-header">
+        <view>请选择飞手</view>
+        <view class="select-header-btn">
+            <view class="cancel-btn" @click="isShowPilotInfo = false">取消</view>
+            <view @click="onPickerPilotInfo">确定</view>
+        </view>
+    </view>
+    <view class="select-content">
+          <up-checkbox-group
+            v-model="formParams.pilotId"
+            placement="column"
+            @change="checkboxPilotChange"
+        >
+            <up-checkbox
+                :customStyle="{marginBottom: '8px'}"
+                v-for="(item, index) in pilotInfoList"
+                :key="item.id"
+                :label="item.label"
+                :name="item.value"
+            >
+            </up-checkbox>
+        </up-checkbox-group>
+    </view>
+    </scroll-view>
+  </u-popup>
     <!-- 空域 -->
     <u-picker
         :show="isShowAirspaceInfo"
@@ -427,13 +491,13 @@
     flightStartTime: '', // 飞行活动开始时间
     flightEndTime: '', // 飞行活动结束时间
     weatherCondition: '', // 气象条件
-    spacecraftId: '', // 航天器id
+    spacecraftId: [], // 航天器id
     spacecraftText: '', // 航天器文本
-    pilotId: '', // 飞手id
+    pilotId: [], // 飞手id
     pilotText: '', // 飞手文本
     airspaceId: '', // 空域id
     airspaceText: '', // 空域文本
-    routeId: '', // 航线id
+    selectedRouteId: '', // 航线id
     routeText: '', // 航线文本
 })
 const rules = ref({
@@ -491,16 +555,16 @@
     endTime: [
         { required: true, message: '请选择飞行活动结束时间', trigger: 'change' }
     ],
-    spacecraftId: [
+    spacecraftText: [
         { required: true, message: '请选择飞行器', trigger: 'change' }
     ],
-    pilotId: [
+    pilotText: [
         { required: true, message: '请选择飞手', trigger: 'change' }
     ],
     airspaceId: [
         { required: true, message: '请选择空域', trigger: 'change' }
     ],
-    routeId: [
+    selectedRouteId: [
         { required: true, message: '请选择航线', trigger: 'change' }
     ],
 })
@@ -550,11 +614,11 @@
 const endTime = ref(Date.now()); // 设置默认值为当前时间戳
 
 const onConfirmStartTime = (e) => {
-    formParams.value.flightStartTime = dayjs(e.value).format('YYYY-MM-DD HH:mm')
+    formParams.value.flightStartTime = dayjs(e.value).format('YYYY-MM-DD HH:mm:ss')
     isShowStartTime.value = false
 }
 const onConfirmEndTime = (e) => {
-    formParams.value.flightEndTime = dayjs(e.value).format('YYYY-MM-DD HH:mm')
+    formParams.value.flightEndTime = dayjs(e.value).format('YYYY-MM-DD HH:mm:ss')
     isShowEndTime.value = false
 }
 
@@ -574,10 +638,17 @@
         }))
     })
 }
-const onPickerAircraftInfo = (e) => {
-  const selected = e.value[0]
-  formParams.value.aircraftId = selected.value
-  formParams.value.aircraftText = selected.label
+// const onPickerAircraftInfo = (e) => {
+//   const selected = e.value[0]
+//   formParams.value.spacecraftId = selected.value
+//   formParams.value.aircraftText = selected.label
+//   isShowAircraftInfo.value = false
+// }
+function checkboxChange(val) {
+    formParams.value.spacecraftId = val.join(',')
+    formParams.value.spacecraftText = aircraftInfoList.value.filter(item => val.includes(item.value)).map(item => item.label).join(',')
+}
+const onPickerAircraftInfo = () => {
   isShowAircraftInfo.value = false
 }
 // 获取飞手信息
@@ -594,10 +665,14 @@
         }))
     })
 }
+function checkboxPilotChange(val) {
+    formParams.value.pilotId = val.join(',')
+    formParams.value.pilotText = pilotInfoList.value.filter(item => val.includes(item.value)).map(item => item.label).join(',')
+}
 const onPickerPilotInfo = (e) => {
-  const selected = e.value[0]
-  formParams.value.pilotId = selected.value
-  formParams.value.pilotText = selected.label
+//   const selected = e.value[0]
+//   formParams.value.pilotId = selected.value
+//   formParams.value.pilotText = selected.label
   isShowPilotInfo.value = false
 }
 // 获取空域信息
@@ -636,7 +711,7 @@
 }
 const onPickerFlightRouteInfo = (e) => {
   const selected = e.value[0]
-  formParams.value.routeId = selected.value
+  formParams.value.selectedRouteId = selected.value
   formParams.value.routeText = selected.label
   isShowFlightRouteInfo.value = false
 }
@@ -866,5 +941,33 @@
             margin-right: 8rpx;
         }
     }
+
+    .uni-scroll-view {
+       display: flex;
+       flex-direction: column;
+    }
+
+    .select-header {
+        display: flex;
+        justify-content: space-between;
+        padding: 20rpx 20rpx;
+        font-size: 32rpx;
+        color: #222324;
+        .select-header-btn {
+            display: flex;
+            font-size: 28rpx;
+            color: #1D6FE9;
+            .cancel-btn {
+                color: #86909C;
+                margin-right: 20rpx;
+            }
+        }
+    }
+
+    .select-content {
+        height: 400rpx;
+        text-align: center;
+        padding: 20rpx 20rpx;
+    }
 }
 </style>

--
Gitblit v1.9.3