cfel-base-components 2.5.59 → 2.5.60

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.60",
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>
@@ -5,6 +5,7 @@ import RcMenu, { SubMenu, MenuItem } from 'rc-menu'
5
5
  import { CloseCircleOutlined, RightOutlined } from '@ant-design/icons'
6
6
  const { Sider } = Layout
7
7
  import './index-console.scss'
8
+ import React from 'react'
8
9
 
9
10
  interface TreeNode {
10
11
  key: string
@@ -64,7 +65,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
64
65
  isHideHeader,
65
66
  onCollapse,
66
67
  type,
67
- umiHistory
68
+ umiHistory,
68
69
  } = props
69
70
 
70
71
  const findKeyPath = (pathname: string) => {
@@ -88,9 +89,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
88
89
  }
89
90
 
90
91
  // 初始化选中菜单
91
- const [selectKey, setSelectKey] = useState<any>(
92
- findKeyPath('/' + location.pathname.split('/')[2])
93
- )
92
+ const [selectKey, setSelectKey] = useState<any>(findKeyPath('/' + location.pathname.split('/')[2]))
94
93
 
95
94
  const [infoOpen, setInfoOpen] = useState<string | null>(null)
96
95
 
@@ -131,35 +130,28 @@ export default function LiosLayout(props: LiosLayoutlProps) {
131
130
  return result
132
131
  }
133
132
 
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
133
  // 初始化折叠状态
152
134
  const [collapsed, setCollapsed] = useState(localStorage.getItem('layout_collapsed') === 'true')
153
135
  const [isCopied, setIsCopied] = useState({
154
136
  account: false,
155
137
  id: false,
156
138
  tenantName: false,
157
- tenantId: false
139
+ tenantId: false,
158
140
  })
159
141
 
160
- const onOpenChange: MenuProps['onOpenChange'] = keys => {
142
+ useEffect(() => {
143
+ //在这里找到当前菜单的上层目录
144
+ const paMenu = findParentMenu(menuList, '/' + location.pathname.split('/')[2])
145
+
146
+ setOpenKeys(paMenu.map((item) => item.key))
147
+
148
+ const selectedPath = findKeyPath('/' + location.pathname.split('/')[2])
149
+ setSelectKey(selectedPath)
150
+ }, [location.pathname, collapsed])
151
+
152
+ const onOpenChange: MenuProps['onOpenChange'] = (keys) => {
161
153
  // Find the last opened key
162
- const latestOpenKey = keys.find(key => openKeys.indexOf(key) === -1)
154
+ const latestOpenKey = keys.find((key) => openKeys.indexOf(key) === -1)
163
155
 
164
156
  if (latestOpenKey) {
165
157
  // If opening a new key
@@ -167,7 +159,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
167
159
 
168
160
  if (rootSubmenuKeys.indexOf(latestOpenKey) === -1) {
169
161
  // If it's a third level menu, only keep its parent menu open
170
- const parentKey = keys.find(key => rootSubmenuKeys.includes(key))
162
+ const parentKey = keys.find((key) => rootSubmenuKeys.includes(key))
171
163
  setOpenKeys(parentKey ? [parentKey, latestOpenKey] : [latestOpenKey])
172
164
  } else {
173
165
  // If it's a second level menu, only keep it open
@@ -189,7 +181,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
189
181
  // 菜单动画
190
182
  const collapseNode = () => {
191
183
  return {
192
- height: 0
184
+ height: 0,
193
185
  }
194
186
  }
195
187
  const expandNode = (node: any) => {
@@ -203,26 +195,26 @@ export default function LiosLayout(props: LiosLayoutlProps) {
203
195
  onEnterStart: collapseNode,
204
196
  onEnterActive: expandNode,
205
197
  onLeaveStart: expandNode,
206
- onLeaveActive: collapseNode
198
+ onLeaveActive: collapseNode,
207
199
  }
208
200
 
209
201
  const verticalMotion = {
210
202
  motionName: 'rc-menu-open-zoom',
211
203
  motionAppear: true,
212
204
  motionEnter: true,
213
- motionLeave: true
205
+ motionLeave: true,
214
206
  }
215
207
 
216
208
  return (
217
- <Layout className='layout-warps-console'>
209
+ <Layout className="layout-warps-console">
218
210
  {Array.isArray(menuList) && menuList.length > 0 && (
219
211
  <Sider
220
- className='layout-side-console'
212
+ className="layout-side-console"
221
213
  collapsible
222
214
  trigger={null}
223
215
  collapsed={collapsed}
224
216
  width={260}
225
- onCollapse={value => {
217
+ onCollapse={(value) => {
226
218
  if (onCollapse) {
227
219
  onCollapse(value)
228
220
  }
@@ -230,13 +222,10 @@ export default function LiosLayout(props: LiosLayoutlProps) {
230
222
  setCollapsed(value)
231
223
  }}
232
224
  >
233
- <div className='layout-side-mask1-console'></div>
234
- <div className='layout-side-mask2-console'></div>
225
+ <div className="layout-side-mask1-console"></div>
226
+ <div className="layout-side-mask2-console"></div>
235
227
 
236
- <div
237
- className='header-logo-console'
238
- style={{ justifyContent: collapsed ? 'center' : '', paddingLeft: collapsed ? '0' : '' }}
239
- >
228
+ <div className="header-logo-console" style={{ justifyContent: collapsed ? 'center' : '', paddingLeft: collapsed ? '0' : '' }}>
240
229
  <div
241
230
  onClick={() => {
242
231
  window.open('/home')
@@ -249,7 +238,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
249
238
 
250
239
  {!collapsed && (
251
240
  <div
252
- className='trigger-console'
241
+ className="trigger-console"
253
242
  onClick={() => {
254
243
  setCollapsed(true)
255
244
  }}
@@ -262,7 +251,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
262
251
  {collapsed && (
263
252
  <div style={{ width: '100%', display: 'flex', justifyContent: 'center' }}>
264
253
  <div
265
- className='close-trigger-console'
254
+ className="close-trigger-console"
266
255
  onClick={() => {
267
256
  localStorage.setItem('layout_collapsed', 'false')
268
257
  setCollapsed(false)
@@ -276,19 +265,12 @@ export default function LiosLayout(props: LiosLayoutlProps) {
276
265
  {!collapsed && <div style={{ height: 24 }}></div>}
277
266
 
278
267
  <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
- />
268
+ <Search menuList={menuList} collapsed={collapsed} type={type || ''} umiHistory={umiHistory} setSelectKey={setSelectKey} findKeyPath={findKeyPath} />
287
269
  </div>
288
270
 
289
271
  {!collapsed && <div style={{ height: 12 }}></div>}
290
272
 
291
- <div className='layout-menu-console'>
273
+ <div className="layout-menu-console">
292
274
  <RcMenu
293
275
  mode={collapsed ? 'vertical' : 'inline'}
294
276
  className={`menu-console${collapsed ? '-collapsed' : ''}`}
@@ -316,12 +298,12 @@ export default function LiosLayout(props: LiosLayoutlProps) {
316
298
  <Popover
317
299
  key={item.key}
318
300
  align={{
319
- offset: [33, 0]
301
+ offset: [33, 0],
320
302
  }}
321
- placement='right'
303
+ placement="right"
322
304
  arrow={false}
323
305
  content={
324
- <div className='menu-popover'>
306
+ <div className="menu-popover">
325
307
  {item.children.map((child: any) => {
326
308
  const isSelected = selectKey.includes(child.key)
327
309
  if (child.children) {
@@ -329,12 +311,12 @@ export default function LiosLayout(props: LiosLayoutlProps) {
329
311
  <Popover
330
312
  key={child.key}
331
313
  align={{
332
- offset: [10, 0]
314
+ offset: [10, 0],
333
315
  }}
334
- placement='right'
316
+ placement="right"
335
317
  arrow={false}
336
318
  content={
337
- <div className='menu-popover' style={{ width: '146px' }}>
319
+ <div className="menu-popover" style={{ width: '146px' }}>
338
320
  {child.children.map((grandChild: any) => {
339
321
  const isSelected = selectKey.includes(grandChild.key)
340
322
  return (
@@ -348,9 +330,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
348
330
  className={`grand-li ${isSelected ? 'sub-item-selected' : ''}`}
349
331
  >
350
332
  <div style={{ width: '130px' }}>
351
- <span className={`menu-item-label`}>
352
- {grandChild.label}
353
- </span>
333
+ <span className={`menu-item-label`}>{grandChild.label}</span>
354
334
  </div>
355
335
  </MenuItem>
356
336
  )
@@ -362,7 +342,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
362
342
  className={`menu-item-content sub-li ${isSelected ? 'sub-item-selected' : ''}`}
363
343
  key={child.key}
364
344
  title={
365
- <div className='sub-list'>
345
+ <div className="sub-list">
366
346
  <span className={`menu-item-label`}>{child.label}</span>
367
347
  <RightOutlined />
368
348
  </div>
@@ -381,7 +361,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
381
361
  key={child.key}
382
362
  className={`sub-li ${isSelected ? 'sub-item-selected' : ''}`}
383
363
  >
384
- <div className='menu-item-content sub-list'>{child.label}</div>
364
+ <div className="menu-item-content sub-list">{child.label}</div>
385
365
  </MenuItem>
386
366
  )
387
367
  })}
@@ -389,15 +369,11 @@ export default function LiosLayout(props: LiosLayoutlProps) {
389
369
  }
390
370
  >
391
371
  <SubMenu
392
- className='menu-item-content sub-li'
372
+ className="menu-item-content sub-li"
393
373
  title={
394
- <div className='sub-list'>
374
+ <div className="sub-list">
395
375
  <div>
396
- <span
397
- className={`menu-item-icon ${isSelected ? 'submenu-selected' : ''}`}
398
- >
399
- {item.icon}
400
- </span>
376
+ <span className={`menu-item-icon ${isSelected ? 'submenu-selected' : ''}`}>{item.icon}</span>
401
377
  </div>
402
378
  </div>
403
379
  }
@@ -408,15 +384,11 @@ export default function LiosLayout(props: LiosLayoutlProps) {
408
384
  return (
409
385
  <SubMenu
410
386
  key={item.key}
411
- className='menu-item-content'
387
+ className="menu-item-content"
412
388
  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>
389
+ <div className="sub-list">
390
+ <div className="menu-item-inner">
391
+ <span className={`menu-item-icon ${isSelected ? 'submenu-selected' : ''}`}>{item.icon}</span>
420
392
  {!collapsed && <span className={classNames}>{item.label}</span>}
421
393
  </div>
422
394
  </div>
@@ -433,19 +405,9 @@ export default function LiosLayout(props: LiosLayoutlProps) {
433
405
  if (child.children) {
434
406
  return (
435
407
  <SubMenu
436
- className='menu-item-content sub-li'
408
+ className="menu-item-content sub-li"
437
409
  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
- }
410
+ title={<div className="sub-list">{!collapsed && <span className={`menu-item-label ${isSelected ? 'submenu-selected' : ''}`}>{child.label}</span>}</div>}
449
411
  >
450
412
  {child.children.map((grandChild: any) => {
451
413
  const isSelected = selectKey.includes(grandChild.key)
@@ -456,16 +418,8 @@ export default function LiosLayout(props: LiosLayoutlProps) {
456
418
  }
457
419
  }
458
420
  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>
421
+ <MenuItem key={grandChild.key} className="grand-li">
422
+ <div className="menu-item-content">{!collapsed && <span className={`menu-item-label ${isSelected ? 'submenu-selected' : ''}`}>{grandChild.label}</span>}</div>
469
423
  </MenuItem>
470
424
  )
471
425
  })}
@@ -473,16 +427,8 @@ export default function LiosLayout(props: LiosLayoutlProps) {
473
427
  )
474
428
  }
475
429
  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>
430
+ <MenuItem key={child.key} className="sub-li">
431
+ <div className="menu-item-content">{!collapsed && <span className={`menu-item-label ${isSelected ? 'submenu-selected' : ''}`}>{child.label}</span>}</div>
486
432
  </MenuItem>
487
433
  )
488
434
  })}
@@ -503,12 +449,10 @@ export default function LiosLayout(props: LiosLayoutlProps) {
503
449
  }
504
450
  }}
505
451
  key={item.key}
506
- className='menu-item-content'
452
+ className="menu-item-content"
507
453
  >
508
- <div className='first-li'>
509
- <span className={`menu-item-icon ${isSelected ? 'submenu-selected' : ''}`}>
510
- {item.icon}
511
- </span>
454
+ <div className="first-li">
455
+ <span className={`menu-item-icon ${isSelected ? 'submenu-selected' : ''}`}>{item.icon}</span>
512
456
  {!collapsed && <span className={classNames}>{item.label}</span>}
513
457
  </div>
514
458
  </MenuItem>
@@ -520,21 +464,21 @@ export default function LiosLayout(props: LiosLayoutlProps) {
520
464
  </Sider>
521
465
  )}
522
466
 
523
- <div className='layout-main-console'>
467
+ <div className="layout-main-console">
524
468
  {!isHideHeader && (
525
- <div className='layout-header-console'>
469
+ <div className="layout-header-console">
526
470
  {appName && (
527
- <div className='app-name'>
471
+ <div className="app-name">
528
472
  <div>{appName}</div>
529
473
  </div>
530
474
  )}
531
475
 
532
- <div className='layout-header-fill-console' />
476
+ <div className="layout-header-fill-console" />
533
477
 
534
- <div className='layout-header-actions-console'>
478
+ <div className="layout-header-actions-console">
535
479
  {actions?.map((item, index) => {
536
480
  return (
537
- <div className='actions-item' key={index}>
481
+ <div className="actions-item" key={index}>
538
482
  {item}
539
483
  </div>
540
484
  )
@@ -542,40 +486,33 @@ export default function LiosLayout(props: LiosLayoutlProps) {
542
486
  </div>
543
487
 
544
488
  <Popover
545
- placement='bottom'
489
+ placement="bottom"
546
490
  content={
547
- <UserCard
548
- myWalletInfo={myWalletInfo}
549
- MyLoginInfo={MyLoginInfo}
550
- amountInfo={amountInfo}
551
- customAction={customAction}
552
- isCopied={isCopied}
553
- copyTextToClipboard={copyTextToClipboard}
554
- />
491
+ <UserCard myWalletInfo={myWalletInfo} MyLoginInfo={MyLoginInfo} amountInfo={amountInfo} customAction={customAction} isCopied={isCopied} copyTextToClipboard={copyTextToClipboard} />
555
492
  }
556
493
  arrow={false}
557
- trigger='click'
558
- onOpenChange={e => {
494
+ trigger="click"
495
+ onOpenChange={(e) => {
559
496
  setInfoOpen(e ? 'up' : 'down')
560
497
  if (!e) return
561
498
  setIsCopied({
562
499
  account: false,
563
500
  id: false,
564
501
  tenantName: false,
565
- tenantId: false
502
+ tenantId: false,
566
503
  })
567
504
  if (myLoginInfoAction) {
568
505
  myLoginInfoAction()
569
506
  }
570
507
  }}
571
508
  >
572
- <div className='layout-header-user-console'>
573
- <img className='avatar' src={avatar} />
574
- <div className='name'>{name}</div>
509
+ <div className="layout-header-user-console">
510
+ <img className="avatar" src={avatar} />
511
+ <div className="name">{name}</div>
575
512
  <span
576
513
  style={{
577
514
  display: 'inline-block',
578
- marginLeft: '4px'
515
+ marginLeft: '4px',
579
516
  }}
580
517
  className={`iconfont icon-zhankai ${infoOpen ? (infoOpen === 'up' ? 'up' : 'down') : ''}`}
581
518
  ></span>
@@ -583,7 +520,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
583
520
  </Popover>
584
521
  </div>
585
522
  )}
586
- <div className='layout-content-console'>{props.children}</div>
523
+ <div className="layout-content-console">{props.children}</div>
587
524
  </div>
588
525
  </Layout>
589
526
  )
@@ -591,17 +528,10 @@ export default function LiosLayout(props: LiosLayoutlProps) {
591
528
 
592
529
  function Arrow({ collapsed, type }: { collapsed?: boolean; type?: string }) {
593
530
  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
- >
531
+ <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
532
  <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'
533
+ fill="#FFFFFF"
534
+ 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
535
  ></path>
606
536
  </svg>
607
537
  )
@@ -628,10 +558,7 @@ function Search({ menuList, collapsed, type, umiHistory, setSelectKey, findKeyPa
628
558
 
629
559
  useEffect(() => {
630
560
  const handleKeyDown = (event: KeyboardEvent) => {
631
- if (
632
- (navigator.platform.toLowerCase().includes('mac') ? event.metaKey : event.ctrlKey) &&
633
- event.key.toLowerCase() === 'k'
634
- ) {
561
+ if ((navigator.platform.toLowerCase().includes('mac') ? event.metaKey : event.ctrlKey) && event.key.toLowerCase() === 'k') {
635
562
  event.preventDefault()
636
563
  const searchInput = document.querySelector('#menu-input') as HTMLInputElement
637
564
  if (searchInput) {
@@ -680,7 +607,7 @@ function Search({ menuList, collapsed, type, umiHistory, setSelectKey, findKeyPa
680
607
  search(menuList as Router[])
681
608
  setSearchResult(searchResults)
682
609
  function search(data: Router[]) {
683
- data.forEach(item => {
610
+ data.forEach((item) => {
684
611
  if (typeof item.label === 'string' && item.label.includes(value.toLocaleUpperCase())) {
685
612
  searchResults.push(item)
686
613
  }
@@ -694,7 +621,7 @@ function Search({ menuList, collapsed, type, umiHistory, setSelectKey, findKeyPa
694
621
  const enter = (item: Router) => {
695
622
  setIsFocused(false)
696
623
  //如果搜索历史里面有这个item,就不再添加
697
- if (searchHistory.findIndex(i => i.key === item.key) === -1) {
624
+ if (searchHistory.findIndex((i) => i.key === item.key) === -1) {
698
625
  setSearchHistory([...searchHistory, item])
699
626
  }
700
627
  //如果是目录就找到目录下第一个菜单进入
@@ -721,48 +648,39 @@ function Search({ menuList, collapsed, type, umiHistory, setSelectKey, findKeyPa
721
648
  }
722
649
 
723
650
  const deleteHistory = (item: Router) => {
724
- setSearchHistory(searchHistory.filter(i => i.key !== item.key))
651
+ setSearchHistory(searchHistory.filter((i) => i.key !== item.key))
725
652
  }
726
653
  return (
727
654
  <>
728
655
  {!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' />
656
+ <div className="search-container">
657
+ <div className="search-console">
658
+ <div className="search-bg-mask">
659
+ <img src="https://cfel-front.oss-cn-hangzhou.aliyuncs.com/logo/base-component/menu-search-bg-console.png" />
733
660
  </div>
734
661
  <input
735
- autoComplete='off'
736
- id='menu-input'
662
+ autoComplete="off"
663
+ id="menu-input"
737
664
  value={searchTerm}
738
- onChange={e => handleSearch(e.target.value)}
739
- className='search-input'
740
- placeholder='搜索菜单...'
665
+ onChange={(e) => handleSearch(e.target.value)}
666
+ className="search-input"
667
+ placeholder="搜索菜单..."
741
668
  onFocus={() => setIsFocused(true)}
742
- onBlur={e => {
669
+ onBlur={(e) => {
743
670
  if (!e.relatedTarget?.closest('.lists-console')) {
744
671
  setIsFocused(false)
745
672
  }
746
673
  }}
747
674
  />
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
- >
675
+ <div className="search-icon">
676
+ <svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="18" height="18">
756
677
  <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'
678
+ fill="#C3CAEF"
679
+ 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
680
  ></path>
760
681
  </svg>
761
682
  </div>
762
- <div
763
- className='search-command'
764
- style={{ width: navigator.platform.toLowerCase().includes('mac') ? '' : '50px' }}
765
- >
683
+ <div className="search-command" style={{ width: navigator.platform.toLowerCase().includes('mac') ? '' : '50px' }}>
766
684
  {navigator.platform.toLowerCase().includes('mac') ? '⌘' : 'Ctrl+'}K
767
685
  </div>
768
686
 
@@ -780,31 +698,29 @@ function Search({ menuList, collapsed, type, umiHistory, setSelectKey, findKeyPa
780
698
  <List
781
699
  tabIndex={-1}
782
700
  split={false}
783
- className='lists-console'
784
- size='small'
701
+ className="lists-console"
702
+ size="small"
785
703
  bordered
786
704
  dataSource={searchResult}
787
- renderItem={item => (
788
- <List.Item onClick={() => enter(item)}>{item.label}</List.Item>
789
- )}
705
+ renderItem={(item) => <List.Item onClick={() => enter(item)}>{item.label}</List.Item>}
790
706
  />
791
707
  ) : (
792
708
  <List
793
709
  tabIndex={-1}
794
710
  split={false}
795
- className='lists-console'
796
- header='最近访问'
797
- size='small'
711
+ className="lists-console"
712
+ header="最近访问"
713
+ size="small"
798
714
  bordered
799
715
  dataSource={searchHistory}
800
- renderItem={item => {
716
+ renderItem={(item) => {
801
717
  return (
802
718
  <div
803
719
  className={'search-item'}
804
720
  style={{
805
721
  display: 'flex',
806
722
  justifyContent: 'space-between',
807
- alignItems: 'center'
723
+ alignItems: 'center',
808
724
  }}
809
725
  >
810
726
  <List.Item onClick={() => enter(item)}>{item.label}</List.Item>