From 2e8d399dabc6c54a535aacca4eed9b9fc1e9d8c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=8C=E4=B8=AB=E8=AE=B2=E6=A2=B5?= Date: Tue, 30 Jun 2026 22:43:38 +0800 Subject: [PATCH] =?UTF-8?q?feat(queryStore):=20=E6=B7=BB=E5=8A=A0=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=E6=89=93=E5=BC=80=E7=8A=B6=E6=80=81=E8=B7=9F?= =?UTF-8?q?=E8=B8=AA=E5=8A=9F=E8=83=BD=20(#2251)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 isDatabaseOpen 方法,用于检查特定连接的数据库是否处于打开状态 - 在 TreeItem 组件中显示数据库打开指示器 - 添加 queryStore.database-open.spec.ts 测试文件,验证数据库打开状态的逻辑 --- .../src/components/sidebar/TreeItem.vue | 2 + .../queryStore.database-open.spec.ts | 40 +++++++++++++++++++ apps/desktop/src/stores/queryStore.ts | 5 +++ 3 files changed, 47 insertions(+) create mode 100644 apps/desktop/src/stores/__tests__/queryStore.database-open.spec.ts diff --git a/apps/desktop/src/components/sidebar/TreeItem.vue b/apps/desktop/src/components/sidebar/TreeItem.vue index 11098030cf..1533e0c203 100644 --- a/apps/desktop/src/components/sidebar/TreeItem.vue +++ b/apps/desktop/src/components/sidebar/TreeItem.vue @@ -3127,6 +3127,7 @@ const paddingLeft = computed(() => treeItemPaddingLeft(props.depth)); const isConnected = computed(() => props.node.type === "connection" && !!props.node.connectionId && connectionStore.connectedIds.has(props.node.connectionId)); const isConnectionReadonly = computed(() => props.node.type === "connection" && !!props.node.connectionId && (connectionStore.getConfig(props.node.connectionId)?.read_only ?? false)); const isOpenedDatabase = computed(() => isSidebarDatabaseOpened(props.node, connectionStore.isTreeNodeChildrenLoaded)); +const showsDatabaseOpenIndicator = computed(() => props.node.type === "database" && (isOpenedDatabase.value || (!!props.node.connectionId && props.node.database != null && queryStore.isDatabaseOpen(props.node.connectionId, props.node.database)))); const canCloseDatabaseConnection = computed(() => canCloseSidebarDatabaseConnection(props.node, connectionStore.isTreeNodeChildrenLoaded)); const nodeIconClass = computed(() => { const infoClass = getIconInfo(props.node)?.colorClass; @@ -4135,6 +4136,7 @@ function treeItemMenuItems(): ContextMenuItem[] { {{ columnComment }} {{ tableComment }} + {{ t("connection.readOnlyBadge") }}