From bcfa7fec8c6d2d222989e34f01b5fd6300befaf8 Mon Sep 17 00:00:00 2001
From: 张含笑 <zhx18749296735@163.com>
Date: Fri, 23 Jan 2026 15:26:17 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 applications/drone-command/src/views/areaManage/precinctInfo/index.vue                        |    8 
 applications/task-work-order/src/styles/common.scss                                           |    1 
 applications/drone-command/src/views/system/user/index.vue                                    |    8 
 applications/drone-command/src/lang/zh.js                                                     |    2 
 applications/drone-command/src/views/detectionCountermeasure/taskSchedule/index.vue           |   10 
 applications/mobile-web-view/src/buildConfig/baseConfig/config.default.js                     |   21 -
 applications/task-work-order/src/lang/zh.js                                                   |    2 
 applications/mobile-web-view/src/permission.js                                                |    2 
 applications/drone-command/src/buildConfig/config.js                                          |    5 
 applications/drone-command/src/views/detectionCountermeasure/taskSchedule/FormDiaLog.vue      |   11 +
 uniapps/work-app/README.md                                                                    |   54 -----
 applications/drone-command/src/views/permissionManage/permissionDept/FormDiaLog.vue           |   12 +
 applications/drone-command/src/views/permissionManage/permissionRole/FormDiaLog.vue           |   13 +
 applications/drone-command/src/views/basicManage/maintainRecord/index.vue                     |    8 
 applications/drone-command/src/views/system/user/FormDiaLog.vue                               |   13 +
 applications/task-work-order/src/views/orderView/orderManage/orderManage/index.vue            |    2 
 applications/drone-command/src/views/permissionManage/permissionUser/FormDiaLog.vue           |   13 +
 applications/drone-command/src/views/recordManage/alarmRecords/index.vue                      |    8 
 applications/drone-command/src/views/basicManage/deviceStock/DeviceScrapDiaLog.vue            |    8 
 applications/task-work-order/src/views/orderView/orderManage/orderManage/FormDiaLog.vue       |   23 -
 applications/drone-command/src/views/recordManage/historyTracks/index.vue                     |    8 
 applications/drone-command/src/permission.js                                                  |    2 
 applications/mobile-web-view/src/page/GatewayPage/GatewayPage.vue                             |    2 
 applications/drone-command/src/buildConfig/buildConfig/config.default.js                      |    5 
 applications/drone-command/src/views/basicManage/deviceStock/FormDiaLog.vue                   |    9 
 applications/task-work-order/index.html                                                       |    2 
 applications/task-work-order/src/router/views/index.js                                        |    1 
 applications/mobile-web-view/src/buildConfig/config.js                                        |   17 -
 applications/drone-command/src/views/areaManage/precinctInfo/FormDiaLog.vue                   |    8 
 applications/drone-command/src/views/permissionManage/permissionRole/RolePermissionDialog.vue |    8 
 applications/drone-command/src/views/areaManage/sceneConfig/FormDiaLog.vue                    |    8 
 applications/drone-command/src/views/basicManage/maintainRecord/MaintenanceDiaLog.vue         |    9 
 applications/task-work-order/src/lang/en.js                                                   |    2 
 applications/drone-command/src/views/tickets/ticket-copy.vue                                  |   10 
 applications/drone-command/src/views/areaManage/sceneConfig/index.vue                         |    8 
 applications/drone-command/src/views/permissionManage/permissionRole/index.vue                |    8 
 applications/mobile-web-view/src/utils/http/config.js                                         |    6 
 applications/drone-command/src/views/areaManage/defenseZone/FormDiaLog.vue                    |    8 
 applications/drone-command/src/views/permissionManage/permissionDept/index.vue                |    8 
 applications/drone-command/src/views/areaManage/partition/FormDiaLog.vue                      |    9 
 applications/drone-command/src/views/basicManage/maintainRecord/FormDiaLog.vue                |    9 
 applications/drone-command/src/lang/en.js                                                     |    2 
 uniapps/work-wx/README.md                                                                     |   54 -----
 applications/task-work-order/src/config/website.js                                            |    1 
 applications/drone-command/src/views/areaManage/defenseZone/index.vue                         |    8 
 applications/drone-command/src/views/basicManage/deviceStock/DeviceTrackDiaLog.vue            |    8 
 applications/drone-command/src/views/permissionManage/permissionUser/index.vue                |   18 +
 applications/task-work-order/src/store/modules/tags.js                                        |    1 
 applications/task-work-order/src/permission.js                                                |   18 
 applications/drone-command/index.html                                                         |    2 
 /dev/null                                                                                     |   35 ---
 applications/task-work-order/src/assets/images/layoutBg.png                                   |    0 
 applications/drone-command/src/views/areaManage/partition/index.vue                           |    8 
 applications/task-work-order/src/styles/tags.scss                                             |    8 
 applications/mobile-web-view/src/appPages/work/workDetail/mapWork/index.vue                   |   34 ---
 applications/mobile-web-view/package.json                                                     |    2 
 56 files changed, 298 insertions(+), 272 deletions(-)

diff --git a/applications/drone-command/LICENSE b/applications/drone-command/LICENSE
deleted file mode 100644
index aaac4ce..0000000
--- a/applications/drone-command/LICENSE
+++ /dev/null
@@ -1,35 +0,0 @@
-BladeX商业授权许可协议
-
-一、 知识产权:
-BladeX系列产品知识产权归上海布雷德科技有限公司独立所有
-
-二、 许可:
-1. 在您完全接受并遵守本协议的基础上,本协议授予您使用BladeX的某些权利和非独占性许可。
-2. 本协议中,将本产品使用用途分为"专业版用途"和"企业版用途"。
-3. "专业版用途"定义:指个人在非团体机构中出于任何合法目的使用本产品(任何目的包括商业目的或非盈利目的)。
-4. "企业版用途"定义:指拥有合法执照的团体机构(例如公司企业、政府、学校、军队、医院、社会团体等各类组织)(不包含集团,若集团使用则需为各个子公司分别购买企业授权)出于任何合法目的使用本产品(任何目的包括商业目的或非盈利目的)。
-5. 若您不能以拥有合法执照的团体机构名义购买企业版,则视为个人名义购买,仅可行使专业版用途。在遵守此协议的前提下,后续有一次机会将企业版授权免费绑定至法人为购买人的新公司,并从专业版用途转为企业版用途。
-
-三、 约束和限制:
-1. 本产品只能由您为本协议许可的目的而使用,您不得透露给任何第三方;
-2. 从本产品取得的任何信息、软件、产品或服务,您不得对其进行修改、改编或基于以上内容创建同种类别的衍生产品并售卖。
-3. 您不得对本产品以及与之关联的商业授权进行发布、出租、销售、分销、抵押、转让、许可或发放子许可证。
-4. 本产品商业授权版可能包含一些独立功能或特性,这些功能只有在您购买商业授权后才可以使用。在未取得商业授权的情况下,您不得使用、尝试使用或复制这些授权版独立功能。
-5. 若您的客户要求以源码方式交付软件,需缴纳企业版授权费用,否则本产品部分不得提供源码。
-
-四、 不得用于非法或禁止的用途:
-您在使用本产品或服务时,不得将本产品产品或服务用于任何非法用途或本协议条款、条件和声明禁止的用途。
-
-五、 免责说明:
-1. 本产品按"现状"授予许可,您须自行承担使用本产品的风险。BladeX团队不对此提供任何明示、暗示或任何其它形式的担保和表示。在任何情况下,对于因使用或无法使用本软件而导致的任何损失(包括但不仅限于商业利润损失、业务中断或业务信息丢失),BladeX团队无需向您或任何第三方负责,即使BladeX团队已被告知可能会造成此类损失。在任何情况下, BladeX团队均不就任何直接的、间接的、附带的、后果性的、特别的、惩戒性的和处罚性的损害赔偿承担任何责任,无论该主张是基于保证、合同、侵权(包括疏忽)或是基于其他原因作出。
-2. 本产品可能内置有第三方服务,您应自行评估使用这些第三方服务的风险,由使用此类第三方服务而产生的纠纷,全部责任由您自行承担。
-3. BladeX团队不对使用本产品构建的网站中任何信息内容以及导致的任何版权纠纷、法律争议和后果承担任何责任,全部责任由您自行承担。
-4. BladeX团队可能会经常提供产品更新或升级,但BladeX团队没有为根据本协议许可的产品提供维护或更新的责任。
-5. BladeX团队可能会按照官方制定的答疑规则为您进行答疑,但BladeX团队没有为根据本协议许可的产品提供技术支持的义务或责任。
-
-六、 权利和所有权的保留:
-BladeX团队保留所有未在本协议中明确授予您的所有权利。BladeX团队保留随时更新本协议的权利,并只需公示于对应产品项目的LICENSE文件,无需征得您的事先同意且无需另行通知,更新后的内容应于公示即时生效。您可以随时访问产品地址并查阅最新版许可条款,在更新生效后您继续使用本产品则被视作您已接受了新的条款。
-
-七、 协议终止
-1. 您一旦开始复制、下载、安装或者使用本产品,即被视为完全理解并接受本协议的各项条款,在享有上述条款授予的许可权力同时,也受到相关的约束和限制,本协议许可范围以外的行为,将直接违反本协议并构成侵权。
-2. 一旦您违反本协议的条款,BladeX团队随时可能终止本协议、收回许可和授权,并要求您承担相应法律和经济责任。
diff --git a/applications/drone-command/index.html b/applications/drone-command/index.html
index ce43138..c86c6d6 100644
--- a/applications/drone-command/index.html
+++ b/applications/drone-command/index.html
@@ -29,7 +29,7 @@
   <script type="text/javascript"
     src='https://webapi.amap.com/maps?v=2.0&key=eb0654440644f710110547d2132b2fbe&plugin=AMap.PlaceSearch,AMap.Geocoder'></script>
   <script src="https://webapi.amap.com/ui/1.1/main.js?v=1.0.11"></script>
-  <title>中图智绘低空无人机监测网平台</title>
+  <title>反制平台</title>
 </head>
 
 <body class="theme-white">
diff --git a/applications/drone-command/src/buildConfig/buildConfig/config.default.js b/applications/drone-command/src/buildConfig/buildConfig/config.default.js
index a9378d9..0fbdedb 100644
--- a/applications/drone-command/src/buildConfig/buildConfig/config.default.js
+++ b/applications/drone-command/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/drone-command/src/buildConfig/buildConfig/config.jiangwu.js b/applications/drone-command/src/buildConfig/buildConfig/config.jiangwu.js
deleted file mode 100644
index b1dc2e5..0000000
--- a/applications/drone-command/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/drone-command/src/buildConfig/config.js b/applications/drone-command/src/buildConfig/config.js
index 698cc2c..d4bc1e8 100644
--- a/applications/drone-command/src/buildConfig/config.js
+++ b/applications/drone-command/src/buildConfig/config.js
@@ -1,14 +1,11 @@
 
-// 直接导入所有配置文件
-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/drone-command/src/buildConfig/layerConfig/jiangwuLayer.js b/applications/drone-command/src/buildConfig/layerConfig/jiangwuLayer.js
deleted file mode 100644
index 122a6db..0000000
--- a/applications/drone-command/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/drone-command/src/lang/en.js b/applications/drone-command/src/lang/en.js
index bd07056..12ff976 100644
--- a/applications/drone-command/src/lang/en.js
+++ b/applications/drone-command/src/lang/en.js
@@ -1,5 +1,5 @@
 export default {
-  title: '中图智绘低空无人机监测网平台',
+  title: '反制平台',
   logoutTip: 'Exit the system, do you want to continue?',
   submitText: 'submit',
   cancelText: 'cancel',
diff --git a/applications/drone-command/src/lang/zh.js b/applications/drone-command/src/lang/zh.js
index bd3f449..52aa717 100644
--- a/applications/drone-command/src/lang/zh.js
+++ b/applications/drone-command/src/lang/zh.js
@@ -1,5 +1,5 @@
 export default {
-  title: '中图智绘低空无人机监测网平台',
+  title: '反制平台',
   logoutTip: '退出系统, 是否继续?',
   submitText: '确定',
   cancelText: '取消',
diff --git a/applications/drone-command/src/permission.js b/applications/drone-command/src/permission.js
index e0b893b..a0634b2 100644
--- a/applications/drone-command/src/permission.js
+++ b/applications/drone-command/src/permission.js
@@ -136,7 +136,7 @@
 	NProgress.done()
 	const isLoginPage = to.path === '/login'
 	// 根据是否登录页设置标题
-	const pageTitle = isLoginPage ? '中图智飞低空感知网平台' : '综合管理平台'
+	const pageTitle = isLoginPage ? '反制平台' : '反制平台'
 	document.title = pageTitle
 	store.commit('SET_IS_SEARCH', false)
 })
diff --git a/applications/drone-command/src/views/areaManage/defenseZone/FormDiaLog.vue b/applications/drone-command/src/views/areaManage/defenseZone/FormDiaLog.vue
index c02b6d1..763d8d7 100644
--- a/applications/drone-command/src/views/areaManage/defenseZone/FormDiaLog.vue
+++ b/applications/drone-command/src/views/areaManage/defenseZone/FormDiaLog.vue
@@ -109,6 +109,8 @@
 import { cartesian3Convert } from '@/utils/cesium/mapUtil'
 import * as turf from '@turf/turf'
 import * as Cesium from 'cesium'
+import { saveOperationLog } from '@ztzf/apis'
+import { useRoute } from 'vue-router'
 
 // 初始化表单
 const initForm = () => ({
@@ -132,6 +134,7 @@
 const selectedSceneRows = ref([]) // 选中场景
 const dictObj = inject('dictObj')
 const mapRef = ref(null)
+const route = useRoute()
 let viewer
 let drawPolygonExample
 let pointList = []
@@ -162,6 +165,11 @@
 		const str = [...pointList, pointList[0]].map(item => `${item.longitude} ${item.latitude}`).join(',')
 		formData.value.geom = `POLYGON((${str}))`
 		await fwDefenseZoneSubmitApi(formData.value)
+		saveOperationLog({
+			requestUri: route.path,
+			title: `${route.name || '防区管理'}-${dialogMode.value === 'add' ? '新增' : '编辑'}`,
+			type: 1,
+		})
 		ElMessage.success(dialogMode.value === 'add' ? '新增成功' : '更新成功')
 		visible.value = false
 		emit('success')
diff --git a/applications/drone-command/src/views/areaManage/defenseZone/index.vue b/applications/drone-command/src/views/areaManage/defenseZone/index.vue
index 57791e1..242cb96 100644
--- a/applications/drone-command/src/views/areaManage/defenseZone/index.vue
+++ b/applications/drone-command/src/views/areaManage/defenseZone/index.vue
@@ -55,6 +55,8 @@
 import { fwDefenseZonePageApi, fwDefenseZoneRemoveApi } from './defenseZoneApi'
 import FormDiaLog from './FormDiaLog.vue'
 import { getDictionaryByCode } from '@/api/system/dictbiz'
+import { saveOperationLog } from '@ztzf/apis'
+import { useRoute } from 'vue-router'
 
 // 初始化查询参数
 const initSearchParams = () => ({
@@ -72,6 +74,7 @@
 const queryParamsRef = ref(null) // 查询表单实例
 const dialogRef = ref(null) // 弹框实例
 const dialogVisible = ref(false)
+const route = useRoute()
 
 // 获取列表
 async function getList () {
@@ -109,6 +112,11 @@
 	})
 	const ids = row ? row.id : selectedIds.value.join(',')
 	await fwDefenseZoneRemoveApi({ ids })
+	saveOperationLog({
+		requestUri: route.path,
+		title: `${route.name || '防区管理'}-删除`,
+		type: 1,
+	})
 	ElMessage.success('删除成功')
 	selectedIds.value = []
 	getList()
diff --git a/applications/drone-command/src/views/areaManage/partition/FormDiaLog.vue b/applications/drone-command/src/views/areaManage/partition/FormDiaLog.vue
index 44c149a..00e1113 100644
--- a/applications/drone-command/src/views/areaManage/partition/FormDiaLog.vue
+++ b/applications/drone-command/src/views/areaManage/partition/FormDiaLog.vue
@@ -171,6 +171,8 @@
 import { computed, inject, nextTick, onMounted, ref, watch } from 'vue'
 import { ElMessage } from 'element-plus'
 import { fwAreaDivideDetailApi, fwAreaDivideSubmitApi } from './partitionApi'
+import { saveOperationLog } from '@ztzf/apis'
+import { useRoute } from 'vue-router'
 import { fieldRules, geomAnalysis, getDictLabel } from '@ztzf/utils'
 import CommonCesiumMap from '@/components/map-container/common-cesium-map.vue'
 import { DrawPolygon } from '@/utils/cesium/DrawPolygon'
@@ -202,6 +204,7 @@
 const dialogMode = ref('add') // 弹框模式
 const submitting = ref(false) // 提交中
 const readonly = computed(() => dialogMode.value === 'view')
+const route = useRoute()
 const titleEnum = ref({ edit: '编辑区域', view: '查看区域', add: '新增区域' })
 const flyDateRange = ref([]) // 飞行时间
 const deviceTableRef = ref(null)
@@ -277,6 +280,12 @@
 		let str = [...pointList, pointList[0]].map(item => `${item.longitude} ${item.latitude}`).join(',')
 		formData.value.geom = `POLYGON((${str}))`
 		await fwAreaDivideSubmitApi(formData.value)
+		const actionText = dialogMode.value === 'add' ? '新增' : '编辑'
+		saveOperationLog({
+			requestUri: route.path,
+			title: `${route.name || '区域划分'}-${actionText}`,
+			type: 1,
+		})
 		ElMessage.success(dialogMode.value === 'add' ? '新增成功' : '更新成功')
 		visible.value = false
 		emit('success')
diff --git a/applications/drone-command/src/views/areaManage/partition/index.vue b/applications/drone-command/src/views/areaManage/partition/index.vue
index b7427db..c066bba 100644
--- a/applications/drone-command/src/views/areaManage/partition/index.vue
+++ b/applications/drone-command/src/views/areaManage/partition/index.vue
@@ -83,6 +83,8 @@
 import { fwAreaDividePageApi, fwAreaDivideRemoveApi } from './partitionApi'
 import FormDiaLog from './FormDiaLog.vue'
 import { getDictionaryByCode } from '@/api/system/dictbiz'
+import { saveOperationLog } from '@ztzf/apis'
+import { useRoute } from 'vue-router'
 import { getDictLabel } from '@ztzf/utils'
 
 const initSearchParams = () => ({
@@ -100,6 +102,7 @@
 const queryParamsRef = ref(null) // 查询表单实例
 const dialogRef = ref(null) // 弹框实例
 const dialogVisible = ref(false)
+const route = useRoute()
 
 // 获取列表
 async function getList () {
@@ -137,6 +140,11 @@
 	})
 	const ids = row ? row.id : selectedIds.value.join(',')
 	await fwAreaDivideRemoveApi({ ids })
+	saveOperationLog({
+		requestUri: route.path,
+		title: `${route.name || '区域划分'}-删除`,
+		type: 1,
+	})
 	ElMessage.success('删除成功')
 	selectedIds.value = []
 	getList()
diff --git a/applications/drone-command/src/views/areaManage/precinctInfo/FormDiaLog.vue b/applications/drone-command/src/views/areaManage/precinctInfo/FormDiaLog.vue
index cd6db48..de089a8 100644
--- a/applications/drone-command/src/views/areaManage/precinctInfo/FormDiaLog.vue
+++ b/applications/drone-command/src/views/areaManage/precinctInfo/FormDiaLog.vue
@@ -91,6 +91,8 @@
 import CommonCesiumMap from '@/components/map-container/common-cesium-map.vue'
 import * as Cesium from 'cesium'
 import axios from 'axios'
+import { saveOperationLog } from '@ztzf/apis'
+import { useRoute } from 'vue-router'
 
 const initForm = () => ({
 	address: '', // 位置
@@ -112,6 +114,7 @@
 const titleEnum = ref({ edit: '编辑', view: '查看', add: '新增' })
 const tempLocation = ref({ longitude: null, latitude: null })
 const mapRef = ref(null)
+const route = useRoute()
 
 const rules = {
 	address: fieldRules(true, 50),
@@ -132,6 +135,11 @@
 	submitting.value = true
 	try {
 		await fwPoliceStationSubmitApi(formData.value)
+		saveOperationLog({
+			requestUri: route.path,
+			title: `${route.name || '派出所管理'}-${dialogMode.value === 'add' ? '新增' : '编辑'}`,
+			type: 1,
+		})
 		ElMessage.success(dialogMode.value === 'add' ? '新增成功' : '更新成功')
 		visible.value = false
 		emit('success')
diff --git a/applications/drone-command/src/views/areaManage/precinctInfo/index.vue b/applications/drone-command/src/views/areaManage/precinctInfo/index.vue
index ba31ec4..439956a 100644
--- a/applications/drone-command/src/views/areaManage/precinctInfo/index.vue
+++ b/applications/drone-command/src/views/areaManage/precinctInfo/index.vue
@@ -54,6 +54,8 @@
 import { ElMessage, ElMessageBox } from 'element-plus'
 import { fwPoliceStationPageApi, fwPoliceStationRemoveApi } from './precinctInfoApi'
 import FormDiaLog from './FormDiaLog.vue'
+import { saveOperationLog } from '@ztzf/apis'
+import { useRoute } from 'vue-router'
 
 const initSearchParams = () => ({
 	stationName: '', // 名称
@@ -68,6 +70,7 @@
 const queryParamsRef = ref(null) // 查询表单实例
 const dialogRef = ref(null) // 弹框实例
 const dialogVisible = ref(false)
+const route = useRoute()
 
 // 获取列表
 async function getList () {
@@ -105,6 +108,11 @@
 	})
 	const ids = row ? row.id : selectedIds.value.join(',')
 	await fwPoliceStationRemoveApi({ ids })
+	saveOperationLog({
+		requestUri: route.path,
+		title: `${route.name || '派出所管理'}-删除`,
+		type: 1,
+	})
 	ElMessage.success('删除成功')
 	selectedIds.value = []
 	getList()
diff --git a/applications/drone-command/src/views/areaManage/sceneConfig/FormDiaLog.vue b/applications/drone-command/src/views/areaManage/sceneConfig/FormDiaLog.vue
index e185a0c..b6558c9 100644
--- a/applications/drone-command/src/views/areaManage/sceneConfig/FormDiaLog.vue
+++ b/applications/drone-command/src/views/areaManage/sceneConfig/FormDiaLog.vue
@@ -152,6 +152,8 @@
 import { fwAreaDivideDetailApi, fwAreaDivideListApi } from '../partition/partitionApi'
 import { DrawPolygon } from '@/utils/cesium/DrawPolygon'
 import commandPost from '@/assets/images/dataCockpit/legend/command-post.png'
+import { saveOperationLog } from '@ztzf/apis'
+import { useRoute } from 'vue-router'
 
 const initForm = () => ({
 	sceneName: '', // 场景名称
@@ -180,6 +182,7 @@
 const selectedAreaRows = ref([]) //选中列表
 const dictObj = inject('dictObj')
 const mapRef = ref(null)
+const route = useRoute()
 let viewer
 let redPointEntity
 let leftClickBound = false
@@ -210,6 +213,11 @@
 		formData.value.areaCount = ids.length
 		formData.value.defenseArea = calcDefenseArea(selectedAreaRows.value)
 		await fwDefenseSceneSubmitApi(formData.value)
+		saveOperationLog({
+			requestUri: route.path,
+			title: `${route.name || '场景配置管理'}-${dialogMode.value === 'add' ? '新增' : '编辑'}`,
+			type: 1,
+		})
 		ElMessage.success(dialogMode.value === 'add' ? '新增成功' : '更新成功')
 		visible.value = false
 		emit('success')
diff --git a/applications/drone-command/src/views/areaManage/sceneConfig/index.vue b/applications/drone-command/src/views/areaManage/sceneConfig/index.vue
index e0b2919..817b481 100644
--- a/applications/drone-command/src/views/areaManage/sceneConfig/index.vue
+++ b/applications/drone-command/src/views/areaManage/sceneConfig/index.vue
@@ -96,6 +96,8 @@
 import FormDiaLog from './FormDiaLog.vue'
 import { getDictionaryByCode } from '@/api/system/dictbiz'
 import { getDictLabel } from '@ztzf/utils'
+import { saveOperationLog } from '@ztzf/apis'
+import { useRoute } from 'vue-router'
 
 const initSearchParams = () => ({
 	sceneName: '', // 场景名称
@@ -112,6 +114,7 @@
 const queryParamsRef = ref(null) // 查询表单实例
 const dialogRef = ref(null) // 弹框实例
 const dialogVisible = ref(false)
+const route = useRoute()
 
 // 获取列表
 async function getList() {
@@ -149,6 +152,11 @@
 	})
 	const ids = row ? row.id : selectedIds.value.join(',')
 	await fwDefenseSceneRemoveApi({ ids })
+	saveOperationLog({
+		requestUri: route.path,
+		title: `${route.name || '场景配置管理'}-删除`,
+		type: 1,
+	})
 	ElMessage.success('删除成功')
 	selectedIds.value = []
 	getList()
diff --git a/applications/drone-command/src/views/basicManage/deviceStock/DeviceScrapDiaLog.vue b/applications/drone-command/src/views/basicManage/deviceStock/DeviceScrapDiaLog.vue
index 69323a6..38e194f 100644
--- a/applications/drone-command/src/views/basicManage/deviceStock/DeviceScrapDiaLog.vue
+++ b/applications/drone-command/src/views/basicManage/deviceStock/DeviceScrapDiaLog.vue
@@ -37,6 +37,8 @@
 import { fieldRules } from '@ztzf/utils'
 import { fwDeviceScrapSaveApi } from '@/views/basicManage/deviceStock/fwDeviceScrapApi'
 import dayjs from 'dayjs'
+import { saveOperationLog } from '@ztzf/apis'
+import { useRoute } from 'vue-router'
 
 const initForm = () => ({
 	deviceId: '', // 设备ID
@@ -50,6 +52,7 @@
 const visible = ref(false) // 弹框显隐
 const dialogMode = ref('add') // 弹框模式
 const submitting = ref(false)
+const route = useRoute()
 const dialogReadonly = computed(() => dialogMode.value === 'view')
 const dialogTitle = computed(() => {
 	if (dialogMode.value === 'edit') {
@@ -79,6 +82,11 @@
 	try {
 		formData.value.scrapTime = dayjs().format('YYYY-MM-DD HH:mm:ss')
 		await fwDeviceScrapSaveApi(formData.value)
+		saveOperationLog({
+			requestUri: route.path,
+			title: `${route.name || '设备出入库'}-报废`,
+			type: 1
+		})
 		ElMessage.success('报废成功')
 		visible.value = false
 		emit('success')
diff --git a/applications/drone-command/src/views/basicManage/deviceStock/DeviceTrackDiaLog.vue b/applications/drone-command/src/views/basicManage/deviceStock/DeviceTrackDiaLog.vue
index 4e05934..dac459c 100644
--- a/applications/drone-command/src/views/basicManage/deviceStock/DeviceTrackDiaLog.vue
+++ b/applications/drone-command/src/views/basicManage/deviceStock/DeviceTrackDiaLog.vue
@@ -69,6 +69,8 @@
 import { getLazyTree } from '@/api/base/region'
 import { fieldRules } from '@ztzf/utils'
 import { fwDeviceTrackSubmitApi } from '@/views/basicManage/deviceStock/fwDeviceTrackApi'
+import { saveOperationLog } from '@ztzf/apis'
+import { useRoute } from 'vue-router'
 
 const initForm = () => ({
 	charger: '', // 负责人
@@ -83,6 +85,7 @@
 const visible = ref(false) // 弹框显隐
 const dialogMode = ref('add') // 弹框模式
 const submitting = ref(false)
+const route = useRoute()
 const dialogReadonly = computed(() => dialogMode.value === 'view')
 const dialogTitle = computed(() => {
 	if (dialogMode.value === 'edit') {
@@ -139,6 +142,11 @@
 			outTarget: selected?.label ?? formData.value.outTarget,
 		}
 		await fwDeviceTrackSubmitApi(payload)
+		saveOperationLog({
+			requestUri: route.path,
+			title: `${route.name || '设备出入库'}-出库`,
+			type: 1
+		})
 		ElMessage.success('出库成功')
 		visible.value = false
 		emit('success')
diff --git a/applications/drone-command/src/views/basicManage/deviceStock/FormDiaLog.vue b/applications/drone-command/src/views/basicManage/deviceStock/FormDiaLog.vue
index e91ecf3..c115e2e 100644
--- a/applications/drone-command/src/views/basicManage/deviceStock/FormDiaLog.vue
+++ b/applications/drone-command/src/views/basicManage/deviceStock/FormDiaLog.vue
@@ -178,6 +178,8 @@
 import { getUserListApi } from '@/api/system/user'
 import { fieldRules, getDictLabel } from '@ztzf/utils'
 import { fwDeviceTrackPageApi } from '@/views/basicManage/deviceStock/fwDeviceTrackApi'
+import { saveOperationLog } from '@ztzf/apis'
+import { useRoute } from 'vue-router'
 
 const initForm = () => ({
 	belongDept: '', // 所属部门
@@ -207,6 +209,7 @@
 const dictObj = inject('dictObj')
 const deptTree = inject('deptTree')
 const emit = defineEmits(['success'])
+const route = useRoute()
 const formRef = ref(null) // 表单实例
 const formData = ref(initForm()) // 表单数据
 const visible = ref(false) // 弹框显隐
@@ -264,6 +267,12 @@
 	submitting.value = true
 	try {
 		await fwDeviceSubmitApi(formData.value)
+		const actionText = dialogMode.value === 'add' ? '建档' : '编辑'
+		saveOperationLog({
+			requestUri: route.path,
+			title: `${route.name || '设备出入库'}-${actionText}`,
+			type: 1
+		})
 		ElMessage.success(dialogMode.value === 'add' ? '新增成功' : '更新成功')
 		visible.value = false
 		emit('success')
diff --git a/applications/drone-command/src/views/basicManage/maintainRecord/FormDiaLog.vue b/applications/drone-command/src/views/basicManage/maintainRecord/FormDiaLog.vue
index 8f0234d..e9ffb94 100644
--- a/applications/drone-command/src/views/basicManage/maintainRecord/FormDiaLog.vue
+++ b/applications/drone-command/src/views/basicManage/maintainRecord/FormDiaLog.vue
@@ -128,6 +128,8 @@
 import { ElMessage } from 'element-plus'
 import { fieldRules, getDictLabel } from '@ztzf/utils'
 import { fwDeviceMaintainRecordPageApi } from '@/views/basicManage/maintainRecord/fwDeviceMaintainRecord'
+import { saveOperationLog } from '@ztzf/apis'
+import { useRoute } from 'vue-router'
 import {
 	fwDeviceMaintainPlanDetailApi,
 	fwDeviceMaintainPlanSubmitApi,
@@ -153,6 +155,7 @@
 const deviceList = ref([]) // 设备列表
 const getPlanCycleLabel = inject('getPlanCycleLabel')
 const dictObj = inject('dictObj')
+const route = useRoute()
 const dialogReadonly = computed(() => dialogMode.value === 'view')
 const titleEnum = ref({ edit: '编辑', view: '查看', add: '维护计划' })
 
@@ -197,6 +200,12 @@
 			)],
 		}
 		await fwDeviceMaintainPlanSubmitApi(payload)
+		const actionText = dialogMode.value === 'add' ? '维护计划-新增' : '维护计划-编辑'
+		saveOperationLog({
+			requestUri: route.path,
+			title: `${route.name || '维护记录管理'}-${actionText}`,
+			type: 1
+		})
 		ElMessage.success(dialogMode.value === 'add' ? '新增成功' : '更新成功')
 		visible.value = false
 		emit('success')
diff --git a/applications/drone-command/src/views/basicManage/maintainRecord/MaintenanceDiaLog.vue b/applications/drone-command/src/views/basicManage/maintainRecord/MaintenanceDiaLog.vue
index d54c885..db0e3fd 100644
--- a/applications/drone-command/src/views/basicManage/maintainRecord/MaintenanceDiaLog.vue
+++ b/applications/drone-command/src/views/basicManage/maintainRecord/MaintenanceDiaLog.vue
@@ -78,6 +78,8 @@
 import { fieldRules } from '@ztzf/utils'
 import { fwDeviceMaintainRecordSubmitApi } from '@/views/basicManage/maintainRecord/fwDeviceMaintainRecord'
 import { fwDeviceMaintainPlanDetailApi } from '@/views/basicManage/maintainRecord/maintainRecordApi'
+import { saveOperationLog } from '@ztzf/apis'
+import { useRoute } from 'vue-router'
 
 const initForm = () => ({
 	deviceId: '',
@@ -100,6 +102,7 @@
 const dialogMode = ref('add') // 弹框模式
 const submitting = ref(false) // 提交中
 const deviceList = ref([]) // 设备列表
+const route = useRoute()
 
 const dialogReadonly = computed(() => dialogMode.value === 'view')
 const titleEnum = ref({ edit: '维护', view: '查看', add: '维护计划' })
@@ -131,6 +134,12 @@
 	try {
 		formData.value.maintainTime = dayjs().format('YYYY-MM-DD HH:mm:ss')
 		await fwDeviceMaintainRecordSubmitApi(formData.value)
+		const actionText = dialogMode.value === 'add' ? '维护-新增' : '维护-编辑'
+		saveOperationLog({
+			requestUri: route.path,
+			title: `${route.name || '维护记录管理'}-${actionText}`,
+			type: 1
+		})
 		ElMessage.success(dialogMode.value === 'add' ? '新增成功' : '更新成功')
 		visible.value = false
 		emit('success')
diff --git a/applications/drone-command/src/views/basicManage/maintainRecord/index.vue b/applications/drone-command/src/views/basicManage/maintainRecord/index.vue
index 2707c9e..2d9c4eb 100644
--- a/applications/drone-command/src/views/basicManage/maintainRecord/index.vue
+++ b/applications/drone-command/src/views/basicManage/maintainRecord/index.vue
@@ -85,6 +85,8 @@
 import { getDictLabel } from '@ztzf/utils'
 import FormDiaLog from './FormDiaLog.vue'
 import MaintenanceDiaLog from '@/views/basicManage/maintainRecord/MaintenanceDiaLog.vue'
+import { saveOperationLog } from '@ztzf/apis'
+import { useRoute } from 'vue-router'
 import {
 	fwDeviceMaintainPlanPageApi,
 	fwDeviceMaintainPlanRemoveApi,
@@ -110,6 +112,7 @@
 	deviceAtt: [], // 设备属性
 })
 provide('dictObj', dictObj)
+const route = useRoute()
 const deptTree = ref([]) // 部门树
 const treeProps = {
 	label: 'name',
@@ -168,6 +171,11 @@
 	})
 	const ids = row ? row.id : selectedIds.value.join(',')
 	await fwDeviceMaintainPlanRemoveApi({ ids })
+	saveOperationLog({
+		requestUri: route.path,
+		title: `${route.name || '维护记录管理'}-删除`,
+		type: 1
+	})
 	ElMessage.success('删除成功')
 	selectedIds.value = []
 	getList()
diff --git a/applications/drone-command/src/views/detectionCountermeasure/taskSchedule/FormDiaLog.vue b/applications/drone-command/src/views/detectionCountermeasure/taskSchedule/FormDiaLog.vue
index dedb04a..c9f1591 100644
--- a/applications/drone-command/src/views/detectionCountermeasure/taskSchedule/FormDiaLog.vue
+++ b/applications/drone-command/src/views/detectionCountermeasure/taskSchedule/FormDiaLog.vue
@@ -168,6 +168,8 @@
 import { fieldRules } from '@ztzf/utils'
 import { PublicCesium } from '@/utils/cesium/publicCesium'
 import * as Cesium from 'cesium'
+import { saveOperationLog } from '@ztzf/apis'
+import { useRoute } from 'vue-router'
 
 // 初始化表单
 const initForm = () => ({
@@ -211,6 +213,7 @@
 const areaList = ref([]) // 区域列表
 const sceneList = ref([]) // 场景列表
 const deviceStatus = ref('')
+const route = useRoute()
 
 const rules = {
 	deviceId: fieldRules(true),
@@ -286,6 +289,14 @@
 			formData.value.dispatchEndTime = formData.value.dispatchDateRange[1]
 		}
 		await fwTaskScheduleSubmitApi(formData.value)
+
+		const actionText = dialogMode.value === 'add' ? '新增' : '修改'
+		saveOperationLog({
+			requestUri: route.path,
+			title: `${route.name || '任务调度'}-${actionText}`,
+			type: 1
+		})
+
 		ElMessage.success(dialogMode.value === 'add' ? '新增成功' : '更新成功')
 		visible.value = false
 		emit('success')
diff --git a/applications/drone-command/src/views/detectionCountermeasure/taskSchedule/index.vue b/applications/drone-command/src/views/detectionCountermeasure/taskSchedule/index.vue
index 9ba4167..6d51bd0 100644
--- a/applications/drone-command/src/views/detectionCountermeasure/taskSchedule/index.vue
+++ b/applications/drone-command/src/views/detectionCountermeasure/taskSchedule/index.vue
@@ -70,7 +70,7 @@
 					</el-table-column>
 
 					<el-table-column prop="areaName" show-overflow-tooltip width="120" label="区域" />
-					<el-table-column prop="defenseZoneName" show-overflow-tooltip width="120" label="场景" />
+					<el-table-column prop="defenseSceneName" show-overflow-tooltip width="120" label="场景" />
 					<el-table-column show-overflow-tooltip label="调度位置">
 						<template v-slot="{ row }">{{ row.longitude }}, {{ row.latitude }}</template>
 					</el-table-column>
@@ -124,6 +124,8 @@
 import { getDictionaryByCode } from '@/api/system/dictbiz'
 import FormDiaLog from './FormDiaLog.vue'
 import { getDictLabel } from '@ztzf/utils'
+import { saveOperationLog } from '@ztzf/apis'
+import { useRoute } from 'vue-router'
 
 // 初始化查询参数
 const initSearchParams = () => ({
@@ -146,6 +148,7 @@
 	deviceStatus: [], // 设备状态
 })
 const deviceList = ref([]) // 设备列表
+const route = useRoute()
 
 // 注入字典到子组件
 provide('dictObj', dictObj)
@@ -197,6 +200,11 @@
 	})
 	const ids = row ? row.id : selectedIds.value.join(',')
 	await fwTaskScheduleRemoveApi({ ids })
+	saveOperationLog({
+		requestUri: route.path,
+		title: `${route.name || '任务调度'}-删除`,
+		type: 1
+	})
 	ElMessage.success('删除成功')
 	selectedIds.value = []
 	getList()
diff --git a/applications/drone-command/src/views/permissionManage/permissionDept/FormDiaLog.vue b/applications/drone-command/src/views/permissionManage/permissionDept/FormDiaLog.vue
index c171ead..74c37cd 100644
--- a/applications/drone-command/src/views/permissionManage/permissionDept/FormDiaLog.vue
+++ b/applications/drone-command/src/views/permissionManage/permissionDept/FormDiaLog.vue
@@ -129,6 +129,8 @@
 import { add, getDept, getDeptTree, update } from '@/api/system/dept'
 import { getLazyTree } from '@/api/base/region'
 import { fieldRules, getDictLabel } from '@ztzf/utils'
+import { saveOperationLog } from '@ztzf/apis'
+import { useRoute } from 'vue-router'
 
 const initForm = () => ({
 	deptName: '',
@@ -189,7 +191,9 @@
 const visible = ref(false)
 const dialogMode = ref('add')
 const submitting = ref(false)
+const isAddChild = ref(false)
 const dialogReadonly = computed(() => dialogMode.value === 'view')
+const route = useRoute()
 const dialogTitle = computed(() => {
 	if (dialogMode.value === 'edit') return '编辑'
 	if (dialogMode.value === 'view') return '查看'
@@ -259,6 +263,12 @@
 		} else {
 			await add(payload)
 		}
+		const actionText = dialogMode.value === 'add' ? (isAddChild.value ? '新增子项' : '新增') : '编辑'
+		saveOperationLog({
+			requestUri: route.path,
+			title: `${route.name || '部门管理'}-${actionText}`,
+			type: 1
+		})
 		ElMessage.success(dialogMode.value === 'add' ? '新增成功' : '更新成功')
 		visible.value = false
 		emit('success')
@@ -279,11 +289,13 @@
 
 function handleClosed() {
 	formData.value = initForm()
+	isAddChild.value = false
 }
 
 async function open({ mode, row, parent } = {}) {
 	dialogMode.value = mode || 'add'
 	visible.value = true
+	isAddChild.value = mode === 'add' && !!parent?.id
 	await getDeptTree().then(res => {
 		if (deptTree) {
 			deptTree.value = res?.data?.data ?? []
diff --git a/applications/drone-command/src/views/permissionManage/permissionDept/index.vue b/applications/drone-command/src/views/permissionManage/permissionDept/index.vue
index 2f74e2d..8227a83 100644
--- a/applications/drone-command/src/views/permissionManage/permissionDept/index.vue
+++ b/applications/drone-command/src/views/permissionManage/permissionDept/index.vue
@@ -102,6 +102,8 @@
 import { getChildLazyTree, getDeptTree, getLazyList, remove } from '@/api/system/dept'
 import { getDictLabel } from '@ztzf/utils'
 import FormDiaLog from './FormDiaLog.vue'
+import { saveOperationLog } from '@ztzf/apis'
+import { useRoute } from 'vue-router'
 
 const initSearchParams = () => ({
 	deptName: '',
@@ -122,6 +124,7 @@
 	org_nature: [],
 })
 const deptTree = ref([])
+const route = useRoute()
 
 provide('dictObj', dictObj)
 provide('deptTree', deptTree)
@@ -180,6 +183,11 @@
 	})
 	const ids = row ? row.id : selectedIds.value.join(',')
 	await remove(ids)
+	saveOperationLog({
+		requestUri: route.path,
+		title: `${route.name || '部门管理'}-删除`,
+		type: 1,
+	})
 	ElMessage.success('删除成功')
 	selectedIds.value = []
 	getList()
diff --git a/applications/drone-command/src/views/permissionManage/permissionRole/FormDiaLog.vue b/applications/drone-command/src/views/permissionManage/permissionRole/FormDiaLog.vue
index 9e39032..66d2840 100644
--- a/applications/drone-command/src/views/permissionManage/permissionRole/FormDiaLog.vue
+++ b/applications/drone-command/src/views/permissionManage/permissionRole/FormDiaLog.vue
@@ -70,6 +70,8 @@
 import { ElMessage } from 'element-plus'
 import { add, getRoleTreeById, update } from '@/api/system/role'
 import { fieldRules } from '@ztzf/utils'
+import { saveOperationLog } from '@ztzf/apis'
+import { useRoute } from 'vue-router'
 
 const initForm = () => ({
 	roleName: '',
@@ -92,6 +94,7 @@
 const dialogMode = ref('add')
 const submitting = ref(false)
 const dialogReadonly = computed(() => dialogMode.value === 'view')
+const route = useRoute()
 const dialogTitle = computed(() => {
 	if (dialogMode.value === 'edit') return '编辑'
 	if (dialogMode.value === 'view') return '查看'
@@ -117,8 +120,18 @@
 	try {
 		if (dialogMode.value === 'edit') {
 			await update(formData.value)
+			saveOperationLog({
+				requestUri: route.path,
+				title: `${route.name || '角色管理'}-编辑`,
+				type: 1,
+			})
 		} else {
 			await add(formData.value)
+			saveOperationLog({
+				requestUri: route.path,
+				title: `${route.name || '角色管理'}-新增`,
+				type: 1,
+			})
 		}
 		ElMessage.success(dialogMode.value === 'add' ? '新增成功' : '更新成功')
 		visible.value = false
diff --git a/applications/drone-command/src/views/permissionManage/permissionRole/RolePermissionDialog.vue b/applications/drone-command/src/views/permissionManage/permissionRole/RolePermissionDialog.vue
index 4df6303..c909480 100644
--- a/applications/drone-command/src/views/permissionManage/permissionRole/RolePermissionDialog.vue
+++ b/applications/drone-command/src/views/permissionManage/permissionRole/RolePermissionDialog.vue
@@ -79,6 +79,8 @@
 <script setup>
 import { ref } from 'vue'
 import { grant, grantTree, getRole } from '@/api/system/role'
+import { saveOperationLog } from '@ztzf/apis'
+import { useRoute } from 'vue-router'
 
 const visible = ref(false)
 const roleId = ref('')
@@ -107,6 +109,7 @@
 const droneControl = ref(null)
 
 const emit = defineEmits(['success'])
+const route = useRoute()
 
 function resetState() {
 	menuGrantList.value = []
@@ -157,6 +160,11 @@
 		[],
 		[]
 	).then(() => {
+		saveOperationLog({
+			requestUri: route.path,
+			title: `${route.name || '角色管理'}-权限设置`,
+			type: 1,
+		})
 		visible.value = false
 		emit('success')
 	})
diff --git a/applications/drone-command/src/views/permissionManage/permissionRole/index.vue b/applications/drone-command/src/views/permissionManage/permissionRole/index.vue
index 7d24142..726ec3c 100644
--- a/applications/drone-command/src/views/permissionManage/permissionRole/index.vue
+++ b/applications/drone-command/src/views/permissionManage/permissionRole/index.vue
@@ -93,6 +93,8 @@
 import { useStore } from 'vuex'
 import FormDiaLog from './FormDiaLog.vue'
 import RolePermissionDialog from './RolePermissionDialog.vue'
+import { saveOperationLog } from '@ztzf/apis'
+import { useRoute } from 'vue-router'
 
 const initSearchParams = () => ({
 	roleName: '',
@@ -112,6 +114,7 @@
 const roleDialogRef = ref(null)
 const store = useStore()
 const userInfo = computed(() => store.getters.userInfo || {})
+const route = useRoute()
 
 async function loadList() {
 	loading.value = true
@@ -171,6 +174,11 @@
 	})
 	const ids = row ? row.id : selectedIds.value.join(',')
 	await remove(ids)
+	saveOperationLog({
+		requestUri: route.path,
+		title: `${route.name || '角色管理'}-删除`,
+		type: 1,
+	})
 	ElMessage.success('删除成功')
 	selectedIds.value = []
 	loadList()
diff --git a/applications/drone-command/src/views/permissionManage/permissionUser/FormDiaLog.vue b/applications/drone-command/src/views/permissionManage/permissionUser/FormDiaLog.vue
index 62957b1..4cea05b 100644
--- a/applications/drone-command/src/views/permissionManage/permissionUser/FormDiaLog.vue
+++ b/applications/drone-command/src/views/permissionManage/permissionUser/FormDiaLog.vue
@@ -246,6 +246,8 @@
 import { getDeptTree } from '@/api/system/dept'
 import { getRoleTree } from '@/api/system/role'
 import func from '@/utils/func'
+import { saveOperationLog } from '@ztzf/apis'
+import { useRoute } from 'vue-router'
 
 const initForm = () => ({
 	account: '',
@@ -289,6 +291,7 @@
 })
 const roleTree = ref([])
 const deptTree = ref([])
+const route = useRoute()
 
 const validatePass = (rule, value, callback) => {
 	if (value === '') {
@@ -363,8 +366,18 @@
 		submitData.name = submitData.realName
 		if (dialogMode.value === 'add') {
 			await add(submitData)
+			saveOperationLog({
+				requestUri: route.path,
+				title: `${route.name || '用户管理'}-新增`,
+				type: 1
+			})
 		} else {
 			await update(submitData)
+			saveOperationLog({
+				requestUri: route.path,
+				title: `${route.name || '用户管理'}-编辑`,
+				type: 1
+			})
 		}
 		ElMessage.success(dialogMode.value === 'add' ? '新增成功' : '更新成功')
 		visible.value = false
diff --git a/applications/drone-command/src/views/permissionManage/permissionUser/index.vue b/applications/drone-command/src/views/permissionManage/permissionUser/index.vue
index 48197dd..eaf8560 100644
--- a/applications/drone-command/src/views/permissionManage/permissionUser/index.vue
+++ b/applications/drone-command/src/views/permissionManage/permissionUser/index.vue
@@ -42,11 +42,11 @@
 		</el-form>
 
 		<div class="command-table-toolbar">
-			<el-button v-if="permission.user_add" :icon="Plus" color="#284FE3" type="primary" @click="handleAdd">
+			<el-button v-if="permission.permissionUser_add" :icon="Plus" color="#284FE3" type="primary" @click="handleAdd">
 				新增
 			</el-button>
 			<el-button
-				v-if="permission.user_delete"
+				v-if="permission.permissionUser_remove"
 				:icon="Delete"
 				color="#1A2652"
 				type="primary"
@@ -69,9 +69,9 @@
 					<el-table-column prop="phone" show-overflow-tooltip width="120" label="手机号" />
 					<el-table-column label="操作" class-name="operation-btns" width="180">
 						<template v-slot="{ row }">
-							<el-link v-if="permission.user_view" @click="handleView(row)">查看</el-link>
-							<el-link v-if="permission.user_edit" @click="handleEdit(row)">编辑</el-link>
-							<el-link v-if="permission.user_delete" type="danger" @click="handleDelete(row)">删除</el-link>
+							<el-link  @click="handleView(row)">查看</el-link>
+							<el-link v-if="permission.permissionUser_edit" @click="handleEdit(row)">编辑</el-link>
+							<el-link v-if="permission.permissionUser_remove" type="danger" @click="handleDelete(row)">删除</el-link>
 						</template>
 					</el-table-column>
 				</el-table>
@@ -101,6 +101,8 @@
 import { getList as getUserList, remove } from '@/api/system/user'
 import { useStore } from 'vuex'
 import FormDiaLog from './FormDiaLog.vue'
+import { saveOperationLog } from '@ztzf/apis'
+import { useRoute } from 'vue-router'
 
 const initSearchParams = () => ({
 	account: '',
@@ -124,6 +126,7 @@
 }
 const store = useStore()
 const permission = computed(() => store.getters.permission || {})
+const route = useRoute()
 
 async function getList() {
 	loading.value = true
@@ -178,6 +181,11 @@
 	})
 	const ids = row ? row.id : selectedIds.value.join(',')
 	await remove(ids)
+	saveOperationLog({
+		requestUri: route.path,
+		title: `${route.name || '用户管理'}-删除`,
+		type: 1
+	})
 	ElMessage.success('删除成功')
 	selectedIds.value = []
 	getList()
diff --git a/applications/drone-command/src/views/recordManage/alarmRecords/index.vue b/applications/drone-command/src/views/recordManage/alarmRecords/index.vue
index bac132f..952a5da 100644
--- a/applications/drone-command/src/views/recordManage/alarmRecords/index.vue
+++ b/applications/drone-command/src/views/recordManage/alarmRecords/index.vue
@@ -109,6 +109,8 @@
 import { exportFwDroneAlarmRecordApi, fwDroneAlarmRecordPageApi } from './fwDroneAlarmRecord'
 import FormDiaLog from './FormDiaLog.vue'
 import { blobDownload, dateRangeFormat, getDictLabel } from '@ztzf/utils'
+import { saveOperationLog } from '@ztzf/apis'
+import { useRoute } from 'vue-router'
 
 const initSearchParams = () => ({
 	droneName: '', // 无人机名称
@@ -129,6 +131,7 @@
 })
 const dateRange = ref([])
 const exportLoading = ref(false)
+const route = useRoute()
 const deviceTypeMap = computed(() => {
 	const map = new Map()
 	dictObj.value.deviceType.forEach(item => {
@@ -175,6 +178,11 @@
 	exportLoading.value = true
 	exportFwDroneAlarmRecordApi({ ids: selectedIds.value.join(',') })
 		.then(res => {
+			saveOperationLog({
+				requestUri: route.path,
+				title: `${route.name || '报警记录'}-导出`,
+				type: 1,
+			})
 			blobDownload(res)
 		})
 		.finally(() => {
diff --git a/applications/drone-command/src/views/recordManage/historyTracks/index.vue b/applications/drone-command/src/views/recordManage/historyTracks/index.vue
index cf12e44..92d4abd 100644
--- a/applications/drone-command/src/views/recordManage/historyTracks/index.vue
+++ b/applications/drone-command/src/views/recordManage/historyTracks/index.vue
@@ -95,6 +95,8 @@
 import { onMounted, ref, nextTick } from 'vue'
 import { exportFwDroneFlightRecordApi, fwDroneFlightRecordPageApi } from './fwDroneFlightRecord'
 import { blobDownload, dateRangeFormat } from '@ztzf/utils'
+import { saveOperationLog } from '@ztzf/apis'
+import { useRoute } from 'vue-router'
 import TrajectoryDiaLog from '@/views/recordManage/historyTracks/TrajectoryDiaLog.vue'
 
 const initSearchParams = () => ({
@@ -113,6 +115,7 @@
 const dateRange = ref([])
 const exportLoading = ref(false)
 const dialogRef = ref(null) // 弹框实例
+const route = useRoute()
 
 // 获取列表
 async function getList() {
@@ -165,6 +168,11 @@
 		ids: ids.join(','),
 	})
 		.then(res => {
+			saveOperationLog({
+				requestUri: route.path,
+				title: `${route.name || '历史轨迹'}-导出`,
+				type: 1,
+			})
 			blobDownload(res)
 		})
 		.finally(() => {
diff --git a/applications/drone-command/src/views/system/user/FormDiaLog.vue b/applications/drone-command/src/views/system/user/FormDiaLog.vue
index 8aba6fe..ab818fd 100644
--- a/applications/drone-command/src/views/system/user/FormDiaLog.vue
+++ b/applications/drone-command/src/views/system/user/FormDiaLog.vue
@@ -260,6 +260,8 @@
 import { getDeptTree } from '@/api/system/dept'
 import { getRoleTree } from '@/api/system/role'
 import func from '@/utils/func'
+import { saveOperationLog } from '@ztzf/apis'
+import { useRoute } from 'vue-router'
 
 // 初始化表单
 const initForm = () => ({
@@ -300,6 +302,7 @@
 const titleEnum = ref({ edit: '编辑用户', view: '查看用户', add: '新增用户' })
 const roleTree = ref([])
 const deptTree = ref([])
+const route = useRoute()
 
 // 密码验证
 const validatePass = (rule, value, callback) => {
@@ -383,9 +386,19 @@
 
 		if (dialogMode.value === 'add') {
 			await add(submitData)
+			saveOperationLog({
+				requestUri: route.path,
+				title: `${route.name || '用户管理01'}-新增`,
+				type: 1
+			})
 			ElMessage.success('新增成功')
 		} else {
 			await update(submitData)
+			saveOperationLog({
+				requestUri: route.path,
+				title: `${route.name || '用户管理01'}-编辑`,
+				type: 1
+			})
 			ElMessage.success('更新成功')
 		}
 		visible.value = false
diff --git a/applications/drone-command/src/views/system/user/index.vue b/applications/drone-command/src/views/system/user/index.vue
index af2de07..fe36b3d 100644
--- a/applications/drone-command/src/views/system/user/index.vue
+++ b/applications/drone-command/src/views/system/user/index.vue
@@ -225,6 +225,8 @@
 import NProgress from 'nprogress'
 import 'nprogress/nprogress.css'
 import func from '@/utils/func'
+import { saveOperationLog } from '@ztzf/apis'
+import { useRoute } from 'vue-router'
 
 const store = useStore()
 const userInfo = computed(() => store.getters.userInfo)
@@ -249,6 +251,7 @@
 const dialogVisible = ref(false)
 const auditMode = ref(false)
 const treeDeptId = ref('')
+const route = useRoute()
 
 // 部门树
 const deptTree = ref([])
@@ -341,6 +344,11 @@
 	await ElMessageBox.confirm(`确认删除${tips}吗?`, '提示', { type: 'warning' })
 	const ids = row ? row.id : selectedIds.value.join(',')
 	await remove(ids)
+	saveOperationLog({
+		requestUri: route.path,
+		title: `${route.name || '用户管理01'}-删除`,
+		type: 1
+	})
 	ElMessage.success('删除成功')
 	selectedIds.value = []
 	getList()
diff --git a/applications/drone-command/src/views/tickets/ticket-copy.vue b/applications/drone-command/src/views/tickets/ticket-copy.vue
index 0bf84c3..1121e1f 100644
--- a/applications/drone-command/src/views/tickets/ticket-copy.vue
+++ b/applications/drone-command/src/views/tickets/ticket-copy.vue
@@ -207,7 +207,7 @@
                 @click="openReviewDialog"
                 >批量审核
               </el-button>
-            
+
               <el-button
                 v-if="permissionList.exportBtn"
                 type="success"
@@ -234,7 +234,7 @@
                   >详情
                 </el-button>
               </template>
-     
+
               <template  v-if="row.status === 4 && activeTab === 'completed'">
                 <el-button type="text" icon="el-icon-download"  @click="exportTheTick(row)"
                   >导出
@@ -1003,7 +1003,7 @@
 
 <script>
 import {ALL_WORK_ORDER_TYPE_OPTIONS} from '@ztzf/constants'
-  
+
 import { pxToRem, pxToRemNum } from '@/utils/rem';
 import { getSmallImg, getShowImg } from '@/utils/util';
 import { ElMessageBox, ElLoading } from 'element-plus';
@@ -1139,7 +1139,7 @@
           { label: '处理人', prop: 'handler', width: 120, overHidden: true },
           {
             slot: true,
-            hide: envName === 'jiangwu' ? true : false,
+            hide: false,
             label: '复核状态',
             prop: 'isReview',
             width: 90,
@@ -3203,7 +3203,7 @@
     exportTheTick(row){
       const params = {
         num:row.orderNumber
-      }   
+      }
       exportTheTicket(params).then(res=>{
       const elink = document.createElement('a')
       elink.download = row.orderName + '.docx'
diff --git a/applications/mobile-web-view/LICENSE b/applications/mobile-web-view/LICENSE
deleted file mode 100644
index aaac4ce..0000000
--- a/applications/mobile-web-view/LICENSE
+++ /dev/null
@@ -1,35 +0,0 @@
-BladeX商业授权许可协议
-
-一、 知识产权:
-BladeX系列产品知识产权归上海布雷德科技有限公司独立所有
-
-二、 许可:
-1. 在您完全接受并遵守本协议的基础上,本协议授予您使用BladeX的某些权利和非独占性许可。
-2. 本协议中,将本产品使用用途分为"专业版用途"和"企业版用途"。
-3. "专业版用途"定义:指个人在非团体机构中出于任何合法目的使用本产品(任何目的包括商业目的或非盈利目的)。
-4. "企业版用途"定义:指拥有合法执照的团体机构(例如公司企业、政府、学校、军队、医院、社会团体等各类组织)(不包含集团,若集团使用则需为各个子公司分别购买企业授权)出于任何合法目的使用本产品(任何目的包括商业目的或非盈利目的)。
-5. 若您不能以拥有合法执照的团体机构名义购买企业版,则视为个人名义购买,仅可行使专业版用途。在遵守此协议的前提下,后续有一次机会将企业版授权免费绑定至法人为购买人的新公司,并从专业版用途转为企业版用途。
-
-三、 约束和限制:
-1. 本产品只能由您为本协议许可的目的而使用,您不得透露给任何第三方;
-2. 从本产品取得的任何信息、软件、产品或服务,您不得对其进行修改、改编或基于以上内容创建同种类别的衍生产品并售卖。
-3. 您不得对本产品以及与之关联的商业授权进行发布、出租、销售、分销、抵押、转让、许可或发放子许可证。
-4. 本产品商业授权版可能包含一些独立功能或特性,这些功能只有在您购买商业授权后才可以使用。在未取得商业授权的情况下,您不得使用、尝试使用或复制这些授权版独立功能。
-5. 若您的客户要求以源码方式交付软件,需缴纳企业版授权费用,否则本产品部分不得提供源码。
-
-四、 不得用于非法或禁止的用途:
-您在使用本产品或服务时,不得将本产品产品或服务用于任何非法用途或本协议条款、条件和声明禁止的用途。
-
-五、 免责说明:
-1. 本产品按"现状"授予许可,您须自行承担使用本产品的风险。BladeX团队不对此提供任何明示、暗示或任何其它形式的担保和表示。在任何情况下,对于因使用或无法使用本软件而导致的任何损失(包括但不仅限于商业利润损失、业务中断或业务信息丢失),BladeX团队无需向您或任何第三方负责,即使BladeX团队已被告知可能会造成此类损失。在任何情况下, BladeX团队均不就任何直接的、间接的、附带的、后果性的、特别的、惩戒性的和处罚性的损害赔偿承担任何责任,无论该主张是基于保证、合同、侵权(包括疏忽)或是基于其他原因作出。
-2. 本产品可能内置有第三方服务,您应自行评估使用这些第三方服务的风险,由使用此类第三方服务而产生的纠纷,全部责任由您自行承担。
-3. BladeX团队不对使用本产品构建的网站中任何信息内容以及导致的任何版权纠纷、法律争议和后果承担任何责任,全部责任由您自行承担。
-4. BladeX团队可能会经常提供产品更新或升级,但BladeX团队没有为根据本协议许可的产品提供维护或更新的责任。
-5. BladeX团队可能会按照官方制定的答疑规则为您进行答疑,但BladeX团队没有为根据本协议许可的产品提供技术支持的义务或责任。
-
-六、 权利和所有权的保留:
-BladeX团队保留所有未在本协议中明确授予您的所有权利。BladeX团队保留随时更新本协议的权利,并只需公示于对应产品项目的LICENSE文件,无需征得您的事先同意且无需另行通知,更新后的内容应于公示即时生效。您可以随时访问产品地址并查阅最新版许可条款,在更新生效后您继续使用本产品则被视作您已接受了新的条款。
-
-七、 协议终止
-1. 您一旦开始复制、下载、安装或者使用本产品,即被视为完全理解并接受本协议的各项条款,在享有上述条款授予的许可权力同时,也受到相关的约束和限制,本协议许可范围以外的行为,将直接违反本协议并构成侵权。
-2. 一旦您违反本协议的条款,BladeX团队随时可能终止本协议、收回许可和授权,并要求您承担相应法律和经济责任。
diff --git a/applications/mobile-web-view/env/.env.blackBox b/applications/mobile-web-view/env/.env.blackBox
deleted file mode 100644
index 11f7eec..0000000
--- a/applications/mobile-web-view/env/.env.blackBox
+++ /dev/null
@@ -1,38 +0,0 @@
-#小黑盒环境配置
-VITE_APP_ENV = 'blackBox'
-# 是否在打包时开启压缩,支持 gzip 和 brotli
-VITE_BUILD_COMPRESS = gzip
-
-# ws地址
-VITE_APP_WS_API_URL = ws://192.168.1.241/drone-wss/api/v1/ws
-
-# 航线文件地址
-VITE_APP_AIRLINE_URL = http://192.168.1.241:9000/cloud-bucket
-
-#管理后台地址
-VITE_APP_ADMIN_URL = 'http://192.168.1.241/manage/'
-
-#内嵌航线规划iframe地址
-VITE_APP_WAY_LINE_PLAN = 'http://192.168.1.241/bigScreen/#/layout/iframeWayline'
-
-# 地形存放地址
-VITE_APP_TERRAIN_URL = http://192.168.1.241:9000/cloud-bucket/ztzf_terrain/
-
-# 行政区划存放地址
-VITE_APP_REGION_URL = http://192.168.1.241:9000/cloud-bucket/ztzf_region
-
-
-# 国土举证 图片和视频
-VITE_APP_MEDIAPANEL_API_URL = http://192.168.1.241:9000/cloud-bucket
-
-#域名
-VITE_APP_AREA_NAME = http://wrj.shuixiongit.com
-
-# arcgis服务图层地址
-VITE_APP_ARCGIS_URL = https://wrj.shuixiongit.com/arcgis116
-
-
-
-
-
-
diff --git a/applications/mobile-web-view/env/.env.jiangwu b/applications/mobile-web-view/env/.env.jiangwu
deleted file mode 100644
index c22a582..0000000
--- a/applications/mobile-web-view/env/.env.jiangwu
+++ /dev/null
@@ -1,48 +0,0 @@
-###
- # @Author       : yuan
- # @Date         : 2025-06-13 09:42:05
- # @LastEditors  : yuan
- # @LastEditTime : 2025-07-04 09:23:22
- # @FilePath     : \.env.jiangwu
- # @Description  :
- # Copyright 2025 OBKoro1, All Rights Reserved.
- # 2025-06-13 09:42:05
-###
-#开发环境配置
-VITE_APP_ENV = 'jiangwu'
-
-# 是否在打包时开启压缩,支持 gzip 和 brotli
-VITE_BUILD_COMPRESS = gzip
-
-# 目前倾斜摄影地址
-VITE_APP_MAP_TILE_URL = https://wrj.shuixiongit.com/3Dtile
-
-# ws地址
-VITE_APP_WS_API_URL = ws://192.168.253.121:8080/drone-wss/api/v1/ws
-# 航线文件地址
-VITE_APP_AIRLINE_URL = http://192.168.253.121:9000/cloud-bucket
-
-# 管理后台地址
-VITE_APP_ADMIN_URL = 'http://192.168.253.121:8080/manage/#/'
-
-#内嵌航线规划iframe地址
-VITE_APP_WAY_LINE_PLAN = 'http://192.168.253.121:8080/bigScreen/#/layout/iframeWayline'
-
-# 地形存放地址
-VITE_APP_TERRAIN_URL = http://192.168.253.121:9000/cloud-bucket/ztzf_terrain/jxdx
-
-# 行政区划存放地址
-VITE_APP_REGION_URL = http://192.168.253.121:9000/cloud-bucket/ztzf_region
-
-# 国土举证 图片和视频
-VITE_APP_MEDIAPANEL_API_URL =  http://192.168.253.121:9000/cloud-bucket
-
-#域名
-VITE_APP_AREA_NAME = https://aisky.org.cn/dji_in_rectangle
-
-# arcgis服务图层地址
-VITE_APP_ARCGIS_URL = http://192.168.253.121:8080/arcgis116
-
-# 离线地图存放地址
-VITE_APP_OFFLINE_MAP_URL = http://192.168.253.121:9000/cloud-bucket/offline_map
-
diff --git a/applications/mobile-web-view/package.json b/applications/mobile-web-view/package.json
index 5ccaa3c..3c12b28 100644
--- a/applications/mobile-web-view/package.json
+++ b/applications/mobile-web-view/package.json
@@ -9,8 +9,6 @@
 		"build:dev": "vite build --mode development",
 		"build:test": "vite build --mode test",
 		"build:prod": "vite build --mode production",
-		"build:jiangwu": "vite build --mode jiangwu",
-		"build:blackBox": "vite build --mode blackBox",
 		"serve": "vite preview --host",
 		"format": "prettier --write \"src/**/*.+(js|ts|jsx|tsx)\""
 	},
diff --git a/applications/mobile-web-view/src/appPages/work/workDetail/mapWork/index.vue b/applications/mobile-web-view/src/appPages/work/workDetail/mapWork/index.vue
index 5e5845c..ea0840b 100644
--- a/applications/mobile-web-view/src/appPages/work/workDetail/mapWork/index.vue
+++ b/applications/mobile-web-view/src/appPages/work/workDetail/mapWork/index.vue
@@ -25,39 +25,7 @@
 const store = useStore()
 const userInfo = computed(() => store?.state?.user?.userInfo)
 const route = useRoute()
-const mapCurrentDetail = ref({
-	"id": 8474,
-	"wayline_job_id": "51835088-cd94-42f8-b2ec-a9069ced4e7b",
-	"event_name": "测试",
-	"device_sn": "7CTDM5E00B3H61",
-	"status": 3,
-	"photo_url": "https://wrj.shuixiongit.com/minio/cloud-bucket/upload/20260113/f090f03fdc52499473ab9cbfcdc0876d.jpeg",
-	"file_path": "upload/20260113/f090f03fdc52499473ab9cbfcdc0876d.jpeg",
-	"longitude": "115.85649472222222",
-	"latitude": "28.624301527777778",
-	"create_time": "2026-01-13 16:51:57",
-	"media_type": "PHOTO_TYPE",
-	"event_num": "BHJC20260113002",
-	"ai_types": "道路裂缝",
-	"ai_type_key_list": [
-		"DLLFSB"
-	],
-	"work_order_type_dict_key": "ZHZLL",
-	"work_order_type": "交通运输与交管​",
-	"create_user": "曾超杰",
-	"update_user": "管理员",
-	"dept_name": "中图智飞(江西省)",
-	"create_user_id": "2009140684346388482",
-	"user_id": "1991745495648227330",
-	"handle_user_id": "1123598821738675201",
-	"address": "江西省南昌市西湖区朝农街道抚生南路1806号南昌台湾健康产业城",
-	"update_photo_url": "https://wrj.shuixiongit.com/minio/cloud-bucket/upload/20260113/f090f03fdc52499473ab9cbfcdc0876d.jpeg",
-	"content": "测试",
-	"work_type": "3",
-	"job_name": "定向拍照2",
-	"is_review": 0,
-	"job_create_time": "2026-01-13 16:51:57"
-})
+const mapCurrentDetail = ref({})
 const eventNum = ref('')
 // 机巢数据
 let machineData = ref([]);
diff --git a/applications/mobile-web-view/src/buildConfig/baseConfig/config.default.js b/applications/mobile-web-view/src/buildConfig/baseConfig/config.default.js
index b1ff5dc..1ea0923 100644
--- a/applications/mobile-web-view/src/buildConfig/baseConfig/config.default.js
+++ b/applications/mobile-web-view/src/buildConfig/baseConfig/config.default.js
@@ -1,13 +1,3 @@
-/*
- * @Author       : yuan
- * @Date         : 2025-06-21 10:08:29
- * @LastEditors  : yuan
- * @LastEditTime : 2025-07-21 14:58:00
- * @FilePath     : \src\buildConfig\baseConfig\config.default.js
- * @Description  :
- * Copyright 2025 OBKoro1, All Rights Reserved.
- * 2025-06-21 10:08:29
- */
 // src/buildConfig/config.private.js
 import { useStore } from 'vuex'
 import menuConfig from '@/buildConfig/menuConfig/defaultMenu'
@@ -18,7 +8,7 @@
 import defaultHomeConfig from '@/buildConfig/homeConfig/defaultHomeConfig'
 import { getDateRange } from '@/utils/date'
 const systemNameEnum = {
-	0: '银轨科技',
+	0: 'appWebView',
 }
 
 export default function getBaseConfig() {
@@ -27,13 +17,12 @@
 
 	return {
 		userLoginTitle(key) {
-			return (systemNameEnum[key] || '中图智飞') + '低空感知网平台'
+			return (systemNameEnum[key] || 'appWebview') + '平台'
 		},
-		// envName: 'jiangwu',
 		userLoginPageClass: '',
-		loginTitle: '中图智飞低空智能感知网平台', //登陆页面标题
-		headerTitle: `${loginUserInfo.value?.areaName || ''}低空感知网指挥调度平台`, //首页标题
-		gateTitle: '中图智飞低空感知网平台',
+		loginTitle: 'appWebview', //登陆页面标题
+		headerTitle: `${loginUserInfo.value?.areaName || ''}appWebView`, //首页标题
+		gateTitle: 'appWebview',
 		gateTitleEn: 'AISKY Low-altitude Perception Network Platform',
 		isShowFooterBtns: true,
 		isShowAiSkyLogo: true,
diff --git a/applications/mobile-web-view/src/buildConfig/baseConfig/config.jiangwu.js b/applications/mobile-web-view/src/buildConfig/baseConfig/config.jiangwu.js
deleted file mode 100644
index cd99b3e..0000000
--- a/applications/mobile-web-view/src/buildConfig/baseConfig/config.jiangwu.js
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * @Author       : yuan
- * @Date         : 2025-06-16 15:23:06
- * @LastEditors  : yuan
- * @LastEditTime : 2025-06-25 11:18:33
- * @FilePath     : \src\buildConfig\baseConfig\config.jiangwu.js
- * @Description  :
- * Copyright 2025 OBKoro1, All Rights Reserved.
- * 2025-06-16 15:23:06
- */
-// src/buildConfig/config.private.js
-import menuConfig from '@/buildConfig/menuConfig/jiangwuMenu'
-import jiangwuDataCenter from '@/buildConfig/dataCenterConfig/jiangwuDataCenter'
-import jiangwuMapControl from '@/buildConfig/mapControlConfig/jiangwuMapControl'
-import gatewayMenuConfig from '@/buildConfig/gatewayConfig/jiangwuGateway'
-import userInfoConfig from '@/buildConfig/userInfoConfig/jiangwuUserInfo'
-import defaultHomeConfig from '@/buildConfig/homeConfig/defaultHomeConfig'
-import { getDateRange } from '@/utils/date'
-
-export default function getBaseConfig () {
-	return {
-		userLoginTitle (key) {
-			return '大吉山钨业无人机安防监测平台'
-		},
-		envName:'jiangwu',
-		userLoginPageClass: 'jw-user-login-page',
-
-		loginTitle: '大吉山钨业无人机安防监测平台',
-		headerTitle: '大吉山钨业无人机安防监测平台',
-
-		gateTitle: '大吉山钨业无人机安防监测平台',
-		gateTitleEn: 'Dajishan Tungsten Industry UAV Security Monitoring Platform',
-
-		isShowFooterBtns: false,
-
-		isShowAiSkyLogo: false,
-
-		...gatewayMenuConfig,
-		...menuConfig,
-		...jiangwuDataCenter,
-		...userInfoConfig,
-		...jiangwuMapControl,
-		hideEventSearchlight: true,//隐 藏探照灯
-		hideSavesCosts: true,//隐藏节省成本
-		hideEventMegaphone: true,//隐藏 喊话器
-		singleDockSystem: true,//单机巢系统
-		hideContinuingToFly: true,//隐藏 断点续飞
-		hideRouteRecord: true,//隐藏 航线记录
-		showConsoleSearchlight: true, //显示控制台的灯
-		showConsoleMegaphone: true, //显示控制台的喇叭
-		showExecuteNow: true,//任务管理显示再次执行  单机巢再次执行也是马上执行
-		hideAiNowFlyRecordEvent: true, //隐藏 马上飞 自带录屏事件
-		hideHelpCenter:true,//隐藏 帮助
-		hideFlyToHere:true,//隐藏 控制台飞到此处
-		dataAchievement: defaultHomeConfig.dataAchievement.map(i => ({...i,hide: i.name !== 'AI识别'})),
-		timeTypeConfig: null,
-		timeRangConfig: [],
-	}
-}
diff --git a/applications/mobile-web-view/src/buildConfig/config.js b/applications/mobile-web-view/src/buildConfig/config.js
index c2ba3d8..521f14c 100644
--- a/applications/mobile-web-view/src/buildConfig/config.js
+++ b/applications/mobile-web-view/src/buildConfig/config.js
@@ -1,25 +1,10 @@
-/*
- * @Author       : yuan
- * @Date         : 2025-06-13 09:42:10
- * @LastEditors  : yuan
- * @LastEditTime : 2025-06-13 15:21:09
- * @FilePath     : \src\buildConfig\config.js
- * @Description  : 
- * Copyright 2025 OBKoro1, All Rights Reserved. 
- * 2025-06-13 09:42:10
- */
-// src/config.js
-
-// 直接导入所有配置文件
-import jiangwuConfig from '@/buildConfig/baseConfig/config.jiangwu.js'
 import defaultConfig from '@/buildConfig/baseConfig/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/mobile-web-view/src/buildConfig/dataCenterConfig/jiangwuDataCenter.js b/applications/mobile-web-view/src/buildConfig/dataCenterConfig/jiangwuDataCenter.js
deleted file mode 100644
index eff308d..0000000
--- a/applications/mobile-web-view/src/buildConfig/dataCenterConfig/jiangwuDataCenter.js
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * @Author       : yuan
- * @Date         : 2025-06-13 09:49:01
- * @LastEditors  : yuan
- * @LastEditTime : 2025-06-13 11:40:55
- * @FilePath     : \src\buildConfig\dataCenterConfig\jiangwuDataCenter.js
- * @Description  : 
- * Copyright 2025 OBKoro1, All Rights Reserved. 
- * 2025-06-13 09:49:01
- */
-import tab1 from '@/assets/images/dataCenter/photograph/tab1.png'
-import tab2 from '@/assets/images/dataCenter/photograph/tab2.png'
-import tab3 from '@/assets/images/dataCenter/photograph/tab3.png'
-import tab4 from '@/assets/images/dataCenter/photograph/tab4.png'
-import tab5 from '@/assets/images/dataCenter/photograph/tab5.png'
-
-export default {
-	// 其他私有化相关配置
-	dataCenterTabList: [
-		{
-			name: '照片',
-			img: tab1,
-			id: 0,
-			show: true,
-		},
-		{
-			name: '视频',
-			img: tab2,
-			id: 1,
-			show: true,
-		},
-		{
-			name: '正射',
-			img: tab3,
-			id: 4,
-			show: false,
-		},
-		{
-			name: '全景',
-			img: tab4,
-			id: 5,
-			show: false,
-		},
-		{
-			name: 'AI识别',
-			img: tab5,
-			id: 2,
-			show: true,
-		},
-	]
-}
\ No newline at end of file
diff --git a/applications/mobile-web-view/src/buildConfig/gatewayConfig/jiangwuGateway.js b/applications/mobile-web-view/src/buildConfig/gatewayConfig/jiangwuGateway.js
deleted file mode 100644
index 65cf805..0000000
--- a/applications/mobile-web-view/src/buildConfig/gatewayConfig/jiangwuGateway.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * @Author       : yuan
- * @Date         : 2025-06-13 09:48:50
- * @LastEditors  : yuan
- * @LastEditTime : 2025-06-13 10:30:56
- * @FilePath     : \src\buildConfig\menuConfig\baseMenu.js
- * @Description  : 
- * Copyright 2025 OBKoro1, All Rights Reserved. 
- * 2025-06-13 09:48:50
- */
-export default {
-	// 其他私有化相关配置
-	gatewayMenu: [
-		{
-			normal: new URL('@/assets/images/login/zhglpt.png', import.meta.url).href,
-			active: new URL('@/assets/images/login/zhglpt-active.png', import.meta.url).href,
-		},
-		{
-			normal: new URL('@/assets/images/login/zhddpt.png', import.meta.url).href,
-			active: new URL('@/assets/images/login/zhddpt-active.png', import.meta.url).href,
-		},
-	],
-}
\ No newline at end of file
diff --git a/applications/mobile-web-view/src/buildConfig/mapControlConfig/jiangwuMapControl.js b/applications/mobile-web-view/src/buildConfig/mapControlConfig/jiangwuMapControl.js
deleted file mode 100644
index 33f9385..0000000
--- a/applications/mobile-web-view/src/buildConfig/mapControlConfig/jiangwuMapControl.js
+++ /dev/null
@@ -1,6 +0,0 @@
-export default {
-	baseMapToggleShow: true,
-	baseLayerShow: false,
-	thematicLayer: false,
-	tilesLayer: false
-}
diff --git a/applications/mobile-web-view/src/buildConfig/menuConfig/jiangwuMenu.js b/applications/mobile-web-view/src/buildConfig/menuConfig/jiangwuMenu.js
deleted file mode 100644
index 9fcda0f..0000000
--- a/applications/mobile-web-view/src/buildConfig/menuConfig/jiangwuMenu.js
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * @Author       : yuan
- * @Date         : 2025-06-13 09:48:50
- * @LastEditors  : yuan
- * @LastEditTime : 2025-06-13 11:20:45
- * @FilePath     : \src\buildConfig\menuConfig\jiangwuMenu.js
- * @Description  : 
- * Copyright 2025 OBKoro1, All Rights Reserved. 
- * 2025-06-13 09:48:50
- */
-export default {
-	menuLeftList: [
-		{ name: '首页', active: true, path: '/index', hidden: false },
-		{ name: '任务管理', active: false, path: '/taskManage', hidden: false },
-		{ name: '航线规划', active: false, path: '/routePlan', hidden: false },
-		{ name: '集群调度', active: false, path: '/clusterScheduling', hidden: true },
-	],
-
-	meneRightList: [
-		{ name: 'AI识别分析', active: false, path: '/aiAnalysis', hidden: true },
-		{ name: '综合分析', active: false, path: '/comprehensiveAnalysis', hidden: true },
-		{ name: '数据中心', active: false, path: '/dataCenter', hidden: false },
-		{ name: '系统运维', active: false, path: '/systemMaintenance', hidden: false },
-	]
-}
\ No newline at end of file
diff --git a/applications/mobile-web-view/src/buildConfig/userInfoConfig/jiangwuUserInfo.js b/applications/mobile-web-view/src/buildConfig/userInfoConfig/jiangwuUserInfo.js
deleted file mode 100644
index f628fb5..0000000
--- a/applications/mobile-web-view/src/buildConfig/userInfoConfig/jiangwuUserInfo.js
+++ /dev/null
@@ -1,15 +0,0 @@
-
-/*
- * @Author       : yuan
- * @Date         : 2025-06-13 09:48:50
- * @LastEditors  : yuan
- * @LastEditTime : 2025-06-25 11:35:31
- * @FilePath     : \src\buildConfig\userInfoConfig\jiangwuUserInfo.js
- * @Description  : 
- * Copyright 2025 OBKoro1, All Rights Reserved. 
- * 2025-06-13 09:48:50
- */
-export default {
-	// 其他私有化相关配置
-	userInfoTipList: ['个人信息', '修改密码']
-}
\ No newline at end of file
diff --git a/applications/mobile-web-view/src/page/GatewayPage/GatewayPage.vue b/applications/mobile-web-view/src/page/GatewayPage/GatewayPage.vue
index a498d2c..42f8394 100644
--- a/applications/mobile-web-view/src/page/GatewayPage/GatewayPage.vue
+++ b/applications/mobile-web-view/src/page/GatewayPage/GatewayPage.vue
@@ -69,7 +69,7 @@
 onMounted(() => {
 	narrowScreenFun()
 	window.addEventListener('resize', narrowScreenFun)
-	document.title = '中图智飞低空感知网平台'
+	document.title = 'appWebview'
 })
 </script>
 
diff --git a/applications/mobile-web-view/src/permission.js b/applications/mobile-web-view/src/permission.js
index cf1537c..6daf3b4 100644
--- a/applications/mobile-web-view/src/permission.js
+++ b/applications/mobile-web-view/src/permission.js
@@ -77,7 +77,7 @@
 	NProgress.done()
 	const isLoginPage = to.path === '/login'
 	// 根据是否登录页设置标题
-	// const pageTitle = isLoginPage ? '中图智飞低空感知网平台' : '指挥调度平台'
+	// const pageTitle = isLoginPage ? 'appWebview' : 'appWebview'
 	document.title = to.meta.title || '掌控智飞'
 	store.commit('SET_IS_SEARCH', false)
 })
diff --git a/applications/mobile-web-view/src/utils/http/config.js b/applications/mobile-web-view/src/utils/http/config.js
index 62894cd..7807554 100644
--- a/applications/mobile-web-view/src/utils/http/config.js
+++ b/applications/mobile-web-view/src/utils/http/config.js
@@ -4,16 +4,14 @@
  * @LastEditors  : yuan
  * @LastEditTime : 2025-06-25 10:54:47
  * @FilePath     : \src\utils\http\config.js
- * @Description  : 
- * Copyright 2025 OBKoro1, All Rights Reserved. 
+ * @Description  :
+ * Copyright 2025 OBKoro1, All Rights Reserved.
  * 2025-06-13 09:42:10
  */
 let rtmpURL = ''
 
 if (import.meta.env.VITE_APP_ENV === 'production') {
 	rtmpURL = 'rtmp://101.132.85.201/live/'
-} else if (import.meta.env.VITE_APP_ENV === 'jiangwu') {
-	rtmpURL = 'rtmp://192.168.253.121/live/'
 } else {
 	rtmpURL = 'rtmp://139.196.74.78/live/'
 }
diff --git a/applications/task-work-order/LICENSE b/applications/task-work-order/LICENSE
deleted file mode 100644
index aaac4ce..0000000
--- a/applications/task-work-order/LICENSE
+++ /dev/null
@@ -1,35 +0,0 @@
-BladeX商业授权许可协议
-
-一、 知识产权:
-BladeX系列产品知识产权归上海布雷德科技有限公司独立所有
-
-二、 许可:
-1. 在您完全接受并遵守本协议的基础上,本协议授予您使用BladeX的某些权利和非独占性许可。
-2. 本协议中,将本产品使用用途分为"专业版用途"和"企业版用途"。
-3. "专业版用途"定义:指个人在非团体机构中出于任何合法目的使用本产品(任何目的包括商业目的或非盈利目的)。
-4. "企业版用途"定义:指拥有合法执照的团体机构(例如公司企业、政府、学校、军队、医院、社会团体等各类组织)(不包含集团,若集团使用则需为各个子公司分别购买企业授权)出于任何合法目的使用本产品(任何目的包括商业目的或非盈利目的)。
-5. 若您不能以拥有合法执照的团体机构名义购买企业版,则视为个人名义购买,仅可行使专业版用途。在遵守此协议的前提下,后续有一次机会将企业版授权免费绑定至法人为购买人的新公司,并从专业版用途转为企业版用途。
-
-三、 约束和限制:
-1. 本产品只能由您为本协议许可的目的而使用,您不得透露给任何第三方;
-2. 从本产品取得的任何信息、软件、产品或服务,您不得对其进行修改、改编或基于以上内容创建同种类别的衍生产品并售卖。
-3. 您不得对本产品以及与之关联的商业授权进行发布、出租、销售、分销、抵押、转让、许可或发放子许可证。
-4. 本产品商业授权版可能包含一些独立功能或特性,这些功能只有在您购买商业授权后才可以使用。在未取得商业授权的情况下,您不得使用、尝试使用或复制这些授权版独立功能。
-5. 若您的客户要求以源码方式交付软件,需缴纳企业版授权费用,否则本产品部分不得提供源码。
-
-四、 不得用于非法或禁止的用途:
-您在使用本产品或服务时,不得将本产品产品或服务用于任何非法用途或本协议条款、条件和声明禁止的用途。
-
-五、 免责说明:
-1. 本产品按"现状"授予许可,您须自行承担使用本产品的风险。BladeX团队不对此提供任何明示、暗示或任何其它形式的担保和表示。在任何情况下,对于因使用或无法使用本软件而导致的任何损失(包括但不仅限于商业利润损失、业务中断或业务信息丢失),BladeX团队无需向您或任何第三方负责,即使BladeX团队已被告知可能会造成此类损失。在任何情况下, BladeX团队均不就任何直接的、间接的、附带的、后果性的、特别的、惩戒性的和处罚性的损害赔偿承担任何责任,无论该主张是基于保证、合同、侵权(包括疏忽)或是基于其他原因作出。
-2. 本产品可能内置有第三方服务,您应自行评估使用这些第三方服务的风险,由使用此类第三方服务而产生的纠纷,全部责任由您自行承担。
-3. BladeX团队不对使用本产品构建的网站中任何信息内容以及导致的任何版权纠纷、法律争议和后果承担任何责任,全部责任由您自行承担。
-4. BladeX团队可能会经常提供产品更新或升级,但BladeX团队没有为根据本协议许可的产品提供维护或更新的责任。
-5. BladeX团队可能会按照官方制定的答疑规则为您进行答疑,但BladeX团队没有为根据本协议许可的产品提供技术支持的义务或责任。
-
-六、 权利和所有权的保留:
-BladeX团队保留所有未在本协议中明确授予您的所有权利。BladeX团队保留随时更新本协议的权利,并只需公示于对应产品项目的LICENSE文件,无需征得您的事先同意且无需另行通知,更新后的内容应于公示即时生效。您可以随时访问产品地址并查阅最新版许可条款,在更新生效后您继续使用本产品则被视作您已接受了新的条款。
-
-七、 协议终止
-1. 您一旦开始复制、下载、安装或者使用本产品,即被视为完全理解并接受本协议的各项条款,在享有上述条款授予的许可权力同时,也受到相关的约束和限制,本协议许可范围以外的行为,将直接违反本协议并构成侵权。
-2. 一旦您违反本协议的条款,BladeX团队随时可能终止本协议、收回许可和授权,并要求您承担相应法律和经济责任。
diff --git a/applications/task-work-order/index.html b/applications/task-work-order/index.html
index ce43138..c5c341d 100644
--- a/applications/task-work-order/index.html
+++ b/applications/task-work-order/index.html
@@ -29,7 +29,7 @@
   <script type="text/javascript"
     src='https://webapi.amap.com/maps?v=2.0&key=eb0654440644f710110547d2132b2fbe&plugin=AMap.PlaceSearch,AMap.Geocoder'></script>
   <script src="https://webapi.amap.com/ui/1.1/main.js?v=1.0.11"></script>
-  <title>中图智绘低空无人机监测网平台</title>
+  <title>任务工单平台</title>
 </head>
 
 <body class="theme-white">
diff --git a/applications/task-work-order/src/assets/images/layoutBg.png b/applications/task-work-order/src/assets/images/layoutBg.png
index a582cc7..3945013 100644
--- a/applications/task-work-order/src/assets/images/layoutBg.png
+++ b/applications/task-work-order/src/assets/images/layoutBg.png
Binary files differ
diff --git a/applications/task-work-order/src/config/website.js b/applications/task-work-order/src/config/website.js
index 9b3a2c8..0230b1d 100644
--- a/applications/task-work-order/src/config/website.js
+++ b/applications/task-work-order/src/config/website.js
@@ -42,7 +42,6 @@
 		menu: true,
 	},
 	fistPage: {
-		name: '工单管理首页',
 		path: '/',
 	},
 	//配置菜单的属性
diff --git a/applications/task-work-order/src/lang/en.js b/applications/task-work-order/src/lang/en.js
index bd07056..54d6e93 100644
--- a/applications/task-work-order/src/lang/en.js
+++ b/applications/task-work-order/src/lang/en.js
@@ -1,5 +1,5 @@
 export default {
-  title: '中图智绘低空无人机监测网平台',
+  title: '任务工单平台',
   logoutTip: 'Exit the system, do you want to continue?',
   submitText: 'submit',
   cancelText: 'cancel',
diff --git a/applications/task-work-order/src/lang/zh.js b/applications/task-work-order/src/lang/zh.js
index bd3f449..9890ad6 100644
--- a/applications/task-work-order/src/lang/zh.js
+++ b/applications/task-work-order/src/lang/zh.js
@@ -1,5 +1,5 @@
 export default {
-  title: '中图智绘低空无人机监测网平台',
+  title: '任务工单平台',
   logoutTip: '退出系统, 是否继续?',
   submitText: '确定',
   cancelText: '取消',
diff --git a/applications/task-work-order/src/permission.js b/applications/task-work-order/src/permission.js
index 6df8ee9..8bbca05 100644
--- a/applications/task-work-order/src/permission.js
+++ b/applications/task-work-order/src/permission.js
@@ -59,14 +59,14 @@
 
           let toMenu = findRouteByPath(newMenu, to.path)
 
-          store.commit('ADD_TAG', {
-            name: firstMenu.name,
-            path: firstMenu.path,
-            fullPath: firstMenu.path,
-            params: firstMenu.params || {},
-            query: firstMenu.query || {},
-            meta: firstMenu.meta || {},
-          })
+          // store.commit('ADD_TAG', {
+          //   name: firstMenu.name,
+          //   path: firstMenu.path,
+          //   fullPath: firstMenu.path,
+          //   params: firstMenu.params || {},
+          //   query: firstMenu.query || {},
+          //   meta: firstMenu.meta || {},
+          // })
           store.commit('ADD_TAG', {
             name: toMenu.name,
             path: toMenu.path,
@@ -135,7 +135,7 @@
 	NProgress.done()
 	const isLoginPage = to.path === '/login'
 	// 根据是否登录页设置标题
-	const pageTitle = isLoginPage ? '中图智飞低空感知网平台' : '综合管理平台'
+	const pageTitle = isLoginPage ? '任务工单平台' : '综合管理平台'
 	document.title = pageTitle
 	store.commit('SET_IS_SEARCH', false)
 })
diff --git a/applications/task-work-order/src/router/views/index.js b/applications/task-work-order/src/router/views/index.js
index e075498..de30ead 100644
--- a/applications/task-work-order/src/router/views/index.js
+++ b/applications/task-work-order/src/router/views/index.js
@@ -4,7 +4,6 @@
 export default [
 	{
 		path: '/',
-		name:'工单管理首页',
 		redirect: '/orderView/orderManage/orderManage/index',
 	},
   {
diff --git a/applications/task-work-order/src/store/modules/tags.js b/applications/task-work-order/src/store/modules/tags.js
index e606691..a0473b5 100644
--- a/applications/task-work-order/src/store/modules/tags.js
+++ b/applications/task-work-order/src/store/modules/tags.js
@@ -15,6 +15,7 @@
       setStore({ name: 'tag', content: state.tag })
       if (state.bsTagList.some(ele => ele.fullPath == action.fullPath)) return
       state.bsTagList.push(action)
+			console.log(state.bsTagList,'99')
       setStore({ name: 'bsTagList', content: state.bsTagList })
     },
     DEL_TAG: (state, action) => {
diff --git a/applications/task-work-order/src/styles/common.scss b/applications/task-work-order/src/styles/common.scss
index 56dc373..d256339 100644
--- a/applications/task-work-order/src/styles/common.scss
+++ b/applications/task-work-order/src/styles/common.scss
@@ -106,6 +106,7 @@
     flex: 1;
     height: 100%;
     box-sizing: border-box;
+    background: url('@/assets/images/layoutBg.png') repeat;
 
     .layer-content-bottom {
       width: 100%;
diff --git a/applications/task-work-order/src/styles/tags.scss b/applications/task-work-order/src/styles/tags.scss
index e6fc23c..e47bba3 100644
--- a/applications/task-work-order/src/styles/tags.scss
+++ b/applications/task-work-order/src/styles/tags.scss
@@ -38,13 +38,13 @@
     border-radius: 3px 3px 3px 3px;
 
     &.is-active {
-      padding: 0 !important;
-      padding-left: 20px !important;
+      //padding: 0 !important;
+      //padding-left: 20px !important;
       color: #FFFFFF;
       background: #5B6BFF;
 
       .is-icon-close {
-        margin: 0 10px;
+        //margin: 0 10px;
       }
     }
 
@@ -114,4 +114,4 @@
     padding: 1px 0 0 15px;
     box-sizing: border-box;
   }
-}
\ No newline at end of file
+}
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 ea78133..31d3a20 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
@@ -76,13 +76,8 @@
 								</template>
 							</el-table-column>
 							<el-table-column prop="executeTime" show-overflow-tooltip label="任务执行时间" />
-							<el-table-column prop="feishou" show-overflow-tooltip label="选择飞手" />
-							<el-table-column prop="deviceId" show-overflow-tooltip label="选择设备" />
-							<el-table-column label="操作" class-name="operation-btns">
-								<template v-slot="{ row }">
-									<el-link type="primary" @click="">查看</el-link>
-								</template>
-							</el-table-column>
+							<el-table-column prop="recommendFlyerName" show-overflow-tooltip label="选择飞手" />
+							<el-table-column prop="deviceName" show-overflow-tooltip label="选择设备" />
 						</el-table>
 					</template>
 				</div>
@@ -187,7 +182,7 @@
 						<el-table-column prop="devicePayload" label="设备负载" />
 					</el-table>
 				</template>
-				<div v-else>请先选择设备需求并绘制范围</div>
+				<div v-else>请先选择设备需求并在地图上绘制工单范围</div>
 			</div>
 		</div>
 
@@ -215,10 +210,10 @@
 				</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(7)">同意修改</el-button>
 				<el-button v-if="gdStatus === '22'" @click="statusChange(8)">不同意修改</el-button>
-				<el-button v-if="gdStatus === '21'" @click="statusChange(5)">同意取消</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>
 				<el-button v-if="gdStatus === '30'" @click="addDescription">协商修改</el-button>
 				<el-button v-if="gdStatus === '31'" @click="statusChange(10)">同意</el-button>
 			</template>
@@ -561,7 +556,6 @@
 		hasPatrolTaskList.value && gdPatrolTaskPage()
 		dialogMode.value === 'edit' ? editPolygon() : viewPolygon()
 	}
-	await getDeviceList()
 	// setMapDevice()
 	await nextTick()
 	syncSelection()
@@ -609,18 +603,17 @@
 
 	.processBox {
 		width: 312px;
-		.el-timeline{
+		.el-timeline {
 			padding-left: 100px;
 		}
-		.item-content{
+		.item-content {
 			position: relative;
-			.flowName{
+			.flowName {
 				position: absolute;
 				left: -100px;
 				top: 0;
 			}
 		}
-
 	}
 }
 
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 524292f..df3b2c3 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
@@ -45,7 +45,7 @@
 					<el-option
 						v-for="item in dictObj.workOrderStatus"
 						:key="item.dictKey"
-						:label="item.dictValue"
+						:label="item.dictValue.split('_')[1]"
 						:value="item.dictKey"
 					/>
 				</el-select>
diff --git a/uniapps/work-app/README.md b/uniapps/work-app/README.md
index 87cdfdc..e6152e0 100644
--- a/uniapps/work-app/README.md
+++ b/uniapps/work-app/README.md
@@ -24,60 +24,6 @@
 修改 /src/config 里面的development的参数,改为对应环境的对应变量
 
 
-
-
-
-
-# uniapp 团队协作开发实践模板(Vue3)
-
-[![GitHub Repo stars](https://img.shields.io/github/stars/oyjt/uniapp-vue3-template?style=flat&logo=github)](https://github.com/oyjt/uniapp-vue3-template)
-[![GitHub forks](https://img.shields.io/github/forks/oyjt/uniapp-vue3-template?style=flat&logo=github)](https://github.com/oyjt/uniapp-vue3-template)
-[![node version](https://img.shields.io/badge/node-%3E%3D18-green)](https://github.com/oyjt/uniapp-vue3-template)
-[![pnpm version](https://img.shields.io/badge/pnpm-%3E%3D8-green)](https://github.com/oyjt/uniapp-vue3-template)
-[![GitHub package.json version (subfolder of monorepo)](https://img.shields.io/github/package-json/v/oyjt/uniapp-vue3-template)](https://github.com/oyjt/uniapp-vue3-template)
-[![GitHub License](https://img.shields.io/github/license/oyjt/uniapp-vue3-template)](https://github.com/oyjt/uniapp-vue3-template)
-
-
-使用uniapp+vite+vue3+typescript+uview-plus+unocss 搭建的适合团队协作的快速开发模版
-
-[uview-plus官方文档](https://uiadmin.net/uview-plus/)
-
-本项目集众多项目的优点,打造最适合团队协作开发的项目模板。
-
-国内仓库地址:[https://gitee.com/ouyang/uniapp-vue3-template](https://gitee.com/ouyang/uniapp-vue3-template)
-
-在线预览地址:[https://oyjt.github.io/uniapp-vue3-template/](https://oyjt.github.io/uniapp-vue3-template/)
-
-### 特性
-
-- [x] 集成`uview-plus3.0 ui`库
-- [x] 支持多环境打包构建
-- [x] 使用`pinia`状态管理
-- [x] 封装网络请求,并支持`Typescript`
-- [x] 支持路径别名
-- [x] 支持自动加载组件和`API`
-- [x] 自动校验`git`提交代码格式
-- [x] 集成`ESLint`、`StyleLint`、`EditorConfig`代码格式规范
-- [x] `Typescript`支持
-- [x] 集成`UnoCSS`
-- [x] 集成`iconify`图标库
-- [x] 集成`z-paging`下拉刷新功能
-- [x] 添加页面跳转拦截,登录权限校验
-- [x] 支持`token`无感刷新
-- [x] 项目分包
-- [x] 集成小程序隐私协议授权组件
-- [x] 项目构建自动删除本地图片并替换本地图片路径为线上图片
-- [x] 集成包体积视图分析插件
-- [x] 支持国际化
-- [x] 集成`alova`网络请求(具体使用请切换到 [feature/alova](https://github.com/oyjt/uniapp-vue3-template/tree/feature/alova) 分支)
-- [x] 集成`axios`网络请求(具体使用请切换到 [feature/axios](https://github.com/oyjt/uniapp-vue3-template/tree/feature/axios) 分支)
-- [x] 支持新的`wot-design-uni`库(具体使用请切换到[feature/wot-design-uni](https://github.com/oyjt/uniapp-vue3-template/tree/feature/wot-design-uni)分支),[wot-design-uni官方文档](https://wot-design-uni.cn/)
-- [x] 支持新的`shadcn-ui`库(具体使用请切换到[feature/shadcn-ui](https://github.com/oyjt/uniapp-vue3-template/tree/feature/shadcn-ui)分支),[shadcn-ui官方文档](https://ui.shadcn.com/)
-- [x] 更好的 `AI` 支持,适配`cursor`和`trae`规则,集成`MCP`插件
-
-### uniapp插件推荐
-- [uniapp 插件精选(https://github.com/oyjt/awesome-uniapp)](https://github.com/oyjt/awesome-uniapp)
-
 ### 目录结构
 项目中采用目前最新的技术方案来实现,目录结构清晰。
 ```
diff --git a/uniapps/work-wx/README.md b/uniapps/work-wx/README.md
index bcc569a..758c6f4 100644
--- a/uniapps/work-wx/README.md
+++ b/uniapps/work-wx/README.md
@@ -24,60 +24,6 @@
 修改 /src/config 里面的development的参数,改为对应环境的对应变量
 
 
-
-
-
-
-# uniapp 团队协作开发实践模板(Vue3)
-
-[![GitHub Repo stars](https://img.shields.io/github/stars/oyjt/uniapp-vue3-template?style=flat&logo=github)](https://github.com/oyjt/uniapp-vue3-template)
-[![GitHub forks](https://img.shields.io/github/forks/oyjt/uniapp-vue3-template?style=flat&logo=github)](https://github.com/oyjt/uniapp-vue3-template)
-[![node version](https://img.shields.io/badge/node-%3E%3D18-green)](https://github.com/oyjt/uniapp-vue3-template)
-[![pnpm version](https://img.shields.io/badge/pnpm-%3E%3D8-green)](https://github.com/oyjt/uniapp-vue3-template)
-[![GitHub package.json version (subfolder of monorepo)](https://img.shields.io/github/package-json/v/oyjt/uniapp-vue3-template)](https://github.com/oyjt/uniapp-vue3-template)
-[![GitHub License](https://img.shields.io/github/license/oyjt/uniapp-vue3-template)](https://github.com/oyjt/uniapp-vue3-template)
-
-
-使用uniapp+vite+vue3+typescript+uview-plus+unocss 搭建的适合团队协作的快速开发模版
-
-[uview-plus官方文档](https://uiadmin.net/uview-plus/)
-
-本项目集众多项目的优点,打造最适合团队协作开发的项目模板。
-
-国内仓库地址:[https://gitee.com/ouyang/uniapp-vue3-template](https://gitee.com/ouyang/uniapp-vue3-template)
-
-在线预览地址:[https://oyjt.github.io/uniapp-vue3-template/](https://oyjt.github.io/uniapp-vue3-template/)
-
-### 特性
-
-- [x] 集成`uview-plus3.0 ui`库
-- [x] 支持多环境打包构建
-- [x] 使用`pinia`状态管理
-- [x] 封装网络请求,并支持`Typescript`
-- [x] 支持路径别名
-- [x] 支持自动加载组件和`API`
-- [x] 自动校验`git`提交代码格式
-- [x] 集成`ESLint`、`StyleLint`、`EditorConfig`代码格式规范
-- [x] `Typescript`支持
-- [x] 集成`UnoCSS`
-- [x] 集成`iconify`图标库
-- [x] 集成`z-paging`下拉刷新功能
-- [x] 添加页面跳转拦截,登录权限校验
-- [x] 支持`token`无感刷新
-- [x] 项目分包
-- [x] 集成小程序隐私协议授权组件
-- [x] 项目构建自动删除本地图片并替换本地图片路径为线上图片
-- [x] 集成包体积视图分析插件
-- [x] 支持国际化
-- [x] 集成`alova`网络请求(具体使用请切换到 [feature/alova](https://github.com/oyjt/uniapp-vue3-template/tree/feature/alova) 分支)
-- [x] 集成`axios`网络请求(具体使用请切换到 [feature/axios](https://github.com/oyjt/uniapp-vue3-template/tree/feature/axios) 分支)
-- [x] 支持新的`wot-design-uni`库(具体使用请切换到[feature/wot-design-uni](https://github.com/oyjt/uniapp-vue3-template/tree/feature/wot-design-uni)分支),[wot-design-uni官方文档](https://wot-design-uni.cn/)
-- [x] 支持新的`shadcn-ui`库(具体使用请切换到[feature/shadcn-ui](https://github.com/oyjt/uniapp-vue3-template/tree/feature/shadcn-ui)分支),[shadcn-ui官方文档](https://ui.shadcn.com/)
-- [x] 更好的 `AI` 支持,适配`cursor`和`trae`规则,集成`MCP`插件
-
-### uniapp插件推荐
-- [uniapp 插件精选(https://github.com/oyjt/awesome-uniapp)](https://github.com/oyjt/awesome-uniapp)
-
 ### 目录结构
 项目中采用目前最新的技术方案来实现,目录结构清晰。
 ```

--
Gitblit v1.9.3