From 375d6719d8f8700c9ab89858dbcd6d699b32d2f0 Mon Sep 17 00:00:00 2001 From: dj <1042039504@qq.com> Date: Sat, 7 Dec 2024 22:35:22 +0800 Subject: [PATCH 01/18] =?UTF-8?q?=E5=A4=87=E4=BB=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/device-manage/index-new.vue | 861 ++++++++++++++++ src/views/device-manage/index-or.vue | 860 ++++++++++++++++ src/views/device-manage/index-origanl.vue | 860 ++++++++++++++++ src/views/edit/edit-new.vue | 415 ++++++++ src/views/edit/edit-or.vue | 342 +++++++ src/views/edit/edit-orignal.vue | 342 +++++++ src/views/tunnel-manage/index-new.vue | 1093 +++++++++++++++++++++ src/views/tunnel-manage/index-or.vue | 1060 ++++++++++++++++++++ src/views/tunnel-manage/index-origanl.vue | 1060 ++++++++++++++++++++ 9 files changed, 6893 insertions(+) create mode 100644 src/views/device-manage/index-new.vue create mode 100644 src/views/device-manage/index-or.vue create mode 100644 src/views/device-manage/index-origanl.vue create mode 100644 src/views/edit/edit-new.vue create mode 100644 src/views/edit/edit-or.vue create mode 100644 src/views/edit/edit-orignal.vue create mode 100644 src/views/tunnel-manage/index-new.vue create mode 100644 src/views/tunnel-manage/index-or.vue create mode 100644 src/views/tunnel-manage/index-origanl.vue diff --git a/src/views/device-manage/index-new.vue b/src/views/device-manage/index-new.vue new file mode 100644 index 0000000..4c8d057 --- /dev/null +++ b/src/views/device-manage/index-new.vue @@ -0,0 +1,861 @@ + + + + + diff --git a/src/views/device-manage/index-or.vue b/src/views/device-manage/index-or.vue new file mode 100644 index 0000000..cd181e9 --- /dev/null +++ b/src/views/device-manage/index-or.vue @@ -0,0 +1,860 @@ + + + + + diff --git a/src/views/device-manage/index-origanl.vue b/src/views/device-manage/index-origanl.vue new file mode 100644 index 0000000..2fc22e5 --- /dev/null +++ b/src/views/device-manage/index-origanl.vue @@ -0,0 +1,860 @@ + + + + + diff --git a/src/views/edit/edit-new.vue b/src/views/edit/edit-new.vue new file mode 100644 index 0000000..f1eed0f --- /dev/null +++ b/src/views/edit/edit-new.vue @@ -0,0 +1,415 @@ + + + diff --git a/src/views/edit/edit-or.vue b/src/views/edit/edit-or.vue new file mode 100644 index 0000000..2a964b3 --- /dev/null +++ b/src/views/edit/edit-or.vue @@ -0,0 +1,342 @@ + + + diff --git a/src/views/edit/edit-orignal.vue b/src/views/edit/edit-orignal.vue new file mode 100644 index 0000000..7aef199 --- /dev/null +++ b/src/views/edit/edit-orignal.vue @@ -0,0 +1,342 @@ + + + diff --git a/src/views/tunnel-manage/index-new.vue b/src/views/tunnel-manage/index-new.vue new file mode 100644 index 0000000..a947744 --- /dev/null +++ b/src/views/tunnel-manage/index-new.vue @@ -0,0 +1,1093 @@ + + + + + diff --git a/src/views/tunnel-manage/index-or.vue b/src/views/tunnel-manage/index-or.vue new file mode 100644 index 0000000..546da3f --- /dev/null +++ b/src/views/tunnel-manage/index-or.vue @@ -0,0 +1,1060 @@ + + + + + diff --git a/src/views/tunnel-manage/index-origanl.vue b/src/views/tunnel-manage/index-origanl.vue new file mode 100644 index 0000000..8a122fb --- /dev/null +++ b/src/views/tunnel-manage/index-origanl.vue @@ -0,0 +1,1060 @@ + + + + + From f57023a509fd9f4cf15cae265c077030c48b228a Mon Sep 17 00:00:00 2001 From: dj <1042039504@qq.com> Date: Sat, 7 Dec 2024 23:04:42 +0800 Subject: [PATCH 02/18] =?UTF-8?q?feat=20:=20=E9=9A=A7=E9=81=93=E6=A8=A1?= =?UTF-8?q?=E6=8B=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.development | 2 +- .env.production | 2 +- src/components/deviceManage/index.vue | 830 ++++++++++++++++++++++++++ src/components/manageBtn/index.vue | 9 +- src/store/modelSceneStore.js | 2 +- src/views/debug/index.vue | 2 +- src/views/tunnel-simulate/index.vue | 320 +++++----- src/views/tunnel/index.vue | 24 +- 8 files changed, 1016 insertions(+), 175 deletions(-) create mode 100644 src/components/deviceManage/index.vue diff --git a/.env.development b/.env.development index d59e51c..043d5bc 100644 --- a/.env.development +++ b/.env.development @@ -3,5 +3,5 @@ VITE_BASE_URL='/api' # VITE_BASE_URL='http://192.168.101.7:8000' -#VITE_BASE_WSURL='ws://web-tunnel.feashow.com/api' +#VITE_BASE_WSURL='ws://tunnel.feashow.com/api' VITE_BASE_WSURL='/websocket' diff --git a/.env.production b/.env.production index 4c27cb7..c545c78 100644 --- a/.env.production +++ b/.env.production @@ -4,5 +4,5 @@ VITE_TITLE='fateverse' VITE_BASE_URL='/api' -#VITE_BASE_WSURL='ws://web-tunnel.feashow.com/api' +#VITE_BASE_WSURL='ws://tunnel.feashow.com/api' VITE_BASE_WSURL='/websocket' diff --git a/src/components/deviceManage/index.vue b/src/components/deviceManage/index.vue new file mode 100644 index 0000000..e0f15a5 --- /dev/null +++ b/src/components/deviceManage/index.vue @@ -0,0 +1,830 @@ + + + + + diff --git a/src/components/manageBtn/index.vue b/src/components/manageBtn/index.vue index 08f1ac2..f18182e 100644 --- a/src/components/manageBtn/index.vue +++ b/src/components/manageBtn/index.vue @@ -51,10 +51,11 @@ const btnList = ref([ // icon: 'sp_icon_xtgl.png', // name: '系统管理' // }, - // { - // icon: 'sp_icon_mngl.png', - // name: '模拟仿真' - // }, + { + route: '/simulate', + icon: 'sp_icon_mngl.png', + name: '模拟仿真' + }, ]) const newList=ref([]) const selectButton = ref(props.modelValue); diff --git a/src/store/modelSceneStore.js b/src/store/modelSceneStore.js index 9999244..d70e7e0 100644 --- a/src/store/modelSceneStore.js +++ b/src/store/modelSceneStore.js @@ -44,7 +44,7 @@ export const useModelSceneStore = defineStore("modelSceneData", () => { return new Promise((resolve, reject) => { initSceneData(tunnelId) .then((res) => { - console.info("🚀 ~method:initSceneData -----", res) + // console.info("🚀 ~method:initSceneData -----", res) serialNumber.value=res.data.serialNumber serialNumberPrefix.value=res.data.serialNumberPrefix tunnelGatewayDtoList.value=res.data.tunnelGatewayVoList diff --git a/src/views/debug/index.vue b/src/views/debug/index.vue index e737004..e7633ad 100644 --- a/src/views/debug/index.vue +++ b/src/views/debug/index.vue @@ -76,7 +76,7 @@ const handleSend = () => { const initWebSocket = () => { // let wsUrl = `ws://192.168.31.176:9000/websocket/debug/${token}/${serialNumber.value}` // let wsUrl = import.meta.env.VITE_BASE_WSURL+`/${token}/${serialNumber.value}`; - let wsUrl = `ws://web-tunnel.feashow.com/api/wstunnel/websocket/debug/${token}/${serialNumber.value}` + let wsUrl = `ws://tunnel.feashow.com/api/wstunnel/websocket/debug/${token}/${serialNumber.value}` console.log(wsUrl) socket = new WebSocket(wsUrl) //连接发生错误的回调方法 diff --git a/src/views/tunnel-simulate/index.vue b/src/views/tunnel-simulate/index.vue index 5b8137a..c4c54b8 100644 --- a/src/views/tunnel-simulate/index.vue +++ b/src/views/tunnel-simulate/index.vue @@ -2,48 +2,44 @@
- +
隧道总长度: {{ tunnelLength }}米 开始模拟 -
- 模拟爆破 - 结束模拟 -
+ >开始模拟 + 结束模拟
当前站点:{{ currentSite }}
- +
@@ -53,40 +49,40 @@
- +
@@ -94,32 +90,32 @@
@@ -128,12 +124,12 @@
@@ -146,10 +142,10 @@
报警时间:
@@ -163,33 +159,33 @@
- - + + @@ -198,87 +194,87 @@
@@ -297,9 +293,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, @@ -309,11 +305,11 @@ import { getAlarmDetail, updateAlarmState, } from "@/api/largeScreen"; -import { ElLoading, ElMessage, ElMessageBox } from "element-plus"; -import { getUserInfo } from "@/api/login"; -import { initSceneData } from "@/api/tunnelScene"; -import { getTunnelList } from "@/api/tunnelManage"; -import { debounce } from "lodash"; +import {ElLoading, ElMessage, ElMessageBox} from "element-plus"; +import {getUserInfo} from "@/api/login"; +import {initSceneData} from "@/api/tunnelScene"; +import {getTunnelList} from "@/api/tunnelManage"; +import {debounce} from "lodash"; const authStore = useAuthStore(); const router = useRouter(); @@ -324,6 +320,7 @@ const selectIndex = ref(-1); const isVisited = ref(false); const isDetailVisited = ref(false); const showFan = ref(false); +const showDevice = ref(false); const drawerLeft = ref(true); const showTunnelTitle = ref(true); const isPreview = ref(true); @@ -378,6 +375,7 @@ const btnList = ref([ // name: '系统管理' // }, // { + // route: '/simulate', // icon: 'sp_icon_mngl.png', // name: '模拟仿真' // }, @@ -417,6 +415,11 @@ onMounted(() => { }); const startSimulate = () => { isStartSimulate.value = false; + showDevice.value = true; +}; +const cancelDeviceManage = () => { + isStartSimulate.value = true; + showDevice.value = false; }; const endSimulate = () => { isStartSimulate.value = true; @@ -570,13 +573,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 { @@ -672,7 +675,7 @@ const manageSelect = (index) => { } else if (index === "隧道管理") { if (currentSiteId.value && currentUserId.value) { router.push( - "/tunnel/" + + "/tunnel/" + localStorage.getItem("currentSiteId") + "/byHome/" + currentUserId.value @@ -733,7 +736,7 @@ const nextBtn = () => { const initWebSocket = () => { // let wsUrl = `ws://192.168.31.176:9000/websocket/equipment/${token}/${serialNumber.value}` - let wsUrl = `ws://web-tunnel.feashow.com/api/wstunnel/websocket/equipment/${token}/${serialNumber.value}`; + let wsUrl = `ws://tunnel.feashow.com/api/wstunnel/websocket/equipment/${token}/${serialNumber.value}`; // let wsUrl = import.meta.env.VITE_BASE_WSURL+`/${token}/${serialNumber.value}`; // let wsUrl = `ws://clay.frp.feashow.cn/wstunnel/websocket/equipment/${token}/${serialNumber.value}`; socket = new WebSocket(wsUrl); @@ -843,6 +846,7 @@ const initWebSocket = () => { text-align: center; margin-left: 40px; font-size: 38px; + &:hover { color: #f7b500; } diff --git a/src/views/tunnel/index.vue b/src/views/tunnel/index.vue index 4503123..f119264 100644 --- a/src/views/tunnel/index.vue +++ b/src/views/tunnel/index.vue @@ -336,10 +336,11 @@ const btnList = ref([ // icon: 'sp_icon_xtgl.png', // name: '系统管理' // }, - // { - // icon: 'sp_icon_mngl.png', - // name: '模拟仿真' - // }, + { + route: '/simulate', + icon: 'sp_icon_mngl.png', + name: '模拟仿真' + }, ]); const serialNumber = ref(""); const roleKey = ref(""); @@ -466,6 +467,7 @@ const getOtherInfo = () => { getLargeScreenInfo().then((res) => { if (res?.code === 1000) { let routeArr = []; + res.data.routeList.push('/simulate') res.data.routeList.forEach((item) => { for (let btn of btnList.value) { if (item === btn.route) { @@ -620,12 +622,12 @@ const changeTunnel = (e) => { showFan.value = true; }); }; -const manageSelect = (index) => { - if (index === "站点管理") { +const manageSelect = (name) => { + if (name === "站点管理") { if (currentUserId.value) { router.push("/site/" + currentUserId.value + "/" + currentSiteId.value); } - } else if (index === "隧道管理") { + } else if (name === "隧道管理") { if (currentSiteId.value && currentUserId.value) { router.push( "/tunnel/" + @@ -634,10 +636,14 @@ const manageSelect = (index) => { currentUserId.value ); } - } else if (index === "用户管理") { + } else if (name === "用户管理") { if (currentSiteId.value) { router.push("/user/" + localStorage.getItem("currentSiteId")); } + } else if (name === "模拟仿真") { + if (tunnelId.value) { + router.push("/simulate/" + tunnelId.value); + } } if(socket){ socket.close() @@ -689,7 +695,7 @@ const nextBtn = () => { const initWebSocket = () => { // let wsUrl = `ws://192.168.31.176:9000/websocket/equipment/${token}/${serialNumber.value}` - let wsUrl = `ws://web-tunnel.feashow.com/api/wstunnel/websocket/equipment/${token}/${serialNumber.value}`; + let wsUrl = `ws://tunnel.feashow.com/api/wstunnel/websocket/equipment/${token}/${serialNumber.value}`; // let wsUrl = import.meta.env.VITE_BASE_WSURL+`/${token}/${serialNumber.value}`; // let wsUrl = `ws://clay.frp.feashow.cn/wstunnel/websocket/equipment/${token}/${serialNumber.value}`; socket = new WebSocket(wsUrl); From e111b10806052f8339323e69fbd6c47c314e42d9 Mon Sep 17 00:00:00 2001 From: dj <1042039504@qq.com> Date: Sun, 29 Dec 2024 00:48:25 +0800 Subject: [PATCH 03/18] =?UTF-8?q?feat=20:=20=E9=9A=A7=E9=81=93=E6=A8=A1?= =?UTF-8?q?=E6=8B=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/largeScreen.js | 51 +- src/api/tunnelManage.js | 43 + src/components/content/airInfo/AirInfo.vue | 83 +- .../content/badGasInfo/BadGasInfo.vue | 76 +- src/components/content/fanInfo/FanInfo.vue | 9 +- .../tunnelScene/TunnelSceneSimulate.vue | 408 ++++++ src/components/content/usedEle/UsedEle.vue | 1 + .../content/windPressure/WindPressureList.vue | 82 +- src/components/deviceManage/index.vue | 189 +-- src/views/device-manage/index-new.vue | 861 ------------- src/views/device-manage/index-or.vue | 860 ------------- src/views/device-manage/index-origanl.vue | 860 ------------- src/views/edit/edit-new.vue | 415 ------- src/views/edit/edit-or.vue | 342 ------ src/views/edit/edit-orignal.vue | 342 ------ src/views/tunnel-manage/index-new.vue | 1093 ----------------- src/views/tunnel-manage/index-or.vue | 1060 ---------------- src/views/tunnel-manage/index-origanl.vue | 1060 ---------------- src/views/tunnel-simulate/index.vue | 264 ++-- src/views/tunnel-simulate/tunnel-list.vue | 217 ++-- 20 files changed, 896 insertions(+), 7420 deletions(-) create mode 100644 src/components/content/tunnelScene/TunnelSceneSimulate.vue delete mode 100644 src/views/device-manage/index-new.vue delete mode 100644 src/views/device-manage/index-or.vue delete mode 100644 src/views/device-manage/index-origanl.vue delete mode 100644 src/views/edit/edit-new.vue delete mode 100644 src/views/edit/edit-or.vue delete mode 100644 src/views/edit/edit-orignal.vue delete mode 100644 src/views/tunnel-manage/index-new.vue delete mode 100644 src/views/tunnel-manage/index-or.vue delete mode 100644 src/views/tunnel-manage/index-origanl.vue diff --git a/src/api/largeScreen.js b/src/api/largeScreen.js index f914bb3..2e87e5b 100644 --- a/src/api/largeScreen.js +++ b/src/api/largeScreen.js @@ -38,7 +38,7 @@ export const getEchartsInfo = (id,time,type,startTime,endTime) => { // 有害气体echarts数据 export const getBadGasEchartsInfo = (id,time,type,startTime,endTime) => { return request({ - url: '/tunnel/large/screen/echarts/gas/sensor/', + url: '/tunnel/large/screen/echarts/gas/sensor', method: 'get', params: { id: id, @@ -128,3 +128,52 @@ export const deleteAlarmSate = (tunnelAlarmIdList) => { method: 'delete' }) } +// 传感器模拟echarts数据 +export const getSimulationEchartsInfo = (id,time,type,startTime,endTime) => { + return request({ + url: '/tunnel/simulation/large/screen/echarts/sensor', + method: 'get', + params: { + id: id, + time: time, + type: type, + startTime:startTime, + endTime:endTime, + } + }) +} +// 有害气体模拟echarts数据 +export const getSimulationBadGasEchartsInfo = (id,time,type,startTime,endTime) => { + return request({ + url: '/tunnel/simulation/large/screen/echarts/gas/sensor', + method: 'get', + params: { + id: id, + time: time, + type: type, + startTime:startTime, + endTime:endTime, + } + }) +} +//开始 模拟 +export const startSimulation = (projectId) => { + return request({ + url: `/tunnel/simulation/start/${projectId}`, + method: 'post' + }) +} +// 结束模拟 +export const endSimulation = (projectId) => { + return request({ + url: `/tunnel/simulation/stop/${projectId}`, + method: 'post' + }) +} +//模拟爆破 +export const blastingSimulation = (projectId,level) => { + return request({ + url: `/tunnel/simulation/blasting/${projectId}/${level}`, + method: 'post' + }) +} \ No newline at end of file diff --git a/src/api/tunnelManage.js b/src/api/tunnelManage.js index c9e0472..680d7bb 100644 --- a/src/api/tunnelManage.js +++ b/src/api/tunnelManage.js @@ -84,3 +84,46 @@ export const getSerialNumberOnUse = (tunnelId) => { } }) } + + +//模拟隧道 +export const getSimulateTunnelList = (params) => { + return request({ + url: '/tunnel/simulate', + method: 'get', + params + }) +} +export const getSimulateTunnelDetail = (projectId) => { + return request({ + url: `/tunnel/simulate/${projectId}`, + method: 'get' + }) +} +export const addSimulateTunnel = (data) => { + return request({ + url: '/tunnel/simulate', + method: 'post', + data + }) +} + +export const editSimulateEquipment = (data) => { + return request({ + url: '/tunnel/simulate', + method: 'put', + data + }) +} +export const deleteSimulateTunnel = (projectIdList) => { + return request({ + url: `/tunnel/simulate/${projectIdList}`, + method: 'delete' + }) +} +export const getScreenSimulateTunnel = (projectId) => { + return request({ + url: `/tunnel/simulate/equipment/${projectId}`, + method: 'get' + }) +} \ No newline at end of file diff --git a/src/components/content/airInfo/AirInfo.vue b/src/components/content/airInfo/AirInfo.vue index 94b3b54..cbe10c2 100644 --- a/src/components/content/airInfo/AirInfo.vue +++ b/src/components/content/airInfo/AirInfo.vue @@ -36,10 +36,10 @@
导出
- + @@ -62,7 +62,7 @@ import ItemInfo from "./childComps/ItemInfo.vue"; import TimeRangeBtn from "@/components/timeRangeBtn/index.vue" import * as echarts from 'echarts'; -import {getEchartsInfo} from "@/api/largeScreen"; +import {getEchartsInfo, getSimulationEchartsInfo} from "@/api/largeScreen"; import ChooseDay from "@/components/chooseDates/index.vue" import ChooseMonth from "@/components/chooseMonth/index.vue" import elementResizeDetectorMaker from "element-resize-detector"; @@ -74,7 +74,8 @@ let myEcharts = reactive({}); const props = defineProps({ list: Array, windSpeed: Array, - airData: Array + airData: Array, + isSimulate: Boolean, }); const isFullScreen = ref(false); let dataZoomTop = reactive('87%') @@ -94,11 +95,12 @@ const dialogTitle = ref('风速') const openDialogId = ref(0) const airList = ref([]) const timeList = ref(["年", "月", "日"]); -const selectTimeButton = ref(2); +const timeSimulateList = ref(["日"]); const isWindSpeedVisited = ref(false); const showSpeedLoading = ref(false) const clickMonth = ref('') const clickDay = ref('') +const selectTimeButton = ref(props.isSimulate?0:2); watch(() => props.windSpeed, (now) => { now.forEach(newItem => { windSpeed.value =newItem.value @@ -248,29 +250,56 @@ const getChartInfo = (equipmentId, type = 'day', time = '', flag, startTime, end } } }) - getEchartsInfo(equipmentId, time, type, startTime, endTime).then(res => { - if (res?.code === 1000) { - showSpeedLoading.value = false - chartData = res.data - nextTick(() => { - if (flag) { - const fanChart = document.getElementById('containerWind') - const erd = elementResizeDetectorMaker(); - erd.listenTo(document.getElementById('airDialog'), (element) => { - fanChart.style.height = element.offsetHeight - 140 + 'px' - myEcharts.resize(); - }); - if (isFullScreen.value) { - initChart(res.data.dates, res.data.values, dataZoomTop) + if(props.isSimulate){ + + getSimulationEchartsInfo(equipmentId, time, type, startTime, endTime).then(res => { + if (res?.code === 1000) { + showSpeedLoading.value = false + chartData = res.data + nextTick(() => { + if (flag) { + const fanChart = document.getElementById('containerWind') + const erd = elementResizeDetectorMaker(); + erd.listenTo(document.getElementById('airDialog'), (element) => { + fanChart.style.height = element.offsetHeight - 140 + 'px' + myEcharts.resize(); + }); + if (isFullScreen.value) { + initChart(res.data.dates, res.data.values, dataZoomTop) + } + } else { + shrinkScreen() } - } else { - shrinkScreen() - } - }) - } else { - loadingText.value = res.msg - } - }) + }) + } else { + loadingText.value = res.msg + } + }) + }else{ + getEchartsInfo(equipmentId, time, type, startTime, endTime).then(res => { + if (res?.code === 1000) { + showSpeedLoading.value = false + chartData = res.data + nextTick(() => { + if (flag) { + const fanChart = document.getElementById('containerWind') + const erd = elementResizeDetectorMaker(); + erd.listenTo(document.getElementById('airDialog'), (element) => { + fanChart.style.height = element.offsetHeight - 140 + 'px' + myEcharts.resize(); + }); + if (isFullScreen.value) { + initChart(res.data.dates, res.data.values, dataZoomTop) + } + } else { + shrinkScreen() + } + }) + } else { + loadingText.value = res.msg + } + }) + } nextTick(() => { loadingText.value = '加载中...' }) diff --git a/src/components/content/badGasInfo/BadGasInfo.vue b/src/components/content/badGasInfo/BadGasInfo.vue index c0e20b8..cda0968 100644 --- a/src/components/content/badGasInfo/BadGasInfo.vue +++ b/src/components/content/badGasInfo/BadGasInfo.vue @@ -25,9 +25,9 @@
导出
- + - +
(isBadGasVisited.value ? "sp_active.png" : "bg.png")); + watch( () => props.list, (now) => { @@ -288,27 +291,52 @@ const getBadGasChartInfo = (type, time = '', flag, startTime, endTime) => { } } }) - getBadGasEchartsInfo(id, time, type, startTime, endTime).then(res => { - if (res?.code === 1000) { - showLoading.value = false - chartData = res.data - nextTick(() => { - if (flag) { - const fanChart = document.getElementById('containerBad') - const erd = elementResizeDetectorMaker(); - erd.listenTo(document.getElementById('badDialog'), (element) => { - fanChart.style.height = element.offsetHeight - 140 + 'px' - myEcharts.resize(); - }); - if (isFullScreen.value) { - initChart(res.data.dates, res.data, dataZoomTop) + if(props.isSimulate){ + getSimulationBadGasEchartsInfo(id, time, type, startTime, endTime).then(res => { + if (res?.code === 1000) { + showLoading.value = false + chartData = res.data + nextTick(() => { + if (flag) { + const fanChart = document.getElementById('containerBad') + const erd = elementResizeDetectorMaker(); + erd.listenTo(document.getElementById('badDialog'), (element) => { + fanChart.style.height = element.offsetHeight - 140 + 'px' + myEcharts.resize(); + }); + if (isFullScreen.value) { + initChart(res.data.dates, res.data, dataZoomTop) + } + } else { + shrinkScreen() } - } else { - shrinkScreen() - } - }) - } - }) + }) + } + }) + }else{ + getBadGasEchartsInfo(id, time, type, startTime, endTime).then(res => { + if (res?.code === 1000) { + showLoading.value = false + chartData = res.data + nextTick(() => { + if (flag) { + const fanChart = document.getElementById('containerBad') + const erd = elementResizeDetectorMaker(); + erd.listenTo(document.getElementById('badDialog'), (element) => { + fanChart.style.height = element.offsetHeight - 140 + 'px' + myEcharts.resize(); + }); + if (isFullScreen.value) { + initChart(res.data.dates, res.data, dataZoomTop) + } + } else { + shrinkScreen() + } + }) + } + }) + + } } const handleOpenChart = () => { clickMonth.value = '' diff --git a/src/components/content/fanInfo/FanInfo.vue b/src/components/content/fanInfo/FanInfo.vue index 29257db..39e18b2 100644 --- a/src/components/content/fanInfo/FanInfo.vue +++ b/src/components/content/fanInfo/FanInfo.vue @@ -12,7 +12,7 @@
{{ changeNum(item) }}号风机
-
+
@@ -36,7 +36,7 @@
-
+
@@ -46,7 +46,7 @@ 手动
-
+
给定频率 @@ -68,7 +68,7 @@
-
+
@@ -152,6 +152,7 @@ const props = defineProps({ fanData: Array, transducerData: Array, loading: Number, + isSimulate: Boolean, }); const chooseDayRef = ref(); const chooseMonthRef = ref(); diff --git a/src/components/content/tunnelScene/TunnelSceneSimulate.vue b/src/components/content/tunnelScene/TunnelSceneSimulate.vue new file mode 100644 index 0000000..be8af38 --- /dev/null +++ b/src/components/content/tunnelScene/TunnelSceneSimulate.vue @@ -0,0 +1,408 @@ + + + + + diff --git a/src/components/content/usedEle/UsedEle.vue b/src/components/content/usedEle/UsedEle.vue index e8298c5..9720f8d 100644 --- a/src/components/content/usedEle/UsedEle.vue +++ b/src/components/content/usedEle/UsedEle.vue @@ -247,6 +247,7 @@ const setValueB = () => { valueB.value.style.height = `${width}px`; } const getBasicData = (data) => { + if(!data)return; electricityConsumptionMonthly.value = data.electricityConsumptionCount monthlySavings.value = data.conserveElectricityCount } diff --git a/src/components/content/windPressure/WindPressureList.vue b/src/components/content/windPressure/WindPressureList.vue index b8272c2..94e4b05 100644 --- a/src/components/content/windPressure/WindPressureList.vue +++ b/src/components/content/windPressure/WindPressureList.vue @@ -26,10 +26,10 @@
导出
- + @@ -52,7 +52,7 @@ import WindPressureItem from "./childComps/WindPressureItem.vue"; import TimeRangeBtn from "@/components/timeRangeBtn/index.vue" import * as echarts from 'echarts'; -import {getEchartsInfo} from "@/api/largeScreen"; +import {getEchartsInfo, getSimulationEchartsInfo} from "@/api/largeScreen"; import ChooseDay from "@/components/chooseDates/index.vue" import ChooseMonth from "@/components/chooseMonth/index.vue" import elementResizeDetectorMaker from "element-resize-detector"; @@ -63,6 +63,7 @@ const props = defineProps({ list: Array, winData: Array, loading: Number, + isSimulate: Boolean, }); const loadingText = ref('加载中...') const chooseDayRef = ref(); @@ -70,7 +71,7 @@ const chooseMonthRef = ref(); const windSort = ref(1) const windSortId = ref(1) const timeList = ref(["年", "月", "日"]); -const selectTimeButton = ref(2); +const timeSimulateList = ref(["日"]); const isVisited = ref(false); const isFullScreen = ref(false); let chartData = reactive([]) @@ -80,6 +81,7 @@ let myEcharts = reactive({}); const wpList = ref([]); const clickMonth = ref('') const clickDay = ref('') +const selectTimeButton = ref(props.isSimulate?0:2); watch(() => props.list, (now) => { wpList.value.forEach(item => { now.forEach(newItem => { @@ -201,29 +203,57 @@ const getWindInfo = (equipmentId, type = 'day', time = '', flag, startTime, endT } } }) - getEchartsInfo(equipmentId, time, type, startTime, endTime).then(res => { - if (res?.code === 1000) { - showLoading.value = false - chartData = res.data - nextTick(() => { - if (flag) { - const fanChart = document.getElementById('container') - const erd = elementResizeDetectorMaker(); - erd.listenTo(document.getElementById('windDialog'), (element) => { - fanChart.style.height = element.offsetHeight - 140 + 'px' - myEcharts.resize(); - }); - if (isFullScreen.value) { - initChart(res.data.dates, res.data.values, dataZoomTop) + if(props.isSimulate) { + getSimulationEchartsInfo(equipmentId, time, type, startTime, endTime).then(res => { + if (res?.code === 1000) { + showLoading.value = false + chartData = res.data + nextTick(() => { + if (flag) { + const fanChart = document.getElementById('container') + const erd = elementResizeDetectorMaker(); + erd.listenTo(document.getElementById('windDialog'), (element) => { + fanChart.style.height = element.offsetHeight - 140 + 'px' + myEcharts.resize(); + }); + if (isFullScreen.value) { + initChart(res.data.dates, res.data.values, dataZoomTop) + } + } else { + shrinkScreen() } - } else { - shrinkScreen() - } - }) - } else { - loadingText.value = res.msg - } - }) + }) + } else { + loadingText.value = res.msg + } + }) + + }else{ + getEchartsInfo(equipmentId, time, type, startTime, endTime).then(res => { + if (res?.code === 1000) { + showLoading.value = false + chartData = res.data + nextTick(() => { + if (flag) { + const fanChart = document.getElementById('container') + const erd = elementResizeDetectorMaker(); + erd.listenTo(document.getElementById('windDialog'), (element) => { + fanChart.style.height = element.offsetHeight - 140 + 'px' + myEcharts.resize(); + }); + if (isFullScreen.value) { + initChart(res.data.dates, res.data.values, dataZoomTop) + } + } else { + shrinkScreen() + } + }) + } else { + loadingText.value = res.msg + } + }) + + } nextTick(() => { loadingText.value = '加载中...' }) diff --git a/src/components/deviceManage/index.vue b/src/components/deviceManage/index.vue index e0f15a5..7f146b9 100644 --- a/src/components/deviceManage/index.vue +++ b/src/components/deviceManage/index.vue @@ -39,47 +39,33 @@ :header-cell-style="{backgroundColor: '#064B66',color: '#fff',fontSize: '40px',borderBottom: 'none' }" :cell-style="{textAlign: 'center',borderBottom: 'none'}" :data="fanData"> - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + +