2018-02-15 23:24:31 +08:00
|
|
|
|
# Vue.$import
|
|
|
|
|
|
|
|
|
|
|
|
本框架集成了数据导入功能,并包装成插件
|
|
|
|
|
|
|
|
|
|
|
|
## 注册插件
|
|
|
|
|
|
|
|
|
|
|
|
> 默认已经注册,可以直接使用
|
2018-02-15 14:24:28 +08:00
|
|
|
|
|
|
|
|
|
|
```
|
2018-02-15 23:24:31 +08:00
|
|
|
|
import pluginImport from '@/plugin/import'
|
|
|
|
|
|
Vue.use(pluginImport)
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
之后就可以在组件中使用 `this.$import` 来调用导出功能
|
|
|
|
|
|
|
|
|
|
|
|
## Vue.$import.csv()
|
|
|
|
|
|
|
|
|
|
|
|
导入csv文件,并且返回一个 `Promise` 对象
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
// 在选择文件后调用
|
2018-02-15 14:24:28 +08:00
|
|
|
|
handleUpload (file) {
|
2018-02-15 23:24:31 +08:00
|
|
|
|
this.$import.csv(file)
|
|
|
|
|
|
.then(res => {
|
|
|
|
|
|
this.table.columns = Object.keys(res.data[0]).map(e => ({
|
2018-02-15 14:24:28 +08:00
|
|
|
|
label: e,
|
|
|
|
|
|
prop: e
|
|
|
|
|
|
}))
|
2018-02-15 23:24:31 +08:00
|
|
|
|
this.table.data = res.data
|
|
|
|
|
|
})
|
|
|
|
|
|
// 阻止默认的上传
|
2018-02-15 14:24:28 +08:00
|
|
|
|
return false
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2018-02-15 23:24:31 +08:00
|
|
|
|
## Vue.$import.xlsx()
|
|
|
|
|
|
|
|
|
|
|
|
导入xlsx文件,并且返回一个 `Promise` 对象
|
|
|
|
|
|
|
2018-02-15 23:34:17 +08:00
|
|
|
|
**注意 导入的表格文件第一行应为表头**
|
2018-02-15 23:24:31 +08:00
|
|
|
|
|
2018-02-15 23:34:17 +08:00
|
|
|
|
参考下述示例使用
|
2018-02-15 23:24:31 +08:00
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
// 在选择文件后调用
|
|
|
|
|
|
handleUpload (file) {
|
|
|
|
|
|
this.$import.xlsx(file)
|
|
|
|
|
|
.then(({header, results}) => {
|
2018-02-15 23:34:17 +08:00
|
|
|
|
// header 为表头
|
|
|
|
|
|
// results 为内容
|
2018-02-15 23:24:31 +08:00
|
|
|
|
this.table.columns = header.map(e => {
|
|
|
|
|
|
return {
|
|
|
|
|
|
label: e,
|
|
|
|
|
|
prop: e
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
this.table.data = results
|
|
|
|
|
|
})
|
|
|
|
|
|
// 阻止默认的上传
|
|
|
|
|
|
return false
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|