@@ -7,7 +7,6 @@ import historyService from '@/service/history';
77import Iconfont from '@/components/Iconfont' ;
88import { databaseMap } from '@/constants/database' ;
99import styles from './index.less' ;
10- import { setRegisterProvider } from '@/store/monaco' ;
1110import sqlService from '@/service/sql' ;
1211
1312import {
@@ -36,10 +35,11 @@ const emptyOption = {
3635
3736const SelectBoundInfo = memo ( ( props : IProps ) => {
3837 const { boundInfo, setBoundInfo } = props ;
39- const { setSelectedTables, setTableNameList } = useContext ( IntelligentEditorContext ) ;
38+ const { setSelectedTables, setTableNameList, isActive } = useContext ( IntelligentEditorContext ) ;
4039 const connectionList = useConnectionStore ( ( state ) => state . connectionList ) ;
4140 const [ databaseNameList , setDatabaseNameList ] = useState < IOption < string > [ ] > ( [ emptyOption ] ) ;
4241 const [ schemaList , setSchemaList ] = useState < IOption < string > [ ] > ( [ emptyOption ] ) ;
42+ const [ allTableList , setAllTableList ] = useState < any > ( [ ] ) ;
4343
4444 const dataSourceList = useMemo ( ( ) => {
4545 return (
@@ -115,9 +115,7 @@ const SelectBoundInfo = memo((props: IProps) => {
115115 if ( ! _databaseNameList . length ) {
116116 getSchemaList ( ) ;
117117 }
118- setRegisterProvider ( boundInfo . dataSourceId , editorDatabaseTips ) ;
119118 setDatabaseNameList ( [ emptyOption , ..._databaseNameList ] ) ;
120- registerIntelliSenseDatabase ( editorDatabaseTips ) ;
121119 } ) ;
122120 } ;
123121
@@ -141,6 +139,37 @@ const SelectBoundInfo = memo((props: IProps) => {
141139 } ) ;
142140 } ;
143141
142+ // 注册表名
143+ useEffect ( ( ) => {
144+ if ( isActive ) {
145+ const tableNameListTemp = allTableList . map ( ( t ) => t . name ) ;
146+ setTableNameList ( tableNameListTemp ) ;
147+ registerIntelliSenseTable (
148+ allTableList ,
149+ boundInfo . databaseType ,
150+ boundInfo . dataSourceId ,
151+ boundInfo . databaseName ,
152+ boundInfo . schemaName ,
153+ ) ;
154+ registerIntelliSenseField (
155+ tableNameListTemp ,
156+ boundInfo . dataSourceId ,
157+ boundInfo . databaseName ,
158+ boundInfo . schemaName ,
159+ ) ;
160+ setSelectedTables ( tableNameListTemp . slice ( 0 , 1 ) ) ;
161+ }
162+ } , [ allTableList , isActive ] ) ;
163+
164+ // 注册数据库名
165+ useEffect ( ( ) => {
166+ const editorDatabaseTips = databaseNameList . map ( ( item ) => ( {
167+ name : item . value ,
168+ dataSourceName : boundInfo . dataSourceName ,
169+ } ) ) ;
170+ registerIntelliSenseDatabase ( editorDatabaseTips ) ;
171+ } , [ databaseNameList ] ) ;
172+
144173 // 选择数据源
145174 const changeDataSource = ( item ) => {
146175 const currentData = dataSourceList . find ( ( i ) => i . key === item . key ) ! ;
@@ -198,25 +227,7 @@ const SelectBoundInfo = memo((props: IProps) => {
198227 schemaName,
199228 } )
200229 . then ( ( data ) => {
201- const tableNameListTemp = data . map ( ( t ) => t . name ) ;
202-
203- registerIntelliSenseTable (
204- data ,
205- boundInfo . databaseType ,
206- boundInfo . dataSourceId ,
207- boundInfo . databaseName ,
208- boundInfo . schemaName ,
209- ) ;
210-
211- registerIntelliSenseField (
212- tableNameListTemp ,
213- boundInfo . dataSourceId ,
214- boundInfo . databaseName ,
215- boundInfo . schemaName ,
216- ) ;
217-
218- setTableNameList ( tableNameListTemp ) ;
219- setSelectedTables ( tableNameListTemp . slice ( 0 , 1 ) ) ;
230+ setAllTableList ( data ) ;
220231 } ) ;
221232 } ;
222233
0 commit comments