From 824ab5e65cd71b6516f047c7deeac7923694787d Mon Sep 17 00:00:00 2001 From: dj <1042039504@qq.com> Date: Sun, 29 Dec 2024 18:50:22 +0800 Subject: [PATCH 1/5] =?UTF-8?q?fix=20:=20=E4=BC=98=E5=8C=96=E9=9A=A7?= =?UTF-8?q?=E9=81=93=E6=A8=A1=E6=8B=9F=E9=A6=96=E9=A1=B5=E7=9A=84=E9=9A=A7?= =?UTF-8?q?=E9=81=93=E9=A2=84=E8=A7=88=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tunnelScene/TunnelSceneSimulate-back.vue | 477 ++++++++++++++++++ .../tunnelScene/TunnelSceneSimulate.vue | 92 ++-- src/views/tunnel-simulate/index.vue | 272 +++++----- 3 files changed, 658 insertions(+), 183 deletions(-) create mode 100644 src/components/content/tunnelScene/TunnelSceneSimulate-back.vue diff --git a/src/components/content/tunnelScene/TunnelSceneSimulate-back.vue b/src/components/content/tunnelScene/TunnelSceneSimulate-back.vue new file mode 100644 index 0000000..171180b --- /dev/null +++ b/src/components/content/tunnelScene/TunnelSceneSimulate-back.vue @@ -0,0 +1,477 @@ + + + + + diff --git a/src/components/content/tunnelScene/TunnelSceneSimulate.vue b/src/components/content/tunnelScene/TunnelSceneSimulate.vue index 985573a..171180b 100644 --- a/src/components/content/tunnelScene/TunnelSceneSimulate.vue +++ b/src/components/content/tunnelScene/TunnelSceneSimulate.vue @@ -3,40 +3,40 @@
- - -

是否确定删除该设备

-
- - -
-
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -89,6 +89,7 @@ const params = defineProps([ "deviceData", "devRealtimeData", "simulateData", + "tunnelAlias", ]); //接收参数看是不是编辑模式,如果是编辑模式,则需要做一些处理 let isedit = ref(params.isedit); @@ -111,7 +112,7 @@ onMounted(handleMounted); // 挂载后回调 async function handleMounted() { - const doms = [info.value.$el, edit.value.$el]; + const doms = [info.value.$el];//edit.value.$el demo = new ThreeDScene(three, content.value); //看是不是预览模式,然后继续相关的操作(会在demo中的初始化中进行) // "../../../../public/tunnelModel/chanel-have-wall-now-use.gltf" @@ -125,8 +126,8 @@ async function handleMounted() { demo.addTween(TWEEN); demo.addCSS3Renderer(CSS3DRenderer, CSS3DSprite, doms); demo.setDistance(10); - lClickCallback(demo); //绑定左键回调 - rClickCallback(demo); //绑定右键回调 + // lClickCallback(demo); //绑定左键回调 + // rClickCallback(demo); //绑定右键回调 //加载HDR背景图片 demo.loadBackground(hdrLoader, backColorSet); @@ -142,19 +143,6 @@ async function handleMounted() { // params.tunnelId, // params.form // ); - //todo 父组件传的设备数据params.deviceData - // const newModelList=[...params.deviceData.frequencyChangerList,...params.deviceData.windPressureSensorList, ...params.deviceData.sensorList] - // newModelList.map((item,index1)=>{ - // const index=index1+1 - // item.threshold="" - // if(index ({ ...item, + data:'10', equipmentType: item.equipmentType.startsWith("frequency") ? "frequency" : "sensor", })); + console.log('modeData',modeData) demo.editTunnelInit(modeData); // 初始化标牌信息 - demo.SignsInf("dsadsa", String(params.tunnelLength)); + demo.SignsInf(params.tunnelAlias, String(params.tunnelLength)); } catch (err) {} } diff --git a/src/views/tunnel-simulate/index.vue b/src/views/tunnel-simulate/index.vue index 2295741..85bd0ad 100644 --- a/src/views/tunnel-simulate/index.vue +++ b/src/views/tunnel-simulate/index.vue @@ -2,11 +2,11 @@
- +
隧道总长度: {{ tunnelLength }}米 开始模拟开始模拟
模拟爆破 @@ -36,17 +36,19 @@
@@ -60,22 +62,22 @@
@@ -89,35 +91,35 @@
@@ -126,10 +128,10 @@
报警时间:
@@ -143,33 +145,33 @@
- - + + @@ -178,87 +180,87 @@
@@ -278,9 +280,9 @@ import AirInfo from "@/components/content/airInfo/AirInfo.vue"; import BadGasInfo from "@/components/content/badGasInfo/BadGasInfo.vue"; import ManageBtn from "@/components/manageBtn/index.vue"; import TunnelTitle from "@/components/tunnelTitle/index.vue"; -import { dateFormat } from "@/utils/date.js"; -import { getToken } from "@/utils/auth"; -import { useAuthStore } from "@/store/userstore.js"; +import {dateFormat} from "@/utils/date.js"; +import {getToken} from "@/utils/auth"; +import {useAuthStore} from "@/store/userstore.js"; import { getLargeScreen, getLargeScreenInfo, @@ -292,15 +294,15 @@ import { endSimulation, blastingSimulation, } from "@/api/largeScreen"; -import { ElLoading, ElMessage, ElMessageBox } from "element-plus"; -import { getUserInfo } from "@/api/login"; -import { initSceneData } from "@/api/tunnelScene"; +import {ElLoading, ElMessage, ElMessageBox} from "element-plus"; +import {getUserInfo} from "@/api/login"; +import {initSceneData} from "@/api/tunnelScene"; import { getScreenSimulateTunnel, getSimulateTunnelDetail, getTunnelList, } from "@/api/tunnelManage"; -import { debounce } from "lodash"; +import {debounce} from "lodash"; const authStore = useAuthStore(); const router = useRouter(); @@ -308,6 +310,7 @@ const previewId = reactive(router.currentRoute.value.params.tunnelId); const siteId = reactive(router.currentRoute.value.params.siteId); const tunnelIdFlag = reactive(router.currentRoute.value.params.tunnelId); const selectIndex = ref(-1); +const previewRef = ref(); const isVisited = ref(false); const isDetailVisited = ref(false); const showFan = ref(false); @@ -338,6 +341,7 @@ const tunnelBtn = ref(); const tunnelList = ref([]); const tunnelId = ref(0); const tunnelLength = ref(0); +const tunnelAlias = ref(''); const constructionLength = ref(0); const routeList = ref([]); let socket = reactive(""); @@ -419,6 +423,9 @@ const submitDevice = () => { showDevice.value = false; getScreenInfo(previewId); // initWebSocket() + nextTick(() => { + previewRef.value.rerender() + }) }; const simulatedBlasting = async () => { await blastingSimulation(previewId, 10); @@ -555,6 +562,7 @@ const getBasicData = (id) => { getSimulateTunnelDetail(id).then((res) => { if (res?.code === 1000) { tunnelLength.value = res.data.totalLength; + tunnelAlias.value = res.data.tunnelAlias; serialNumber.value = res.data.serialNumber; constructionLength.value = res.data.constructionLength; initWebSocket(); @@ -590,13 +598,13 @@ const getScreenInfo = (id) => { // }) res.data.sensorList.forEach((item) => { if ( - item.equipmentType === "dust" || - item.equipmentType === "carbonDioxide" || - item.equipmentType === "carbonMonoxide" || - item.equipmentType === "hydrogenSulfide" || - item.equipmentType === "sulfurDioxide" || - item.equipmentType === "sulfurMonoxide" || - item.equipmentType === "nitrogenDioxide" + item.equipmentType === "dust" || + item.equipmentType === "carbonDioxide" || + item.equipmentType === "carbonMonoxide" || + item.equipmentType === "hydrogenSulfide" || + item.equipmentType === "sulfurDioxide" || + item.equipmentType === "sulfurMonoxide" || + item.equipmentType === "nitrogenDioxide" ) { showBadLoading.value = 0; } else { From bfbf1b51168501d6b7bd99340718cc72526cf718 Mon Sep 17 00:00:00 2001 From: dj <1042039504@qq.com> Date: Sun, 29 Dec 2024 19:28:12 +0800 Subject: [PATCH 2/5] =?UTF-8?q?fix=20:=20=E4=BC=98=E5=8C=96=E9=9A=A7?= =?UTF-8?q?=E9=81=93=E6=A8=A1=E6=8B=9F=E9=A6=96=E9=A1=B5=E7=9A=84=E9=9A=A7?= =?UTF-8?q?=E9=81=93=E9=A2=84=E8=A7=88=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tunnelScene/TunnelSceneSimulate.vue | 117 ++++++++++-------- src/views/tunnel-simulate/index.vue | 2 +- 2 files changed, 66 insertions(+), 53 deletions(-) diff --git a/src/components/content/tunnelScene/TunnelSceneSimulate.vue b/src/components/content/tunnelScene/TunnelSceneSimulate.vue index 171180b..68331c8 100644 --- a/src/components/content/tunnelScene/TunnelSceneSimulate.vue +++ b/src/components/content/tunnelScene/TunnelSceneSimulate.vue @@ -3,40 +3,40 @@
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +

是否确定删除该设备

+
+ + +
+
@@ -89,7 +89,6 @@ const params = defineProps([ "deviceData", "devRealtimeData", "simulateData", - "tunnelAlias", ]); //接收参数看是不是编辑模式,如果是编辑模式,则需要做一些处理 let isedit = ref(params.isedit); @@ -112,7 +111,7 @@ onMounted(handleMounted); // 挂载后回调 async function handleMounted() { - const doms = [info.value.$el];//edit.value.$el + const doms = [info.value.$el, edit.value.$el]; demo = new ThreeDScene(three, content.value); //看是不是预览模式,然后继续相关的操作(会在demo中的初始化中进行) // "../../../../public/tunnelModel/chanel-have-wall-now-use.gltf" @@ -126,8 +125,8 @@ async function handleMounted() { demo.addTween(TWEEN); demo.addCSS3Renderer(CSS3DRenderer, CSS3DSprite, doms); demo.setDistance(10); - // lClickCallback(demo); //绑定左键回调 - // rClickCallback(demo); //绑定右键回调 + lClickCallback(demo); //绑定左键回调 + rClickCallback(demo); //绑定右键回调 //加载HDR背景图片 demo.loadBackground(hdrLoader, backColorSet); @@ -143,6 +142,19 @@ async function handleMounted() { // params.tunnelId, // params.form // ); + //todo 父组件传的设备数据params.deviceData + // const newModelList=[...params.deviceData.frequencyChangerList,...params.deviceData.windPressureSensorList, ...params.deviceData.sensorList] + // newModelList.map((item,index1)=>{ + // const index=index1+1 + // item.threshold="" + // if(index ({ ...item, - data:'10', equipmentType: item.equipmentType.startsWith("frequency") ? "frequency" : "sensor", })); - console.log('modeData',modeData) + demo.enableLeftBtn = false //关闭左键 + demo.pointsVisible(false); demo.editTunnelInit(modeData); // 初始化标牌信息 - demo.SignsInf(params.tunnelAlias, String(params.tunnelLength)); + demo.SignsInf("dsadsa", String(params.tunnelLength)); } catch (err) {} } + // 从新渲染数据 async function rerender() { try { @@ -284,9 +297,9 @@ function editDevInfo( //左键/双击左键回调函数 function lClickCallback(demo) { - // console.log('左键点击查看信息'); + console.log('左键点击查看信息'); - //demo动态添加函数,为操作组件内部 + // demo动态添加函数,为操作组件内部 function displayDevInfo(targetPoint = null) { hasDevice.value = targetPoint.hasDevice; if (!targetPoint.info) { @@ -329,15 +342,15 @@ function rClickCallback(demo) { function handleAddEqu(formInfo) { demo.addEquipment(targetP.value, formInfo); // //将墙壁设置为可以穿透点击 - // for (let line = 1; line <= 20; line++) { - // if (line < 10) { - // let wall = 'wall_' + '0' + line - // this.scene.getObjectByName(wall).layers.set(0) - // } else if (line >= 10) { - // let wall = 'wall_' + line - // this.scene.getObjectByName(wall).layers.set(0) - // } - // } + for (let line = 1; line <= 20; line++) { + if (line < 10) { + let wall = 'wall_' + '0' + line + this.scene.getObjectByName(wall).layers.set(0) + } else if (line >= 10) { + let wall = 'wall_' + line + this.scene.getObjectByName(wall).layers.set(0) + } + } } const centerDialogVisible = ref(false); diff --git a/src/views/tunnel-simulate/index.vue b/src/views/tunnel-simulate/index.vue index 85bd0ad..55d5ae2 100644 --- a/src/views/tunnel-simulate/index.vue +++ b/src/views/tunnel-simulate/index.vue @@ -46,7 +46,7 @@ id="tunnel-box" :isedit="false" :device-data="largeScreenData" - :tunnelLength="tunnelLength" + :tunnelLength="tunnelLen" :tunnelId="tunnelId" :tunnelAlias="tunnelAlias" > From 8af7a35c69903325b318f79ab886ce5c58881743 Mon Sep 17 00:00:00 2001 From: dj <1042039504@qq.com> Date: Mon, 30 Dec 2024 22:31:37 +0800 Subject: [PATCH 3/5] =?UTF-8?q?fix=20:=20=E4=BC=98=E5=8C=96=E9=9A=A7?= =?UTF-8?q?=E9=81=93=E6=A8=A1=E6=8B=9F=E9=A6=96=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/largeScreen.js | 6 +- src/api/tunnelManage.js | 8 + src/components/deviceManage/index.vue | 69 ++++--- src/views/tunnel-simulate/index.vue | 235 ++++++---------------- src/views/tunnel-simulate/tunnel-list.vue | 115 ++--------- src/views/tunnel/index.vue | 2 +- 6 files changed, 129 insertions(+), 306 deletions(-) diff --git a/src/api/largeScreen.js b/src/api/largeScreen.js index 2e87e5b..8f1f3c7 100644 --- a/src/api/largeScreen.js +++ b/src/api/largeScreen.js @@ -160,20 +160,20 @@ export const getSimulationBadGasEchartsInfo = (id,time,type,startTime,endTime) = export const startSimulation = (projectId) => { return request({ url: `/tunnel/simulation/start/${projectId}`, - method: 'post' + method: 'get' }) } // 结束模拟 export const endSimulation = (projectId) => { return request({ url: `/tunnel/simulation/stop/${projectId}`, - method: 'post' + method: 'get' }) } //模拟爆破 export const blastingSimulation = (projectId,level) => { return request({ url: `/tunnel/simulation/blasting/${projectId}/${level}`, - method: 'post' + method: 'get' }) } \ No newline at end of file diff --git a/src/api/tunnelManage.js b/src/api/tunnelManage.js index 680d7bb..14042b4 100644 --- a/src/api/tunnelManage.js +++ b/src/api/tunnelManage.js @@ -108,6 +108,14 @@ export const addSimulateTunnel = (data) => { }) } +export const editSimulateTunnel = (data) => { + return request({ + url: '/tunnel/simulate/edit', + method: 'post', + data + }) +} + export const editSimulateEquipment = (data) => { return request({ url: '/tunnel/simulate', diff --git a/src/components/deviceManage/index.vue b/src/components/deviceManage/index.vue index 7f146b9..15ca2c9 100644 --- a/src/components/deviceManage/index.vue +++ b/src/components/deviceManage/index.vue @@ -39,33 +39,33 @@ :header-cell-style="{backgroundColor: '#064B66',color: '#fff',fontSize: '40px',borderBottom: 'none' }" :cell-style="{textAlign: 'center',borderBottom: 'none'}" :data="fanData"> - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + +