vue3语法封装element中的upload上传组件

本文介绍如何使用vue3语法封装Element UI的upload组件,包括设置上传地址和fileChange回调,以及在页面中的调用方法。同时也提及了vue2组件的调用方式。
摘要由CSDN通过智能技术生成

vue3语法

1.1 upload组件

<template>
  <div class="upload-container">
    <el-upload
      ref="uploadRef"
      :name="fileName"
      :limit="limit"
      :accept="accept"
      :multiple="true"
      :file-list="defaultFileList"
      :on-remove="handleRemove"
      :on-success="handleSuccess"
      :before-upload="beforeUpload"
      :on-exceed="handleExceed"
      :on-change="handleChange"
      class="editor-slide-upload"
      :action="action"
    >
      <el-button size="small" type="primary"> 点击上传 </el-button>
      <template #tip>
        <div class="el-upload__tip">{
  { tips }}</div>
      </template>
    </el-upload>
  </div>
</template>

<script>
import {
      reactive, defineComponent, toRefs, onMounted, ref } from 'vue'
import {
      ElMessage } from 'element-plus'
export default defineComponent({
     
  name: 'Upload',
  props: {
     
    tips: {
     
      type: String,
      default: '',
    },
    action: {
     
      type: String,
      default: '',
    },
    limit: {
     
      type: Number,
      default: 5,
    },
    accept: {
     
      type: String,
      default: '',
    },
    fileName: {
     
      type: String,
      default: 'file',
    },
    fileList: {
     
      type: Array,
      default: [],
    },
  },
  emits: ['success-callback', 'remove-callback', 'change-callback'],
  setup(_, ctx) {
     
    const uploadRef = ref()
    let UploadObject = {
     }
    const dataMap = reactive({
     
      defaultFileList: _.fileList,
      dialogVisible: false,
      checkAllSuccess: () => {
     
        return Object.keys(UploadObject).every(
          (item) => UploadObject[item].hasSuccess
        )
      },
      handleSuccess: (response, file) => {
     
        const uid = file.uid
        const objKeyArr = Object.keys(UploadObject)
        if (response.retCode !== 0)
          return ElMessage.error(response.retMsg || '请求失败,请重新上传文件!')
        for (let i = 0, len = objKeyArr.length; i < len; i++) {
     
          if (UploadObject[
  • 9
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值