From 17b92e9b60dda6dcc20c748046a5ff3c3958d52e Mon Sep 17 00:00:00 2001
From: wangrong <wangrong@shsening.com>
Date: 星期五, 28 八月 2026 16:19:11 +0800
Subject: [PATCH] 增加首页大屏显示

---
 src/modules/report/views/screen/operation.vue |   33 ++++++++++++++++++++-------------
 1 files changed, 20 insertions(+), 13 deletions(-)

diff --git a/src/modules/report/views/screen/operation.vue b/src/modules/report/views/screen/operation.vue
index e9c9cbc..42c3164 100644
--- a/src/modules/report/views/screen/operation.vue
+++ b/src/modules/report/views/screen/operation.vue
@@ -3,40 +3,46 @@
 		<el-row :gutter="10" class="kpi-row">
 			<el-col :lg="3" :sm="8" :xs="12">
 				<kpi-card label="鍦ㄧ嚎鍒嗘嫞鍛�" :value="data.kpis.sorterOnline"
-					:hint="`${data.kpis.sorterOnline} / ${data.kpis.sorterTotal}`" />
+					:hint="`${data.kpis.sorterOnline} / ${data.kpis.sorterTotal}`"
+					:demo="isDemoField('kpis.sorterOnline')" />
 			</el-col>
 			<el-col :lg="3" :sm="8" :xs="12">
 				<kpi-card label="鍦ㄧ嚎杞﹁締" :value="data.kpis.vehicleOnline"
-					:hint="`${data.kpis.vehicleOnline} / ${data.kpis.vehicleTotal}`" />
+					:hint="`${data.kpis.vehicleOnline} / ${data.kpis.vehicleTotal}`"
+					:demo="isDemoField('kpis.vehicleOnline')" />
 			</el-col>
 			<el-col :lg="3" :sm="8" :xs="12">
 				<kpi-card label="鍦ㄧ嚎鍒嗘嫞鐐�" :value="data.kpis.siteOnline"
-					:hint="`${data.kpis.siteOnline} / ${data.kpis.siteTotal}锛屾寜绔欑偣鍚敤`" />
+					:hint="`${data.kpis.siteOnline} / ${data.kpis.siteTotal}锛屾寜绔欑偣鍚敤`"
+					:demo="isDemoField('kpis.siteOnline')" />
 			</el-col>
 			<el-col :lg="3" :sm="8" :xs="12">
-				<kpi-card label="浠婃棩鍥炴敹璁㈠崟" :value="data.kpis.todayOrders" :hint="``" />
+				<kpi-card label="浠婃棩鍥炴敹璁㈠崟" :value="data.kpis.todayOrders" :demo="isDemoField('kpis.todayOrders')" />
 			</el-col>
 			<el-col :lg="4" :sm="8" :xs="12">
 				<kpi-card label="浠婃棩棰勭害 / 寰呭鐞�" :value="data.kpis.todayAppointments"
-					:hint="`寰呭鐞� ${data.kpis.pendingAppointments}`" />
+					:hint="`寰呭鐞� ${data.kpis.pendingAppointments}`"
+					:demo="isDemoField('kpis.todayAppointments')" />
 			</el-col>
 			<el-col :lg="4" :sm="8" :xs="12">
 				<kpi-card label="寮傚父鍛婅" :value="data.kpis.alerts" alert
-					:hint="`鍋ュ悍寮傚父 ${data.kpis.healthAlerts}锛屼笉灞曠ず闅愮浣撳緛`" />
+					:hint="`鍋ュ悍寮傚父 ${data.kpis.healthAlerts}锛屼笉灞曠ず闅愮浣撳緛`"
+					:demo="isDemoField('kpis.alerts')" />
 			</el-col>
 			<el-col :lg="4" :sm="8" :xs="12">
-				<kpi-card label="杞﹁締瀹夊叏浜嬩欢" :value="safetyCount" hint="瓒呴�� / 鎬ュ埞绛夛紝鏉ヨ嚜杞﹁締鏃ユ眹鎬�" />
+				<kpi-card label="杞﹁締瀹夊叏浜嬩欢" :value="safetyCount" hint="瓒呴�� / 鎬ュ埞绛夛紝鏉ヨ嚜杞﹁締鏃ユ眹鎬�"
+					:demo="isDemoSection('vehicles')" />
 			</el-col>
 		</el-row>
 
 		<el-row :gutter="10" class="mid-row">
 			<el-col :lg="14" :xs="24">
-				<panel-card title="璁㈠崟瓒嬪娍" sub="鐜板満 / 棰勭害 / 澶у睆 / 娲诲姩锛屾寜澶╁姣�">
+				<panel-card title="璁㈠崟瓒嬪娍" sub="鐜板満 / 棰勭害 / 澶у睆 / 娲诲姩锛屾寜澶╁姣�" :demo="isDemoSection('ordersByType')">
 					<v-chart :option="orderOption" autoresize class="chart" />
 				</panel-card>
 			</el-col>
 			<el-col :lg="10" :xs="24">
-				<panel-card title="棰勭害璁㈠崟婕忔枟" sub="鏂板/寰呭鏍� 鈫� 宸茬‘璁�/宸叉帴鍗� 鈫� 宸插畬鎴�">
+				<panel-card title="棰勭害璁㈠崟婕忔枟" sub="鏂板/寰呭鏍� 鈫� 宸茬‘璁�/宸叉帴鍗� 鈫� 宸插畬鎴�" :demo="isDemoSection('appointmentFlow')">
 					<div class="funnel">
 						<div v-for="(item, index) in data.appointmentFlow" :key="item.name" class="funnel__item">
 							<div class="funnel__name">{{ item.name }}</div>
@@ -54,7 +60,7 @@
 
 		<el-row :gutter="10">
 			<el-col :lg="8" :xs="24">
-				<panel-card title="鍒嗘嫞鍛樼姸鎬�" sub="鏉ヨ嚜鍒嗘嫞鍛樻棩琛紝鍙眹鎬荤姸鎬侊紝涓嶅睍绀轰綋寰佹槑缁�">
+				<panel-card title="鍒嗘嫞鍛樼姸鎬�" sub="鏉ヨ嚜鍒嗘嫞鍛樻棩琛紝鍙眹鎬荤姸鎬侊紝涓嶅睍绀轰綋寰佹槑缁�" :demo="isDemoSection('sorterStatus')">
 					<div class="status-list">
 						<div v-for="item in data.sorterStatus" :key="item.name" class="status-list__item">
 							<i :style="{ background: item.color }" />
@@ -65,7 +71,7 @@
 				</panel-card>
 			</el-col>
 			<el-col :lg="8" :xs="24">
-				<panel-card title="杞﹁締杩愯" sub="鍏徃棰嗗鐪嬭繍鍔涗笌瀹夊叏锛屼笉杩涙牎棰嗗棣栭〉">
+				<panel-card title="杞﹁締杩愯" sub="鍏徃棰嗗鐪嬭繍鍔涗笌瀹夊叏锛屼笉杩涙牎棰嗗棣栭〉" :demo="isDemoSection('vehicles')">
 					<div class="table table--vehicle">
 						<div class="table__head">
 							<span>杞︾墝</span>
@@ -85,7 +91,7 @@
 				</panel-card>
 			</el-col>
 			<el-col :lg="8" :xs="24">
-				<panel-card title="鍒嗘嫞鐐瑰悶鍚�" sub="杩愯惀缁村害鎵嶄笅閽诲埌鐐逛綅">
+				<panel-card title="鍒嗘嫞鐐瑰悶鍚�" sub="杩愯惀缁村害鎵嶄笅閽诲埌鐐逛綅" :demo="isDemoSection('sites')">
 					<div class="table table--site">
 						<div class="table__head">
 							<span>鏀堕泦鐐�</span>
@@ -112,9 +118,10 @@
 import { computed } from 'vue';
 import KpiCard from '../../components/kpi-card.vue';
 import PanelCard from '../../components/panel-card.vue';
-import { useChartTheme, useScreenData } from '../../hooks/use-screen';
+import { useChartTheme, useScreenData, useScreenFieldSource } from '../../hooks/use-screen';
 
 const { data } = useScreenData();
+const { isDemoField, isDemoSection } = useScreenFieldSource();
 const { mutedColor, splitColor, tooltip } = useChartTheme();
 
 const safetyCount = computed(() => data.value.vehicles.reduce((s, e) => s + e.overspeed, 0));

--
Gitblit v1.9.1