吉安感知网项目-前端
张含笑
2026-01-26 2ab579b4fd424e76aff23545ea2ee0193059d7c2
Merge remote-tracking branch 'origin/master'
4 files modified
57 ■■■■ changed files
applications/task-work-order/src/components/map-container/common-cesium-map.vue 18 ●●●●● patch | view | raw | blame | history
applications/task-work-order/src/styles/common.scss 1 ●●●● patch | view | raw | blame | history
applications/task-work-order/src/views/orderView/orderManage/orderManage/FormDiaLog.vue 36 ●●●●● patch | view | raw | blame | history
applications/task-work-order/src/views/orderView/orderManage/orderManage/index.vue 2 ●●● patch | view | raw | blame | history
applications/task-work-order/src/components/map-container/common-cesium-map.vue
@@ -66,6 +66,22 @@
let initialized = false
let removeCameraListener = null
const preventDefault = event => {
    event.preventDefault()
    return
}
const cesiumContextMenu = (isAdd = true) => {
    let cesium = document.getElementById(mapId)
    if (!cesium) return
    if (isAdd) {
        cesium.addEventListener('contextmenu', preventDefault)
    } else {
        cesium.removeEventListener('contextmenu', preventDefault)
    }
}
const initMap = async () => {
    if (initialized) return
    initialized = true
@@ -77,6 +93,7 @@
        boundary: props.boundary,
        contour: props.contour,
    })
    cesiumContextMenu(true)
    viewer.value = viewInstance.value.getViewer()
    if (props.showAdminBoundary) {
        adminBoundarySources = await loadJaAdminBoundary(viewer.value, {
@@ -118,6 +135,7 @@
    if (removeCameraListener) removeCameraListener()
    removeJaAdminBoundary(viewer.value, adminBoundarySources)
    viewInstance.value?.viewerDestroy?.()
    cesiumContextMenu(false)
})
const getMap = () => ({ viewer: viewer.value, publicCesium: viewInstance.value })
applications/task-work-order/src/styles/common.scss
@@ -270,6 +270,7 @@
}
.gd-cesium {
  position: relative;
  .cesium-viewer {
    height: 100%;
    overflow: hidden;
applications/task-work-order/src/views/orderView/orderManage/orderManage/FormDiaLog.vue
@@ -203,13 +203,15 @@
                >
                    {{ gdStatus === '11' || !gdStatus ? '发布' : '提交修改' }}
                </el-button>
                <el-button v-if="['11', '21', '23', '24', '25', '31', '60'].includes(gdStatus)" @click="viewDescription">
                    {{ gdStatusObj[gdStatus].reason }}
                </el-button>
                <el-button @click="addDescription" v-if="['20', '24', '25', '50'].includes(gdStatus)">
                    {{ gdStatus === '50' ? '结算' : '申请取消' }}
                </el-button>
                <el-button @click="requestModification" v-if="['20', '25'].includes(gdStatus)">申请修改</el-button>
                <template v-if="!suddenlyEdit">
                    <el-button v-if="['11', '21', '23', '24', '25', '31', '60'].includes(gdStatus)" @click="viewDescription">
                        {{ gdStatusObj[gdStatus].reason }}
                    </el-button>
                    <el-button @click="addDescription" v-if="['20', '24', '25', '50'].includes(gdStatus)">
                        {{ gdStatus === '50' ? '结算' : '申请取消' }}
                    </el-button>
                    <el-button @click="requestModification" v-if="['20', '25'].includes(gdStatus)">申请修改</el-button>
                </template>
            </template>
            <template v-else>
                <el-button v-if="['21', '23'].includes(gdStatus)" @click="viewDescription">
@@ -217,7 +219,7 @@
                </el-button>
                <el-button v-if="gdStatus === '10'" @click="addDescription">拒绝接单</el-button>
                <el-button v-if="gdStatus === '10'" @click="statusChange(1)">接单</el-button>
                <el-button v-if="gdStatus === '22'" @click="statusChange(8)">不同意修改</el-button>
                <el-button v-if="gdStatus === '22'" @click="addDescription">不同意修改</el-button>
                <el-button v-if="gdStatus === '22'" @click="statusChange(7)">同意修改</el-button>
                <el-button v-if="gdStatus === '21'" @click="addDescription">不同意取消</el-button>
                <el-button v-if="gdStatus === '21'" @click="statusChange(5)">同意取消</el-button>
@@ -292,13 +294,14 @@
const processList = ref([])
let viewPlane
const hasPatrolTaskList = computed(() => ['30', '40', '50', '60'].includes(String(formData.value.workOrderStatus)))
import droneIcon from '@/assets/images/orderView/orderManage/drone.png'
const gdStatusObj = {
    '10': { reason: '拒绝原因', operationType: '2' },
    '11': { reason: '拒绝原因' },
    '20': { reason: '取消原因', operationType: '3' },
    '21': { reason: '原因', operationType: '6' },
    '22': { reason: '驳回原因' },
    '22': { reason: '驳回原因', operationType: '8' },
    '23': { reason: '取消原因' },
    '24': { reason: '驳回原因', operationType: '3' },
    '25': { reason: '驳回原因', operationType: '3' },
@@ -332,9 +335,11 @@
    })
}
function requestModification() {
// 申请修改按钮
async function requestModification() {
    suddenlyEdit.value = true
    dialogMode.value = 'edit'
    await getDeviceList(true)
    nextTick(() => {
        syncSelection()
        viewPlane && viewer.entities.remove(viewPlane)
@@ -342,6 +347,7 @@
    })
}
// 填写说明弹框回调
function rejectSuccess() {
    visible.value = false
    emit('success')
@@ -373,8 +379,8 @@
}
// 获取推荐设备列表
async function getDeviceList() {
    const all = ['11'].includes(gdStatus.value) && requester.value
async function getDeviceList(allList) {
    const all = allList || ['11'].includes(gdStatus.value) && requester.value
    try {
        const str = [...pointList.value, pointList.value[0]].map(item => `${item.longitude} ${item.latitude}`).join(',')
        let geom = `POLYGON((${str}))`
@@ -509,7 +515,7 @@
    })
}
// 同步关联场景
// 回显选中设备
function syncSelection() {
    if (!deviceTableRef.value) return
    deviceTableRef.value.clearSelection()
@@ -528,16 +534,16 @@
    })
}
// 渲染所有设备
function setMapDevice() {
    gdManageDeviceListApi().then(res => {
        renderingDevice(res?.data?.data || [])
    })
}
import droneIcon from '@/assets/images/orderView/orderManage/drone.png'
//  渲染
function renderingDevice(list) {
    // 渲染红点
    list.forEach(item => {
        const position = Cesium.Cartesian3.fromDegrees(item.longitude || 115.0, item.latitude || 27.11)
        viewer.entities.add({
applications/task-work-order/src/views/orderView/orderManage/orderManage/index.vue
@@ -236,7 +236,7 @@
function openFormChange(row) {
    dialogVisible.value = true
    nextTick(() => {
        const mode = ['11','25'].includes(row.workOrderStatus) && requester.value ? 'edit' : 'view'
        const mode = ['11'].includes(row.workOrderStatus) && requester.value ? 'edit' : 'view'
        dialogRef.value?.open({ mode, row })
    })
}