Vxe UI vxe-upload vue上传组件,显示进度条的方法

vxe-upload vue 上传组件

查看官网 https://vxeui.com

显示进度条很简单,需要后台支持进度就可以了,后台实现逻辑具体可以百度,这里只介绍前端逻辑。

vue 上传附件

相关参数说明,具体可以看文档:
multiple 是否允许多选
limit-count 数量限制
limit-size 大小限制,单位是 M
fileTypes 格式限制,数组,例如:[‘xlsx’, ‘pdf’, ‘docx’]

<template>
  <div>
    <vxe-upload v-model="imgList" :limit-count="6" :limit-size="50" multiple :upload-method="uploadMethod"></vxe-upload>
  </div>
</template>

<script lang="ts" setup>
import { ref } from 'vue'
import axios from 'axios'

const imgList = ref([])

// 上传附件的方法
const uploadMethod = ({ file, updateProgress }) => {
  const formData = new FormData()
  formData.append('file', file)
  // 调用后台接口
  return axios.post('/demo/api/pub/upload/single', formData, {
    onUploadProgress (progressEvent) {
      // 进度监听事件,这里需要后端支持才能获取到对应的值,如果后台没实现对应的功能,这里获取不到进度值
      const percentCompleted = Math.round((progressEvent.loaded * 100) / (progressEvent.total || 0))
      // 获取到进度之后,调用 updateProgress() 方法更新进度,传一个百分比数字进去即可
      updateProgress(percentCompleted)
    }
  }).then((res) => {
  	// 这里是附件上传到后台后,后台返回得分信息,比如 id、url 之类的,会自动赋值给对应的行
    return {
      ...res.data
    }
  })
}
</script>

效果如下:

在这里插入图片描述

上传图片

imageTypes 格式限制,数组,例如:[‘png’, ‘jpg’, ‘gif’]

<template>
  <div>
    <vxe-upload v-model="imgList" mode="image" :limit-count="3" :limit-size="15" multiple :upload-method="uploadMethod"></vxe-upload>
  </div>
</template>

<script lang="ts" setup>
import { ref } from 'vue'
import axios from 'axios'

const imgList = ref([])

// 上传附件的方法
const uploadMethod = ({ file, updateProgress }) => {
  const formData = new FormData()
  formData.append('file', file)
  // 调用后台接口
  return axios.post('/demo/api/pub/upload/single', formData, {
    onUploadProgress (progressEvent) {
      // 进度监听事件,这里需要后端支持才能获取到对应的值,如果后台没实现对应的功能,这里获取不到进度值
      const percentCompleted = Math.round((progressEvent.loaded * 100) / (progressEvent.total || 0))
      // 获取到进度之后,调用 updateProgress() 方法更新进度,传一个百分比数字进去即可
      updateProgress(percentCompleted)
    }
  }).then((res) => {
  	// 这里是附件上传到后台后,后台返回得分信息,比如 id、url 之类的,会自动赋值给对应的行
    return {
      ...res.data
    }
  })
}
</script>

效果如下:

在这里插入图片描述

  • 21
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值