导入文件模板的组件
父组件中使用:
<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;
}
}
}

浙公网安备 33010602011771号