123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- <template>
- <view>
- <!-- <view class="container">
- <view class="list-cell b-b m-t" @click="inputShowModal('nickname')" hover-class="cell-hover" :hover-stay-time="50">
- <text class="cell-tit">修改昵称</text>
- <text class="cell-more yticon icon-you"></text>
- </view>
- <view class="list-cell b-b" @click="genderShowModal" hover-class="cell-hover" :hover-stay-time="50">
- <text class="cell-tit">修改性别</text>
- <text class="cell-more yticon icon-you"></text>
- </view>
- <neil-modal :show="inputShow" @close="cancel" title="编辑" @cancel="cancel" @confirm="confirm">
- <input v-model="inputContent" style="margin:20upx" placeholder="请输入..." />
- </neil-modal>
- <neil-modal :show="genderShow" @close="cancel" title="选择性别" @cancel="cancel" @confirm="confirmGender">
- <view>
- <radio-group style="text-align:center" @change="genderRadioChange">
- <label v-for="(item, index) in genders" :key="item.value">
- <radio :value="item.value + ''" :checked="index === gender" style="margin:10upx" />{{item.name}}
- </label>
- </radio-group>
- </view>
- </neil-modal>
- </view> -->
- <view style="height: 120rpx;"
- class="solid-top bg-white flex justify-between align-center margin-bottom-sm padding-lr padding-tb-s">
- <view class="title text-black">头像</view>
- <image @click="chooseImg" :src="userInfo.avatar ? userInfo.avatar :'../../static/user/touxiang-@2x.png'"
- class="round" mode="aspectFill"
- style="width: 90rpx;height: 90rpx;"></image>
- </view>
- <view style="height: 100rpx;"
- class="solid-bottom bg-white flex justify-between align-center padding-lr padding-tb-s">
- <view class="title text-black">昵称</view>
- <view class="flex align-center">
- <!-- <view class="nick-name">
- {{ userInfo.nickname ?userInfo.nickname : '未设置昵称' }}
- </view> -->
- <input @blur="changeName" @confirm="changeName"
- v-model="userInfo.nickname" placeholder="请输入昵称" class="text-df" style="text-align: right;" />
- <!-- <image src="../../static/icon/arrow_right.png" mode="aspectFit"
- class="icon-right"></image> -->
- </view>
- </view>
- <view style="height: 100rpx;"
- class="solid-bottom bg-white flex justify-between align-center padding-lr padding-tb-s">
- <view class="title text-black">性别</view>
- <view class="flex align-center">
- <view @click="changeGender(1)" class="flex align-center">
- <image
- :src="gender == 1 ?'/static/cart/selected.png':'/static/cart/select.png'"
- mode="aspectFill"
- style="width: 40rpx;height: 40rpx;"></image>
- <view style="font-size: 28rpx;line-height: 38rpx;color: #5E5E66;padding-left: 20rpx;">男</view>
- </view>
- <view @click="changeGender(2)" class="flex align-center" style="padding-left: 80rpx;">
- <image
- :src="gender == 2 ?'/static/cart/selected.png':'/static/cart/select.png'"
- mode="aspectFit"
- style="width: 40rpx;height: 40rpx;"></image>
- <view style="font-size: 28rpx;line-height: 38rpx;color: #5E5E66;padding-left: 20rpx;">女</view>
- </view>
- </view>
- </view>
- <view style="height: 100rpx;"
- class="solid-bottom bg-white flex justify-between align-center padding-lr padding-tb-s">
- <view class="title text-black">生日</view>
- <view class="flex align-center">
- <picker mode="date" @change="bindDateChange">
- <view class="lem-text-grey content">{{date}}</view>
- </picker>
- <!-- <view class="lem-text-grey content">2000年10月09日</view> -->
- <image src="../../static/icon/arrow_right.png" mode="aspectFit"
- class="icon-right"></image>
- </view>
- </view>
- <view style="height: 100rpx;"
- class=" bg-white flex justify-between align-center padding-lr padding-tb-s">
- <view class="title text-black">手机号</view>
- <view class="lem-text-grey content" style="padding-right: 34rpx;">{{phone}}</view>
- </view>
- <show-modal></show-modal>
- </view>
- </template>
- <script>
- import {
- mapState,
- mapMutations
- } from 'vuex';
- export default {
- data() {
- return {
- date:'选择您的出生日期',
- gender: undefined,
- phone:''
- };
- },
- computed: {
- ...mapState(['userInfo']),
- },
- onLoad() {
- if(this.userInfo.birthday){
- var date = new Date(this.userInfo.birthday)
- var month = date.getMonth() >= 9 ? date.getMonth()+1 : '0'+parseInt(date.getMonth()+1)
- var day = date.getDate() >= 9 ? date.getDate() : '0'+parseInt(date.getDate())
- this.date = date.getFullYear()+'-'+month+'-'+day
- }
- this.gender = this.userInfo.gender
- this.phone = this.userInfo.phone[0]+this.userInfo.phone[1]+this.userInfo.phone[2]+'****'+this.userInfo.phone[7]+this.userInfo.phone[8]+this.userInfo.phone[9]+this.userInfo.phone[10]
- },
- methods: {
- chooseImg(){
- this.$api.uploadImg(1,(res)=>{
- console.log(res)
- this.userInfo.avatar = res
- var info = this.userInfo
- var tempObj = Object.assign({},this.userInfo,info)
- this.userInfo = this.login(tempObj)
- this.syncUser()
- //uni.setStorageSync('userInfo',this.userInfo)
- })
- },
- changeGender(index){
- this.gender = index
- this.userInfo.gender = index
- this.syncUser()
- },
- changeName(){
- this.syncUser()
- },
- syncUser(){
- this.$api.request('post', 'user/app/updateUser', this.userInfo).then(syncRes => {
- //同步过后
- uni.setStorageSync('userInfo', this.userInfo)
- })
- },
- bindDateChange: function(e) {
- console.log(e)
- this.userInfo.birthday = new Date(e.target.value).getTime()
- console.log(this.userInfo.birthday)
- this.date = e.target.value
- this.syncUser()
- },
- ...mapMutations(['login'])
- }
- }
- </script>
- <style lang="scss">
- page {
- background: $page-color-base;
- }
- .solid-top{
- border-top: #F2F2F2 solid 2rpx;
- }
- .solid-bottom{
- border-bottom: #F2F2F2 solid 2rpx;
- }
- .padding-tb-s{
- padding: 15rpx 30rpx;
- }
- .title{
- font-size: 32rpx;
- line-height: 38rpx;
- }
- .content{
- font-size: 28rpx;
- line-height: 38rpx;
- }
- .nick-name{
- color: #2AAB34;
- font-size: 28rpx;
- line-height: 38rpx;
- }
- .icon-right{
- width: 14rpx;
- height: 27rpx;
- margin-left: 18rpx;
- }
- </style>
|