From c52c841f2f64d5444a94ee0d3df59af9ff39b7f3 Mon Sep 17 00:00:00 2001 From: hzz Date: Wed, 7 Jun 2023 19:02:08 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=86=E6=9C=BA=E6=A2=B0=E5=88=86=E5=8E=82?= =?UTF-8?q?=20=E5=AE=89=E5=85=A8,=E5=B8=B8=E8=A7=84,=E8=83=BD=E8=80=97?= =?UTF-8?q?=E5=A4=A7=E5=B1=8F=E6=95=B0=E6=8D=AE=E6=95=B4=E5=90=88=E5=88=B0?= =?UTF-8?q?=E4=B8=80=E4=B8=AA=E5=B1=8F=E4=B8=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/locales/lang/en.ts | 1 + src/locales/lang/zh.ts | 1 + src/store/moduleSocketMechanics.ts | 42 ++-- src/views/Mechanics/child/son/index.vue | 2 +- .../components/humidity.vue | 202 ++++++++++++++++++ .../components/pm.vue | 190 ++++++++++++++++ .../components/power.vue | 92 ++++++++ .../components/power2023.vue | 2 +- .../generalEnvironmentMechanical/index.vue | 96 ++++++++- 9 files changed, 607 insertions(+), 21 deletions(-) create mode 100644 src/views/generalEnvironmentMechanical/components/humidity.vue create mode 100644 src/views/generalEnvironmentMechanical/components/pm.vue create mode 100644 src/views/generalEnvironmentMechanical/components/power.vue diff --git a/src/locales/lang/en.ts b/src/locales/lang/en.ts index e72daba..e679f15 100644 --- a/src/locales/lang/en.ts +++ b/src/locales/lang/en.ts @@ -271,5 +271,6 @@ export default { '料场':'Raw Material Area', '危废暂存间':'dangerous waste temporary storage room', '历史数据':'Historical Data', + '环境 实时监测系统':'环境 实时监测系统', } } \ No newline at end of file diff --git a/src/locales/lang/zh.ts b/src/locales/lang/zh.ts index ea47a71..8caca04 100644 --- a/src/locales/lang/zh.ts +++ b/src/locales/lang/zh.ts @@ -271,5 +271,6 @@ export default { '料场':'料场', '危废暂存间':'危废暂存间', '历史数据':'历史数据', + '环境 实时监测系统':'环境 实时监测系统', } } \ No newline at end of file diff --git a/src/store/moduleSocketMechanics.ts b/src/store/moduleSocketMechanics.ts index 884c91f..e9d1f63 100644 --- a/src/store/moduleSocketMechanics.ts +++ b/src/store/moduleSocketMechanics.ts @@ -8,17 +8,33 @@ * 版权信息 : 2023 by ${再登软件}, All Rights Reserved. */ import { defineStore } from "pinia"; -import {Names} from '@/store/storeName' -import {gettime,clacendTime} from "@/utils/time" -export const useSocketStore = defineStore(Names.socketjixiefenchang,{ +import { Names } from '@/store/storeName' +import { gettime, clacendTime } from "@/utils/time" +export const useSocketStore = defineStore(Names.socketjixiefenchang, { // 使用方式 // const Index= useIndexStore() // 1、Index.{数据}++ // 2、Index.$patch({数据:??}) // 3、Index.$patch((state)=>{ state.数据=??}) // 4、通过action修改 - state:()=>{ - return{ + state: () => { + return { + humiture: [ + { "devId": "c6f036c0-33fc-11ed-a7e1-fd42bca6c8c6", "name": "精饰车间", "temp": "33.4", "humidity": "30.9" }, + { "devId": "c651b930-3b15-11ed-b6af-15994988a6b3", "name": "精加车间", "temp": "26.1", "humidity": "47" }, + { "devId": "9c4be1e0-33fb-11ed-a7e1-fd42bca6c8c6", "name": "焊接车间", "temp": "29.3", "humidity": "37.6" }, + { "devId": "0e77f0b0-33fc-11ed-a7e1-fd42bca6c8c6", "name": "大件车间", "temp": "28.6", "humidity": "38.4" }, + { "devId": "91f6d000-33fc-11ed-a7e1-fd42bca6c8c6", "name": "机加车间", "temp": "29.9", "humidity": "36.2" } + ], + pm: [ + { "devId": "01336fd0-1fa0-11ed-9223-7db1174970a8", "name": "大件车间粉尘", "pm2": "26", "pm10": "33" }, + { "devId": "083e3900-3435-11ed-a7e1-fd42bca6c8c6", "name": "焊接车间粉尘", "pm2": "46", "pm10": "59" }, + { "devId": "270e1500-eee1-11ed-b2ee-2d727e0cafab", "name": "精加车间粉尘", "pm2": "131", "pm10": "155" }, + { "devId": "54058c30-eee3-11ed-b2ee-2d727e0cafab", "name": "机加车间粉尘", "pm2": "38", "pm10": "44" }, + { "devId": "76efb040-eee3-11ed-b2ee-2d727e0cafab", "name": "大件车间粉尘", "pm2": "52", "pm10": "67" }, + { "devId": "a6020310-eee3-11ed-b2ee-2d727e0cafab", "name": "大件车间粉尘", "pm2": "42", "pm10": "52" }, + { "devId": "bcbfb530-88b2-11ed-a926-570995ad0254", "name": "精饰车间粉尘", "pm2": "9", "pm10": "12" } + ], newVerticalNum: [ { "type": "TVOC", @@ -114,16 +130,16 @@ export const useSocketStore = defineStore(Names.socketjixiefenchang,{ //需要使用return将数据抛出 //getters内可相互使用计算结果 //使用时可直接放入标签内
Index.方法()
- getters:{ + getters: { }, - actions:{ + actions: { //设置新的安全检测数据 setNewVerticalNum(val) { this.newVerticalNum = val }, //更新 新的安全检测数据 - changeNewVerticalNum(val) { + changeNewVerticalNum(val) { //{"type":"Smoke","data":{"name":"精饰车间烟雾传感器","val":"100"}} let pIndex = this.newVerticalNum.findIndex(item => item.type == val.type) let cIndex = null @@ -131,17 +147,17 @@ export const useSocketStore = defineStore(Names.socketjixiefenchang,{ cIndex = this.newVerticalNum[pIndex].value.findIndex(item => item.devId == val.data.devId) } if (cIndex != -1) { - if (val.data.val>this.newVerticalNum[pIndex].limit) { - + if (val.data.val > this.newVerticalNum[pIndex].limit) { + let now = new Date().getTime() if (this.newVerticalNum[pIndex].value[cIndex].date == null) { this.newVerticalNum[pIndex].value[cIndex].date = gettime() this.newVerticalNum[pIndex].value[cIndex].time = now } - + let time = this.newVerticalNum[pIndex].value[cIndex].time - this.newVerticalNum[pIndex].value[cIndex].continuous = clacendTime(now,time) + this.newVerticalNum[pIndex].value[cIndex].continuous = clacendTime(now, time) } else { this.newVerticalNum[pIndex].value[cIndex].date = null this.newVerticalNum[pIndex].value[cIndex].time = null @@ -150,5 +166,5 @@ export const useSocketStore = defineStore(Names.socketjixiefenchang,{ this.newVerticalNum[pIndex].value[cIndex].status = true } } - } + } }) \ No newline at end of file diff --git a/src/views/Mechanics/child/son/index.vue b/src/views/Mechanics/child/son/index.vue index bf7597e..7484a56 100644 --- a/src/views/Mechanics/child/son/index.vue +++ b/src/views/Mechanics/child/son/index.vue @@ -127,7 +127,7 @@ let data={ stoptime:val.stoptime,//急停时长 data:'2020-05-06',//采购日期 src:imgurlAddXhr(val.data),//设备图片 - timeguagu:Math.abs((val.ontime)/(val.ontime+val.offtime)*100).toFixed(1),//时间稼动率 + timeguagu:Math.abs((val.ontime)/(val.ontime+val.offtime)*100).toFixed(1)||0,//时间稼动率 MTBF:2724,//MTBF MTTR:169,//MTTR MTTF:2555,//MTTF diff --git a/src/views/generalEnvironmentMechanical/components/humidity.vue b/src/views/generalEnvironmentMechanical/components/humidity.vue new file mode 100644 index 0000000..ce462aa --- /dev/null +++ b/src/views/generalEnvironmentMechanical/components/humidity.vue @@ -0,0 +1,202 @@ + + + + + + \ No newline at end of file diff --git a/src/views/generalEnvironmentMechanical/components/pm.vue b/src/views/generalEnvironmentMechanical/components/pm.vue new file mode 100644 index 0000000..2c5b850 --- /dev/null +++ b/src/views/generalEnvironmentMechanical/components/pm.vue @@ -0,0 +1,190 @@ + + + + + diff --git a/src/views/generalEnvironmentMechanical/components/power.vue b/src/views/generalEnvironmentMechanical/components/power.vue new file mode 100644 index 0000000..2273ff4 --- /dev/null +++ b/src/views/generalEnvironmentMechanical/components/power.vue @@ -0,0 +1,92 @@ + + + + + diff --git a/src/views/generalEnvironmentMechanical/components/power2023.vue b/src/views/generalEnvironmentMechanical/components/power2023.vue index 4c33b67..de3b942 100644 --- a/src/views/generalEnvironmentMechanical/components/power2023.vue +++ b/src/views/generalEnvironmentMechanical/components/power2023.vue @@ -74,7 +74,7 @@ const initEchart = () => { data: data0, color: "#bbf", stack: props.httpValue.listData[1].years, - // barWidth: 30, + barWidth: 40, label: { show: true, diff --git a/src/views/generalEnvironmentMechanical/index.vue b/src/views/generalEnvironmentMechanical/index.vue index 5ff4e07..925207e 100644 --- a/src/views/generalEnvironmentMechanical/index.vue +++ b/src/views/generalEnvironmentMechanical/index.vue @@ -2,7 +2,7 @@
-
@@ -14,7 +14,20 @@
- +
+ + + +
+
+ + + +
@@ -42,6 +55,8 @@ import { onMounted, onUnmounted, reactive, ref } from 'vue' import header2 from '@/components/headerBox/header2.vue' import verticalNumLoop from './components/verticalNumLoop.vue' import power from './components/power2023.vue'; +import pm from './components/pm.vue'; +import humidity from './components/humidity.vue'; import gas from './components/gas.vue' import pipe from './components/pipe.vue' import border13 from '@/components/border/Border13.vue' @@ -88,6 +103,10 @@ let pipeData=ref({listData:[],top:0}) let headerref = ref() let verticalList: any[] = reactive([]) +let pmtimer = null +let humittimer = null + + //获取传感器实时数据 async function getSensorData() { let list = [] @@ -140,7 +159,73 @@ async function getSensorData() { store.setNewVerticalNum(handle_vertical) } +//获取温湿度数据 +let humitureindex = ref(0); +async function gethumitureData() { + let result: any = await getHumitureData({ deptIds }) + if (result.code == 200) { + store.$patch((state) => { + state.humiture = result.data.Humiture + }) + } + + humittimer = setInterval(()=>{ + humitureindex.value++ + if(humitureindex.value>=store.humiture.length){ + humitureindex.value=0 + } + },5000) +} + +//获取粉尘数据 +let pmindex = ref(0); +async function getPmData() { +let resulttwo: any = await getPmtwoData() + let resultten: any = await getPmtenData() + let arr = [ + '01336fd0-1fa0-11ed-9223-7db1174970a8', + '083e3900-3435-11ed-a7e1-fd42bca6c8c6', + '270e1500-eee1-11ed-b2ee-2d727e0cafab', + '54058c30-eee3-11ed-b2ee-2d727e0cafab', + '76efb040-eee3-11ed-b2ee-2d727e0cafab', + 'a6020310-eee3-11ed-b2ee-2d727e0cafab', + 'bcbfb530-88b2-11ed-a926-570995ad0254' + ] + let data = {} + if (resulttwo) { + resulttwo.data.forEach(ele => { + if (arr.indexOf(ele.devId) >-1 ) { + data[ele.devId] = { + devId: ele.devId, + name: ele.name + '粉尘', + pm2: ele.value, + pm10: null + } + } + }) + } + + if (resultten) { + resultten.data.forEach(ele => { + if (data.hasOwnProperty(ele.devId)) { + data[ele.devId].pm10 = ele.value + } + + }) + } + store.$patch((state) => { + state.pm = Object.values(data) + }) + pmtimer = setInterval(()=>{ + pmindex.value++ + if(pmindex.value>=store.pm.length){ + pmindex.value=0 + } + },5000) + +} +//获取用电量数据 async function getPower_data() { let result: any = await getPowerData({ time: 1 }); @@ -180,7 +265,7 @@ async function getPower_data() { data: data0, color: "#bbf", stack: result.data.listData[1].years, - // barWidth: 30, + barWidth: 40, label: { show: true, @@ -196,15 +281,12 @@ async function getPower_data() { } async function getconsumeDetailfun(){ let result:any = await getconsumeDetail() - console.log(gasData.value); if(result.code==200){ result.data.forEach(res=>{ if(res.deptName=='喷漆车间' && res.type=='GasDetail'){ gasData.value=res.usageNum } }) - - console.log(gasData.value); } } @@ -273,6 +355,8 @@ onMounted(() => { getPower_data() getpipeDatafun() getconsumeDetailfun() + gethumitureData() + getPmData() connectWebsocket(null, null, getWebsocket, errWebsocket); }) onUnmounted(() => {