spring
2025-03-21 6b35a453725b34422e5336b456f03b92b963f2d8
Merge branch 'radio-frequency-cable-before' of http://114.132.189.42:9002/r/lims-ruoyi-before into radio-frequency-cable-before
已修改1个文件
52 ■■■■■ 文件已修改
src/plugins/download.js 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/plugins/download.js
@@ -81,46 +81,28 @@
        downloadLoadingInstance.close();
      });
  },
  async saveAs(text, name, opts) {
    if (typeof text === "string") {
  async saveAs(fileUrl, fileName) {
      try {
        let state = /\.(jpg|jpeg|png|gif)$/i.test(text) // 判断是否为图片
        let url1 = ''
        if (state) {
          url1 = Vue.prototype.javaApi + '/img/' + text;
        } else {
          if (text.startsWith("/word/")) {
            url1 = Vue.prototype.javaApi + text
          } else if (text.startsWith("word/")) {
            url1 = Vue.prototype.javaApi + '/' + text
          const response = await axios({
              method: 'get',
              url: `${Vue.prototype.javaApi}/common/downloadMinio`,
              params: {
                  fileUrl,
                  fileName
              },
              responseType: 'blob',
              headers: { Authorization: 'Bearer ' + getToken() }
          });
          if (blobValidate(response.data)) {
              saveAs(new Blob([response.data]), fileName);
              Message.success("下载成功");
          } else {
            url1 = Vue.prototype.javaApi + '/word/' + text
              this.printErrMsg(response.data);
          }
        }
        // 使用 fetch 获取文件
        const response = await fetch(url1);
        if (!response.ok) {
          throw new Error('文件下载失败: ' + response.statusText);
        }
        // 将文件转换为 Blob
        const blob = await response.blob();
        // 使用 saveAs 保存文件
        saveAs(blob, name);
        Message.success("数据导出成功");
      } catch (error) {
        Message.error(error);
          Message.error("下载失败:" + error.message);
      }
    } else {
      // 流下载
      blobToText(text)
        .then((result) => {
          Message.error(result.msg);
        })
        .catch(() => {
          saveAs(text, name, opts);
          Message.success("数据导出成功");
        });
    }
  },
  async printErrMsg(data) {
    const resText = await data.text();