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

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

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


使用的是uView框架 微信小程序配置上传多个u-upload上传图片

场景需求:根据PC端配置项追加图片配置 小程序根据配置的图片数量,图片名称,进行上传图片

难度在于 我们不知道用户会追加多少个图片配置字



分析


这里我们肯定是循环多个 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) // 找到删除掉
          }
        })
      },


452fc0d979e945b6bc746cbab77564b3.gif


以上就是微信小程序配置上传多个u-upload上传感谢大家的阅读


如碰到其他的问题 可以私下我 一起探讨学习


如果对你有所帮助还请 点赞 收藏谢谢~!


关注收藏博客 作者会持续更新…

相关文章
|
6月前
|
JSON 小程序 数据格式
微信小程序的tabbar怎么配置
微信小程序的tabbar怎么配置
462 2
|
3月前
|
iOS开发 开发者
iOS微信分享配置universal links步骤
iOS微信分享配置universal links步骤
1366 58
|
3月前
|
小程序 前端开发 中间件
ThinkPHP 配置跨域请求,使用TP的内置跨域类配置,小程序和web网页跨域请求的区别及格式说明
本文介绍了如何在ThinkPHP框架中配置跨域请求,使用了TP内置的跨域类`\think\middleware\AllowCrossDomain::class`。文章还讨论了小程序和web网页在跨域请求格式上的区别,并提供了解决方案,包括修改跨域中间件源码以支持`Origin`和`token`。此外,还介绍了微信小程序跨域请求的示例和web网页前端发送Axios跨域请求的请求拦截器配置。
ThinkPHP 配置跨域请求,使用TP的内置跨域类配置,小程序和web网页跨域请求的区别及格式说明
|
2月前
|
XML 小程序 JavaScript
小程序入门之项目配置说明和数据绑定
小程序入门之项目配置说明和数据绑定
42 1
|
2月前
|
存储 小程序 安全
微信的开发管理都需要配置什么?
【10月更文挑战第17天】微信的开发管理都需要配置什么?
32 0
|
4月前
|
Linux 网络安全 API
企业微信自定义应用 企业可信IP配置 企业可信ip怎么设置
企业微信自定义应用 企业可信IP配置 企业可信ip怎么设置
|
5月前
|
小程序 JavaScript 前端开发
【微信小程序-原生开发】实用教程06-轮播图、分类页签 tab 、成员列表(含Tdesign升级,切换调试基础库,设置全局样式,配置组件按需注入,添加图片素材,wx:for,生命周期 onLoad)
【微信小程序-原生开发】实用教程06-轮播图、分类页签 tab 、成员列表(含Tdesign升级,切换调试基础库,设置全局样式,配置组件按需注入,添加图片素材,wx:for,生命周期 onLoad)
167 0
|
5月前
|
小程序 开发工具 开发者
【微信小程序-原生开发】实用教程02-添加全局页面配置、页面、底部导航
【微信小程序-原生开发】实用教程02-添加全局页面配置、页面、底部导航
65 0
|
6月前
微信登陆报错:redirect_uri域名与后台配置不一致,错误码:10003 微信支付报错 微信登录报错 微信开发
微信登陆报错:redirect_uri域名与后台配置不一致,错误码:10003 微信支付报错 微信登录报错 微信开发
84 0
|
7月前
|
JSON 小程序 安全
微信小程序介绍、账号申请、开发者工具目录结构详解及小程序配置
微信小程序介绍、账号申请、开发者工具目录结构详解及小程序配置