From 8fb35689780465c3a1596494c2ec4de432fc16f7 Mon Sep 17 00:00:00 2001 From: RuoYi <yzz_ivy@163.com> Date: Thu, 4 Jun 2020 15:54:33 +0800 Subject: [PATCH] =?UTF-8?q?tagview=20&=20sidebar=20=E4=B8=BB=E9=A2=98?= =?UTF-8?q?=E9=A2=9C=E8=89=B2=E4=B8=8Eelement=20ui(=E5=85=A8=E5=B1=80)?= =?UTF-8?q?=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/layout/components/Sidebar/index.vue | 95 ++++++++++--------- .../src/layout/components/TagsView/index.vue | 16 +++- 2 files changed, 64 insertions(+), 47 deletions(-) diff --git a/ruoyi-ui/src/layout/components/Sidebar/index.vue b/ruoyi-ui/src/layout/components/Sidebar/index.vue index 4d0c6c95..1004f53a 100644 --- a/ruoyi-ui/src/layout/components/Sidebar/index.vue +++ b/ruoyi-ui/src/layout/components/Sidebar/index.vue @@ -1,54 +1,57 @@ <template> - <div :class="{'has-logo':showLogo}"> - <logo v-if="showLogo" :collapse="isCollapse" /> - <el-scrollbar wrap-class="scrollbar-wrapper"> - <el-menu - :default-active="activeMenu" - :collapse="isCollapse" - :background-color="variables.menuBg" - :text-color="variables.menuText" - :unique-opened="true" - :active-text-color="variables.menuActiveText" - :collapse-transition="false" - mode="vertical" - > - <sidebar-item v-for="route in permission_routes" :key="route.path" :item="route" :base-path="route.path" /> - </el-menu> - </el-scrollbar> - </div> + <div :class="{'has-logo':showLogo}"> + <logo v-if="showLogo" :collapse="isCollapse" /> + <el-scrollbar wrap-class="scrollbar-wrapper"> + <el-menu + :default-active="activeMenu" + :collapse="isCollapse" + :background-color="variables.menuBg" + :text-color="variables.menuText" + :unique-opened="true" + :active-text-color="settings.theme" + :collapse-transition="false" + mode="vertical" + > + <sidebar-item + v-for="(route, index) in permission_routes" + :key="route.path + index" + :item="route" + :base-path="route.path" + /> + </el-menu> + </el-scrollbar> + </div> </template> <script> -import { mapGetters } from 'vuex' -import Logo from './Logo' -import SidebarItem from './SidebarItem' -import variables from '@/assets/styles/variables.scss' +import { mapGetters, mapState } from "vuex"; +import Logo from "./Logo"; +import SidebarItem from "./SidebarItem"; +import variables from "@/assets/styles/variables.scss"; export default { - components: { SidebarItem, Logo }, - computed: { - ...mapGetters([ - 'permission_routes', - 'sidebar' - ]), - activeMenu() { - const route = this.$route - const { meta, path } = route - // if set path, the sidebar will highlight the path you set - if (meta.activeMenu) { - return meta.activeMenu - } - return path - }, - showLogo() { - return this.$store.state.settings.sidebarLogo - }, - variables() { - return variables - }, - isCollapse() { - return !this.sidebar.opened + components: { SidebarItem, Logo }, + computed: { + ...mapState(["settings"]), + ...mapGetters(["permission_routes", "sidebar"]), + activeMenu() { + const route = this.$route; + const { meta, path } = route; + // if set path, the sidebar will highlight the path you set + if (meta.activeMenu) { + return meta.activeMenu; + } + return path; + }, + showLogo() { + return this.$store.state.settings.sidebarLogo; + }, + variables() { + return variables; + }, + isCollapse() { + return !this.sidebar.opened; + } } - } -} +}; </script> diff --git a/ruoyi-ui/src/layout/components/TagsView/index.vue b/ruoyi-ui/src/layout/components/TagsView/index.vue index 19e1912e..529090a7 100644 --- a/ruoyi-ui/src/layout/components/TagsView/index.vue +++ b/ruoyi-ui/src/layout/components/TagsView/index.vue @@ -1,6 +1,6 @@ <template> <div id="tags-view-container" class="tags-view-container"> - <scroll-pane ref="scrollPane" class="tags-view-wrapper"> + <scroll-pane ref="scrollPane" class="tags-view-wrapper" @scroll="handleScroll"> <router-link v-for="tag in visitedViews" ref="tag" @@ -9,6 +9,7 @@ :to="{ path: tag.path, query: tag.query, fullPath: tag.fullPath }" tag="span" class="tags-view-item" + :style="activeStyle(tag)" @click.middle.native="!isAffix(tag)?closeSelectedTag(tag):''" @contextmenu.prevent.native="openMenu(tag,$event)" > @@ -46,6 +47,9 @@ export default { }, routes() { return this.$store.state.permission.routes + }, + theme() { + return this.$store.state.settings.theme; } }, watch: { @@ -69,6 +73,13 @@ export default { isActive(route) { return route.path === this.$route.path }, + activeStyle(tag) { + if (!this.isActive(tag)) return {}; + return { + "background-color": this.theme, + "border-color": this.theme + }; + }, isAffix(tag) { return tag.meta && tag.meta.affix }, @@ -189,6 +200,9 @@ export default { }, closeMenu() { this.visible = false + }, + handleScroll() { + this.closeMenu() } } }