From 9f29b78049d5dab7fb11dd00e1b2a94af05d7229 Mon Sep 17 00:00:00 2001 From: Hcat <2768237203@qq.com> Date: Wed, 13 Mar 2024 19:58:51 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=9B=B4=E6=96=B01.=E6=B5=8F=E8=A7=88?= =?UTF-8?q?=E5=99=A8=E4=B8=8D=E7=82=B9=E5=87=BB2.=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E9=A3=8E=E5=8E=8B3.=E6=B5=8F=E8=A7=88=E5=99=A8=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B=E5=8F=AA=E8=83=BD=E5=B7=A6=E5=8F=B3=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?4.=E9=BC=A0=E6=A0=87hover=E6=98=BE=E7=A4=BA=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...化版.gltf => chanel-have-wall-now-use.gltf} | 0 .../content/tunnelScene/PreviewScene.vue | 14 +- .../content/tunnelScene/TunnelScene.vue | 10 +- .../tunnelScene/editEquComp/editDialog.vue | 2 +- .../tunnelScene/preEquComp/preDialog.vue | 24 +-- .../content/tunnelScene/sceneClass/demo.js | 57 +++++-- .../sceneClass/handleRLclick/handleLhover.js | 54 +++++++ src/views/tunnel/index.vue | 153 +++++++++--------- 8 files changed, 210 insertions(+), 104 deletions(-) rename public/tunnelModel/{chanel-have-wall优化版.gltf => chanel-have-wall-now-use.gltf} (100%) create mode 100644 src/components/content/tunnelScene/sceneClass/handleRLclick/handleLhover.js diff --git a/public/tunnelModel/chanel-have-wall优化版.gltf b/public/tunnelModel/chanel-have-wall-now-use.gltf similarity index 100% rename from public/tunnelModel/chanel-have-wall优化版.gltf rename to public/tunnelModel/chanel-have-wall-now-use.gltf diff --git a/src/components/content/tunnelScene/PreviewScene.vue b/src/components/content/tunnelScene/PreviewScene.vue index 2794ab4..cbca21b 100644 --- a/src/components/content/tunnelScene/PreviewScene.vue +++ b/src/components/content/tunnelScene/PreviewScene.vue @@ -19,6 +19,8 @@ + + @@ -78,7 +80,7 @@ const modelStore = useModelSceneStore(); const params = defineProps(["isedit", "tunnelId", "tunnelLen", "largeScreen"]); //接收参数看是不是编辑模式,如果是编辑模式,则需要做一些处理 - +// console.log(load); let isedit = ref(params.isedit) let fanData; let tunnelAlias = reactive('') @@ -152,10 +154,10 @@ async function handleMounted() { demo = new ThreeDScene(three, content.value); //看是不是预览模式,然后继续相关的操作(会在demo中的初始化中进行) demo.isedit = params.isedit; - let tunnelasync = await demo.loadModel(GLTFLoader, "./assets/tunnelModel/chanel-have-wall.gltf"); + let tunnelasync = await demo.loadModel(GLTFLoader, "/tunnelModel/chanel-have-wall-now-use.gltf"); demo.addOrbitControls(OrbitControls); demo.addTween(TWEEN); - demo.addCSS3Renderer(CSS3DRenderer, CSS3DSprite, doms); + demo.addCSS3Renderer(CSS2DRenderer, CSS2DObject, doms); demo.setDistance(10); lClickCallback(demo); //绑定左键回调 rClickCallback(demo); //绑定右键回调 @@ -228,7 +230,11 @@ function loadModel(path) { (obj) => { resolve(obj); }, - (xhr) => { }, + (xhr) => { + //这里可以拿到加载的进度条!!! + console.log(xhr); + console.log((xhr.loaded / xhr.total) * 100 + "% loaded"); + }, (err) => { reject(err); } diff --git a/src/components/content/tunnelScene/TunnelScene.vue b/src/components/content/tunnelScene/TunnelScene.vue index 3b0c41a..9419cfc 100644 --- a/src/components/content/tunnelScene/TunnelScene.vue +++ b/src/components/content/tunnelScene/TunnelScene.vue @@ -50,6 +50,7 @@ import { RGBELoader } from "three/examples/jsm/loaders/RGBELoader"; import { onMounted, reactive, ref, toRaw, watch } from "vue"; import { ElMessage } from "element-plus"; import { useModelSceneStore } from "@/store/modelSceneStore"; +import { LOD } from "three"; // 获取html标签跟随组件dom const content = ref(null); const info = ref(null); @@ -85,12 +86,13 @@ async function handleMounted() { demo = new ThreeDScene(three, content.value); //看是不是预览模式,然后继续相关的操作(会在demo中的初始化中进行) demo.isedit = params.isedit; - + // "../../../../public/tunnelModel/chanel-have-wall-now-use.gltf" const loaded = await demo.loadModel( GLTFLoader, - "./assets/tunnelModel/chanel-have-wall.gltf" + "/tunnelModel/chanel-have-wall-now-use.gltf", + true ); - demo.addOrbitControls(OrbitControls); + demo.addOrbitControls(OrbitControls, true); demo.addTween(TWEEN); demo.addCSS3Renderer(CSS3DRenderer, CSS3DSprite, doms); demo.setDistance(10); @@ -165,6 +167,8 @@ function editDevInfo( //左键/双击左键回调函数 function lClickCallback(demo) { + // console.log('左键点击查看信息'); + //demo动态添加函数,为操作组件内部 function displayDevInfo(targetPoint = null) { hasDevice.value = targetPoint.hasDevice; diff --git a/src/components/content/tunnelScene/editEquComp/editDialog.vue b/src/components/content/tunnelScene/editEquComp/editDialog.vue index ddf571a..e0de9ad 100644 --- a/src/components/content/tunnelScene/editEquComp/editDialog.vue +++ b/src/components/content/tunnelScene/editEquComp/editDialog.vue @@ -4,7 +4,7 @@

当前距离洞口:{{ pointDistance_str }}

-
当前风压:{{ p }}Pa
+

传感器类型

diff --git a/src/components/content/tunnelScene/preEquComp/preDialog.vue b/src/components/content/tunnelScene/preEquComp/preDialog.vue index 217d3dc..a4a3c0c 100644 --- a/src/components/content/tunnelScene/preEquComp/preDialog.vue +++ b/src/components/content/tunnelScene/preEquComp/preDialog.vue @@ -1,27 +1,27 @@