1、我在之前的文章中有写过关于Upload上传中遇到的一些问题,本篇只讲述基本用法
2、代码
<el-dialog title="文件上传" :visible.sync="excelVisible" width="40%" center>
<el-upload
style="text-align: center"
:show-file-list="false"
:on-error="handleError"
:on-success="handleSuccess"
:before-upload="handleBeforeUpload"
:http-request="uploadSectionFile"
class="upload-demo"
drag
action=""
multiple
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
<div class="el-upload__tip" slot="tip">仅限xls和xlsx文件</div>
</el-upload>
<span slot="footer" class="dialog-footer">
<el-button size="mini" type="success"">下载模板</el-button>
<el-button
style="margin-right: 20px;"
size="mini"
>取 消</el-button
>
</span>
//如需展示错误信息
<template>
<el-table
v-show="errorLabel.length > 0"
:data="errorLabel"
size="mini"
border
style="width: 100%"
>
<el-table-column align="center" width="50" type="index" label="序号">
</el-table-column>
<el-table-column
align="center"
width="80"
prop="order"
label="错误行"
>
</el-table-column>
<el-table-column label="错误描述">
<template slot-scope="scope">
<span style="color: red">{{ scope.row.desc }}</span>
</template>
</el-table-column>
</el-table>
</template>
3、上传的一些方法
methods:{
//失败时的方法
handleError(err) {
this.$message.info(err.data);
},
//成功时的方法
handleSuccess(response) {
if (response.isSuccess) {
this.$message.success(response.error);
return;
}
this.$message.info(response.error);
},
// 上传前
handleBeforeUpload(file) {
// 校验
let legalName = ["xlsx", "xls"];
// 拿到后缀名
let name = file.name.substring(
file.name.lastIndexOf(".") + 1,
file.name.length
);
if (legalName.includes(name)) {
// console.log(legalName.includes(name));
} else {
this.$message.info("文件格式不对,仅限xls和xlsx");
return false;
}
},
//上传
uploadSectionFile(params) {
let form = new FormData();
form.append("file", params.file);
form.append("toWarehouseId", towarehouseid);
this.axios
.post(`接口`, form)
.then((res) => {
if (res.data.code == 200) {
this.errorLabel = [];
if (res.data.code == -1) {
this.errorLabel = res.data.data;
this.$message.info(res.data.message);
}
})
.catch((res) => {
console.log(res);
});
},
}
4、data里的定义
data(){
return{
excelVisible: false,
errorLabel: [],
}
}