<template>
<el-form class="padder" ref="form" :model="formData" :rules="rules" label-width="80px" size="small">
<div class="el-alert el-alert--info is-light" style="margin-bottom: 18px">
<span><i class="el-icon-info"></i> 请下载模板,并按照格式填写,填写完成后,上传文件即可完成导入。</span>
<a href="/documents/cj_lq_imp.xls" title="下载" download="" target="_blank" class="text-info pointer">点击下载</a>
</div>
<el-form-item label="招生批次" prop="admissionBatchId" :inline-message="true">
<el-select v-model="formData.admissionBatchId" placeholder="请选择招生批次" clearable style="width: 50%">
<el-option
v-for="(item, index) in batches"
:key="index"
:label="item.schoolCode + item.schoolName + '-' + item.annual + item.season"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="导入文件" prop="file" :inline-message="true">
<el-upload
class="upload-demo"
ref="upload"
action=''
:on-change="handleChange"
:http-request='uploadFile'
:multiple='false'
:limit='1'
accept='.xls'
:auto-upload="false">
<el-button slot="trigger" size="small" type="primary">选取文件</el-button>
</el-upload>
</el-form-item>
</el-form>
</template>
<script>
// 招生批次
import { getAdmissionBatchs } from '@/api/adult/plan-batch'
// 导入
import { importEnrollInfo } from '@/api/adult/admit-roster'
export default {
name: 'admit-form',
data () {
var validateNull = (rule, value, callback) => {
if (!value) {
callback(new Error('请选择文件'))
} else {
callback()
}
}
return {
formData: {
admissionBatchId: '',
file: null
},
rules: {
admissionBatchId: [{ required: true, message: '请选择招生批次' }],
file: [{ required: true, trigger: 'change', validator: validateNull }]
},
// 招生批次
batches: [],
// 上传文件列表
fileList: []
}
},
created () {
getAdmissionBatchs({ pageSize: 99999, disabled: false })
.then((res) => {
this.batches = res.data
})
},
methods: {
// 选取文件
handleChange (file) {
this.formData.file = file
},
// 上传文件
uploadFile () {
return new Promise(resolve => {
var formData = new FormData()
formData.append('admissionBatchId', this.formData.admissionBatchId)
formData.append('file', this.formData.file.raw)
importEnrollInfo(formData)
.then((res) => {
if (res) {
resolve(res)
} else {
resolve(false)
}
})
})
},
// 提交
save () {
return new Promise(resolve => {
this.$refs.form.validate(valid => {
if (valid) {
this.uploadFile()
.then((res) => {
if (res) {
setTimeout(() => {
this.successTip(res.message)
resolve(true)
}, 1000)
}
})
} else {
resolve(false)
}
})
})
}
}
}
</script>
下载模板 导入文件
最新推荐文章于 2022-08-25 09:41:04 发布