Merge pull request #702 from DengQingNian/optimize/export-pagination-orderby-batchsize

perf(ui): 优化数据导出的ui体验和性能
This commit is contained in:
skyler
2026-06-03 21:42:38 +08:00
committed by GitHub
13 changed files with 597 additions and 160 deletions
+10
View File
@@ -220,6 +220,7 @@ export interface EditorSettings {
columnFormatters: Record<string, ColumnFormatterConfig>;
customColumnFormatters: Record<string, CustomColumnFormatterConfig>;
snippets: SqlSnippet[];
exportBatchSize: number;
}
export const EDITOR_THEMES: { value: EditorTheme; label: string; dark: boolean }[] = [
@@ -277,6 +278,7 @@ export const DEFAULT_EDITOR_SETTINGS: EditorSettings = {
columnFormatters: {},
customColumnFormatters: {},
snippets: DEFAULT_SQL_SNIPPETS,
exportBatchSize: 2000,
};
export const STORAGE_KEY = "dbx-editor-settings";
@@ -425,6 +427,12 @@ export function normalizeEditorSettings(settings: Partial<EditorSettings>, exist
columnFormatters: normalizeColumnFormatters(settings.columnFormatters),
customColumnFormatters: normalizeCustomColumnFormatters(settings.customColumnFormatters),
snippets: normalizeSqlSnippets(settings.snippets, existing?.snippets),
exportBatchSize:
typeof settings.exportBatchSize === "number" &&
settings.exportBatchSize >= 100 &&
settings.exportBatchSize <= 100000
? Math.round(settings.exportBatchSize)
: DEFAULT_EDITOR_SETTINGS.exportBatchSize,
};
}
@@ -571,6 +579,8 @@ export const useSettingsStore = defineStore("settings", () => {
if (partial.customColumnFormatters !== undefined)
editorSettings.value.customColumnFormatters = partial.customColumnFormatters;
if (partial.snippets !== undefined) editorSettings.value.snippets = normalizeSqlSnippets(partial.snippets);
if (partial.exportBatchSize !== undefined)
editorSettings.value.exportBatchSize = Math.min(100000, Math.max(100, Math.round(partial.exportBatchSize)));
saveEditorSettings(editorSettings.value);
}