From 5fb61e1fc91654948ad3f5197d2b044783b3f212 Mon Sep 17 00:00:00 2001 From: HIsheR Date: Mon, 26 Oct 2026 12:39:28 +0800 Subject: [PATCH] =?UTF-8?q?iter(g70):=20=E5=86=92=E7=83=9F=E8=A1=A5?= =?UTF-8?q?=E5=A4=9A=E5=88=97=E6=8E=92=E5=BA=8F=E3=80=81=E9=A1=B5=E5=A4=A7?= =?UTF-8?q?=E5=B0=8F=E4=B8=8E=20reset=20=E9=87=8D=E7=BD=AE=E6=96=AD?= =?UTF-8?q?=E8=A8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/table-core/scripts/smoke.mjs | 35 ++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/packages/core/table-core/scripts/smoke.mjs b/packages/core/table-core/scripts/smoke.mjs index 0faebbf..3360965 100644 --- a/packages/core/table-core/scripts/smoke.mjs +++ b/packages/core/table-core/scripts/smoke.mjs @@ -119,4 +119,39 @@ toggle.dispatch({ type: 'toggleSort', key: 'age' }); toggle.dispatch({ type: 'toggleSort', key: 'age' }); assert(toggle.getState().sorting.length === 0, '同一列连点三次回到无序(asc → desc → 取消)'); +const multi = createTable({ + data: users, + columns: [{ key: 'city', header: 'City' }, { key: 'age', header: 'Age', sortable: true }], + rowKey: 'id', + plugins: [sortPlugin({ multi: true })], +}); +multi.dispatch({ type: 'toggleSort', key: 'city', multi: true }); +multi.dispatch({ type: 'toggleSort', key: 'age', multi: true }); +assert(multi.getState().sorting.length === 2, 'multi 排序保留两列规则'); +assert( + JSON.stringify(multi.getVisibleRows().rows.map((r) => r.id)) === JSON.stringify([4, 2, 5, 3, 1]), + '多列排序按规则顺序生效(city 升序,同城内 age 升序:Beijing 4→2、Shanghai 5→3)', +); + +const sizing = createTable({ + data: users, + columns: [{ key: 'name', header: 'Name' }], + rowKey: 'id', + plugins: [paginationPlugin()], + initialState: { pagination: { page: 1, pageSize: 2 } }, +}); +sizing.dispatch({ type: 'setPage', page: 2 }); +sizing.dispatch({ type: 'setPageSize', pageSize: 3 }); +assert(sizing.getPageInfo().page === 1 && sizing.getPageInfo().pageSize === 3, '改页大小回到第 1 页'); + +sizing.dispatch({ type: 'toggleSort', key: 'name' }); +sizing.dispatch({ type: 'reset' }); +assert( + sizing.getState().sorting.length === 0 && + sizing.getState().filters.length === 0 && + sizing.getState().pagination.page === 1 && + sizing.getState().pagination.pageSize === 20, + 'reset 回到默认态(排序/筛选清空,分页回 1/20)', +); + console.log('SMOKE OK');