110 lines
2.4 KiB
Java
110 lines
2.4 KiB
Java
<template>
|
|
<a-modal
|
|
title="导入EXCEL"
|
|
:width="600"
|
|
:visible="visible"
|
|
:confirmLoading="uploading"
|
|
@cancel="handleClose">
|
|
|
|
<a-upload
|
|
name="file"
|
|
:multiple="true"
|
|
accept=".xls,.xlsx"
|
|
:fileList="fileList"
|
|
:remove="handleRemove"
|
|
:beforeUpload="beforeUpload">
|
|
<a-button>
|
|
<a-icon type="upload" />
|
|
选择导入文件
|
|
</a-button>
|
|
</a-upload>
|
|
|
|
<template slot="footer">
|
|
<a-button @click="handleClose">关闭</a-button>
|
|
<a-button
|
|
type="primary"
|
|
@click="handleImport"
|
|
:disabled="fileList.length === 0"
|
|
:loading="uploading">
|
|
{{ uploading ? '上传中...' : '开始上传' }}
|
|
</a-button>
|
|
</template>
|
|
|
|
</a-modal>
|
|
</template>
|
|
|
|
<script>
|
|
import { postAction } from '@/api/manage'
|
|
export default {
|
|
name: 'JImportModal',
|
|
props:{
|
|
url:{
|
|
type: String,
|
|
default: '',
|
|
required: false
|
|
}
|
|
},
|
|
data(){
|
|
return {
|
|
visible:false,
|
|
uploading:false,
|
|
fileList:[],
|
|
uploadAction:''
|
|
}
|
|
},
|
|
watch: {
|
|
url (val) {
|
|
if(val){
|
|
this.uploadAction = window._CONFIG['domianURL']+val
|
|
}
|
|
}
|
|
},
|
|
created () {
|
|
this.uploadAction = window._CONFIG['domianURL']+this.url
|
|
},
|
|
|
|
methods:{
|
|
handleClose(){
|
|
this.visible=false
|
|
},
|
|
show(){
|
|
this.fileList = []
|
|
this.uploading = false
|
|
this.visible = true
|
|
},
|
|
handleRemove(file) {
|
|
const index = this.fileList.indexOf(file);
|
|
const newFileList = this.fileList.slice();
|
|
newFileList.splice(index, 1);
|
|
this.fileList = newFileList
|
|
},
|
|
beforeUpload(file) {
|
|
this.fileList = [...this.fileList, file]
|
|
return false;
|
|
},
|
|
handleImport() {
|
|
const { fileList } = this;
|
|
const formData = new FormData();
|
|
fileList.forEach((file) => {
|
|
formData.append('files[]', file);
|
|
});
|
|
this.uploading = true
|
|
postAction(this.uploadAction, formData).then((res) => {
|
|
this.uploading = false
|
|
if(res.success){
|
|
this.$message.success(res.message)
|
|
this.visible=false
|
|
this.$emit('ok')
|
|
}else{
|
|
this.$message.warning(res.message)
|
|
}
|
|
})
|
|
}
|
|
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style scoped>
|
|
|
|
</style> |