uniapp上传图片,上传头像,多张图片上传,图片回显,图片删除,图片预览

news2024/9/17 7:39:10

效果图:

上代码不废话:

<template>
	<view class="familyCreateMemory">
		<view class="box">
			<view class="title">
				<view>文字:</view>
				<textarea :maxlength="-1"/>
			</view>
            
            <!-- 这里开始是上传图片 -->
			<view class="img">
				<view>图片:</view>
				<view class="clearfix tu">
					<view class="item" v-for="(item,index) in obj.images">
						<view class="shanchu" @click="delImg(index)">+</view>
						<image :src="item" mode="aspectFill" @click="yulan(index)"></image>
					</view>
					<view class="jianto" v-if="obj.images.length<9" @click="shangchuantupian">+</view>
				</view>
			</view>
			<view class="btn">
				<button>发布</button>
			</view>
		</view>
	</view>
</template>

<script>
	import baseURL from '@/config/baseURL.js'
	export default{
		data(){
			return{
				obj:{
					content:'',
					images: [],
				}
			}
		},
		methods:{
			// 上传图片
			shangchuantupian(){
				const token = uni.getStorageSync('token');
				uni.chooseImage({
					count: 9 - this.obj.images.length,	//减去已有的
					success: (chooseImageRes) => {
						const tempFilePaths = chooseImageRes.tempFilePaths;
						// 多个图片上传
						tempFilePaths.forEach((item,index) => {
							uni.uploadFile({
								url: baseURL.baseURL+'/admin-api/infra/file/upload', //仅为示例,非真实的接口地址
								filePath: tempFilePaths[index],
								name: 'file',
								header: {
									'content-type': 'multipart/form-data',
									['tenant-id'] : '1',
									"Authorization": 'Bearer ' + token.accessToken
								},
								success: (uploadFileRes) => {
									let res = JSON.parse(uploadFileRes.data)
									if(res.data){
										this.obj.images.push(res.data)
									}
								},
								fail:(uploadFileRes) => {
									uni.$u.toast('上传图片失败')
								},
							});
						})
					},
					fail:()=>{
						uni.$u.toast('上传图片失败')
					}
				})
			},
			// 删除上传的图片
			delImg(index){
				uni.showModal({
					title: '提示',
					content: '是否删除该照片?',
					success: (res) => {
						if (res.confirm) {
							this.obj.images.splice(index,1)
						}
					}
				});
			},
			// 预览图片
			yulan(index){
				uni.previewImage({
					current: index,
					urls:this.obj.images,
				});
			}
		}
	}
</script>

<style scoped lang="less">
	.familyCreateMemory{
		width: 100%;
		padding-bottom: calc(env(safe-area-inset-bottom) + 30rpx);
		.box{
			padding: 40rpx;
			.title{
				textarea{
					width: 100%;
					height: 250rpx;
					background-color: #DEDEDC;
					border-radius: 8rpx;
					margin: 20rpx 0;
				}
			}
			.img{
				.tu{
					margin: 20rpx 0;
					.item{
						float: left;
						width: 210rpx;
						height: 210rpx;
						border-radius: 8rpx;
						margin-right: 20rpx;
						margin-bottom: 20rpx;
						position: relative;
						overflow: hidden;
						&:nth-child(3n){
							margin-right: 0;
						}
						.shanchu{
							width: 80rpx;
							height: 80rpx;
							line-height: 120rpx;
							font-size: 42rpx;
							text-align: center;
							background-color: rgba(102, 102, 102, 0.3);
							transform: rotate(45deg);
							color: #fff;
							position: absolute;
							z-index: 1;
							right: -20px;
							top: -20px;
						}
						image{
							width: 100%;
							height: 100%;
						}
					}
					.jianto{
						float: left;
						width: 210rpx;
						height: 210rpx;
						color: #fff;
						background-color: #DEDEDC;
						border-radius: 8rpx;
						font-size: 200rpx;
						text-align: center;
						line-height: 190rpx;
					}
				}
				
			}
			.btn{
				margin-top: 20rpx;
				button{
					width: 150rpx;
					margin: 0;
					color: #fff;
					background-color: #A62335;
					border-radius: 20rpx;
				}
			}
		}
	}
</style>

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

uniapp微信小程序投票系统实战 (SpringBoot2+vue3.2+element plus ) -后端架构搭建

锋哥原创的uniapp微信小程序投票系统实战&#xff1a; uniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )_哔哩哔哩_bilibiliuniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )共计21条视频…

Linux查看物理CPU个数、核数、逻辑CPU个数

查看CPU信息&#xff08;型号&#xff09; [rootAAA ~]# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 24 Intel Xeon CPU E5-2630 0 2.30GHz 查看物理CPU个数 [rootAAA ~]# cat /proc/cpuinfo| grep “physical id”| sort| uniq| wc -l 2 查看每个物理CPU中co…

【Adobe Acrobat DC】弹窗:正在准备文档以供阅读,请稍候

问题描述 Acrobat打开PDF就会有这个弹窗&#xff0c;要所有扫一遍才能看&#xff0c;要等特别久 解决办法1 参考这篇博客评论区里给出的方法 1. 转到“编辑”>“首选项”>“朗读”。 2. 在“屏幕阅读器选项”下面&#xff0c;选择“仅阅读当前可见页面”。 再次打开…

Linux内核源码下载与在线浏览10种方式

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

顶顶通呼叫中心中间件配置指定振铃时间挂断(mod_cti基于FreeSWITCH)

介绍 一般情况默认是振铃60秒挂断&#xff0c;但是如果想振铃10秒就挂断可以根据下方配置方法一步步去配置。 一、通过线路控制振铃时间 打开ccadmin-》点击线路-》点击你需要控制振铃时间的线路-》配置呼叫超时-》点击更新。 二、通过队列外呼控制振铃时间 打开ccadmin-》…

2024了,如何学习OpenCV?

不知道提问这位有没有了解卷积神经网络这个东西&#xff0c;早在二三十年之前就有手写数字识别了&#xff0c;但是这技术也就是2012年开始火爆了的&#xff0c;所以你看到的当下的热门技术很多都是沉寂了几年、十几年甚至几十年的。 当下对传统的cv技术有些冲击&#xff0c;那…

【计算机毕业设计】SSM二手交易网站

项目介绍 该项目分为前后台&#xff0c;前台普通用户角色&#xff0c;后台管理员角色。 管理员主要功能如下&#xff1a; 登陆,商品分类管理,商品管理,商品订单管理,用户管理等功能。 用户角色主要功能如下&#xff1a; 包含以下功能&#xff1a;查看所有商品,用户登陆注册…

DHTMLX Spreadsheet v5.1.1 Crack

DHTMLX Spreadsheet 5.1 具有新主题、简化的数字格式本地化、与框架的实时集成演示等 推出 DHTMLX Spreadsheet v5.1。新版本提供了一组有用的功能&#xff0c;这对开发人员和最终用户都有吸引力。 首先&#xff0c;新的电子表格版本提供了 4 个内置主题&#xff0c;可以根据您…

4.vue学习(21-25)

文章目录 21.天气案例-监视属性引入22.监视属性23.深度监视24 监视的简写25 监视属性对比计算属性 21.天气案例-监视属性引入 效果&#xff1a;点击按钮&#xff0c;切换凉爽为炎热 vscode 开发vue的插件;vue 3 snippets 初步实现方式。计算属性&#xff1a; 案例中的坑&#…

不想root,但想远程控制vivo手机?这个方法不用root也能做到

远程控制vivo手机不用root&#xff01;今天给大家讲讲免Root情况下&#xff0c;笔记本电脑如何远程控制vivo手机。 在电脑和手机都安装AirDroid&#xff0c;这是免Root的关键。 下载AirDroid个人版 | 远程控制安卓手机软件下载下载AirDroid个人版进行文件传输和管理、远程控制安…

Fiddler抓包之【 抓取https请求 】详解教程

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试」资…

力扣hot100 二叉搜索树中第k小的元素 分治 中序遍历

&#x1f468;‍&#x1f3eb; 题目地址 &#x1f468;‍&#x1f3eb; 参考题解 &#x1f60b; 分治 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int va…

uni-app 从入门到精通 3天快速掌握 文字版 学习专栏

大家好&#xff0c;我是java1234小锋老师。 近日锋哥又卷了一波课程&#xff0c;uni-app 从入门到精通 3天快速掌握教程&#xff0c;文字版视频版。三天掌握。 2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中..._哔哩哔哩_bilibili2023版uniapp从…

报告解读:中国新一代终端安全市场洞察,2023

报告解读 中国新一代终端安全市场洞察 2023 安全防御的“最前线” 01 混沌的企业安全 以下来自CSO们最关注的安全热点问题&#xff1a; Q1我们如何看待当下泛化的终端安全&#xff0c;混合的IT环境企业面临的安全变化&#xff1f; IDC&#xff1a;伴随着全球数字化转型的快…

竞赛保研 基于机器视觉的手势检测和识别算法

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于深度学习的手势检测与识别算法 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f9ff; 更多资料, 项目分享&#xff1a; https://gitee.com/dancheng…

Swift并发的结构化编程

并发&#xff08;concurrency&#xff09; 早期的计算机 CPU 都是单核的&#xff0c;操作系统为了达到同时完成多个任务的效果&#xff0c;会将 CPU 的执行时间分片&#xff0c;多个任务在同一个 CPU 核上按时间先后交替执行。由于 CPU 执行速度足够地快&#xff0c;给人的错觉…

TDengine 荣获 2023 Frost Sullivan 客户价值领导力奖

近日&#xff0c;TDengine 被国际知名咨询公司沙利文&#xff08;Frost & Sullivan&#xff09;评为全球最佳工业数据管理解决方案&#xff0c;赢得了 2023 年客户价值领导力奖&#xff08;Frost & Sullivan duoxie&#xff09;&#xff0c;该奖项重点关注引领行业创新…

S32K312软件看门狗之Software Watchdog Timer (SWT)

S32DS的SDK中提供了Wdg&#xff0c;是属于MCAL层的&#xff0c;配置有点复杂&#xff0c;还需要以来Gpt、Mcu和Platform框架里的东西&#xff0c;配置到已经开发好的工程中还容易出现配置问题。本文主要讲解Software Watchdog Timer (SWT)的软件看门狗配置和使用示例&#xff0…

易点易动固定资产管理系统:集成飞书,助力企业全生命周期固定资产管理

易点易动固定资产管理系统&#xff1a;集成飞书&#xff0c;助力企业全生命周期固定资产管理 在现代商业环境中&#xff0c;固定资产管理对企业的运营和发展至关重要。为了提高管理效率和降低成本&#xff0c;我们引入了易点易动固定资产管理系统&#xff0c;该系统集成了飞书&…

技术学习|CDA level I 描述性统计分析(数据的描述性统计分析)

技术学习|CDA level I 描述性统计分析&#xff08;数据的描述性统计分析&#xff09; 数据的描述性统计分析常从数据的集中趋势、离散程度和分布形态3个方面进行。 一、集中趋势 集中趋势是指数据向其中心值靠拢的趋势。测量数据的集中趋势&#xff0c;主要是寻找其中心值。…