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

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

vxe-upload 上传组件

查看官网 https://vxeui.com

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

上传附件

相关参数说明,具体可以看文档:
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>

效果如下:

在这里插入图片描述

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

相关文章:

  • 探索API接口:技术深度解析与应用实践
  • ARM-V9 RME(Realm Management Extension)系统架构之系统安全能力的系统隔离属性
  • 一个班有n个学生,需要把每个学生的简单材料(姓名和学号)输入计算机保存。然后可以通过输入某一学生的姓名查找其有关资料。
  • python的range() 函数
  • ClickHouse数据管理与同步的关键技术
  • 【一竞技DOTA2】东南亚Bleed战队官宣Emo正式加盟
  • 算法学习笔记(7.3)-贪心算法(最大切分乘问题)
  • 大型企业用什么文件加密软件,五款适合企业的文件加密软件
  • 【数据结构】二叉树运用及相关例题
  • Java基础知识点(反射、注解、JDBC、TCP/UDP/URL)
  • postgressql——Tuple学习(2)
  • Linux日志管理
  • 【社区投稿】给 NdArray 装上 CUDA 的轮子
  • Linux|Linux常用命令合集(一)
  • RTPS协议之Behavior Module
  • Socket网络通讯入门(一)
  • 第十五课,海龟画图:抬笔与落笔函数、画曲线函数
  • 【机器学习】让大模型变得更聪明
  • 5.26机器人基础-DH参数 正解
  • Vue3项目练习详细步骤(第五部分:用户模块的功能)
  • 测试onlyoffice在线预览文件功能
  • Day57 每日温度 + 下一个更大元素Ⅰ
  • nuxt3 api如何透传(不引第3方库)
  • list常用接口模拟实现
  • 前端工程化工具系列(三) —— Stylelint(v16.6.1):CSS/SCSS 代码质量工具
  • crossover mac好用吗 CrossOver Mac怎么下载 Mac用crossover损害电脑吗
  • PHP模块pdo_sqlite.so: undefined symbol: sqlite3_column_table_name
  • 卷积神经网络-奥特曼识别
  • VB.net进行CAD二次开发(四)
  • 3步轻松月入过万,APP广告新模式大揭秘!