From 3fd897fca2080a23656a4d630bf33d10df896940 Mon Sep 17 00:00:00 2001
From: zhujiyan <17812234322@163.com>
Date: Mon, 14 Oct 2024 15:09:58 +0800
Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E6=9B=B4=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/api/cs-device-boot/EquipmentDelivery.ts | 10 +-
src/views/govern/device/control/index.vue | 75 ++++----
.../control/tabs/components/realtrend.vue | 166 +++++++++++++-----
src/views/govern/device/fileService/popup.vue | 9 +-
src/views/govern/device/planData/index.vue | 122 ++++++-------
5 files changed, 223 insertions(+), 159 deletions(-)
diff --git a/src/api/cs-device-boot/EquipmentDelivery.ts b/src/api/cs-device-boot/EquipmentDelivery.ts
index 64911d5..15d791d 100644
--- a/src/api/cs-device-boot/EquipmentDelivery.ts
+++ b/src/api/cs-device-boot/EquipmentDelivery.ts
@@ -34,13 +34,21 @@ export function getBasicRealData(id: any) {
}
/**** 获取谐波实时数据 ****/
-export function getHarmRealData(target: any) {
+export function getHarmRealData(id: any, target: any) {
return createAxios({
url: `/cs-harmonic-boot/realData/getHarmRealData?lineId=${id}&target=${target}`,
method: 'POST'
})
}
+/**** 获取国标限值 ****/
+export function getOverLimitData(id: any) {
+ return createAxios({
+ url: `/cs-device-boot/csline/getOverLimitData?id=${id}`,
+ method: 'POST'
+ })
+}
+
//获取实时数据列表数据
export function getRealTimeTableList() {
return createAxios({
diff --git a/src/views/govern/device/control/index.vue b/src/views/govern/device/control/index.vue
index 2101992..7da9282 100644
--- a/src/views/govern/device/control/index.vue
+++ b/src/views/govern/device/control/index.vue
@@ -111,10 +111,10 @@
查询
- 实时趋势
+ 谐波频谱
- 谐波频谱
+ 实时趋势
实时录波
- 实时趋势
- 谐波频谱
+ 谐波频谱
+ 实时趋势
-->
返回
@@ -294,7 +294,13 @@ import Detail from './detail.vue'
import PointTree from '@/components/tree/govern/pointTree.vue'
import { mainHeight } from '@/utils/layout'
import { queryByCode, queryByid, queryCsDictTree } from '@/api/system-boot/dictTree'
-import { getDeviceData, getTabsDataByType, getBasicRealData } from '@/api/cs-device-boot/EquipmentDelivery'
+import {
+ getDeviceData,
+ getTabsDataByType,
+ getBasicRealData,
+ getHarmRealData,
+ getOverLimitData
+} from '@/api/cs-device-boot/EquipmentDelivery'
import { deviceHisData, deviceRtData, getGroup } from '@/api/cs-device-boot/csGroup'
import { ref, reactive, nextTick, onMounted, watch, onUnmounted } from 'vue'
import { ElMessage } from 'element-plus'
@@ -364,14 +370,30 @@ const handleRecordWaves = () => {
}
//实时趋势
const realTrendRef = ref()
+//谐波频谱
+const harmonicSpectrumRef = ref()
+//实时趋势
const handleTrend = () => {
realTimeFlag.value = false
sonTab.value = 1
+ clearInterval(timer.value)
+ clearInterval(realDataTimer.value)
+ getHarmRealData(lineId.value, 0).then((res: any) => {
+ if (res.code == 'A0000') {
+ mqttRef.value.on('message', (topic: any, message: any) => {
+ // console.log('mqtt接收到消息', message,topic)
+ console.log('mqtt接收到消息', JSON.parse(JSON.stringify(JSON.parse(new TextDecoder().decode(message)))))
+ let obj = JSON.parse(JSON.stringify(JSON.parse(new TextDecoder().decode(message))))
+ realTrendRef.value && realTrendRef.value.setRealTrendData(obj)
+ })
+ }
+ })
+ getOverLimitData(lineId.value).then((res: any) => {
+ console.log(res, '获取国标限制')
+ })
realTrendRef.value && realTrendRef.value.open({ devId: deviceId.value, lineId: lineId.value })
- window.clearInterval(timer.value)
}
//谐波频谱
-const harmonicSpectrumRef = ref()
const handleHarmonicSpectrum = () => {
realTimeFlag.value = false
sonTab.value = 2
@@ -576,22 +598,15 @@ const handleClick = async (tab?: any) => {
}
//查询实时数据
if (dataSet.value.includes('_realtimedata')) {
- console.log(66666)
//查询实时数据显示实时录波、实时趋势、谐波频谱
realTimeFlag.value = true
- let obj = {
- type: 2,
- dataLevel: formInline.dataLevel,
- devId: deviceId.value, //e.id
- lineId: lineId.value //e.pid
- }
setTimeout(() => {
tableLoading.value = false
}, 1500)
//新的实时数据
- //1.调用接口
- getBasicRealData(lineId.value).then((res: any) => {
+ //1.调用接口 mqtt推送数据
+ await getBasicRealData(lineId.value).then((res: any) => {
console.log(res, '获取基础实时数据')
})
//2.建立mqtt通讯
@@ -599,7 +614,7 @@ const handleClick = async (tab?: any) => {
const mqttMessage = ref
({})
//每隔30s调用一下接口,通知后台推送mqtt消息
- realDataTimer.value = setInterval(() => {
+ realDataTimer.value = setInterval(() => {
getBasicRealData(lineId.value).then((res: any) => {
console.log(res, '获取基础实时数据')
})
@@ -617,7 +632,6 @@ const handleClick = async (tab?: any) => {
// console.log('mqtt接收到消息', message,topic)
console.log('mqtt接收到消息', JSON.parse(JSON.stringify(JSON.parse(new TextDecoder().decode(message)))))
let obj = JSON.parse(JSON.stringify(JSON.parse(new TextDecoder().decode(message))))
- console.log(obj, '620=================>')
//处理mqtt数据 1转2除 2转1乘
//如果消息返回值是二次值,下拉框是二次值只需要单位换算 除以1000
//如果消息返回值是一次值,下拉框是一次值只需要单位换算 除以1000
@@ -825,31 +839,6 @@ queryByCode('Device_Type').then(res => {
const echoName = (value: any, arr: any[]) => {
return value ? arr.find(item => item.value == value).label : '/'
}
-const openGroup = () => {
- if (!dataSet.value) {
- return ElMessage.warning('暂无数据')
- }
- getGroupLoading.value = true
- getGroup(dataSet.value).then((res: any) => {
- const call = (data: any[]) => {
- data.forEach(item => {
- item.label = item.name
- item.isShow = item.isShow == 1
- if (item.children && item.children.length > 0) {
- call(item.children)
- }
- })
- }
- call(res.data)
- getGroupLoading.value = false
- mangePopup.value.open({
- deviceData: deviceData.value,
- dataSetName: deviceData.value.dataSetList.filter((item: any) => item.id == dataSet.value)[0]?.name,
- dataSet: dataSet.value,
- tree: res.data
- })
- })
-}
onMounted(() => {})
onUnmounted(() => {
diff --git a/src/views/govern/device/control/tabs/components/realtrend.vue b/src/views/govern/device/control/tabs/components/realtrend.vue
index c358b09..e48114c 100644
--- a/src/views/govern/device/control/tabs/components/realtrend.vue
+++ b/src/views/govern/device/control/tabs/components/realtrend.vue
@@ -5,14 +5,14 @@
-
+
+
+
+
次数
+
{{ item.groupName }}
+
+
+
+
+
+ {{ String(key).replace('data', ' ') }}
+
+
+
+
+ {{ value }}
+
+
+
+
@@ -150,7 +177,6 @@ const findRealTrendDataByGroupId = (obj: any) => {
item.unshift({ value: myColumns.value[index].title, count: '' })
})
newTableList.value = list
- console.log("🚀 ~ getDeviceTrendData ~ newTableList.value:", newTableList.value)
loading.value = false
init()
})
@@ -184,13 +210,11 @@ const reverseTable = () => {
reverseTable()
-const echartsData: any = ref([]),
- barCharts = ref()
+const echartsData: any = ref([])
+const barCharts = ref()
//加载echarts
const init = () => {
- // let list: any = []
- let timeList: any = []
let xAxisList: any = []
chartsData.value.map((item: any, index: any) => {
chartsYxiasData.value.map((vv: any, vvs: any) => {
@@ -294,7 +318,7 @@ const init = () => {
let list: any = []
list = []
chartsYxiasData.value.map((item: any) => {
- console.log(item.gbList, 'guobialist340')
+ // console.log(item.gbList, 'guobialist340')
if (item.gbList.length != 0) {
list.push({ phase: item.phase, title: '国标限值', list: item.gbList })
}
@@ -319,9 +343,12 @@ const init = () => {
data: item.list
})
})
- nextTick(() => {
- barCharts.value && barCharts.value.initChart()
- })
+ // nextTick(() => {
+ if (barCharts.value) {
+ console.log(barCharts.value, '+++++++++++++++++++#@!')
+ barCharts.value[activeName.value]?.initChart()
+ }
+ // })
return
}
@@ -330,8 +357,22 @@ const handleClick = (tab: any, event: any) => {
findRealTrendDataByGroupId(params.value)
init()
}
-onMounted(() => { })
-defineExpose({ open })
+//获取mqtt传送的实时数据
+const mqttMessage: any = ref()
+const tableData: any = ref({})
+const setRealTrendData = (val: any) => {
+ console.log(val, '7777777777773555')
+ mqttMessage.value = val
+ for (let key in val) {
+ if (String(key).includes('data') && String(key) != 'dataLevel' && String(key) != 'dataTime') {
+ console.log(val[key], '0000000')
+ tableData.value[key] = val[key]
+ }
+ }
+ console.log(tableData.value, 'kkkkjjjjjsssslllmmmmmssdddd')
+}
+onMounted(() => {})
+defineExpose({ open, setRealTrendData })