From d997410c9df1de0e10618b96bb28791cd749079c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=A4=8F=E5=A4=A7=E8=83=86?= <1101282782@qq.com>
Date: Tue, 30 Sep 2025 16:51:47 +0800
Subject: [PATCH 1/4] =?UTF-8?q?=E6=A8=A1=E5=9E=8B=E5=BA=93=E3=80=81?=
=?UTF-8?q?=E5=86=9B=E6=A0=87=E5=BA=93=E3=80=81=E8=B7=AF=E5=BE=84=E8=A7=84?=
=?UTF-8?q?=E5=88=92=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/renderer/src/api/graphLabel/index.ts | 11 +-
src/renderer/src/api/model/index.ts | 8 +-
src/renderer/src/api/photo/index.ts | 7 +
src/renderer/src/api/route/index.ts | 30 +++-
.../setPup/components/engineering.vue | 132 +++++++++++++++---
.../setPup/components/graphLabelManage.vue | 84 +++++++++--
.../setPup/components/modelManage.vue | 94 ++++++++++---
.../setPup/components/photoManage.vue | 60 ++++++--
.../headers/components/setPup/setPup.vue | 8 +-
.../headers/components/setTool/setTool.vue | 13 +-
.../components/leftSide/leftSideFirst.vue | 13 +-
.../components/propertyBox/RoutePlanning.vue | 11 +-
.../views/components/propertyBox/graph.vue | 36 ++++-
.../components/propertyBox/graphObject.vue | 2 -
.../components/propertyBox/graphSetting.vue | 2 +-
.../views/components/propertyBox/imagePop.vue | 18 +--
.../views/components/propertyBox/model.vue | 48 +++++--
17 files changed, 462 insertions(+), 115 deletions(-)
diff --git a/src/renderer/src/api/graphLabel/index.ts b/src/renderer/src/api/graphLabel/index.ts
index 9b8feb2..860a6ab 100644
--- a/src/renderer/src/api/graphLabel/index.ts
+++ b/src/renderer/src/api/graphLabel/index.ts
@@ -46,7 +46,7 @@ export const GraphApi = {
//军标类型列表
modelTypeList: async () => {
return await request.get({
- url: `/militaryLibrary/militaryTypeList`
+ url: `/militaryLibrary/militaryTypeTree`
})
},
//添加军标文件
@@ -76,6 +76,15 @@ export const GraphApi = {
data
})
},
+
+ //拖动层级(tree)
+ dragModelType: async (data: any) => {
+ return await request.post({
+ url: `/militaryLibrary/dragMilitaryType`,
+ data,
+ })
+ },
+
// //默认军标参数设置
// modelSetting: async (data: any) => {
// return await request.post({
diff --git a/src/renderer/src/api/model/index.ts b/src/renderer/src/api/model/index.ts
index 2614e2c..4fd5286 100644
--- a/src/renderer/src/api/model/index.ts
+++ b/src/renderer/src/api/model/index.ts
@@ -92,5 +92,11 @@ export const ModelApi = {
url: `/businessConfig/list`
})
},
-
+ //拖动层级(tree)
+ dragModelType: async (data: any) => {
+ return await request.post({
+ url: `/modelLibrary/dragModelType`,
+ data,
+ })
+ },
}
diff --git a/src/renderer/src/api/photo/index.ts b/src/renderer/src/api/photo/index.ts
index 84b6d80..c07d3fa 100644
--- a/src/renderer/src/api/photo/index.ts
+++ b/src/renderer/src/api/photo/index.ts
@@ -76,6 +76,13 @@ export const PhotoApi = {
data
})
},
+ //拖动调整图标类型层级
+ dragModelType: async (data: any) => {
+ return await request.post({
+ url: `/iconLibrary/dragIconType`,
+ data
+ })
+ },
// //默认图标参数设置
// modelSetting: async (data: any) => {
// return await request.post({
diff --git a/src/renderer/src/api/route/index.ts b/src/renderer/src/api/route/index.ts
index 09a8140..c9c620f 100644
--- a/src/renderer/src/api/route/index.ts
+++ b/src/renderer/src/api/route/index.ts
@@ -10,16 +10,38 @@ export const RouteApi = {
},
//获取地图列表
getRouteList: async () => {
- return await request.get({
- url: `/graphhopper/list`
+ return await request.post({
+ url: `/pbfInfo/list`
})
},
- //加载路网数据
+ // //加载路网数据
+ // loadRoute: async (data: any) => {
+ // return await request.post({
+ // url: `/graphhopper/loadMap`,
+ // data,
+ // headersType: 'application/x-www-form-urlencoded'
+ // })
+ // },
+ //添加路网数据
loadRoute: async (data: any) => {
return await request.post({
- url: `/graphhopper/loadMap`,
+ url: `/pbfInfo/add`,
data,
headersType: 'application/x-www-form-urlencoded'
})
},
+ //启用路网数据
+ enableRoute: async (data: any) => {
+ return await request.post({
+ url: `/pbfInfo/enable`,
+ data,
+ })
+ },
+ //删除路网数据
+ delRoute: async (data: any) => {
+ return await request.post({
+ url: `/pbfInfo/delete`,
+ data,
+ })
+ },
}
diff --git a/src/renderer/src/views/components/headers/components/setPup/components/engineering.vue b/src/renderer/src/views/components/headers/components/setPup/components/engineering.vue
index f7e9d45..6d64b72 100644
--- a/src/renderer/src/views/components/headers/components/setPup/components/engineering.vue
+++ b/src/renderer/src/views/components/headers/components/setPup/components/engineering.vue
@@ -4,7 +4,7 @@
工程设置
- -->
+
-
-
-
-
- 路网导入
-
-
+
+
+
+ 路网导入
+
+
-
-
+
+
@@ -33,12 +37,27 @@
/>
- {{ item.fileName }}
+ {{ item.name }}
{{ item.createdAt }}
-
+ 已启用
+
+
+ 启用
+
+
删除
@@ -122,10 +141,15 @@
@@ -226,6 +314,7 @@ const handleError = (error: Error) => {
box-sizing: border-box;
display: flex;
line-height: 32px; // padding: 20px 0;
+ padding: 0 0 20px 0;
.fankuai {
width: 10px;
height: 10px;
@@ -267,9 +356,10 @@ const handleError = (error: Error) => {
}
.fileList {
width: 100%;
- height: 20vh;
+ // height: 20vh;
+ max-height: 20vh;
box-sizing: border-box;
- padding: 20px 0;
+ padding: 0 0 20px 0;
.fileList_nav {
width: 100%;
diff --git a/src/renderer/src/views/components/headers/components/setPup/components/graphLabelManage.vue b/src/renderer/src/views/components/headers/components/setPup/components/graphLabelManage.vue
index 77d3de5..2de41bd 100644
--- a/src/renderer/src/views/components/headers/components/setPup/components/graphLabelManage.vue
+++ b/src/renderer/src/views/components/headers/components/setPup/components/graphLabelManage.vue
@@ -37,6 +37,8 @@
draggable
ref="treeRef"
node-key="id"
+ empty-text=""
+ :default-expanded-keys="expandedKeys"
@node-click="handleTypeClick"
@node-contextmenu="handleContextMenu"
@node-drag-start="handleDragStart"
@@ -79,11 +81,15 @@
-
+
+
@@ -145,6 +151,7 @@ import {
const fs = require('fs')
const eventBus: any = inject('bus')
var clickTreeNode: any = reactive({})
+var leftClickTreeNode: any = reactive({})
interface TypeNode {
id: string
@@ -159,8 +166,8 @@ interface ModelItem {
id: string
typeId: string
name: string
- thumbnail: string
militaryId: string
+ militaryDataUrl: string
}
const typeTreeData = ref([])
@@ -225,12 +232,26 @@ const addType = () => {
dialogVisible.value = false
}
+var expandedKeys: any = ref([])
+// 获取当前所有展开节点的key
+const getExpandedKeys = () => {
+ const nodesMap = treeRef.value?.store?.nodesMap || {}
+ return Object.values(nodesMap)
+ .filter((node) => node.expanded)
+ .map((node) => node.key)
+}
+
+// 节点展开/折叠时更新状态
+const updateExpandedState = () => {
+ const keys = getExpandedKeys()
+ expandedKeys.value = keys
+}
+
//获取模型列表
eventBus.on('settingPop', (data) => {
if (data) {
//关闭弹框时更新模型列表
- // getModelList()
- getModelListByType(showImageRow.militaryTypeId)
+ // getModelListByType(showImageRow.militaryTypeId)
showImageRow = null
}
})
@@ -321,10 +342,11 @@ const importModelDB = () => {
const addModelDB = (path) => {
let formData = new FormData()
- formData.append('modelPath', path)
+ formData.append('militaryPath', path)
GraphApi.importModelDB(formData).then((res) => {
if (res.code == 0 || res.code == 200) {
ElMessage.success('导入成功')
+ modelList.value = []
getModelList()
}
})
@@ -352,6 +374,19 @@ const handleDragEnd = (
ev: DragEvents
) => {
console.log('tree drag end:', dropNode, dropType, ev, draggingNode)
+ let nodeList = dropNode.childNodes.map((item, index) => {
+ return {
+ id: item.data.id,
+ parentId: dropNode.data.id,
+ treeIndex: index
+ }
+ })
+ GraphApi.dragModelType(nodeList).then((res) => {
+ if (res.code == 0 || res.code == 200) {
+ ElMessage.success('拖拽成功')
+ getModelList()
+ }
+ })
}
const handleDrop = (draggingNode: Node, dropNode: Node, dropType: NodeDropType, ev: DragEvents) => {
console.log('tree drop:', dropNode.label, dropType)
@@ -370,7 +405,7 @@ const allowDrag = (draggingNode: Node) => {
//拖拽结束
//---------------------查看缩略图--------------------
-var showImageRow:any = null
+var showImageRow: any = null
const showImage = (row: any) => {
showImageRow = row
eventBus.emit('imagePopDialog', row)
@@ -414,8 +449,10 @@ const toggleExpand = (row: any) => {
if (row.expanded) {
row.collapse()
+ updateExpandedState()
} else {
row.expand()
+ updateExpandedState()
// getModelListByType(row.data.id)
}
} else {
@@ -423,6 +460,7 @@ const toggleExpand = (row: any) => {
}
getModelListByType(row.data.id)
currentTypeId.value = row.id
+ leftClickTreeNode = row.data
// loadModelsByType(row.id)
contextMenu.visible && (contextMenu.visible = false)
}
@@ -472,6 +510,7 @@ const handleMenuCommand = (command: string) => {
const handleTypeClick = (row: any) => {
getModelListByType(row.id)
currentTypeId.value = row.$treeNodeId
+ leftClickTreeNode = row
// // 模拟根据类型ID加载模型数据
// loadModelsByType(row.id)
// contextMenu.visible && (contextMenu.visible = false)
@@ -520,7 +559,7 @@ const handleRenameType = (row: TypeNode) => {
}
const handleDeleteType = (row: TypeNode) => {
- ElMessageBox.confirm('是否删除数据?', '警告', {
+ ElMessageBox.confirm('是否删除数据?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
@@ -637,7 +676,7 @@ const getNamefromPath = (path) => {
}
const handleDelete = (row: any) => {
- ElMessageBox.confirm('是否删除数据?', '警告', {
+ ElMessageBox.confirm('是否删除数据?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
@@ -828,3 +867,30 @@ onMounted(() => {
letter-spacing: 1px;
}
+
diff --git a/src/renderer/src/views/components/headers/components/setPup/components/modelManage.vue b/src/renderer/src/views/components/headers/components/setPup/components/modelManage.vue
index ec57aa0..5a5f4d5 100644
--- a/src/renderer/src/views/components/headers/components/setPup/components/modelManage.vue
+++ b/src/renderer/src/views/components/headers/components/setPup/components/modelManage.vue
@@ -34,9 +34,11 @@
:allow-drop="allowDrop"
:allow-drag="allowDrag"
:data="typeTreeData"
+ :default-expanded-keys="expandedKeys"
draggable
ref="treeRef"
node-key="id"
+ empty-text=""
@node-click="handleTypeClick"
@node-contextmenu="handleContextMenu"
@node-drag-start="handleDragStart"
@@ -83,7 +85,7 @@
@@ -137,7 +139,7 @@