From c9cdbb2f49529ed168ac0e047a432db48464f1b5 Mon Sep 17 00:00:00 2001 From: lyt-Top <1105290566@qq.com> Date: Sat, 27 Feb 2021 18:35:04 +0800 Subject: [PATCH] =?UTF-8?q?'admin-21.02.27:=E6=96=B0=E5=A2=9E=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E7=AE=A1=E7=90=86=E7=9A=84=E6=96=B0=E5=A2=9E=EF=BC=8C?= =?UTF-8?q?=E7=BC=96=E8=BE=91=E9=A1=B5=E9=9D=A2=E3=80=81=E6=A0=B7=E5=BC=8F?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E3=80=81=E5=BC=B9=E7=AA=97=E9=80=82=E9=85=8D?= =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E7=AB=AF=E7=AD=89'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/router/index.ts | 42 ++-- src/theme/element.scss | 10 + src/theme/media/dialog.scss | 9 + src/theme/media/media.scss | 1 + src/views/login/component/account.vue | 7 +- src/views/personal/index.vue | 2 +- src/views/system/menu/component/addMenu.vue | 182 ++++++++++++++++- src/views/system/menu/component/editMenu.vue | 194 ++++++++++++++++++- src/views/system/menu/index.vue | 41 ++-- 9 files changed, 449 insertions(+), 39 deletions(-) create mode 100644 src/theme/media/dialog.scss diff --git a/src/router/index.ts b/src/router/index.ts index 5ca7185..75ec630 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -472,34 +472,38 @@ const router = createRouter({ }) // 后端控制路由,isRequestRoutes 为 true,则开启后端控制路由 -export function getBackEndControlRoutes() { +export function getBackEndControlRoutes(callback: any) { const token = getSession('token') if (!token) return false store.dispatch('setUserInfos') const auth = store.state.userInfos.authPageList[0] // 模拟 admin 与 test if (auth === 'admin') { - return new Promise((resolve, reject) => { - getMenuAdmin().then((res: any) => { - setBackEndControlRoutesFun(res) - if (res.data) resolve(res) - else reject('请求错误') - }) + getMenuAdmin().then((res: any) => { + callback(res) }) } else { - return new Promise((resolve, reject) => { - setTimeout(() => { - getMenuTest().then((res: any) => { - setBackEndControlRoutesFun(res) - if (res.data) resolve(res) - else reject('请求错误') - }) - }, 1000) + getMenuTest().then((res: any) => { + callback(res) }) } } // 后端控制路由,模拟执行路由数据初始化 -export function setBackEndControlRoutesFun(res: any) { +export function setBackEndControlRoutesFun(res: any, callback?: any) { + initBackEndControlRoutesFun(res) + window.location.href = window.location.href // 防止页面刷新时,出现空白或404 + callback(res) +} + +// 后端控制路由,动态添加菜单时(刷新菜单) +export function setBackEndControlRefreshRoutes() { + getBackEndControlRoutes((res: any) => { + initBackEndControlRoutesFun(res) + }) +} + +// 后端控制路由,模拟执行路由数据初始化 +const initBackEndControlRoutesFun = (res: any) => { const oldRoutes = JSON.parse(JSON.stringify(res.data)) store.dispatch('setBackEndControlRoutes', oldRoutes) dynamicRoutes[0].children = backEndRouter(res.data) @@ -508,7 +512,6 @@ export function setBackEndControlRoutesFun(res: any) { setAddRoute() // 添加动态路由 setFilterMenu() // 过滤权限菜单 setCacheTagsViewRoutes() // 添加 keepAlive 缓存 - window.location.href = window.location.href // 防止页面刷新时,出现空白或404 } // 后端控制路由,后端路由 component 转换 @@ -654,9 +657,10 @@ export function initAllFun() { } // 初始化方法执行 -if (!store.state.themeConfig.isRequestRoutes) initAllFun() +const requestRoutes = store.state.themeConfig.isRequestRoutes +if (!requestRoutes) initAllFun() // 后端控制路由,isRequestRoutes 为 true,则开启后端控制路由 -if (store.state.themeConfig.isRequestRoutes) getBackEndControlRoutes() +if (requestRoutes) getBackEndControlRoutes((res: any) => { setBackEndControlRoutesFun(res) }) // 路由加载前 router.beforeEach((to, from, next) => { diff --git a/src/theme/element.scss b/src/theme/element.scss index 181db94..517e80d 100644 --- a/src/theme/element.scss +++ b/src/theme/element.scss @@ -879,6 +879,16 @@ .el-dialog__headerbtn:hover .el-dialog__close { color: set-color(primary); } +.el-overlay { + display: flex; + align-items: center; + .el-dialog { + margin: 0 auto !important; + .el-dialog__body { + padding: 20px !important; + } + } +} /* Card 卡片 ------------------------------- */ diff --git a/src/theme/media/dialog.scss b/src/theme/media/dialog.scss new file mode 100644 index 0000000..9986ee9 --- /dev/null +++ b/src/theme/media/dialog.scss @@ -0,0 +1,9 @@ +@import './index.scss'; + +/* 页面宽度小于800px +------------------------------- */ +@media screen and (max-width: 800px) { + .el-dialog { + width: 90% !important; + } +} diff --git a/src/theme/media/media.scss b/src/theme/media/media.scss index 77f237e..62f19f1 100644 --- a/src/theme/media/media.scss +++ b/src/theme/media/media.scss @@ -8,3 +8,4 @@ @import './form.scss'; @import './scrollbar.scss'; @import './pagination.scss'; +@import './dialog.scss'; diff --git a/src/views/login/component/account.vue b/src/views/login/component/account.vue index 859f0f4..36470d9 100644 --- a/src/views/login/component/account.vue +++ b/src/views/login/component/account.vue @@ -40,6 +40,7 @@ import { setFilterMenu, setCacheTagsViewRoutes, getBackEndControlRoutes, + setBackEndControlRoutesFun, } from "/@/router/index.ts"; import { useStore } from "/@/store/index.ts"; import { setSession } from "/@/utils/storage.ts"; @@ -115,8 +116,10 @@ export default defineComponent({ } // 模拟后端控制路由,isRequestRoutes 为 true,则开启后端控制路由 else { - getBackEndControlRoutes().then((res) => { - signInSuccess(); + getBackEndControlRoutes((res) => { + setBackEndControlRoutesFun(res, (cb) => { + signInSuccess(); + }); }); } }; diff --git a/src/views/personal/index.vue b/src/views/personal/index.vue index a857cf1..b7cea54 100644 --- a/src/views/personal/index.vue +++ b/src/views/personal/index.vue @@ -84,7 +84,7 @@
基本信息
- + diff --git a/src/views/system/menu/component/addMenu.vue b/src/views/system/menu/component/addMenu.vue index 6918ad7..5ea47bc 100644 --- a/src/views/system/menu/component/addMenu.vue +++ b/src/views/system/menu/component/addMenu.vue @@ -1,16 +1,192 @@ \ No newline at end of file + + + \ No newline at end of file diff --git a/src/views/system/menu/component/editMenu.vue b/src/views/system/menu/component/editMenu.vue index 5846c4d..53f9572 100644 --- a/src/views/system/menu/component/editMenu.vue +++ b/src/views/system/menu/component/editMenu.vue @@ -1,16 +1,204 @@ \ No newline at end of file + + + \ No newline at end of file diff --git a/src/views/system/menu/index.vue b/src/views/system/menu/index.vue index b3cd743..4f8282d 100644 --- a/src/views/system/menu/index.vue +++ b/src/views/system/menu/index.vue @@ -9,14 +9,8 @@ {{ scope.row.meta.title }} - - - - - + + + + +