iter(g259): 数据表格暴露每页条数候选

This commit is contained in:
HIsheR
2026-10-26 22:21:54 +08:00
parent ee39b6088a
commit 11a22f93c1
5 changed files with 17 additions and 3 deletions
+1 -1
View File
@@ -47,7 +47,6 @@ export function dataTable<T extends { id: RowKey }>(props: DataTableProps<T>): H
const selectedCount = computed(() => state().selection.length);
// 加载态读取器:布尔直接读,信号则保持响应性(供 renderList 依赖收集)
const busy = (): boolean => (typeof props.loading === 'function' ? props.loading() : props.loading === true);
// —— 受控页码桥接:外部信号 ↔ 内核分页;外部越界先钳制,signal 等值写回不触发,双向同步收敛安全 ——
if (props.page) {
const pageSig = props.page;
@@ -192,6 +191,7 @@ export function dataTable<T extends { id: RowKey }>(props: DataTableProps<T>): H
info,
total: () => visible().total,
loading: busy,
pageSizes: props.pageSizes,
onPage: (page) => table.dispatch({ type: 'setPage', page }),
onPageSize: (pageSize) => table.dispatch({ type: 'setPageSize', pageSize }),
}),
+1
View File
@@ -65,6 +65,7 @@ export interface DataTableProps<T> {
columns: TableColumn<T>[]; // 列定义:内核字段 + align / format
filterKey?: string; // 工具栏筛选的列;缺省取第一列
pageSize?: number; // 每页行数;缺省 5
pageSizes?: number[]; // 分页条「每页条数」候选;缺省 [5, 10, 20],当前 pageSize 不在候选里会自动补进去
selectable?: boolean; // 是否启用行选择列(含全选三态与已选计数);缺省 false
page?: Signal<number>; // 受控页码信号:与内核分页双向同步,可接独立 pagination 组件联动
loading?: boolean | Signal<boolean>; // 加载态:为真时数据行换成骨架行,筛选与翻页禁用