@@ -30,6 +30,7 @@ import { useContext, useEffect, useState } from 'react';
3030import SensitiveContext from '../../../SensitiveContext' ;
3131import MultipleDatabaseSelect from '@/component/Task/component/MultipleDatabaseSelect/index' ;
3232import { isConnectTypeBeFileSystemGroup } from '@/util/connection' ;
33+ import { isAIAvailable } from '@/common/network/ai' ;
3334
3435const ScanRule = ( { formRef, reset, setManageSensitiveRuleDrawerOpen } ) => {
3536 const context = useContext ( ProjectContext ) ;
@@ -42,6 +43,35 @@ const ScanRule = ({ formRef, reset, setManageSensitiveRuleDrawerOpen }) => {
4243 const [ dataSourceOptions , setDataSourceOptions ] = useState < SelectItemProps [ ] > ( [ ] ) ;
4344 const [ sensitiveOptions , setSensitiveOptions ] = useState < SelectItemProps [ ] > ( [ ] ) ;
4445 const [ rawData , setRawData ] = useState < IResponseData < IConnection > > ( ) ;
46+ const [ aiAvailable , setAiAvailable ] = useState < boolean > ( true ) ;
47+ // 检查AI功能状态
48+ useEffect ( ( ) => {
49+ const checkAIStatus = async ( ) => {
50+ try {
51+ const available = await isAIAvailable ( ) ;
52+ setAiAvailable ( available ) ;
53+
54+ // 如果AI不可用且当前选择的是AI增强识别,自动切换到传统规则识别
55+ if ( ! available && scanningMode === 'JOINT_RECOGNITION' ) {
56+ await formRef . setFieldsValue ( {
57+ scanningMode : 'RULES_ONLY' ,
58+ } ) ;
59+ }
60+ } catch ( error ) {
61+ console . warn ( '检查AI状态失败:' , error ) ;
62+ setAiAvailable ( false ) ;
63+
64+ // AI检查失败时也切换到传统规则识别
65+ if ( scanningMode === 'JOINT_RECOGNITION' ) {
66+ await formRef . setFieldsValue ( {
67+ scanningMode : 'RULES_ONLY' ,
68+ } ) ;
69+ }
70+ }
71+ } ;
72+ checkAIStatus ( ) ;
73+ } , [ ] ) ;
74+
4575 const initDataSources = async ( ) => {
4676 const rawData = await getConnectionList ( {
4777 projectId : sensitiveContext . projectId ,
@@ -283,11 +313,12 @@ const ScanRule = ({ formRef, reset, setManageSensitiveRuleDrawerOpen }) => {
283313 defaultMessage : '传统规则识别' ,
284314 } ) }
285315 </ Radio >
286- < Radio value = "JOINT_RECOGNITION" >
316+ < Radio value = "JOINT_RECOGNITION" disabled = { ! aiAvailable } >
287317 { formatMessage ( {
288318 id : 'odc.SensitiveColumn.components.SacnRule.AIEnhanced' ,
289319 defaultMessage : 'AI增强识别' ,
290320 } ) }
321+ { ! aiAvailable && < span style = { { color : '#999' , marginLeft : 8 } } > (AI功能未开启)</ span > }
291322 </ Radio >
292323 </ Radio . Group >
293324 </ Form . Item >
0 commit comments