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..f7d30ea 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" @@ -56,6 +58,8 @@ }" @click.stop="toggleExpand(node)" class="allowDrag" + style="width: 100%; text-overflow: ellipsis; overflow: hidden" + :title="node.label" > - + @@ -145,6 +150,8 @@ import { const fs = require('fs') const eventBus: any = inject('bus') var clickTreeNode: any = reactive({}) +var leftClickTreeNode: any = reactive({}) +const service = ref(localStorage.getItem('service')) 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..bd99382 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" @@ -56,6 +58,8 @@ }" @click.stop="toggleExpand(node)" class="allowDrag" + style="width: 100%; text-overflow: ellipsis; overflow: hidden" + :title="node.label" > @@ -137,7 +141,7 @@ diff --git a/src/renderer/src/views/components/propertyBox/graphObject.vue b/src/renderer/src/views/components/propertyBox/graphObject.vue index 356f504..120e920 100644 --- a/src/renderer/src/views/components/propertyBox/graphObject.vue +++ b/src/renderer/src/views/components/propertyBox/graphObject.vue @@ -341,9 +341,7 @@ const closeCallback = () => { } const nodeEdit = () => { - console.log(entityOptions.value._isdrag, '_isdrag') that.drag(!entityOptions.value._isdrag, (data) => { - console.log(data, 'data') that.options = data }) } diff --git a/src/renderer/src/views/components/propertyBox/graphSetting.vue b/src/renderer/src/views/components/propertyBox/graphSetting.vue index e72fd7a..a13009c 100644 --- a/src/renderer/src/views/components/propertyBox/graphSetting.vue +++ b/src/renderer/src/views/components/propertyBox/graphSetting.vue @@ -121,7 +121,7 @@ const viewPointHeightInput = () => { const closeCallBack = (e) => { type.value = 'point' distance.value = null - eventBus.emit('closeModelSet', true) + eventBus.emit('closeModelSetGraph', true) } const close = () => { baseDialog.value?.close() diff --git a/src/renderer/src/views/components/propertyBox/imagePop.vue b/src/renderer/src/views/components/propertyBox/imagePop.vue index 2c2fe5a..bdde1c8 100644 --- a/src/renderer/src/views/components/propertyBox/imagePop.vue +++ b/src/renderer/src/views/components/propertyBox/imagePop.vue @@ -15,7 +15,7 @@
模型名称 - +
@@ -45,9 +45,10 @@ const eventBus: any = inject('bus') const viewPointHeight: any = ref(1.8) var rowData: any = reactive([]) var imageData: any = ref(null) -var newData: any = reactive({ - name: '' -}) +const service = ref(localStorage.getItem('service')) +// var newData: any = reactive({ +// name: '' +// }) eventBus.on('imagePopDialog', (data) => { rowData = data rowData.name = data.modelName @@ -59,7 +60,7 @@ eventBus.on('imagePopDialog', (data) => { }) }) //----------------模型预览--------------- -const threeCanvas:any = ref(null) +const threeCanvas: any = ref(null) let scene, camera, renderer, model, controls const initThreeJS = () => { @@ -114,7 +115,7 @@ const initThreeJS = () => { const loadModel = () => { const loader = new GLTFLoader() loader.load( - 'http://127.0.0.1:8848' + rowData.data, // 模型路径 + service.value + rowData.modelDataUrl, // 模型路径 function (gltf) { // onLoad回调函数 model = gltf.scene @@ -151,7 +152,6 @@ const closeCallBack = (e) => { renderer.domElement.remove() // 从DOM中移除渲染器。 imageData.value = null rowData = [] - newData.name = '' //打开系统设置弹框 eventBus.emit('settingPop', true) } @@ -162,7 +162,8 @@ const setImage = (e) => { const canvas = renderer.domElement canvas.toBlob((blob) => { - imageData.value = blob + const file = new File([blob], 'filename.png', { type: 'image/png' }) + imageData.value = file ElMessage.warning('点击保存是会应用当前图片') }, 'image/png') } @@ -172,7 +173,7 @@ const close = (e) => { const save = (e) => { const formData = new FormData() formData.append('modelId', rowData.id) - newData.name && formData.append('modelName', newData.name) + rowData.name && formData.append('modelName', rowData.name) imageData.value && formData.append('file', imageData.value) ModelApi.updatePoster(formData).then((res) => { if (res.code == 0 || res.code == 200) { diff --git a/src/renderer/src/views/components/propertyBox/model.vue b/src/renderer/src/views/components/propertyBox/model.vue index 1cf8e22..b35381a 100644 --- a/src/renderer/src/views/components/propertyBox/model.vue +++ b/src/renderer/src/views/components/propertyBox/model.vue @@ -13,7 +13,7 @@