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]) => {