From c93fcefe543a5b55ab0179fee453f9d6efded079 Mon Sep 17 00:00:00 2001 From: Pan Date: Tue, 12 Jun 2018 10:53:08 +0800 Subject: [PATCH] perf[UploadExcel-component]: tweaks --- src/components/UploadExcel/index.vue | 13 +++++++------ src/views/excel/uploadExcel.vue | 8 ++++---- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/components/UploadExcel/index.vue b/src/components/UploadExcel/index.vue index 9c1ec56a..51a3704d 100644 --- a/src/components/UploadExcel/index.vue +++ b/src/components/UploadExcel/index.vue @@ -1,9 +1,9 @@ @@ -25,11 +25,12 @@ export default { generateDate({ header, results }) { this.excelData.header = header this.excelData.results = results - this.$emit('on-selected-file', this.excelData) + this.$emit('success', this.excelData) }, handleDrop(e) { e.stopPropagation() e.preventDefault() + if (this.loading) return const files = e.dataTransfer.files if (files.length !== 1) { this.$message.error('Only support uploading one file!') @@ -48,17 +49,16 @@ export default { handleUpload() { document.getElementById('excel-upload-input').click() }, - handkeFileChange(e) { + handleClick(e) { const files = e.target.files const itemFile = files[0] // only use files[0] if (!itemFile) return - this.loading = true this.readerData(itemFile).then(() => { this.$refs['excel-upload-input'].value = null // fix can't select the same excel - this.loading = false }) }, readerData(itemFile) { + this.loading = true return new Promise((resolve, reject) => { const reader = new FileReader() reader.onload = e => { @@ -70,6 +70,7 @@ export default { const header = this.get_header_row(worksheet) const results = XLSX.utils.sheet_to_json(worksheet) this.generateDate({ header, results }) + this.loading = false resolve() } reader.readAsArrayBuffer(itemFile) diff --git a/src/views/excel/uploadExcel.vue b/src/views/excel/uploadExcel.vue index 187f43af..85439ef6 100644 --- a/src/views/excel/uploadExcel.vue +++ b/src/views/excel/uploadExcel.vue @@ -1,6 +1,6 @@