Newer
Older
DH_Apicture / src / plugins / download.js
@zhangqy zhangqy on 29 Nov 1 KB first commit
  1. import axios from "axios";
  2. import { ElMessage } from "element-plus";
  3. import { saveAs } from "file-saver";
  4. import { getToken } from "@/utils/auth";
  5. import errorCode from "@/utils/errorCode";
  6. import { blobValidate } from "@/utils/ruoyi";
  7.  
  8. const baseURL =
  9. import.meta.env.VITE_APP_ENV == "development"
  10. ? ""
  11. : import.meta.env.VITE_APP_BASE_API;
  12. export default {
  13. zip(url, name) {
  14. var url = baseURL + url;
  15. axios({
  16. method: "get",
  17. url: url,
  18. responseType: "blob",
  19. headers: { Authorization: "Bearer " + getToken() },
  20. }).then(async (res) => {
  21. const isLogin = await blobValidate(res.data);
  22. if (isLogin) {
  23. const blob = new Blob([res.data], { type: "application/zip" });
  24. this.saveAs(blob, name);
  25. } else {
  26. this.printErrMsg(res.data);
  27. }
  28. });
  29. },
  30. saveAs(text, name, opts) {
  31. saveAs(text, name, opts);
  32. },
  33. async printErrMsg(data) {
  34. const resText = await data.text();
  35. const rspObj = JSON.parse(resText);
  36. const errMsg = errorCode[rspObj.code] || rspObj.msg || errorCode["default"];
  37. ElMessage.error(errMsg);
  38. },
  39. };