From c23ac06446a9a1edc41cc13723e5d0b8eabdfd63 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期三, 16 七月 2025 17:30:50 +0800
Subject: [PATCH] 2025.7.16 动态溯源新增合并异常
---
src/views/sourcetrace/SourceTrace.vue | 4
src/api/index.js | 8 +-
src/views/sourcetrace/component/PollutedExceptionItem.vue | 61 ++++++++++----------
src/views/sourcetrace/component/ClueRecordItem.vue | 70 ++++++++++------------
4 files changed, 68 insertions(+), 75 deletions(-)
diff --git a/src/api/index.js b/src/api/index.js
index 1792861..efcd5a1 100644
--- a/src/api/index.js
+++ b/src/api/index.js
@@ -13,10 +13,10 @@
}
if (debug) {
- // ip1 = 'http://192.168.0.103:8084/';
- ip1 = 'http://localhost:8084/';
- // ws = `192.168.0.103:9031`;
- ws = `localhost:9031`;
+ ip1 = 'http://192.168.0.103:8084/';
+ // ip1 = 'http://localhost:8084/';
+ ws = `192.168.0.103:9031`;
+ // ws = `localhost:9031`;
}
const $http = axios.create({
diff --git a/src/views/sourcetrace/SourceTrace.vue b/src/views/sourcetrace/SourceTrace.vue
index a00879a..9cfbd0e 100644
--- a/src/views/sourcetrace/SourceTrace.vue
+++ b/src/views/sourcetrace/SourceTrace.vue
@@ -7,7 +7,7 @@
"
>
<el-col span="2" class="flex-col">
- <el-row justify="end">
+ <el-row :justify="direction == 'left' ? 'end' : 'start'">
<CardButton
:direction="direction"
name="鍔ㄦ�佹函婧�"
@@ -242,7 +242,7 @@
function dealMsg(data) {
const { type, content } = websocketMsgParser.parseMsg(data);
const obj = reactive(JSON.parse(content));
- if (obj[0].deviceCode == props.deviceCode) {
+ if (obj.deviceCode == props.deviceCode) {
obj._type = type;
dealObj(obj);
}
diff --git a/src/views/sourcetrace/component/ClueRecordItem.vue b/src/views/sourcetrace/component/ClueRecordItem.vue
index dedec77..25a1b59 100644
--- a/src/views/sourcetrace/component/ClueRecordItem.vue
+++ b/src/views/sourcetrace/component/ClueRecordItem.vue
@@ -30,7 +30,9 @@
round
class="m-r-4"
>
- <div v-html="formatFactorName(item.pollutedData.factorName)"></div>
+ <div
+ v-html="formatFactorName(item.pollutedData.statisticMap)"
+ ></div>
</el-tag>
<el-text type="info">
{{ item.pollutedData.exception + '锛�' }}
@@ -100,7 +102,9 @@
round
class="m-r-4"
>
- <div v-html="formatFactorName(item.pollutedData.factorName)"></div>
+ <div
+ v-html="formatFactorName(item.pollutedData.statisticMap)"
+ ></div>
</el-tag>
<el-text type="info">{{ item.pollutedData.exception }}</el-text>
</div>
@@ -119,22 +123,6 @@
</div>
</div>
</el-col>
-
- <!-- <el-row justify="space-between">
- <el-space>
- <el-tag type="info" effect="dark" size="small">鎻愰啋</el-tag>
- <el-text type="info">{{
- item.pollutedData.startTime + ' - ' + item.pollutedData.endTime
- }}</el-text>
- </el-space>
- <el-link type="info" @click="emits('open', item)"> 璇︽儏 </el-link>
- </el-row>
- <el-col :span="24">
- <el-tag effect="plain" type="info" size="small" hit round class="m-r-4">
- <div v-html="formatFactorName(item.pollutedData.factorName)"></div>
- </el-tag>
- <el-text type="info">{{ item.pollutedData.exception }}</el-text>
- </el-col> -->
</el-row>
</div>
</template>
@@ -180,27 +168,33 @@
}
}
-function formatFactorName(name) {
- switch (name) {
- case 'PM25':
- return 'PM<sub>2.5</sub>';
- // return '<span>PM2.5</span>';
- case 'PM10':
- return 'PM<sub>10</sub>';
- case 'NO2':
- return 'NO<sub>2</sub>';
- case 'H2S':
- return 'H<sub>2</sub>S';
- case 'SO2':
- return 'SO<sub>2</sub>';
- case 'O3':
- return 'O<sub>3</sub>';
- case 'VOC':
- return 'VOC<sub>s</sub>';
-
- default:
- break;
+function formatFactorName(statisticMap) {
+ const mapName = (n) => {
+ switch (n) {
+ case 'PM25':
+ return 'PM<sub>2.5</sub>';
+ case 'PM10':
+ return 'PM<sub>10</sub>';
+ case 'NO2':
+ return 'NO<sub>2</sub>';
+ case 'H2S':
+ return 'H<sub>2</sub>S';
+ case 'SO2':
+ return 'SO<sub>2</sub>';
+ case 'O3':
+ return 'O<sub>3</sub>';
+ case 'VOC':
+ return 'VOC<sub>s</sub>';
+ default:
+ return '';
+ }
+ };
+ let name = [];
+ for (const key in statisticMap) {
+ const value = statisticMap[key];
+ name.push(mapName(value.factorName));
}
+ return name.join('銆�');
}
function handleSetCenter(item, scene) {
diff --git a/src/views/sourcetrace/component/PollutedExceptionItem.vue b/src/views/sourcetrace/component/PollutedExceptionItem.vue
index a6c80f9..d269ccd 100644
--- a/src/views/sourcetrace/component/PollutedExceptionItem.vue
+++ b/src/views/sourcetrace/component/PollutedExceptionItem.vue
@@ -52,37 +52,36 @@
寮傚父绫诲瀷锛歿{ item.pollutedData.exception }}
</el-text>
</div>
- <el-row style="border-top: 1px solid white">
- <el-col :span="6">
- <el-statistic
- title="绐佸彉鍥犲瓙"
- :value="item.pollutedData.factorName"
- />
- </el-col>
- <el-col :span="6">
- <el-statistic
- v-if="item.pollutedData.exceptionType == 4"
- title="鍙樺寲骞呭害"
- :value="formatPercentage(item.pollutedData.avgPer)"
- />
- <el-statistic
- v-else-if="item.pollutedData.exceptionType == 9"
- title="鍙樺寲閫熺巼"
- :value="formatChangeRate(item.pollutedData.avgRate)"
- suffix=""
- />
- </el-col>
- <el-col :span="6">
- <el-statistic title="鍙戠敓娆℃暟" :value="item.pollutedData.times" />
- </el-col>
- <el-col :span="6">
- <el-statistic
- title="骞冲潎椋庨��"
- :value="item.pollutedData.windSpeed"
- suffix="m/s"
- />
- </el-col>
- </el-row>
+ <div v-for="s in item.pollutedData.statisticMap" :key="s">
+ <el-row style="border-top: 1px solid white">
+ <el-col :span="6">
+ <el-statistic title="绐佸彉鍥犲瓙" :value="s.factorName" />
+ </el-col>
+ <el-col :span="6">
+ <el-statistic
+ v-if="item.pollutedData.exceptionType == 4"
+ title="鍙樺寲骞呭害"
+ :value="formatPercentage(s.avgPer)"
+ />
+ <el-statistic
+ v-else-if="item.pollutedData.exceptionType == 9"
+ title="鍙樺寲閫熺巼"
+ :value="formatChangeRate(s.avgRate)"
+ suffix=""
+ />
+ </el-col>
+ <el-col :span="6">
+ <el-statistic title="鍙戠敓娆℃暟" :value="item.pollutedData.times" />
+ </el-col>
+ <el-col :span="6">
+ <el-statistic
+ title="骞冲潎椋庨��"
+ :value="item.pollutedData.windSpeed"
+ suffix="m/s"
+ />
+ </el-col>
+ </el-row>
+ </div>
<el-row justify="space-between">
<!-- <el-link
type="info"
--
Gitblit v1.9.3