diff --git a/src/components/content/tunnelScene/PreviewScene.vue b/src/components/content/tunnelScene/PreviewScene.vue
index c029eff..bc0e3bc 100644
--- a/src/components/content/tunnelScene/PreviewScene.vue
+++ b/src/components/content/tunnelScene/PreviewScene.vue
@@ -49,19 +49,22 @@ 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";
+import { toRaw } from "vue"
// 获取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)
let isedit = ref(params.isedit)
@@ -84,7 +87,12 @@ async function handleMounted() {
//加载HDR背景图片
demo.loadBackground(hdrLoader, backColorSet);
-
+ watch(
+ () => params.tunnelId,
+ async () => {
+ const text = await store.initData(params.tunnelId);
+ }
+ );
// 初始化设备模型
try {
//在这加载隧道
@@ -93,7 +101,9 @@ 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);
+ // previewEquInfProcess(equipmentList)
} catch (err) {
console.log(err);
}
@@ -161,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,
@@ -223,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 54c4444..76b102b 100644
--- a/src/components/content/tunnelScene/TunnelScene.vue
+++ b/src/components/content/tunnelScene/TunnelScene.vue
@@ -87,7 +87,12 @@ async function handleMounted() {
//加载HDR背景图片
demo.loadBackground(hdrLoader, backColorSet);
- const text = await store.initData();
+ 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 @@
{{ params.name }}
设备选择