当前位置: 首页 > news >正文

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

微信小程序配置上传多个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.datathis.attachment.forEach((item,index)=>{this.newImgs[`imgs${index}`] = [] // 这里我们需要记录有多少个图片配置})},

在这里插入图片描述

  • 属性
    首先分析用户点击时先进行获取到 点击的是哪个配置字段的信息再进行赋值信息
    通过 @on-choose-complete 先拿到点击的数据 进行记录
async uAttacUpload(name,index,required) {  这里都是记录数据用的this.imgName = indexthis.recordName = namethis.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上传感谢大家的阅读
如碰到其他的问题 可以私下我 一起探讨学习
如果对你有所帮助还请 点赞 收藏谢谢~!
关注收藏博客 作者会持续更新…

http://www.lryc.cn/news/103756.html

相关文章:

  • python使用win32com库实现对Excel的操作
  • <Maven>项目依赖导入Maven本地仓库命令
  • 爬虫006_python中的运算符_算术运算符_赋值运算符_复合赋值运算符_比较运算符_逻辑运算符_逻辑运算符性能提升---python工作笔记024
  • CPU Architecture Methodologies
  • Spring的@Scheduled
  • IP隧道技术原理
  • Docker私有仓库
  • LLM微调 | Prefix-Tuning, Prompt-Tuning, P-tuning, P-tuning-v2
  • Ansible 的脚本 --- playbook 剧本
  • CSP-J模拟赛 / 买文具
  • leecode算法--每日一题1
  • LViT:语言与视觉Transformer在医学图像分割
  • 蓝桥杯上岸每日N题 第五期(山)!!!
  • IDEA Writing classes... 比较慢
  • opencv中轮廓相关属性
  • Leetcode 144. 二叉树的前序遍历
  • 医学影像PACS系统源码:多功能服务器和阅片系统
  • php 生成连续递增的Excel列索引 可以控制多少列
  • Openstack等私有云
  • MySQL 8.0详细安装配置教程
  • pytest 入门
  • 分布式缓存数据一致性-解决方案
  • Java设计模式-享元模式
  • idea模块的pom.xml被划横线,不识别的解决办法
  • ffmpeg 中 av_log 是怎样工作的?
  • HTML+CSS+JavaScript:轮播图自动播放
  • python 自动化数据提取之正则表达式
  • 分布式事务之本地事务
  • PyTorch 初级教程:构建你的第一个神经网络
  • SpringBoot使用MyBatis Plus + 自动更新数据表