iter(g09): 新增 descriptions 描述列表组件

This commit is contained in:
HIsheR
2026-10-26 10:23:22 +08:00
parent 086831d474
commit d8d45fcac0
12 changed files with 268 additions and 12 deletions
+29 -1
View File
@@ -1,6 +1,6 @@
# @ui-arch 组件库 Agent 文档(无图形版)
> 自动生成于 2026-10-26T02:20:07.266Z,数据源:各包 ua.manifest.json,勿手改。人类版文档站:apps/docs/index.html。
> 自动生成于 2026-10-26T02:22:42.729Z,数据源:各包 ua.manifest.json,勿手改。人类版文档站:apps/docs/index.html。
> 组件 = 普通函数,传 props 返回 DOM;状态用 signal 双向绑定:读 signal() 写 signal(v)。
## 快速上手
@@ -950,6 +950,33 @@ segmented({ options: [{ value: 'day', label: '日' }, { value: 'week', label: '
现场演示:apps/docs/demo.html#sec-segmented
### descriptions — 描述列表 Descriptions
参数:
- items(必填):DescriptionItem[] —— 描述项列表:每项含 label(字段名)、value(字符串 / DOM / 响应式函数)、span(跨列数)
- column(默认 3):1 | 2 | 3 | 4 —— 桌面列数;缺省 3,窄屏(≤640px)由样式表降为单列
- bordered(默认 false):boolean —— 表格形态(带分隔线与字段名底纹);缺省 false 纯网格
- size(默认 md):'sm' | 'md' —— 尺寸档位;缺省 md
- title:string —— 分组标题;缺省不渲染标题行
示例:
```
descriptions({ title: '订单信息', column: 2, bordered: true, items: [{ label: '订单号', value: 'RB-2048' }, { label: '金额', value: '¥1,280.00' }, { label: '备注', value: '加急', span: 2 }] })
```
手把手:
1. 详情页 / 抽屉里展示只读字段用它,不要用 form(form 承载输入与校验)
2. column 按信息密度定:字段多且短用 3-4 列,字段长(地址、备注)用 2 列并配 span 占整行
3. value 支持任意 DOM:放 tag、badge、button 都可以;要给值做响应式更新就传函数 () => 内容
4. bordered: true 是表格形态(适合打印与密集信息),纯网格形态更轻,适合卡片内嵌
5. 窄屏自动降为单列,无需在调用方写媒体查询
6. 纯展示组件,无状态无回调:值变了由调用方重新渲染或传函数式 value
现场演示:apps/docs/demo.html#sec-descriptions
API 速览:
- button(props):按钮,variant = primary | ghost | danger,disabled 支持布尔或信号禁用
@@ -989,6 +1016,7 @@ API 速览:
- image(props):图片,缩略图点击 / 回车开遮罩大图预览(Esc 或点击遮罩关闭),width 控制缩略宽
- timeline(props):时间线,items 按序渲染纵向事件流(标题 / 时间 / 正文 + 语义色节点),mode 控制轴线左右,pending 追加进行中节点
- segmented(props):分段控制器,胶囊分段 + 滑动滑块,value 信号双向绑定,←→ 环形导航,整组或单项可禁用
- descriptions(props):描述列表,items(label/value/span) 铺进 column 列网格,bordered 切表格形态,窄屏自动单列
一行用法: