zhangzengfei
2021-11-17 5186227a467bd34dc253e64b23bc96d3a07bb399
src/components/VabUpload/index.vue
@@ -75,19 +75,19 @@
</template>
<script>
  import { baseURL, tokenName } from '@/config'
import { baseURL, tokenName } from "@/config";
  export default {
    name: 'VabUpload',
  name: "VabUpload",
    props: {
      url: {
        type: String,
        default: '/upload',
      default: "/upload",
        required: true,
      },
      name: {
        type: String,
        default: 'file',
      default: "file",
        required: true,
      },
      limit: {
@@ -106,106 +106,106 @@
        show: false,
        loading: false,
        dialogVisible: false,
        dialogImageUrl: '',
        action: 'https://vab-unicloud-3a9da9.service.tcloudbase.com/upload',
      dialogImageUrl: "",
      action: "https://vab-unicloud-3a9da9.service.tcloudbase.com/upload",
        headers: {},
        fileList: [],
        picture: 'picture',
      picture: "picture",
        imgNum: 0,
        imgSuccessNum: 0,
        imgErrorNum: 0,
        typeList: null,
        title: '上传',
      title: "上传",
        dialogFormVisible: false,
        data: {},
      }
    };
    },
    computed: {
      percentage() {
        if (this.allImgNum == 0) return 0
        return this.$baseLodash.round(this.imgNum / this.allImgNum, 2) * 100
      if (this.allImgNum == 0) return 0;
      return this.$baseLodash.round(this.imgNum / this.allImgNum, 2) * 100;
      },
    },
    methods: {
      submitUpload() {
        this.$refs.upload.submit()
      this.$refs.upload.submit();
      },
      handleProgress(event, file, fileList) {
        this.loading = true
        this.show = true
      this.loading = true;
      this.show = true;
      },
      handleChange(file, fileList) {
        if (file.size > 1048576 * this.size) {
          fileList.map((item, index) => {
            if (item === file) {
              fileList.splice(index, 1)
            fileList.splice(index, 1);
            }
          })
          this.fileList = fileList
        });
        this.fileList = fileList;
        } else {
          this.allImgNum = fileList.length
        this.allImgNum = fileList.length;
        }
      },
      handleSuccess(response, file, fileList) {
        this.imgNum = this.imgNum + 1
        this.imgSuccessNum = this.imgSuccessNum + 1
      this.imgNum = this.imgNum + 1;
      this.imgSuccessNum = this.imgSuccessNum + 1;
        if (fileList.length === this.imgNum) {
          setTimeout(() => {
            this.$baseMessage(
              `上传完成! 共上传${fileList.length}张图片`,
              'success'
            )
          }, 1000)
            "success"
          );
        }, 1000);
        }
        setTimeout(() => {
          this.loading = false
          this.show = false
        }, 1000)
        this.loading = false;
        this.show = false;
      }, 1000);
      },
      handleError(err, file, fileList) {
        this.imgNum = this.imgNum + 1
        this.imgErrorNum = this.imgErrorNum + 1
      this.imgNum = this.imgNum + 1;
      this.imgErrorNum = this.imgErrorNum + 1;
        this.$baseMessage(
          `文件[${file.raw.name}]上传失败,文件大小为${this.$baseLodash.round(
            file.raw.size / 1024,
            0
          )}KB`,
          'error'
        )
        "error"
      );
        setTimeout(() => {
          this.loading = false
          this.show = false
        }, 1000)
        this.loading = false;
        this.show = false;
      }, 1000);
      },
      handleRemove(file, fileList) {
        this.imgNum = this.imgNum - 1
        this.allNum = this.allNum - 1
      this.imgNum = this.imgNum - 1;
      this.allNum = this.allNum - 1;
      },
      handlePreview(file) {
        this.dialogImageUrl = file.url
        this.dialogVisible = true
      this.dialogImageUrl = file.url;
      this.dialogVisible = true;
      },
      handleExceed(files, fileList) {
        this.$baseMessage(
          `当前限制选择 ${this.limit} 个文件,本次选择了
             ${files.length}
             个文件`,
          'error'
        )
        "error"
      );
      },
      handleShow(data) {
        this.title = '上传'
        this.data = data
        this.dialogFormVisible = true
      this.title = "上传";
      this.data = data;
      this.dialogFormVisible = true;
      },
      handleClose() {
        this.fileList = []
        this.picture = 'picture'
        this.allImgNum = 0
        this.imgNum = 0
        this.imgSuccessNum = 0
        this.imgErrorNum = 0
      this.fileList = [];
      this.picture = "picture";
      this.allImgNum = 0;
      this.imgNum = 0;
      this.imgSuccessNum = 0;
      this.imgErrorNum = 0;
        /* if ("development" === process.env.NODE_ENV) {
          this.api = process.env.VUE_APP_BASE_API;
        } else {
@@ -213,10 +213,10 @@
        }
        this.action = this.api + this.url; */
        this.dialogFormVisible = false
      this.dialogFormVisible = false;
      },
    },
  }
};
</script>
<style lang="scss" scoped>