refine Semi UI track replay workspace

This commit is contained in:
lingniu
2026-07-18 02:41:25 +08:00
parent c29d41fd86
commit 1a3a7d49ec
4 changed files with 657 additions and 80 deletions

View File

@@ -287,12 +287,13 @@ describe('V2 production entry', () => {
expect(corePageSources.TrackPage).toContain('<Input');
expect(corePageSources.TrackPage).toContain('<Select');
expect(corePageSources.TrackPage).toContain('<Slider');
expect(corePageSources.TrackPage).toContain('<Card className={`v2-track-query-card${queryCollapsed');
expect(corePageSources.TrackPage).toContain('<Card className="v2-track-rail-result"');
expect(corePageSources.TrackPage).toContain('<Card className="v2-track-rail-shell"');
expect(corePageSources.TrackPage).toContain('<section className={`v2-track-query-panel${queryCollapsed');
expect(corePageSources.TrackPage).toContain('<section className="v2-track-rail-result">');
expect(corePageSources.TrackPage).toContain('<Card className="v2-track-current-card"');
expect(corePageSources.TrackPage).toContain('<Card className="v2-track-empty-state"');
expect(corePageSources.TrackPage).toContain('<Card className="v2-track-playback-dock"');
expect(corePageSources.TrackPage).toContain('<Card className="v2-track-overview-card"');
expect(corePageSources.TrackPage).toContain('<section className="v2-track-overview-section">');
expect(corePageSources.TrackPage).toContain('<Descriptions className="v2-track-overview-descriptions"');
expect(corePageSources.TrackPage).toContain('<Empty className="v2-track-rail-empty"');
expect(corePageSources.TrackPage).toContain('<List className="v2-track-evidence-list v2-track-stop-list"');
@@ -300,15 +301,16 @@ describe('V2 production entry', () => {
expect(corePageSources.TrackPage).toContain('<List.Item className="v2-track-evidence-item"');
expect(corePageSources.TrackPage).toContain('<Empty image={<IconMapPin />} title="先选择车辆,再开始轨迹回放"');
expect(corePageSources.TrackPage).not.toContain('<Card className="v2-track-overview-card"><header><strong>行程概览</strong><Tag color={track.sampled ? \'orange\' : \'green\'} type="light" size="small">{track.sampled ? \'地图已抽稀\' : \'完整点集\'}</Tag></header><dl>');
expect(corePageSources.TrackPage).toContain('<Card className="v2-track-overview-card v2-track-source-card"');
expect(corePageSources.TrackPage).toContain('<section className="v2-track-overview-section v2-track-source-card">');
expect(corePageSources.TrackPage).toContain('<List className="v2-track-source-list"');
expect(corePageSources.TrackPage).toContain('<List.Item className="v2-track-source-item"');
expect(corePageSources.TrackPage).not.toContain('<Card className="v2-track-source-item"');
expect(corePageSources.TrackPage).toContain('<Card className={`v2-track-overview-card v2-track-quality-card');
expect(corePageSources.TrackPage).toContain('<section className={`v2-track-overview-section v2-track-quality-card');
expect(corePageSources.TrackPage).not.toContain('<section className={`v2-track-quality-card');
expect(corePageSources.TrackPage).not.toContain('<article key={source.protocol}');
expect(corePageSources.TrackPage).not.toContain('<article className="v2-track-current-card"');
expect(corePageSources.TrackPage).not.toContain('<footer className="v2-track-playback-dock"');
expect(corePageSources.TrackPage).not.toContain('v2-track-coverage-float');
expect(corePageSources.TrackPage).not.toContain('<select');
expect(corePageSources.TrackPage).not.toContain('<input');
expect(corePageSources.TrackPage).not.toContain('<button');
@@ -430,8 +432,10 @@ describe('V2 production entry', () => {
expect(corePageSources.OperationsPage).toContain('<Tag className={`v2-ops-health-tag');
expect(reconciliationSource).toContain('<Tag className={`v2-reconcile-severity');
expect(reconciliationSource).toContain('<Tag className={`v2-reconcile-status');
expect(v2Styles).toContain('.v2-track-rail-expand { z-index: 21; top: auto; bottom: calc(132px + env(safe-area-inset-bottom));');
expect(v2Styles).toContain('.v2-track-stage:has(.v2-track-current-card) .v2-track-rail-expand { bottom: calc(248px + env(safe-area-inset-bottom));');
expect(workspaceStyles).toContain('.v2-track-rail-expand {');
expect(workspaceStyles).toContain('bottom: calc(112px + env(safe-area-inset-bottom));');
expect(workspaceStyles).toContain('.v2-track-stage:has(.v2-track-current-card) .v2-track-rail-expand {');
expect(workspaceStyles).toContain('bottom: calc(252px + env(safe-area-inset-bottom));');
expect(v2Styles).toContain('grid-template-rows: minmax(0, 1fr);');
expect(appShellSource).toContain("section === 'tracks' ? ' is-track-workspace' : ''");
expect(corePageSources.TrackPage).toContain("monitorReturn ? ' has-monitor-return' : ''");
@@ -439,8 +443,9 @@ describe('V2 production entry', () => {
expect(v2Styles).toContain('.v2-content.is-track-workspace { min-height: 0; overflow: hidden; }');
expect(workspaceStyles).toContain('.v2-workspace-panel-header.is-inverted > .v2-workspace-panel-copy > h5.semi-typography');
expect(workspaceStyles).toContain('color: #f8fbff;');
expect(v2Styles).toContain('.v2-track-current-card > .semi-card-body > div strong { margin-top: 4px; color: var(--track-overlay-text);');
expect(v2Styles).toContain('.v2-track-current-card.semi-card { top: auto; right: 8px; bottom: 126px; left: 8px; width: auto; height: auto;');
expect(workspaceStyles).toContain('.v2-track-current-card > .semi-card-body > .v2-track-current-metrics strong {');
expect(workspaceStyles).toContain('.v2-track-current-card.semi-card,');
expect(workspaceStyles).toContain('bottom: 110px;');
expect(workspaceFilterPanelSource).toContain("from './MobileFilterToggle'");
expect(workspaceFilterPanelSource).toContain('<MobileFilterToggle');
for (const name of ['VehiclePage', 'HistoryPage', 'AlertsPage', 'AccessPage', 'StatisticsPage', 'UsersPage', 'OperationsPage']) {