吉安感知网项目-前端
chenyao
2026-01-29 f4a2f7bfe0715755577157d652d773f2745a5a63
feat:更新工单字典
8 files modified
143 ■■■■ changed files
applications/drone-command/src/views/basicManage/deviceStock/index.vue 8 ●●●● patch | view | raw | blame | history
applications/task-work-order/src/views/orderView/equipmentResource/index.vue 2 ●●● patch | view | raw | blame | history
applications/task-work-order/src/views/orderView/orderManage/inspectionReport/index.vue 5 ●●●● patch | view | raw | blame | history
uniapps/work-wx/src/api/index.js 8 ●●●●● patch | view | raw | blame | history
uniapps/work-wx/src/pages/page/index.vue 16 ●●●●● patch | view | raw | blame | history
uniapps/work-wx/src/store/modules/app/index.js 7 ●●●●● patch | view | raw | blame | history
uniapps/work-wx/src/subPackages/flightApplication/details.vue 91 ●●●● patch | view | raw | blame | history
uniapps/work-wx/src/subPackages/flightApplication/index.vue 6 ●●●●● patch | view | raw | blame | history
applications/drone-command/src/views/basicManage/deviceStock/index.vue
@@ -77,9 +77,9 @@
                            {{ dayjs(row.createTime).format('YYYY-MM-DD') }}
                        </template>
                    </el-table-column>
                    <el-table-column prop="source" show-overflow-tooltip width="112" label="来源" />
                    <el-table-column prop="purpose" show-overflow-tooltip width="206" label="用途" />
                    <el-table-column prop="belongDeptName" show-overflow-tooltip label="所属部门" />
                    <el-table-column prop="source" show-overflow-tooltip width="120" label="来源" />
                    <el-table-column prop="purpose" show-overflow-tooltip width="130" label="用途" />
                    <el-table-column prop="belongDeptName" show-overflow-tooltip width="160" label="所属部门" />
                    <el-table-column prop="charger" show-overflow-tooltip width="100" label="负责人" />
                    <el-table-column prop="yxzt" show-overflow-tooltip width="116" label="运行状态">
                        <template v-slot="{ row }">
@@ -91,7 +91,7 @@
                            {{ getDictLabel(row.trackStatus, trackStatusOptions) }}
                        </template>
                    </el-table-column>
                    <el-table-column label="操作" class-name="operation-btns">
                    <el-table-column label="操作" class-name="operation-btns" width="140">
                        <template v-slot="{ row }">
                            <el-link @click="handleView(row)">查看</el-link>
                            <el-link @click="handleEdit(row)">编辑</el-link>
applications/task-work-order/src/views/orderView/equipmentResource/index.vue
@@ -81,7 +81,7 @@
                            {{ row.latitude ? (row.latitude + ', ' + row.longitude) : '未定位' }}
                        </template>
                    </el-table-column>
                    <!-- <el-table-column prop="firmwareVersion" show-overflow-tooltip label="固件版本" /> -->
                    <el-table-column prop="firmwareVersion" show-overflow-tooltip label="固件版本" />
                    <el-table-column prop="deviceDeptName" show-overflow-tooltip label="所属部门" />
                    <el-table-column label="操作" class-name="operation-btns" width="180">
                        <template v-slot="{ row }">
applications/task-work-order/src/views/orderView/orderManage/inspectionReport/index.vue
@@ -82,10 +82,9 @@
        </div>
        <el-dialog
            class="gd-dialog"
            append-to-body
            v-model="isShowEditView"
            :title="titleTxt"
            :width="pxToRem(800)"
            :width="pxToRem(500)"
            :close-on-click-modal="false"
            :destroy-on-close="true"
            @close="handleClose"
@@ -329,14 +328,12 @@
    } else {
        // 批量下载
        try {
            console.log(selectedFiles.value, '9999')
            loadingData = ElLoading.service({ background: 'rgba(0, 0, 0, 0.5)', text: '打包中,请稍等...' })
            const fileIds = selectedFiles.value.map(i => i.id).join(',')
            // const res = await getDownloadStatusApi({ type: 'dpsjzx' })
            // if (!['CANCELLED', 'COMPLETED'].includes(res.data.data?.status || 'COMPLETED')) {
            //     return ElMessage.warning('还有正在处理的')
            // }
            console.log(fileIds, '7777')
            await fjDownloadByByteApi({ attachIds: fileIds }).then(res => {
                if (res.data.code === 200) {
                    ElMessage.success('下载成功')
uniapps/work-wx/src/api/index.js
@@ -175,6 +175,14 @@
  })
}
// 无人机起飞状态
export const flyActivityTakeoffStatusApi = () => {
  return request({
    url: `/system/dict/data/type/fly_activity_takeoff_status`,
    method: 'get'
  })
}
// 无人机厂商
export const manufacturerInfoApi = data => {
  return request({
uniapps/work-wx/src/pages/page/index.vue
@@ -86,7 +86,7 @@
  import docSvg from '@/static/images/doc.png'
  import lbBottomPng from '@/static/images/lb_bottom.png'
  import { sysNoticePageInfoApi, droneFlightTaskApi } from '@/api/index'
  import { flightTaskApi,flightRulesApi,flightModeApi,flightPlanApi,flyActivityStatusApi,proTypeApi} from '@/api/index'
  import { flightTaskApi,flightRulesApi,flightModeApi,flightPlanApi,flyActivityStatusApi,flyActivityTakeoffStatusApi,proTypeApi} from '@/api/index'
import { useAppStore } from "@/store";
const appStore = useAppStore()
@@ -293,6 +293,19 @@
    })
}
// 获取飞行状态
function flyActivityTakeoffStatus() {
    flyActivityTakeoffStatusApi().then(res => {
        flyActivityTakeoffStatus.value = res.data.data.map(item => ({
            ...item,
            label: item.dictLabel || '暂无',
            value: item.dictValue || '暂无',
        }))
        // 存储到store
        appStore.setFlyActivityTakeoffStatus(flyActivityTakeoffStatus.value)
    })
}
// 获取飞行器类型
const typeList = ref([])
function getProTypeApi() {
@@ -318,6 +331,7 @@
  getFlightRules()
  getFlightPlan()
  getFlyActivityStatus()
  flyActivityTakeoffStatus()
  getProTypeApi()
})
</script>
uniapps/work-wx/src/store/modules/app/index.js
@@ -16,6 +16,7 @@
    flightRules: [], // 飞行规则
    flightPlan: [], // 飞行计划
    flyActivityStatus: [], // 飞行活动状态
    flyActivityTakeoffStatus: [], // 无人机起飞状态
    proType: [], // 飞行器类型
  }),
  getters: {
@@ -41,6 +42,9 @@
    getFlyActivityStatus (state) {
      return state.flyActivityStatus
    },
    getFlyActivityTakeoffStatus (state) {
      return state.flyActivityTakeoffStatus
    },
    getProType (state) {
      return state.proType
    },
@@ -62,6 +66,9 @@
    setFlyActivityStatus (data) {
      this.flyActivityStatus = data
    },
    setFlyActivityTakeoffStatus (data) {
      this.flyActivityTakeoffStatus = data
    },
    setProType (data) {
      this.proType = data
    },
uniapps/work-wx/src/subPackages/flightApplication/details.vue
@@ -195,7 +195,54 @@
                border="none"
            ></u-input>
        </u-form-item>
        <u-popup :show="applyShow" :round="10" mode="center" @close="close" :closeable="true" :mask-close-able="true">
         <u-form labelPosition="top" :model="formParams" :rules="rules" ref="formRef">
            <u-form-item
                label="计划申请起飞时间"
                labelWidth="260rpx"
                prop="actualTakeoffTime"
                :borderBottom="true"
                ref="item1"
                @click="isShowStartTime = true"
                required
        >
            <u-input v-model="formParams.actualTakeoffTime" border="none" placeholder="请选择" suffixIcon="calendar"></u-input>
        </u-form-item>
         <u-form-item
                label="计划申请结束时间"
                labelWidth="260rpx"
                prop="actualLandingTime"
                :borderBottom="true"
                ref="item1"
                @click="isShowEndTime = true"
                required
        >
            <u-input v-model="formParams.actualLandingTime" border="none" placeholder="请选择" suffixIcon="calendar"></u-input>
        </u-form-item>
        <u-datetime-picker
            :show="isShowStartTime"
            v-model="startTime"
            mode="datetime"
            :min-date="minDate"
            :formatter="formatter"
            @confirm="onConfirmStartTime"
             @cancel="isShowStartTime = false">
        </u-datetime-picker>
        <u-datetime-picker
            :show="isShowEndTime"
            v-model="endTime"
            mode="datetime"
            :min-date="minDate"
            :formatter="formatter"
            @confirm="onConfirmEndTime"
            @cancel="isShowEndTime = false">
        </u-datetime-picker>
         </u-form>
         <u-button @click="submitApply" color="#1D6FE9">确定</u-button>
    </u-popup>
    </u-form>
    <u-button v-if="formParams.planApprovalStatus === '99'" @click="submitApply" color="#1D6FE9">申请</u-button>
</view>
</template>
<script setup>
@@ -232,17 +279,28 @@
const isShowStartTime = ref(false)
// 是否显示结束时间选择器
const isShowEndTime = ref(false)
// const startTime = ref(Date.now()); // 设置默认值为当前时间戳
// const endTime = ref(Date.now()); // 设置默认值为当前时间戳
const minDate = ref(Date.now()); // 设置最小日期为当前时间戳
const startTime = ref(Date.now()); // 设置默认值为当前时间戳
const endTime = ref(Date.now()); // 设置默认值为当前时间戳
// const onConfirmStartTime = (e) => {
//     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:ss')
//     isShowEndTime.value = false
// }
const onConfirmStartTime = (e) => {
    formParams.value.actualTakeoffTime = dayjs(e.value).format('YYYY-MM-DD HH:mm')
    isShowStartTime.value = false
}
const onConfirmEndTime = (e) => {
    formParams.value.actualLandingTime = dayjs(e.value).format('YYYY-MM-DD HH:mm')
    isShowEndTime.value = false
}
const formatter = (type, value) => {
    if (type === 'year') return `${value}年`;
    if (type === 'month') return `${value}月`;
    if (type === 'day') return `${value}日`;
    if (type === 'hour') return `${value}时`;
    if (type === 'minute') return `${value}分`;
    return value;
};
@@ -306,6 +364,19 @@
    })
}
// 申请
const applyShow = ref(false)
function submitApply() {
   applyShow.value = true
}
function close() {
    // 清空时间
    formParams.value.actualTakeoffTime = ''
    formParams.value.actualLandingTime = ''
    applyShow.value = false
}
onLoad((options) => {
     flightPlanDetailsApi(options.id).then(res => {
        // return
uniapps/work-wx/src/subPackages/flightApplication/index.vue
@@ -29,10 +29,11 @@
                            {{ approvalRecord.planApprovalStatusLabel || ''}}
                        </view>
                    </view>
                    <view class="txt">计划起飞状态:{{approvalRecord.fly_activity_takeoff_status || ''}}</view>
                    <view class="txt">飞行器:{{approvalRecord.spacecraftLabel || '无'}}</view>
                    <view class="txt">飞行任务:{{approvalRecord.flightTaskTypeLabel || ''}}</view>
                    <view class="txt">飞行起飞时间:{{approvalRecord.actualTakeoffTime || ''}}</view>
                    <view class="txt">飞行降落时间:{{approvalRecord.actualLandingTime || ''}}</view>
                    <view class="txt">飞行起飞时间:{{approvalRecord.flightStartTime || ''}}</view>
                    <view class="txt">飞行降落时间:{{approvalRecord.flightEndTime || ''}}</view>
                </view>
            </u-list>
        </view>
@@ -115,6 +116,7 @@
        newData.forEach(item => {
            item.spacecraftLabel = aircraftInfoList.value.find(info => info.value === item.spacecraftId)?.label || '无'
            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 || '无'
        })
        // 如果是第一页,直接替换数据;否则追加数据