cfel-base-components 2.5.51 → 2.5.53
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/demo/src/index.jsx +157 -76
- package/package.json +1 -1
- package/src/.umi/core/helmet.ts +1 -1
- package/src/components/layout/index.scss +14 -2
- package/src/components/layout/index.tsx +86 -163
- package/src/components/layout-console/index-console.scss +17 -1
- package/src/components/layout-console/index.tsx +83 -160
- package/src/global.d.ts +0 -2
- package/demo/src/index.scss +0 -0
|
@@ -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
|
|
|
@@ -135,7 +133,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
|
|
|
135
133
|
//在这里找到当前菜单的上层目录
|
|
136
134
|
const paMenu = findParentMenu(menuList, '/' + location.pathname.split('/')[2])
|
|
137
135
|
//去重
|
|
138
|
-
const set = new Set(paMenu.map(item => item.key))
|
|
136
|
+
const set = new Set(paMenu.map((item) => item.key))
|
|
139
137
|
openKeys.forEach((element: string) => {
|
|
140
138
|
set.add(element)
|
|
141
139
|
})
|
|
@@ -148,10 +146,10 @@ export default function LiosLayout(props: LiosLayoutlProps) {
|
|
|
148
146
|
account: false,
|
|
149
147
|
id: false,
|
|
150
148
|
tenantName: false,
|
|
151
|
-
tenantId: false
|
|
149
|
+
tenantId: false,
|
|
152
150
|
})
|
|
153
151
|
|
|
154
|
-
const onOpenChange: MenuProps['onOpenChange'] = keys => {
|
|
152
|
+
const onOpenChange: MenuProps['onOpenChange'] = (keys) => {
|
|
155
153
|
setOpenKeys(keys)
|
|
156
154
|
}
|
|
157
155
|
|
|
@@ -165,7 +163,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
|
|
|
165
163
|
// 菜单动画
|
|
166
164
|
const collapseNode = () => {
|
|
167
165
|
return {
|
|
168
|
-
height: 0
|
|
166
|
+
height: 0,
|
|
169
167
|
}
|
|
170
168
|
}
|
|
171
169
|
const expandNode = (node: any) => {
|
|
@@ -179,26 +177,26 @@ export default function LiosLayout(props: LiosLayoutlProps) {
|
|
|
179
177
|
onEnterStart: collapseNode,
|
|
180
178
|
onEnterActive: expandNode,
|
|
181
179
|
onLeaveStart: expandNode,
|
|
182
|
-
onLeaveActive: collapseNode
|
|
180
|
+
onLeaveActive: collapseNode,
|
|
183
181
|
}
|
|
184
182
|
|
|
185
183
|
const verticalMotion = {
|
|
186
184
|
motionName: 'rc-menu-open-zoom',
|
|
187
185
|
motionAppear: true,
|
|
188
186
|
motionEnter: true,
|
|
189
|
-
motionLeave: true
|
|
187
|
+
motionLeave: true,
|
|
190
188
|
}
|
|
191
189
|
|
|
192
190
|
return (
|
|
193
|
-
<Layout className=
|
|
191
|
+
<Layout className="layout-warps">
|
|
194
192
|
{Array.isArray(menuList) && menuList.length > 0 && (
|
|
195
193
|
<Sider
|
|
196
|
-
className=
|
|
194
|
+
className="layout-side"
|
|
197
195
|
collapsible
|
|
198
196
|
trigger={null}
|
|
199
197
|
collapsed={collapsed}
|
|
200
198
|
width={260}
|
|
201
|
-
onCollapse={value => {
|
|
199
|
+
onCollapse={(value) => {
|
|
202
200
|
if (onCollapse) {
|
|
203
201
|
onCollapse(value)
|
|
204
202
|
}
|
|
@@ -206,12 +204,9 @@ export default function LiosLayout(props: LiosLayoutlProps) {
|
|
|
206
204
|
setCollapsed(value)
|
|
207
205
|
}}
|
|
208
206
|
>
|
|
209
|
-
<div className=
|
|
207
|
+
<div className="layout-side-mask1"></div>
|
|
210
208
|
|
|
211
|
-
<div
|
|
212
|
-
className='header-logo'
|
|
213
|
-
style={{ justifyContent: collapsed ? 'center' : '', paddingLeft: collapsed ? '0' : '' }}
|
|
214
|
-
>
|
|
209
|
+
<div className="header-logo" style={{ justifyContent: collapsed ? 'center' : '', paddingLeft: collapsed ? '0' : '' }}>
|
|
215
210
|
<div
|
|
216
211
|
onClick={() => {
|
|
217
212
|
window.open('/home')
|
|
@@ -237,8 +232,9 @@ export default function LiosLayout(props: LiosLayoutlProps) {
|
|
|
237
232
|
{collapsed && (
|
|
238
233
|
<div style={{ width: '100%', display: 'flex', justifyContent: 'center' }}>
|
|
239
234
|
<div
|
|
240
|
-
className=
|
|
235
|
+
className="close-trigger"
|
|
241
236
|
onClick={() => {
|
|
237
|
+
localStorage.setItem('layout_collapsed', 'false')
|
|
242
238
|
setCollapsed(false)
|
|
243
239
|
}}
|
|
244
240
|
>
|
|
@@ -250,19 +246,12 @@ export default function LiosLayout(props: LiosLayoutlProps) {
|
|
|
250
246
|
<div style={{ height: 24 }}></div>
|
|
251
247
|
|
|
252
248
|
<div style={{ width: '100%', padding: '0 16px' }}>
|
|
253
|
-
<Search
|
|
254
|
-
menuList={menuList}
|
|
255
|
-
collapsed={collapsed}
|
|
256
|
-
type={type || ''}
|
|
257
|
-
umiHistory={umiHistory}
|
|
258
|
-
setSelectKey={setSelectKey}
|
|
259
|
-
findKeyPath={findKeyPath}
|
|
260
|
-
/>
|
|
249
|
+
<Search menuList={menuList} collapsed={collapsed} type={type || ''} umiHistory={umiHistory} setSelectKey={setSelectKey} findKeyPath={findKeyPath} />
|
|
261
250
|
</div>
|
|
262
251
|
|
|
263
252
|
{!collapsed && <div style={{ height: 12 }}></div>}
|
|
264
253
|
|
|
265
|
-
<div className=
|
|
254
|
+
<div className="layout-menu">
|
|
266
255
|
<RcMenu
|
|
267
256
|
mode={collapsed ? 'vertical' : 'inline'}
|
|
268
257
|
className={`menu${collapsed ? '-collapsed' : ''}`}
|
|
@@ -276,7 +265,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
|
|
|
276
265
|
onMenuClick(item)
|
|
277
266
|
}
|
|
278
267
|
}}
|
|
279
|
-
triggerSubMenuAction=
|
|
268
|
+
triggerSubMenuAction="hover"
|
|
280
269
|
>
|
|
281
270
|
{menuList.map((item: any) => {
|
|
282
271
|
const isSelected = selectKey.includes(item.key)
|
|
@@ -287,17 +276,13 @@ export default function LiosLayout(props: LiosLayoutlProps) {
|
|
|
287
276
|
}
|
|
288
277
|
return (
|
|
289
278
|
<SubMenu
|
|
290
|
-
popupClassName=
|
|
279
|
+
popupClassName="rc-menu-submenu-popup"
|
|
291
280
|
key={item.key}
|
|
292
|
-
className=
|
|
281
|
+
className="menu-item-content"
|
|
293
282
|
title={
|
|
294
|
-
<div className=
|
|
295
|
-
<div className=
|
|
296
|
-
<span
|
|
297
|
-
className={`menu-item-icon ${isSelected ? 'submenu-selected' : ''}`}
|
|
298
|
-
>
|
|
299
|
-
{item.icon}
|
|
300
|
-
</span>
|
|
283
|
+
<div className="sub-list">
|
|
284
|
+
<div className="menu-item-inner">
|
|
285
|
+
<span className={`menu-item-icon ${isSelected ? 'submenu-selected' : ''}`}>{item.icon}</span>
|
|
301
286
|
{!collapsed && <span className={classNames}>{item.label}</span>}
|
|
302
287
|
</div>
|
|
303
288
|
</div>
|
|
@@ -314,20 +299,10 @@ export default function LiosLayout(props: LiosLayoutlProps) {
|
|
|
314
299
|
if (child.children) {
|
|
315
300
|
return (
|
|
316
301
|
<SubMenu
|
|
317
|
-
popupClassName=
|
|
318
|
-
className=
|
|
302
|
+
popupClassName="rc-menu-submenu-popup"
|
|
303
|
+
className="menu-item-content sub-li"
|
|
319
304
|
key={child.key}
|
|
320
|
-
title={
|
|
321
|
-
<div className='sub-list'>
|
|
322
|
-
{!collapsed && (
|
|
323
|
-
<span
|
|
324
|
-
className={`menu-item-label ${isSelected ? 'submenu-selected' : ''}`}
|
|
325
|
-
>
|
|
326
|
-
{child.label}
|
|
327
|
-
</span>
|
|
328
|
-
)}
|
|
329
|
-
</div>
|
|
330
|
-
}
|
|
305
|
+
title={<div className="sub-list">{!collapsed && <span className={`menu-item-label ${isSelected ? 'submenu-selected' : ''}`}>{child.label}</span>}</div>}
|
|
331
306
|
>
|
|
332
307
|
{child.children.map((grandChild: any) => {
|
|
333
308
|
const isSelected = selectKey.includes(grandChild.key)
|
|
@@ -338,16 +313,8 @@ export default function LiosLayout(props: LiosLayoutlProps) {
|
|
|
338
313
|
}
|
|
339
314
|
}
|
|
340
315
|
return (
|
|
341
|
-
<MenuItem key={grandChild.key} className=
|
|
342
|
-
<div className=
|
|
343
|
-
{!collapsed && (
|
|
344
|
-
<span
|
|
345
|
-
className={`menu-item-label ${isSelected ? 'submenu-selected' : ''}`}
|
|
346
|
-
>
|
|
347
|
-
{grandChild.label}
|
|
348
|
-
</span>
|
|
349
|
-
)}
|
|
350
|
-
</div>
|
|
316
|
+
<MenuItem key={grandChild.key} className="grand-li">
|
|
317
|
+
<div className="menu-item-content">{!collapsed && <span className={`menu-item-label ${isSelected ? 'submenu-selected' : ''}`}>{grandChild.label}</span>}</div>
|
|
351
318
|
</MenuItem>
|
|
352
319
|
)
|
|
353
320
|
})}
|
|
@@ -355,16 +322,8 @@ export default function LiosLayout(props: LiosLayoutlProps) {
|
|
|
355
322
|
)
|
|
356
323
|
}
|
|
357
324
|
return (
|
|
358
|
-
<MenuItem key={child.key} className=
|
|
359
|
-
<div className=
|
|
360
|
-
{!collapsed && (
|
|
361
|
-
<span
|
|
362
|
-
className={`menu-item-label ${isSelected ? 'submenu-selected' : ''}`}
|
|
363
|
-
>
|
|
364
|
-
{child.label}
|
|
365
|
-
</span>
|
|
366
|
-
)}
|
|
367
|
-
</div>
|
|
325
|
+
<MenuItem key={child.key} className="sub-li">
|
|
326
|
+
<div className="menu-item-content">{!collapsed && <span className={`menu-item-label ${isSelected ? 'submenu-selected' : ''}`}>{child.label}</span>}</div>
|
|
368
327
|
</MenuItem>
|
|
369
328
|
)
|
|
370
329
|
})}
|
|
@@ -378,11 +337,16 @@ export default function LiosLayout(props: LiosLayoutlProps) {
|
|
|
378
337
|
classNames += ' submenu-selected'
|
|
379
338
|
}
|
|
380
339
|
return (
|
|
381
|
-
<MenuItem
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
340
|
+
<MenuItem
|
|
341
|
+
key={item.key}
|
|
342
|
+
className="menu-item-content"
|
|
343
|
+
style={{
|
|
344
|
+
position: 'relative',
|
|
345
|
+
zIndex: 99,
|
|
346
|
+
}}
|
|
347
|
+
>
|
|
348
|
+
<div className="first-li">
|
|
349
|
+
<span className={`menu-item-icon ${isSelected ? 'submenu-selected' : ''}`}>{item.icon}</span>
|
|
386
350
|
{!collapsed && <span className={classNames}>{item.label}</span>}
|
|
387
351
|
</div>
|
|
388
352
|
</MenuItem>
|
|
@@ -394,21 +358,21 @@ export default function LiosLayout(props: LiosLayoutlProps) {
|
|
|
394
358
|
</Sider>
|
|
395
359
|
)}
|
|
396
360
|
|
|
397
|
-
<div className=
|
|
361
|
+
<div className="layout-main">
|
|
398
362
|
{!isHideHeader && (
|
|
399
|
-
<div className=
|
|
363
|
+
<div className="layout-header">
|
|
400
364
|
{appName && (
|
|
401
|
-
<div className=
|
|
365
|
+
<div className="app-name">
|
|
402
366
|
<strong>{appName}</strong>
|
|
403
367
|
</div>
|
|
404
368
|
)}
|
|
405
369
|
|
|
406
|
-
<div className=
|
|
370
|
+
<div className="layout-header-fill" />
|
|
407
371
|
|
|
408
|
-
<div className=
|
|
372
|
+
<div className="layout-header-actions">
|
|
409
373
|
{actions?.map((item, index) => {
|
|
410
374
|
return (
|
|
411
|
-
<div className=
|
|
375
|
+
<div className="actions-item" key={index}>
|
|
412
376
|
{item}
|
|
413
377
|
</div>
|
|
414
378
|
)
|
|
@@ -416,40 +380,33 @@ export default function LiosLayout(props: LiosLayoutlProps) {
|
|
|
416
380
|
</div>
|
|
417
381
|
|
|
418
382
|
<Popover
|
|
419
|
-
placement=
|
|
383
|
+
placement="bottom"
|
|
420
384
|
content={
|
|
421
|
-
<UserCard
|
|
422
|
-
myWalletInfo={myWalletInfo}
|
|
423
|
-
MyLoginInfo={MyLoginInfo}
|
|
424
|
-
amountInfo={amountInfo}
|
|
425
|
-
customAction={customAction}
|
|
426
|
-
isCopied={isCopied}
|
|
427
|
-
copyTextToClipboard={copyTextToClipboard}
|
|
428
|
-
/>
|
|
385
|
+
<UserCard myWalletInfo={myWalletInfo} MyLoginInfo={MyLoginInfo} amountInfo={amountInfo} customAction={customAction} isCopied={isCopied} copyTextToClipboard={copyTextToClipboard} />
|
|
429
386
|
}
|
|
430
387
|
arrow={false}
|
|
431
|
-
trigger=
|
|
432
|
-
onOpenChange={e => {
|
|
388
|
+
trigger="click"
|
|
389
|
+
onOpenChange={(e) => {
|
|
433
390
|
setInfoOpen(e ? 'up' : 'down')
|
|
434
391
|
if (!e) return
|
|
435
392
|
setIsCopied({
|
|
436
393
|
account: false,
|
|
437
394
|
id: false,
|
|
438
395
|
tenantName: false,
|
|
439
|
-
tenantId: false
|
|
396
|
+
tenantId: false,
|
|
440
397
|
})
|
|
441
398
|
if (myLoginInfoAction) {
|
|
442
399
|
myLoginInfoAction()
|
|
443
400
|
}
|
|
444
401
|
}}
|
|
445
402
|
>
|
|
446
|
-
<div className=
|
|
447
|
-
<img className=
|
|
448
|
-
<div className=
|
|
403
|
+
<div className="layout-header-user">
|
|
404
|
+
<img className="avatar" src={avatar} />
|
|
405
|
+
<div className="name">{name}</div>
|
|
449
406
|
<span
|
|
450
407
|
style={{
|
|
451
408
|
display: 'inline-block',
|
|
452
|
-
marginLeft: '8px'
|
|
409
|
+
marginLeft: '8px',
|
|
453
410
|
}}
|
|
454
411
|
className={`iconfont icon-zhankai ${infoOpen ? (infoOpen === 'up' ? 'up' : 'down') : ''}`}
|
|
455
412
|
></span>
|
|
@@ -457,7 +414,7 @@ export default function LiosLayout(props: LiosLayoutlProps) {
|
|
|
457
414
|
</Popover>
|
|
458
415
|
</div>
|
|
459
416
|
)}
|
|
460
|
-
<div className=
|
|
417
|
+
<div className="layout-content">{props.children}</div>
|
|
461
418
|
</div>
|
|
462
419
|
</Layout>
|
|
463
420
|
)
|
|
@@ -465,17 +422,10 @@ export default function LiosLayout(props: LiosLayoutlProps) {
|
|
|
465
422
|
|
|
466
423
|
function Arrow({ collapsed, type }: { collapsed?: boolean; type?: string }) {
|
|
467
424
|
return (
|
|
468
|
-
<svg
|
|
469
|
-
style={{ transform: !collapsed ? 'rotate(180deg)' : 'rotate(0deg)' }}
|
|
470
|
-
viewBox='0 0 1024 1024'
|
|
471
|
-
version='1.1'
|
|
472
|
-
xmlns='http://www.w3.org/2000/svg'
|
|
473
|
-
width='20'
|
|
474
|
-
height='20'
|
|
475
|
-
>
|
|
425
|
+
<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">
|
|
476
426
|
<path
|
|
477
|
-
fill=
|
|
478
|
-
d=
|
|
427
|
+
fill="817F9B"
|
|
428
|
+
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"
|
|
479
429
|
></path>
|
|
480
430
|
</svg>
|
|
481
431
|
)
|
|
@@ -492,10 +442,7 @@ type SearchProps = {
|
|
|
492
442
|
function Search({ menuList, collapsed, type, umiHistory, setSelectKey, findKeyPath }: SearchProps) {
|
|
493
443
|
useEffect(() => {
|
|
494
444
|
const handleKeyDown = (event: KeyboardEvent) => {
|
|
495
|
-
if (
|
|
496
|
-
(navigator.platform.toLowerCase().includes('mac') ? event.metaKey : event.ctrlKey) &&
|
|
497
|
-
event.key.toLowerCase() === 'k'
|
|
498
|
-
) {
|
|
445
|
+
if ((navigator.platform.toLowerCase().includes('mac') ? event.metaKey : event.ctrlKey) && event.key.toLowerCase() === 'k') {
|
|
499
446
|
event.preventDefault()
|
|
500
447
|
const searchInput = document.querySelector('#menu-input') as HTMLInputElement
|
|
501
448
|
if (searchInput) {
|
|
@@ -554,7 +501,7 @@ function Search({ menuList, collapsed, type, umiHistory, setSelectKey, findKeyPa
|
|
|
554
501
|
search(menuList as Router[])
|
|
555
502
|
setSearchResult(searchResults)
|
|
556
503
|
function search(data: Router[]) {
|
|
557
|
-
data.forEach(item => {
|
|
504
|
+
data.forEach((item) => {
|
|
558
505
|
if (typeof item.label === 'string' && item.label.includes(value.toLocaleUpperCase())) {
|
|
559
506
|
searchResults.push(item)
|
|
560
507
|
}
|
|
@@ -568,7 +515,7 @@ function Search({ menuList, collapsed, type, umiHistory, setSelectKey, findKeyPa
|
|
|
568
515
|
const enter = (item: Router) => {
|
|
569
516
|
setIsFocused(false)
|
|
570
517
|
//如果搜索历史里面有这个item,就不再添加
|
|
571
|
-
if (searchHistory.findIndex(i => i.key === item.key) === -1) {
|
|
518
|
+
if (searchHistory.findIndex((i) => i.key === item.key) === -1) {
|
|
572
519
|
setSearchHistory([...searchHistory, item])
|
|
573
520
|
}
|
|
574
521
|
//如果是目录就找到目录下第一个菜单进入
|
|
@@ -595,60 +542,45 @@ function Search({ menuList, collapsed, type, umiHistory, setSelectKey, findKeyPa
|
|
|
595
542
|
}
|
|
596
543
|
|
|
597
544
|
const deleteHistory = (item: Router) => {
|
|
598
|
-
setSearchHistory(searchHistory.filter(i => i.key !== item.key))
|
|
545
|
+
setSearchHistory(searchHistory.filter((i) => i.key !== item.key))
|
|
599
546
|
}
|
|
600
547
|
return (
|
|
601
548
|
<>
|
|
602
549
|
{collapsed ? (
|
|
603
|
-
<div className=
|
|
604
|
-
<div className=
|
|
605
|
-
<svg
|
|
606
|
-
viewBox='0 0 1024 1024'
|
|
607
|
-
version='1.1'
|
|
608
|
-
xmlns='http://www.w3.org/2000/svg'
|
|
609
|
-
width='18'
|
|
610
|
-
height='18'
|
|
611
|
-
>
|
|
550
|
+
<div className="search-mobile-console">
|
|
551
|
+
<div className="search-icon">
|
|
552
|
+
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="18" height="18">
|
|
612
553
|
<path
|
|
613
554
|
fill={type === 'console' ? '#C2B7F6' : '#817F9B'}
|
|
614
|
-
d=
|
|
555
|
+
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"
|
|
615
556
|
></path>
|
|
616
557
|
</svg>
|
|
617
558
|
</div>
|
|
618
559
|
</div>
|
|
619
560
|
) : (
|
|
620
|
-
<div className=
|
|
621
|
-
<div className=
|
|
622
|
-
<div className=
|
|
623
|
-
<img src=
|
|
561
|
+
<div className="search-container">
|
|
562
|
+
<div className="search">
|
|
563
|
+
<div className="search-bg-mask">
|
|
564
|
+
<img src="https://cfel-front.oss-cn-hangzhou.aliyuncs.com/logo/base-component/menu-search-bg.png" />
|
|
624
565
|
</div>
|
|
625
566
|
<input
|
|
626
|
-
autoComplete=
|
|
627
|
-
id=
|
|
567
|
+
autoComplete="off"
|
|
568
|
+
id="menu-input"
|
|
628
569
|
value={searchTerm}
|
|
629
|
-
onChange={e => handleSearch(e.target.value)}
|
|
630
|
-
className=
|
|
631
|
-
placeholder=
|
|
570
|
+
onChange={(e) => handleSearch(e.target.value)}
|
|
571
|
+
className="search-input"
|
|
572
|
+
placeholder="搜索菜单..."
|
|
632
573
|
onFocus={() => setIsFocused(true)}
|
|
633
574
|
/>
|
|
634
|
-
<div className=
|
|
635
|
-
<svg
|
|
636
|
-
viewBox='0 0 1024 1024'
|
|
637
|
-
version='1.1'
|
|
638
|
-
xmlns='http://www.w3.org/2000/svg'
|
|
639
|
-
width='18'
|
|
640
|
-
height='18'
|
|
641
|
-
>
|
|
575
|
+
<div className="search-icon">
|
|
576
|
+
<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="18" height="18">
|
|
642
577
|
<path
|
|
643
578
|
fill={type === 'console' ? '#C2B7F6' : '#817F9B'}
|
|
644
|
-
d=
|
|
579
|
+
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"
|
|
645
580
|
></path>
|
|
646
581
|
</svg>
|
|
647
582
|
</div>
|
|
648
|
-
<div
|
|
649
|
-
className='search-command'
|
|
650
|
-
style={{ width: navigator.platform.toLowerCase().includes('mac') ? '' : '50px' }}
|
|
651
|
-
>
|
|
583
|
+
<div className="search-command" style={{ width: navigator.platform.toLowerCase().includes('mac') ? '' : '50px' }}>
|
|
652
584
|
{navigator.platform.toLowerCase().includes('mac') ? '⌘' : 'Ctrl+'}K
|
|
653
585
|
</div>
|
|
654
586
|
</div>
|
|
@@ -656,32 +588,23 @@ function Search({ menuList, collapsed, type, umiHistory, setSelectKey, findKeyPa
|
|
|
656
588
|
{isFocused && (
|
|
657
589
|
<>
|
|
658
590
|
{searchTerm ? (
|
|
659
|
-
<List
|
|
660
|
-
split={false}
|
|
661
|
-
className='lists'
|
|
662
|
-
size='small'
|
|
663
|
-
bordered
|
|
664
|
-
dataSource={searchResult}
|
|
665
|
-
renderItem={item => (
|
|
666
|
-
<List.Item onClick={() => enter(item)}>{item.label}</List.Item>
|
|
667
|
-
)}
|
|
668
|
-
/>
|
|
591
|
+
<List split={false} className="lists" size="small" bordered dataSource={searchResult} renderItem={(item) => <List.Item onClick={() => enter(item)}>{item.label}</List.Item>} />
|
|
669
592
|
) : (
|
|
670
593
|
<List
|
|
671
594
|
split={false}
|
|
672
|
-
className=
|
|
673
|
-
header=
|
|
674
|
-
size=
|
|
595
|
+
className="lists"
|
|
596
|
+
header="最近访问"
|
|
597
|
+
size="small"
|
|
675
598
|
bordered
|
|
676
599
|
dataSource={searchHistory}
|
|
677
|
-
renderItem={item => {
|
|
600
|
+
renderItem={(item) => {
|
|
678
601
|
return (
|
|
679
602
|
<div
|
|
680
603
|
className={'search-item'}
|
|
681
604
|
style={{
|
|
682
605
|
display: 'flex',
|
|
683
606
|
justifyContent: 'space-between',
|
|
684
|
-
alignItems: 'center'
|
|
607
|
+
alignItems: 'center',
|
|
685
608
|
}}
|
|
686
609
|
>
|
|
687
610
|
<List.Item onClick={() => enter(item)}>{item.label}</List.Item>
|
|
@@ -21,6 +21,8 @@ ul {
|
|
|
21
21
|
margin: 0;
|
|
22
22
|
list-style: none;
|
|
23
23
|
cursor: pointer;
|
|
24
|
+
position: relative;
|
|
25
|
+
z-index: 90;
|
|
24
26
|
|
|
25
27
|
.#{$menuPrefixCls}-submenu-arrow {
|
|
26
28
|
display: inline-block;
|
|
@@ -89,6 +91,20 @@ ul {
|
|
|
89
91
|
|
|
90
92
|
|
|
91
93
|
> li {
|
|
94
|
+
.first-li {
|
|
95
|
+
&:hover {
|
|
96
|
+
.menu-item-icon {
|
|
97
|
+
color: #fff;
|
|
98
|
+
font-weight: 500;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.menu-item-label {
|
|
102
|
+
color: #fff;
|
|
103
|
+
font-weight: 500;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
92
108
|
&:hover {
|
|
93
109
|
> .menu-item-content {
|
|
94
110
|
.menu-item-icon,
|
|
@@ -363,7 +379,6 @@ ul {
|
|
|
363
379
|
&:hover {
|
|
364
380
|
> .menu-item-content {
|
|
365
381
|
.menu-item-icon,
|
|
366
|
-
.iconfont,
|
|
367
382
|
.menu-item-label {
|
|
368
383
|
color: #fff;
|
|
369
384
|
}
|
|
@@ -534,6 +549,7 @@ body {
|
|
|
534
549
|
}
|
|
535
550
|
|
|
536
551
|
.layout-side-mask2-console {
|
|
552
|
+
z-index: 10;
|
|
537
553
|
background: linear-gradient(227deg, #7856e6 0%, #6a6ed2 0%, #0271c3 100%) !important;
|
|
538
554
|
border: 2px solid #ffffff;
|
|
539
555
|
position: absolute;
|