@@ -177,20 +177,24 @@ const ListMenuItem = React.memo(
177177 ( { item, scriptMenus, menuExpandNum, isBackscript, url, onEnableChange, handleDeleteScript } : ListMenuItemProps ) => {
178178 const { t } = useTranslation ( ) ;
179179 const [ isEffective , setIsEffective ] = useState < boolean | null > ( item . isEffective ) ;
180-
180+ const [ isActive , setIsActive ] = useState < boolean > ( false ) ;
181181 const [ isExpand , setIsExpand ] = useState < boolean > ( false ) ;
182182
183183 const handleExpandMenu = ( ) => {
184184 setIsExpand ( ( e ) => ! e ) ;
185185 } ;
186186
187187 const visibleMenus = useMemo ( ( ) => {
188+ // 当menuExpandNum为0时,跟随 isActive 状态显示全部菜单
188189 const m = scriptMenus ?. group || [ ] ;
190+ if ( menuExpandNum === 0 && isActive ) {
191+ return m ;
192+ }
189193 return m . length > menuExpandNum && ! isExpand ? m . slice ( 0 , menuExpandNum ) : m ;
190- } , [ scriptMenus ?. group , isExpand , menuExpandNum ] ) ;
194+ } , [ scriptMenus ?. group , isExpand , menuExpandNum , isActive ] ) ;
191195
192196 const shouldShowMore = useMemo (
193- ( ) => scriptMenus ?. group ?. length > menuExpandNum ,
197+ ( ) => menuExpandNum > 0 && scriptMenus ?. group ?. length > menuExpandNum ,
194198 [ scriptMenus ?. group , menuExpandNum ]
195199 ) ;
196200
@@ -201,7 +205,15 @@ const ListMenuItem = React.memo(
201205 } ;
202206
203207 return (
204- < Collapse bordered = { false } expandIconPosition = "right" key = { item . uuid } >
208+ < Collapse
209+ activeKey = { isActive ? item . uuid : undefined }
210+ onChange = { ( _ , keys ) => {
211+ setIsActive ( keys . includes ( item . uuid ) ) ;
212+ } }
213+ bordered = { false }
214+ expandIconPosition = "right"
215+ key = { item . uuid }
216+ >
205217 < CollapseItem
206218 header = { < CollapseHeader item = { item } onEnableChange = { onEnableChange } /> }
207219 name = { item . uuid }
0 commit comments