diff --git a/src/modules/mileage/MileageModule.tsx b/src/modules/mileage/MileageModule.tsx
index ce29d10..dfbf4f5 100644
--- a/src/modules/mileage/MileageModule.tsx
+++ b/src/modules/mileage/MileageModule.tsx
@@ -6,7 +6,7 @@ import DailyReportView from './DailyReportView';
import { useHashSubTab } from '../energy/useHashSubTab';
import RotatingFooterHint from '../../components/RotatingFooterHint';
import { FadeIn, PageFrame, SegmentedNav } from '../../components/ui/surface';
-import MetricCatalogButton from '../../components/MetricCatalogButton';
+import BiHeaderActions from '../../components/BiHeaderActions';
type MileageSubTab = 'monitoring' | 'statistics' | 'report';
@@ -28,7 +28,7 @@ export default function MileageModule() {
icon={LayoutDashboard}
eyebrow="MILEAGE BI"
meta="实时监控 · 统计报表 · 每日汇报"
- actions={}
+ actions={}
compactInfo
>
diff --git a/src/shared/analytics/source-status.test.ts b/src/shared/analytics/source-status.test.ts
new file mode 100644
index 0000000..626787e
--- /dev/null
+++ b/src/shared/analytics/source-status.test.ts
@@ -0,0 +1,8 @@
+import assert from 'node:assert/strict';
+import test from 'node:test';
+import { BI_SOURCE_BY_DOMAIN } from './source-status.js';
+
+test('maps every published BI domain to one observable data source', () => {
+ assert.deepEqual(Object.keys(BI_SOURCE_BY_DOMAIN).sort(), ['electric', 'etc', 'hydrogen', 'mileage']);
+ assert.equal(new Set(Object.values(BI_SOURCE_BY_DOMAIN).map(item => item.source)).size, 4);
+});
diff --git a/src/shared/analytics/source-status.ts b/src/shared/analytics/source-status.ts
new file mode 100644
index 0000000..5e20021
--- /dev/null
+++ b/src/shared/analytics/source-status.ts
@@ -0,0 +1,14 @@
+import type { MetricDomain } from './catalog.js';
+
+export type DataSourceId = 'oneOsMileage' | 'hydrogenDatabase' | 'electricDatabase' | 'etcDatabase';
+export type DataSourceState = 'available' | 'failing' | 'unobserved';
+
+export const BI_SOURCE_BY_DOMAIN: Record = {
+ mileage: { source: 'oneOsMileage', label: 'OneOS 里程开放平台' },
+ hydrogen: { source: 'hydrogenDatabase', label: '氢能业务数据库' },
+ electric: { source: 'electricDatabase', label: '电能业务数据库' },
+ etc: { source: 'etcDatabase', label: 'ETC 业务数据库' },
+};