@@ -13,6 +13,7 @@ import { useUpdateEffect } from '@/hooks/useUpdateEffect';
1313import styles from './index.less' ;
1414import i18n from '@/i18n' ;
1515import CreateDatabase , { ICreateDatabaseRef } from '@/components/CreateDatabase' ;
16+ import { getCurrentWorkspaceDatabase } from '@/utils/localStorage' ;
1617
1718interface IProps {
1819 className ?: string ;
@@ -33,9 +34,12 @@ const notSupportCreateDatabaseType = [DatabaseTypeCode.H2];
3334// 不支持创建schema的数据库类型
3435const notSupportCreateSchemaType = [ DatabaseTypeCode . ORACLE ] ;
3536
37+ const localStorageWorkspaceDatabase = getCurrentWorkspaceDatabase ( ) ;
38+
3639const WorkspaceHeader = memo < IProps > ( ( props ) => {
3740 const { connectionModel, workspaceModel, mainPageModel, dispatch } = props ;
3841 const { connectionList, curConnection } = connectionModel ;
42+ console . log ( connectionList ) ;
3943 const { curWorkspaceParams } = workspaceModel ;
4044 const { curPage } = mainPageModel ;
4145 const [ cascaderLoading , setCascaderLoading ] = useState ( false ) ;
@@ -63,6 +67,13 @@ const WorkspaceHeader = memo<IProps>((props) => {
6367 }
6468 // 如果没有curConnection默认选第一个
6569 if ( ! curConnection ?. id && connectionList . length ) {
70+ if (
71+ localStorageWorkspaceDatabase . dataSourceId &&
72+ connectionList . find ( ( t : any ) => Number ( t . id ) === Number ( localStorageWorkspaceDatabase . dataSourceId ) )
73+ ) {
74+ connectionChange ( [ localStorageWorkspaceDatabase . dataSourceId ] ) ;
75+ return ;
76+ }
6677 connectionChange ( [ connectionList [ 0 ] . id ] ) ;
6778 return ;
6879 }
@@ -71,6 +82,11 @@ const WorkspaceHeader = memo<IProps>((props) => {
7182 // 如果curConnection不再connectionList里,也是默认选第一个
7283 const flag = connectionList . findIndex ( ( t : any ) => t . id === curConnection ?. id ) ;
7384 if ( flag === - 1 ) {
85+ if ( localStorageWorkspaceDatabase . dataSourceId &&
86+ connectionList . find ( ( t : any ) => Number ( t . id ) === Number ( localStorageWorkspaceDatabase . dataSourceId ) ) ) {
87+ connectionChange ( [ localStorageWorkspaceDatabase . dataSourceId ] ) ;
88+ return ;
89+ }
7490 connectionChange ( [ connectionList [ 0 ] . id ] ) ;
7591 return ;
7692 }
@@ -90,10 +106,6 @@ const WorkspaceHeader = memo<IProps>((props) => {
90106 getDatabaseList ( isRefresh ) ;
91107 setIsRefresh ( false ) ;
92108 }
93- // connectionList转换成可用的ConnectionOptions
94- // if (!connectionList.length) {
95- // setNoConnectionModal(true);
96- // }
97109 setConnectionOptions (
98110 connectionList ?. map ( ( t ) => {
99111 return {
@@ -146,12 +158,18 @@ const WorkspaceHeader = memo<IProps>((props) => {
146158 } ;
147159 } ) || [ ] ;
148160 setCurDBOptions ( dbList ) ;
149- // 如果是切换那么就默认取列表的第一个database, 如果不是切换那么就取缓存的,如果缓存没有还是取列表第一个(这里是兜底,如果原先他并没有database,后来他加了database,如果还是取缓存的空就不对了)
150- const databaseName =
151- curWorkspaceParams . dataSourceId !== curConnection ?. id
152- ? dbList [ 0 ] ?. label
153- : curWorkspaceParams . databaseName || dbList [ 0 ] ?. label ;
154- getSchemaList ( databaseName , refresh ) ;
161+ let databaseName = '' ;
162+ if ( dbList . find ( ( t : any ) => t . value === localStorageWorkspaceDatabase . databaseName ) ) {
163+ databaseName = localStorageWorkspaceDatabase . databaseName ! ;
164+ } else {
165+ // 如果是切换那么就默认取列表的第一个database, 如果不是切换那么就取缓存的,如果缓存没有还是取列表第一个(这里是兜底,如果原先他并没有database,后来他加了database,如果还是取缓存的空就不对了)
166+ databaseName =
167+ curWorkspaceParams . dataSourceId !== curConnection ?. id
168+ ? dbList [ 0 ] ?. label
169+ : curWorkspaceParams . databaseName || dbList [ 0 ] ?. label ;
170+ }
171+ databaseChange ( [ databaseName ] , [ { label : databaseName } ] , refresh ) ;
172+ // getSchemaList(databaseName, refresh);
155173 } )
156174 . catch ( ( ) => {
157175 setCascaderLoading ( false ) ;
@@ -183,10 +201,17 @@ const WorkspaceHeader = memo<IProps>((props) => {
183201 } ;
184202 } ) || [ ] ;
185203 setCurSchemaOptions ( schemaList ) ;
186- const schemaName =
187- curWorkspaceParams . dataSourceId !== curConnection ?. id
188- ? schemaList [ 0 ] ?. label
189- : curWorkspaceParams . schemaName || schemaList [ 0 ] ?. label ;
204+
205+ let schemaName = '' ;
206+ if ( schemaList . find ( ( t : any ) => t . value === localStorageWorkspaceDatabase . schemaName ) ) {
207+ schemaName = localStorageWorkspaceDatabase . schemaName ! ;
208+ } else {
209+ schemaName =
210+ curWorkspaceParams . dataSourceId !== curConnection ?. id
211+ ? schemaList [ 0 ] ?. label
212+ : curWorkspaceParams . schemaName || schemaList [ 0 ] ?. label ;
213+ }
214+ // schemaChange([schemaName], [{ label: schemaName }]);
190215 const data : any = {
191216 dataSourceId : curConnection . id ,
192217 dataSourceName : curConnection . alias ,
@@ -245,17 +270,17 @@ const WorkspaceHeader = memo<IProps>((props) => {
245270 }
246271
247272 // 数据库切换
248- function databaseChange ( valueArr : any , selectedOptions : any ) {
249- if ( selectedOptions [ 0 ] . label !== curWorkspaceParams . databaseName ) {
250- getSchemaList ( selectedOptions [ 0 ] . label ) ;
251- }
273+ function databaseChange ( valueArr : any , selectedOptions : any , refresh ) {
274+ // if (selectedOptions[0].label !== curWorkspaceParams.databaseName) {
275+ getSchemaList ( selectedOptions [ 0 ] . label , refresh ) ;
276+ // }
252277 }
253278
254279 // schema切换
255280 function schemaChange ( valueArr : any , selectedOptions : any ) {
256- if ( selectedOptions [ 0 ] . label !== curWorkspaceParams . schemaName ) {
281+ // if (selectedOptions[0].label !== curWorkspaceParams.schemaName) {
257282 setCurWorkspaceParams ( { ...curWorkspaceParams , schemaName : selectedOptions [ 0 ] . value } ) ;
258- }
283+ // }
259284 }
260285
261286 function handleRefresh ( ) {
0 commit comments