<template>
  <el-container>
    <el-header style="padding: 0">
      <v-head></v-head>
    </el-header>
    <el-container>
      <el-aside width="200px">
        <v-sidebar></v-sidebar>
      </el-aside>
      <el-main>
        <div class="content-box" :class="{ 'content-collapse': collapse }">
          <v-tags></v-tags>
          <div class="content">
            <transition name="move" mode="out-in">
              <el-row>
                <el-col :span="24">
                  <breadcrumb :breadcrumbTitle="this.$route.meta.title"></breadcrumb>
                  <el-col :span="24" class="container">
                    <router-view></router-view>
                  </el-col>
                </el-col>
              </el-row>
            </transition>
            <el-backtop target=".content"></el-backtop>
          </div>
        </div>
      </el-main>
    </el-container>
  </el-container>
</template>

<script>
import breadcrumb from './breadcrumb.vue';
import vHead from './Header.vue';
import vSidebar from './Sidebar.vue';
import vTags from './Tags.vue';
import bus from './bus';
export default {
  data() {
    return {
      tagsList: [],
      collapse: false,
    };
  },
  components: {
    vHead,
    vSidebar,
    vTags,
    breadcrumb,
  },
  created() {
    bus.$on('collapse-content', msg => {
      this.collapse = msg;
    });

    // 只有在标签页列表里的页面才使用keep-alive，即关闭标签之后就不保存到内存中了。
    bus.$on('tags', msg => {
      let arr = [];
      for (let i = 0, len = msg.length; i < len; i++) {
        msg[i].name && arr.push(msg[i].name);
      }
      this.tagsList = arr;
    });
  },
};
</script>
