cfel-base-components 2.5.59 → 2.5.61

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cfel-base-components",
3
- "version": "2.5.59",
3
+ "version": "2.5.61",
4
4
  "description": "cfel-base-components",
5
5
  "main": "/src/index.tsx",
6
6
  "types": "src/index.d.ts",
@@ -64,7 +64,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
64
64
  isHideHeader,
65
65
  onCollapse,
66
66
  type,
67
- umiHistory
67
+ umiHistory,
68
68
  } = props
69
69
 
70
70
  const findKeyPath = (pathname: string) => {
@@ -88,9 +88,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
88
88
  }
89
89
 
90
90
  // 初始化选中菜单
91
- const [selectKey, setSelectKey] = useState<any>(
92
- findKeyPath('/' + location.pathname.split('/')[2])
93
- )
91
+ const [selectKey, setSelectKey] = useState<any>(findKeyPath('/' + location.pathname.split('/')[2]))
94
92
 
95
93
  const [infoOpen, setInfoOpen] = useState<string | null>(null)
96
94
 
@@ -131,42 +129,36 @@ export default function LiosLayout(props: LiosLayoutlProps) {
131
129
  return result
132
130
  }
133
131
 
134
- useEffect(() => {
135
- //在这里找到当前菜单的上层目录
136
- const paMenu = findParentMenu(menuList, '/' + location.pathname.split('/')[2])
137
- //去重
138
- const set = new Set(paMenu.map(item => item.key))
139
-
140
- openKeys.forEach((element: string) => {
141
- set.add(element)
142
- })
143
- setOpenKeys(Array.from(set))
144
-
145
- // 设置选中的菜单项
146
- const selectedPath = findKeyPath('/' + location.pathname.split('/')[2])
147
- setSelectKey(selectedPath)
148
- }, [location.pathname])
149
-
150
132
  // 初始化折叠状态
151
133
  const [collapsed, setCollapsed] = useState(localStorage.getItem('layout_collapsed') === 'true')
152
134
  const [isCopied, setIsCopied] = useState({
153
135
  account: false,
154
136
  id: false,
155
137
  tenantName: false,
156
- tenantId: false
138
+ tenantId: false,
157
139
  })
158
140
 
159
- const onOpenChange: MenuProps['onOpenChange'] = keys => {
141
+ useEffect(() => {
142
+ //在这里找到当前菜单的上层目录
143
+ const paMenu = findParentMenu(menuList, '/' + location.pathname.split('/')[2])
144
+
145
+ setOpenKeys(paMenu.map((item) => item.key))
146
+
147
+ const selectedPath = findKeyPath('/' + location.pathname.split('/')[2])
148
+ setSelectKey(selectedPath)
149
+ }, [location.pathname, collapsed])
150
+
151
+ const onOpenChange: MenuProps['onOpenChange'] = (keys) => {
160
152
  // Find the last opened key
161
- const latestOpenKey = keys.find(key => openKeys.indexOf(key) === -1)
153
+ const latestOpenKey = keys.find((key) => openKeys.indexOf(key) === -1)
162
154
 
163
155
  if (latestOpenKey) {
164
156
  // If opening a new key
165
- const rootSubmenuKeys = menuList.map(item => item.key)
157
+ const rootSubmenuKeys = menuList.map((item) => item.key)
166
158
 
167
159
  if (rootSubmenuKeys.indexOf(latestOpenKey) === -1) {
168
160
  // If it's a third level menu, only keep its parent menu open
169
- const parentKey = keys.find(key => rootSubmenuKeys.includes(key))
161
+ const parentKey = keys.find((key) => rootSubmenuKeys.includes(key))
170
162
  setOpenKeys(parentKey ? [parentKey, latestOpenKey] : [latestOpenKey])
171
163
  } else {
172
164
  // If it's a second level menu, only keep it open
@@ -188,7 +180,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
188
180
  // 菜单动画
189
181
  const collapseNode = () => {
190
182
  return {
191
- height: 0
183
+ height: 0,
192
184
  }
193
185
  }
194
186
  const expandNode = (node: any) => {
@@ -202,26 +194,26 @@ export default function LiosLayout(props: LiosLayoutlProps) {
202
194
  onEnterStart: collapseNode,
203
195
  onEnterActive: expandNode,
204
196
  onLeaveStart: expandNode,
205
- onLeaveActive: collapseNode
197
+ onLeaveActive: collapseNode,
206
198
  }
207
199
 
208
200
  const verticalMotion = {
209
201
  motionName: 'rc-menu-open-zoom',
210
202
  motionAppear: true,
211
203
  motionEnter: true,
212
- motionLeave: true
204
+ motionLeave: true,
213
205
  }
214
206
 
215
207
  return (
216
- <Layout className='layout-warps'>
208
+ <Layout className="layout-warps">
217
209
  {Array.isArray(menuList) && menuList.length > 0 && (
218
210
  <Sider
219
- className='layout-side'
211
+ className="layout-side"
220
212
  collapsible
221
213
  trigger={null}
222
214
  collapsed={collapsed}
223
215
  width={260}
224
- onCollapse={value => {
216
+ onCollapse={(value) => {
225
217
  if (onCollapse) {
226
218
  onCollapse(value)
227
219
  }
@@ -229,13 +221,10 @@ export default function LiosLayout(props: LiosLayoutlProps) {
229
221
  setCollapsed(value)
230
222
  }}
231
223
  >
232
- <div className='layout-side-mask1'></div>
233
- <div className='layout-side-mask2'></div>
224
+ <div className="layout-side-mask1"></div>
225
+ <div className="layout-side-mask2"></div>
234
226
 
235
- <div
236
- className='header-logo'
237
- style={{ justifyContent: collapsed ? 'center' : '', paddingLeft: collapsed ? '0' : '' }}
238
- >
227
+ <div className="header-logo" style={{ justifyContent: collapsed ? 'center' : '', paddingLeft: collapsed ? '0' : '' }}>
239
228
  <div
240
229
  onClick={() => {
241
230
  window.open('/home')
@@ -247,7 +236,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
247
236
  </div>
248
237
  {!collapsed && (
249
238
  <div
250
- className='trigger'
239
+ className="trigger"
251
240
  onClick={() => {
252
241
  setCollapsed(true)
253
242
  }}
@@ -260,7 +249,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
260
249
  {collapsed && (
261
250
  <div style={{ width: '100%', display: 'flex', justifyContent: 'center' }}>
262
251
  <div
263
- className='close-trigger'
252
+ className="close-trigger"
264
253
  onClick={() => {
265
254
  localStorage.setItem('layout_collapsed', 'false')
266
255
  setCollapsed(false)
@@ -274,19 +263,12 @@ export default function LiosLayout(props: LiosLayoutlProps) {
274
263
  {!collapsed && <div style={{ height: 24 }}></div>}
275
264
 
276
265
  <div style={{ width: '100%', padding: '0 16px' }}>
277
- <Search
278
- menuList={menuList}
279
- collapsed={collapsed}
280
- type={type || ''}
281
- umiHistory={umiHistory}
282
- setSelectKey={setSelectKey}
283
- findKeyPath={findKeyPath}
284
- />
266
+ <Search menuList={menuList} collapsed={collapsed} type={type || ''} umiHistory={umiHistory} setSelectKey={setSelectKey} findKeyPath={findKeyPath} />
285
267
  </div>
286
268
 
287
269
  {!collapsed && <div style={{ height: 12 }}></div>}
288
270
 
289
- <div className='layout-menu'>
271
+ <div className="layout-menu">
290
272
  <RcMenu
291
273
  mode={collapsed ? 'vertical' : 'inline'}
292
274
  className={`menu${collapsed ? '-collapsed' : ''}`}
@@ -295,12 +277,12 @@ export default function LiosLayout(props: LiosLayoutlProps) {
295
277
  onOpenChange={onOpenChange}
296
278
  selectedKeys={selectKey}
297
279
  onClick={(item: any) => {
280
+ if (collapsed) return
298
281
  setSelectKey(item.keyPath)
299
282
  if (onMenuClick) {
300
283
  onMenuClick(item)
301
284
  }
302
285
  }}
303
- triggerSubMenuAction='hover'
304
286
  >
305
287
  {menuList.map((item: any) => {
306
288
  const isSelected = selectKey.includes(item.key)
@@ -314,12 +296,12 @@ export default function LiosLayout(props: LiosLayoutlProps) {
314
296
  <Popover
315
297
  key={item.key}
316
298
  align={{
317
- offset: [33, 0]
299
+ offset: [33, 0],
318
300
  }}
319
- placement='right'
301
+ placement="right"
320
302
  arrow={false}
321
303
  content={
322
- <div className='menu-popover'>
304
+ <div className="menu-popover">
323
305
  {item.children.map((child: any) => {
324
306
  const isSelected = selectKey.includes(child.key)
325
307
  if (child.children) {
@@ -327,12 +309,12 @@ export default function LiosLayout(props: LiosLayoutlProps) {
327
309
  <Popover
328
310
  key={child.key}
329
311
  align={{
330
- offset: [10, 0]
312
+ offset: [10, 0],
331
313
  }}
332
- placement='right'
314
+ placement="right"
333
315
  arrow={false}
334
316
  content={
335
- <div className='menu-popover' style={{ width: '146px' }}>
317
+ <div className="menu-popover" style={{ width: '146px' }}>
336
318
  {child.children.map((grandChild: any) => {
337
319
  const isSelected = selectKey.includes(grandChild.key)
338
320
  return (
@@ -346,9 +328,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
346
328
  className={`grand-li ${isSelected ? 'sub-item-selected' : ''}`}
347
329
  >
348
330
  <div style={{ width: '130px' }}>
349
- <span className={`menu-item-label`}>
350
- {grandChild.label}
351
- </span>
331
+ <span className={`menu-item-label`}>{grandChild.label}</span>
352
332
  </div>
353
333
  </MenuItem>
354
334
  )
@@ -360,7 +340,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
360
340
  className={`menu-item-content sub-li ${isSelected ? 'sub-item-selected' : ''}`}
361
341
  key={child.key}
362
342
  title={
363
- <div className='sub-list'>
343
+ <div className="sub-list">
364
344
  <span className={`menu-item-label`}>{child.label}</span>
365
345
  <RightOutlined />
366
346
  </div>
@@ -379,7 +359,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
379
359
  key={child.key}
380
360
  className={`sub-li ${isSelected ? 'sub-item-selected' : ''}`}
381
361
  >
382
- <div className='menu-item-content sub-list'>{child.label}</div>
362
+ <div className="menu-item-content sub-list">{child.label}</div>
383
363
  </MenuItem>
384
364
  )
385
365
  })}
@@ -387,15 +367,11 @@ export default function LiosLayout(props: LiosLayoutlProps) {
387
367
  }
388
368
  >
389
369
  <SubMenu
390
- className='menu-item-content sub-li'
370
+ className="menu-item-content sub-li"
391
371
  title={
392
- <div className='sub-list'>
372
+ <div className="sub-list">
393
373
  <div>
394
- <span
395
- className={`menu-item-icon ${isSelected ? 'submenu-selected' : ''}`}
396
- >
397
- {item.icon}
398
- </span>
374
+ <span className={`menu-item-icon ${isSelected ? 'submenu-selected' : ''}`}>{item.icon}</span>
399
375
  </div>
400
376
  </div>
401
377
  }
@@ -406,15 +382,11 @@ export default function LiosLayout(props: LiosLayoutlProps) {
406
382
  return (
407
383
  <SubMenu
408
384
  key={item.key}
409
- className='menu-item-content'
385
+ className="menu-item-content"
410
386
  title={
411
- <div className='sub-list'>
412
- <div className='menu-item-inner'>
413
- <span
414
- className={`menu-item-icon ${isSelected ? 'submenu-selected' : ''}`}
415
- >
416
- {item.icon}
417
- </span>
387
+ <div className="sub-list">
388
+ <div className="menu-item-inner">
389
+ <span className={`menu-item-icon ${isSelected ? 'submenu-selected' : ''}`}>{item.icon}</span>
418
390
  {!collapsed && <span className={classNames}>{item.label}</span>}
419
391
  </div>
420
392
  </div>
@@ -431,19 +403,9 @@ export default function LiosLayout(props: LiosLayoutlProps) {
431
403
  if (child.children) {
432
404
  return (
433
405
  <SubMenu
434
- className='menu-item-content sub-li'
406
+ className="menu-item-content sub-li"
435
407
  key={child.key}
436
- title={
437
- <div className='sub-list'>
438
- {!collapsed && (
439
- <span
440
- className={`menu-item-label ${isSelected ? 'submenu-selected' : ''}`}
441
- >
442
- {child.label}
443
- </span>
444
- )}
445
- </div>
446
- }
408
+ title={<div className="sub-list">{!collapsed && <span className={`menu-item-label ${isSelected ? 'submenu-selected' : ''}`}>{child.label}</span>}</div>}
447
409
  >
448
410
  {child.children.map((grandChild: any) => {
449
411
  const isSelected = selectKey.includes(grandChild.key)
@@ -454,16 +416,8 @@ export default function LiosLayout(props: LiosLayoutlProps) {
454
416
  }
455
417
  }
456
418
  return (
457
- <MenuItem key={grandChild.key} className='grand-li'>
458
- <div className='menu-item-content'>
459
- {!collapsed && (
460
- <span
461
- className={`menu-item-label ${isSelected ? 'submenu-selected' : ''}`}
462
- >
463
- {grandChild.label}
464
- </span>
465
- )}
466
- </div>
419
+ <MenuItem key={grandChild.key} className="grand-li">
420
+ <div className="menu-item-content">{!collapsed && <span className={`menu-item-label ${isSelected ? 'submenu-selected' : ''}`}>{grandChild.label}</span>}</div>
467
421
  </MenuItem>
468
422
  )
469
423
  })}
@@ -471,16 +425,8 @@ export default function LiosLayout(props: LiosLayoutlProps) {
471
425
  )
472
426
  }
473
427
  return (
474
- <MenuItem key={child.key} className='sub-li'>
475
- <div className='menu-item-content'>
476
- {!collapsed && (
477
- <span
478
- className={`menu-item-label ${isSelected ? 'submenu-selected' : ''}`}
479
- >
480
- {child.label}
481
- </span>
482
- )}
483
- </div>
428
+ <MenuItem key={child.key} className="sub-li">
429
+ <div className="menu-item-content">{!collapsed && <span className={`menu-item-label ${isSelected ? 'submenu-selected' : ''}`}>{child.label}</span>}</div>
484
430
  </MenuItem>
485
431
  )
486
432
  })}
@@ -496,16 +442,19 @@ export default function LiosLayout(props: LiosLayoutlProps) {
496
442
  return (
497
443
  <MenuItem
498
444
  key={item.key}
499
- className='menu-item-content'
445
+ onClick={() => {
446
+ if (onMenuClick && collapsed) {
447
+ onMenuClick(item)
448
+ }
449
+ }}
450
+ className="menu-item-content"
500
451
  style={{
501
452
  position: 'relative',
502
- zIndex: 99
453
+ zIndex: 99,
503
454
  }}
504
455
  >
505
- <div className='first-li'>
506
- <span className={`menu-item-icon ${isSelected ? 'submenu-selected' : ''}`}>
507
- {item.icon}
508
- </span>
456
+ <div className="first-li">
457
+ <span className={`menu-item-icon ${isSelected ? 'submenu-selected' : ''}`}>{item.icon}</span>
509
458
  {!collapsed && <span className={classNames}>{item.label}</span>}
510
459
  </div>
511
460
  </MenuItem>
@@ -517,21 +466,21 @@ export default function LiosLayout(props: LiosLayoutlProps) {
517
466
  </Sider>
518
467
  )}
519
468
 
520
- <div className='layout-main'>
469
+ <div className="layout-main">
521
470
  {!isHideHeader && (
522
- <div className='layout-header'>
471
+ <div className="layout-header">
523
472
  {appName && (
524
- <div className='app-name'>
473
+ <div className="app-name">
525
474
  <strong>{appName}</strong>
526
475
  </div>
527
476
  )}
528
477
 
529
- <div className='layout-header-fill' />
478
+ <div className="layout-header-fill" />
530
479
 
531
- <div className='layout-header-actions'>
480
+ <div className="layout-header-actions">
532
481
  {actions?.map((item, index) => {
533
482
  return (
534
- <div className='actions-item' key={index}>
483
+ <div className="actions-item" key={index}>
535
484
  {item}
536
485
  </div>
537
486
  )
@@ -539,40 +488,33 @@ export default function LiosLayout(props: LiosLayoutlProps) {
539
488
  </div>
540
489
 
541
490
  <Popover
542
- placement='bottom'
491
+ placement="bottom"
543
492
  content={
544
- <UserCard
545
- myWalletInfo={myWalletInfo}
546
- MyLoginInfo={MyLoginInfo}
547
- amountInfo={amountInfo}
548
- customAction={customAction}
549
- isCopied={isCopied}
550
- copyTextToClipboard={copyTextToClipboard}
551
- />
493
+ <UserCard myWalletInfo={myWalletInfo} MyLoginInfo={MyLoginInfo} amountInfo={amountInfo} customAction={customAction} isCopied={isCopied} copyTextToClipboard={copyTextToClipboard} />
552
494
  }
553
495
  arrow={false}
554
- trigger='click'
555
- onOpenChange={e => {
496
+ trigger="click"
497
+ onOpenChange={(e) => {
556
498
  setInfoOpen(e ? 'up' : 'down')
557
499
  if (!e) return
558
500
  setIsCopied({
559
501
  account: false,
560
502
  id: false,
561
503
  tenantName: false,
562
- tenantId: false
504
+ tenantId: false,
563
505
  })
564
506
  if (myLoginInfoAction) {
565
507
  myLoginInfoAction()
566
508
  }
567
509
  }}
568
510
  >
569
- <div className='layout-header-user'>
570
- <img className='avatar' src={avatar} />
571
- <div className='name'>{name}</div>
511
+ <div className="layout-header-user">
512
+ <img className="avatar" src={avatar} />
513
+ <div className="name">{name}</div>
572
514
  <span
573
515
  style={{
574
516
  display: 'inline-block',
575
- marginLeft: '8px'
517
+ marginLeft: '8px',
576
518
  }}
577
519
  className={`iconfont icon-zhankai ${infoOpen ? (infoOpen === 'up' ? 'up' : 'down') : ''}`}
578
520
  ></span>
@@ -580,7 +522,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
580
522
  </Popover>
581
523
  </div>
582
524
  )}
583
- <div className='layout-content'>{props.children}</div>
525
+ <div className="layout-content">{props.children}</div>
584
526
  </div>
585
527
  </Layout>
586
528
  )
@@ -588,17 +530,10 @@ export default function LiosLayout(props: LiosLayoutlProps) {
588
530
 
589
531
  function Arrow({ collapsed, type }: { collapsed?: boolean; type?: string }) {
590
532
  return (
591
- <svg
592
- style={{ transform: !collapsed ? 'rotate(180deg)' : 'rotate(0deg)' }}
593
- viewBox='0 0 1024 1024'
594
- version='1.1'
595
- xmlns='http://www.w3.org/2000/svg'
596
- width='20'
597
- height='20'
598
- >
533
+ <svg style={{ transform: !collapsed ? 'rotate(180deg)' : 'rotate(0deg)' }} viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20">
599
534
  <path
600
- fill='#7D8295'
601
- d='M564.6336 775.168a41.5744 41.5744 0 0 0-13.312-28.672l-230.4-234.4448 229.9904-234.1888a42.0864 42.0864 0 0 0-26.3168-73.0112 42.0864 42.0864 0 0 0-30.6176 11.264L231.0656 481.024a41.984 41.984 0 0 0-2.4576 59.5968l1.9968 2.048 263.7824 265.6256a41.984 41.984 0 0 0 70.2464-33.0752z m254.5152 0a41.472 41.472 0 0 0-13.312-28.672L575.488 512l229.9904-234.1376a41.984 41.984 0 1 0-56.9344-61.7984L485.632 480.9728a42.0864 42.0864 0 0 0-2.4064 59.6992l0.8704 0.9216 0.8704 0.8192 0.4096 0.4096 263.5776 265.4208a41.984 41.984 0 0 0 70.1952-33.0752z'
535
+ fill="#7D8295"
536
+ d="M564.6336 775.168a41.5744 41.5744 0 0 0-13.312-28.672l-230.4-234.4448 229.9904-234.1888a42.0864 42.0864 0 0 0-26.3168-73.0112 42.0864 42.0864 0 0 0-30.6176 11.264L231.0656 481.024a41.984 41.984 0 0 0-2.4576 59.5968l1.9968 2.048 263.7824 265.6256a41.984 41.984 0 0 0 70.2464-33.0752z m254.5152 0a41.472 41.472 0 0 0-13.312-28.672L575.488 512l229.9904-234.1376a41.984 41.984 0 1 0-56.9344-61.7984L485.632 480.9728a42.0864 42.0864 0 0 0-2.4064 59.6992l0.8704 0.9216 0.8704 0.8192 0.4096 0.4096 263.5776 265.4208a41.984 41.984 0 0 0 70.1952-33.0752z"
602
537
  ></path>
603
538
  </svg>
604
539
  )
@@ -615,10 +550,7 @@ type SearchProps = {
615
550
  function Search({ menuList, collapsed, type, umiHistory, setSelectKey, findKeyPath }: SearchProps) {
616
551
  useEffect(() => {
617
552
  const handleKeyDown = (event: KeyboardEvent) => {
618
- if (
619
- (navigator.platform.toLowerCase().includes('mac') ? event.metaKey : event.ctrlKey) &&
620
- event.key.toLowerCase() === 'k'
621
- ) {
553
+ if ((navigator.platform.toLowerCase().includes('mac') ? event.metaKey : event.ctrlKey) && event.key.toLowerCase() === 'k') {
622
554
  event.preventDefault()
623
555
  const searchInput = document.querySelector('#menu-input') as HTMLInputElement
624
556
  if (searchInput) {
@@ -677,7 +609,7 @@ function Search({ menuList, collapsed, type, umiHistory, setSelectKey, findKeyPa
677
609
  search(menuList as Router[])
678
610
  setSearchResult(searchResults)
679
611
  function search(data: Router[]) {
680
- data.forEach(item => {
612
+ data.forEach((item) => {
681
613
  if (typeof item.label === 'string' && item.label.includes(value.toLocaleUpperCase())) {
682
614
  searchResults.push(item)
683
615
  }
@@ -691,7 +623,7 @@ function Search({ menuList, collapsed, type, umiHistory, setSelectKey, findKeyPa
691
623
  const enter = (item: Router) => {
692
624
  setIsFocused(false)
693
625
  //如果搜索历史里面有这个item,就不再添加
694
- if (searchHistory.findIndex(i => i.key === item.key) === -1) {
626
+ if (searchHistory.findIndex((i) => i.key === item.key) === -1) {
695
627
  setSearchHistory([...searchHistory, item])
696
628
  }
697
629
  //如果是目录就找到目录下第一个菜单进入
@@ -718,43 +650,34 @@ function Search({ menuList, collapsed, type, umiHistory, setSelectKey, findKeyPa
718
650
  }
719
651
 
720
652
  const deleteHistory = (item: Router) => {
721
- setSearchHistory(searchHistory.filter(i => i.key !== item.key))
653
+ setSearchHistory(searchHistory.filter((i) => i.key !== item.key))
722
654
  }
723
655
  return (
724
656
  <>
725
657
  {!collapsed && (
726
- <div className='search-container'>
727
- <div className='search'>
728
- <div className='search-bg-mask'>
729
- <img src='https://cfel-front.oss-cn-hangzhou.aliyuncs.com/logo/base-component/menu-search-bg.png' />
658
+ <div className="search-container">
659
+ <div className="search">
660
+ <div className="search-bg-mask">
661
+ <img src="https://cfel-front.oss-cn-hangzhou.aliyuncs.com/logo/base-component/menu-search-bg.png" />
730
662
  </div>
731
663
  <input
732
- autoComplete='off'
733
- id='menu-input'
664
+ autoComplete="off"
665
+ id="menu-input"
734
666
  value={searchTerm}
735
- onChange={e => handleSearch(e.target.value)}
736
- className='search-input'
737
- placeholder='搜索菜单...'
667
+ onChange={(e) => handleSearch(e.target.value)}
668
+ className="search-input"
669
+ placeholder="搜索菜单..."
738
670
  onFocus={() => setIsFocused(true)}
739
671
  />
740
- <div className='search-icon'>
741
- <svg
742
- viewBox='0 0 1024 1024'
743
- version='1.1'
744
- xmlns='http://www.w3.org/2000/svg'
745
- width='18'
746
- height='18'
747
- >
672
+ <div className="search-icon">
673
+ <svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="18" height="18">
748
674
  <path
749
675
  fill={type === 'console' ? '#C2B7F6' : '#817F9B'}
750
- d='M962.048 907.776l-229.0176-229.0176a384.3072 384.3072 0 1 0-54.272 54.272l229.0176 229.0176a38.4 38.4 0 0 0 54.272-54.272zM436.1216 743.0656a306.944 306.944 0 1 1 306.944-306.944 307.3024 307.3024 0 0 1-306.944 306.944z'
676
+ d="M962.048 907.776l-229.0176-229.0176a384.3072 384.3072 0 1 0-54.272 54.272l229.0176 229.0176a38.4 38.4 0 0 0 54.272-54.272zM436.1216 743.0656a306.944 306.944 0 1 1 306.944-306.944 307.3024 307.3024 0 0 1-306.944 306.944z"
751
677
  ></path>
752
678
  </svg>
753
679
  </div>
754
- <div
755
- className='search-command'
756
- style={{ width: navigator.platform.toLowerCase().includes('mac') ? '' : '50px' }}
757
- >
680
+ <div className="search-command" style={{ width: navigator.platform.toLowerCase().includes('mac') ? '' : '50px' }}>
758
681
  {navigator.platform.toLowerCase().includes('mac') ? '⌘' : 'Ctrl+'}K
759
682
  </div>
760
683
  </div>
@@ -762,32 +685,23 @@ function Search({ menuList, collapsed, type, umiHistory, setSelectKey, findKeyPa
762
685
  {isFocused && (
763
686
  <>
764
687
  {searchTerm ? (
765
- <List
766
- split={false}
767
- className='lists'
768
- size='small'
769
- bordered
770
- dataSource={searchResult}
771
- renderItem={item => (
772
- <List.Item onClick={() => enter(item)}>{item.label}</List.Item>
773
- )}
774
- />
688
+ <List split={false} className="lists" size="small" bordered dataSource={searchResult} renderItem={(item) => <List.Item onClick={() => enter(item)}>{item.label}</List.Item>} />
775
689
  ) : (
776
690
  <List
777
691
  split={false}
778
- className='lists'
779
- header='最近访问'
780
- size='small'
692
+ className="lists"
693
+ header="最近访问"
694
+ size="small"
781
695
  bordered
782
696
  dataSource={searchHistory}
783
- renderItem={item => {
697
+ renderItem={(item) => {
784
698
  return (
785
699
  <div
786
700
  className={'search-item'}
787
701
  style={{
788
702
  display: 'flex',
789
703
  justifyContent: 'space-between',
790
- alignItems: 'center'
704
+ alignItems: 'center',
791
705
  }}
792
706
  >
793
707
  <List.Item onClick={() => enter(item)}>{item.label}</List.Item>
@@ -64,7 +64,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
64
64
  isHideHeader,
65
65
  onCollapse,
66
66
  type,
67
- umiHistory
67
+ umiHistory,
68
68
  } = props
69
69
 
70
70
  const findKeyPath = (pathname: string) => {
@@ -88,9 +88,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
88
88
  }
89
89
 
90
90
  // 初始化选中菜单
91
- const [selectKey, setSelectKey] = useState<any>(
92
- findKeyPath('/' + location.pathname.split('/')[2])
93
- )
91
+ const [selectKey, setSelectKey] = useState<any>(findKeyPath('/' + location.pathname.split('/')[2]))
94
92
 
95
93
  const [infoOpen, setInfoOpen] = useState<string | null>(null)
96
94
 
@@ -131,35 +129,28 @@ export default function LiosLayout(props: LiosLayoutlProps) {
131
129
  return result
132
130
  }
133
131
 
134
- useEffect(() => {
135
- //在这里找到当前菜单的上层目录
136
- const paMenu = findParentMenu(menuList, '/' + location.pathname.split('/')[2])
137
- //去重
138
- const set = new Set(paMenu.map(item => item.key))
139
-
140
- openKeys.forEach((element: string) => {
141
- set.add(element)
142
- })
143
- setOpenKeys(Array.from(set))
144
-
145
- // 设置选中的菜单项
146
- const selectedPath = findKeyPath('/' + location.pathname.split('/')[2])
147
-
148
- setSelectKey(selectedPath)
149
- }, [location.pathname])
150
-
151
132
  // 初始化折叠状态
152
133
  const [collapsed, setCollapsed] = useState(localStorage.getItem('layout_collapsed') === 'true')
153
134
  const [isCopied, setIsCopied] = useState({
154
135
  account: false,
155
136
  id: false,
156
137
  tenantName: false,
157
- tenantId: false
138
+ tenantId: false,
158
139
  })
159
140
 
160
- const onOpenChange: MenuProps['onOpenChange'] = keys => {
141
+ useEffect(() => {
142
+ //在这里找到当前菜单的上层目录
143
+ const paMenu = findParentMenu(menuList, '/' + location.pathname.split('/')[2])
144
+
145
+ setOpenKeys(paMenu.map((item) => item.key))
146
+
147
+ const selectedPath = findKeyPath('/' + location.pathname.split('/')[2])
148
+ setSelectKey(selectedPath)
149
+ }, [location.pathname, collapsed])
150
+
151
+ const onOpenChange: MenuProps['onOpenChange'] = (keys) => {
161
152
  // Find the last opened key
162
- const latestOpenKey = keys.find(key => openKeys.indexOf(key) === -1)
153
+ const latestOpenKey = keys.find((key) => openKeys.indexOf(key) === -1)
163
154
 
164
155
  if (latestOpenKey) {
165
156
  // If opening a new key
@@ -167,7 +158,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
167
158
 
168
159
  if (rootSubmenuKeys.indexOf(latestOpenKey) === -1) {
169
160
  // If it's a third level menu, only keep its parent menu open
170
- const parentKey = keys.find(key => rootSubmenuKeys.includes(key))
161
+ const parentKey = keys.find((key) => rootSubmenuKeys.includes(key))
171
162
  setOpenKeys(parentKey ? [parentKey, latestOpenKey] : [latestOpenKey])
172
163
  } else {
173
164
  // If it's a second level menu, only keep it open
@@ -189,7 +180,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
189
180
  // 菜单动画
190
181
  const collapseNode = () => {
191
182
  return {
192
- height: 0
183
+ height: 0,
193
184
  }
194
185
  }
195
186
  const expandNode = (node: any) => {
@@ -203,26 +194,26 @@ export default function LiosLayout(props: LiosLayoutlProps) {
203
194
  onEnterStart: collapseNode,
204
195
  onEnterActive: expandNode,
205
196
  onLeaveStart: expandNode,
206
- onLeaveActive: collapseNode
197
+ onLeaveActive: collapseNode,
207
198
  }
208
199
 
209
200
  const verticalMotion = {
210
201
  motionName: 'rc-menu-open-zoom',
211
202
  motionAppear: true,
212
203
  motionEnter: true,
213
- motionLeave: true
204
+ motionLeave: true,
214
205
  }
215
206
 
216
207
  return (
217
- <Layout className='layout-warps-console'>
208
+ <Layout className="layout-warps-console">
218
209
  {Array.isArray(menuList) && menuList.length > 0 && (
219
210
  <Sider
220
- className='layout-side-console'
211
+ className="layout-side-console"
221
212
  collapsible
222
213
  trigger={null}
223
214
  collapsed={collapsed}
224
215
  width={260}
225
- onCollapse={value => {
216
+ onCollapse={(value) => {
226
217
  if (onCollapse) {
227
218
  onCollapse(value)
228
219
  }
@@ -230,13 +221,10 @@ export default function LiosLayout(props: LiosLayoutlProps) {
230
221
  setCollapsed(value)
231
222
  }}
232
223
  >
233
- <div className='layout-side-mask1-console'></div>
234
- <div className='layout-side-mask2-console'></div>
224
+ <div className="layout-side-mask1-console"></div>
225
+ <div className="layout-side-mask2-console"></div>
235
226
 
236
- <div
237
- className='header-logo-console'
238
- style={{ justifyContent: collapsed ? 'center' : '', paddingLeft: collapsed ? '0' : '' }}
239
- >
227
+ <div className="header-logo-console" style={{ justifyContent: collapsed ? 'center' : '', paddingLeft: collapsed ? '0' : '' }}>
240
228
  <div
241
229
  onClick={() => {
242
230
  window.open('/home')
@@ -249,7 +237,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
249
237
 
250
238
  {!collapsed && (
251
239
  <div
252
- className='trigger-console'
240
+ className="trigger-console"
253
241
  onClick={() => {
254
242
  setCollapsed(true)
255
243
  }}
@@ -262,7 +250,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
262
250
  {collapsed && (
263
251
  <div style={{ width: '100%', display: 'flex', justifyContent: 'center' }}>
264
252
  <div
265
- className='close-trigger-console'
253
+ className="close-trigger-console"
266
254
  onClick={() => {
267
255
  localStorage.setItem('layout_collapsed', 'false')
268
256
  setCollapsed(false)
@@ -276,19 +264,12 @@ export default function LiosLayout(props: LiosLayoutlProps) {
276
264
  {!collapsed && <div style={{ height: 24 }}></div>}
277
265
 
278
266
  <div style={{ width: '100%', padding: '0 16px' }}>
279
- <Search
280
- menuList={menuList}
281
- collapsed={collapsed}
282
- type={type || ''}
283
- umiHistory={umiHistory}
284
- setSelectKey={setSelectKey}
285
- findKeyPath={findKeyPath}
286
- />
267
+ <Search menuList={menuList} collapsed={collapsed} type={type || ''} umiHistory={umiHistory} setSelectKey={setSelectKey} findKeyPath={findKeyPath} />
287
268
  </div>
288
269
 
289
270
  {!collapsed && <div style={{ height: 12 }}></div>}
290
271
 
291
- <div className='layout-menu-console'>
272
+ <div className="layout-menu-console">
292
273
  <RcMenu
293
274
  mode={collapsed ? 'vertical' : 'inline'}
294
275
  className={`menu-console${collapsed ? '-collapsed' : ''}`}
@@ -316,12 +297,12 @@ export default function LiosLayout(props: LiosLayoutlProps) {
316
297
  <Popover
317
298
  key={item.key}
318
299
  align={{
319
- offset: [33, 0]
300
+ offset: [33, 0],
320
301
  }}
321
- placement='right'
302
+ placement="right"
322
303
  arrow={false}
323
304
  content={
324
- <div className='menu-popover'>
305
+ <div className="menu-popover">
325
306
  {item.children.map((child: any) => {
326
307
  const isSelected = selectKey.includes(child.key)
327
308
  if (child.children) {
@@ -329,12 +310,12 @@ export default function LiosLayout(props: LiosLayoutlProps) {
329
310
  <Popover
330
311
  key={child.key}
331
312
  align={{
332
- offset: [10, 0]
313
+ offset: [10, 0],
333
314
  }}
334
- placement='right'
315
+ placement="right"
335
316
  arrow={false}
336
317
  content={
337
- <div className='menu-popover' style={{ width: '146px' }}>
318
+ <div className="menu-popover" style={{ width: '146px' }}>
338
319
  {child.children.map((grandChild: any) => {
339
320
  const isSelected = selectKey.includes(grandChild.key)
340
321
  return (
@@ -348,9 +329,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
348
329
  className={`grand-li ${isSelected ? 'sub-item-selected' : ''}`}
349
330
  >
350
331
  <div style={{ width: '130px' }}>
351
- <span className={`menu-item-label`}>
352
- {grandChild.label}
353
- </span>
332
+ <span className={`menu-item-label`}>{grandChild.label}</span>
354
333
  </div>
355
334
  </MenuItem>
356
335
  )
@@ -362,7 +341,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
362
341
  className={`menu-item-content sub-li ${isSelected ? 'sub-item-selected' : ''}`}
363
342
  key={child.key}
364
343
  title={
365
- <div className='sub-list'>
344
+ <div className="sub-list">
366
345
  <span className={`menu-item-label`}>{child.label}</span>
367
346
  <RightOutlined />
368
347
  </div>
@@ -381,7 +360,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
381
360
  key={child.key}
382
361
  className={`sub-li ${isSelected ? 'sub-item-selected' : ''}`}
383
362
  >
384
- <div className='menu-item-content sub-list'>{child.label}</div>
363
+ <div className="menu-item-content sub-list">{child.label}</div>
385
364
  </MenuItem>
386
365
  )
387
366
  })}
@@ -389,15 +368,11 @@ export default function LiosLayout(props: LiosLayoutlProps) {
389
368
  }
390
369
  >
391
370
  <SubMenu
392
- className='menu-item-content sub-li'
371
+ className="menu-item-content sub-li"
393
372
  title={
394
- <div className='sub-list'>
373
+ <div className="sub-list">
395
374
  <div>
396
- <span
397
- className={`menu-item-icon ${isSelected ? 'submenu-selected' : ''}`}
398
- >
399
- {item.icon}
400
- </span>
375
+ <span className={`menu-item-icon ${isSelected ? 'submenu-selected' : ''}`}>{item.icon}</span>
401
376
  </div>
402
377
  </div>
403
378
  }
@@ -408,15 +383,11 @@ export default function LiosLayout(props: LiosLayoutlProps) {
408
383
  return (
409
384
  <SubMenu
410
385
  key={item.key}
411
- className='menu-item-content'
386
+ className="menu-item-content"
412
387
  title={
413
- <div className='sub-list'>
414
- <div className='menu-item-inner'>
415
- <span
416
- className={`menu-item-icon ${isSelected ? 'submenu-selected' : ''}`}
417
- >
418
- {item.icon}
419
- </span>
388
+ <div className="sub-list">
389
+ <div className="menu-item-inner">
390
+ <span className={`menu-item-icon ${isSelected ? 'submenu-selected' : ''}`}>{item.icon}</span>
420
391
  {!collapsed && <span className={classNames}>{item.label}</span>}
421
392
  </div>
422
393
  </div>
@@ -433,19 +404,9 @@ export default function LiosLayout(props: LiosLayoutlProps) {
433
404
  if (child.children) {
434
405
  return (
435
406
  <SubMenu
436
- className='menu-item-content sub-li'
407
+ className="menu-item-content sub-li"
437
408
  key={child.key}
438
- title={
439
- <div className='sub-list'>
440
- {!collapsed && (
441
- <span
442
- className={`menu-item-label ${isSelected ? 'submenu-selected' : ''}`}
443
- >
444
- {child.label}
445
- </span>
446
- )}
447
- </div>
448
- }
409
+ title={<div className="sub-list">{!collapsed && <span className={`menu-item-label ${isSelected ? 'submenu-selected' : ''}`}>{child.label}</span>}</div>}
449
410
  >
450
411
  {child.children.map((grandChild: any) => {
451
412
  const isSelected = selectKey.includes(grandChild.key)
@@ -456,16 +417,8 @@ export default function LiosLayout(props: LiosLayoutlProps) {
456
417
  }
457
418
  }
458
419
  return (
459
- <MenuItem key={grandChild.key} className='grand-li'>
460
- <div className='menu-item-content'>
461
- {!collapsed && (
462
- <span
463
- className={`menu-item-label ${isSelected ? 'submenu-selected' : ''}`}
464
- >
465
- {grandChild.label}
466
- </span>
467
- )}
468
- </div>
420
+ <MenuItem key={grandChild.key} className="grand-li">
421
+ <div className="menu-item-content">{!collapsed && <span className={`menu-item-label ${isSelected ? 'submenu-selected' : ''}`}>{grandChild.label}</span>}</div>
469
422
  </MenuItem>
470
423
  )
471
424
  })}
@@ -473,16 +426,8 @@ export default function LiosLayout(props: LiosLayoutlProps) {
473
426
  )
474
427
  }
475
428
  return (
476
- <MenuItem key={child.key} className='sub-li'>
477
- <div className='menu-item-content'>
478
- {!collapsed && (
479
- <span
480
- className={`menu-item-label ${isSelected ? 'submenu-selected' : ''}`}
481
- >
482
- {child.label}
483
- </span>
484
- )}
485
- </div>
429
+ <MenuItem key={child.key} className="sub-li">
430
+ <div className="menu-item-content">{!collapsed && <span className={`menu-item-label ${isSelected ? 'submenu-selected' : ''}`}>{child.label}</span>}</div>
486
431
  </MenuItem>
487
432
  )
488
433
  })}
@@ -503,12 +448,10 @@ export default function LiosLayout(props: LiosLayoutlProps) {
503
448
  }
504
449
  }}
505
450
  key={item.key}
506
- className='menu-item-content'
451
+ className="menu-item-content"
507
452
  >
508
- <div className='first-li'>
509
- <span className={`menu-item-icon ${isSelected ? 'submenu-selected' : ''}`}>
510
- {item.icon}
511
- </span>
453
+ <div className="first-li">
454
+ <span className={`menu-item-icon ${isSelected ? 'submenu-selected' : ''}`}>{item.icon}</span>
512
455
  {!collapsed && <span className={classNames}>{item.label}</span>}
513
456
  </div>
514
457
  </MenuItem>
@@ -520,21 +463,21 @@ export default function LiosLayout(props: LiosLayoutlProps) {
520
463
  </Sider>
521
464
  )}
522
465
 
523
- <div className='layout-main-console'>
466
+ <div className="layout-main-console">
524
467
  {!isHideHeader && (
525
- <div className='layout-header-console'>
468
+ <div className="layout-header-console">
526
469
  {appName && (
527
- <div className='app-name'>
470
+ <div className="app-name">
528
471
  <div>{appName}</div>
529
472
  </div>
530
473
  )}
531
474
 
532
- <div className='layout-header-fill-console' />
475
+ <div className="layout-header-fill-console" />
533
476
 
534
- <div className='layout-header-actions-console'>
477
+ <div className="layout-header-actions-console">
535
478
  {actions?.map((item, index) => {
536
479
  return (
537
- <div className='actions-item' key={index}>
480
+ <div className="actions-item" key={index}>
538
481
  {item}
539
482
  </div>
540
483
  )
@@ -542,40 +485,33 @@ export default function LiosLayout(props: LiosLayoutlProps) {
542
485
  </div>
543
486
 
544
487
  <Popover
545
- placement='bottom'
488
+ placement="bottom"
546
489
  content={
547
- <UserCard
548
- myWalletInfo={myWalletInfo}
549
- MyLoginInfo={MyLoginInfo}
550
- amountInfo={amountInfo}
551
- customAction={customAction}
552
- isCopied={isCopied}
553
- copyTextToClipboard={copyTextToClipboard}
554
- />
490
+ <UserCard myWalletInfo={myWalletInfo} MyLoginInfo={MyLoginInfo} amountInfo={amountInfo} customAction={customAction} isCopied={isCopied} copyTextToClipboard={copyTextToClipboard} />
555
491
  }
556
492
  arrow={false}
557
- trigger='click'
558
- onOpenChange={e => {
493
+ trigger="click"
494
+ onOpenChange={(e) => {
559
495
  setInfoOpen(e ? 'up' : 'down')
560
496
  if (!e) return
561
497
  setIsCopied({
562
498
  account: false,
563
499
  id: false,
564
500
  tenantName: false,
565
- tenantId: false
501
+ tenantId: false,
566
502
  })
567
503
  if (myLoginInfoAction) {
568
504
  myLoginInfoAction()
569
505
  }
570
506
  }}
571
507
  >
572
- <div className='layout-header-user-console'>
573
- <img className='avatar' src={avatar} />
574
- <div className='name'>{name}</div>
508
+ <div className="layout-header-user-console">
509
+ <img className="avatar" src={avatar} />
510
+ <div className="name">{name}</div>
575
511
  <span
576
512
  style={{
577
513
  display: 'inline-block',
578
- marginLeft: '4px'
514
+ marginLeft: '4px',
579
515
  }}
580
516
  className={`iconfont icon-zhankai ${infoOpen ? (infoOpen === 'up' ? 'up' : 'down') : ''}`}
581
517
  ></span>
@@ -583,7 +519,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
583
519
  </Popover>
584
520
  </div>
585
521
  )}
586
- <div className='layout-content-console'>{props.children}</div>
522
+ <div className="layout-content-console">{props.children}</div>
587
523
  </div>
588
524
  </Layout>
589
525
  )
@@ -591,17 +527,10 @@ export default function LiosLayout(props: LiosLayoutlProps) {
591
527
 
592
528
  function Arrow({ collapsed, type }: { collapsed?: boolean; type?: string }) {
593
529
  return (
594
- <svg
595
- style={{ transform: !collapsed ? 'rotate(180deg)' : 'rotate(0deg)' }}
596
- viewBox='0 0 1024 1024'
597
- version='1.1'
598
- xmlns='http://www.w3.org/2000/svg'
599
- width='20'
600
- height='20'
601
- >
530
+ <svg style={{ transform: !collapsed ? 'rotate(180deg)' : 'rotate(0deg)' }} viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="20">
602
531
  <path
603
- fill='#FFFFFF'
604
- d='M564.6336 775.168a41.5744 41.5744 0 0 0-13.312-28.672l-230.4-234.4448 229.9904-234.1888a42.0864 42.0864 0 0 0-26.3168-73.0112 42.0864 42.0864 0 0 0-30.6176 11.264L231.0656 481.024a41.984 41.984 0 0 0-2.4576 59.5968l1.9968 2.048 263.7824 265.6256a41.984 41.984 0 0 0 70.2464-33.0752z m254.5152 0a41.472 41.472 0 0 0-13.312-28.672L575.488 512l229.9904-234.1376a41.984 41.984 0 1 0-56.9344-61.7984L485.632 480.9728a42.0864 42.0864 0 0 0-2.4064 59.6992l0.8704 0.9216 0.8704 0.8192 0.4096 0.4096 263.5776 265.4208a41.984 41.984 0 0 0 70.1952-33.0752z'
532
+ fill="#FFFFFF"
533
+ d="M564.6336 775.168a41.5744 41.5744 0 0 0-13.312-28.672l-230.4-234.4448 229.9904-234.1888a42.0864 42.0864 0 0 0-26.3168-73.0112 42.0864 42.0864 0 0 0-30.6176 11.264L231.0656 481.024a41.984 41.984 0 0 0-2.4576 59.5968l1.9968 2.048 263.7824 265.6256a41.984 41.984 0 0 0 70.2464-33.0752z m254.5152 0a41.472 41.472 0 0 0-13.312-28.672L575.488 512l229.9904-234.1376a41.984 41.984 0 1 0-56.9344-61.7984L485.632 480.9728a42.0864 42.0864 0 0 0-2.4064 59.6992l0.8704 0.9216 0.8704 0.8192 0.4096 0.4096 263.5776 265.4208a41.984 41.984 0 0 0 70.1952-33.0752z"
605
534
  ></path>
606
535
  </svg>
607
536
  )
@@ -628,10 +557,7 @@ function Search({ menuList, collapsed, type, umiHistory, setSelectKey, findKeyPa
628
557
 
629
558
  useEffect(() => {
630
559
  const handleKeyDown = (event: KeyboardEvent) => {
631
- if (
632
- (navigator.platform.toLowerCase().includes('mac') ? event.metaKey : event.ctrlKey) &&
633
- event.key.toLowerCase() === 'k'
634
- ) {
560
+ if ((navigator.platform.toLowerCase().includes('mac') ? event.metaKey : event.ctrlKey) && event.key.toLowerCase() === 'k') {
635
561
  event.preventDefault()
636
562
  const searchInput = document.querySelector('#menu-input') as HTMLInputElement
637
563
  if (searchInput) {
@@ -680,7 +606,7 @@ function Search({ menuList, collapsed, type, umiHistory, setSelectKey, findKeyPa
680
606
  search(menuList as Router[])
681
607
  setSearchResult(searchResults)
682
608
  function search(data: Router[]) {
683
- data.forEach(item => {
609
+ data.forEach((item) => {
684
610
  if (typeof item.label === 'string' && item.label.includes(value.toLocaleUpperCase())) {
685
611
  searchResults.push(item)
686
612
  }
@@ -694,7 +620,7 @@ function Search({ menuList, collapsed, type, umiHistory, setSelectKey, findKeyPa
694
620
  const enter = (item: Router) => {
695
621
  setIsFocused(false)
696
622
  //如果搜索历史里面有这个item,就不再添加
697
- if (searchHistory.findIndex(i => i.key === item.key) === -1) {
623
+ if (searchHistory.findIndex((i) => i.key === item.key) === -1) {
698
624
  setSearchHistory([...searchHistory, item])
699
625
  }
700
626
  //如果是目录就找到目录下第一个菜单进入
@@ -721,48 +647,39 @@ function Search({ menuList, collapsed, type, umiHistory, setSelectKey, findKeyPa
721
647
  }
722
648
 
723
649
  const deleteHistory = (item: Router) => {
724
- setSearchHistory(searchHistory.filter(i => i.key !== item.key))
650
+ setSearchHistory(searchHistory.filter((i) => i.key !== item.key))
725
651
  }
726
652
  return (
727
653
  <>
728
654
  {!collapsed && (
729
- <div className='search-container'>
730
- <div className='search-console'>
731
- <div className='search-bg-mask'>
732
- <img src='https://cfel-front.oss-cn-hangzhou.aliyuncs.com/logo/base-component/menu-search-bg-console.png' />
655
+ <div className="search-container">
656
+ <div className="search-console">
657
+ <div className="search-bg-mask">
658
+ <img src="https://cfel-front.oss-cn-hangzhou.aliyuncs.com/logo/base-component/menu-search-bg-console.png" />
733
659
  </div>
734
660
  <input
735
- autoComplete='off'
736
- id='menu-input'
661
+ autoComplete="off"
662
+ id="menu-input"
737
663
  value={searchTerm}
738
- onChange={e => handleSearch(e.target.value)}
739
- className='search-input'
740
- placeholder='搜索菜单...'
664
+ onChange={(e) => handleSearch(e.target.value)}
665
+ className="search-input"
666
+ placeholder="搜索菜单..."
741
667
  onFocus={() => setIsFocused(true)}
742
- onBlur={e => {
668
+ onBlur={(e) => {
743
669
  if (!e.relatedTarget?.closest('.lists-console')) {
744
670
  setIsFocused(false)
745
671
  }
746
672
  }}
747
673
  />
748
- <div className='search-icon'>
749
- <svg
750
- viewBox='0 0 1024 1024'
751
- version='1.1'
752
- xmlns='http://www.w3.org/2000/svg'
753
- width='18'
754
- height='18'
755
- >
674
+ <div className="search-icon">
675
+ <svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="18" height="18">
756
676
  <path
757
- fill='#C3CAEF'
758
- d='M962.048 907.776l-229.0176-229.0176a384.3072 384.3072 0 1 0-54.272 54.272l229.0176 229.0176a38.4 38.4 0 0 0 54.272-54.272zM436.1216 743.0656a306.944 306.944 0 1 1 306.944-306.944 307.3024 307.3024 0 0 1-306.944 306.944z'
677
+ fill="#C3CAEF"
678
+ d="M962.048 907.776l-229.0176-229.0176a384.3072 384.3072 0 1 0-54.272 54.272l229.0176 229.0176a38.4 38.4 0 0 0 54.272-54.272zM436.1216 743.0656a306.944 306.944 0 1 1 306.944-306.944 307.3024 307.3024 0 0 1-306.944 306.944z"
759
679
  ></path>
760
680
  </svg>
761
681
  </div>
762
- <div
763
- className='search-command'
764
- style={{ width: navigator.platform.toLowerCase().includes('mac') ? '' : '50px' }}
765
- >
682
+ <div className="search-command" style={{ width: navigator.platform.toLowerCase().includes('mac') ? '' : '50px' }}>
766
683
  {navigator.platform.toLowerCase().includes('mac') ? '⌘' : 'Ctrl+'}K
767
684
  </div>
768
685
 
@@ -780,31 +697,29 @@ function Search({ menuList, collapsed, type, umiHistory, setSelectKey, findKeyPa
780
697
  <List
781
698
  tabIndex={-1}
782
699
  split={false}
783
- className='lists-console'
784
- size='small'
700
+ className="lists-console"
701
+ size="small"
785
702
  bordered
786
703
  dataSource={searchResult}
787
- renderItem={item => (
788
- <List.Item onClick={() => enter(item)}>{item.label}</List.Item>
789
- )}
704
+ renderItem={(item) => <List.Item onClick={() => enter(item)}>{item.label}</List.Item>}
790
705
  />
791
706
  ) : (
792
707
  <List
793
708
  tabIndex={-1}
794
709
  split={false}
795
- className='lists-console'
796
- header='最近访问'
797
- size='small'
710
+ className="lists-console"
711
+ header="最近访问"
712
+ size="small"
798
713
  bordered
799
714
  dataSource={searchHistory}
800
- renderItem={item => {
715
+ renderItem={(item) => {
801
716
  return (
802
717
  <div
803
718
  className={'search-item'}
804
719
  style={{
805
720
  display: 'flex',
806
721
  justifyContent: 'space-between',
807
- alignItems: 'center'
722
+ alignItems: 'center',
808
723
  }}
809
724
  >
810
725
  <List.Item onClick={() => enter(item)}>{item.label}</List.Item>