From 5cd245ac15bc561b3fe757d58932bbdc2356ef01 Mon Sep 17 00:00:00 2001 From: Pan <panfree23@gmail.com> Date: Fri, 23 Jun 2017 17:56:45 +0800 Subject: [PATCH] split tabs-view to separate files --- src/views/layout/Levelbar.vue | 22 ----------------- src/views/layout/Navbar.vue | 5 +++- src/views/layout/TabsView.vue | 45 +++++++++++++++++++++++++++++++++++ 3 files changed, 49 insertions(+), 23 deletions(-) create mode 100644 src/views/layout/TabsView.vue diff --git a/src/views/layout/Levelbar.vue b/src/views/layout/Levelbar.vue index af850ff..cb40084 100644 --- a/src/views/layout/Levelbar.vue +++ b/src/views/layout/Levelbar.vue @@ -4,25 +4,14 @@ <router-link v-if='item.redirect==="noredirect"||index==levelList.length-1' to="" class="no-redirect">{{item.name}}</router-link> <router-link v-else :to="item.path">{{item.name}}</router-link> </el-breadcrumb-item> - <router-link class="view-tabs" v-for="tag in Array.from(visitedViews)" :to="tag.path" :key="tag.path"> - <el-tag :closable="true" @close='closeViewTabs(tag,$event)'> - {{tag.name}} - </el-tag> - </router-link> </el-breadcrumb> </template> <script> - export default { created() { this.getBreadcrumb() }, - computed: { - visitedViews() { - return this.$store.state.app.visitedViews.slice(-6) - } - }, data() { return { levelList: null @@ -36,18 +25,10 @@ matched = [{ name: '首页', path: '/' }].concat(matched) } this.levelList = matched; - }, - closeViewTabs(view, $event) { - this.$store.dispatch('delVisitedViews', view) - $event.preventDefault() - }, - addViewTabs() { - this.$store.dispatch('addVisitedViews', this.$route.matched[this.$route.matched.length - 1]) } }, watch: { $route() { - this.addViewTabs(); this.getBreadcrumb(); } } @@ -65,7 +46,4 @@ cursor:text; } } - .view-tabs{ - margin-left: 10px; - } </style> diff --git a/src/views/layout/Navbar.vue b/src/views/layout/Navbar.vue index 8871b59..025b1f7 100644 --- a/src/views/layout/Navbar.vue +++ b/src/views/layout/Navbar.vue @@ -2,12 +2,13 @@ <el-menu class="navbar" mode="horizontal"> <hamburger class="hamburger-container" :toggleClick="toggleSideBar" :isActive="sidebar.opened"></hamburger> <levelbar></levelbar> + <tabs-view></tabs-view> <error-log v-if="log.length>0" class="errLog-container" :logsList="log"></error-log> <screenfull class='screenfull'></screenfull> <el-dropdown class="avatar-container" trigger="click"> <div class="avatar-wrapper"> <img class="user-avatar" :src="avatar+'?imageView2/1/w/80/h/80'"> - <i class="el-icon-caret-bottom" /> + <i class="el-icon-caret-bottom"></i> </div> <el-dropdown-menu class="user-dropdown" slot="dropdown"> <router-link class='inlineBlock' to="/"> @@ -29,6 +30,7 @@ <script> import { mapGetters } from 'vuex'; import Levelbar from './Levelbar'; + import TabsView from './TabsView'; import Hamburger from 'components/Hamburger'; import Screenfull from 'components/Screenfull'; import ErrorLog from 'components/ErrLog'; @@ -37,6 +39,7 @@ export default { components: { Levelbar, + TabsView, Hamburger, ErrorLog, Screenfull diff --git a/src/views/layout/TabsView.vue b/src/views/layout/TabsView.vue new file mode 100644 index 0000000..5d3a2e1 --- /dev/null +++ b/src/views/layout/TabsView.vue @@ -0,0 +1,45 @@ +<template> + <div class='tabs-view-container'> + <router-link class="tabs-view" v-for="tag in Array.from(visitedViews)" :to="tag.path" :key="tag.path"> + <el-tag :closable="true" @close='closeViewTabs(tag,$event)'> + {{tag.name}} + </el-tag> + </router-link> + </div> +</template> + +<script> + export default { + computed: { + visitedViews() { + return this.$store.state.app.visitedViews.slice(-6) + } + }, + methods: { + closeViewTabs(view, $event) { + this.$store.dispatch('delVisitedViews', view) + $event.preventDefault() + }, + addViewTabs() { + this.$store.dispatch('addVisitedViews', this.$route.matched[this.$route.matched.length - 1]) + } + }, + watch: { + $route() { + this.addViewTabs() + } + } + } +</script> + +<style rel="stylesheet/scss" lang="scss" scoped> + .tabs-view-container{ + display: inline-block; + vertical-align: top; + margin-left: 10px; + .tabs-view{ + margin-left: 10px; + } + } + +</style> -- 2.21.0