mine.vue 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. <template>
  2. <div class="mine">
  3. <div class="top">
  4. <UserInfoCard :userInfo="userInfo" />
  5. </div>
  6. <div class="list">
  7. <div class="item" @click="skipUrl('/pages/index/first_email')">
  8. <image src="@/static/images/mine/icon_1.png" mode="" class="icon"></image>
  9. <div class="text">第一封信</div>
  10. <u-icon name="arrow-right"></u-icon>
  11. </div>
  12. <div class="item" @click="skipUrl('/pages/gift/record')">
  13. <image src="@/static/images/mine/icon_2.png" mode="" class="icon"></image>
  14. <div class="text">兑换订单</div>
  15. <u-icon name="arrow-right"></u-icon>
  16. </div>
  17. <div class="item" @click="skipUrl('/pages/xuefen/record')">
  18. <image src="@/static/images/mine/icon_3.png" mode="" class="icon"></image>
  19. <div class="text">学分记录</div>
  20. <u-icon name="arrow-right"></u-icon>
  21. </div>
  22. <div class="item" @click="skipUrl('/pages/address/list')">
  23. <image src="@/static/images/mine/icon_4.png" mode="" class="icon"></image>
  24. <div class="text">地址管理</div>
  25. <u-icon name="arrow-right"></u-icon>
  26. </div>
  27. <div class="item" @click="skipUrl('/pages/mine/guize')">
  28. <image src="@/static/images/mine/icon_5.png" mode="" class="icon"></image>
  29. <div class="text">规则说明</div>
  30. <u-icon name="arrow-right"></u-icon>
  31. </div>
  32. <!-- <div class="item" @click="skipUrl('/pages/mine/test')">
  33. <image src="@/static/images/mine/icon_5.png" mode="" class="icon"></image>
  34. <div class="text">测试页面</div>
  35. <u-icon name="arrow-right"></u-icon>
  36. </div> -->
  37. <div class="item" @click="doLoginOut">
  38. <image src="@/static/images/mine/icon_7.png" mode="" class="icon"></image>
  39. <div class="text">退出登录</div>
  40. <u-icon name="arrow-right"></u-icon>
  41. </div>
  42. </div>
  43. </div>
  44. </template>
  45. <script>
  46. import UserInfoCard from '@/components/UserInfoCard.vue'
  47. export default {
  48. components: {
  49. UserInfoCard
  50. },
  51. data() {
  52. return {
  53. userInfo: {}
  54. }
  55. },
  56. onShow() {
  57. this.getUserInfo()
  58. },
  59. methods: {
  60. //获取当前用户的信息
  61. getUserInfo() {
  62. this.$u.get('/base/auth/me').then(res => {
  63. console.log(res)
  64. this.userInfo = res.data
  65. this.$u.vuex('vuex_user', res.data)
  66. })
  67. },
  68. skipUrl(url) {
  69. uni.navigateTo({
  70. url: url
  71. })
  72. },
  73. //退出登录
  74. doLoginOut() {
  75. uni.showModal({
  76. title: '提示',
  77. content: '您确定要退出当前登录账号吗?',
  78. success: (res) => {
  79. if (res.confirm) {
  80. this.$u.get('/base/auth/logout').then(res => {
  81. this.$u.vuex('vuex_token', '')
  82. uni.reLaunch({
  83. url: '/pages/login/skip'
  84. })
  85. })
  86. }
  87. }
  88. })
  89. }
  90. }
  91. }
  92. </script>
  93. <style lang="scss" scoped>
  94. page {
  95. // background: #F5F5F5;
  96. }
  97. .mine {
  98. .top {
  99. padding: 12px 12px 28px;
  100. background-color: #fff;
  101. }
  102. .list {
  103. padding: 20px 12px 20px;
  104. background: #F5F5F5;
  105. .item {
  106. padding: 20px;
  107. display: flex;
  108. align-items: center;
  109. border-radius: 12px;
  110. margin-bottom: 20px;
  111. opacity: 1;
  112. background: #FFFFFF;
  113. .text {
  114. flex: 1;
  115. font-size: 17px;
  116. color: #000000;
  117. margin-left: 12px;
  118. }
  119. .icon {
  120. height: 24px;
  121. width: 24px;
  122. }
  123. }
  124. }
  125. }
  126. </style>