vue 微信小程序 uniapp 微信头像上传裁剪功能

效果如图:

在这里插入图片描述
操作流程:
个人中心–点击设置头像–选择图片-裁剪–选取–上传

template

<view class="meilan" style="position: relative;">
	<u-row justify="space-between">
		<u-col span="3">设置头像</u-col>
		<u-col span="8">
			<view class="picselect">
				<view class="usernameyang">
					<view class="user-img">
						<image :src="userImg" mode="" v-if="userImg !=null"></image>
						<image :src="userImg" mode="" v-else></image>
					</view>
				</view>
				
			</view>
		</u-col>
		<u-col span="1"><u-icon name="arrow-right"></u-icon></u-col>
	</u-row>
	<cropper selWidth="660rpx" selHeight="660rpx" @upload="myUpload"  avatarStyle="width:100%;height:110rpx;position:absolute;top:0rpx;left:0px;">
	</cropper>
</view>

script

<script>
//引入组件
import cropper from "@/packageMy/facecropper.vue"
export default {
	onLoad(options) {
		this.getUserInfo()
	},
	components: {
	  cropper
	},
	data() {
		return {
			userinfo:{},
			userImg:null
		};
	},
	methods:{
		//查看当前用户信息
		getUserInfo() {
			uni.showLoading();
			this.$api.task.roleIdList().then(res => {
				uni.hideLoading();
				this.userinfo = res.data.sysUser;
				if(res.data.sysUser.avatar){//用户头像
					this.userImg = res.data.sysUser.avatar
				}else{
					this.userImg = null
				}
			})
		},
		//上传返回图片
		myUpload(rsp) {
		  	const self = this;
		  	self.userImg = rsp.path;
			this.gosubmit()
		},
		gosubmit(){
			let imgData= {avatar: this.userImg}
			this.$api.mine.addImg(imgData).then(res => {
				uni.hideLoading();
				if (res.code == 1) {
					uni.showToast({
						title:"图片上传失败",
						icon:"none"
					})
					return
				}
				if (res.code == 0) {
					uni.showToast({
						title:"图片上传成功",
						icon:"none"
					})
					setTimeout(function() {
						uni.switchTab({
							url:"/pages/mine/mine"
						})
					}, 1000);
				}
			})
		}
	}
}
</script>

组件文件
facecropper.vue 点击此处

style

.picselect{
	position: relative;
	margin: 0 auto;
	text-align: center;
}
.usernameyang{
	width: 100%;
	height: 110rpx;
	line-height: 110rpx;
	box-sizing: border-box;
	text-align: right;
	padding-right: 20rpx;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	font-size: 30rpx;
	color: #333;
}
.user-img{
	width: 80rpx;
	height: 80rpx;
	border-radius: 8rpx;
	float: right;
	margin-top: 17rpx;
}
.user-img image{
	width: 100%;
	height: 100%;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/631725.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

开源的图形化Windows软件安装升级方案:WingetUI

WingetUI&#xff1a;简化数字生活&#xff0c;WingetUI让软件管理轻松便捷- 精选真开源&#xff0c;释放新价值。 概览 WingetUI是在GitHub上开发的一个实用工具&#xff0c;专为Windows用户设计&#xff0c;旨在为常见的命令行包管理工具&#xff08;如Winget、Scoop、Pip、…

即刻报名:南京智博会|2024南京国际人工智能展览会

在21世纪的科技浪潮中&#xff0c;人工智能&#xff08;AI&#xff09;无疑已经跃升为一个全新的战略制高点&#xff0c;成为驱动社会经济发展的重要引擎。2024年11月&#xff0c;南京这座历史与现代交融的城市&#xff0c;将举办一场科技界的盛宴——2024南京国际人工智能展览…

指标体系建设方案(36页PPT)

一、资料介绍 《指标体系建设方案》这份36页的PPT资料包&#xff0c;是针对当前组织发展需求而精心设计的一套全面、系统的指标构建方案。本资料包从理论到实践&#xff0c;深入浅出地阐述了指标体系建设的必要性、原则、步骤及实施要点&#xff0c;旨在帮助组织建立起科学、合…

在Python中防止某些字段被Pickle序列化

在Python中&#xff0c;如果你想防止某些字段被pickle序列化&#xff0c;可以使用__reduce__()方法来自定义pickle行为。__reduce__()方法允许你返回一个元组&#xff0c;其中包含要在对象被pickle时调用的函数以及传递给该函数的参数。下面就是我遇到的问题以及最终解决方案。…

Mamba:7 VENI VIDI VICI

若在阅读过程中有些知识点存在盲区&#xff0c;可以回到如何优雅的谈论大模型重新阅读。另外斯坦福2024人工智能报告解读为通识性读物。若对于如果构建生成级别的AI架构则可以关注AI架构设计。技术宅麻烦死磕LLM背后的基础模型。 序列模型的效率与有效性之间的权衡取决于状态编…

【自然语言处理】形式语言和自动机

实验名称 形式语言和自动机 实验目的&#xff1a;熟悉形式语言和自动机&#xff0c;设计程序实现有限自动机&#xff0c;学习对字符串进行合法性检测&#xff0c;使用有限自动机判断字符串是否是可以被接受的。书写出能够成功运行的代码。 实验内容&#xff1a;状态集为{ q0,…

职业生涯第一课---“Redis分布式锁优化:确保唯一性与效率“

前言 最近因为刚入职公司开启自己的实习生涯&#xff0c;工作和毕设论文同步进行&#xff0c;导致有段时间没更新博客了&#xff0c;今天来分享一下最近学到的一些知识。 场景介绍 BOSS让我写一些接口&#xff0c;他提出这样一个需求&#xff0c;该接口的参数有多个&#xf…

linux系统查看CPU信息

1、查看cpu型号 [rootMaster ~]# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 40。Intel(R) Xeon(R) CPU E5-2650 v3 2.30GHz 2、查看系统中实际物理CPU的颗数&#xff08;物理&#xff09; [rootMaster ~]# grep physical id /proc/cpuinfo | sort | uniq | w…

IT行业现状与探索未来发展趋势

​​​​​​​ 我眼中的IT行业现状与未来趋势 随着技术的不断进步&#xff0c;IT行业已成为推动全球经济和社会发展的关键力量。从云计算、大数据、人工智能到物联网、5G通信和区块链&#xff0c;这些技术正在重塑我们的生活和工作方式。你眼中IT行业的现状及未来发展趋势是…

Python函数之旅专栏(导航)

Python内置函数(参考版本:3.11.8)AELRabs( )enumerate( )len( )range( )aiter( )eval( )list( )repr( )all( )exec( )locals( )reversed( )anext( )round( )any( ) ascii( )FM  filter( )map( )S float( )max( )set( )Bformat( )memoryview( )setattr( )bin( )frozenset( )…

Spring实现数据库读写分离(MySQL实现主从复制)

目录 1、背景 2、方案 2.1 应用层解决: 2.2 中间件解决 3、使用Spring基于应用层实现 3.1 原理 3.2 DynamicDataSource 3.3 DynamicDataSourceHolder 3.4 DataSourceAspect 3.5 配置2个数据源 3.5.1 jdbc.properties 3.5.2 定义连接池 3.5.2 定义DataSource 3.6…

【Linux】线程周边001之多线程

&#x1f440;樊梓慕&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》《算法》 &#x1f31d;每一个不曾起舞的日子&#xff0c;都是对生命的辜负 目录 前言 1.线程的理解 2.地址…

停车场车位引导管理系统工作原理是什么,由哪些软硬件设备组成?

在现代城市中&#xff0c;随着汽车保有量的持续增长&#xff0c;停车难成为了许多城市面临的共同问题。有效管理停车场资源&#xff0c;提高车位利用率&#xff0c;减少寻找停车位的时间&#xff0c;对于缓解交通拥堵、提高城市运行效率具有重要意义。车位引导管理系统正是为了…

YOLOv8改进 | 图像修复 | 适用多种复杂场景的全能图像修复网络AirNet助力YOLOv8检测(全网独家首发)

一、本文介绍 本文给大家带来的改进机制是一种适用多种复杂场景的全能图像修复网络AirNet&#xff0c;其由对比基降解编码器&#xff08;CBDE&#xff09;和降解引导修复网络&#xff08;DGRN&#xff09;两个神经模块组成&#xff0c;能够在未知损坏类型和程度的情况下恢复受…

Java | Leetcode Java题解之第91题解码方法

题目&#xff1a; 题解&#xff1a; class Solution {public int numDecodings(String s) {int n s.length();// a f[i-2], b f[i-1], cf[i]int a 0, b 1, c 0;for (int i 1; i < n; i) {c 0;if (s.charAt(i - 1) ! 0) {c b;}if (i > 1 && s.charAt(i …

主流短视频评论采集python爬虫(含一二级评论内容)

声明 仅用于学习交流&#xff0c;不用于其他用途 正文 随着主流短视频评论采集更新需要登录&#xff0c;由于不懈的努力&#xff0c;攻破这一难点&#xff0c;不需要登录采集作品所有评论信息 话不多说上代码看效果&#xff1a; 输入作品id: 这样就拿到评论信息了&#xff…

小程序|锁定查询功能如何使用?

学生或家长想要实现自己查询完成后&#xff0c;任何人都无法再次查询&#xff0c;老师应该如何设置&#xff1f;易查分的【锁定查询功能】就可实现&#xff0c;下面教大家如何使用吧。 &#x1f4cc;使用教程 &#x1f512;锁定查询功能介绍 ✅学生或家长自主锁定&#xff1a;开…

webpack优化构建体积示例-并行压缩:

uglifyjs-webpack-plugin和terser-webpack-plugin都可以开启多进程并进行压缩来减小构件体积大小。 当在 Webpack 配置中启用 minimize: true 时&#xff0c;构建时间通常会增加&#xff0c;这是因为 Webpack 会在构建过程中添加一个额外的步骤&#xff1a;代码压缩。代码压缩是…

分布式搜索——ElasticSeach简介

一般都用数据库存储数据&#xff0c;然后对数据库进行查询获取数据&#xff0c;但是当数据量很大时&#xff0c;查询效率就会很慢&#xff08;具体下面会讲到&#xff09;&#xff0c;所以这种情况下就会使用到ElasticSeach ElasticSeach的基本介绍 ElasticSeach是一 款非常强…

202012青少年软件编程(Python)等级考试试卷(三级)

第 1 题 【单选题】 在Python正则表达式中&#xff0c;用来匹配任意空白字符的是&#xff08; &#xff09;。 A &#x1f612; B :S C :d D &#x1f604; 正确答案:A 试题解析: 第 2 题 【单选题】 在Python正则表达式中&#xff0c;用来匹配任意非数字字符的是&…