member.vue 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. <template>
  2. <el-container>
  3. <!-- 头部 -->
  4. <el-header height="auto" class="header">
  5. <member-header />
  6. </el-header>
  7. <transition name="slide">
  8. <el-container class="content">
  9. <el-aside width="200px">
  10. <el-menu :default-active="activeIndex" class="menu" router @open="handleOpen"
  11. :default-openeds="defaultOpeneds" unique-opened>
  12. <el-submenu index="1" title>
  13. <template slot="title">
  14. <span>会员中心</span>
  15. </template>
  16. <el-menu-item index="/member">欢迎页</el-menu-item>
  17. <el-menu-item index="/member/info">个人信息</el-menu-item>
  18. <el-menu-item index="/member/security">账户安全</el-menu-item>
  19. <el-menu-item index="/member/delivery_address">收货地址</el-menu-item>
  20. <el-menu-item index="/member/collection">我的关注</el-menu-item>
  21. <el-menu-item index="/member/footprint">我的足迹</el-menu-item>
  22. </el-submenu>
  23. <el-submenu index="2" title>
  24. <template slot="title">
  25. <span>交易中心</span>
  26. </template>
  27. <el-menu-item index="/member/order_list">我的订单</el-menu-item>
  28. <el-menu-item index="/member/activist">退款/售后</el-menu-item>
  29. </el-submenu>
  30. <el-submenu index="3" title>
  31. <template slot="title">
  32. <span>账户中心</span>
  33. </template>
  34. <el-menu-item index="/member/account">账户余额</el-menu-item>
  35. <el-menu-item index="/member/withdrawal">提现记录</el-menu-item>
  36. <el-menu-item index="/member/coupon">我的优惠券</el-menu-item>
  37. <el-menu-item index="/member/my_point">我的积分</el-menu-item>
  38. <el-menu-item index="/member/account_list">账户列表</el-menu-item>
  39. <!-- <el-menu-item index="level">会员等级</el-menu-item> -->
  40. </el-submenu>
  41. </el-menu>
  42. </el-aside>
  43. <el-main class="member">
  44. <transition name="slide">
  45. <nuxt />
  46. </transition>
  47. </el-main>
  48. </el-container>
  49. </transition>
  50. <!-- 右侧栏 -->
  51. <ns-aside />
  52. <!-- 底部 -->
  53. <el-footer>
  54. <ns-footer />
  55. </el-footer>
  56. </el-container>
  57. </template>
  58. <script>
  59. import MemberHeader from "./components/MemberHeader"
  60. import NsHeader from "./components/NsHeader"
  61. import NsAside from "./components/NsAside"
  62. import NsFooter from "./components/NsFooter"
  63. export default {
  64. created() {
  65. this.activeIndex = this.$route.meta.parentRouter || this.$route.path
  66. },
  67. data: () => {
  68. return {
  69. defaultOpeneds: ["1"],
  70. activeIndex: "member",
  71. }
  72. },
  73. mounted() {},
  74. computed: {},
  75. watch: {
  76. $route(curr) {
  77. this.activeIndex = curr.meta.parentRouter || this.$route.path;
  78. }
  79. },
  80. methods: {
  81. handleOpen(key, keyPath) {
  82. this.defaultOpeneds = keyPath
  83. },
  84. },
  85. components: {
  86. MemberHeader,
  87. NsAside,
  88. NsFooter
  89. },
  90. middleware: 'auth',
  91. head() {
  92. return {
  93. title: this.$store.state.site.siteInfo.site_name
  94. }
  95. }
  96. }
  97. </script>
  98. <style lang="scss">
  99. html,
  100. body {
  101. background: #f7f7f7 !important;
  102. }
  103. </style>
  104. <style lang="scss" scoped>
  105. .header {
  106. padding: 0;
  107. }
  108. .content {
  109. max-width: $width;
  110. padding: 0;
  111. display: flex !important;
  112. margin: 20px auto;
  113. }
  114. .el-footer {
  115. padding: 0;
  116. height: auto !important;
  117. background-color: #fff;
  118. padding-top: 0;
  119. }
  120. .el-main {
  121. border-top: none;
  122. }
  123. .menu {
  124. min-height: 730px;
  125. }
  126. .member {
  127. margin-left: 15px;
  128. width: 0 !important;
  129. flex: 1;
  130. }
  131. </style>