setting.vue 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. <template>
  2. <view class="wrap">
  3. <view class="u-m-t-20">
  4. <u-cell-group>
  5. <u-cell-item icon="camera" title="头像" @click="openPage('/pages/setting/updateAvatar')">
  6. <u-image slot="right-icon" width="80rpx" height="80rpx" :src="vuex_avatar"></u-image>
  7. </u-cell-item>
  8. <u-cell-item icon="account" title="姓名" @click="updateNickName" :value="user.nickName"></u-cell-item>
  9. <u-cell-item :icon="user.genderIcon?user.genderIcon:'man'" title="性别" @click="updateGender" :value="user.genderStr"></u-cell-item>
  10. </u-cell-group>
  11. </view>
  12. <view class="u-m-t-20">
  13. <u-cell-group>
  14. <u-cell-item icon="lock" title="修改密码" @click="openPage('/pages/setting/updatePwd')"></u-cell-item>
  15. <u-cell-item icon="phone" title="更换手机" @click="todo('/pages/setting/updateMobile')" :value="user.mobile"></u-cell-item>
  16. </u-cell-group>
  17. </view>
  18. <view class="u-m-t-20">
  19. <u-cell-group>
  20. <u-cell-item icon="info-circle" title="关于邻家小铺" @click="openPage('/pages/setting/about')"></u-cell-item>
  21. <!-- #ifdef H5 || APP-PLUS -->
  22. <u-cell-item icon="file-text" title="在线文档" @click="toDoc"></u-cell-item>
  23. <!-- #endif -->
  24. </u-cell-group>
  25. </view>
  26. <view class="u-m-t-20">
  27. <u-button @click="logout">退出</u-button>
  28. </view>
  29. <u-modal v-model="nickName.show" title="修改用户名" @confirm="submitNickName" :show-cancel-button="true">
  30. <view style="padding:10px 50px;">
  31. <u-input style="padding: 0rpx 30rpx;background-color: #ededed;" v-model="nickName.value" placeholder="请输入用户名" />
  32. </view>
  33. </u-modal>
  34. <u-action-sheet :list="gender.list" v-model="gender.show" :cancel-btn="false" @click="submitGender"></u-action-sheet>
  35. </view>
  36. </view>
  37. </template>
  38. <script>
  39. export default {
  40. data() {
  41. return {
  42. isLogin: false,
  43. user: {
  44. genderIcon: 'man',
  45. },
  46. gender: {
  47. show: false,
  48. list: [{
  49. text: '男',
  50. value:'male'
  51. }, {
  52. text: '女',
  53. value:'female'
  54. }]
  55. },
  56. nickName: {
  57. show: false,
  58. value: ''
  59. }
  60. }
  61. },
  62. onLoad() {
  63. this.init();
  64. },
  65. methods: {
  66. init() {
  67. const user = this.vuex_user;
  68. if (user.nickName !== '未登录') {
  69. if (user.gender == 'female') {
  70. user.genderStr = '女';
  71. user.genderIcon = 'woman';
  72. }
  73. if (user.gender == 'male') {
  74. user.genderStr = '男';
  75. user.genderIcon = 'man';
  76. }
  77. this.user = user;
  78. } else {
  79. this.user = user;
  80. }
  81. },
  82. openPage(url) {
  83. if (this.user.nickName == '未登录') {
  84. this.$u.route('/pages/login/login');
  85. return;
  86. }
  87. this.$u.route({
  88. url: url
  89. })
  90. },
  91. todo(url){
  92. this.$u.toast('开发中');
  93. },
  94. updateNickName() {
  95. this.nickName.value = this.user.nickName;
  96. this.nickName.show = true;
  97. },
  98. submitNickName() {
  99. this.$u.post('user/updateUserName?userName='+ this.nickName.value).then(res => {
  100. let user = this.vuex_user;
  101. user.nickName = this.nickName.value;
  102. this.$u.vuex('vuex_user', user);
  103. this.$u.toast('修改成功');
  104. });
  105. },
  106. updateGender() {
  107. this.gender.show = true;
  108. },
  109. submitGender(index) {
  110. let selData = this.gender.list[index];
  111. this.$u.post('user/updateGender/' + selData.value).then(res => {
  112. let user = this.vuex_user;
  113. user.gender = selData.value;
  114. if (user.gender == 'female') {
  115. this.user.genderStr = '女';
  116. this.user.genderIcon = 'woman';
  117. }
  118. if (user.gender == 'male') {
  119. this.user.genderStr = '男';
  120. this.user.genderIcon = 'man';
  121. }
  122. console.log(this.user);
  123. this.$u.vuex('vuex_user', user);
  124. this.$u.toast('修改成功');
  125. });
  126. },
  127. logout() {
  128. this.$u.vuex('vuex_token', '')
  129. this.$u.vuex('vuex_avatar','')
  130. this.$u.vuex('vuex_user', {
  131. nickName: '未登录'
  132. });
  133. this.$u.route({
  134. url:'/pages/login/login',
  135. params:{}
  136. })
  137. },
  138. toDoc() {
  139. this.$u.route('/pages/setting/document')
  140. }
  141. }
  142. }
  143. </script>
  144. <style>
  145. page {
  146. background-color: #ededed;
  147. }
  148. </style>
  149. <style lang="scss" scoped>
  150. .wrap {
  151. .bottom {
  152. position: fixed;
  153. bottom: 0;
  154. width: 100%;
  155. }
  156. }
  157. </style>