From 6d8e667bede544798ae30c0dc480f2e275e71436 Mon Sep 17 00:00:00 2001 From: jearhe <0verme7753@gmail.com> Date: Fri, 28 Aug 2026 15:30:08 +0800 Subject: [PATCH] feat(structure): support search in DDL view --- .../components/editor/EditorSearchPanel.vue | 7 + .../structure/TableStructureEditor.vue | 180 +++++++++++++++--- .../TableStructureEditor.ddlSearch.spec.ts | 146 ++++++++++++++ ...bleStructureEditor.ddlSearchSource.spec.ts | 25 +++ 4 files changed, 334 insertions(+), 24 deletions(-) create mode 100644 apps/desktop/src/components/structure/__tests__/TableStructureEditor.ddlSearch.spec.ts create mode 100644 apps/desktop/src/components/structure/__tests__/TableStructureEditor.ddlSearchSource.spec.ts diff --git a/apps/desktop/src/components/editor/EditorSearchPanel.vue b/apps/desktop/src/components/editor/EditorSearchPanel.vue index 974d698e03..8418636a50 100644 --- a/apps/desktop/src/components/editor/EditorSearchPanel.vue +++ b/apps/desktop/src/components/editor/EditorSearchPanel.vue @@ -14,6 +14,11 @@ const props = defineProps<{ tone?: "app" | "editor"; }>(); +const emit = defineEmits<{ + open: []; + close: []; +}>(); + const { t } = useI18n(); const settingsStore = useSettingsStore(); @@ -271,6 +276,7 @@ function scheduleDocumentSearchUpdate() { function openSearch(): boolean { searchVisible.value = true; + emit("open"); const v = props.view; if (v) { cmOpenSearchPanel(v); @@ -322,6 +328,7 @@ function closeSearch() { clearSearchQuery(); v.focus(); } + if (wasVisible) emit("close"); return wasVisible; } diff --git a/apps/desktop/src/components/structure/TableStructureEditor.vue b/apps/desktop/src/components/structure/TableStructureEditor.vue index 70207902af..d32feff5e6 100644 --- a/apps/desktop/src/components/structure/TableStructureEditor.vue +++ b/apps/desktop/src/components/structure/TableStructureEditor.vue @@ -1,5 +1,5 @@ @@ -4651,11 +4761,12 @@ watch([activeTab, ddlLoading], ([tab, loading]) => { {{ t("common.loading") }} @@ -4826,6 +4937,27 @@ watch([activeTab, ddlLoading], ([tab, loading]) => {