工作中遇到的问题7(ant-design-vue写一个自定义带参数上传组件)

153 阅读1分钟

接口地址如下所示:

image.png

上传成功后的截图如下所示:

image.png

分析:由于ant-design-vue中使用的上传组件中默认使用的是Action:''后加一个接口地址的形式,但是一般这种操作是带不了参数的,所以,需要自己封装一个函数,重新写这个组件:

image.png 其中主要是利用:customRequest这个属性,自定义一个上传文件函数,通过函数来实现:具体操作如下:

customRequestYN(info) {
      let formData = new FormData()  //构造一个表单数据
      formData.append('fileType', 1) 
      formData.append('shpId', this.nowShpId)  //传入参数
      formData.append('file', info.file)  //传入文件二进制数据
      postAction(this.url.addPlan, formData).then((res) => {
        if (res.status == true) {
        }
      })
      //下边代码是为了解决文件上传成功以后没有加载进度条的问题。
      let progress = { percent: 1 }
      const intervalId = setInterval(() => {
        if (progress.percent < 100) {
          progress.percent++
          info.onProgress(progress)
        } else {
          clearInterval(intervalId)
          info.file.status = 'done'
          info.onSuccess()  //完成后调用的时间
        }
      }, 100)
      info.file.status = 'done'
    },