From 07a9acc8252ee56354896ff934de5a659b514a65 Mon Sep 17 00:00:00 2001 From: dataeaseShu Date: Tue, 23 Dec 2025 11:11:46 +0800 Subject: [PATCH] fix(Data Source): Data source table structure supports field retrieval #447 --- frontend/src/assets/svg/logo_cas.svg | 2 +- frontend/src/assets/svg/logo_ldap.svg | 2 +- frontend/src/assets/svg/logo_oauth.svg | 2 +- frontend/src/assets/svg/logo_oidc.svg | 2 +- frontend/src/i18n/en.json | 2 +- frontend/src/views/ds/DataTable.vue | 21 +++++++++++++-------- 6 files changed, 18 insertions(+), 13 deletions(-) diff --git a/frontend/src/assets/svg/logo_cas.svg b/frontend/src/assets/svg/logo_cas.svg index 92d6e8c87..f917a23eb 100644 --- a/frontend/src/assets/svg/logo_cas.svg +++ b/frontend/src/assets/svg/logo_cas.svg @@ -1,5 +1,5 @@ - + diff --git a/frontend/src/assets/svg/logo_ldap.svg b/frontend/src/assets/svg/logo_ldap.svg index 27db26481..e0465945d 100644 --- a/frontend/src/assets/svg/logo_ldap.svg +++ b/frontend/src/assets/svg/logo_ldap.svg @@ -1,4 +1,4 @@ - + diff --git a/frontend/src/assets/svg/logo_oauth.svg b/frontend/src/assets/svg/logo_oauth.svg index cd020c5d5..0442b2a6e 100644 --- a/frontend/src/assets/svg/logo_oauth.svg +++ b/frontend/src/assets/svg/logo_oauth.svg @@ -1,4 +1,4 @@ - + diff --git a/frontend/src/assets/svg/logo_oidc.svg b/frontend/src/assets/svg/logo_oidc.svg index 0680bead7..d352a64d5 100644 --- a/frontend/src/assets/svg/logo_oidc.svg +++ b/frontend/src/assets/svg/logo_oidc.svg @@ -1,4 +1,4 @@ - + diff --git a/frontend/src/i18n/en.json b/frontend/src/i18n/en.json index edb5551f9..ae1e6d077 100644 --- a/frontend/src/i18n/en.json +++ b/frontend/src/i18n/en.json @@ -53,7 +53,7 @@ "all_data_sources": "All data sources", "partial_data_sources": "Partial data sources", "add_it_here": "Drag the table name on the left to add it here", - "table_relationship_management": "Table relationship management", + "table_relationship_management": "Table relationship manage", "system_management": "System Management", "data_training": "SQL Sample Lib", "problem_description": "Problem Description", diff --git a/frontend/src/views/ds/DataTable.vue b/frontend/src/views/ds/DataTable.vue index b2e4a3b78..25c309dca 100644 --- a/frontend/src/views/ds/DataTable.vue +++ b/frontend/src/views/ds/DataTable.vue @@ -13,6 +13,7 @@ import UploaderRemark from '@/views/system/excel-upload/UploaderRemark.vue' import TableRelationship from '@/views/ds/TableRelationship.vue' import icon_mindnote_outlined from '@/assets/svg/icon_mindnote_outlined.svg' import { Refresh } from '@element-plus/icons-vue' +import { debounce } from 'lodash-es' interface Table { name: string @@ -106,7 +107,9 @@ const handleCurrentChange = (val: number) => { const fieldListComputed = computed(() => { const { currentPage, pageSize } = pageInfo - return fieldList.value.slice((currentPage - 1) * pageSize, currentPage * pageSize) + return fieldList.value + .filter((ele: any) => ele.field_name.toLowerCase().includes(fieldName.value.toLowerCase())) + .slice((currentPage - 1) * pageSize, currentPage * pageSize) }) const init = (reset = false) => { @@ -166,6 +169,7 @@ const clickTable = (table: any) => { fieldList.value = res pageInfo.total = res.length pageInfo.currentPage = 1 + fieldName.value = '' datasourceApi.previewData(props.info.id, buildData()).then((res) => { previewData.value = res }) @@ -313,10 +317,10 @@ const renderHeader = ({ column }: any) => { document.body.removeChild(span) return column.label } - -const fieldNameSearch = () => { - btnSelectClick(btnSelect.value) -} +const fieldNameSearch = debounce(() => { + pageInfo.currentPage = 1 + pageInfo.total = fieldListComputed.value.length +}, 100) const fieldName = ref('') const btnSelectClick = (val: any) => { btnSelect.value = val @@ -324,11 +328,12 @@ const btnSelectClick = (val: any) => { if (val === 'd') { datasourceApi - .fieldList(currentTable.value.id, { fieldName: fieldName.value }) + .fieldList(currentTable.value.id, { fieldName: '' }) .then((res) => { fieldList.value = res pageInfo.total = res.length pageInfo.currentPage = 1 + fieldName.value = '' }) .finally(() => { loading.value = false @@ -496,7 +501,7 @@ const btnSelectClick = (val: any) => { :placeholder="t('dashboard.search')" autocomplete="off" clearable - @blur="fieldNameSearch" + @input="fieldNameSearch" /> { -
+