Vue Antdv 上传组件(a-upload、a-upload-dragger)二次封装(DZMAntdvUpload)

14 篇文章 4 订阅
  • 在使用 Antdv 上传组件 a-upload、a-upload-dragger 的时候,尤其是允许 选择多文件上传 的时候,可能需要检测 文件重复文件大小图片尺寸图片比例视频尺寸视频比例错误不需要重复提示批量文件一个不符合都不要进行上传 等常用功能

  • 扩展功能支持列表,打开之后,稍微往中间滚一滚。

  • 这里将这些功能都封装到了一起,在完全支持原生自带属性的同时,并扩展支持更多常用便利功能,方便开发中节省时间。

  • DZMAntdvUpload 使用,源码注释多,使用简单,扩展性高。

  • 上传组件 UI、样式 支持 slot 全部重写自定义。

    <template>
      <div class="home-view">
    
        <!-- 上传组件 -->
        <upload :customRequestPro="customRequestPro" :beforeUploadPro="beforeUploadPro"></upload>
    
        <!-- 启用拖拽上传组件 -->
        <upload :isDragger="true" :customRequestPro="customRequestPro" :beforeUploadPro="beforeUploadPro"></upload>
    
        <!-- 上传组件 -->
        <!-- <upload :customRequestPro="customRequestPro">
          <span slot="up-title">三水上传</span>
        </upload> -->
    
        <!-- 上传组件 - 自定义 -->
        <!-- <upload :customRequestPro="customRequestPro" :disabled="true"> -->
          <!-- 自定义上传UI -->
          <!-- <template slot="up-slot" slot-scope="props"> -->
            <!-- 使用内部禁用属性 -->
            <!-- <a-button :disabled="props.disabled">三水上传Pro</a-button> -->
            <!-- 不使用内部禁用属性 -->
            <!-- <a-button>三水上传Pro</a-button>
          </template>
        </upload> -->
    
      </div>
    </template>
    
    <script>
    // 导入组件
    import Upload from '@/components/Upload'
    export default {
      components: {
        Upload
      },
      methods: {
        // 准备上传
        beforeUploadPro () {
          // return true
          return new Promise((resolve, reject) => {
            resolve()
          })
        },
        customRequestPro (data, fileJson, result) {
          // 上传完成
          setTimeout(() => {
            result(true)
          }, 2000)
        }
      }
    }
    </script>
    
    <style scoped>
    .home-view {
      display: flex;
      align-items: center;
      justify-content: center;
    }
    </style>
    
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,我会尽力回答你关于 arco design vue 二次封装 a-upload 的问题。a-upload 是 arco design vue 中的一个上传组件,可以用于上传文件和图片。在二次封装 a-upload 时,你可以根据自己的需求对其进行定制。 一般来说,二次封装 a-upload 的步骤如下: 1. 引入 a-upload 组件 在你的组件中,首先需要引入 a-upload 组件。可以使用以下代码: ```javascript import { AUpload } from 'arco-design-vue' ``` 2. 编写自定义上传组件 然后,你需要编写自定义上传组件,并在其中使用 a-upload 组件。在上传前可以添加自己的逻辑,例如判断文件类型、大小等,并通过 a-upload 的 before-upload 属性实现。代码如下: ```html <template> <div> <a-upload :before-upload="beforeUpload" :on-success="onSuccess" :on-error="onError" :on-progress="onProgress" > <a-button type="primary">上传文件</a-button> </a-upload> </div> </template> <script> import { AUpload, AButton } from 'arco-design-vue' export default { name: 'CustomUpload', components: { AUpload, AButton }, methods: { beforeUpload(file) { // 自定义逻辑,例如判断文件类型、大小等 console.log('beforeUpload', file) return true }, onSuccess(response, file) { console.log('onSuccess', response, file) }, onError(error, response, file) { console.log('onError', error, response, file) }, onProgress(event, file, fileList) { console.log('onProgress', event, file, fileList) } } } </script> ``` 3. 使用自定义上传组件 最后,在需要使用上传组件的地方,你可以直接使用自定义上传组件。例如: ```html <template> <div> <custom-upload></custom-upload> </div> </template> <script> import CustomUpload from './CustomUpload.vue' export default { name: 'App', components: { CustomUpload } } </script> ``` 这样,你就完成了 arco design vue 二次封装 a-upload 组件的过程。希望我的回答能够对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡尔特斯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值