vue3上传组件——完整版功能(含接口)

该博客介绍了如何使用Vue3和Element Plus组件库创建一个PDF文件上传组件。通过限制上传文件类型、数量,并实现文件删除、上传前验证、超出数量提示及上传成功回调等功能,确保了上传过程的可控性和用户体验。
摘要由CSDN通过智能技术生成

vue3上传组件——完整版功能(含接口)

1、效果

1

在这里插入图片描述

2

在这里插入图片描述

3

在这里插入图片描述

4

在这里插入图片描述

2、代码
<script lang="ts" setup>
import titleHeader from '../header/titleHeader.vue'
import { ref } from 'vue'
import { ElMessage } from 'element-plus'
import img from '@/assets/yfdd-bs/right/zbyq/fb.png'
const fileList = ref<Array<{name: string}>>([])

/**
 * 删除文件
 */
const handleDelFile = () => {
  fileList.value = []
}

/**
 * 上传之前触发
 */
const beforeUpload = (file: any) => {
  // 判断文件类型
  const index = file.name.lastIndexOf('.')
  const type = file.name.substring(index + 1).toLocaleLowerCase()
  const hasType = ['pdf'].some(res => {
    return res === type
  })
  if (!hasType) {
    ElMessage.warning('文件类型不正确')
    return false
  }
}

const handleExceed = () => {
  ElMessage.info('只能上传一个哦')
  return false
}

const handleSuccess = (response: any) => {
  const { data } = response
  console.log(data)
}
</script>

<template>
  <div class="duty-container">
    <titleHeader
      :src="img"
      :need-line="true"
      :line-width="[170, 24]"
    />

    <div class="content">
      123
      <!--参数:
            action	必选参数,上传的接口地址;
			limit	允许上传的最大数量;
			file-list	上传的文件列表;
			before-upload  上传前的方法;
			on-remove	文件列表移除文件时的方法;
			on-exceed	文件超出个数限制时的方法;
			on-success	文件上传成功时的钩子(方法)

-->
      <el-upload
        class="upload-demo"
        action="http://130.25.94.8:8487/common/file/upload"
        :limit="1"
        :file-list="fileList"
        :before-upload="beforeUpload"
        :on-remove="handleDelFile"
        :on-exceed="handleExceed"
        :on-success="handleSuccess"
      >
        <el-button
          size="small"
          type="primary"
        >
          点击上传,只能上传pdf格式
        </el-button>
      </el-upload>
    </div>
  </div>
</template>

<style scoped lang="scss">
.duty-container {
  grid-area: a;
  background: url(@/assets/yfdd-bs/right/zbyq/back2.png) no-repeat;
  background-size: 100% 100%;
  .content {
    margin-top: -10px;
    height: calc(100% - 100px);
    padding: 0px 30px;

  }
}
</style>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值