AdvancedTable 高级表格
在 DataTable 之上加:表头筛选(文本、选项、范围、日期……)、合计行、拖动列宽和列序、行展开、全屏,以及金额、趋势、进度等单元格。
项目列表
| 标签 | |||||||
|---|---|---|---|---|---|---|---|
| 项目 01 | 林三 | 进行中 | 前端 | 0% | ¥20,000.00 | 13.0% | |
| 项目 02 | 王五 | 进行中 | 后端设计 | 17% | ¥330,000.00 | 3.9% | |
| 项目 03 | 赵六 | 已暂停 | 设计运维+1 | 34% | ¥140,000.00 | 5.2% | |
| 项目 04 | 孙七 | 已完成 | 前端后端+2 | 51% | ¥450,000.00 | 13.0% | |
| 项目 05 | 林三 | 进行中 | 后端 | 68% | ¥260,000.00 | 3.9% | |
| 项目 06 | 王五 | 进行中 | 设计运维 | 85% | ¥70,000.00 | 5.2% | |
| 项目 07 | 赵六 | 已暂停 | 前端后端+1 | 1% | ¥380,000.00 | 13.0% | |
| 项目 08 | 孙七 | 已完成 | 后端设计+2 | 18% | ¥190,000.00 | 3.9% | |
| 项目 09 | 林三 | 进行中 | 设计 | 35% | ¥500,000.00 | 5.2% | |
| 项目 10 | 王五 | 进行中 | 前端后端 | 52% | ¥310,000.00 | 13.0% | |
| 合计 · 36 个 | ¥9,520,000.00 | ||||||
第 1–10 条,共 36 条
每页
- 列的
meta.filterVariant:text/select/enum/range/date/boolean/custom,withHeaderFilters补上对应的filterFn。filterMode="row"把筛选放到表头下方的常驻一行。 - 单元格(
advanced-table/cell-types):PersonCell、MoneyCell、TrendCell、ProgressCell、TimeCell、TagsCell、CopyCell、EllipsisCell、ImagesCell、RankCell,表头说明HelpHeader。 EditableCell就地编辑,TableTools是刷新 / 行高 / 列设置 / 全屏,SelectionBar是带合计的批量条。- 只读的大数据量列表用
VirtualTable(advanced-table/virtual-table):固定行高,按索引取行。
安装
pnpm dlx shadcn@latest add https://docs.linasan.cn/r/advanced-table.json第一次装本站的组件前先在项目里执行一次 shadcn init,详见 安装。
用法
import { AdvancedTable } from '@/components/advanced-table/advanced-table';
import { withHeaderFilters } from '@/components/advanced-table/header-filters';
const columns = withHeaderFilters([
{ accessorKey: 'name', header: '项目', meta: { filterVariant: 'text' } },
{ accessorKey: 'budget', header: '预算', meta: { filterVariant: 'range' } },
]);
<AdvancedTable table={table} resizable reorderable summary={{ budget: total }} />示例
就地编辑与筛选行
EditableCell 让单元格可编辑(数字、文本、下拉),带校验和「改过」角标;filterMode="row" 把表头筛选放到表头下方常驻一行。
单击单元格编辑,Enter 保存、Esc 取消、Tab 到下一格;改过的格子带角标
| A-1001 | 无线鼠标 | |||
| A-1002 | 机械键盘 | |||
| B-2001 | Type-C 线 | |||
| B-2002 | 显示器支架 | |||
| C-3001 | 降噪耳机 | |||
| 库存货值 | ¥131,854.00 | |||
属性
属性
类型