Files
RentWeAppFront/pages/profile/profile.vue
2025-11-14 11:39:33 +08:00

118 lines
3.4 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<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>