feat(web): 调整侧边栏实现

This commit is contained in:
v-zhangjc9
2025-07-04 10:54:45 +08:00
parent d979b3941d
commit 4f1dc84405

View File

@@ -1,7 +1,7 @@
import {type AppItemProps, ProLayout} from '@ant-design/pro-components' import {type AppItemProps, ProLayout} from '@ant-design/pro-components'
import {ConfigProvider} from 'antd' import {ConfigProvider} from 'antd'
import {dateFormat} from 'licia' import {dateFormat} from 'licia'
import React, {useMemo} from 'react' import React, {useMemo, useState} from 'react'
import {Outlet, useLocation, useNavigate} from 'react-router' import {Outlet, useLocation, useNavigate} from 'react-router'
import styled from 'styled-components' import styled from 'styled-components'
import {menus} from '../route.tsx' import {menus} from '../route.tsx'
@@ -14,7 +14,7 @@ const ProLayoutDiv = styled.div`
margin: 0; margin: 0;
.ant-menu-sub > .ant-menu-item { .ant-menu-sub > .ant-menu-item {
padding-left: 16px !important; //padding-left: 28px !important;
} }
` `
@@ -52,10 +52,13 @@ const apps: AppItemProps[] = [
const App: React.FC = () => { const App: React.FC = () => {
const navigate = useNavigate() const navigate = useNavigate()
const location = useLocation() const location = useLocation()
const [collapsed, setCollapsed] = useState<boolean>(false)
const currentYear = useMemo(() => dateFormat(new Date(), 'yyyy'), []) const currentYear = useMemo(() => dateFormat(new Date(), 'yyyy'), [])
return ( return (
<ProLayoutDiv> <ProLayoutDiv>
<ProLayout <ProLayout
collapsed={collapsed}
onCollapse={setCollapsed}
siderWidth={180} siderWidth={180}
token={{ token={{
colorTextAppListIcon: '#dfdfdf', colorTextAppListIcon: '#dfdfdf',
@@ -78,7 +81,6 @@ const App: React.FC = () => {
}, },
}} }}
appList={apps} appList={apps}
defaultCollapsed={false}
breakpoint={false} breakpoint={false}
disableMobile={true} disableMobile={true}
logo={<img src="icon.png" alt="logo"/>} logo={<img src="icon.png" alt="logo"/>}
@@ -86,11 +88,12 @@ const App: React.FC = () => {
route={menus} route={menus}
location={{pathname: location.pathname}} location={{pathname: location.pathname}}
menu={{type: 'sub'}} menu={{type: 'sub'}}
menuItemRender={(item) => { menuItemRender={(item, defaultDom) => {
return ( return (
<div onClick={() => navigate(item.path || '/')}> <div onClick={() => navigate(item.path || '/')}>
{item.icon} {/*<span className="align-center">{item.icon}</span>*/}
<span className="ml-2">{item.name}</span> {/*<span className="ml-2">{item.name}</span>*/}
{defaultDom}
</div> </div>
) )
}} }}