Element UI vue 上传文件、下载模板
样式
<el-upload
class="upload-demo"
action="/api/file/upload"
:on-remove="handleRemove"
multiple
ref="uplpadFile"
:limit="1"
:on-exceed="handleExceed"
:before-upload="beforeUpload"
:file-list="fileList"
accept="application/vnd.ms-excel"
>
<div>
<el-button type="text" :loading="check">上传文件</el-button>
<el-button type="text" @click.stop="downloadTpl">
下载模板
</el-button>
</div>
<div slot="tip" class="el-upload__tip">
<div class="sms-upload-msg">1、支持Excel文件上传</div>
<div class="sms-upload-msg">
2、请将日期和时间相关列设置为【文本】类型再进行编辑
</div>
</div>
</el-upload>
// data 定义变量
fileList: []
JS 方法
// 上传的校验
beforeUpload(file) {
this.check = true
this.fileList = []
let fd = new FormData()
let size = parseFloat(file.size / 1048576)
if (size > 10) {
this.$message.error('上传文件最大不可超过10M')
this.check = false
return false
}
if (
file.name.substring(file.name.lastIndexOf('.') + 1) !== 'xls' &&
file.name.substring(file.name.lastIndexOf('.') + 1) !== 'xlsx'
) {
this.$message.error('请上传Excel文件')
this.check = false
return false
}
fd.append('tag', 'robot-core')
fd.append('files', file)
if (size < 10) {
this.$store.dispatch('uploadAudioFile', fd).then(res => {
this.fileList.push({
name: res.data.list[0].name,
url: res.data.list[0].localPath + res.data.list[0].localName,
sn: res.data.list[0].sn,
size: res.data.list[0].size,
localName: res.data.list[0].localName
})
this.templateForm.fileName = res.data.list[0].localName
this.check = false
})
} else {
this.$message.error('上传文件太大')
this.check = false
}
return false
},
handleExceed(files, fileList) {
this.$message.warning(
`当前限制选择 1 个文件,本次选择了 ${
files.length
} 个文件,共选择了 ${files.length + fileList.length} 个文件`
)
},
handleRemove(file, fileList) {
this.fileList = []
if (fileList.length === 1) {
this.$confirm('确定删除吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
this.fileList = []
})
.catch(() => {
this.$message({
message: '取消了删除',
center: true
})
})
}
},
分类:
JS
, UI 框架 / Element UI
标签:
Element UI
, JS
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本