From fcbd623e384f9a41f8cf35171060a0905a81a9d8 Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Wed, 21 Jan 2026 12:25:16 +0800
Subject: [PATCH] feat: 拒绝验收

---
 /dev/null                                                                                     |  122 ------------------------------
 applications/task-work-order/src/buildConfig/buildConfig/config.default.js                    |    5 
 applications/task-work-order/src/buildConfig/config.js                                        |    4 
 applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/FormDiaLog.vue |   12 ++-
 applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/index.vue      |   25 ++----
 applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/ViewDiaLog.vue |   43 +++++++++-
 6 files changed, 57 insertions(+), 154 deletions(-)

diff --git a/applications/task-work-order/src/buildConfig/buildConfig/config.default.js b/applications/task-work-order/src/buildConfig/buildConfig/config.default.js
index a9378d9..019bb50 100644
--- a/applications/task-work-order/src/buildConfig/buildConfig/config.default.js
+++ b/applications/task-work-order/src/buildConfig/buildConfig/config.default.js
@@ -2,8 +2,7 @@
 
 export default function getBaseConfig () {
 	return {
-		loginTitle: '中图智飞低空智能感知网平台',  //登陆页面标题
-		// envName: 'jiangwu',
+		loginTitle: '任务工单',  //登陆页面标题
 		...defaultLayer
 	}
-}
\ No newline at end of file
+}
diff --git a/applications/task-work-order/src/buildConfig/buildConfig/config.jiangwu.js b/applications/task-work-order/src/buildConfig/buildConfig/config.jiangwu.js
deleted file mode 100644
index b1dc2e5..0000000
--- a/applications/task-work-order/src/buildConfig/buildConfig/config.jiangwu.js
+++ /dev/null
@@ -1,15 +0,0 @@
-import jiangwuLayer from '@/buildConfig/layerConfig/jiangwuLayer'
-
-export default function getBaseConfig () {
-	return {
-		userLoginTitle (key) {
-			return '大吉山钨业无人机安防监测平台'
-		},
-		envName: 'jiangwu',
-		routerHash: true, //使用hash路由
-		loginTitle: '大吉山钨业无人机安防监测平台',
-		hideMenuTopLogo: true, // 是否隐藏菜单顶部logo
-
-		...jiangwuLayer,
-	}
-}
diff --git a/applications/task-work-order/src/buildConfig/config.js b/applications/task-work-order/src/buildConfig/config.js
index 698cc2c..f0cda4c 100644
--- a/applications/task-work-order/src/buildConfig/config.js
+++ b/applications/task-work-order/src/buildConfig/config.js
@@ -1,14 +1,12 @@
 
 // 直接导入所有配置文件
-import jiangwuConfig from '@/buildConfig/buildConfig/config.jiangwu.js'
 import defaultConfig from '@/buildConfig/buildConfig/config.default.js'
 
 // 根据环境变量选择配置
 const env = import.meta.env.VITE_APP_ENV || 'default'
 const configMap = {
-	jiangwu: jiangwuConfig,
 	default: defaultConfig
 }
 
 // 导出配置函数
-export default configMap[env] || configMap.default
\ No newline at end of file
+export default configMap[env] || configMap.default
diff --git a/applications/task-work-order/src/buildConfig/layerConfig/jiangwuLayer.js b/applications/task-work-order/src/buildConfig/layerConfig/jiangwuLayer.js
deleted file mode 100644
index 122a6db..0000000
--- a/applications/task-work-order/src/buildConfig/layerConfig/jiangwuLayer.js
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * @Author       : yuan
- * @Date         : 2025-06-13 09:49:01
- * @LastEditors  : yuan
- * @LastEditTime : 2025-06-13 14:02:59
- * @FilePath     : \src\buildConfig\layerConfig\jiangwuLayer.js
- * @Description  : 
- * Copyright 2025 OBKoro1, All Rights Reserved. 
- * 2025-06-13 09:49:01
- */
-import * as Cesium from 'cesium'
-import AmapMercatorTilingScheme from '@/utils/cesium/AmapMercatorTilingScheme'
-
-
-let TDT_Token = import.meta.env.VITE_APP_TDT_TOKEN
-
-const TDT_IMG_C =
-	'https://{s}.tianditu.gov.cn/img_c/wmts?service=wmts&request=GetTile&version=1.0.0' +
-	'&LAYER=img&tileMatrixSet=c&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}' +
-	'&style=default&format=tiles&tk=' +
-	TDT_Token
-// 天地图注记
-const TDT_ZJ =
-	'https://{s}.tianditu.gov.cn/cia_c/wmts?service=wmts&request=GetTile&version=1.0.0' +
-	'&LAYER=cia&tileMatrixSet=c&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}' +
-	'&style=default&format=tiles&tk=' +
-	TDT_Token
-
-// 天地图矢量底图
-const imageryProvider_stand = new Cesium.UrlTemplateImageryProvider({
-	url: `${import.meta.env.VITE_APP_OFFLINE_MAP_URL}/slLayer/{z}/{y}/{x}.png`, // 本地瓦片路径
-	minimumLevel: 0,  // 最小层级
-	maximumLevel: 17, // 最大层级
-	tileWidth: 256,   // 瓦片宽度(默认256)
-	tileHeight: 256,  // 瓦片高度(默认256)
-})
-// 天地图矢量注记
-const imageryProvider_standZh = new Cesium.UrlTemplateImageryProvider({
-	url: `${import.meta.env.VITE_APP_OFFLINE_MAP_URL}/slBzLayer/{z}/{y}/{x}.png`, // 本地瓦片路径
-	minimumLevel: 0,  // 最小层级
-	maximumLevel: 17, // 最大层级
-	tileWidth: 256,   // 瓦片宽度(默认256)
-	tileHeight: 256,  // 瓦片高度(默认256)
-})
-
-
-// 天地图影像
-const imageryProvider_tdt_img_w = new Cesium.UrlTemplateImageryProvider({
-	url: `${import.meta.env.VITE_APP_OFFLINE_MAP_URL}/yxLayer/{z}/{y}/{x}.png`, // 本地瓦片路径
-	minimumLevel: 0,  // 最小层级
-	maximumLevel: 17, // 最大层级
-	tileWidth: 256,   // 瓦片宽度(默认256)
-	tileHeight: 256,  // 瓦片高度(默认256)
-})
-// 天地图影像注记
-const imageryProvider_tdt_cia_w = new Cesium.UrlTemplateImageryProvider({
-	url: `${import.meta.env.VITE_APP_OFFLINE_MAP_URL}/yxBzLayer/{z}/{y}/{x}.png`, // 本地瓦片路径
-	minimumLevel: 0,  // 最小层级
-	maximumLevel: 17, // 最大层级
-	tileWidth: 256,   // 瓦片宽度(默认256)
-	tileHeight: 256,  // 瓦片高度(默认256)
-})
-
-//高德矢量,自带注记
-const imageryProvider_ammapSL = new Cesium.UrlTemplateImageryProvider({
-	url: 'https://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}',
-	layer: 'tdtVecBasicLayer',
-	style: 'default',
-	format: 'image/png',
-	tileMatrixSetID: 'GoogleMapsCompatible',
-	subdomains: ['0', '1', '2', '3', '4', '5', '6', '7'],
-	maximumLevel: 18,
-	tilingScheme: new AmapMercatorTilingScheme(),
-	credit: 'amap_SL',
-})
-//高德影像,自带注记
-const imageryProvider_ammap = new Cesium.UrlTemplateImageryProvider({
-	url: 'https://webst02.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}',
-	layer: 'tdtVecBasicLayer',
-	style: 'default',
-	format: 'image/png',
-	tileMatrixSetID: 'GoogleMapsCompatible',
-	subdomains: ['0', '1', '2', '3', '4', '5', '6', '7'],
-	maximumLevel: 18,
-	tilingScheme: new AmapMercatorTilingScheme(),
-	credit: 'amap_stand',
-})
-// 高德影像,注记
-const imageryProvider_ammapBz = new Cesium.UrlTemplateImageryProvider({
-	url: 'https://webst02.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scale=1&style=8',
-	tilingScheme: new AmapMercatorTilingScheme(),
-	minimumLevel: 3,
-})
-
-// 天地图矢量底图-蓝色
-const blueImageryProviderVec = new Cesium.UrlTemplateImageryProvider({
-	url: `${import.meta.env.VITE_APP_OFFLINE_MAP_URL}/slLayer/{z}/{y}/{x}.png`, // 本地瓦片路径
-	minimumLevel: 0,  // 最小层级
-	maximumLevel: 17, // 最大层级
-	tileWidth: 256,   // 瓦片宽度(默认256)
-	tileHeight: 256,  // 瓦片高度(默认256)
-})
-// 天地图矢量注记-蓝色
-const blueImageryProviderCva = new Cesium.UrlTemplateImageryProvider({
-	url: `${import.meta.env.VITE_APP_OFFLINE_MAP_URL}/slBzLayer/{z}/{y}/{x}.png`, // 本地瓦片路径
-	minimumLevel: 0,  // 最小层级
-	maximumLevel: 17, // 最大层级
-	tileWidth: 256,   // 瓦片宽度(默认256)
-	tileHeight: 256,  // 瓦片高度(默认256)
-})
-
-export default {
-	imageryProvider_stand,
-	imageryProvider_standZh,
-	imageryProvider_tdt_img_w,
-	imageryProvider_tdt_cia_w,
-	imageryProvider_ammapSL,
-	imageryProvider_ammap,
-	imageryProvider_ammapBz,
-	blueImageryProviderVec,
-	blueImageryProviderCva
-}
\ No newline at end of file
diff --git a/applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/FormDiaLog.vue b/applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/FormDiaLog.vue
index b6d8470..30150ef 100644
--- a/applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/FormDiaLog.vue
+++ b/applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/FormDiaLog.vue
@@ -20,7 +20,7 @@
 						placeholder="请选择"
 						clearable
 						filterable
-						:disabled="dialogReadonly"
+						:disabled="dialogMode !== 'add'"
 						@change="handleWorkOrderChange"
 					>
 						<el-option v-for="item in workOrderList" :key="item.id" :label="item.workOrderName" :value="item.id" />
@@ -153,7 +153,7 @@
 								<el-input class="gd-input" v-model="row.taskDesc" placeholder="请输入" :disabled="dialogReadonly" />
 							</template>
 						</el-table-column>
-						<el-table-column label="操作" width="80" fixed="right" v-if="!dialogReadonly">
+						<el-table-column label="操作" width="80" fixed="right" v-if="dialogMode === 'add'">
 							<template v-slot="{ $index }">
 								<el-button type="primary" :icon="Plus" circle size="small" @click="addTaskRow" />
 								<el-button
@@ -192,7 +192,7 @@
 import { ElMessage } from 'element-plus'
 import { Plus, Delete } from '@element-plus/icons-vue'
 import { getDictLabel } from '@ztzf/utils'
-import { gdPatrolTaskSaveApi, gdFlyerPageApi } from './inspectionRequestApi'
+import { gdPatrolTaskSaveApi, gdFlyerPageApi, gdPatrolTaskAuditApi } from './inspectionRequestApi'
 import { gdWorkOrderPageApi } from '../orderManage/orderManageApi'
 import { gdManageDeviceListApi } from '../orderManage/gdManageDeviceApi'
 
@@ -312,12 +312,15 @@
 	}
 	submitting.value = true
 	try {
+		const preID = taskList.value[0].id
 		const dataList = taskList.value.map(item => ({
 			...item,
 			workOrderId: selectedWorkOrderId.value,
+			id: undefined,
 		}))
 		await gdPatrolTaskSaveApi(dataList)
-		ElMessage.success('新增成功')
+		dialogMode.value === 'add' ? ElMessage.success('新增成功') : ElMessage.success('修改成功')
+		dialogMode.value === 'edit' && await gdPatrolTaskAuditApi({ auditStatus: 7, id: preID })
 		visible.value = false
 		emit('success')
 	} finally {
@@ -327,6 +330,7 @@
 
 // 打开弹框
 async function open({ mode = 'add', row } = {}) {
+	console.log(row,'rowrow')
 	dialogMode.value = mode
 	if (mode === 'add') {
 		selectedWorkOrderId.value = null
diff --git a/applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/ViewDiaLog.vue b/applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/ViewDiaLog.vue
index 356a221..1239f70 100644
--- a/applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/ViewDiaLog.vue
+++ b/applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/ViewDiaLog.vue
@@ -45,6 +45,21 @@
 							<div class="val">{{ formData.taskDesc }}</div>
 						</el-col>
 					</el-row>
+					<template v-if="['6','7','8'].includes(taskStatus)">
+						<div>任务成功({{list.length || 0}}条)</div>
+						<div  style="display: flex">
+							<div v-for="item in list">
+								<el-image
+									v-if="item.resultUrl"
+									:src="item.resultUrl"
+									:preview-src-list="[item.resultUrl]"
+									fit="cover"
+									style="width: 80px; height: 60px"
+									preview-teleported
+								/>
+							</div>
+						</div>
+					</template>
 				</div>
 
 				<!-- 编辑模式 -->
@@ -167,10 +182,11 @@
 			</el-button>
 
 			<template v-if="requester">
+<!--				statusChange(6)-->
 				<el-button color="#F2F3F5" v-if="taskStatus === '1'">拒绝原因</el-button>
 				<el-button color="#F2F3F5" @click="statusChange(3)" v-if="taskStatus === '3'">撤回任务</el-button>
-				<el-button color="#F2F3F5" @click="statusChange(6)" v-if="taskStatus === '6'">拒绝验收</el-button>
-				<el-button color="#F2F3F5" @click="statusChange(7)" v-if="taskStatus === '6'">验收通过</el-button>
+				<el-button color="#F2F3F5" @click="refusalToAccept" v-if="taskStatus === '6'">拒绝验收</el-button>
+				<el-button color="#F2F3F5" @click="statusChange(6)" v-if="taskStatus === '6'">验收通过</el-button>
 			</template>
 			<template v-else>
 				<el-button color="#F2F3F5" @click="statusChange(2)" v-if="taskStatus === '0'">拒绝签收</el-button>
@@ -191,6 +207,7 @@
 import { gdManageDeviceListApi } from '../orderManage/gdManageDeviceApi'
 import { pxToRem } from '@/utils/rem'
 import CommonCesiumMap from '@/components/map-container/common-cesium-map.vue'
+import { gdTaskResultListApi } from '@/views/orderView/orderManage/clueEvents/achievementApi'
 
 // 初始化表单数据
 const initForm = () => ({
@@ -208,7 +225,7 @@
 const mapRef = ref(null)
 const dictObj = inject('dictObj')
 const requester = inject('requester')
-const emit = defineEmits(['success'])
+const emit = defineEmits(['success','refusalAccept'])
 const formRef = ref(null)
 const formData = ref(initForm())
 const visible = defineModel()
@@ -277,6 +294,11 @@
 	})
 }
 
+function refusalToAccept() {
+	emit('refusalAccept',formData.value)
+	visible.value = false
+}
+
 // 获取设备列表
 async function getDeviceList() {
 	const res = await gdManageDeviceListApi()
@@ -298,11 +320,22 @@
 	}
 }
 
+let list = ref([])
+// 获取成果列表
+async function getList() {
+	if (!formData.value?.id) return
+	try {
+		const res = await gdTaskResultListApi({ patrolTaskId: formData.value.id })
+		list.value = res?.data?.data ?? []
+	} finally {
+	}
+}
+
 // 打开弹框
 async function open({ mode = 'view', row } = {}) {
 	dialogMode.value = mode
-	formData.value = { ...initForm(), ...row }
-	console.log(formData.value)
+	formData.value = { ...initForm(), ...row };
+	['6','7','8'].includes(row.taskStatus) && getWorkOrderList()
 	initMap()
 }
 
diff --git a/applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/index.vue b/applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/index.vue
index 3f138d5..ee5d350 100644
--- a/applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/index.vue
+++ b/applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/index.vue
@@ -117,7 +117,7 @@
 		</div>
 
 		<FormDiaLog ref="dialogRef" @success="getList" v-if="dialogVisible" v-model="dialogVisible" />
-		<ViewDiaLog ref="viewDiaLogRef" @success="getList" v-if="viewDiaLogVisible" v-model="viewDiaLogVisible" />
+		<ViewDiaLog ref="viewDiaLogRef" @success="getList" @refusalAccept="refusalAccept" v-if="viewDiaLogVisible" v-model="viewDiaLogVisible" />
 	</basic-container>
 </template>
 <script setup>
@@ -207,22 +207,6 @@
 	})
 }
 
-// 删除
-async function handleDelete(row) {
-	const tips = row ? '该条' : '选中的项'
-	await ElMessageBox.confirm(`确认删除${tips}吗?`, '提示', {
-		type: 'warning',
-		customClass: 'gd-confirm-custom',
-		confirmButtonClass: 'gd-confirm-button',
-		cancelButtonClass: 'gd-confirm-cancel-button',
-	})
-	const ids = row ? row.id : selectedIds.value.join(',')
-	await gdPatrolTaskRemoveApi({ ids })
-	ElMessage.success('删除成功')
-	selectedIds.value = []
-	getList()
-}
-
 // 勾选值设置
 function handleSelectionChange(rows) {
 	selectedIds.value = rows.map(item => item.id)
@@ -235,6 +219,13 @@
 	})
 }
 
+function refusalAccept(row) {
+	dialogVisible.value = true
+	nextTick(() => {
+		dialogRef.value?.open({ mode:'edit', row })
+	})
+}
+
 onMounted(() => {
 	getList()
 	getDictList()

--
Gitblit v1.9.3