|
|
@ -26,8 +26,7 @@ let scrollbar |
|
|
|
const LayoutContainer = props => { |
|
|
|
const { |
|
|
|
dispatch, msg, user, copyright, children, sections, clientWidth, clientHeight, |
|
|
|
location, match, routes, history, authCrossLoading, socket, |
|
|
|
microAppWaiting |
|
|
|
location, match, routes, history, socket, |
|
|
|
} = props |
|
|
|
const [collapsed, setCollapsed] = useState(false) |
|
|
|
|
|
|
@ -41,32 +40,32 @@ const LayoutContainer = props => { |
|
|
|
} |
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
let topItems=[]//头部导航 |
|
|
|
let siderItems=[]//侧边导航 |
|
|
|
for (let c of sections) { |
|
|
|
if (typeof c.getNavItem == 'function') { |
|
|
|
let item = c.getNavItem(user, dispatch); |
|
|
|
if (item) { |
|
|
|
if(item.length>0){ |
|
|
|
let itm = JSON.parse(JSON.stringify(item[0])); |
|
|
|
let itms = JSON.parse(JSON.stringify(item[0])); |
|
|
|
if(itm.hasOwnProperty('items')){ |
|
|
|
siderItems.push.apply(siderItems,itms.items) |
|
|
|
for (let i = 0; i < itm.items.length; i++) { |
|
|
|
delete itm.items[i].items |
|
|
|
let topItems = []//头部导航 |
|
|
|
let siderItems = []//侧边导航 |
|
|
|
for (let c of sections) { |
|
|
|
if (typeof c.getNavItem == 'function') { |
|
|
|
let item = c.getNavItem(user, dispatch); |
|
|
|
if (item) { |
|
|
|
if (item.length > 0) { |
|
|
|
let itm = JSON.parse(JSON.stringify(item[0])); |
|
|
|
let itms = JSON.parse(JSON.stringify(item[0])); |
|
|
|
if (itm.hasOwnProperty('items')) { |
|
|
|
siderItems.push.apply(siderItems, itms.items) |
|
|
|
for (let i = 0; i < itm.items.length; i++) { |
|
|
|
delete itm.items[i].items |
|
|
|
} |
|
|
|
topItems.push(itm) |
|
|
|
} |
|
|
|
topItems.push(itm) |
|
|
|
} |
|
|
|
else{ |
|
|
|
topItems.push.apply(topItems, item) |
|
|
|
} |
|
|
|
} |
|
|
|
else { |
|
|
|
topItems.push.apply(topItems, item) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
console.log('siderItems',siderItems); |
|
|
|
console.log('topItems',topItems); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
console.log('siderItems', siderItems); |
|
|
|
console.log('topItems', topItems); |
|
|
|
|
|
|
|
window.addEventListener('resize', resize_); |
|
|
|
return () => { |
|
|
@ -76,7 +75,7 @@ const LayoutContainer = props => { |
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
NProgress.done(); |
|
|
|
if ((!user || !user.authorized) && !authCrossLoading) { |
|
|
|
if ((!user || !user.authorized)) { |
|
|
|
history.push('/signin'); |
|
|
|
} |
|
|
|
if (msg) { |
|
|
@ -138,68 +137,53 @@ const LayoutContainer = props => { |
|
|
|
return ( |
|
|
|
<Layout id="layout" style={{ height: '100%' }}> |
|
|
|
{ |
|
|
|
authCrossLoading || microAppWaiting ? |
|
|
|
<div style={{ |
|
|
|
// position: 'absolute', |
|
|
|
height: '100%', width: '100%', |
|
|
|
display: 'flex', alignItems: 'center', placeContent: 'center', |
|
|
|
backgroundColor: "#000" |
|
|
|
}}> |
|
|
|
<video |
|
|
|
autoPlay loop muted |
|
|
|
style={{}} |
|
|
|
src={`${__webpack_public_path__}assets/video/cross_loading.mp4`} |
|
|
|
type="video/mp4" |
|
|
|
<> |
|
|
|
<Layout.Header> |
|
|
|
<Header |
|
|
|
user={user} |
|
|
|
pathname={location.pathname} |
|
|
|
toggleCollapsed={() => { |
|
|
|
setCollapsed(!collapsed); |
|
|
|
}} |
|
|
|
collapsed={collapsed} |
|
|
|
history={history} |
|
|
|
/> |
|
|
|
</div> |
|
|
|
: |
|
|
|
<> |
|
|
|
<Layout.Header> |
|
|
|
<Header |
|
|
|
</Layout.Header> |
|
|
|
<Layout style={{ height: 'calc(100% - 60px)' }}> |
|
|
|
<Layout.Sider> |
|
|
|
<Sider |
|
|
|
sections={sections} |
|
|
|
dispatch={dispatch} |
|
|
|
user={user} |
|
|
|
pathname={location.pathname} |
|
|
|
toggleCollapsed={() => { |
|
|
|
setCollapsed(!collapsed); |
|
|
|
}} |
|
|
|
collapsed={collapsed} |
|
|
|
history={history} |
|
|
|
/> |
|
|
|
</Layout.Header> |
|
|
|
<Layout style={{ height: 'calc(100% - 60px)' }}> |
|
|
|
<Layout.Sider> |
|
|
|
<Sider |
|
|
|
sections={sections} |
|
|
|
dispatch={dispatch} |
|
|
|
user={user} |
|
|
|
pathname={location.pathname} |
|
|
|
collapsed={collapsed} |
|
|
|
/> |
|
|
|
</Layout.Sider> |
|
|
|
<Layout.Content> |
|
|
|
<div style={{ |
|
|
|
margin: '12px 12px 0px', |
|
|
|
background: "#F6FAFF", |
|
|
|
</Layout.Sider> |
|
|
|
<Layout.Content> |
|
|
|
<div style={{ |
|
|
|
margin: '12px 12px 0px', |
|
|
|
background: "#F6FAFF", |
|
|
|
}}> |
|
|
|
<div id="page-content" style={{ |
|
|
|
height: clientHeight - 12, |
|
|
|
minWidth: 520, |
|
|
|
position: 'relative', |
|
|
|
}}> |
|
|
|
<div id="page-content" style={{ |
|
|
|
height: clientHeight - 12, |
|
|
|
minWidth: 520, |
|
|
|
<div style={{ |
|
|
|
minHeight: clientHeight - 32 - 12, |
|
|
|
position: 'relative', |
|
|
|
padding: '12px 8px', |
|
|
|
}}> |
|
|
|
<div style={{ |
|
|
|
minHeight: clientHeight - 32 - 12, |
|
|
|
position: 'relative', |
|
|
|
padding: '12px 8px', |
|
|
|
}}> |
|
|
|
{children} |
|
|
|
</div> |
|
|
|
<Layout.Footer> |
|
|
|
<Footer /> |
|
|
|
</Layout.Footer> |
|
|
|
{children} |
|
|
|
</div> |
|
|
|
<Layout.Footer> |
|
|
|
<Footer /> |
|
|
|
</Layout.Footer> |
|
|
|
</div> |
|
|
|
</Layout.Content> |
|
|
|
</Layout> |
|
|
|
</> |
|
|
|
</div> |
|
|
|
</Layout.Content> |
|
|
|
</Layout> |
|
|
|
</> |
|
|
|
} |
|
|
|
</Layout > |
|
|
|
) |
|
|
|