From a563ea879ef5fb6897e76d2df661e465dce2ab9b Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期一, 01 六月 2026 15:02:27 +0800
Subject: [PATCH] Merge branch 'dev_新疆_大罗素马铃薯new' of http://114.132.189.42:9002/r/product-inventory-management into dev_新疆_大罗素马铃薯new
---
src/plugins/download.js | 101 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 101 insertions(+), 0 deletions(-)
diff --git a/src/plugins/download.js b/src/plugins/download.js
new file mode 100644
index 0000000..35ac92f
--- /dev/null
+++ b/src/plugins/download.js
@@ -0,0 +1,101 @@
+锘縤mport 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: "姝e湪涓嬭浇鏁版嵁锛岃绋嶅��",
+ 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) {
+ // 灏哢RL涓殑preview鏇挎崲鎴恉ownload
+ 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);
+ },
+};
--
Gitblit v1.9.3