From 89380e6260a75d1d3b94de687ebcc2f50d50659d Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Tue, 03 Feb 2026 15:44:33 +0800
Subject: [PATCH] feat:环境变量配置调整
---
uniapps/work-wx/src/subPackages/flightApplication/index.vue | 281 +++++++++++++++++++++++++++++++++++++------------------
1 files changed, 187 insertions(+), 94 deletions(-)
diff --git a/uniapps/work-wx/src/subPackages/flightApplication/index.vue b/uniapps/work-wx/src/subPackages/flightApplication/index.vue
index 4a10046..89584d5 100644
--- a/uniapps/work-wx/src/subPackages/flightApplication/index.vue
+++ b/uniapps/work-wx/src/subPackages/flightApplication/index.vue
@@ -12,24 +12,30 @@
</view>
</view>
</view>
- <u-search :bgColor="'white'" :show-action="true" actionText="搜索" :animation="true"></u-search>
- <view class="content">
- <view class="sp-title">
- 审批记录
- </view>
- <view class="approvalRecord" v-for="(approvalRecord,approvalRecordIndex) in approvalRecords" :key="approvalRecordIndex">
- <view class="name-status">
- <view class="name-image">
- <u-image :src="spSvg" class="icon" width="16" height="16"></u-image>
- <view class="name">{{approvalRecord.flightPlanName}}</view>
- </view>
- <view class="status">{{approvalRecord.planStatus || '无状态'}}</view>
+ <!-- <view class="search-content"> -->
+ <u-search v-model="formParams.flightPlanName" :bgColor="'white'" :show-action="true" actionText="搜索" :animation="true" @custom="handleSearch"></u-search>
+ <view class="content">
+ <view class="sp-title">
+ 审批记录
</view>
- <view class="txt">飞行设备:{{approvalRecord.device || '无设备'}}</view>
- <view class="txt">行政区划:{{approvalRecord.area || '无行政区划'}}</view>
- <view class="txt">飞行时间:{{approvalRecord.time || '无飞行时间'}}</view>
+ <u-list :style="{ height: 'calc(100vh - 240rpx)' }" @scrolltolower="scrolltolower" :lower-threshold="50">
+ <view class="approvalRecord" v-for="(approvalRecord,approvalRecordIndex) in approvalRecords" :key="approvalRecordIndex" @click="handleClick(approvalRecord)">
+ <view class="name-status">
+ <view class="name-image">
+ <u-image :src="spSvg" class="icon" width="16" height="16"></u-image>
+ <view class="name">{{approvalRecord.flightPlanName}}</view>
+ </view>
+ </view>
+ <view class="txt">审批状态: <span :class="getStatusClass(approvalRecord.planApprovalStatus)">{{approvalRecord.planApprovalStatusLabel || ''}}</span></view>
+ <view class="txt">计划起飞状态:<span :class="getPlanStatusClass(approvalRecord.planStatus)">{{approvalRecord.flyActivityTakeoffStatusLabel || ''}}</span></view>
+ <view class="txt">飞行器:{{approvalRecord.spacecraftLabel || '无'}}</view>
+ <view class="txt">飞行任务:{{approvalRecord.flightTaskTypeLabel || ''}}</view>
+ <view class="txt">飞行起飞时间:{{approvalRecord.flightStartTime || ''}}</view>
+ <view class="txt">飞行降落时间:{{approvalRecord.flightEndTime || ''}}</view>
+ </view>
+ </u-list>
</view>
- </view>
+ <!-- </view> -->
</view>
</template>
<script setup>
@@ -37,7 +43,12 @@
import { flightPlanPageInfoApi } from '@/api/index.js'
import fxsqSvg from '@/static/images/fly-apply.png'
import mysbSvg from '@/static/images/my-sb.png'
-import { ref } from 'vue'
+ import { ref } from 'vue'
+ import { aircraftInfoPageInfoOfMyApi } from '@/api/index'
+
+ // 获取store中的数据 字典
+ import { useAppStore, useUserStore } from "@/store";
+ const appStore = useAppStore()
function gridClick(index) {
@@ -53,66 +64,89 @@
}
}
+const getStatusClass = (status) => {
+ switch (status) {
+ case '0':
+ return 'Sorange'
+ case '99':
+ return 'Sgreen'
+ case '-1':
+ return 'Sred'
+ case '1':
+ return 'Sblue'
+ default:
+ return ''
+ }
+}
+
+const getPlanStatusClass = (status) => {
+ switch (status) {
+ case '0':
+ return 'Sred'
+ case '1':
+ return 'Ssqz'
+ case '2':
+ return 'Sjz'
+ case '3':
+ return 'SOrange'
+ case '99':
+ return 'Syzz'
+ case '-1':
+ return 'Ssqbh'
+ case '-2':
+ return 'Sysx'
+ default:
+ return ''
+ }
+}
+
+// 获取飞行器信息
+const aircraftInfoList = ref([])
+async function getAircraftInfo() {
+ try {
+ const res = await aircraftInfoPageInfoOfMyApi({
+ current: 1,
+ size: 1000,
+ })
+ aircraftInfoList.value = res.data.data.records.map(item => ({
+ label: item.name,
+ value: item.id,
+ }))
+ } catch (error) {
+ console.error('获取飞行器信息失败:', error)
+ }
+}
+
+
+
// 审批记录是很多条
-const approvalRecords = ref([
- {
- flightPlanName: '飞行需求名称',
- planStatus: '申请中',
- device: '大疆无人机',
- area: '吉州区',
- time: '2026/01/07至2026/01/08',
- },
- {
- flightPlanName: '飞行需求名称',
- planStatus: '申请中',
- device: '大疆无人机',
- area: '吉州区',
- time: '2026/01/07至2026/01/08',
- },
- {
- flightPlanName: '飞行需求名称',
- planStatus: '申请中',
- device: '大疆无人机',
- area: '吉州区',
- time: '2026/01/07至2026/01/08',
- },
- {
- flightPlanName: '飞行需求名称',
- planStatus: '申请中',
- device: '大疆无人机',
- area: '吉州区',
- time: '2026/01/07至2026/01/08',
- },
- {
- flightPlanName: '飞行需求名称',
- planStatus: '申请中',
- device: '大疆无人机',
- area: '吉州区',
- time: '2026/01/07至2026/01/08',
- },
- {
- flightPlanName: '飞行需求名称',
- planStatus: '申请中',
- device: '大疆无人机',
- area: '吉州区',
- time: '2026/01/07至2026/01/08',
- },
- {
- flightPlanName: '飞行需求名称',
- planStatus: '申请中',
- device: '大疆无人机',
- area: '吉州区',
- time: '2026/01/07至2026/01/08',
- },
-])
+const approvalRecords = ref([])
+const formParams = ref({
+ current: 1,
+ size: 10,
+ flightPlanName: '',
+})
// 申请审批列表
const getApprovalRecords = async () => {
try {
- const res = await flightPlanPageInfoApi({
- current: 1,
- size: 10,
+ const res = await flightPlanPageInfoApi(formParams.value)
+ const newData = res.data.data.records || []
+ // 处理字典数据
+ newData.forEach(item => {
+ item.spacecraftLabel = aircraftInfoList?.value.filter(info => item.spacecraftId?.split(',').includes(info.value)).map(info => info.label).join('、') || '无'
+ // 审批状态
+ item.planApprovalStatusLabel = appStore.flyActivityStatus.find(status => status.dictValue === item.planApprovalStatus)?.dictLabel || '无'
+ // 计划起飞状态
+ item.flyActivityTakeoffStatusLabel = appStore.flyActivityTakeoffStatus.find(status => status.dictValue === item.planStatus)?.dictLabel || '无'
+ // 飞行任务
+ item.flightTaskTypeLabel = appStore.taskType.find(type => type.dictValue === item.flightTaskType)?.dictLabel || '无'
})
- approvalRecords.value = res.data.data.records || []
+ // 如果是第一页,直接替换数据;否则追加数据
+ if (formParams.value.current === 1) {
+ approvalRecords.value = newData
+ } else {
+ approvalRecords.value = approvalRecords.value.concat(newData)
+ }
} catch (error) {
uni.showToast({
title: error.message,
@@ -121,19 +155,47 @@
})
}
}
-onMounted(() => {
+// 搜索处理
+const handleSearch = () => {
+ // 搜索时重置为第一页
+ formParams.value.current = 1
+ formParams.value.flightPlanName = formParams.value.flightPlanName.trim()
+ getApprovalRecords()
+}
+// 触底加载
+function scrolltolower() {
+ formParams.value.current++
+ // 停止不刷新
+ if (approvalRecords.value.length < formParams.value.size) {
+ return
+ }
+ getApprovalRecords()
+}
+// 点击审批记录跳转详情页
+function handleClick(item) {
+ uni.navigateTo({
+ url: '/subPackages/flightApplication/details?id=' + item.id,
+ })
+}
+
+
+onMounted(async () => {
+ await getAircraftInfo()
getApprovalRecords()
})
</script>
<style scoped lang="scss">
.flightApplication {
+ width: 100%;
+ height: 100%;
+ display: flex;
+ flex-direction: column;
+ overflow-y: hidden;
.header-top {
- width: 100%;
- height: 350rpx;
- background: url('@/static/images/fxsq-bg.png') no-repeat center;
- background-size: 100% 100%;
- position: fixed;
- top: 0;
+ height: 480rpx;
+ background: url("https://wrj.shuixiongit.com/aiskyminio/cloud-bucket/ja-app-wx/images/fxsq-bg.png") no-repeat ;
+ background-size: 100%;
+ position: relative;
.ht-content {
position: absolute;
bottom: -40rpx;
@@ -149,7 +211,7 @@
flex: 1;
max-width: 350rpx;
height: 166rpx;
- background: rgba(251,253,255,0.39);
+ background: rgba(251,253,255,0.8);
box-shadow: inset 0px 0px 7px 0px rgba(64,156,230,0.14), 0px 1px 3px 0px rgba(35,49,96,0.11);
border-radius: 8px 8px 8px 8px;
border: 1px solid #fff;
@@ -171,18 +233,11 @@
}
}
:deep(.u-search) {
- position: absolute;
- width: 90%;
- left: 50%;
- transform: translateX(-50%);
- top: 340rpx !important;
+ padding: 10px 20px;
height: 68rpx;
- flex: 0;
+ margin-top: 50rpx !important;
}
.content {
- position: absolute;
- top: 450rpx !important;
- bottom: 0;
background: white;
width: 100%;
display: flex;
@@ -211,12 +266,11 @@
}
.name-status {
display: flex;
- justify-content: space-between;
- align-items: center;
+ // justify-content: space-between;
margin-bottom: 20rpx;
.name-image {
+ width: calc(100% - 120rpx);
display: flex;
- justify-content: center;
align-items: center;
.u-image {
width: 32rpx;
@@ -227,24 +281,63 @@
font-size: 32rpx;
color: #1D2129;
margin-left: 6rpx;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
}
}
.status {
width: 100rpx;
text-align: center;
- line-height: 40rpx;
- background: #FF9604;
+ line-height: 44rpx;
+ height: 44rpx;
border-radius: 2px 2px 2px 2px;
font-weight: 500;
font-size: 24rpx;
color: #FFFFFF;
+ padding: 0 6rpx;
+
+
}
+
}
.txt {
font-weight: 400;
font-size: 12px;
color: #86909C;
margin-bottom: 14rpx;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
}
+
+ .Sorange {
+ color: #FF9604;
+ }
+ .Sred {
+ color: #F8422A;
+ }
+ .Sgreen {
+ color: #17A836;
+ }
+ .Sblue {
+ color: #1D6FE9;
+ }
+ .Sjz {
+ color: #0088FF;
+ }
+ .Syzz {
+ color: #002BFF;
+ }
+ .Ssqbh {
+ color: #FF383C;
+ }
+ .Sysx {
+ color:#414141;
+ }
+ .Ssqz {
+ color: #FF9500;
+ }
+
}
</style>
--
Gitblit v1.9.3