Archived
5.0 KiB
5.0 KiB
设计中心 · 数据域页面改版记录(2026-08-25)
范围:设计中心 · 数据域首页(
DataHome)与对象详情子页(ObjPage)。 约束:不改功能、不改接口,只改布局与 UI;全程按docs/DESIGN-SPEC.md走 (§15 诊断 → 第二部分规范 → §17 验收 → §18 token 表),用户逐轮验收定稿。
涉及文件
| 文件 | 改动性质 |
|---|---|
apps/web/src/features/gov-data/internal/panel.tsx |
DOM 结构与类名、汇总带、模式转置矩阵、取值呈现(空值/时间格式);无逻辑与取数改动 |
apps/web/src/app/styles/console.css |
重写 .g-actdata*/.g-tbl*,新增 .g-data 与 .g-obj 作用域;.g-kpi 色条改 inset 阴影 |
apps/web/src/shared/gov/primitives.tsx |
Kpi 加可选 hint 属性(角标 info 气泡);其余件零改动 |
apps/web/vite.config.ts |
/api 代理默认指向测试服务器 150.158.83.131:46100,API_PROXY_TARGET 环境变量可覆盖(开发环境配置,非页面) |
共享组件(.g-card/.g-rows/.g-dbtable/.g-dh 等)本体未动,其余治理面板不受影响
—— 所有覆盖都在 .g-data / .g-obj 作用域内。
数据域首页(DataHome)
- 隐藏「无人声明」区(2026-08-24 用户定):壳表数据仍在接口
unclaimed里, 只是不渲染;空态判断相应只看有声明表的活动。 - 页顶汇总带:声明活动 / 声明表 / 正式行 / 在办行四个 KPI,纯前端合计已有数据
(不另取数);口径只含活动声明的表,无人声明的壳表不计入。
每盒右上角 info 角标,悬停出纯 CSS 气泡(
data-tip+::after)讲口径。 - 表块形态:灰底格子 → 清单行(一版)→ 白卡片(用户定稿)—— 1px 描边
#DFE3EA、 圆角 8;卡内自上而下 = 表名+性质徽(右上 chevron)→ 22px 大数字行数(tabular-nums)→ mono 地址+主键单行截断(全文在title)。 - 卡片交互:hover 三层反馈(描边变深
#C4CCD8+ 洗底#F6F7F9+ 行数染主色), activescale(.99)按压感,箭头染色前移 2px;全部0.16s ease-out。 - 节奏:活动卡组间距合成 32px(组内紧组间松),间距全取 8 的倍数。
对象详情子页(ObjPage)
- 上下结构(用户定稿):记录浏览在上整宽(进来先看行数据),模式在下整宽; 主从两栏试过一版,两栏互相挤压,撤了。
- 两个小节同构:小标题都在盒子外(
Sec段标题),下面各一个白底描边圆角盒; 「模式」从Card换成Sec,盒子描边挪给矩阵容器.g-sx。 - 记录浏览表:套上白卡;斑马纹(偶数行
#F8FAFC)+ 行线#E2E7EE+ 列间发丝竖线#EEF1F5;长 JSON 单元格单行截断(超宽横滚); 数字列按 schema 类型右对齐 + 等宽;主键列表头挂蓝色小钥匙图标; 空值(null/undefined)统一显示灰色-。 - ISO 时间格式化:取值函数
cellText识别 ISO 8601 时间串,转本地YYYY-MM-DD HH:MM:SS(如信号日期2026-05-31T16:00:00.000Z→2026-06-01 00:00:00, UTC+8),所有表的日期列同享。 - 行数文案:接口硬编码
limit: 50—— 截断时写「前 50 行 · 共 M 行」, 全量在页内写「共 N 行」,不虚报「前」。 - 模式矩阵:转置(用户定)—— 行 = 参数名/字段/数据类型,列 = 每个字段;
最左窄行标签列吸左(横滚不丢);斑马纹与记录表同套;类型徽分色
(number/integer 蓝、json 紫、text 灰);悬停整列高亮(
::after纵幕 +mix-blend-mode: multiply护住文字,pointer-events: none)。
踩过的坑(留给后来者)
.g-kpi的overflow: hidden会裁掉内部气泡(用户报):色条从::before伪元素 改inset box-shadow(自动贴合圆角、无需裁切),撤掉 overflow。 注意.g-data .g-kpi的box-shadow覆盖必须保留 inset 色条,不能none一抹了之。- 悬停幕直接画会糊住文字:
::after定位元素绘制序在文字之上, 加mix-blend-mode: multiply—— 深字几乎不变色,只染亮底。
Token 表(§18)
| 类别 | 取值 | 说明 |
|---|---|---|
| 强调色 | #3370FF(站点既有飞书蓝) |
未换规范默认 #2563EB —— 整站令牌一致优先 |
| 文字灰阶 | #1F2329 / #646A73 / #8F959E |
同上,沿用站点令牌 |
| 卡片 | 白底 + 1px #DFE3EA 描边,无阴影 |
§10 描边优于阴影 |
| 圆角 | 卡 8 / 块与徽 6 / 状态 chip 全圆 / 图标块 10 | §6,整站无 16px 以上 |
| 间距 | 8 / 12 / 16 / 32 | §6 全 8 倍数 |
| 数字 | tabular-nums,数字列右对齐 |
§6 / §11 |
| 语义色 | 只进徽标(性质徽三色、类型徽蓝/紫、run chips 四色) | §7 |
| 动效 | 全部 0.16s ease-out,只动 transform/opacity/color |
§13 |
验收(§17 三层 18 条)
底层 8 条、中层 6 条全过;顶层 4 条中「快捷键提示」本页无操作不涉及,其余齐
(hover/active/focus 环、空态、title 全文、aria 同源)。
每轮改动 tsc --noEmit -p tsconfig.web.json + eslint 均通过,并在浏览器实测截图验收。