uniapp2023年微信小程序头像+昵称分别获取

1、DOM

javascript 复制代码
<view class="m-user">
	<view class="user-info">
		<!--头像 GO-->
		<button class="avatar avatar-wrapper" open-type="chooseAvatar" @chooseavatar="onChooseAvatar"
			slot="right">
			<image mode="aspectFill" src="默认的空图" v-if="!userinfo.avatar"></image>
			<image mode="aspectFill" :src="userinfo.avatar" v-else></image>
		</button>
		<!--昵称  GO-->
		<view class="nickname">
			<view class="tit" v-if="userinfo.nickname">
				<input  type="nickname" style="font-size:28rpx;flex: 1;" placeholder="请输入昵称"
					v-model="userinfo.nickname" @blur="getNickname" />
				<view class="font-24 mt40">
					{{userinfo.username}}
				</view>
			</view>
			<view class="tit" v-else>
				<text class="auth-login" @click="$zeropo.to(`/pages/users/login`)">授权登录</text>
			</view>
		</view>
	</view>
</view>

3、JS

javascript 复制代码
data() {
	return {
		HTTP_URL: this.$HTTP_URL,//服务器域名,按自己的项目修改
		userinfo: {
			nickname: '',//昵称
			username: '',//微信授权的字符
			avatar: '',//头像
		},
	}
},
/*methods*/
// 获取头像
onChooseAvatar(e) {
	let token = uni.getStorageSync('token')
	uni.showLoading()
	uni.uploadFile({
		url: this.HTTP_URL + '/common/upload',//上传接口,按自己的项目修改
		header: {
			token: token
		},
		filePath: e.detail.avatarUrl,
		name: 'file',
		success: (res) => {
			const r = JSON.parse(res.data);
			this.$api.post({
				url: '/user/profile',//更新用户信息的接口,按自己的项目修改
				data: {
					avatar: this.HTTP_URL + r.data.fileName,
				},
				success: re => {
					setTimeout(function() {
						uni.showToast({
							title: "设置成功"
						})
						uni.hideLoading()
					}, 1000)
					uni.stopPullDownRefresh();
				},
				fail: err => {

				},
			});

		},
		fail: (e) => {
			console.log('e', e)
		}
	});

},
// 获取昵称
getNickname(e) {
	this.nickname = e.detail.value
	this.$api.post({
		url: '/user/profile',更新用户信息的接口,按自己的项目修改
		data: {
			nickname: this.nickname,
		},
		success: re => {
			setTimeout(function() {
				uni.showToast({
					title: "设置成功"
				})
				uni.hideLoading()
			}, 1000)
			uni.stopPullDownRefresh();
			this.getUserinfo();//刷新用户信息,没写这个方法,按自己的项目修改,如果是表单页面则去掉
		},
		fail: err => {
			console.log('e', err)
		},
	});
},

3、CSS

css 复制代码
.m-user {
	height: 150rpx;
	padding: 30rpx 30rpx 0;
	border-bottom: 1rpx solid #f7f7f7;
	.user-info {
		display: flex;
		align-items: center;
		justify-content: space-between;
		.avatar {
			width: 130rpx;
			width: 130rpx;
			border: 0;
			background: none;
			padding: 0;
			margin: 0;
			line-height: 0;

			image {
				width: 130rpx;
				height: 130rpx;
				border-radius: 10rpx;
				overflow: hidden;
			}
		}

		.nickname {
			width: 550rpx;
			height: 130rpx;
			text-align: left;
			float: left;
			.tit {
				font-size: 30rpx;
				width: 100%;
				color: #1d363a;
				float: left;
				.auth-login {
					width: 140rpx;
					height: 50rpx;
					font-size: 26rpx;
					background: #fffae7;
					float: right;
					line-height: 50rpx;
					border-radius: 25rpx;
					text-align: center;
					color: #fecf5d;
				}

			}

		}

	}

}

3、效果图


4、发布申请隐私后,返回结果

发布申请隐私后,返回头像结果!

发布申请隐私后,返回头像结果!

发布申请隐私后,返回头像结果!

相关推荐
2501_915918411 小时前
iOS 26 查看电池容量与健康状态 多工具组合的工程实践
android·ios·小程序·https·uni-app·iphone·webview
2501_915909063 小时前
iOS 架构设计全解析 从MVC到MVVM与使用 开心上架 跨平台发布 免Mac
android·ios·小程序·https·uni-app·iphone·webview
2501_9160088913 小时前
Web 前端开发常用工具推荐与团队实践分享
android·前端·ios·小程序·uni-app·iphone·webview
2501_9159214313 小时前
“HTTPS 个人化”实战,个人站点与设备调试的部署、验证与抓包排查方法
网络协议·http·ios·小程序·https·uni-app·iphone
菜鸟una13 小时前
【微信小程序 + 消息订阅 + 授权】 微信小程序实现消息订阅流程介绍,代码示例(仅前端)
前端·vue.js·微信小程序·小程序·typescript·taro·1024程序员节
韩立学长14 小时前
【开题答辩实录分享】以《租房小程序的设计和实现》为例进行答辩实录分享
java·spring boot·小程序
從南走到北15 小时前
JAVA国际版一对一视频交友视频聊天系统源码支持H5 + APP
java·微信·微信小程序·小程序·音视频·交友
future_studio15 小时前
聊聊 Unity(小白专享、C# 小程序 之 联机对战)
unity·小程序·c#
隔壁程序员老王16 小时前
基于 Python 的坦克大战小程序,使用 Pygame 库开发
python·小程序·pygame·1024程序员节
從南走到北16 小时前
同城派送小程序
微信·微信小程序·小程序