From efa6d5b8c1df1a928bc78e881fb95b795bc9e34e Mon Sep 17 00:00:00 2001 From: Hcat <2768237203@qq.com> Date: Fri, 22 Dec 2023 13:40:46 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=B8=80=E7=82=B9=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../content/tunnelScene/PreviewScene.vue | 13 +++++---- .../content/tunnelScene/TunnelScene.vue | 3 +- .../tunnelScene/preEquComp/preDialog.vue | 28 ++++++++++--------- .../content/tunnelScene/sceneClass/demo.js | 26 ++--------------- .../sceneClass/tunnelInit/index.js | 24 ++++++++++++++++ src/router/index.js | 2 +- src/views/{tunnel => edit}/edit.vue | 0 7 files changed, 50 insertions(+), 46 deletions(-) create mode 100644 src/components/content/tunnelScene/sceneClass/tunnelInit/index.js rename src/views/{tunnel => edit}/edit.vue (100%) diff --git a/src/components/content/tunnelScene/PreviewScene.vue b/src/components/content/tunnelScene/PreviewScene.vue index 9ae9bb7..3d96d1b 100644 --- a/src/components/content/tunnelScene/PreviewScene.vue +++ b/src/components/content/tunnelScene/PreviewScene.vue @@ -73,7 +73,7 @@ async function handleMounted() { demo = new ThreeDScene(three, content.value); //看是不是预览模式,然后继续相关的操作(会在demo中的初始化中进行) demo.isedit = params.isedit; - demo.loadModel(GLTFLoader, "./assets/tunnelModel/chanel.gltf"); + let tunnelasync = await demo.loadModel(GLTFLoader, "./assets/tunnelModel/chanel.gltf"); demo.addOrbitControls(OrbitControls); demo.addTween(TWEEN); demo.addCSS3Renderer(CSS3DRenderer, CSS3DSprite, doms); @@ -87,13 +87,12 @@ async function handleMounted() { // 初始化设备模型 try { + //在这加载隧道 const map = new Map(); map.set("equ_fan", await loadModel("/devicesModel/model2.obj")); map.set("equ_sensors", await loadModel("/devicesModel/sensors.obj")); - // 给对象初加载设备模型 demo.initDevicesModel(map); - await Promise.all([map.get("equ_fan"), map.get("equ_sensors")]); demo.tunnelModeInit(); } catch (err) { console.log(err); @@ -242,14 +241,16 @@ function previewEquInfProcess() { let tunnelThreeConfig = demo.ThreeConfig.data.tunnelThreeConfig for (const equipment of tunnelThreeConfig) { if (equipment.pointName == targetP.name) { - console.log(equipmentType); - console.log(equipmentName); - console.log(equipmentValue); equipmentType.value = equipment.equipmentType equipmentName.value = equipment.equipmentName equipmentValue.value = equipment.equipmentValue + console.log(equipmentType.value); + console.log(equipmentName.value); + console.log(equipmentValue.value); } + } + } // let equipmentType = reactive(previewEquInfProcess().equipmentType) diff --git a/src/components/content/tunnelScene/TunnelScene.vue b/src/components/content/tunnelScene/TunnelScene.vue index 6c9fb08..ad4c6d5 100644 --- a/src/components/content/tunnelScene/TunnelScene.vue +++ b/src/components/content/tunnelScene/TunnelScene.vue @@ -72,8 +72,7 @@ async function handleMounted() { demo = new ThreeDScene(three, content.value); //看是不是预览模式,然后继续相关的操作(会在demo中的初始化中进行) demo.isedit = params.isedit; - - demo.loadModel(GLTFLoader, "./assets/tunnelModel/chanel.gltf"); + let tunnelasync = await demo.loadModel(GLTFLoader, "./assets/tunnelModel/chanel.gltf"); demo.addOrbitControls(OrbitControls); demo.addTween(TWEEN); demo.addCSS3Renderer(CSS3DRenderer, CSS3DSprite, doms); diff --git a/src/components/content/tunnelScene/preEquComp/preDialog.vue b/src/components/content/tunnelScene/preEquComp/preDialog.vue index bb20668..9a028b2 100644 --- a/src/components/content/tunnelScene/preEquComp/preDialog.vue +++ b/src/components/content/tunnelScene/preEquComp/preDialog.vue @@ -9,18 +9,18 @@

传感器类型

+ :placeholder="params.equipmentType" disabled>

设备选择

+ :placeholder="params.equipmentValue" disabled>
-
@@ -50,18 +50,20 @@ const params = defineProps(["pointNum", "pointGap", "equipmentType", "equipmentN // 当前风压 let p = ref(57); -function EquInf() { - // 发射事件给tunnel父组件 - emit("EquInf"); -} +// function EquInf() { +// // 发射事件给tunnel父组件 +// emit("EquInf"); +// } -console.log(params.equipmentType); -console.log(params.equipmentName); -console.log(params.equipmentValue); +// console.log(params.equipmentType); +// console.log(params.equipmentName); +// console.log(params.equipmentValue); -let equipmentTypeInf = ref(params.equipmentType) -let equipmentNameInf = ref(params.equipmentName) -let equipmentValueInf = ref(params.equipmentValue) + + +// let equipmentTypeInf = ref(params.equipmentType) +// let equipmentNameInf = ref(params.equipmentName) +// let equipmentValueInf = ref(params.equipmentValue) diff --git a/src/components/content/tunnelScene/sceneClass/demo.js b/src/components/content/tunnelScene/sceneClass/demo.js index 001c138..4705450 100644 --- a/src/components/content/tunnelScene/sceneClass/demo.js +++ b/src/components/content/tunnelScene/sceneClass/demo.js @@ -9,6 +9,7 @@ import { import { saveState, resetState } from "./viewBack"; import addFunction from "./addEvent"; import { addEquipment, removeEquipment } from "./editEquipment"; +import tunnelModeInit from "./tunnelInit" import { Group } from "three/examples/jsm/libs/tween.module"; export default class Demo { // 摄像机看向位置 @@ -26,6 +27,7 @@ export default class Demo { this._resetState = resetState; this.addEquipment = addEquipment; this.removeEquipment = removeEquipment; + this.tunnelModeInit = tunnelModeInit; // 外部可添加函数 this.addFunction = addFunction; @@ -509,28 +511,4 @@ export default class Demo { msg: "dda" } tunnelConfigEquipment = this.ThreeConfig.data.tunnelThreeConfig - tunnelModeInit() { - for (const item of this.tunnelConfigEquipment) { - //使用api取拿到附着点 - let pointmodel = this.scene.getObjectByName(item.pointName) - pointmodel.hasDevice; - let formInfo = { - equipmentType: item.equipmentType, //设备类型 - chooseEquipment: item.equipmentName, //设备选择(设备名称) - threshold: item.equipmentValue, //阈值 - } - this.addEquipment(pointmodel, formInfo); - } - //进行预览和编辑模式的一些操作 - if (this.isedit == false) { - this.scene.traverse(function (item) { - if (item.name.includes('point')) { - if (item.hasDevice == false) { - item.visible = false - item.layers.set(-1) - } - } - }) - } - } } diff --git a/src/components/content/tunnelScene/sceneClass/tunnelInit/index.js b/src/components/content/tunnelScene/sceneClass/tunnelInit/index.js new file mode 100644 index 0000000..4f93bc0 --- /dev/null +++ b/src/components/content/tunnelScene/sceneClass/tunnelInit/index.js @@ -0,0 +1,24 @@ +export default function tunnelModeInit() { + for (const item of this.tunnelConfigEquipment) { + //使用api取拿到附着点 + let pointmodel = this.scene.getObjectByName(item.pointName) + pointmodel.hasDevice; + let formInfo = { + equipmentType: item.equipmentType, //设备类型 + chooseEquipment: item.equipmentName, //设备选择(设备名称) + threshold: item.equipmentValue, //阈值 + } + this.addEquipment(pointmodel, formInfo); + } + //进行预览和编辑模式的一些操作 + if (this.isedit == false) { + this.scene.traverse(function (item) { + if (item.name.includes('point')) { + if (item.hasDevice == false) { + item.visible = false + item.layers.set(-1) + } + } + }) + } +} \ No newline at end of file diff --git a/src/router/index.js b/src/router/index.js index e2ec91a..a83d828 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -26,7 +26,7 @@ const routes = [ { path: '/edit', name: 'tunneledit', - component: () => import('@/views/tunnel/edit.vue'), + component: () => import('@/views/edit/edit.vue'), meta: { title: '编辑首页', breadcrumb: true diff --git a/src/views/tunnel/edit.vue b/src/views/edit/edit.vue similarity index 100% rename from src/views/tunnel/edit.vue rename to src/views/edit/edit.vue