Skip to content

Commit 1aa3588

Browse files
committed
feat:When you create a new console, the database or schema that the console is bound to is selected by default as the database or schema that you are focusing on
1 parent a304954 commit 1aa3588

4 files changed

Lines changed: 39 additions & 4 deletions

File tree

chat2db-client/src/blocks/Tree/index.tsx

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { treeConfig, switchIcon, ITreeConfigItem } from './treeConfig';
99
import { useCommonStore } from '@/store/common';
1010
import { setCurrentWorkspaceGlobalExtend } from '@/pages/main/workspace/store/common';
1111
import LoadingGracile from '@/components/Loading/LoadingGracile';
12-
import { setFocusId, useTreeStore } from './treeStore';
12+
import { setFocusId, setFocusTreeNode, useTreeStore, clearTreeStore } from './treeStore';
1313
import { useGetRightClickMenu } from './hooks/useGetRightClickMenu';
1414
import MenuLabel from '@/components/MenuLabel';
1515
import LoadingContent from '@/components/Loading/LoadingContent';
@@ -124,6 +124,13 @@ const Tree = (props: IProps) => {
124124

125125
const top = itemHeight * startIdx; // 第一个渲染的 item 到顶部距离
126126

127+
// 清空treeStore
128+
useEffect(() => {
129+
return () => {
130+
clearTreeStore();
131+
}
132+
}, [searchValue]);
133+
127134
useEffect(() => {
128135
setTreeData(outerTreeData);
129136
setScrollTop(0);
@@ -336,6 +343,14 @@ const TreeNode = memo((props: TreeNodeIProps) => {
336343
});
337344
}
338345
setFocusId(treeNodeData.uuid || '');
346+
347+
setFocusTreeNode({
348+
dataSourceId: treeNodeData.extraParams!.dataSourceId,
349+
dataSourceName: treeNodeData.extraParams!.dataSourceName,
350+
databaseType: treeNodeData.extraParams!.databaseType,
351+
databaseName: treeNodeData.extraParams?.databaseName,
352+
schemaName: treeNodeData.extraParams?.schemaName,
353+
});
339354
};
340355

341356
// 双击节点

chat2db-client/src/blocks/Tree/treeStore.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,19 @@ import { devtools } from 'zustand/middleware';
66

77
export interface ITreeStore {
88
focusId: number | string | null;
9+
focusTreeNode: {
10+
dataSourceId: number;
11+
dataSourceName: string;
12+
databaseType: string,
13+
databaseName?: string;
14+
schemaName?: string,
15+
tableName?: string,
16+
} | null;
917
}
1018

1119
const treeStore = {
1220
focusId: null,
21+
focusTreeNode: null,
1322
}
1423

1524
export const useTreeStore: UseBoundStore<StoreApi<ITreeStore>> = create(
@@ -19,3 +28,12 @@ export const useTreeStore: UseBoundStore<StoreApi<ITreeStore>> = create(
1928
export const setFocusId = (focusId: ITreeStore['focusId']) => {
2029
useTreeStore.setState({ focusId });
2130
}
31+
32+
export const setFocusTreeNode = (focusTreeNode: ITreeStore['focusTreeNode']) => {
33+
useTreeStore.setState({ focusTreeNode });
34+
}
35+
36+
// 清除treeStore
37+
export const clearTreeStore = () => {
38+
useTreeStore.setState(treeStore);
39+
}

chat2db-client/src/pages/main/workspace/components/WorkspaceTabs/index.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import { Button } from 'antd';
66
// ----- constants -----
77
import { WorkspaceTabType, workspaceTabConfig } from '@/constants';
88
import { IWorkspaceTab } from '@/typings';
9-
// import WorkspaceExtend from '../WorkspaceExtend';
109

1110
// ----- components -----
1211
import Tabs, { ITabItem } from '@/components/Tabs';
@@ -25,6 +24,7 @@ import {
2524
createConsole,
2625
} from '@/pages/main/workspace/store/console';
2726
import { useWorkspaceStore } from '@/pages/main/workspace/store';
27+
import { useTreeStore } from '@/blocks/Tree/treeStore';
2828

2929
// ----- services -----
3030
import historyService from '@/service/history';
@@ -83,12 +83,14 @@ const WorkspaceTabs = memo(() => {
8383
};
8484

8585
const createNewConsole = () => {
86+
const { databaseName, schemaName } = useTreeStore.getState().focusTreeNode || {};
8687
if (currentConnectionDetails) {
8788
createConsole({
8889
dataSourceId: currentConnectionDetails.id,
8990
dataSourceName: currentConnectionDetails.alias,
9091
databaseType: currentConnectionDetails.type,
91-
// databaseName: currentConnectionDetails.databaseName,
92+
databaseName,
93+
schemaName
9294
});
9395
}
9496
};

chat2db-client/src/pages/main/workspace/store/console.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ export const createConsole = (params: ICreateConsoleParams) => {
6565
operationType: params.operationType || WorkspaceTabType.CONSOLE,
6666
type: params.databaseType,
6767
supportDatabase: currentConnectionDetails?.supportDatabase,
68-
supportSchema: currentConnectionDetails?.supportSchema
68+
supportSchema: currentConnectionDetails?.supportSchema,
6969
};
7070

7171
return new Promise((resolve) => {

0 commit comments

Comments
 (0)