From 2ab579b4fd424e76aff23545ea2ee0193059d7c2 Mon Sep 17 00:00:00 2001
From: 张含笑 <zhx18749296735@163.com>
Date: Mon, 26 Jan 2026 13:48:12 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
applications/task-work-order/src/styles/common.scss | 1 +
applications/task-work-order/src/views/orderView/orderManage/orderManage/index.vue | 2 +-
applications/task-work-order/src/components/map-container/common-cesium-map.vue | 18 ++++++++++++++++++
applications/task-work-order/src/views/orderView/orderManage/orderManage/FormDiaLog.vue | 36 +++++++++++++++++++++---------------
4 files changed, 41 insertions(+), 16 deletions(-)
diff --git a/applications/task-work-order/src/components/map-container/common-cesium-map.vue b/applications/task-work-order/src/components/map-container/common-cesium-map.vue
index f7773f7..47d6ad1 100644
--- a/applications/task-work-order/src/components/map-container/common-cesium-map.vue
+++ b/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 })
diff --git a/applications/task-work-order/src/styles/common.scss b/applications/task-work-order/src/styles/common.scss
index d256339..ea6e5ff 100644
--- a/applications/task-work-order/src/styles/common.scss
+++ b/applications/task-work-order/src/styles/common.scss
@@ -270,6 +270,7 @@
}
.gd-cesium {
+ position: relative;
.cesium-viewer {
height: 100%;
overflow: hidden;
diff --git a/applications/task-work-order/src/views/orderView/orderManage/orderManage/FormDiaLog.vue b/applications/task-work-order/src/views/orderView/orderManage/orderManage/FormDiaLog.vue
index 6c06281..e64cb3c 100644
--- a/applications/task-work-order/src/views/orderView/orderManage/orderManage/FormDiaLog.vue
+++ b/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({
diff --git a/applications/task-work-order/src/views/orderView/orderManage/orderManage/index.vue b/applications/task-work-order/src/views/orderView/orderManage/orderManage/index.vue
index 496a025..5545bd7 100644
--- a/applications/task-work-order/src/views/orderView/orderManage/orderManage/index.vue
+++ b/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 })
})
}
--
Gitblit v1.9.3