微信小程序配置上传多个u-upload上传

文章介绍了如何在微信小程序中利用uView框架的u-upload组件实现动态配置的多图片上传功能,包括从后端获取配置信息,遍历并创建上传组件,监听上传事件以保存和更新图片URL,以及处理图片删除操作。关键在于动态生成上传组件和管理不同配置的图片数组。
摘要由CSDN通过智能技术生成

微信小程序配置上传多个u-upload上传

使用的是uView框架 微信小程序配置上传多个u-upload上传图片
场景需求:根据PC端配置项追加图片配置 小程序根据配置的图片数量,图片名称,进行上传图片
难度在于 我们不知道用户会追加多少个图片配置字段

在这里插入图片描述

分析

这里我们肯定是循环多个 u-upload 那么我们需要知道上次的地方和位置

<u-upload ></u-upload>

在这里插入图片描述

实现

HTML

<view class="item" :label="item.name" v-for="(item,i) in attachment" :key="i"
								:required='item.required'>
								<u-upload :ref="'uAttac4'" action="false" :show-tips="false" :max-count="item.size"
									:file-list="[]" @on-remove="removeuAttac"  @on-choose-complete="uAttacUpload(item.name,'imgs'+String(i),item.required)" @on-change="attacChange">
								</u-upload>
							</view>

JS

  • 首先从后端获取 配置追加图片的信息
async getApi() {
				this.attachment = [] // 初始化数组
				let data = await api() // 获取后端配置信息
				this.attachment = data.data
				this.attachment.forEach((item,index)=>{
					this.newImgs[`imgs${index}`] = [] // 这里我们需要记录有多少个图片配置
				})
	},

在这里插入图片描述

  • 属性
    首先分析用户点击时先进行获取到 点击的是哪个配置字段的信息再进行赋值信息
    通过 @on-choose-complete 先拿到点击的数据 进行记录
async uAttacUpload(name,index,required) {  这里都是记录数据用的
				this.imgName = index
				this.recordName = name
				this.imgRequired = required
	}
ttacUpload(index,list){
				 this.newImgs[this.imgName] = list // 进行赋值
			},

通过 @on-change 属性进行赋值

//  图片配置
			async attacChange(resa, index, lists,){
				const data = await Oss(lists[index]["url"]);
				if (data.code === 0) {
					this.newImgs[this.imgName][index].url = data.date.url // 将url地址改成 oss地址
				  this.newAttachment.push({// 这里我们讲添加的图片存储到新的数组里面
				  	type: "image",
				  	name: this.recordName, // 做好记录
				  	url: data.date.url,
				  }) 
				} else {
				  uni.showToast({
				    title: "信息错误",
				    icon: 'none'
				  })
				}
				
			},
  • 删除功能
removeuAttac(index){
				let newArr = []
				let newUrl = []
				this.attachment.forEach((item,index)=>{ // 拿到所有的数据
					newArr =[...newArr,...this.newImgs[`imgs${index}`]] 
				})
				newUrl = newArr.map((item)=> {  // 拿到url存到新的数组里面
					return item.url
				})
				this.newAttachment.forEach((item,index)=>{
					if(!newUrl.includes(item.url)){
						this.newAttachment.splice(index,1) // 找到删除掉
					}
				})
				
			},

在这里插入图片描述
以上就是微信小程序配置上传多个u-upload上传感谢大家的阅读
如碰到其他的问题 可以私下我 一起探讨学习
如果对你有所帮助还请 点赞 收藏谢谢~!
关注收藏博客 作者会持续更新…

  • 15
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 15
    评论
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

下一站丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值