gengby
2 years ago
13 changed files with 320 additions and 17 deletions
@ -0,0 +1,116 @@ |
|||||
|
<template> |
||||
|
<el-dialog |
||||
|
title="导入Excel文件" |
||||
|
append-to-body |
||||
|
:visible.sync="dialogVisible" |
||||
|
destroy-on-close |
||||
|
width="400px" |
||||
|
:show-close="true" |
||||
|
@close="close" |
||||
|
@open="open" |
||||
|
> |
||||
|
<el-upload |
||||
|
ref="upload" |
||||
|
class="upload-demo" |
||||
|
action="" |
||||
|
drag |
||||
|
:on-exceed="is_one" |
||||
|
:limit="1" |
||||
|
:auto-upload="false" |
||||
|
:multiple="false" |
||||
|
:show-file-list="true" |
||||
|
:on-change="uploadByJsqd" |
||||
|
:file-list="fileList" |
||||
|
accept=".xlsx,.xls" |
||||
|
> |
||||
|
<i class="el-icon-upload" /> |
||||
|
<div class="el-upload__text"> |
||||
|
将文件拖到此处,或 |
||||
|
<em>点击上传</em> |
||||
|
</div> |
||||
|
<div slot="tip" class="el-upload__tip">只能上传Excel文件,且不超过10MB</div> |
||||
|
</el-upload> |
||||
|
<span slot="footer" class="dialog-footer"> |
||||
|
<el-button @click="dialogVisible = false">取 消</el-button> |
||||
|
<el-button type="primary" @click="submit">确 定</el-button> |
||||
|
</span> |
||||
|
</el-dialog> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import crudDict from '@/api/system/dict' |
||||
|
import CRUD, { crud } from '@crud/crud' |
||||
|
|
||||
|
export default { |
||||
|
name: 'UploadDialog', |
||||
|
mixins: [crud()], |
||||
|
components: {}, |
||||
|
props: { |
||||
|
dialogShow: { |
||||
|
type: Boolean, |
||||
|
default: false |
||||
|
}, |
||||
|
openParam: { |
||||
|
type: String |
||||
|
} |
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
dialogVisible: false, |
||||
|
fileList: [], |
||||
|
file1: '' |
||||
|
} |
||||
|
}, |
||||
|
watch: { |
||||
|
dialogShow: { |
||||
|
handler(newValue, oldValue) { |
||||
|
this.dialogVisible = newValue |
||||
|
} |
||||
|
}, |
||||
|
openParam: { |
||||
|
handler(newValue, oldValue) { |
||||
|
this.opendtlParam = newValue |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
methods: { |
||||
|
open() { |
||||
|
}, |
||||
|
close() { |
||||
|
this.$emit('update:dialogShow', false) |
||||
|
}, |
||||
|
is_one() { |
||||
|
this.crud.notify('只能上传一个excel文件!', CRUD.NOTIFICATION_TYPE.WARNING) |
||||
|
}, |
||||
|
// 文件校验方法 |
||||
|
beforeAvatarUpload(file) { |
||||
|
// 不能导入大小超过2Mb的文件 |
||||
|
if (file.size > 10 * 1024 * 1024) { |
||||
|
return false |
||||
|
} |
||||
|
return true |
||||
|
}, |
||||
|
// 文件发生改变就会触发的事件 |
||||
|
uploadByJsqd(file) { |
||||
|
this.file1 = file |
||||
|
}, |
||||
|
submit() { |
||||
|
if (this.beforeAvatarUpload(this.file1)) { |
||||
|
this.fileList.name = this.file1.name |
||||
|
this.fileList.url = '' |
||||
|
var formdata = new FormData() |
||||
|
formdata.append('file', this.file1.raw) |
||||
|
// excelImport:请求接口 formdata:传递参数 |
||||
|
crudDict.excelImport(formdata).then((res) => { |
||||
|
this.crud.notify('导入成功', CRUD.NOTIFICATION_TYPE.SUCCESS) |
||||
|
this.$emit('tableChanged3', '') |
||||
|
this.$emit('update:dialogShow', false) |
||||
|
}) |
||||
|
} else { |
||||
|
this.crud.notify('文件过大,请上传小于10MB的文件〜', CRUD.NOTIFICATION_TYPE.WARNING) |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
|
Loading…
Reference in new issue