iter(g24): 新增 list 列表组件(含空状态回落与可点击条目)

This commit is contained in:
HIsheR
2026-10-26 11:33:27 +08:00
parent 2b65922c7e
commit e6b4a84085
13 changed files with 297 additions and 9 deletions
+28 -1
View File
@@ -1,6 +1,6 @@
# @ui-arch 组件库 Agent 文档(无图形版)
> 自动生成于 2026-10-26T03:31:05.626Z,数据源:各包 ua.manifest.json,勿手改。人类版文档站:apps/docs/index.html。
> 自动生成于 2026-10-26T03:33:14.774Z,数据源:各包 ua.manifest.json,勿手改。人类版文档站:apps/docs/index.html。
> 组件 = 普通函数,传 props 返回 DOM;状态用 signal 双向绑定:读 signal() 写 signal(v)。
## 快速上手
@@ -1005,6 +1005,32 @@ const gmv = signal(128000); statistic({ title: '本月 GMV', value: gmv, prefix:
现场演示:apps/docs/demo.html#sec-statistic
### list — 列表 List
参数:
- items(必填):ListItem[] —— 条目列表,每项 { title, description?, avatar?, extra? }
- header:string —— 列表头标题;缺省不渲染
- footer:string —— 列表尾说明;缺省不渲染
- bordered:boolean —— 是否带外边框与分隔线;缺省 false
- emptyText:string —— 无数据占位文案;缺省「暂无数据」
- onItemClick(回调):(item: ListItem, index: number) => void —— 条目点击回调;提供后条目可点击并带 hover 反馈
示例:
```
list({ header: '待办', bordered: true, items: [{ title: '报销单 RB-2048', description: '等待复核', avatar: avatar({ name: '王' }) }], onItemClick: (item) => console.log(item.title) })
```
手把手:
1. 准备 items 数组,每项至少给 title,description 作次要说明
2. avatar 传头像组件(如 avatar({ name }))、extra 传右侧附加(如 tag(...)),不传该侧不留位
3. 需要点击时传 onItemClick(item, index),条目自动加 hover 底色;bordered: true 给外边框与分隔线
4. items 为空数组时自动渲染 empty 占位,文案可用 emptyText 覆盖
现场演示:apps/docs/demo.html#sec-list
API 速览:
- button(props):按钮,variant = primary | ghost | danger,disabled 支持布尔或信号禁用
@@ -1047,6 +1073,7 @@ API 速览:
- segmented(props):分段控制器,胶囊分段 + 滑动滑块,value 信号双向绑定,←→ 环形导航,整组或单项可禁用
- descriptions(props):描述列表,items(label/value/span) 铺进 column 列网格,bordered 切表格形态,窄屏自动单列
- statistic(props):统计数值,标题 + 大号数字 + 前后缀 + 环比趋势,value 变化时 rAF 滚动过渡(400ms easeOutCubic),减弱动效偏好下直落终值
- list(props):列表,header/footer 外壳 + 条目 avatar/title/description/extra,onItemClick 让条目可点击,items 为空回落空状态
一行用法: