Ant-design-vue组件上传文档

关于组件上传文档除了element-ui,最近用到的就是ant组件,非同小异;

复制代码
<a-upload
    :fileList="fileList"
    name="file"
    :multiple="true"
    :before-upload="handleDirectoryUpload"
    :remove="removeFile
  >
    <a-button>
      <a-icon type="upload"/>上传文件夹
    </a-button>
  </a-upload>

其中,在data变量中定义 fileList存储上传的文件夹中的数据;

复制代码
handleDirectoryUpload(file){
    this.fileList.push(file);
    return false
},

//删除预上传的文件,不加该方法属性,点击删除无效
removeFile(file){
    let index = this.fileList.findIndex(i=> i.uuid == file.uuid);
    this.fileList.splice(index,1)
}

原本是前端向后端发起一个请求,请求的成功后则显示上传成功,由于项目功能需要,上传的时间过长影响用户体验,用户不清楚多久可以上传成功,所以 将一个接口进行拆分成五个接口,每个接口都有对应的功能;比如步骤:上传---针对于上传文件的内容进行处理---处理完成后需要抽取---抽取成功后生成一个html文件便于访问---保存相关的数据;

针对上面的步骤必须等待某一个步骤成功后才能进行下一个,但是重点在于一个文件夹中多个文档的上传,其中某一个文件的走第一个接口不成功,但是不能影响上传成功的文档继续走下面的步骤;

复制代码
//通过异步进行处理

//此处写一个大致的上传的方法
handOk(){
    let resquest_list = this.fileList.map(async(e)) => {
        //文件格式都是以formData格式
        const formData = new FormData();
        formData.set("file",e)
        formData.set("属性名",属性值);
        try{
            //异步请求接口
            let data = await uploadOne(formData)
            return data
        }catch(error){return null}
    });
    
    //promise.all所有的请求成功后走下面
    Promise.all(resquest_list)then(async res => {//获取到的res是个数组,过滤出有值的数据
        res = res.filter(i => i)
        await getUploadTwo(res)
    })
},
getUploadTwo(res){
    let arr = res.map(async(e)) => {
        try{
            //异步请求接口
            let data = await uploadTwo({key: value}) //对应的参数
            return data
        }catch(error){return null}
    });
    
    //promise.all所有的请求成功后走下面
    Promise.all(arr)then(async res => {//获取到的res是个数组,过滤出有值的数据
        res = res.filter(i => i)
        await getUploadThree(res)
    }).catch(e => {
        console.log(e)
    })
}
//以下的步骤雷同,这样即使中间某一个文档的某一个步骤失败了,是不影响其它接口上传的
相关推荐
RuoyiOffice9 小时前
2026 年开源 BPM/工作流引擎大盘点:Flowable vs Camunda vs Activiti vs Turbo——谁才是企业级首选?
java·spring boot·后端·开源·流程图·ruoyi·anti-design-vue
RuoyiOffice11 小时前
SpringBoot+Vue3 实现 OA 公文外来文与归档台账:外部收文、BPM办理、三类公文统一归档
spring boot·微服务·uni-app·vue·ruoyi·anti-design-vue·ruoyioffice
RuoyiOffice1 天前
SpringBoot+Vue3 企业考勤如何处理法定假期?节假日方案、调休补班与工作日判断链路拆解
spring boot·后端·vue·anti-design-vue·ruoyioffice·假期·人力
小贵子的博客18 天前
Ant Design Vue中 table组件设置分组表头和固定总结栏
vue.js·anti-design-vue
赢乐1 个月前
前端vue表格el-table或a-table合并行的功能实现
elementui·el-table·element-plus·anti-design-vue·a-table·vue前端·表格合并行
RuoyiOffice1 个月前
企业请假销假系统设计实战:一张表、一套流程、两段生命周期——BPM节点驱动的表单变形术
java·spring·uni-app·vue·产品运营·ruoyi·anti-design-vue
无名咸鱼3 个月前
官网适配移动端与 PC 端实战遇到的问题总结
anti-design-vue
小杨同学呀呀呀呀3 个月前
Ant Design Vue <a-timeline>时间轴组件失效解决方案
前端·javascript·vue.js·typescript·anti-design-vue
编程猪猪侠3 个月前
Vue3 + Ant Design Vue 实现 Table 表格嵌套 Radio 单选框
javascript·vue.js·anti-design-vue
小贵子的博客4 个月前
Ant Design Vue <a-table>
前端·javascript·vue.js·anti-design-vue