fix(grid): preserve page size when reloading data after save

The reload event did not carry limit/offset, so buildTableSelectSql
always fell back to its default LIMIT 100, resetting 1000-row pages
back to 100 after every commit.
This commit is contained in:
t8y2
2026-05-12 13:55:15 +08:00
parent 78184544cf
commit 9463ff07a7
5 changed files with 58 additions and 11 deletions
+9 -2
View File
@@ -51,12 +51,19 @@ export function useDataGridActions(activeTab: ComputedRef<QueryTab | undefined>)
await queryStore.executeTabSql(tab.id, sql);
}
async function onReloadData(sql?: string, _searchText?: string, whereInput?: string, orderBy?: string) {
async function onReloadData(
sql?: string,
_searchText?: string,
whereInput?: string,
orderBy?: string,
limit?: number,
offset?: number,
) {
const tab = activeTab.value;
if (!tab) return;
if (tab.mode === "data" && tab.tableMeta) {
tab.whereInput = whereInput ?? "";
queryStore.updateSql(tab.id, buildTableSql(tab, { whereInput, orderBy }));
queryStore.updateSql(tab.id, buildTableSql(tab, { whereInput, orderBy, limit, offset }));
await queryStore.executeCurrentTab();
return;
}
+17 -1
View File
@@ -66,8 +66,18 @@ export interface UseDataGridEditorOptions {
rowStatusFilter: Ref<RowStatusFilter>;
initialEditColumn?: ComputedRef<number>;
getRowItem: (rowId: number) => RowItem | undefined;
pageSize: Ref<number>;
currentPage: Ref<number>;
emit: {
(event: "reload", sql?: string, searchText?: string, whereInput?: string, orderBy?: string): void;
(
event: "reload",
sql?: string,
searchText?: string,
whereInput?: string,
orderBy?: string,
limit?: number,
offset?: number,
): void;
};
}
@@ -91,6 +101,8 @@ export function useDataGridEditor(options: UseDataGridEditorOptions) {
rowStatusFilter,
initialEditColumn,
getRowItem,
pageSize,
currentPage,
emit,
} = options;
@@ -486,6 +498,8 @@ export function useDataGridEditor(options: UseDataGridEditorOptions) {
searchText.value,
whereFilterInput.value.trim() || undefined,
orderByInput.value.trim() || undefined,
pageSize.value,
(currentPage.value - 1) * pageSize.value,
);
return;
}
@@ -571,6 +585,8 @@ export function useDataGridEditor(options: UseDataGridEditorOptions) {
searchText.value,
whereFilterInput.value.trim() || undefined,
orderByInput.value.trim() || undefined,
pageSize.value,
(currentPage.value - 1) * pageSize.value,
);
}