父组件中使用:
<file :kindId="kindId" @refresh="refresh"></file>
import file from \'./components/file.vue\'; components: { file }, data() { return { kindId: null, //种类di }; }, methods: { // 刷新 refresh() { this.page = 1; this.searchCtrl = false; this.getList(); } }
子组件:
<div class="export-wrap"> <el-upload class="upload-demo" action="#" :before-upload="handleBefore" :http-request="httpRequest" accept="xlsx" > <el-button size="small"> <svg-icon iconClass="batchImport"></svg-icon> 值班导入</el-button > </el-upload> </div>
import { uploadDutyUsersApi } from \'@/http/dutyManage\';//上传的接口
export default {
props: {
kindId: {
type: String
}
},
data() {
return {
msg: \'\',
msgList: []
};
},
methods: {
// 文件上传处理
httpRequest(options) {
let that = this;
let fileFormData = new FormData();
fileFormData.append(\'file\', options.file, options.file.name);
fileFormData.append(\'orgId\', this.kindId);
uploadDutyUsersApi(fileFormData).then(res => {
if (res.data.code == 200) {
let resdata = res.data.data;
console.log(resdata, \'resdata\');
if (resdata.code == \'ok\') {
//上传成功
that.$emit(\'refresh\');
this.msg = resdata.msg;
} else if (resdata.code == \'error\') {
//上传失败,显示原因this.msgList = resdata.data;
}
}
});
},
// 上传之前
handleBefore(file) {
const fileType = file.name
.substring(file.name.lastIndexOf(\'.\') + 1)
.toLowerCase();
const isExcel = fileType === \'xlsx\';
if (!isExcel) {
this.$message.error(\'请上传xlsx类型文件\');
return false;
}
}
}