吉安感知网项目-前端
罗广辉
2026-01-26 f2dcdb896b009f9674ba719f7b935dd6871eebea
feat: 航线下拉
7 files modified
66 ■■■■ changed files
applications/task-work-order/env/.env 3 ●●●●● patch | view | raw | blame | history
applications/task-work-order/env/.env.development 2 ●●● patch | view | raw | blame | history
applications/task-work-order/src/api/zkxt/index.js 9 ●●●●● patch | view | raw | blame | history
applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/FormDiaLog.vue 7 ●●●● patch | view | raw | blame | history
applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/ViewDiaLog.vue 9 ●●●●● patch | view | raw | blame | history
applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/index.vue 15 ●●●●● patch | view | raw | blame | history
applications/task-work-order/src/views/orderView/orderManage/orderManage/FormDiaLog.vue 21 ●●●● patch | view | raw | blame | history
applications/task-work-order/env/.env
@@ -15,3 +15,6 @@
# 是否在打包时开启压缩,支持 gzip 和 brotli
VITE_BUILD_COMPRESS=gzip
# xt接口地址
VITE_APP_URL_XT=http://218.202.104.82:8200
applications/task-work-order/env/.env.development
@@ -17,7 +17,7 @@
# VITE_APP_URL = https://wrj.shuixiongit.com/api
VITE_APP_URL= http://192.168.1.204
VITE_APP_URL_XT=http://218.202.104.82:8200
#新大屏地址
VITE_APP_DASHBOARD_URL = 'https://wrj.shuixiongit.com/command-center-dashboard/'
applications/task-work-order/src/api/zkxt/index.js
@@ -28,4 +28,13 @@
    })
}
// 获取航线列表
export const airlineListApi = (data) => {
    return request({
        url: `/webservice/webservice/airline/queryList`,
        method: 'post',
        data: data,
    })
}
applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/FormDiaLog.vue
@@ -201,6 +201,7 @@
import { gdWorkOrderPageApi } from '../orderManage/orderManageApi'
import { gdManageDeviceListApi } from '../orderManage/gdManageDeviceApi'
import { pxToRem } from '@/utils/rem'
import { airlineListApi } from '@/api/zkxt'
// 初始化任务行
const initTaskRow = () => ({
@@ -230,11 +231,7 @@
// 下拉选项
const flyerListMap = ref({}) // 飞手列表,按行索引存储
const deviceList = ref([]) // 设备列表
const routeOptions = ref([
    { name: '航线1', id: '1' },
    { name: '航线2', id: '2' },
    { name: '航线3', id: '3' },
]) // 航线假数据
const routeOptions = inject('routeOptions')
// 子任务列表
const taskList = ref([initTaskRow()])
applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/ViewDiaLog.vue
@@ -45,7 +45,7 @@
                        </el-col>
                        <el-col :span="12">
                            <div class="label">巡查任务航线</div>
                            <div class="val">{{ getRouteName(formData.patrolRouteUrl) }}</div>
                            <div class="val">{{ getAirName(formData.patrolRouteUrl) }}</div>
                        </el-col>
                        <el-col :span="12">
                            <div class="label">推荐飞手</div>
@@ -277,11 +277,8 @@
const flyerList = ref([])
const deviceList = ref([])
const workOrderList = ref([])
const routeOptions = ref([
    { name: '航线1', id: '1' },
    { name: '航线2', id: '2' },
    { name: '航线3', id: '3' },
])
const routeOptions = inject('routeOptions')
const getAirName = inject('getAirName')
const gdStatusObj = {
    '0': { reason: '拒绝原因', operationType: '2' },
applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/index.vue
@@ -137,6 +137,7 @@
import { gdPatrolTaskPageApi, gdPatrolTaskRemoveApi } from './inspectionRequestApi'
import ViewDiaLog from '@/views/orderView/orderManage/inspectionRequest/ViewDiaLog.vue'
import { useStore } from 'vuex'
import { airlineListApi } from '@/api/zkxt'
const store = useStore()
const requester = computed(() => store.state.user.userInfo?.role_id === '2014158512610869250')
@@ -232,6 +233,19 @@
    selectedIds.value = rows.map(item => item.id)
}
const routeOptions = ref([])
const getAirName = id => {
    const item = routeOptions.value.find(item => item.id === id)
    return item ? item.name : id
}
provide('routeOptions', routeOptions)
provide('getAirName', getAirName)
function getAirList() {
    airlineListApi({}).then(res => {
        routeOptions.value = res.data.data || []
    })
}
// 获取字典
function getDictList() {
    getDictionaryByCode('patrolTaskType,workOrderType,deviceLoadDemand,taskStatus').then(res => {
@@ -249,6 +263,7 @@
onMounted(() => {
    getList()
    getDictList()
    getAirList()
})
</script>
<style scoped lang="scss"></style>
applications/task-work-order/src/views/orderView/orderManage/orderManage/FormDiaLog.vue
@@ -374,11 +374,12 @@
// 获取推荐设备列表
async function getDeviceList() {
    const all = ['11'].includes(gdStatus.value)
    try {
        const str = [...pointList.value, pointList.value[0]].map(item => `${item.longitude} ${item.latitude}`).join(',')
        let geom = `POLYGON((${str}))`
        const res = await gdManageDeviceListApi({
            deviceIds: formData.value.recommendDeviceIds,
            deviceIds: all ? '' : formData.value.recommendDeviceIds,
            devicePayload: dialogMode.value === 'add' ? formData.value.deviceLoadDemand : '',
            geom: dialogMode.value === 'add' ? geom : '',
        })
@@ -543,10 +544,20 @@
            position: position,
            billboard: {
                image: droneIcon,
                width: 40,
                height: 40,
                width: 20,
                height: 20,
                verticalOrigin: Cesium.VerticalOrigin.CENTER,
            },
            label: {
                text: item.nickname,
                font: '12px/1.5 Microsoft YaHei',
                style: Cesium.LabelStyle.FILL_AND_OUTLINE,
                outlineWidth: 2,
                outlineColor: Cesium.Color.WHITE,
                horizontalOrigin: Cesium.HorizontalOrigin.CENTER,
                verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
                pixelOffset: new Cesium.Cartesian2(0, -10)
            }
        })
    })
}
@@ -563,10 +574,10 @@
        hasPatrolTaskList.value && gdPatrolTaskPage()
        dialogMode.value === 'edit' ? editPolygon() : viewPolygon()
    }
    // setMapDevice()
    setMapDevice()
    await nextTick()
    await getDeviceList()
    syncSelection()
    getDeviceList()
}
// 初始化地图实例