download.ts 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. // / 下载模板
  2. import axios from "axios";
  3. const FLIE_URL = import.meta.env.VITE_BASE_URL;
  4. import { ElMessage } from "element-plus";
  5. export const GetdownloadDataRosterTemplateApi = async () => {
  6. const token = localStorage.getItem("token") || "";
  7. try {
  8. const response = await axios.get(FLIE_URL + "/quota/downloaQuotaTemplate", {
  9. responseType: "blob", // 确保接收的是二进制数据
  10. headers: {
  11. satoken: token // 将 token 添加到请求头
  12. }
  13. });
  14. // 创建 Blob 对象并生成下载链接
  15. const blob = new Blob([response.data], {
  16. type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
  17. });
  18. const link = document.createElement("a");
  19. link.href = URL.createObjectURL(blob);
  20. link.download = "模板.xlsx"; // 文件名
  21. document.body.appendChild(link);
  22. link.click();
  23. // 清理 DOM
  24. document.body.removeChild(link);
  25. URL.revokeObjectURL(link.href);
  26. ElMessage.success("模板下载成功");
  27. } catch (error) {
  28. ElMessage.error("模板下载失败,请重试");
  29. }
  30. };
  31. export const postUpdateDeptApi = async data => {
  32. const token = localStorage.getItem("token") || "";
  33. return axios.post(`${FLIE_URL}/quota/importQuotaTemplate`, data, {
  34. headers: {
  35. "Content-Type": "multipart/form-data", // 指定内容类型
  36. satoken: token // 将 Token 添加到请求头
  37. }
  38. });
  39. };
  40. // 考核指标下载
  41. export const assessmentDownloadDataRosterTemplateApi = async type => {
  42. const token = localStorage.getItem("token") || "";
  43. const params = { type };
  44. try {
  45. const response = await axios.get(
  46. FLIE_URL + "/assessment/downloadAssessmentTemplate",
  47. {
  48. responseType: "blob", // 确保接收的是二进制数据
  49. headers: {
  50. satoken: token // 将 token 添加到请求头
  51. },
  52. params
  53. }
  54. );
  55. // 创建 Blob 对象并生成下载链接
  56. const blob = new Blob([response.data], {
  57. type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
  58. });
  59. const link = document.createElement("a");
  60. link.href = URL.createObjectURL(blob);
  61. link.download = "模板.xlsx"; // 文件名
  62. document.body.appendChild(link);
  63. link.click();
  64. // 清理 DOM
  65. document.body.removeChild(link);
  66. URL.revokeObjectURL(link.href);
  67. ElMessage.success("模板下载成功");
  68. } catch (error) {
  69. ElMessage.error("模板下载失败,请重试");
  70. }
  71. };
  72. // 上传
  73. export const postImportAssessmentTemplate = async data => {
  74. const token = localStorage.getItem("token") || "";
  75. return axios.post(`${FLIE_URL}/assessment/importAssessmentTemplate`, data, {
  76. headers: {
  77. "Content-Type": "multipart/form-data", // 指定内容类型
  78. satoken: token // 将 Token 添加到请求头
  79. }
  80. });
  81. };