| ¶Ô±ÈÐÂÎļþ |
| | |
| | | import axios from "axios";
|
| | | import { ElLoading, ElMessage } from "element-plus";
|
| | | import { saveAs } from "file-saver";
|
| | | import { getToken } from "@/utils/auth";
|
| | | import errorCode from "@/utils/errorCode";
|
| | | import { blobValidate } from "@/utils/ruoyi";
|
| | |
|
| | | const baseURL = import.meta.env.VITE_APP_BASE_API;
|
| | | let downloadLoadingInstance;
|
| | |
|
| | | export default {
|
| | | name(name, isDelete = true) {
|
| | | var url =
|
| | | baseURL +
|
| | | "/common/download?fileName=" +
|
| | | encodeURIComponent(name) +
|
| | | "&delete=" +
|
| | | isDelete;
|
| | | axios({
|
| | | method: "get",
|
| | | url: url,
|
| | | responseType: "blob",
|
| | | headers: { Authorization: "Bearer " + getToken() },
|
| | | }).then((res) => {
|
| | | const isBlob = blobValidate(res.data);
|
| | | if (isBlob) {
|
| | | const blob = new Blob([res.data]);
|
| | | this.saveAs(blob, decodeURIComponent(res.headers["download-filename"]));
|
| | | } else {
|
| | | this.printErrMsg(res.data);
|
| | | }
|
| | | });
|
| | | },
|
| | | resource(resource) {
|
| | | var url =
|
| | | baseURL +
|
| | | "/common/download/resource?resource=" +
|
| | | encodeURIComponent(resource);
|
| | | axios({
|
| | | method: "get",
|
| | | url: url,
|
| | | responseType: "blob",
|
| | | headers: { Authorization: "Bearer " + getToken() },
|
| | | }).then((res) => {
|
| | | const isBlob = blobValidate(res.data);
|
| | | if (isBlob) {
|
| | | const blob = new Blob([res.data]);
|
| | | this.saveAs(blob, decodeURIComponent(res.headers["download-filename"]));
|
| | | } else {
|
| | | this.printErrMsg(res.data);
|
| | | }
|
| | | });
|
| | | },
|
| | | zip(url, name) {
|
| | | var url = baseURL + url;
|
| | | downloadLoadingInstance = ElLoading.service({
|
| | | text: "æ£å¨ä¸è½½æ°æ®ï¼è¯·ç¨å",
|
| | | background: "rgba(0, 0, 0, 0.7)",
|
| | | });
|
| | | axios({
|
| | | method: "get",
|
| | | url: url,
|
| | | responseType: "blob",
|
| | | headers: { Authorization: "Bearer " + getToken() },
|
| | | })
|
| | | .then((res) => {
|
| | | const isBlob = blobValidate(res.data);
|
| | | if (isBlob) {
|
| | | const blob = new Blob([res.data], { type: "application/zip" });
|
| | | this.saveAs(blob, name);
|
| | | } else {
|
| | | this.printErrMsg(res.data);
|
| | | }
|
| | | downloadLoadingInstance.close();
|
| | | })
|
| | | .catch((r) => {
|
| | | console.error(r);
|
| | | ElMessage.error("ä¸è½½æä»¶åºç°é误ï¼è¯·è系管çåï¼");
|
| | | downloadLoadingInstance.close();
|
| | | });
|
| | | },
|
| | | saveAs(text, name, opts) {
|
| | | saveAs(text, name, opts);
|
| | | },
|
| | | byUrl(url, filename) {
|
| | | // å°URLä¸çpreviewæ¿æ¢ædownload
|
| | | const downloadUrl = url.replace(/preview/g, 'download')
|
| | | const link = document.createElement('a')
|
| | | link.href = downloadUrl
|
| | | link.download = filename || ''
|
| | | document.body.appendChild(link)
|
| | | link.click()
|
| | | document.body.removeChild(link)
|
| | | },
|
| | | async printErrMsg(data) {
|
| | | const resText = await data.text();
|
| | | const rspObj = JSON.parse(resText);
|
| | | const errMsg = errorCode[rspObj.code] || rspObj.msg || errorCode["default"];
|
| | | ElMessage.error(errMsg);
|
| | | },
|
| | | };
|