@@ -13,6 +13,7 @@ import { useMemo } from 'react';
1313
1414// ----- store -----
1515import { createConsole , addWorkspaceTab } from '@/store/console' ;
16+ import { useWorkspaceStore } from '@/store/workspace' ;
1617
1718// ---- functions -----
1819import { openView , openFunction , openProcedure , openTrigger } from '../functions/openAsyncSql' ;
@@ -35,6 +36,26 @@ interface IOperationColumnConfigItem {
3536export const useGetRightClickMenu = ( props : IProps ) => {
3637 const { treeNodeData, loadData } = props ;
3738
39+ const { openCreateDatabaseModal } = useWorkspaceStore ( ( state ) => {
40+ return {
41+ openCreateDatabaseModal : state . openCreateDatabaseModal ,
42+ } ;
43+ } ) ;
44+
45+ const handelOpenCreateDatabaseModal = ( type : 'database' | 'schema' ) => {
46+ openCreateDatabaseModal ?.( {
47+ type,
48+ relyOnParams : {
49+ databaseType : treeNodeData . extraParams ! . databaseType ,
50+ dataSourceId : treeNodeData . extraParams ! . dataSourceId ! ,
51+ databaseName : treeNodeData ?. name ,
52+ } ,
53+ executedCallback : ( ) => {
54+ loadData ( true ) ;
55+ }
56+ } ) ;
57+ }
58+
3859 const rightClickMenu = useMemo ( ( ) => {
3960 // 拿出当前节点的配置
4061 const treeNodeConfig : ITreeConfigItem = treeConfig [ treeNodeData . treeNodeType ] ;
@@ -169,7 +190,7 @@ export const useGetRightClickMenu = (props: IProps) => {
169190 doubleClickTrigger : true ,
170191 handle : ( ) => {
171192 const databaseName = compatibleDataBaseName (
172- treeNodeData . extraParams ! . databaseName ! ,
193+ treeNodeData . name ! ,
173194 treeNodeData . extraParams ! . databaseType ,
174195 ) ;
175196 addWorkspaceTab ( {
@@ -181,7 +202,7 @@ export const useGetRightClickMenu = (props: IProps) => {
181202 databaseType : treeNodeData . extraParams ! . databaseType ! ,
182203 databaseName : treeNodeData . extraParams ?. databaseName ,
183204 schemaName : treeNodeData . extraParams ?. schemaName ,
184- sql : ` select * from ${ databaseName } ` ,
205+ sql : " select * from " + databaseName ,
185206 } ,
186207 } ) ;
187208 } ,
@@ -238,6 +259,24 @@ export const useGetRightClickMenu = (props: IProps) => {
238259 } ) ;
239260 } ,
240261 } ,
262+
263+ // 创建数据库
264+ [ OperationColumn . CreateDatabase ] : {
265+ text : i18n ( 'workspace.menu.createDatabase' ) ,
266+ icon : '\ue816' ,
267+ handle : ( ) => {
268+ handelOpenCreateDatabaseModal ( 'database' ) ;
269+ } ,
270+ } ,
271+
272+ // 创建schema
273+ [ OperationColumn . CreateSchema ] : {
274+ text : i18n ( 'workspace.menu.createSchema' ) ,
275+ icon : '\ue696' ,
276+ handle : ( ) => {
277+ handelOpenCreateDatabaseModal ( 'schema' ) ;
278+ } ,
279+ }
241280 } ;
242281
243282 // 根据配置生成右键菜单
0 commit comments