From c630f04194fbe467a6e979064d1a004e5684d65c Mon Sep 17 00:00:00 2001 From: lyt <1105290566@qq.com> Date: Fri, 29 Apr 2022 22:57:31 +0800 Subject: [PATCH] =?UTF-8?q?'admin-22.04.29:=E4=BC=98=E5=8C=96=E6=BB=9A?= =?UTF-8?q?=E5=8A=A8=E6=9D=A1=E9=97=AE=E9=A2=98=E5=8F=8A=E6=9B=BF=E6=8D=A2?= =?UTF-8?q?pinia=E5=90=8E=E7=9A=84bug'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + src/layout/component/aside.vue | 30 +++++++-------- src/layout/component/columnsAside.vue | 32 ++++++++-------- src/layout/component/main.vue | 47 ++++++++++++++++-------- src/layout/navBars/tagsView/tagsView.vue | 14 +++++-- src/layout/routerView/iframes.vue | 2 +- src/layout/routerView/link.vue | 2 +- src/layout/routerView/parent.vue | 8 +--- src/router/route.ts | 4 +- 9 files changed, 80 insertions(+), 60 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f9824be..d9ade77 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ - 🎯 优化 地址栏有参数退出登录,再次登录不跳之前界面问题 `src/layout/navBars/breadcrumb/user.vue` - 🎯 优化 `SvgIcon` 组件,防止 `开启 Tagsview 图标` 时,`tagsView 右键菜单关闭` 报错问题 - 🎯 优化 [wangEditor](https://www.wangeditor.com/) 更新到 v5,[vue3 版本线上示例中 wangeditor 富文本编辑器 demo 实例,无法换行#I5565B](https://gitee.com/lyt-top/vue-next-admin/issues/I5565B),感谢@[jenchih](https://gitee.com/jenchih) +- 🎯 优化 [在关闭 tagview 时,高度刷新时会会变化,出现滚动条](https://gitee.com/lyt-top/vue-next-admin/issues/I55FHM),感谢[张松](https://gitee.com/zs310071113) - 🎉 新增 [vuex](https://vuex.vuejs.org/) 替换成 [pinia](https://pinia.vuejs.org/getting-started.html) - 🎉 新增 tagsView 支持自定义 tagsView 名称(文章详情时有用),前往体验:[路由参数/普通路由](https://lyt-top.gitee.io/vue-next-admin-preview/#/params/common) - 🐞 修复 适配 `"element-plus": "^2.1.9"` 版本 diff --git a/src/layout/component/aside.vue b/src/layout/component/aside.vue index dcad93c..d4ee363 100644 --- a/src/layout/component/aside.vue +++ b/src/layout/component/aside.vue @@ -57,18 +57,12 @@ export default defineComponent({ } else { if (layout === 'columns') { // 分栏布局,菜单收起时宽度给 1px - if (isCollapse) { - return [asideBrColor, 'layout-aside-pc-1']; - } else { - return [asideBrColor, 'layout-aside-pc-220']; - } + if (isCollapse) return [asideBrColor, 'layout-aside-pc-1']; + else return [asideBrColor, 'layout-aside-pc-220']; } else { // 其它布局给 64px - if (isCollapse) { - return [asideBrColor, 'layout-aside-pc-64']; - } else { - return [asideBrColor, 'layout-aside-pc-220']; - } + if (isCollapse) return [asideBrColor, 'layout-aside-pc-64']; + else return [asideBrColor, 'layout-aside-pc-220']; } } }); @@ -122,11 +116,17 @@ export default defineComponent({ } }); // 监听vuex值的变化,动态赋值给菜单中 - watch(pinia.state, (val) => { - let { layout, isClassicSplitMenu } = val.themeConfig.themeConfig; - if (layout === 'classic' && isClassicSplitMenu) return false; - setFilterRoutes(); - }); + watch( + pinia.state, + (val) => { + let { layout, isClassicSplitMenu } = val.themeConfig.themeConfig; + if (layout === 'classic' && isClassicSplitMenu) return false; + setFilterRoutes(); + }, + { + deep: true, + } + ); // 页面加载前 onBeforeMount(() => { initMenuFixed(document.body.clientWidth); diff --git a/src/layout/component/columnsAside.vue b/src/layout/component/columnsAside.vue index 7d20c3c..7fd7806 100644 --- a/src/layout/component/columnsAside.vue +++ b/src/layout/component/columnsAside.vue @@ -61,7 +61,6 @@ interface ColumnsAsideState { liOldPath: null | string; difference: number; routeSplit: string[]; - isNavHover: boolean; } export default defineComponent({ @@ -84,7 +83,6 @@ export default defineComponent({ liOldPath: null, difference: 0, routeSplit: [], - isNavHover: false, }); // 设置菜单高亮位置移动 const setColumnsAsideMove = (k: number) => { @@ -107,7 +105,6 @@ export default defineComponent({ proxy.mittBus.emit('setSendColumnsChildren', setSendChildren(path)); stores.setColumnsMenuHover(false); stores.setColumnsNavHover(true); - state.isNavHover = true; }; // 鼠标移走时,显示原来的子级菜单 const onColumnsAsideMenuMouseleave = async () => { @@ -116,7 +113,6 @@ export default defineComponent({ setTimeout(() => { if (!isColumnsMenuHover && !isColumnsNavHover) proxy.mittBus.emit('restoreDefault'); }, 100); - // state.isNavHover = false; }; // 设置高亮动态位置 const onColumnsAsideDown = (k: number) => { @@ -169,17 +165,23 @@ export default defineComponent({ }, 0); }; // 监听布局配置信息的变化,动态增加菜单高亮位置移动像素 - watch(pinia.state, (val) => { - val.themeConfig.themeConfig.columnsAsideStyle === 'columnsRound' ? (state.difference = 3) : (state.difference = 0); - if (!val.routesList.isColumnsMenuHover && !val.routesList.isColumnsNavHover) { - state.liHoverIndex = null; - proxy.mittBus.emit('setSendColumnsChildren', setSendChildren(route.path)); - } else { - state.liHoverIndex = state.liOldIndex; - if (!state.liOldPath) return false; - proxy.mittBus.emit('setSendColumnsChildren', setSendChildren(state.liOldPath)); + watch( + pinia.state, + (val) => { + val.themeConfig.themeConfig.columnsAsideStyle === 'columnsRound' ? (state.difference = 3) : (state.difference = 0); + if (!val.routesList.isColumnsMenuHover && !val.routesList.isColumnsNavHover) { + state.liHoverIndex = null; + proxy.mittBus.emit('setSendColumnsChildren', setSendChildren(route.path)); + } else { + state.liHoverIndex = state.liOldIndex; + if (!state.liOldPath) return false; + proxy.mittBus.emit('setSendColumnsChildren', setSendChildren(state.liOldPath)); + } + }, + { + deep: true, } - }); + ); // 页面加载时 onMounted(() => { setFilterRoutes(); @@ -256,7 +258,7 @@ export default defineComponent({ } } .layout-columns-active { - color: var(--el-color-white) !important; + color: var(--next-bg-columnsMenuBarColor) !important; transition: 0.3s ease-in-out; } .layout-columns-hover { diff --git a/src/layout/component/main.vue b/src/layout/component/main.vue index abb2b60..b88fda8 100644 --- a/src/layout/component/main.vue +++ b/src/layout/component/main.vue @@ -1,18 +1,26 @@