diff --git a/src/main.jsx b/src/main.jsx index d102b9d..1137296 100644 --- a/src/main.jsx +++ b/src/main.jsx @@ -37,3 +37,4 @@ ReactDOM.render( , document.getElementById('root')); // node -v 18.16.0 + diff --git a/src/pages/Edit/index.jsx b/src/pages/Edit/index.jsx index 1014acc..68c23de 100644 --- a/src/pages/Edit/index.jsx +++ b/src/pages/Edit/index.jsx @@ -175,6 +175,7 @@ export default function Edit(){ }; // 选中菜单 function onSelectMenu(val){ + if(nowMenuItemId == val.key) return const menuItemData =val.item.props.data; if(menuItemData.menuContentList.length == 0){ setNowEditorContent({ @@ -366,9 +367,16 @@ export default function Edit(){ api.saveFileUrl(fileData).then( resd => { if(resd.data.code == 200){ + filePage.pageNum = 1; api.getFileList(filePage).then( resd => { + // console.log(resd.data.data.rows) setFileCloud(resd.data.data.rows) + setFilePage({ + pageNum: filePage.pageNum, + pageSize: filePage.pageSize, + total: resd.data.data.total, + }) } ) }else{ @@ -422,10 +430,37 @@ export default function Edit(){ ) e.stopPropagation() } - // 赋值文件地址 + // 复制文本 + function copyText (text) { + let inputDom = document.createElement('input'); // 创建一个input元素 + inputDom.setAttribute('readonly', 'readonly'); // 防止手机上弹出软键盘 + inputDom.value = text; // 给input元素赋值 + document.body.appendChild(inputDom); // 添加到body + inputDom.select(); //选中input元素的内容 + document.execCommand('Copy'); // 执行浏览器复制命令 + inputDom.style.display = 'none'; + inputDom.remove(); // 移除input元素 + } + // 复制文件地址 function copyFilePath(url){ - navigator.clipboard.writeText(url) - message.success(`复制文件成功成功,可在编辑器内粘贴使用!`); + console.log(url) + const text = url; + try{ + let inputDom = document.createElement('input'); // 创建一个input元素 + inputDom.setAttribute('readonly', 'readonly'); // 防止手机上弹出软键盘 + inputDom.value = text; // 给input元素赋值 + document.body.appendChild(inputDom); // 添加到body + inputDom.select(); //选中input元素的内容 + document.execCommand('Copy'); // 执行浏览器复制命令 + inputDom.style.display = 'none'; + inputDom.remove(); // 移除input元素 + // navigator.clipboard.writeText(url) + message.success(`复制文件地址成功,可在编辑器内粘贴使用!`); + }catch (e) { + console.log(navigator) + console.log(e) + message.error(`复制文件地址失败,请联系系统管理员!`) + } } // 监听编辑器内容变化 diff --git a/src/pages/Home/index.jsx b/src/pages/Home/index.jsx index 0a62d69..a8c5da8 100644 --- a/src/pages/Home/index.jsx +++ b/src/pages/Home/index.jsx @@ -4,6 +4,7 @@ import {useEffect, useState} from "react"; import api from "../../request/api/edit"; import { Modal, Form, Input, Button, message, Menu, Popconfirm, Drawer, Upload } from 'antd' import {DeleteOutlined, EditOutlined, PlusOutlined} from "@ant-design/icons"; +import {render as renderAmis} from 'amis'; export default function Home(){ const navigate = useNavigate() @@ -14,8 +15,9 @@ export default function Home(){ function gotoBackManagement(){ window.location.href = '/' } + const routeData = useLocation() - console.log(useLocation().pathname) + const [amisJSON, setAmisJSON] = useState(null) // 刷新 const [reflush, setReflush] = useState(true) @@ -30,19 +32,12 @@ export default function Home(){ const [openKeys, setOpenKeys] = useState([]); // 当前菜单ID const [nowMenuItemId, setNowMenuItemId] = useState('') - // 当前菜单内容 - const [nowMenuItemContent, setNowMenuItemContent] = useState(null); - // 当前页内容 - const [nowEditorContent, setNowEditorContent] = useState({ - asideResizor: false, - pullRefresh: {disabled: true}, - regions: ['body'] - }); useEffect(() => { api.getMenu().then( resd => { if(resd.data.code == 200){ - setMenuList(formateMenuToList([...resd.data.data])) + const list = formateMenuToList([...resd.data.data]) + setMenuList(list) setAtomMenuList([...resd.data.data]) }else{ messageApi.open({ @@ -59,8 +54,32 @@ export default function Home(){ setMenuTree(list) }, [atomMenuList]) useEffect(() => { - console.log(menuList[0]) - menuList[0] && setNowMenuItemId([menuList[0].id]) + console.log(menuList) + 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]) // 格式化菜单数据 @@ -101,20 +120,17 @@ export default function Home(){ }; // 选中菜单 function onSelectMenu(val){ + if(nowMenuItemId == val.key) return + navigate('/amis#' + val.key) const menuItemData =val.item.props.data; + console.log(menuItemData) if(menuItemData.menuContentList.length == 0){ - setNowEditorContent({ - asideResizor: false, - pullRefresh: {disabled: true}, - regions: ['body'] - }) + setAmisJSON(0) }else{ - const nowEditData = menuItemData.menuContentList.find(item => item.type == '0') - const data = JSON.parse(nowEditData.content) - setNowEditorContent(data) + const p = menuItemData.menuContentList.find(item => item.type == '0') + menuItemData && setAmisJSON(JSON.parse(p.content)) } setNowMenuItemId(val.key) - setNowMenuItemContent(val.item.props.data) }; return
@@ -143,10 +159,8 @@ export default function Home(){
- { useLocation().pathname != '/amis' && } - { useLocation().pathname == '/amis' &&
- 哈哈哈 -
} + { useLocation().pathname != '/amis' && useLocation().pathname != '/amis/' && } + { useLocation().pathname == '/amis' || useLocation().pathname == '/amis/' && (amisJSON ? renderAmis(amisJSON) : amisJSON == 0 ?
未找到该页面
:
加载中
)}
{contextHolder} diff --git a/src/pages/Home/index.module.scss b/src/pages/Home/index.module.scss index dba642f..d8c1c5a 100644 --- a/src/pages/Home/index.module.scss +++ b/src/pages/Home/index.module.scss @@ -85,3 +85,13 @@ overflow: hidden; } } +.center{ + position: relative; + display: flex; + align-items: center; + justify-content: center; + height: 100%; + width: 100%; + font-size: 14px; + color: #555; +} diff --git a/src/scss/style.scss b/src/scss/style.scss index 10e46e5..3d90fc0 100644 --- a/src/scss/style.scss +++ b/src/scss/style.scss @@ -259,3 +259,6 @@ html,body,#root{ overflow-y: auto; } } +.cxd-Page-body{ + padding:0 ; +} diff --git a/vite.config.js b/vite.config.js index 11cba68..e8a66d2 100644 --- a/vite.config.js +++ b/vite.config.js @@ -7,6 +7,17 @@ import { // https://vitejs.dev/config/ export default defineConfig({ + build: { + rollupOptions: { + output: { + // 在这里修改静态资源路径 + chunkFileNames: 'amisStatic/assets/js/[name]-[hash].js', + entryFileNames: 'amisStatic/assets/js/[name]-[hash].js', + assetFileNames: 'amisStatic/assets/[ext]/[name]-[hash].[ext]', + } + } + }, + minify: true, plugins: [react()], resolve: { alias: {