118 lines
3.4 KiB
Vue
118 lines
3.4 KiB
Vue
|
|
<template>
|
|||
|
|
<view class="u-m-20">
|
|||
|
|
<u-navbar :is-back="true" title="个人信息" :border-bottom="false"></u-navbar>
|
|||
|
|
<view>
|
|||
|
|
<u-cell-group>
|
|||
|
|
<u-cell-item title="头像" :arrow="true" hover-class="none" @click="updateAvatar">
|
|||
|
|
<u-avatar :src="pic" size="100"></u-avatar>
|
|||
|
|
</u-cell-item>
|
|||
|
|
</u-cell-group>
|
|||
|
|
<u-cell-group>
|
|||
|
|
<u-cell-item title="昵称" :arrow="true" hover-class="none" @click="updateName">
|
|||
|
|
{{vuex_user.user.nickName}}
|
|||
|
|
</u-cell-item>
|
|||
|
|
</u-cell-group>
|
|||
|
|
</view>
|
|||
|
|
|
|||
|
|
<u-modal v-model="showModel" @confirm="confirmName" ref="uModal" :async-close="true"
|
|||
|
|
title="设置昵称">
|
|||
|
|
<view class="slot-content">
|
|||
|
|
<u-input v-model="nickName" type="text" :border="false" placeholder="请输入昵称"/>
|
|||
|
|
</view>
|
|||
|
|
</u-modal>
|
|||
|
|
|
|||
|
|
<!-- <view class="u-m-t-20">
|
|||
|
|
<u-button type="primary" @click="subProfile">提交</u-button>
|
|||
|
|
</view> -->
|
|||
|
|
|
|||
|
|
<!-- 如果是微信登录小程序,则获取用户的昵称与头像 -->
|
|||
|
|
<!-- #ifdef MP-WEIXIN -->
|
|||
|
|
<!-- <u-button type="default">使用微信头像与昵称</u-button> -->
|
|||
|
|
<!-- #endif -->
|
|||
|
|
</view>
|
|||
|
|
</template>
|
|||
|
|
|
|||
|
|
<script>
|
|||
|
|
import config from "@/common/config.js" // 全局配置文件
|
|||
|
|
export default {
|
|||
|
|
data() {
|
|||
|
|
return {
|
|||
|
|
pic:uni.getStorageSync('lifeData').vuex_user.user.avatar.includes(config.staticUrl)?uni.getStorageSync('lifeData').vuex_user.user.avatar:config.staticUrl+uni.getStorageSync('lifeData').vuex_user.user.avatar,
|
|||
|
|
nickName:null,
|
|||
|
|
showModel:false,
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
methods: {
|
|||
|
|
updateName(){
|
|||
|
|
this.showModel = true;
|
|||
|
|
},
|
|||
|
|
confirmName() {
|
|||
|
|
if(!this.nickName){
|
|||
|
|
this.showModel = false;
|
|||
|
|
return this.$mytip.toast('请输入昵称')
|
|||
|
|
}
|
|||
|
|
let url = "api/profile/updateProfile";
|
|||
|
|
let vuex_user = uni.getStorageSync('lifeData').vuex_user
|
|||
|
|
let user = vuex_user.user
|
|||
|
|
let userId = user.userId;
|
|||
|
|
this.$u.put(url,{
|
|||
|
|
userId:userId,
|
|||
|
|
nickName:this.nickName,
|
|||
|
|
}).then(data => {
|
|||
|
|
// 关闭
|
|||
|
|
user.nickName = this.nickName
|
|||
|
|
this.$u.vuex('vuex_user', vuex_user);
|
|||
|
|
this.showModel = false;
|
|||
|
|
this.$mytip.toast('昵称修改成功')
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
updateAvatar(){
|
|||
|
|
this.$u.route('/pages/profile/avatar')
|
|||
|
|
},
|
|||
|
|
subProfile(){
|
|||
|
|
// 1.更新vuex中的用户信息
|
|||
|
|
this.$mytip.toast('修改成功')
|
|||
|
|
// 2.页面跳转
|
|||
|
|
uni.switchTab({
|
|||
|
|
url: '/pages/center/center'
|
|||
|
|
})
|
|||
|
|
},
|
|||
|
|
getUserProfile(){
|
|||
|
|
// 如果是微信登录小程序,则获取用户的昵称与头像
|
|||
|
|
// #ifdef MP-WEIXIN
|
|||
|
|
// 此处执行微信才执行
|
|||
|
|
// #endif
|
|||
|
|
var that = this;
|
|||
|
|
uni.getUserProfile({
|
|||
|
|
desc: '获取您的微信信息以授权小程序',
|
|||
|
|
lang: 'zh_CN',
|
|||
|
|
success: UserProfileRes => {
|
|||
|
|
console.log(UserProfileRes)
|
|||
|
|
uni.login({
|
|||
|
|
provider: 'weixin',
|
|||
|
|
success: function(loginRes) {
|
|||
|
|
let avatarUrl = UserProfileRes.userInfo.avatarUrl; //用户头像
|
|||
|
|
let nickName = UserProfileRes.userInfo.nickName; //用户微信名
|
|||
|
|
let gender = UserProfileRes.userInfo.gender;//性别
|
|||
|
|
console.log(avatarUrl);
|
|||
|
|
// 去修改用户的昵称与头像
|
|||
|
|
},
|
|||
|
|
fail(err) {
|
|||
|
|
console.log(err)
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
fail:err=>{
|
|||
|
|
console.log(err)
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
</script>
|
|||
|
|
|
|||
|
|
<style lang="scss" scoped>
|
|||
|
|
.slot-content{
|
|||
|
|
padding: 40rpx;
|
|||
|
|
}
|
|||
|
|
</style>
|