<input
type="file"
@change="importList"
id="imListData"
style="display: none"
accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel"
/>
点导入门店可以上传 再点导入商圈也可以上传 那么问题来了 两个按钮用的时一个input上传 为什么一个切换着可以上传 不切换就只能上传一次呢?原因可能是因为@change的event没有发生改变,所以没有上传成功,我们需要把file的值清空,操作如下:
importList (event) {
this.$Spin.show()
let obj = this.imListData
let f = obj.files[0]
let reader = new FileReader()
reader.onload = (e) => {
let data = e.target.result
if (this.rABS) {
// 手动转化
this.wb = XLSX.read(btoa(this.fixdata(data)), {
type: 'base64'
})
} else {
this.wb = XLSX.read(data, {
type: 'binary'
})
}
let json = XLSX.utils.sheet_to_json(this.wb.Sheets[this.wb.SheetNames[0]])
// analyzeListData: 解析导入数据
let that = this
setTimeout(function () {
that.dealListData(that.analyzeListData(json))
}, 300)
}
if (this.rABS) {
reader.readAsArrayBuffer(f)
} else {
reader.readAsBinaryString(f)
}
event.target.value = null //注意上传后要将input的值设为空
},
切记上传之后一定定要设为空奥!!!