From bf72ff1687347ac5de83e8e971c66dc30b794698 Mon Sep 17 00:00:00 2001 From: Wing-Kam Wong Date: Sat, 22 Oct 2022 20:21:43 +0800 Subject: [PATCH] feat(nc-gui): populateUniqueTableName --- .../nc-gui/components/dlg/QuickImport.vue | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/packages/nc-gui/components/dlg/QuickImport.vue b/packages/nc-gui/components/dlg/QuickImport.vue index a510c629d2..1dd6f98137 100644 --- a/packages/nc-gui/components/dlg/QuickImport.vue +++ b/packages/nc-gui/components/dlg/QuickImport.vue @@ -200,6 +200,10 @@ async function parseAndExtractData(val: UploadFile[] | ArrayBuffer | string) { await templateGenerator.parse() templateData.value = templateGenerator!.getTemplate() + templateData.value.tables = templateData.value.tables.map((table: Record) => ({ + ...table, + table_name: populateUniqueTableName(table.table_name), + })) if (importDataOnly) importColumns.value = templateGenerator!.getColumns() importData.value = templateGenerator!.getData() templateEditorModal.value = true @@ -259,14 +263,19 @@ function formatJson() { jsonEditorRef.value?.format() } -function populateUniqueTableName() { +function populateUniqueTableName(tn: string) { let c = 1 - - while (tables.value.some((t: TableType) => t.title === `Sheet${c}`)) { - c++ + while ( + tables.value.some((t: TableType) => { + const s = t.table_name.split('___') + let target = t.table_name + if (s.length > 1) target = s[1] + return target === `${tn}` + }) + ) { + tn = `${tn}_${c++}` } - - return `Sheet${c}` + return tn } function getAdapter(val: any) {