| <template> | 
|     <view class="setup"> | 
|         <div class="setup-tx"> | 
|             <view class="setup-tx-image"> | 
|                 <image v-if="fullCoverImage && fullCoverImage !=''" :src="fullCoverImage" mode="widthFix"></image> | 
|                 <image v-else src="/static/logo.png" mode="widthFix"></image> | 
|             </view> | 
|             <button open-type="chooseAvatar"  @chooseavatar="onChooseAvatar" class="setup-tx-btn">更换头像</button> | 
|         </div> | 
|         <view class="setup-list"> | 
|             <view class="setup-list-item"> | 
|                 <view class="label">昵称</view> | 
|                 <view class="val"> | 
|                     <input type="text"  v-model='nickName' placeholder="请输入" /> | 
|                 </view> | 
|             </view> | 
|             <view class="setup-list-item"> | 
|                 <view class="label">真实姓名</view> | 
|                 <view class="val"> | 
|                     <input type="text" v-model='name' placeholder="请输入" /> | 
|                 </view> | 
|             </view> | 
|             <view class="setup-list-item"> | 
|                 <view class="label">绑定手机号</view> | 
|                 <view class="val"> | 
|                      {{userInfo.telephone}} | 
|                 </view> | 
|             </view> | 
|         </view> | 
|         <view class="setup-sub" @click="updateMemberInfo">保存</view> | 
|     </view> | 
| </template> | 
|   | 
| <script> | 
|     import { mapState } from 'vuex' | 
|     export default { | 
|         computed: { | 
|             ...mapState(['navHeight', 'statusbarHeight','userInfo','token','openid']) | 
|         }, | 
|         data() { | 
|             return { | 
|                 name:null, | 
|                 coverImage:null, | 
|                 nickName:null, | 
|                 fullCoverImage:null | 
|             }; | 
|         }, | 
|         onShow(options){  | 
|             console.log(this.userInfo) | 
|             this.coverImage = this.userInfo.coverImage | 
|             this.nickName = this.userInfo.nickName | 
|             this.fullCoverImage = this.userInfo.fullCoverImage | 
|             this.name = this.userInfo.name | 
|         }, | 
|         methods: { | 
|             onChooseAvatar(e){ | 
|              const { detail } = e | 
|              var that =this | 
|               uni.compressImage({ | 
|                 src: detail.avatarUrl, | 
|                 quality: 80, | 
|                 success: res => { | 
|                   that.uploadFile(res.tempFilePath); | 
|                 } | 
|               }) | 
|             }, | 
|             uploadFile(fileUrl) { | 
|               var that = this | 
|               console.log(fileUrl, 'fileUrl') | 
|               uni.uploadFile({ | 
|                     url: this.$baseUrl + 'web/public/upload', | 
|                     filePath: fileUrl, | 
|                     name: 'file', | 
|                     formData: { | 
|                         'folder': 'member' | 
|                     }, | 
|                     success:(data)=>{ | 
|                          const res = JSON.parse(data.data) | 
|                          that.coverImage = res.data.imgaddr | 
|                          that.fullCoverImage = res.data.url | 
|                          that.updateMemberInfo() | 
|                     }, | 
|                     fail:(e)=>{ | 
|                         uni.showToast({ | 
|                             title: '上传失败', | 
|                             duration: 2000, | 
|                             icon: "none" | 
|                         }); | 
|                     } | 
|               })  | 
|             }, | 
|             updateMemberInfo() { | 
|               if((!this.name ||this.name.trim() =='' ) | 
|                   &&(!this.nickName ||this.nickName.trim() =='') | 
|                   &&(!this.coverImage ||this.coverImage.trim() =='')){ | 
|                   uni.showToast({ | 
|                         title: '对不起,请按要求填写信息!', | 
|                         icon: "none", | 
|                         duration: 2000 | 
|                   }); | 
|                   return | 
|               } | 
|               var that = this | 
|               this.$u.api.editMemberInfo({ | 
|                     name:that.name, | 
|                     nickName:that.nickName, | 
|                     coverImage:that.coverImage, | 
|                }).then(res =>{ | 
|                     that.userInfo.name = this.name | 
|                     that.userInfo.nickName = this.nickName | 
|                     that.userInfo.coverImage = this.coverImage | 
|                     that.userInfo.fullCoverImage = this.fullCoverImage | 
|                     uni.showToast({ | 
|                         title: '更新成功', | 
|                         icon: "none", | 
|                         duration: 2000 | 
|                      }); | 
|                }) | 
|             }  | 
|         } | 
|     } | 
| </script> | 
|   | 
| <style lang="scss" scoped> | 
|     .setup { | 
|         width: 100%; | 
|         padding: 0 40rpx; | 
|         box-sizing: border-box; | 
|         .setup-tx { | 
|             display: flex; | 
|             flex-direction: column; | 
|             align-items: center; | 
|             justify-content: center; | 
|             margin-top: 64rpx; | 
|             .setup-tx-image { | 
|                 width: 160rpx; | 
|                 height: 160rpx; | 
|                 border-radius: 50%; | 
|                 display: flex; | 
|                 align-items: center; | 
|                 justify-content: center; | 
|                 overflow: hidden; | 
|                 background: rgba(91,190,56,0.3); | 
|                 border: 2rpx solid rgba(91,190,56,0.35); | 
|                 image { | 
|                     width: 100%; | 
|                 } | 
|             } | 
|             .setup-tx-btn { | 
|                 width: 176rpx; | 
|                 height: 48rpx; | 
|                 line-height: 48rpx; | 
|                 text-align: center; | 
|                 border-radius: 32rpx; | 
|                 font-weight: 400; | 
|                 font-size: 26rpx; | 
|                 color: #5BBE38; | 
|                 border: 1rpx solid #5BBE38; | 
|                 background-color: #ffffff; | 
|                 margin-top: 24rpx; | 
|             } | 
|         } | 
|         .setup-list { | 
|             width: 100%; | 
|             display: flex; | 
|             flex-direction: column; | 
|             margin-top: 40rpx; | 
|             .setup-list-item { | 
|                 width: 100%; | 
|                 height: 112rpx; | 
|                 display: flex; | 
|                 align-items: center; | 
|                 justify-content: space-between; | 
|                 border-bottom: 1rpx solid #E5E5E5; | 
|                 .label { | 
|                     font-weight: 400; | 
|                     font-size: 30rpx; | 
|                     color: #222222; | 
|                     flex-shrink: 0; | 
|                     width: 150rpx; | 
|                     margin-right: 30rpx; | 
|                 } | 
|                 .val { | 
|                     flex: 1; | 
|                     height: 100%; | 
|                     display: flex; | 
|                     align-items: center; | 
|                     justify-content: flex-end; | 
|                     input { | 
|                         width: 100%; | 
|                         height: 100%; | 
|                         font-weight: 400; | 
|                         font-size: 28rpx; | 
|                         color: #222222; | 
|                         text-align: right; | 
|                     } | 
|                     button { | 
|                         width: 148rpx; | 
|                         height: 60rpx; | 
|                         line-height: 60rpx; | 
|                         text-align: center; | 
|                         background: #5BBE38; | 
|                         border-radius: 30rpx; | 
|                         font-weight: 500; | 
|                         font-size: 28rpx; | 
|                         color: #FFFFFF; | 
|                         margin: 0 !important; | 
|                     } | 
|                 } | 
|             } | 
|         } | 
|         .setup-sub { | 
|             width: 100%; | 
|             height: 88rpx; | 
|             line-height: 88rpx; | 
|             text-align: center; | 
|             box-shadow: 0rpx 8rpx 12rpx 0rpx rgba(91,190,56,0.16); | 
|             border-radius: 44rpx; | 
|             font-weight: 500; | 
|             font-size: 32rpx; | 
|             color: white; | 
|             background-color: #15CF52; | 
|             margin-top: 80rpx; | 
|             border: 1rpx solid #15CF52; | 
|         } | 
|     } | 
| </style> |