From ccf274c0a933480e3a7fae2842da5d48e53ed406 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, 16 Sep 2025 10:26:47 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A3=9E=E8=A1=8C=E6=BC=AB=E6=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../setPup/components/authorize.vue | 11 +- .../components/leftSide/leftSideSecond.vue | 243 +++++++++--------- .../views/components/propertyBox/FlyRoam.vue | 147 +++++++++-- 3 files changed, 261 insertions(+), 140 deletions(-) diff --git a/src/renderer/src/views/components/headers/components/setPup/components/authorize.vue b/src/renderer/src/views/components/headers/components/setPup/components/authorize.vue index 0e50653..bb4da7a 100644 --- a/src/renderer/src/views/components/headers/components/setPup/components/authorize.vue +++ b/src/renderer/src/views/components/headers/components/setPup/components/authorize.vue @@ -33,11 +33,18 @@ {{ t('auths.authType') }} -
+
{{ authInfo.status ? t('auths.authTempExpire') : t('auths.authexpire') }}
-
{{ t('auths.noAuthexpire') }}
+
+ {{ t('auths.noAuthexpire') }} +
diff --git a/src/renderer/src/views/components/leftSide/leftSideSecond.vue b/src/renderer/src/views/components/leftSide/leftSideSecond.vue index 9c14688..d5afb94 100644 --- a/src/renderer/src/views/components/leftSide/leftSideSecond.vue +++ b/src/renderer/src/views/components/leftSide/leftSideSecond.vue @@ -420,124 +420,124 @@ const methodMap = { }, //模型压平 pressModel() { - // if (window.checkAuthIsValid) { - let selectedNode = window.treeObj.getSelectedNodes()[0] - if (selectedNode) { - let isTileset = ['bim', 'tileset'].includes(selectedNode.sourceType) - if (!isTileset) { - console.log('aaaaaa') + if (window.checkAuthIsValid) { + let selectedNode = window.treeObj.getSelectedNodes()[0] + if (selectedNode) { + let isTileset = ['bim', 'tileset'].includes(selectedNode.sourceType) + if (!isTileset) { + console.log('aaaaaa') + ElMessage({ + message: '请在图层指挥舱选中对应模型进行操作', + type: 'warning' + }) + return + } + // let source_id = this.$md5(new Date().getTime() + '压平面') + + let draw = new YJ.Draw.DrawPolygon(window.earth) + draw.start((err, params) => { + if (params.length > 2) { + if (err) throw err + let alt = params[0].alt + params.forEach((item) => { + if (item.alt < alt) alt = item.alt + }) + + //获取节点树对象 + + let entity = window.earth.entityMap.get(selectedNode.id).entity + + let flat = new YJ.Analysis.Flat(window.earth, entity, { + positions: params + }) + let detailOption = { + // modleId: selectedNode.id, + modelId: selectedNode.id, + positions: params, + height: flat.height + } + let id = new YJ.Tools().randomString() + let paramsData: any = { + params: detailOption, + id, + sourceName: '压平面', + sourceType: 'pressModel', + // parentId: + // selectedNode.sourceType == 'directory' ? selectedNode.id : selectedNode.parentId + parentId: selectedNode.id + } + + TreeApi.addOtherSource(paramsData) + paramsData.isShow = true + paramsData.params = JSON.stringify(paramsData.params) + ;(window as any).pressModelMap.set(id + '_' + selectedNode.id, paramsData) + ;(window as any).pressModelEntities.set(id, flat) + cusAddNodes(window.treeObj, paramsData.parentId, [paramsData]) + // //鼠标右键点击事件 + flat.onRightClick = () => {} + // _entityMap.set(node.source_id, flat) + } else { + // this.$message.warning('至少三个点') + } + }) + } else { + console.log('bbbbb') + ElMessage({ + message: '请在图层指挥舱选中对应模型进行操作', + type: 'warning' + }) + } + } else { + ElMessage({ + message: '您没有该功能的权限', + type: 'warning' + }) + } + }, + //地形开挖 + terrainDig() { + if (window.checkAuthIsValid) { + // new YJ.Analysis.TerrainExcavation(window.Earth1); + eventBus.emit('terrainExcavationDialog') + } else { + ElMessage({ + message: '您没有该功能的权限', + type: 'warning' + }) + } + }, + //剖切 + tilesetClipping() { + if (window.checkAuthIsValid) { + let selectedNode = window.treeObj.getSelectedNodes() + if (selectedNode.length < 1) { ElMessage({ message: '请在图层指挥舱选中对应模型进行操作', type: 'warning' }) return } - // let source_id = this.$md5(new Date().getTime() + '压平面') - + if (!(selectedNode[0].sourceType === 'tileset' || selectedNode[0].sourceType === 'bim')) { + ElMessage({ + message: '选中的节点不能进行剖切', + type: 'warning' + }) + return + } + let tileset = window.earth.entityMap.get(selectedNode[0].id) let draw = new YJ.Draw.DrawPolygon(window.earth) - draw.start((err, params) => { - if (params.length > 2) { - if (err) throw err - let alt = params[0].alt - params.forEach((item) => { - if (item.alt < alt) alt = item.alt - }) - - //获取节点树对象 - - let entity = window.earth.entityMap.get(selectedNode.id).entity - - let flat = new YJ.Analysis.Flat(window.earth, entity, { - positions: params - }) - let detailOption = { - // modleId: selectedNode.id, - modelId: selectedNode.id, - positions: params, - height: flat.height - } - let id = new YJ.Tools().randomString() - let paramsData: any = { - params: detailOption, - id, - sourceName: '压平面', - sourceType: 'pressModel', - // parentId: - // selectedNode.sourceType == 'directory' ? selectedNode.id : selectedNode.parentId - parentId: selectedNode.id - } - - TreeApi.addOtherSource(paramsData) - paramsData.isShow = true - paramsData.params = JSON.stringify(paramsData.params) - ;(window as any).pressModelMap.set(id + '_' + selectedNode.id, paramsData) - ;(window as any).pressModelEntities.set(id, flat) - cusAddNodes(window.treeObj, paramsData.parentId, [paramsData]) - // //鼠标右键点击事件 - flat.onRightClick = () => {} - // _entityMap.set(node.source_id, flat) - } else { - // this.$message.warning('至少三个点') - } + draw.start((err, pos) => { + let section = new YJ.Analysis.Section(window.earth, tileset.entity, { + positions: pos + }) + // _entityMap.set(selectedNode.source_id + 'pouqie', section) }) } else { - console.log('bbbbb') ElMessage({ - message: '请在图层指挥舱选中对应模型进行操作', + message: '您没有该功能的权限', type: 'warning' }) } - // } else { - // this.$message({ - // message: '您没有该功能的权限', - // type: 'warning' - // }) - // } - }, - //地形开挖 - terrainDig() { - // if (window.checkAuthIsValid) { - // new YJ.Analysis.TerrainExcavation(window.Earth1); - eventBus.emit('terrainExcavationDialog') - // } else { - // this.$message({ - // message: '您没有该功能的权限', - // type: 'warning' - // }) - // } - }, - //剖切 - tilesetClipping() { - // if (window.checkAuthIsValid) { - let selectedNode = window.treeObj.getSelectedNodes() - if (selectedNode.length < 1) { - ElMessage({ - message: '请在图层指挥舱选中对应模型进行操作', - type: 'warning' - }) - return - } - if (!(selectedNode[0].sourceType === 'tileset' || selectedNode[0].sourceType === 'bim')) { - ElMessage({ - message: '选中的节点不能进行剖切', - type: 'warning' - }) - return - } - let tileset = window.earth.entityMap.get(selectedNode[0].id) - let draw = new YJ.Draw.DrawPolygon(window.earth) - draw.start((err, pos) => { - let section = new YJ.Analysis.Section(window.earth, tileset.entity, { - positions: pos - }) - // _entityMap.set(selectedNode.source_id + 'pouqie', section) - }) - // } else { - // this.$message({ - // message: '您没有该功能的权限', - // type: 'warning' - // }) - // } }, //删除剖切 clearTilesetClipping() { @@ -555,26 +555,25 @@ const methodMap = { gdbImport() {}, //圆形统计 circleStatistics() { - // if (window.checkAuthIsValid) { - eventBus.emit('goodsSearchCircleDialog') - // } else { - // this.$message({ - // message: '您没有该功能的权限', - // type: 'warning' - // }) - // } + if (window.checkAuthIsValid) { + eventBus.emit('goodsSearchCircleDialog') + } else { + ElMessage({ + message: '您没有该功能的权限', + type: 'warning' + }) + } }, //多边形统计 polygonStatistics() { - // if (window.checkAuthIsValid) { - eventBus.emit('goodsSearchPolgonDialog') - - // } else { - // this.$message({ - // message: "您没有该功能的权限", - // type: "warning", - // }); - // } + if (window.checkAuthIsValid) { + eventBus.emit('goodsSearchPolgonDialog') + } else { + ElMessage({ + message: '您没有该功能的权限', + type: 'warning' + }) + } } } diff --git a/src/renderer/src/views/components/propertyBox/FlyRoam.vue b/src/renderer/src/views/components/propertyBox/FlyRoam.vue index 63b8154..eaa19a8 100644 --- a/src/renderer/src/views/components/propertyBox/FlyRoam.vue +++ b/src/renderer/src/views/components/propertyBox/FlyRoam.vue @@ -3,6 +3,7 @@ ref="baseDialog" class="fly-roam" title="飞行漫游" + width="382px" left="180px" top="100px" :closeCallback="closeCallBack" @@ -11,15 +12,29 @@
-
+
名称
-
+
+ + 循环播放 +
-
+
-
+ +
+
-
+ +
+
+
+ + 设置总时长 +
+ + s + +
+
@@ -110,8 +160,13 @@ @@ -120,6 +175,12 @@ import { ref, reactive } from 'vue' import { inject } from 'vue' import Dialog from '@/components/dialog/baseDialog.vue' +import { app } from 'electron' +import { TreeApi } from '@/api/tree' +import { useTreeNode } from '../tree/hooks/treeNode' +import { ElMessage } from 'element-plus' + +const { cusAddNodes } = useTreeNode() const baseDialog: any = ref(null) const eventBus: any = inject('bus') @@ -130,9 +191,44 @@ eventBus.on('flyRoamDialog', () => { show.value = true baseDialog.value?.open() setTimeout(() => { - flyRoam = YJ.Global.FlyRoam.open(window.earth, { repeat: Infinity }) + flyRoam = YJ.Global.FlyRoam.open(window.earth, { repeat: Infinity }, {}, draw) }, 100) }) +const draw = (data) => { + if (data.points.length != 0) { + let selectedNodes = window.treeObj.getSelectedNodes() + let node = selectedNodes && selectedNodes[selectedNodes.length - 1] + let parentId + if (node) { + if (node.sourceType === 'directory') { + parentId = node.id + } else { + parentId = node.parentId + } + } + let id = new YJ.Tools().randomString() + let paramsData: any = { + params: data, + id, + sourceName: '漫游路径', + sourceType: 'roam', + parentId: parentId + } + + TreeApi.addOtherSource(paramsData) + paramsData.isShow = true + paramsData.params = JSON.stringify(paramsData.params) + cusAddNodes(window.treeObj, paramsData.parentId, [paramsData]) + baseDialog.value?.close() + } else { + ElMessage({ + message: '请添加数据', + type: 'warning' + }) + } + + console.log(data) +} const clangeViewPointHeight = () => {} const viewPointHeightInput = () => { @@ -147,11 +243,30 @@ const closeCallBack = (e) => { YJ.Global.FlyRoam.cease(window.earth) YJ.Global.FlyRoam.close() } -const draw = (e) => {} +const apply = (e) => { + YJ.Global.FlyRoam.apply() +} const close = (e) => { show.value = false baseDialog.value?.close() } - +