文件上传组件(elementUI)

14 篇文章 0 订阅
4 篇文章 0 订阅
本文介绍如何在Vue.js项目中封装elementUI的上传组件,以提高代码复用性和定制化。通过设置不同的属性如action、headers、accept等,实现文件上传功能,并在成功或失败时触发相应的回调函数。组件还允许自定义上传按钮样式,以适应项目需求。
摘要由CSDN通过智能技术生成

elementUI提供了上传的组件,然而项目中可能多次用到,每次都用官网的修改,过于繁琐,封装成组件。

<template>
<el-upload class="upload-demo" :action="uploadPath" :headers="fileHeaders" :data='uploadData' :show-file-list="false" :accept="accept" :on-success="handleSuccess" :on-error="handleError" :before-upload="beforeUpload">
<!--下面是封装的按钮,可修改为你想用的任何东西 -->
  <com-button type="btn_import"></com-button>
</el-upload>
</template>

<script>
// axios 请求的路径
import * as url from '@/config/urlConfig'
import ComButton from '@/components/comButton'
export default {
  name: 'FileUpload',
  components: {
    ComButton
  },
  props: {
    fileType: {
      type: String,
      default: ''
    }
  },
  data () {
    return {
    //  this.$api.getBaseUrl() 返回的是基础请求路径,也可直接使用process.env.baseUrl
      uploadPath: this.$api.getBaseUrl() + url.EXCEL_IMPORT,
      uploadData: {
        userCode: this.$api.sGetObject('userCode'),
        fileType: this.fileType
      },
      fileHeaders: {
        token: this.$api.sGetObject('token')
      },
      accept: '.xlsx, .xls'
    }
  },
  methods: {
    handleSuccess (res, file, fileList) { },
    handleError (err, file, fileList) { },
    beforeUpload (file) { }
  },
  created () {}
}
</script>

<style scoped>
.upload-demo {
  float: left;
  height: 40px;
}
</style>

使用方式 引入组件进行注册
import FileUpload from ‘@/components/FileUpload’

   <FileUpload fileType='filetype'  />
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值