set.vue 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. <template>
  2. <view class="set-page zx-container">
  3. <image :src="userInfo.headImg || defaultHeadImg" class="head-img" />
  4. <view class="list-wrap">
  5. <view
  6. v-for="(item, index) in list"
  7. :key="index"
  8. class="item"
  9. @tap="routerLink(item.url)"
  10. >
  11. <view class="title">{{ item.title }}</view>
  12. <view :class="['text-right', item.hideArrow && 'hide-arrow']">
  13. <input class="inp" @input="inpfn" v-if="item.textProp == 'nickname'" v-model="userInfo[item.textProp]" type="text" />
  14. <block v-else>
  15. {{ userInfo[item.textProp] || '' }}
  16. </block>
  17. </view>
  18. </view>
  19. </view>
  20. <view class="zx-form-btn fix-bottom-btn logout-btn" @tap="handleQuit">退出登录</view>
  21. </view>
  22. </template>
  23. <script>
  24. const storage = require('@/common/storage.js')
  25. import { QINIU_URL, defaultHeadImg } from '@/common/constant'
  26. var config = require('../../common/config_gyq.js');
  27. var http = require('../../common/request');
  28. const common = require('../../common/common.js');
  29. export default {
  30. data() {
  31. return {
  32. QINIU_URL,
  33. defaultHeadImg,
  34. userInfo: {},
  35. list: [
  36. { title: '昵称', url: '', textProp: 'nickname' },
  37. { title: '注册时间', textProp: 'registrationTime', hideArrow: true },
  38. { title: '修改密码', url: '/pages/loginRegister/changePassword' },
  39. { title: '关于我们', url: '/pages/aboutMy/aboutMy', textProp: 'version' },
  40. { title: '隐私协议', url: '/pages/contract/contract?contract_id=270' },
  41. { title: '用户条款', url: '/pages/contract/contract?contract_id=102' }
  42. ]
  43. }
  44. },
  45. onShow() {
  46. const user_token = storage.getUserToken()
  47. user_token && this.loadUserInfo()
  48. },
  49. methods: {
  50. inpfn(e){
  51. console.log(e.detail.value)
  52. },
  53. editAvatarFn(){
  54. common.upLoadImgQiNiu( (imgUrl)=> {
  55. console.log(imgUrl)
  56. });
  57. },
  58. async editUserInfoFn(){
  59. let {data} = await http.postApi(config.API_USER_MODIFY_USER_INFO,{
  60. nickname:this.userInfo.nickname,
  61. head_img:this.userInfo.head_img,
  62. })
  63. },
  64. loadUserInfo() {
  65. const userInfo = storage.getUserInfoData()
  66. console.log('userInfo', userInfo)
  67. this.setData({ userInfo })
  68. },
  69. routerLink(url) {
  70. uni.navigateTo({ url })
  71. },
  72. handleQuit() {
  73. uni.showModal({
  74. title: '提示',
  75. content: '您确定要退出当前账号吗?',
  76. showCancel: true,
  77. cancelText: '取消',
  78. confirmText: '确定',
  79. success: function(res) {
  80. if (res.confirm) {
  81. storage.clearStorage()
  82. uni.reLaunch({
  83. url: '/pages/index/index'
  84. })
  85. }
  86. }
  87. })
  88. }
  89. }
  90. }
  91. </script>
  92. <style lang="scss">
  93. @import "@/libs/css/layout.scss";
  94. .inp{
  95. font-size: 30rpx;
  96. color: #060809;
  97. text-align: right;
  98. }
  99. .set-page {
  100. display: flex;
  101. flex-direction: column;
  102. align-items: center;
  103. padding: 66rpx 32rpx 48rpx;
  104. .head-img {
  105. width: 174rpx;
  106. height: 174rpx;
  107. margin: 0 auto 40rpx;
  108. border-radius: 50%;
  109. }
  110. .list-wrap {
  111. width: 100%;
  112. background: #FFFFFF;
  113. border-radius: 40rpx;
  114. padding: 8rpx 32rpx;
  115. .item {
  116. padding: 40rpx 0;
  117. display: flex;
  118. justify-content: space-between;
  119. border-bottom: 2px solid #F1F4F5;
  120. &:last-child {
  121. border-bottom: 0;
  122. }
  123. .title {
  124. font-family: PingFangSC, PingFang SC;
  125. font-weight: bold;
  126. font-size: 32rpx;
  127. color: #060809;
  128. }
  129. .text-right {
  130. font-family: Futura, Futura;
  131. font-weight: 500;
  132. font-size: 30rpx;
  133. color: #060809;
  134. display: flex;
  135. align-items: center;
  136. &::after {
  137. content: "";
  138. width: 28rpx;
  139. height: 28rpx;
  140. margin-left: 12rpx;
  141. background: url('https://qiniu.bms16.com/FtGhNkwKlhR7hOZsaj0gmRl9KjPx');
  142. background-size: 100%;
  143. }
  144. &.hide-arrow {
  145. &::after {
  146. display: none;
  147. }
  148. }
  149. }
  150. }
  151. }
  152. .logout-btn {
  153. color: #FA2918;
  154. background: #E4E7EC;
  155. }
  156. }
  157. </style>