static_upLoad_csv.vue 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. <template>
  2. <el-dialog title="数据上传"
  3. :visible.sync="st_upShow"
  4. v-if="st_upShow"
  5. width="60%"
  6. @close="closeHandle"
  7. >
  8. <div style="text-align: center">
  9. <el-upload
  10. class="upload-demo"
  11. drag
  12. :action="url"
  13. :data = "dataInfo"
  14. :limit= 1
  15. accept=".csv"
  16. :before-upload="beforeUploadHandle"
  17. :on-success="successHandle"
  18. :on-exceed = "upLoadNumberWrong">
  19. <i class="el-icon-upload"></i>
  20. <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
  21. <div class="el-upload__tip" slot="tip">注意:目前仅支持 csv 文件,并且表头在第一行</div>
  22. </el-upload>
  23. </div>
  24. <span slot="footer" class="dialog-footer">
  25. <el-button @click="st_upShow = false">取 消</el-button>
  26. <el-button type="primary" @click="st_upShow = false">确 定</el-button>
  27. </span>
  28. </el-dialog>
  29. </template>
  30. <script>
  31. import {info} from '../../../../mock/modules/sys-menu'
  32. import { Message } from "element-ui"
  33. export default {
  34. name: 'staticupLoadCsv',
  35. data () {
  36. return {
  37. st_upShow: false,
  38. info: '',
  39. url: this.$http.adornUrl(`/dataset/staticup/uploadcsv?token=${this.$cookie.get('Algtoken')}`),
  40. dataInfo: {
  41. id: this.$store.state.user.id
  42. }
  43. }
  44. },
  45. methods: {
  46. init (info) {
  47. this.st_upShow = true
  48. this.info = info
  49. console.log(info)
  50. },
  51. upLoadNumberWrong (files, fileList) {
  52. Message({
  53. message: '单次只允许上传一个文件',
  54. type: 'error'
  55. })
  56. },
  57. // 上传之前
  58. beforeUploadHandle (file) {
  59. console.log(file)
  60. if (file.type !== 'text/csv' && file.type !== 'xlsm' && file.type !== 'application/vnd.ms-excel') {
  61. Message.error('xls、xlsx、xlsm格式的excel数据!')
  62. return false
  63. }
  64. },
  65. // 上传成功
  66. successHandle (response, file, fileList) {
  67. this.fileList = fileList
  68. if (response && response.code === 0) {
  69. Message.success('文件上传成功')
  70. // console.log(response)
  71. this.info.isUp = true // 标记已经上传过文件
  72. this.info.icon = this.info.icons[1] // 更换彩色图标
  73. this.info.upUrl = response.data.upUrl
  74. this.info.excelData = response.data.excelData // excel 数据
  75. this.info.fileName = response.data.fileName // 文件名
  76. this.info.indexContent = response.data.fileName
  77. // for (var li = 0; li < excelDatalist.length; li++) {
  78. // this.info.excelData.push(excelDatalist[li])
  79. // }
  80. for (var i = 0; i < response.data.columns.length; i++) {
  81. var list = {
  82. key: i,
  83. prop: response.data.columns[i],
  84. label: response.data.columns[i]
  85. }
  86. this.info.filedList.push(list) // 存储表头数据
  87. }
  88. // console.log(response)
  89. this.time = setTimeout(() => {
  90. this.st_upShow = false
  91. }, 3000)
  92. } else {
  93. Message.error(response.msg)
  94. }
  95. },
  96. // 弹窗关闭时
  97. closeHandle () {
  98. // console.log(555)
  99. this.st_upShow = false
  100. this.fileList = []
  101. // this.$emit('refreshLocalUps', this.info)
  102. clearTimeout(this.time)
  103. }
  104. }
  105. }
  106. </script>
  107. <style scoped>
  108. </style>