疯狂的狮子Li
2022-05-10 e4267c5c5605704ca8eae2dfc55efdb475f2ec1c
ruoyi-ui/src/components/ImageUpload/index.vue
@@ -44,6 +44,7 @@
<script>
import { getToken } from "@/utils/auth";
import { delOss } from "@/api/system/oss";
export default {
  props: {
@@ -92,8 +93,12 @@
          const list = Array.isArray(val) ? val : this.value.split(',');
          // 然后将数组转为对象数组
          this.fileList = list.map(item => {
            // 字符串回显处理 如果此处存的是url可直接回显 如果存的是id需要调用接口查出来
            if (typeof item === "string") {
              item = { name: item, url: item };
            } else {
              // 此处name使用ossId 防止删除出现重名
              item = { name: item.ossId, url: item.url, ossId: item.ossId };
            }
            return item;
          });
@@ -117,19 +122,21 @@
    handleRemove(file, fileList) {
      const findex = this.fileList.map(f => f.name).indexOf(file.name);
      if(findex > -1) {
        let ossId = this.fileList[findex].ossId;
        delOss(ossId);
        this.fileList.splice(findex, 1);
        this.$emit("input", this.listToString(this.fileList));
        this.$emit("input", this.fileList);
      }
    },
    // 上传成功回调
    handleUploadSuccess(res) {
      if (res.code == 200) {
        this.uploadList.push({ name: res.data.fileName, url: res.data.url });
        this.uploadList.push({ name: res.data.fileName, url: res.data.url, ossId: res.data.ossId });
        if (this.uploadList.length === this.number) {
          this.fileList = this.fileList.concat(this.uploadList);
          this.uploadList = [];
          this.number = 0;
          this.$emit("input", this.listToString(this.fileList));
          this.$emit("input", this.fileList);
          this.$modal.closeLoading();
        }
      } else {
@@ -182,15 +189,6 @@
      this.dialogImageUrl = file.url;
      this.dialogVisible = true;
    },
    // 对象转成指定字符串分隔
    listToString(list, separator) {
      let strs = "";
      separator = separator || ",";
      for (let i in list) {
        strs += list[i].url + separator;
      }
      return strs != '' ? strs.substr(0, strs.length - 1) : '';
    }
  }
};
</script>