From 781539c6bea54b7689baf008e22fb25028729b4a Mon Sep 17 00:00:00 2001
From: wangrong <wangrong@shsening.com>
Date: 星期六, 26 九月 2026 11:42:26 +0800
Subject: [PATCH] 修改首页显示和统计任务
---
src/modules/report/views/screen/map.vue | 42 +++++++++++++++++++++++-------------------
1 files changed, 23 insertions(+), 19 deletions(-)
diff --git a/src/modules/report/views/screen/map.vue b/src/modules/report/views/screen/map.vue
index 9d6faaa..213582e 100755
--- a/src/modules/report/views/screen/map.vue
+++ b/src/modules/report/views/screen/map.vue
@@ -85,6 +85,7 @@
import ScreenMapPanel from '../../components/screen-map-panel.vue';
import CameraMonitor from '../../../monitor/views/cameras.vue';
import { TIME_RANGE_OPTIONS } from '../../data/screen';
+import { chartSeries, pieTooltipFormatter, toPieData } from '../../data/screen-chart';
import { useChartTheme, useScreenData, useScreenFieldSource } from '../../hooks/use-screen';
const { data, timeRange } = useScreenData();
@@ -142,7 +143,7 @@
/** 鍨冨溇鍒嗙被缁撴瀯锛堥ゼ锛� */
const mixOption = computed(() => ({
- tooltip: { trigger: 'item', formatter: '{b}<br/>{c} ({d}%)', ...tooltip() },
+ tooltip: { trigger: 'item', ...tooltip(), formatter: pieTooltipFormatter() },
series: [
{
type: 'pie',
@@ -151,18 +152,18 @@
padAngle: 3,
itemStyle: { borderRadius: 6 },
label: { color: textColor.value, formatter: '{b}\n{d}%' },
- data: data.value.wasteMix.map(e => ({
- name: e.name,
- value: e[mixMetric.value],
- itemStyle: { color: e.color }
- }))
+ data: toPieData(
+ chartSeries(data.value.wasteMix, e => e[mixMetric.value]),
+ e => e.name,
+ e => e.color
+ )
}
]
}));
-/** 纰冲噺鎺掓潵婧愶紙楗硷級 */
+/** 纰冲噺鎺掓潵婧愶紙楗硷級锛氱⒊鍊煎彲涓鸿礋锛屾寜缁濆鍊煎睍绀哄噺鎺掗噺 */
const carbonOption = computed(() => ({
- tooltip: { trigger: 'item', formatter: '{b}<br/>{c} kgCO鈧俥 ({d}%)', ...tooltip() },
+ tooltip: { trigger: 'item', ...tooltip(), formatter: pieTooltipFormatter('kgCO鈧俥') },
series: [
{
type: 'pie',
@@ -171,11 +172,11 @@
padAngle: 3,
itemStyle: { borderRadius: 6 },
label: { color: textColor.value, formatter: '{b}\n{d}%' },
- data: data.value.recycleItems.map(e => ({
- name: e.name + '鍥炴敹',
- value: e.carbon,
- itemStyle: { color: e.color }
- }))
+ data: toPieData(
+ chartSeries(data.value.recycleItems, e => e.carbon, { carbon: true }),
+ e => e.name + '鍥炴敹',
+ e => e.color
+ )
}
]
}));
@@ -208,8 +209,12 @@
/** 鍚勭被鍥炴敹閲忥紙妯悜鏉″舰锛� */
const itemOption = computed(() => {
- // 鍙嶈浆璁╂暟鍊兼渶澶х殑鎺掑湪椤堕儴
- const rows = [...data.value.recycleItems].reverse();
+ const carbon = itemMetric.value === 'carbon';
+ const rows = chartSeries(
+ data.value.recycleItems,
+ e => Number(e[itemMetric.value] || 0),
+ { carbon, evenSplit: false }
+ ).reverse();
return {
grid: { containLabel: true, left: 8, right: 24, top: 12, bottom: 8 },
tooltip: {
@@ -229,7 +234,7 @@
},
yAxis: {
type: 'category',
- data: rows.map(e => e.name),
+ data: rows.map(e => e.item.name),
axisLabel: { color: textColor.value },
axisLine: { show: false },
axisTick: { show: false }
@@ -238,11 +243,10 @@
{
type: 'bar',
barWidth: 14,
- data: rows.map(e => Number(e[itemMetric.value] || 0)),
+ data: rows.map(e => e.value),
itemStyle: {
borderRadius: [0, 8, 8, 0],
- // 娌跨敤鍚勭被鑷韩閰嶈壊锛屼笌宸︿晶纰冲噺鎺掗ゼ鍥捐瑙変竴鑷�
- color: (params: any) => rows[params.dataIndex]?.color || primary.value
+ color: (params: any) => rows[params.dataIndex]?.item.color || primary.value
}
}
]
--
Gitblit v1.9.1