@@ -39,6 +39,7 @@ export const DatabaseQueueSelect: React.FC<{
39
39
const form = Form . useFormInstance ( ) ;
40
40
const statusMap = datasourceStatus . statusMap ;
41
41
const projectId = Form . useWatch ( 'projectId' , form ) ;
42
+ const orderedDatabaseIds = Form . useWatch ( [ 'parameters' , 'orderedDatabaseIds' ] , form ) ;
42
43
const [ databaseIdMap , setDatabaseIdMap ] = useState < Map < number , boolean > > ( new Map ( ) ) ;
43
44
const [ _databaseOptions , setDatabaseOptions ] = useState < DatabaseOption [ ] > ( [ ] ) ;
44
45
const {
@@ -87,6 +88,7 @@ export const DatabaseQueueSelect: React.FC<{
87
88
DatabasePermissionType . CHANGE ,
88
89
) ,
89
90
expired : checkDbExpiredByDataSourceStatus ( statusInfo ?. status ) ,
91
+ connectType : item ?. connectType ,
90
92
} ;
91
93
} ) ,
92
94
) ;
@@ -98,13 +100,27 @@ export const DatabaseQueueSelect: React.FC<{
98
100
} ;
99
101
100
102
const databaseOptions = useMemo ( ( ) => {
101
- return _databaseOptions ?. map ( ( item ) => {
102
- return {
103
- ...item ,
104
- expired : checkDbExpiredByDataSourceStatus ( statusMap . get ( item ?. dataSource ?. id ) ?. status ) ,
105
- } ;
106
- } ) ;
107
- } , [ statusMap , _databaseOptions ] ) ;
103
+ const selectedDbId = orderedDatabaseIds ?. flat ( ) ?. filter ( Boolean ) ?. [ 0 ] ;
104
+ const selectedDbInfo = _databaseOptions ?. find ( ( _db ) => _db . value === selectedDbId ) ;
105
+ if ( selectedDbId ) {
106
+ // 这里加同数据源类型的限制
107
+ return _databaseOptions
108
+ ?. filter ( ( _db ) => _db ?. connectType === selectedDbInfo ?. connectType )
109
+ ?. map ( ( item ) => {
110
+ return {
111
+ ...item ,
112
+ expired : checkDbExpiredByDataSourceStatus ( statusMap . get ( item ?. dataSource ?. id ) ?. status ) ,
113
+ } ;
114
+ } ) ;
115
+ } else {
116
+ return _databaseOptions ?. map ( ( item ) => {
117
+ return {
118
+ ...item ,
119
+ expired : checkDbExpiredByDataSourceStatus ( statusMap . get ( item ?. dataSource ?. id ) ?. status ) ,
120
+ } ;
121
+ } ) ;
122
+ }
123
+ } , [ statusMap , _databaseOptions , orderedDatabaseIds ] ) ;
108
124
109
125
useEffect ( ( ) => {
110
126
if ( multipleDatabaseChangeOpen && projectId ) {
0 commit comments