Vue + View-ui-plus Upload实现手动上传

server/2024/10/4 11:38:39/

本文实现Vue + Upload组件多文件手动上传支持上传图片(image)、压缩文件(zip/rar)、表格(excel)、pdf

一、dom结构

<Row><Col :span="19"></Col><Col :span="2"><div class="ivu-btn-upload btn-white" style="color: #FB773B;" @click="handleDelImg">删除</div></Col><Col :span="3"><div class="ivu-btn-upload btn-orange" @click="handleUploadImg"><img src="@/assets/images/icon-img-upload.png" width="30" />上传影像</div></Col>
</Row>
<div class="image-ul-box"><div class="image-upload"><Uploadref="upload":show-upload-list="false":default-file-list="list":on-success="handleSuccess"accept="image/*,.xls,.xlsx,.pdf,.doc,.docx,.zip,.rar":format="['jpg','jpeg','png', 'xls', 'pdf', 'word','doc', 'docx' ,'xlsx', 'rar', 'zip']":on-format-error="handleFormatError":before-upload="handleBeforeUpload"multipleaction="#"style="display: inline-block;width:68px;"><div style="width: 68px;height:58px;line-height: 58px;"><!-- <Icon type="ios-add" size="50"></Icon> --><img src="@/assets/images/img-upload.png" width="50" /><p style="color: #bdbdbd;font-size: 16px;line-height: 1;">添加文件</p></div></Upload></div><div class="image-ul-li" v-for="item,index in list" :key="'image'+index"><div class="image-ul-li-img"><Image :src="item.url" fit="cover" width="100%" height="100%" /><div class="image-li-img-check" v-if="item.statusFlag == 0"><Checkbox v-model="item.check" /></div><div class="image-li-status" v-if="item.statusFlag == 0">未上传</div></div><p class="image-ul-li-txt"><Ellipsis :text="item.name" :length="10" tooltip /></p></div>
</div>

二、js方法

javascript">handleUploadImg() {let checkList = this.list.filter(item => item.check == true)if (checkList.length == 0) {this.$Message.error("请勾选需要上传的文件!")return}this.list.forEach(item => {if (item.check) {let formData = new FormData()formData.append("file", item.files)formData.append("businessNo", this.proposalNo)uploadFile(formData).then(res => {if (res.code == "0000") {let result = res?.result?.imgUrlsif (result.length > 0) {item.statusFlag = 1item.check = false}} else {this.$Message.error(res.message)}})}})},handleSuccess(file) {},handleFormatError(file) {this.$Message.error({background: true,content: '文件格式错误,请选择正确的文件重新上传!'});},handleBeforeUpload(file) {console.log(file, "11111111")let Maxsize = file.size > 30 * 1024 * 1024;if (Maxsize) {this.$Message.warning({content: '文件体积过大,图片大小不能超过30M'});return false}let imgTypeArr = ["image/png", "image/jpg", "image/jpeg", "image/gif"]let imgType = imgTypeArr.indexOf(file.type) !== -1if (imgType) {const reader = new FileReader()reader.readAsDataURL(file)reader.onload = (e) => {this.list.push({name: file.name,check: false,statusFlag: 0,url: reader.result,files: file})}} else {this.list.push({name: file.name,check: false,statusFlag: 0,url: this.getAssetsImgUrl(file.name.substr(file.name.lastIndexOf(".") + 1)),files: file})}return false},


http://www.ppmy.cn/server/96715.html

相关文章

Linux 为何不把图形用户界面写入内核?

Linux 为何不把图形用户界面写入内核&#xff1f; 早先是没能力&#xff0c;之后是没必要&#xff0c;现在是不应该 先插一句&#xff0c;现代Windows9的图形也不在内核里&#xff0c;只是还保留一组兼容。 90年代时的计算机都是两套图形系统:一套是普通软件窗口API9&#xff…

Python新手错误集锦(PyCharm)

# 自学Python&#xff0c;用Pycharm作环境。我这个手新到这时我学习的第一个编程软件&#xff0c;且本人专业是化学&#xff0c;以前对电脑最高级的使用是玩扫雷游戏。所以这里集合的错误都是小透明错误&#xff0c;大部分人请绕道。不断更新中...... 缩进错误 记住“indent”…

UE5 镜头

只狼镜头 Spring Arm 中 开启 Use Pawn Control Rotation&#xff1a;让镜头跟着鼠标移动BP_Character(Self) 中关闭 Use Controller Rotation Yaw&#xff1a;不要让人物和鼠标移动Character Movement 的 Rotation Setting 中 关闭 Use Controller Desired Rotation&#xff…

go的工厂模式

目录 前言&#xff1a;工厂模式在Golang中的应用背景 工厂模式简介 为什么在Golang中使用工厂模式 工厂模式解决的问题 工厂模式的优势 图文结合示例 工厂模式的使用背景 工厂模式的必要性 Golang中直接创建实例的问题 工厂模式的优势 图文结合示例 工厂模式的分类 …

学习笔记 韩顺平 零基础30天学会Java(2024.8.6)

P471 String对象特性2 数组默认情况下是放到堆里面的 只要调用一个方法就会产生一个新栈&#xff0c;因为是在主方法里创建对象的&#xff0c;所以对象是在栈里面&#xff0c;而str ch这些都应该在堆里面&#xff0c;栈里的对象指向堆中的str ch。这一题很像学C语言的时候遇到的…

java之多线程篇

一、基本概念 1.什么是线程&#xff1f; 线程就是&#xff0c;操作系统能够进行运算调度的最小单位。它被包含在进程之中&#xff0c;是进程中的实际运作单位。简单理解就是&#xff1a;应用软件中互相独立&#xff0c;可以同时运行的功能 2.什么是多线程&#xff1f; 有了多线…

Android Gradle开发与应用(一):Gradle基础

文章目录 引言一、Gradle简介二、Gradle基础语法1. 项目结构2. 插件应用3. 仓库与依赖4. 任务&#xff08;Tasks&#xff09; 三、Gradle在Android项目中的深入应用1. 构建变体&#xff08;Build Variants&#xff09;2. 依赖管理3. 自定义构建逻辑 四、Gradle WrapperGradle W…

评价指标--深度学习

目录 1分类任务1.1 二分类1.1.1 含义介绍1.1.2 指标 1.2多分类 2图像分割2.1 常用指标2.2 具体含义2.3 代码实现 1分类任务 1.1 二分类 混淆矩阵 1.1.1 含义介绍 TP&#xff1a;预测为真所以是Positive&#xff0c;预测结果和真实结果一致所以为TrueTN&#xff1a;预测为假…