From 097f87317f70028d01feec7b2fd94f0b52c730fc Mon Sep 17 00:00:00 2001 From: lyt <1105290566@qq.com> Date: Thu, 4 Feb 2021 18:13:03 +0800 Subject: [PATCH] =?UTF-8?q?'admin-21.02.04:=E5=A4=84=E7=90=86=E5=88=86?= =?UTF-8?q?=E6=A0=8F=E5=B8=83=E5=B1=80=E8=8F=9C=E5=8D=95=E9=AB=98=E4=BA=AE?= =?UTF-8?q?=E3=80=81=E7=BC=96=E5=86=99=E7=94=A8=E6=88=B7=E6=8C=89=E9=92=AE?= =?UTF-8?q?=E6=9D=83=E9=99=90=E7=BB=84=E4=BB=B6'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/components/auth/auth.vue | 29 ++++ .../src/views/components/auth/authAll.vue | 31 +++++ .../src/views/components/auth/auths.vue | 35 +++++ .../src/views/components/index.vue | 21 --- .../src/views/layout/component/aside.vue | 6 +- .../views/layout/component/columnsAside.vue | 31 ++++- .../views/layout/navBars/breadcrumb/index.vue | 15 +-- .../layout/navBars/tagsView/tagsView.vue | 2 + .../src/views/layout/navMenu/horizontal.vue | 35 ++++- .../src/views/layout/routerView/iframes.vue | 5 +- .../src/views/layout/routerView/parent.vue | 4 +- .../src/views/limits/frontEnd/btn/index.vue | 124 +++++++++++++++++- .../src/views/limits/frontEnd/page/index.vue | 18 ++- .../src/views/login/component/account.vue | 3 +- 14 files changed, 309 insertions(+), 50 deletions(-) create mode 100644 vue-admin-wonderful-next/src/views/components/auth/auth.vue create mode 100644 vue-admin-wonderful-next/src/views/components/auth/authAll.vue create mode 100644 vue-admin-wonderful-next/src/views/components/auth/auths.vue delete mode 100644 vue-admin-wonderful-next/src/views/components/index.vue diff --git a/vue-admin-wonderful-next/src/views/components/auth/auth.vue b/vue-admin-wonderful-next/src/views/components/auth/auth.vue new file mode 100644 index 0000000..ab407a2 --- /dev/null +++ b/vue-admin-wonderful-next/src/views/components/auth/auth.vue @@ -0,0 +1,29 @@ + + + \ No newline at end of file diff --git a/vue-admin-wonderful-next/src/views/components/auth/authAll.vue b/vue-admin-wonderful-next/src/views/components/auth/authAll.vue new file mode 100644 index 0000000..cf11de1 --- /dev/null +++ b/vue-admin-wonderful-next/src/views/components/auth/authAll.vue @@ -0,0 +1,31 @@ + + + \ No newline at end of file diff --git a/vue-admin-wonderful-next/src/views/components/auth/auths.vue b/vue-admin-wonderful-next/src/views/components/auth/auths.vue new file mode 100644 index 0000000..876fabd --- /dev/null +++ b/vue-admin-wonderful-next/src/views/components/auth/auths.vue @@ -0,0 +1,35 @@ + + + \ No newline at end of file diff --git a/vue-admin-wonderful-next/src/views/components/index.vue b/vue-admin-wonderful-next/src/views/components/index.vue deleted file mode 100644 index b2b64fe..0000000 --- a/vue-admin-wonderful-next/src/views/components/index.vue +++ /dev/null @@ -1,21 +0,0 @@ - - - \ No newline at end of file diff --git a/vue-admin-wonderful-next/src/views/layout/component/aside.vue b/vue-admin-wonderful-next/src/views/layout/component/aside.vue index 6fdaa6f..be4628a 100644 --- a/vue-admin-wonderful-next/src/views/layout/component/aside.vue +++ b/vue-admin-wonderful-next/src/views/layout/component/aside.vue @@ -108,6 +108,8 @@ export default { // 监听路由的变化,动态赋值给菜单中 watch(store.state, (val) => { if (val.routes.length === state.menuList.length) return false; + let { layout, isClassicSplitMenu } = val.themeConfig; + if (layout === "classic" && isClassicSplitMenu) return false; setFilterRoutes(); }); // 页面加载前 @@ -119,8 +121,10 @@ export default { }); proxy.mittBus.on("setSendClassicChildren", (res) => { let { layout, isClassicSplitMenu } = store.state.themeConfig; - if (layout === "classic" && isClassicSplitMenu) + if (layout === "classic" && isClassicSplitMenu) { + state.menuList = []; state.menuList = res.children; + } }); proxy.mittBus.on("getBreadcrumbIndexSetFilterRoutes", () => { setFilterRoutes(); diff --git a/vue-admin-wonderful-next/src/views/layout/component/columnsAside.vue b/vue-admin-wonderful-next/src/views/layout/component/columnsAside.vue index 4fa883b..a9f39cd 100644 --- a/vue-admin-wonderful-next/src/views/layout/component/columnsAside.vue +++ b/vue-admin-wonderful-next/src/views/layout/component/columnsAside.vue @@ -35,6 +35,7 @@ import { onMounted, nextTick, getCurrentInstance, + watch, } from "vue"; import { useRoute, useRouter, onBeforeRouteUpdate } from "vue-router"; import { useStore } from "/@/store/index.ts"; @@ -51,6 +52,7 @@ export default { columnsAsideList: [], liIndex: 0, difference: 0, + routeSplit: [], }); // 设置高亮样式 const setColumnsAsideStyle = computed(() => { @@ -64,7 +66,7 @@ export default { return "layout-columns-card-active"; }); // 设置菜单高亮位置移动 - const setColumnsAsideMove = (v: Object, k: number) => { + const setColumnsAsideMove = (k: number) => { state.liIndex = k; columnsAsideActiveRef.value.style.top = `${ columnsAsideOffsetTopRefs.value[k].offsetTop + state.difference @@ -72,22 +74,22 @@ export default { }; // 菜单高亮点击事件 const onColumnsAsideMenuClick = (v: Object, k: number) => { - setColumnsAsideMove(v, k); + setColumnsAsideMove(k); let { path, redirect } = v; if (redirect) router.push(redirect); else router.push(path); }; // 设置高亮动态位置 - const onColumnsAsideDown = (v: Object, k: number) => { + const onColumnsAsideDown = (k: number) => { nextTick(() => { - setColumnsAsideMove(v, k); + setColumnsAsideMove(k); }); }; // 设置/过滤路由(非静态路由/是否显示在菜单中) const setFilterRoutes = () => { state.columnsAsideList = filterRoutesFun(store.state.routes); const resData = setSendChildren(route.path); - onColumnsAsideDown(resData.item[0], resData.item[0].k); + onColumnsAsideDown(resData.item[0].k); proxy.mittBus.emit("setSendColumnsChildren", resData); }; // 传送当前子级数据到菜单中 @@ -114,12 +116,31 @@ export default { return item; }); }; + // tagsView 点击时,根据路由查找下标 columnsAsideList,实现左侧菜单高亮 + const setColumnsMenuHighlight = (path) => { + state.routeSplit = path.split("/"); + state.routeSplit.shift(); + const routeFirst = `/${state.routeSplit[0]}`; + const currentSplitRoute = state.columnsAsideList.find( + (v) => v.path === routeFirst + ); + // 延迟拿值,防止取不到 + setTimeout(() => { + onColumnsAsideDown(currentSplitRoute.k); + }, 0); + }; + // 监听路由的变化,动态赋值给菜单中 + watch(store.state, (val) => { + if (val.routes.length === state.columnsAsideList.length) return false; + setFilterRoutes(); + }); // 页面加载时 onMounted(() => { setFilterRoutes(); }); // 路由更新时 onBeforeRouteUpdate((to) => { + setColumnsMenuHighlight(to.path); proxy.mittBus.emit("setSendColumnsChildren", setSendChildren(to.path)); }); return { diff --git a/vue-admin-wonderful-next/src/views/layout/navBars/breadcrumb/index.vue b/vue-admin-wonderful-next/src/views/layout/navBars/breadcrumb/index.vue index 199192c..2de6c35 100644 --- a/vue-admin-wonderful-next/src/views/layout/navBars/breadcrumb/index.vue +++ b/vue-admin-wonderful-next/src/views/layout/navBars/breadcrumb/index.vue @@ -15,8 +15,9 @@ import { onMounted, onUnmounted, getCurrentInstance, + watch, } from "vue"; -import { useRoute, onBeforeRouteUpdate } from "vue-router"; +import { useRoute } from "vue-router"; import { useStore } from "/@/store/index.ts"; import Breadcrumb from "/@/views/layout/navBars/breadcrumb/breadcrumb.vue"; import User from "/@/views/layout/navBars/breadcrumb/user.vue"; @@ -95,6 +96,11 @@ export default { }); return currentData; }; + // 监听路由的变化,动态赋值给菜单中 + watch(store.state, (val) => { + if (val.routes.length === state.menuList.length) return false; + setFilterRoutes(); + }); // 页面加载时 onMounted(() => { setFilterRoutes(); @@ -106,13 +112,6 @@ export default { onUnmounted(() => { proxy.mittBus.off("getBreadcrumbIndexSetFilterRoutes"); }); - // 路由更新时 - onBeforeRouteUpdate((to) => { - proxy.mittBus.emit( - "setSendClassicChildren", - setSendClassicChildren(to.path) - ); - }); return { getThemeConfig, setIsShowLogo, diff --git a/vue-admin-wonderful-next/src/views/layout/navBars/tagsView/tagsView.vue b/vue-admin-wonderful-next/src/views/layout/navBars/tagsView/tagsView.vue index 0d1fc53..8f53106 100644 --- a/vue-admin-wonderful-next/src/views/layout/navBars/tagsView/tagsView.vue +++ b/vue-admin-wonderful-next/src/views/layout/navBars/tagsView/tagsView.vue @@ -81,6 +81,7 @@ export default { }; // 获取 vuex 中的 tagsViewRoutes 列表 const getTagsViewRoutes = () => { + state.routePath = route.path; state.tagsViewList = []; removeSession("tagsViewList"); state.tagsViewRoutesList = store.state.tagsViewRoutes; @@ -185,6 +186,7 @@ export default { }; // 当前的 tagsView 项点击时 const onTagsClick = (v: object, k: number) => { + state.routePath = v.path; state.tagsRefsIndex = k; router.push(v.path); }; diff --git a/vue-admin-wonderful-next/src/views/layout/navMenu/horizontal.vue b/vue-admin-wonderful-next/src/views/layout/navMenu/horizontal.vue index 69fa4d4..5f2e8c5 100644 --- a/vue-admin-wonderful-next/src/views/layout/navMenu/horizontal.vue +++ b/vue-admin-wonderful-next/src/views/layout/navMenu/horizontal.vue @@ -1,7 +1,8 @@