From 1944a35f7fb977cb408bc9a2dcbf4047e8308e2c Mon Sep 17 00:00:00 2001 From: anna Date: Tue, 2 Jan 2024 11:52:31 +0800 Subject: [PATCH 1/2] excel export --- src/pages/Organization/SearchPage/OrganizationSearchForm.js | 2 +- src/utils/HttpUtils.js | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/pages/Organization/SearchPage/OrganizationSearchForm.js b/src/pages/Organization/SearchPage/OrganizationSearchForm.js index a406efe..9b60efa 100644 --- a/src/pages/Organization/SearchPage/OrganizationSearchForm.js +++ b/src/pages/Organization/SearchPage/OrganizationSearchForm.js @@ -45,7 +45,7 @@ const OrganizationSearchForm = ({ applySearch }) => { } const doExport=()=>{ - HttpUtils.get({ + HttpUtils.reportDownload({ url: UrlUtils.GET_ORG_EXPORT }); } diff --git a/src/utils/HttpUtils.js b/src/utils/HttpUtils.js index eaeafd8..d6bd1f6 100644 --- a/src/utils/HttpUtils.js +++ b/src/utils/HttpUtils.js @@ -82,13 +82,17 @@ export const fileDownload = ({fileId, skey, filename, onResponse, onError}) =>{ }); }; -export const reportDownload = ({url, filename, onError}) =>{ +export const reportDownload = ({url, onError}) =>{ axios.get( url, { responseType: 'blob', } ).then( (response)=>{ + const filename = response.headers + .get("content-disposition") + .split("filename=")[1] + .split('"')[1].trim(); const url = URL.createObjectURL(response.data); const a = document.createElement('a'); a.href = url; From d0363558ea54869d56bde5c8aa03d146a37f906c Mon Sep 17 00:00:00 2001 From: anna Date: Tue, 2 Jan 2024 12:16:23 +0800 Subject: [PATCH 2/2] update download function --- .../SearchPage/OrganizationSearchForm.js | 2 +- .../Proof/Reply_GLD/ApplicationDetails.js | 5 +- .../Details_GLD/tabTableDetail/ProofTab.js | 3 +- src/utils/HttpUtils.js | 58 ++++++++++--------- 4 files changed, 35 insertions(+), 33 deletions(-) diff --git a/src/pages/Organization/SearchPage/OrganizationSearchForm.js b/src/pages/Organization/SearchPage/OrganizationSearchForm.js index 9b60efa..a525710 100644 --- a/src/pages/Organization/SearchPage/OrganizationSearchForm.js +++ b/src/pages/Organization/SearchPage/OrganizationSearchForm.js @@ -45,7 +45,7 @@ const OrganizationSearchForm = ({ applySearch }) => { } const doExport=()=>{ - HttpUtils.reportDownload({ + HttpUtils.fileDownload({ url: UrlUtils.GET_ORG_EXPORT }); } diff --git a/src/pages/Proof/Reply_GLD/ApplicationDetails.js b/src/pages/Proof/Reply_GLD/ApplicationDetails.js index 71933b0..1fd74dc 100644 --- a/src/pages/Proof/Reply_GLD/ApplicationDetails.js +++ b/src/pages/Proof/Reply_GLD/ApplicationDetails.js @@ -85,9 +85,8 @@ const ApplicationDetailCard = ({ const genProof = () =>{ // window.open(UrlUtils.GEN_GAZETTE_PROOF); - HttpUtils.reportDownload({ - url: UrlUtils.GEN_GAZETTE_PROOF+"/"+params.id, - filename: "proof.pdf" + HttpUtils.fileDownload({ + url: UrlUtils.GEN_GAZETTE_PROOF+"/"+params.id }); } diff --git a/src/pages/PublicNotice/Details_GLD/tabTableDetail/ProofTab.js b/src/pages/PublicNotice/Details_GLD/tabTableDetail/ProofTab.js index cc1b7d2..4679084 100644 --- a/src/pages/PublicNotice/Details_GLD/tabTableDetail/ProofTab.js +++ b/src/pages/PublicNotice/Details_GLD/tabTableDetail/ProofTab.js @@ -25,9 +25,8 @@ export default function ProofTab({rows}) { }; const onDownloadClick = (params) => () => { - HttpUtils.reportDownload({ + HttpUtils.fileDownload({ url: UrlUtils.GEN_GAZETTE_PROOF+"/"+params.row.id, - filename: "proofSlip.pdf" }); }; diff --git a/src/utils/HttpUtils.js b/src/utils/HttpUtils.js index d6bd1f6..1fab4b8 100644 --- a/src/utils/HttpUtils.js +++ b/src/utils/HttpUtils.js @@ -58,17 +58,21 @@ export const postWithFiles = ({url, params, files, onSuccess, onFail, onError}) }); }; -export const fileDownload = ({fileId, skey, filename, onResponse, onError}) =>{ - axios.get( FILE_DOWN_GET+"/"+fileId+"/"+skey+"/"+filename, +export const fileDownload = ({url, fileId, skey, filename, onResponse, onError}) =>{ + if(!url){ + url = FILE_DOWN_GET+"/"+fileId+"/"+skey+"/"+filename + } + axios.get( url, { responseType: 'blob', } ).then( (response)=>{ + const fn = response.headers.get("content-disposition")?.split("filename=")[1]?.split('"')[1]?.trim()??filename; const url = URL.createObjectURL(response.data); const a = document.createElement('a'); a.href = url; - a.setAttribute("download", filename); + a.setAttribute("download", fn); document.body.appendChild(a); a.click(); document.body.removeChild(a); @@ -82,30 +86,30 @@ export const fileDownload = ({fileId, skey, filename, onResponse, onError}) =>{ }); }; -export const reportDownload = ({url, onError}) =>{ - axios.get( url, - { - responseType: 'blob', - } - ).then( - (response)=>{ - const filename = response.headers - .get("content-disposition") - .split("filename=")[1] - .split('"')[1].trim(); - const url = URL.createObjectURL(response.data); - const a = document.createElement('a'); - a.href = url; - a.setAttribute("download", filename); - document.body.appendChild(a); - a.click(); - document.body.removeChild(a); - URL.revokeObjectURL(url); - } - ).catch(error => { - return handleError(error,onError); - }); -}; +// export const reportDownload = ({url, onError}) =>{ +// axios.get( url, +// { +// responseType: 'blob', +// } +// ).then( +// (response)=>{ +// const filename = response.headers +// .get("content-disposition") +// .split("filename=")[1] +// .split('"')[1].trim(); +// const url = URL.createObjectURL(response.data); +// const a = document.createElement('a'); +// a.href = url; +// a.setAttribute("download", filename); +// document.body.appendChild(a); +// a.click(); +// document.body.removeChild(a); +// URL.revokeObjectURL(url); +// } +// ).catch(error => { +// return handleError(error,onError); +// }); +// }; export const fileUpload = ({ refType, refId, files, refCode, onSuccess, onFail, onError}) =>{ // console.log(files);