生产数据模式'); expect(corePageSources.OperationsPage).toContain(' { expect(reconciliationSource).toContain(' .semi-card-body > .v2-vehicle-not-found-state.v2-state-surface { + width: 100%; + min-height: 390px; + border: 0; + border-radius: 14px; +} + +.v2-not-found .v2-vehicle-not-found-state > .v2-state-empty.semi-empty { + min-height: 0; + border: 0; + background: transparent; +} + +@media (max-width: 680px) { + .v2-monitor-table-loading.v2-state-surface { + min-height: 76px; + } + + .v2-source-loading.v2-state-surface, + .v2-ops-source-loading.v2-state-surface { + min-height: 188px; + } + + .v2-reconcile-detail-loading.v2-state-surface { + min-height: 240px; + } + + .v2-alert-notification-loading.v2-state-surface { + min-height: 176px; + } + + .v2-not-found.semi-card > .semi-card-body > .v2-vehicle-not-found-state.v2-state-surface { + min-height: 320px; + } +} diff --git a/vehicle-data-platform/design-qa.md b/vehicle-data-platform/design-qa.md index d4fce251..8cb1f58a 100644 --- a/vehicle-data-platform/design-qa.md +++ b/vehicle-data-platform/design-qa.md @@ -250,6 +250,49 @@ final result: passed +## 跨工作台异步状态 Semi UI Design QA + +- source visual truth: ECS 生产端监控、车辆、告警、运维与质量对账工作台 +- implementation screenshots: + - monitor first error pass: `/Users/lingniu/.codex/audits/2026-07-20-semi-mileage-refinement/02-monitor-single-error-after.jpg` + - monitor single error polished: `/Users/lingniu/.codex/audits/2026-07-20-semi-mileage-refinement/03-monitor-single-error-polished.jpg` + - monitor recovered list: `/Users/lingniu/.codex/audits/2026-07-20-semi-mileage-refinement/04-monitor-recovered-after.jpg` +- viewport and state: + - desktop `1280 × 720` + - 客户权限、列表模式、未授权搜索错误与清筛恢复状态 + +### Fidelity Ledger + +| Surface | Required fidelity | Implementation evidence | Result | +| --- | --- | --- | --- | +| Loading language | 监控、告警、来源诊断、协议就绪度和差异队列不应继续维护各自的裸 Spin。 | 五个工作流统一迁移到共享 `PanelLoading`,保留各自任务说明与稳定面板高度。 | Improved. | +| State priority | 请求失败时不能同时显示错误和空结果,用户只能看到一个恢复方向。 | 生产复现未授权搜索后,错误状态优先;“暂无符合条件的车辆”和表格默认“暂无数据”均不再叠加。 | Passed. | +| Recovery continuity | 清除错误筛选后应恢复原实时列表,不丢失列表模式与授权范围。 | 点击“清空”后恢复 44 辆授权车辆、实时列和分页,错误状态消失。 | Passed. | +| Layout stability | 轮询或详情懒加载不能让列表、详情侧栏和卡片高度跳变。 | 状态表面按宿主面板设置稳定最小高度;监控刷新继续保留当前行,完成后平滑替换。 | Improved. | +| Semantic reuse | 未找到车辆应与其他页面的可恢复空结果使用同一 Semi UI 结构。 | 单车未找到状态改为共享 `PanelEmpty`,保留搜索图标、原因说明和唯一“重新查询”动作。 | Passed by component regression coverage. | +| Cross-page cleanup | 已迁移页面不能继续携带未使用的 Empty、Spin 依赖。 | Access、Statistics 清理残留导入;Alerts、Operations、Reconciliation 移除页面级裸 Spin。 | Passed. | +| Production readiness | 迁移必须通过全量回归、构建门禁、原子发布和登录态验收。 | 372 项测试、Web build gate、资源烟测、生产交互与控制台检查完成;版本 `semi-state-priority-polish-20260720043854`。 | Passed. | + +### Interaction And Accessibility Checks + +- 所有共享加载状态继续使用 `role="status"` 与 `aria-live="polite"`; +- 请求失败继续使用 `role="alert"`,只保留一个“重试”按钮; +- 监控搜索错误时不再同时公布空结果状态; +- 清除筛选后实时列表恢复,列表模式、分页和每页数量保持不变; +- 单车未找到状态使用可访问名称“重新查询车辆”; +- 本轮视觉证据覆盖客户可访问的监控主流程;管理员专属告警、运维与对账状态由组件测试、源码门禁和生产构建覆盖,不冒充已完成管理员视觉认证。 + +### Comparison History + +#### Pass 1 — fixed + +- 首次生产验收发现未授权车牌搜索同时显示权限错误、空结果和表格默认空占位。 +- 第一轮先抑制业务空结果;第二轮继续隐藏错误范围下的 Semi 表格默认“暂无数据”,保留表头帮助理解当前列结构。 +- 清除筛选后 44 辆授权车辆恢复,实时指标、协议、坐标和分页均正常。 +- 控制台没有新增错误或警告,未发现页面裁切、状态覆盖或不可达恢复动作。 + +final result: passed + ## 历史证据与账号治理次级状态 Semi UI Design QA - source visual truth: ECS 生产端历史数据与账号管理工作台