|
|
@ -4,6 +4,7 @@ import {useEffect, useState} from "react"; |
|
|
|
import api from "../../request/api/edit"; |
|
|
|
import api from "../../request/api/edit"; |
|
|
|
import { Modal, Form, Input, Button, message, Menu, Popconfirm, Drawer, Upload } from 'antd' |
|
|
|
import { Modal, Form, Input, Button, message, Menu, Popconfirm, Drawer, Upload } from 'antd' |
|
|
|
import {DeleteOutlined, EditOutlined, PlusOutlined} from "@ant-design/icons"; |
|
|
|
import {DeleteOutlined, EditOutlined, PlusOutlined} from "@ant-design/icons"; |
|
|
|
|
|
|
|
import {render as renderAmis} from 'amis'; |
|
|
|
|
|
|
|
|
|
|
|
export default function Home(){ |
|
|
|
export default function Home(){ |
|
|
|
const navigate = useNavigate() |
|
|
|
const navigate = useNavigate() |
|
|
@ -14,8 +15,9 @@ export default function Home(){ |
|
|
|
function gotoBackManagement(){ |
|
|
|
function gotoBackManagement(){ |
|
|
|
window.location.href = '/' |
|
|
|
window.location.href = '/' |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
const routeData = useLocation() |
|
|
|
|
|
|
|
|
|
|
|
console.log(useLocation().pathname) |
|
|
|
const [amisJSON, setAmisJSON] = useState(null) |
|
|
|
|
|
|
|
|
|
|
|
// 刷新 |
|
|
|
// 刷新 |
|
|
|
const [reflush, setReflush] = useState(true) |
|
|
|
const [reflush, setReflush] = useState(true) |
|
|
@ -30,19 +32,12 @@ export default function Home(){ |
|
|
|
const [openKeys, setOpenKeys] = useState([]); |
|
|
|
const [openKeys, setOpenKeys] = useState([]); |
|
|
|
// 当前菜单ID |
|
|
|
// 当前菜单ID |
|
|
|
const [nowMenuItemId, setNowMenuItemId] = useState('') |
|
|
|
const [nowMenuItemId, setNowMenuItemId] = useState('') |
|
|
|
// 当前菜单内容 |
|
|
|
|
|
|
|
const [nowMenuItemContent, setNowMenuItemContent] = useState(null); |
|
|
|
|
|
|
|
// 当前页内容 |
|
|
|
|
|
|
|
const [nowEditorContent, setNowEditorContent] = useState({ |
|
|
|
|
|
|
|
asideResizor: false, |
|
|
|
|
|
|
|
pullRefresh: {disabled: true}, |
|
|
|
|
|
|
|
regions: ['body'] |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
useEffect(() => { |
|
|
|
api.getMenu().then( |
|
|
|
api.getMenu().then( |
|
|
|
resd => { |
|
|
|
resd => { |
|
|
|
if(resd.data.code == 200){ |
|
|
|
if(resd.data.code == 200){ |
|
|
|
setMenuList(formateMenuToList([...resd.data.data])) |
|
|
|
const list = formateMenuToList([...resd.data.data]) |
|
|
|
|
|
|
|
setMenuList(list) |
|
|
|
setAtomMenuList([...resd.data.data]) |
|
|
|
setAtomMenuList([...resd.data.data]) |
|
|
|
}else{ |
|
|
|
}else{ |
|
|
|
messageApi.open({ |
|
|
|
messageApi.open({ |
|
|
@ -59,8 +54,32 @@ export default function Home(){ |
|
|
|
setMenuTree(list) |
|
|
|
setMenuTree(list) |
|
|
|
}, [atomMenuList]) |
|
|
|
}, [atomMenuList]) |
|
|
|
useEffect(() => { |
|
|
|
useEffect(() => { |
|
|
|
console.log(menuList[0]) |
|
|
|
console.log(menuList) |
|
|
|
menuList[0] && setNowMenuItemId([menuList[0].id]) |
|
|
|
console.log(routeData) |
|
|
|
|
|
|
|
const pathname = routeData.pathname |
|
|
|
|
|
|
|
const truePath = routeData.pathname == '/amis' || routeData.pathname == '/amis/' |
|
|
|
|
|
|
|
console.log(truePath) |
|
|
|
|
|
|
|
if(truePath && routeData.hash == ''){ |
|
|
|
|
|
|
|
const indexPage = menuList.find(item => item.name=='首页') |
|
|
|
|
|
|
|
if(!indexPage) return; |
|
|
|
|
|
|
|
indexPage && setNowMenuItemId([indexPage.id]) |
|
|
|
|
|
|
|
const p = indexPage.menuContentList.find(item => item.type == '0') |
|
|
|
|
|
|
|
indexPage && setAmisJSON(JSON.parse(p.content)) |
|
|
|
|
|
|
|
}else if(truePath && routeData.hash != ''){ |
|
|
|
|
|
|
|
const pageId = routeData.hash.split('#')[1] |
|
|
|
|
|
|
|
const indexPage = menuList.find(item => item.id == pageId) |
|
|
|
|
|
|
|
setAmisJSON(0) |
|
|
|
|
|
|
|
if(!indexPage) return; |
|
|
|
|
|
|
|
indexPage && setNowMenuItemId([indexPage.id]) |
|
|
|
|
|
|
|
if(indexPage.menuContentList.length == 0){ |
|
|
|
|
|
|
|
setAmisJSON(0) |
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
}else{ |
|
|
|
|
|
|
|
const p = indexPage.menuContentList.find(item => item.type == '0') |
|
|
|
|
|
|
|
indexPage && setAmisJSON(JSON.parse(p.content)) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
}, [menuList]) |
|
|
|
}, [menuList]) |
|
|
|
|
|
|
|
|
|
|
|
// 格式化菜单数据 |
|
|
|
// 格式化菜单数据 |
|
|
@ -101,20 +120,17 @@ export default function Home(){ |
|
|
|
}; |
|
|
|
}; |
|
|
|
// 选中菜单 |
|
|
|
// 选中菜单 |
|
|
|
function onSelectMenu(val){ |
|
|
|
function onSelectMenu(val){ |
|
|
|
|
|
|
|
if(nowMenuItemId == val.key) return |
|
|
|
|
|
|
|
navigate('/amis#' + val.key) |
|
|
|
const menuItemData =val.item.props.data; |
|
|
|
const menuItemData =val.item.props.data; |
|
|
|
|
|
|
|
console.log(menuItemData) |
|
|
|
if(menuItemData.menuContentList.length == 0){ |
|
|
|
if(menuItemData.menuContentList.length == 0){ |
|
|
|
setNowEditorContent({ |
|
|
|
setAmisJSON(0) |
|
|
|
asideResizor: false, |
|
|
|
|
|
|
|
pullRefresh: {disabled: true}, |
|
|
|
|
|
|
|
regions: ['body'] |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
}else{ |
|
|
|
}else{ |
|
|
|
const nowEditData = menuItemData.menuContentList.find(item => item.type == '0') |
|
|
|
const p = menuItemData.menuContentList.find(item => item.type == '0') |
|
|
|
const data = JSON.parse(nowEditData.content) |
|
|
|
menuItemData && setAmisJSON(JSON.parse(p.content)) |
|
|
|
setNowEditorContent(data) |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
setNowMenuItemId(val.key) |
|
|
|
setNowMenuItemId(val.key) |
|
|
|
setNowMenuItemContent(val.item.props.data) |
|
|
|
|
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
return <div className={css.main}> |
|
|
|
return <div className={css.main}> |
|
|
@ -143,10 +159,8 @@ export default function Home(){ |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</header> |
|
|
|
</header> |
|
|
|
<div className={css.body}> |
|
|
|
<div className={css.body}> |
|
|
|
{ useLocation().pathname != '/amis' && <Outlet></Outlet>} |
|
|
|
{ useLocation().pathname != '/amis' && useLocation().pathname != '/amis/' && <Outlet></Outlet>} |
|
|
|
{ useLocation().pathname == '/amis' && <div> |
|
|
|
{ useLocation().pathname == '/amis' || useLocation().pathname == '/amis/' && (amisJSON ? renderAmis(amisJSON) : amisJSON == 0 ? <div className={css.center}>未找到该页面</div> : <div>加载中</div>)} |
|
|
|
哈哈哈 |
|
|
|
|
|
|
|
</div>} |
|
|
|
|
|
|
|
</div> |
|
|
|
</div> |
|
|
|
{contextHolder} |
|
|
|
{contextHolder} |
|
|
|
</div> |
|
|
|
</div> |
|
|
|