xiangpei
2025-06-05 1fa6ac40e2ce16e1174cec9ca538d45eeb660fdc
src/components/FileUpload/index.vue
@@ -2,6 +2,7 @@
  <div class="upload-file">
    <el-upload
      multiple
      :accept="acceptList"
      :action="uploadFileUrl"
      :before-upload="handleBeforeUpload"
      :file-list="fileList"
@@ -55,12 +56,12 @@
    // 大小限制(MB)
    fileSize: {
      type: Number,
      default: 5,
      default: 20,
    },
    // 文件类型, 例如['png', 'jpg', 'jpeg']
    fileType: {
      type: Array,
      default: () => ["doc", "xls", "ppt", "txt", "pdf"],
      default: () => ["doc", "docx", "xls", "xlsx", "ppt", "txt", "pdf", "jpg", "png"],
    },
    // 是否显示提示
    isShowTip: {
@@ -109,6 +110,11 @@
    showTip() {
      return this.isShowTip && (this.fileType || this.fileSize);
    },
    acceptList () {
      let temp = '.*'
      temp = this.fileType.map(item => '.' + item).join(',')
      return temp
    }
  },
  methods: {
    // 上传前校检格式和大小
@@ -147,7 +153,7 @@
    // 上传成功回调
    handleUploadSuccess(res, file) {
      if (res.code === 200) {
        this.uploadList.push({ name: res.fileName, url: res.fileName });
        this.uploadList.push({ name: res.newFileName, originalName: res.originalFilename , url: res.fileName });
        this.uploadedSuccessfully();
      } else {
        this.number--;
@@ -160,7 +166,9 @@
    // 删除文件
    handleDelete(index) {
      this.fileList.splice(index, 1);
      this.$emit("input", this.listToString(this.fileList));
      // this.$emit("input", this.listToString(this.fileList));
      //修改为返回数组
      this.$emit("input", this.fileList);
    },
    // 上传结束处理
    uploadedSuccessfully() {
@@ -168,7 +176,9 @@
        this.fileList = this.fileList.concat(this.uploadList);
        this.uploadList = [];
        this.number = 0;
        this.$emit("input", this.listToString(this.fileList));
        // this.$emit("input", this.listToString(this.fileList));
        //修改为返回数组
        this.$emit("input", this.fileList);
        this.$modal.closeLoading();
      }
    },