From 6e8d651b524911c477d0257d8b96e950f5f69122 Mon Sep 17 00:00:00 2001
From: Hcat <2768237203@qq.com>
Date: Fri, 22 Dec 2023 15:50:14 +0800
Subject: [PATCH 1/2] =?UTF-8?q?=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../content/tunnelScene/PreviewScene.vue | 10 ++++--
.../content/tunnelScene/TunnelScene.vue | 3 +-
.../sceneClass/previewTunnelInit/index.js | 31 ++++++++++++-------
src/views/tunnel/index.vue | 7 +++--
4 files changed, 32 insertions(+), 19 deletions(-)
diff --git a/src/components/content/tunnelScene/PreviewScene.vue b/src/components/content/tunnelScene/PreviewScene.vue
index c029eff..e3b2d46 100644
--- a/src/components/content/tunnelScene/PreviewScene.vue
+++ b/src/components/content/tunnelScene/PreviewScene.vue
@@ -49,17 +49,19 @@ import { OBJLoader } from "three/examples/jsm/loaders/OBJLoader";
import { RGBELoader } from "three/examples/jsm/loaders/RGBELoader";
import { onMounted, reactive, ref } from "vue";
import { ElMessage } from "element-plus";
+import { useModelSceneStore } from "@/store/modelSceneStore";
// 获取html标签跟随组件dom
const content = ref(null);
const info = ref(null);
const edit = ref(null);
+const store = useModelSceneStore();
let demo; //定义demo全局变量
// const loader = new OBJLoader();
const loader = new OBJLoader();
let hdrLoader = new RGBELoader();
let backColorSet = three.sRGBEncoding;
-const params = defineProps(["isedit"]); //接收参数看是不是编辑模式,如果是编辑模式,则需要做一些处理
+const params = defineProps(["isedit", "tunnelId"]); //接收参数看是不是编辑模式,如果是编辑模式,则需要做一些处理
// alert(params.isedit)
@@ -84,7 +86,8 @@ async function handleMounted() {
//加载HDR背景图片
demo.loadBackground(hdrLoader, backColorSet);
-
+ console.log("xxxx", params.tunnelId);
+ const text = await store.initData(params.tunnelId);
// 初始化设备模型
try {
//在这加载隧道
@@ -93,7 +96,8 @@ async function handleMounted() {
map.set("equ_sensors", await loadModel("/devicesModel/sensors.obj"));
// 给对象初加载设备模型
demo.initDevicesModel(map);
- demo.previewtunnelModeInit();
+ const equipmentList = await store.getEquipmentList();
+ demo.previewtunnelModeInit(equipmentList);
} catch (err) {
console.log(err);
}
diff --git a/src/components/content/tunnelScene/TunnelScene.vue b/src/components/content/tunnelScene/TunnelScene.vue
index 54c4444..b52a163 100644
--- a/src/components/content/tunnelScene/TunnelScene.vue
+++ b/src/components/content/tunnelScene/TunnelScene.vue
@@ -87,7 +87,8 @@ async function handleMounted() {
//加载HDR背景图片
demo.loadBackground(hdrLoader, backColorSet);
- const text = await store.initData();
+ console.log("xxxx", params.tunnelId);
+ const text = await store.initData(params.tunnelId);
// 初始化设备模型
try {
const map = new Map();
diff --git a/src/components/content/tunnelScene/sceneClass/previewTunnelInit/index.js b/src/components/content/tunnelScene/sceneClass/previewTunnelInit/index.js
index 22f1662..25a3454 100644
--- a/src/components/content/tunnelScene/sceneClass/previewTunnelInit/index.js
+++ b/src/components/content/tunnelScene/sceneClass/previewTunnelInit/index.js
@@ -1,16 +1,23 @@
-export default function previewtunnelModeInit() {
-
- for (const item of this.tunnelConfigEquipment) {
- //使用api取拿到附着点
- let pointmodel = this.scene.getObjectByName(item.pointName)
- pointmodel.hasDevice;
- let formInfo = {
+export default function previewtunnelModeInit(equipmentList) {
+ // 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);
+ // }
+ equipmentList.forEach((item) => {
+ const formInfo = {
equipmentType: item.equipmentType, //设备类型
- chooseEquipment: item.equipmentName, //设备选择(设备名称)
- threshold: item.equipmentValue, //阈值
- }
- this.addEquipment(pointmodel, formInfo);
- }
+ chooseEquipment: item.chooseEquipment, //设备选择(设备名称)
+ threshold: item.threshold,
+ };
+ this.addEquipment(this.scene.getObjectByName(item.position), formInfo);
+ });
//进行预览和编辑模式的一些操作
if (this.isedit == false) {
this.scene.traverse(function (item) {
diff --git a/src/views/tunnel/index.vue b/src/views/tunnel/index.vue
index 31c35e6..9774a20 100644
--- a/src/views/tunnel/index.vue
+++ b/src/views/tunnel/index.vue
@@ -26,12 +26,13 @@
\
-
+
-
-
+
+
From 2eeba5ee7e71b43d3694a63495b1c2253c910ecd Mon Sep 17 00:00:00 2001
From: Hcat <2768237203@qq.com>
Date: Fri, 22 Dec 2023 18:04:05 +0800
Subject: [PATCH 2/2] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E6=8E=A5?=
=?UTF-8?q?=E5=8F=A3=E7=BB=91=E5=AE=9A=E5=AE=8C=E5=85=A8=E5=AE=8C=E6=88=90?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../content/tunnelScene/PreviewScene.vue | 76 ++++++++-----------
.../content/tunnelScene/TunnelScene.vue | 8 +-
.../preEquComp/childComps/InputNum.vue | 3 +-
.../tunnelScene/preEquComp/preDialog.vue | 8 +-
4 files changed, 44 insertions(+), 51 deletions(-)
diff --git a/src/components/content/tunnelScene/PreviewScene.vue b/src/components/content/tunnelScene/PreviewScene.vue
index e3b2d46..bc0e3bc 100644
--- a/src/components/content/tunnelScene/PreviewScene.vue
+++ b/src/components/content/tunnelScene/PreviewScene.vue
@@ -50,6 +50,7 @@ import { RGBELoader } from "three/examples/jsm/loaders/RGBELoader";
import { onMounted, reactive, ref } from "vue";
import { ElMessage } from "element-plus";
import { useModelSceneStore } from "@/store/modelSceneStore";
+import { toRaw } from "vue"
// 获取html标签跟随组件dom
const content = ref(null);
const info = ref(null);
@@ -63,7 +64,7 @@ let backColorSet = three.sRGBEncoding;
const params = defineProps(["isedit", "tunnelId"]); //接收参数看是不是编辑模式,如果是编辑模式,则需要做一些处理
-// alert(params.isedit)
+
let isedit = ref(params.isedit)
@@ -86,8 +87,12 @@ async function handleMounted() {
//加载HDR背景图片
demo.loadBackground(hdrLoader, backColorSet);
- console.log("xxxx", params.tunnelId);
- const text = await store.initData(params.tunnelId);
+ watch(
+ () => params.tunnelId,
+ async () => {
+ const text = await store.initData(params.tunnelId);
+ }
+ );
// 初始化设备模型
try {
//在这加载隧道
@@ -98,6 +103,7 @@ async function handleMounted() {
demo.initDevicesModel(map);
const equipmentList = await store.getEquipmentList();
demo.previewtunnelModeInit(equipmentList);
+ // previewEquInfProcess(equipmentList)
} catch (err) {
console.log(err);
}
@@ -165,7 +171,9 @@ function rClickCallback(demo) {
hasDevice = targetPoint.hasDevice;
targetP = targetPoint;
//点击之后马上调用这个函数,变成回调,然后进行处理处理在传给preview表单
- previewEquInfProcess()
+ const equipmentList = store.getEquipmentList().then((result) => {
+ previewEquInfProcess(result, targetP)
+ });
pointNum.value = Number(
targetPoint.name.substring(
targetPoint.name.indexOf("_") + 1,
@@ -227,60 +235,40 @@ function handleCancel() {
demo._resetState();
demo.clearTagsObj();
}
-//我们的数据应该在哪个获取并将其传入进去呢?
-//是在demo.js中还是我们这二个PreviewScene或者editDialog呢?
-//按目前我这写的逻辑,好像是获取了二次??,有没有办法可以把里面的导出到这呢?
-// console.log(demo.isControlOrbit());
let equipmentType = ref(0)
let equipmentName = ref(0)
let equipmentValue = ref(0)
-function previewEquInfProcess() {
- //3个信息都可以完全获取,之后,我们可以进行信息处理再传进去就可以了
- // console.log(demo);
- // console.log(targetP.name);
- // console.log(demo.ThreeConfig.data.tunnelThreeConfig);
- let tunnelThreeConfig = demo.ThreeConfig.data.tunnelThreeConfig
- for (const equipment of tunnelThreeConfig) {
- if (equipment.pointName == targetP.name) {
+function previewEquInfProcess(equipmentList, targetP) {
+ for (const equipment of equipmentList) {
+ // console.log(equipment);
+ if (equipment.position == targetP.name) {
equipmentType.value = equipment.equipmentType
- equipmentName.value = equipment.equipmentName
- equipmentValue.value = equipment.equipmentValue
- console.log(equipmentType.value);
- console.log(equipmentName.value);
- console.log(equipmentValue.value);
+ //需要将获取到的设备列表进行序列化
+ equipmentName.value = toRaw(equipment.chooseEquipment).label
+ equipmentValue.value = equipment.threshold
+ if (equipmentType.value == 'frequency') {
+ equipmentType.value = '风机'
+ }
+ if (equipmentType.value == 'windPressure') {
+ equipmentType.value = '风压传感器'
+ }
+ if (equipmentType.value == 'sensor') {
+ equipmentType.value = '其他传感器'
+ }
+ // console.log(equipmentType.value);
+ // console.log(equipmentName.value);
+ // console.log(equipmentValue.value);
}
}
}
-// let equipmentType = reactive(previewEquInfProcess().equipmentType)
-// let equipmentName = reactive(previewEquInfProcess().equipmentName)
-// let equipmentValue = reactive(previewEquInfProcess().equipmentValue)
-// console.log(equipmentType);
-const ThreeConfig = {
- code: 0,
- data: {
- tunnelThreeConfig: [{
- equipmentId: 'fan_01',//传感器id
- equipmentName: '01',//设备名称
- pointName: 'point_005_tl',//附着点名称(定位)
- equipmentType: 'fan',//设备类型(类型可根据后端
- equipmentValue: 23, //设备存的值
- }, {
- equipmentId: 'sensors_01',//传感器id
- equipmentName: '01',//设备名称
- pointName: 'point_009_bl',//附着点名称(定位)
- equipmentType: 'sensors',//设备类型(类型可根据后端
- equipmentValue: 67, //设备存的值
- }],
- },
- msg: "dda"
-}
+
diff --git a/src/components/content/tunnelScene/TunnelScene.vue b/src/components/content/tunnelScene/TunnelScene.vue
index b52a163..76b102b 100644
--- a/src/components/content/tunnelScene/TunnelScene.vue
+++ b/src/components/content/tunnelScene/TunnelScene.vue
@@ -87,8 +87,12 @@ async function handleMounted() {
//加载HDR背景图片
demo.loadBackground(hdrLoader, backColorSet);
- console.log("xxxx", params.tunnelId);
- const text = await store.initData(params.tunnelId);
+ watch(
+ () => params.tunnelId,
+ async () => {
+ const text = await store.initData(params.tunnelId);
+ }
+ );
// 初始化设备模型
try {
const map = new Map();
diff --git a/src/components/content/tunnelScene/preEquComp/childComps/InputNum.vue b/src/components/content/tunnelScene/preEquComp/childComps/InputNum.vue
index 987e5c9..6b84f0a 100644
--- a/src/components/content/tunnelScene/preEquComp/childComps/InputNum.vue
+++ b/src/components/content/tunnelScene/preEquComp/childComps/InputNum.vue
@@ -1,7 +1,8 @@
diff --git a/src/components/content/tunnelScene/preEquComp/preDialog.vue b/src/components/content/tunnelScene/preEquComp/preDialog.vue
index 9a028b2..41b86d7 100644
--- a/src/components/content/tunnelScene/preEquComp/preDialog.vue
+++ b/src/components/content/tunnelScene/preEquComp/preDialog.vue
@@ -16,7 +16,7 @@
设备选择
+ :placeholder="params.equipmentName" disabled>
@@ -55,9 +55,9 @@ let p = ref(57);
// 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);