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/components/screen-shell.vue |   18 ++++++++++++++++--
 1 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/src/modules/report/components/screen-shell.vue b/src/modules/report/components/screen-shell.vue
index 0196816..e990e92 100644
--- a/src/modules/report/components/screen-shell.vue
+++ b/src/modules/report/components/screen-shell.vue
@@ -25,6 +25,12 @@
 
 			<div class="tools">
 				<el-tag v-if="loadError" type="danger" effect="plain" size="small">{{ loadError }}</el-tag>
+				<el-tag v-if="dataMode === 'demo'" type="info" effect="plain" size="small">
+					婕旂ず鏁版嵁 路 寰呬笟鍔℃暟鎹帴鍏�
+				</el-tag>
+				<el-tag v-else-if="dataMode === 'mixed'" type="warning" effect="plain" size="small">
+					閮ㄥ垎婕旂ず 路 閮ㄥ垎鎸囨爣寰呰ˉ鏁�
+				</el-tag>
 				<el-tag v-else-if="unavailable.length" type="warning" effect="plain" size="small">
 					閮ㄥ垎鎸囨爣寰呰ˉ鏁�
 				</el-tag>
@@ -37,6 +43,13 @@
 
 		<section v-loading="loading" class="green-screen__body">
 			<slot />
+			<el-collapse v-if="dataMode === 'mixed' && demoSections.length" class="missing">
+				<el-collapse-item title="褰撳墠涓烘紨绀烘暟鎹殑鍖哄潡" name="demo">
+					<ul>
+						<li v-for="item in demoSections" :key="item.section">{{ item.label }}</li>
+					</ul>
+				</el-collapse-item>
+			</el-collapse>
 			<el-collapse v-if="unavailable.length" class="missing">
 				<el-collapse-item title="褰撳墠鎷夸笉鍒版垨鍙e緞寰呯‘璁ょ殑鎸囨爣" name="1">
 					<ul>
@@ -53,12 +66,13 @@
 import { useRoute, useRouter } from 'vue-router';
 import { Close, FullScreen, Refresh } from '@element-plus/icons-vue';
 import { SCREEN_NAV, TIME_RANGE_OPTIONS, type ScreenKey } from '../data/screen';
-import { provideScreenTime, useScreenData } from '../hooks/use-screen';
+import { provideScreenTime, useScreenData, useScreenFieldSource } from '../hooks/use-screen';
 
 const route = useRoute();
 const router = useRouter();
 const timeRange = provideScreenTime();
-const { data, loading, loadError, reload } = useScreenData();
+const { data, dataMode, loading, loadError, reload } = useScreenData();
+const { demoSections } = useScreenFieldSource();
 const rootRef = ref<HTMLElement>();
 const isFullscreen = ref(false);
 

--
Gitblit v1.9.1