From a96e571b174fa30697f3aa6fdb22b3cf93d21b71 Mon Sep 17 00:00:00 2001 From: riku <risaku@163.com> Date: 星期三, 14 五月 2025 17:32:06 +0800 Subject: [PATCH] 动态溯源 1. 添加websocket逻辑 --- src/views/realtimemode/RealtimeMode.vue | 47 +++++++++++++++++++++++++++++++++-------------- 1 files changed, 33 insertions(+), 14 deletions(-) diff --git a/src/views/realtimemode/RealtimeMode.vue b/src/views/realtimemode/RealtimeMode.vue index f6ff253..86b798a 100644 --- a/src/views/realtimemode/RealtimeMode.vue +++ b/src/views/realtimemode/RealtimeMode.vue @@ -14,6 +14,7 @@ class="m-t-2" :factor="factorDatas.factor[factorType]" ></FactorLegend> + <SourceTrace></SourceTrace> </el-row> <DashBoard class="dash-board" :factor-datas="factorDatas"></DashBoard> <RealTimeTrend @@ -26,24 +27,31 @@ <script> import moment from 'moment'; +import mapUtil from '@/utils/map/util'; import { useFetchData } from '@/composables/fetchData'; import { TYPE0 } from '@/constant/device-type'; -import { radioOptions } from '@/constant/radio-options'; +import { defaultOptions } from '@/constant/radio-options'; import { FactorDatas } from '@/model/FactorDatas'; import DashBoard from './component/DashBoard.vue'; import RealTimeTrend from './component/RealTimeTrend.vue'; import DeviceChange from './component/DeviceChange.vue'; +import SourceTrace from '@/views/sourcetrace/SourceTrace.vue'; import { realTimeMapAnimation } from '@/utils/map/animation'; import { fetchHistoryData, startLoopFetchRealTimeData, clearFetchingTask } from '@/utils/factor/data'; +import thirdPartyDataApi from '@/api/thirdPartyDataApi'; +import websocket from '@/api/websocket'; // const mapAnimation = new MapAnimation(); +// 璋冭瘯妯″紡 +const mode = 'debug'; + export default { - components: { DashBoard, RealTimeTrend, DeviceChange }, + components: { DashBoard, RealTimeTrend, DeviceChange, SourceTrace }, setup() { const { loading, fetchData } = useFetchData(10000); return { loading, fetchData }; @@ -54,7 +62,7 @@ deviceType: TYPE0, deviceCode: '', // 鐩戞祴鍥犲瓙鐨勭被鍨嬬紪鍙� - factorType: radioOptions(TYPE0)[0].value, + factorType: defaultOptions(TYPE0).value, // 鏂拌幏鍙栫殑鐩戞祴鏁版嵁 factorDatas: new FactorDatas(), // 鍏ㄩ儴鐩戞祴鏁版嵁 @@ -99,22 +107,31 @@ // this.draw(); this.factorDatas = fDatas; }); + if (mode == 'debug') { + websocket.send(JSON.stringify(data)); + } }, fetchRealTimeData() { this.fetchData((page) => { - return fetchHistoryData({ - deviceCode: this.deviceCode, - // startTime: '2024-08-20 06:00:00', - // endTime: '2024-08-20 06:02:00', - page, - perPage: 100 - }).then((res) => { + const param = + mode == 'debug' + ? { + deviceCode: this.deviceCode, + startTime: '2025-01-16 11:30:00', + endTime: '2025-01-16 11:32:00', + page, + perPage: 100 + } + : { + deviceCode: this.deviceCode, + page, + perPage: 100 + }; + return fetchHistoryData(param, false).then((res) => { this.onFetchData(res.data); this.onMapData(res.data); - // if (res.data.length > 0) { - // this.fetchNextData(res.data[res.data.length - 1].time); - // } this.fetchNextData(); + thirdPartyDataApi.fetchLatestData(this.deviceType, this.deviceCode); }); }); }, @@ -133,6 +150,7 @@ (res) => { this.onFetchData(res.data); this.onMapData(res.data); + thirdPartyDataApi.fetchLatestData(this.deviceType, this.deviceCode); } ); }, @@ -143,7 +161,7 @@ this.notFirstFetch = true; } startIndex = startIndex < 0 ? 0 : startIndex; - return new Promise((resolve, reject) => { + return new Promise(() => { this.allFactorDatas.addData(dataList, this.drawMode, () => { realTimeMapAnimation.moveAnimation( this.allFactorDatas, @@ -167,6 +185,7 @@ unmounted() { this.clearFetchingTask(); realTimeMapAnimation.stop(); + mapUtil.clearMap(); } }; </script> -- Gitblit v1.9.3