Home.vue 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <template>
  2. <div id="Home">
  3. <el-container>
  4. <el-header style="padding:0"><v-head></v-head></el-header>
  5. <el-container>
  6. <el-aside width="200px"><v-sidebar></v-sidebar></el-aside>
  7. <el-main>
  8. <div class="content-box" :class="{ 'content-collapse': collapse }">
  9. <v-tags></v-tags>
  10. <el-col :span="24" class="content">
  11. <transition name="move" mode="out-in">
  12. <el-row>
  13. <breadcrumb :breadcrumbTitle="this.$route.meta.title"></breadcrumb>
  14. <el-col :span="24" class="container" style="padding:15px"><router-view></router-view></el-col>
  15. </el-row>
  16. </transition>
  17. <el-backtop target=".content"></el-backtop>
  18. </el-col>
  19. </div>
  20. </el-main>
  21. </el-container>
  22. </el-container>
  23. </div>
  24. </template>
  25. <script>
  26. import vHead from './Header.vue';
  27. import vSidebar from './Sidebar.vue';
  28. import vTags from './Tags.vue';
  29. import breadcrumb from './breadcrumb.vue';
  30. import bus from './bus';
  31. import { mapState, createNamespacedHelpers } from 'vuex';
  32. export default {
  33. name: 'Home',
  34. props: {},
  35. components: { vHead, vSidebar, vTags, breadcrumb },
  36. data: function() {
  37. return {
  38. collapse: false,
  39. tagsList: [],
  40. };
  41. },
  42. created() {
  43. bus.$on('collapse-content', msg => {
  44. this.collapse = msg;
  45. });
  46. // 只有在标签页列表里的页面才使用keep-alive,即关闭标签之后就不保存到内存中了。
  47. bus.$on('tags', msg => {
  48. let arr = [];
  49. for (let i = 0, len = msg.length; i < len; i++) {
  50. msg[i].name && arr.push(msg[i].name);
  51. }
  52. this.tagsList = arr;
  53. });
  54. },
  55. methods: {},
  56. computed: {
  57. ...mapState(['user']),
  58. },
  59. metaInfo() {
  60. return { title: this.$route.meta.title };
  61. },
  62. watch: {
  63. test: {
  64. deep: true,
  65. immediate: true,
  66. handler(val) {},
  67. },
  68. },
  69. };
  70. </script>
  71. <style lang="less" scoped></style>