feat(HEL-546): 数据中枢 A/B/C 三方向落地为可用页面
- 基于第七版稳定基线(be647bb)重构 admin 前端为模块化架构:
tokens.css(设计token唯一来源) + shared.css(公共组件) + core.js(状态/API/事件总线/轮询/路由)
+ main.js(入口) + layouts/{flowline,ledger,strata}.{css,js}(三方向独立布局)
+ layouts/shared.js(三方向共用数据视图与操作绑定)
- 三个页面(A装配线/B值班台账/C地层剖面)通过 ?layout= 查询参数独立可达、可刷新、可前进后退导航,
共享登录态、真实后端数据(overview/sources/jobs/batches/datasets/audit)、错误处理与主题
- 六大板块(总览/数据源/调度任务/盘后发布/数据集/审计)在三个方向均可查看与操作(探测/触发/回滚/补数)
- 修正健康状态语义:CircuitBreaker closed/half_open/open 与适配器 ok/error/empty/unconfigured/unknown
统一归一化为 ok/warn/error/unconfigured/unknown 供三方向一致展示
- 事件驱动动效:A 水平接力光梭、B 行级高亮+实时调用跑马灯、C 纵向贯穿光点+分层标记;
统一使用 transform/opacity/WAAPI,避免 transition:all,支持 prefers-reduced-motion 静态降级
- 修复响应式布局在 1024/1280 断点因 CSS Grid 默认 min-width:auto 被内部宽表格撑爆轨道的问题
- 修复布局切换/前进后退时残留 setTimeout 回调在 unmount 后访问 null root 导致的报错(mounted 标志位+
safeTimeout+统一清理定时器)
- 自测:Playwright 全断点(1440/1280/1024)x 双主题矩阵截图、90 次连续布局切换+前进后退压力测试无报错、
探测/触发/回滚danger操作流程验证、reduced-motion 验证;后端 pytest 全量 133 用例通过,无回归
- 未改动:登录/鉴权契约、后端 API、'问天'冻结区、生产数据/权限
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
co-authored by
Cursor
multica-agent
parent
be647bbaba
commit
011ecc0d1a
@@ -0,0 +1,79 @@
|
||||
/* xiaobai-datahub 数据中枢后台 —— 第九版视觉基础 Token(A/B/C 三方向共用,唯一来源)
|
||||
来源:HEL-545 视觉规范 + prototype-A-flowline.html 原稿。
|
||||
原则:精密、克制、成熟。禁止霓虹泛光、粒子、发光描边、蓝图网格、星球/轨道造型、大蓝球/星空。
|
||||
任何视觉改动只改这个文件里的变量,禁止在各布局 CSS 里另起一套颜色/间距。 */
|
||||
:root {
|
||||
color-scheme: light;
|
||||
/* ---- 日间(默认) ---- */
|
||||
--bg0: #F4F6F8;
|
||||
--bg1: #FFFFFF;
|
||||
--bg2: #EEF1F4;
|
||||
--bg3: #E4E9EF;
|
||||
--line: rgba(15, 23, 42, .12);
|
||||
--line-soft: rgba(15, 23, 42, .06);
|
||||
|
||||
--t1: #16202C;
|
||||
--t2: #4C5C6F;
|
||||
--t3: #8593A5;
|
||||
|
||||
--action: #2F6FE4;
|
||||
--action-soft: rgba(47, 111, 228, .10);
|
||||
--alive: #0E9F6E;
|
||||
--alive-soft: rgba(14, 159, 110, .10);
|
||||
--act: #C77F1A;
|
||||
--act-soft: rgba(199, 127, 26, .12);
|
||||
--error: #D0342C;
|
||||
--error-soft: rgba(208, 52, 44, .10);
|
||||
--unknown: #7B8898;
|
||||
--unconfigured: #9AA7B5;
|
||||
|
||||
--packet: #2F6FE4;
|
||||
--shadow-pop: 0 8px 24px rgba(15, 23, 42, .12);
|
||||
--glass: rgba(255, 255, 255, .86);
|
||||
|
||||
--font-cn: "PingFang SC", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif;
|
||||
--font-mono: ui-monospace, "SF Mono", "JetBrains Mono", "Cascadia Mono", Menlo, Consolas, monospace;
|
||||
|
||||
--fs-hero: 22px;
|
||||
--fs-title: 15px;
|
||||
--fs-body: 13px;
|
||||
--fs-small: 12px;
|
||||
--fs-label: 10.5px;
|
||||
|
||||
--sp1: 4px; --sp2: 8px; --sp3: 12px; --sp4: 16px; --sp5: 24px; --sp6: 32px;
|
||||
--r-card: 8px; --r-chip: 5px; --r-pill: 999px;
|
||||
|
||||
--ease-out: cubic-bezier(.23, 1, .32, 1);
|
||||
--dur-fast: 130ms;
|
||||
--dur-ui: 220ms;
|
||||
--dur-travel: 900ms;
|
||||
}
|
||||
|
||||
:root[data-theme="night"] {
|
||||
color-scheme: dark;
|
||||
--bg0: #0A0E13;
|
||||
--bg1: #10151C;
|
||||
--bg2: #161D26;
|
||||
--bg3: #1C2530;
|
||||
--line: rgba(148, 163, 184, .16);
|
||||
--line-soft: rgba(148, 163, 184, .08);
|
||||
|
||||
--t1: #E8EDF4;
|
||||
--t2: #97A4B6;
|
||||
--t3: #5E6C7F;
|
||||
|
||||
--action: #4C8DFF;
|
||||
--action-soft: rgba(76, 141, 255, .14);
|
||||
--alive: #3CCB9A;
|
||||
--alive-soft: rgba(60, 203, 154, .13);
|
||||
--act: #F0A73C;
|
||||
--act-soft: rgba(240, 167, 60, .13);
|
||||
--error: #E5534B;
|
||||
--error-soft: rgba(229, 83, 75, .13);
|
||||
--unknown: #8B98A9;
|
||||
--unconfigured: #5A6878;
|
||||
|
||||
--packet: #8FB8FF;
|
||||
--shadow-pop: 0 8px 24px rgba(0, 0, 0, .45);
|
||||
--glass: rgba(13, 18, 28, .82);
|
||||
}
|
||||
Reference in New Issue
Block a user