吉安感知网项目-前端
chenyao
2026-02-02 3e531ec229f2c02150c4edeef2a7f9026141c049
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>