diff --git a/src/api/tunnelScene.js b/src/api/tunnelScene.js new file mode 100644 index 0000000..5b1aa0a --- /dev/null +++ b/src/api/tunnelScene.js @@ -0,0 +1,44 @@ +import request from "@/utils/request.js"; + +// 设备类型 +export const getEquipmentType = () => { + return request({ + url: "/tunnel/model/equipment/type/option", + method: "get", + }); +}; +// 获取设备 +export const getEquipment = (tunnelId, typeKey, equipmentIds = "1") => { + return request({ + url: "/tunnel/model/equipment/option", + method: "post", + params: { + tunnelId, + typeKey, + equipmentIds, + }, + }); +}; +// 初始化数据 +export const initSceneData = (tunnelId) => { + return request({ + url: `/tunnel/model/${tunnelId}`, + method: "get", + }); +}; +// 添加设备 +export const saveEquipment = ( + constructionLength, + tunnelId, + tunnelThreeConfig +) => { + return request({ + url: "/tunnel/model", + method: "put", + data: { + constructionLength, + tunnelId, + tunnelThreeConfig, + }, + }); +}; diff --git a/src/components/content/tunnelScene/PreviewScene.vue b/src/components/content/tunnelScene/PreviewScene.vue index 9ae9bb7..c029eff 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,14 +87,13 @@ 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(); + demo.previewtunnelModeInit(); } catch (err) { console.log(err); } @@ -242,12 +241,12 @@ 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); } } } @@ -278,16 +277,6 @@ const ThreeConfig = { }, msg: "dda" } -//取值方便操作 -// const tunnelConfigEquipment = ThreeConfig.data.tunnelThreeConfig - -// function tunnelModeInit() { -// for (const item of tunnelConfigEquipment) { -// let pointmodel = demo.scene.getobjectByName(item.pointName) -// console.log(pointmodel); -// } -// } -// tunnelModeInit() diff --git a/src/components/content/tunnelScene/TunnelScene.vue b/src/components/content/tunnelScene/TunnelScene.vue index 6c9fb08..54c4444 100644 --- a/src/components/content/tunnelScene/TunnelScene.vue +++ b/src/components/content/tunnelScene/TunnelScene.vue @@ -4,7 +4,8 @@ + :hasDev="hasDevice" :pointNum="pointNum" :tunnelId="tunnelId" :position="targetP?.name" :hasEquipment="hasDevice" + pointGap="500" /> { + demo.removeEquipment(targetP.value); + centerDialogVisible.value = false; + ElMessage({ + message: "删除成功!", + type: "success", + }); + }) + .catch((err) => { + ElMessage({ + message: "请求异常!", + type: "warning", + }); + }); } // 处理取消关闭编辑框事件 function handleCancel() { @@ -229,33 +231,25 @@ function handleCancel() { 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, //设备存的值 - }], + 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" -} -//取值方便操作 -// const tunnelConfigEquipment = ThreeConfig.data.tunnelThreeConfig - -// function tunnelModeInit() { -// for (const item of tunnelConfigEquipment) { -// let pointmodel = demo.scene.getobjectByName(item.pointName) -// console.log(pointmodel); -// } -// } -// tunnelModeInit() - + msg: "dda", +}; diff --git a/src/components/content/tunnelScene/editEquComp/editDialog.vue b/src/components/content/tunnelScene/editEquComp/editDialog.vue index 9a822a9..b188143 100644 --- a/src/components/content/tunnelScene/editEquComp/editDialog.vue +++ b/src/components/content/tunnelScene/editEquComp/editDialog.vue @@ -2,25 +2,39 @@

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

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

传感器类型

- - - + +

设备选择

- - - +
- +
@@ -31,84 +45,81 @@