| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 | 
							- <template>
 
-   <view class="container">
 
-     <view class="user-info">
 
-       <view class="info-item">
 
-         <view class="label">头像:</view>
 
-         <view class="info" @click="handleAvatarClick">
 
-           <u-avatar size="50" shape="square" :src="userInfo.avatar"></u-avatar>
 
-           <u-icon class="btn" name="arrow-right"></u-icon>
 
-         </view>
 
-       </view>
 
-       <view class="info-item">
 
-         <view class="label">昵称:</view>
 
-         <view class="info">
 
-           <u--input maxlength="10" border="none" v-model="userInfo.nickname" inputAlign="right" @change="handleNameChange"></u--input>
 
-         </view>
 
-       </view>
 
-       <view class="info-item">
 
-         <view class="label">手机:</view>
 
-         <view class="info">
 
-           <view class="value">{{ userInfo.mobile }}</view>
 
-         </view>
 
-       </view>
 
-     </view>
 
-     <view v-if="nameUpdateVisible" class="btn-group">
 
-       <u-button type="primary" text="保存" customStyle="margin-top: 50px" @click="handleSaveBtnClick"></u-button>
 
-     </view>
 
-   </view>
 
- </template>
 
- <script>
 
- import { getUserInfo, updateAvatar, updateNickname } from '../../api/user'
 
- export default {
 
-   data() {
 
-     return {
 
-       userInfo: {
 
-         nickname: '',
 
-         avatar: '',
 
-         mobile: ''
 
-       },
 
-       avatarFiles: [],
 
-       tempName: ''
 
-     }
 
-   },
 
-   computed: {
 
-     nameUpdateVisible: function () {
 
-       return this.userInfo.nickname !== this.tempName
 
-     }
 
-   },
 
-   onLoad() {
 
-     this.loadUserInfoData()
 
-   },
 
-   methods: {
 
-     loadUserInfoData() {
 
-       getUserInfo().then(res => {
 
-         this.userInfo = res.data
 
-         this.tempName = this.userInfo.nickname
 
-       })
 
-     },
 
-     handleAvatarClick() {
 
-       uni.chooseImage({
 
-         success: chooseImageRes => {
 
-           const tempFilePaths = chooseImageRes.tempFilePaths
 
-           updateAvatar(tempFilePaths[0]).then(res => {
 
-             this.userInfo.avatar = res.data
 
-             this.$store.commit('SET_USER_INFO', this.userInfo)
 
-           })
 
-         }
 
-       })
 
-     },
 
-     handleNameChange(val) {
 
-       let str = uni.$u.trim(val, 'all')
 
-       this.$nextTick(() => {
 
-         this.userInfo.nickname = str
 
-       })
 
-     },
 
-     handleSaveBtnClick() {
 
-       updateNickname({ nickname: this.userInfo.nickname }).then(res => {
 
-         this.tempName  = this.userInfo.nickname
 
-         this.$store.commit('SET_USER_INFO', this.userInfo)
 
-         uni.$u.toast('已保存')
 
-         setTimeout(() => {
 
-           uni.switchTab({
 
-             url: '/pages/user/user'
 
-           })
 
-         }, 300)
 
-       })
 
-     }
 
-   }
 
- }
 
- </script>
 
- <style lang="scss" scoped>
 
- .user-info {
 
-   .info-item {
 
-     padding: 20rpx 60rpx;
 
-     border-bottom: $custom-border-style;
 
-     @include flex-space-between;
 
-     .label {
 
-       font-size: 30rpx;
 
-     }
 
-     .info {
 
-       @include flex-left;
 
-       .value {
 
-         font-size: 30rpx;
 
-       }
 
-       .btn {
 
-         margin-left: 30rpx;
 
-       }
 
-     }
 
-     .name-edit {
 
-       @include flex-left;
 
-       .edit-btn-group {
 
-         @include flex;
 
-         .edit-btn {
 
-           margin-left: 20rpx;
 
-         }
 
-       }
 
-     }
 
-   }
 
- }
 
- .btn-group {
 
-   padding: 0 30rpx;
 
- }
 
- </style>
 
 
  |