From d00e46442dd7ceec9d7bc8a5858f2f67b0606030 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=8E=E6=B0=B8=E9=A1=BA?= <971387674@qq.com> Date: Mon, 9 Oct 2023 15:33:19 +0800 Subject: [PATCH 1/5] hotfix/2.9.42310.01 --- pc4mobx/hrmSalary/pages/dataAcquisition/cumSituation/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pc4mobx/hrmSalary/pages/dataAcquisition/cumSituation/index.js b/pc4mobx/hrmSalary/pages/dataAcquisition/cumSituation/index.js index 78c77a40..8ac0a3cd 100644 --- a/pc4mobx/hrmSalary/pages/dataAcquisition/cumSituation/index.js +++ b/pc4mobx/hrmSalary/pages/dataAcquisition/cumSituation/index.js @@ -37,7 +37,7 @@ class Index extends Component { super(props); this.state = { year: moment(new Date()).format("YYYY"), - declareMonth: moment(new Date()).month() + 1 > 10 ? (moment(new Date()).month() + 1) + "" : "0" + (moment(new Date()).month() + 1), + declareMonth: moment(new Date()).month() + 1 >= 10 ? (moment(new Date()).month() + 1) + "" : "0" + (moment(new Date()).month() + 1), taxAgentId: "", innerWidth: window.innerWidth, addAllLoading: false, From dd9d429a81d220fed8d6b95de25eec3c88d3d865 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=8E=E6=B0=B8=E9=A1=BA?= <971387674@qq.com> Date: Wed, 11 Oct 2023 16:23:55 +0800 Subject: [PATCH 2/5] =?UTF-8?q?hotfix/2.9.42310.01=20=E5=B7=A5=E8=B5=84?= =?UTF-8?q?=E5=8D=95=E6=9F=A5=E7=9C=8B=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pc4mobx/hrmSalary/apis/mySalaryBenefits.js | 26 ++++--- pc4mobx/hrmSalary/apis/payroll.js | 9 ++- .../hrmSalary/pages/mobilePayroll/index.js | 70 +++++++++++-------- pc4mobx/hrmSalary/util/request.js | 54 +++++++------- 4 files changed, 93 insertions(+), 66 deletions(-) diff --git a/pc4mobx/hrmSalary/apis/mySalaryBenefits.js b/pc4mobx/hrmSalary/apis/mySalaryBenefits.js index e985ac5a..d28d7ed7 100644 --- a/pc4mobx/hrmSalary/apis/mySalaryBenefits.js +++ b/pc4mobx/hrmSalary/apis/mySalaryBenefits.js @@ -1,4 +1,5 @@ import { WeaTools } from "ecCom"; +import { formHeaderPost } from "../util/request"; import { convertToUrlString } from "../util/url"; // 工资单列表 @@ -26,23 +27,25 @@ export const recordList = params => { // 工资查看详情 export const mySalaryBill = params => { - return fetch(`/api/bs/hrmsalary/salaryBill/mySalaryBill?${convertToUrlString(params)}`, { + const { header, ...payload } = params; + return fetch(`/api/bs/hrmsalary/salaryBill/mySalaryBill?${convertToUrlString(payload)}`, { method: "GET", mode: "cors", - headers: { - "Content-Type": "application/json" - } + headers: { "Content-Type": "application/json", ...header } }).then(res => res.json()); }; -export const isNeedSecondPwdVerify = params => { - return WeaTools.callApi("/api/encrypt/secondauthsetting/isNeedSecondAuth", "POST", params); +export const isNeedSecondPwdVerify = (params, headers) => { + return formHeaderPost("/api/encrypt/secondauthsetting/isNeedSecondAuth", "POST", params, headers); + // return WeaTools.callApi("/api/encrypt/secondauthsetting/isNeedSecondAuth", "POST", params); }; -export const getSecondAuthForm = params => { - return WeaTools.callApi("/api/encrypt/secondauthsetting/getSecondAuthForm", "POST", params); +export const getSecondAuthForm = (params, headers) => { + return formHeaderPost("/api/encrypt/secondauthsetting/getSecondAuthForm", "POST", params, headers); + // return WeaTools.callApi("/api/encrypt/secondauthsetting/getSecondAuthForm", "POST", params); }; -export const doSecondAuth = params => { - return WeaTools.callApi("/api/encrypt/secondauthsetting/doSecondAuth", "POST", params); +export const doSecondAuth = (params, headers) => { + return formHeaderPost("/api/encrypt/secondauthsetting/doSecondAuth", "POST", params, headers); + // return WeaTools.callApi("/api/encrypt/secondauthsetting/doSecondAuth", "POST", params); }; export const checkPassword = params => { return WeaTools.callApi("/api/hrm/secondarypwd/checkPassword", "POST", params); @@ -50,3 +53,6 @@ export const checkPassword = params => { export const saveSecondaryPwd = params => { return WeaTools.callApi("/api/hrm/secondarypwd/saveSecondaryPwd", "POST", params); }; +export const salaryBillGetToken = params => { + return WeaTools.callApi("/api/bs/hrmsalary/salaryBill/getToken", "GET", params); +}; diff --git a/pc4mobx/hrmSalary/apis/payroll.js b/pc4mobx/hrmSalary/apis/payroll.js index 14c949d5..890c7069 100644 --- a/pc4mobx/hrmSalary/apis/payroll.js +++ b/pc4mobx/hrmSalary/apis/payroll.js @@ -1,5 +1,6 @@ import { WeaTools } from "ecCom"; import { postFetch } from "../util/request"; +import { convertToUrlString } from "../util/url"; //工资单-工资单发放列表 export const getPayrollList = params => { @@ -377,7 +378,13 @@ export const payrollCheckType = params => { }; //工资单-反馈验证 export const feedBackSalaryBill = params => { - return WeaTools.callApi("/api/bs/hrmsalary/salaryBill/feedBackSalaryBill", "GET", params); + const { header, ...payload } = params; + return fetch(`/api/bs/hrmsalary/salaryBill/feedBackSalaryBill?${convertToUrlString(payload)}`, { + method: "GET", + mode: "cors", + headers: { "Content-Type": "application/json", ...header } + }).then(res => res.json()); + // return WeaTools.callApi("/api/bs/hrmsalary/salaryBill/feedBackSalaryBill", "GET", params); }; //工资单-确认 export const confirmSalaryBill = params => { diff --git a/pc4mobx/hrmSalary/pages/mobilePayroll/index.js b/pc4mobx/hrmSalary/pages/mobilePayroll/index.js index dc72e97c..9cfc0a52 100644 --- a/pc4mobx/hrmSalary/pages/mobilePayroll/index.js +++ b/pc4mobx/hrmSalary/pages/mobilePayroll/index.js @@ -8,6 +8,7 @@ import ComputerTemplate from "../payroll/templatePreview/computerTemplate"; import PhoneTemplate from "../payroll/templatePreview/phoneTemplate"; import "../payroll/templatePreview/index.less"; import * as API from "../../apis/mySalaryBenefits"; +import { salaryBillGetToken } from "../../apis/mySalaryBenefits"; import { confirmSalaryBill, feedBackSalaryBill, payrollCheckType } from "../../apis/payroll"; import CaptchaModal from "../../components/captchaModal"; import PassSetDialog from "./passSetDialog"; @@ -30,7 +31,8 @@ export default class MobilePayroll extends React.Component { mySalaryBillData: { employeeInformation: {}, salaryTemplate: [] - } + }, + salaryBillToken: {} }; this.id = ""; } @@ -39,37 +41,40 @@ export default class MobilePayroll extends React.Component { const type = getQueryString("type"); this.id = getQueryString("id"); const { mySalaryStore: { init } } = this.props; - const { data, status } = await payrollCheckType(); if (type !== "phone") { + const { data, status } = await payrollCheckType(); if (status && data === "PWD") { init(false, () => this.getMySalaryBill(this.id)); } else { this.setState({ captchaVisible: true }); } } - type === "phone" && this.initMobile(); + type === "phone" && await this.initMobile(); } - initMobile = () => { + initMobile = async () => { const { mySalaryStore: { setInitEmVerify } } = this.props; - // if (window.em) { - API.isNeedSecondPwdVerify({ mouldCode: "HRM", itemCode: "SALARY" }).then(({ status, isNeedSecondAuth }) => { - if (status && isNeedSecondAuth) { - this.setState({ visible: true }, () => { - API.getSecondAuthForm({ mouldCode: "HRM", itemCode: "SALARY" }).then(({ status, notSetting }) => { - this.setState({ notSetting }); - }); + const params = this.getUrlkey(); + const { data } = await salaryBillGetToken({ uid: _.pick(params, ["recipient"]).recipient }); + this.setState({ salaryBillToken: data }, () => { + API.isNeedSecondPwdVerify({ mouldCode: "HRM", itemCode: "SALARY" }, this.state.salaryBillToken) + .then(({ status, isNeedSecondAuth }) => { + if (status && isNeedSecondAuth) { + this.setState({ visible: true }, () => { + API.getSecondAuthForm({ mouldCode: "HRM", itemCode: "SALARY" }, this.state.salaryBillToken) + .then(({ status, notSetting }) => { + this.setState({ notSetting }); + }); + }); + } else { + this.getMySalaryBill(getQueryString("id")); + setInitEmVerify(); + } }); - } else { - this.getMySalaryBill(getQueryString("id")); - setInitEmVerify(); - } }); - // } else { - // setInitEmVerify(); - // } }; doSecondAuth = () => { + const { salaryBillToken } = this.state; const { mySalaryStore: { setInitEmVerify } } = this.props; if (!this.state.authCode) { this.refs.weaError.showError(); @@ -77,7 +82,7 @@ export default class MobilePayroll extends React.Component { } API.doSecondAuth({ authCode: this.state.authCode, mouldCode: "HRM", itemCode: "SALARY" - }).then(({ status, checkStatus, checkMsg }) => { + }, salaryBillToken).then(({ status, checkStatus, checkMsg }) => { if (status && checkStatus === "1") { message.success(checkMsg); setInitEmVerify(); @@ -89,10 +94,11 @@ export default class MobilePayroll extends React.Component { }); }; getMySalaryBill = (salaryInfoId) => { + const { salaryBillToken } = this.state; const { mySalaryStore: { getMySalaryBill } } = this.props; const params = this.getUrlkey(); const payload = { - salaryInfoId, + salaryInfoId, header: salaryBillToken, ..._.pick(params, ["recipient"]) }; getMySalaryBill(payload).then(result => { @@ -129,17 +135,19 @@ export default class MobilePayroll extends React.Component { title: getLabel(131329, "信息确认"), content: getLabel(111, "请确认薪资信息是有误,进行反馈并发起反馈流程。"), onOk: () => { - feedBackSalaryBill({ salaryInfoId: getQueryString("id") }).then(({ status, errorMsg }) => { - if (status) { - const { mySalaryBillData } = this.state; - const { salaryTemplate } = mySalaryBillData; - const { feedbackUrl } = salaryTemplate; - this.getMySalaryBill(getQueryString("id")); - window.open(`${window.ecologyContentPath || ""}${feedbackUrl}`); - } else { - message.error(errorMsg); - } - }); + const { salaryBillToken } = this.state; + feedBackSalaryBill({ salaryInfoId: getQueryString("id"), header: salaryBillToken }) + .then(({ status, errorMsg }) => { + if (status) { + const { mySalaryBillData } = this.state; + const { salaryTemplate } = mySalaryBillData; + const { feedbackUrl } = salaryTemplate; + this.getMySalaryBill(getQueryString("id")); + window.open(`${window.ecologyContentPath || ""}${feedbackUrl}`); + } else { + message.error(errorMsg); + } + }); } }); }; diff --git a/pc4mobx/hrmSalary/util/request.js b/pc4mobx/hrmSalary/util/request.js index a1140138..3c7ecf02 100644 --- a/pc4mobx/hrmSalary/util/request.js +++ b/pc4mobx/hrmSalary/util/request.js @@ -1,26 +1,32 @@ -export const formPost = (url, params) => { - url = url + "?__random__=" + (new Date()).valueOf(); - let formdata = new URLSearchParams(); - Object.keys(params).map(key => { - formdata.append(key, params[key]) - }) - return fetch(url, { - method:"POST", - headers:{ - "Content-Type":'application/x-www-form-urlencoded' - }, - body:formdata - }).then(res => res.json()) -} +export const formHeaderPost = (url, method, params, header) => { + url = url + "?__random__=" + (new Date()).valueOf(); + let formdata = new URLSearchParams(); + Object.keys(params).map(key => { + formdata.append(key, params[key]); + }); + return fetch(url, { + method, mode: "cors", + headers: { "Content-Type": "application/x-www-form-urlencoded", ...header }, + body: formdata + }).then(res => res.json()); +}; export const postFetch = (url, params) => { - url = url + "?__random__=" + (new Date()).valueOf(); - return fetch(url, { - method: 'POST', - mode: 'cors', - headers: { - 'Content-Type': 'application/json' - }, - body: JSON.stringify(params) - }).then(res => res.json()) -} \ No newline at end of file + url = url + "?__random__=" + (new Date()).valueOf(); + return fetch(url, { + method: "POST", + mode: "cors", + headers: { + "Content-Type": "application/json" + }, + body: JSON.stringify(params) + }).then(res => res.json()); +}; +export const headerRequestFetch = (url, method, params, header) => { + url = url + "?__random__=" + (new Date()).valueOf(); + return fetch(url, { + method, mode: "cors", + headers: { "Content-Type": "application/json", ...header }, + body: JSON.stringify(params) + }).then(res => res.json()); +}; From d67b8bc6ab5e176346da338737383cb7405d5d29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=8E=E6=B0=B8=E9=A1=BA?= <971387674@qq.com> Date: Wed, 11 Oct 2023 18:23:19 +0800 Subject: [PATCH 3/5] hotfix/2.9.42310.01 --- pc4mobx/hrmSalary/pages/mobilePayroll/index.js | 3 ++- pc4mobx/hrmSalary/pages/salaryItem/formalFormModal.js | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/pc4mobx/hrmSalary/pages/mobilePayroll/index.js b/pc4mobx/hrmSalary/pages/mobilePayroll/index.js index 9cfc0a52..bd152a29 100644 --- a/pc4mobx/hrmSalary/pages/mobilePayroll/index.js +++ b/pc4mobx/hrmSalary/pages/mobilePayroll/index.js @@ -143,7 +143,8 @@ export default class MobilePayroll extends React.Component { const { salaryTemplate } = mySalaryBillData; const { feedbackUrl } = salaryTemplate; this.getMySalaryBill(getQueryString("id")); - window.open(`${window.ecologyContentPath || ""}${feedbackUrl}`); + window.location.href=`${window.ecologyContentPath || ""}${feedbackUrl}` + // window.open(`${window.ecologyContentPath || ""}${feedbackUrl}`); } else { message.error(errorMsg); } diff --git a/pc4mobx/hrmSalary/pages/salaryItem/formalFormModal.js b/pc4mobx/hrmSalary/pages/salaryItem/formalFormModal.js index 98c706fc..fcfbf8a7 100644 --- a/pc4mobx/hrmSalary/pages/salaryItem/formalFormModal.js +++ b/pc4mobx/hrmSalary/pages/salaryItem/formalFormModal.js @@ -312,7 +312,7 @@ export default class FormalFormModal extends React.Component { // validateType: this.props.dataType || this.state.returnType, // extendParam: JSON.stringify(this.state.extendParam), // formula: this.state.value, - parameters: this.parameters, + parameters: _.map(this.parameters, o => ({ ...o, content: o.content || "" })), id: this.props.formulaId // referenceType: this.referenceType == "" ? this.props.valueType == "2" ? "formula" : this.props.valueType == "3" ? "sql" : "" : this.referenceType }; From f2027627f4bc7be765c8a3c6a7fe66b6c1662f75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=8E=E6=B0=B8=E9=A1=BA?= <971387674@qq.com> Date: Thu, 12 Oct 2023 14:08:48 +0800 Subject: [PATCH 4/5] hotfix/2.9.42310.01 --- .../hrmSalary/pages/mobilePayroll/index.js | 30 +++++++++++++++---- 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/pc4mobx/hrmSalary/pages/mobilePayroll/index.js b/pc4mobx/hrmSalary/pages/mobilePayroll/index.js index bd152a29..69329ae3 100644 --- a/pc4mobx/hrmSalary/pages/mobilePayroll/index.js +++ b/pc4mobx/hrmSalary/pages/mobilePayroll/index.js @@ -54,9 +54,7 @@ export default class MobilePayroll extends React.Component { initMobile = async () => { const { mySalaryStore: { setInitEmVerify } } = this.props; - const params = this.getUrlkey(); - const { data } = await salaryBillGetToken({ uid: _.pick(params, ["recipient"]).recipient }); - this.setState({ salaryBillToken: data }, () => { + if (window.em) { API.isNeedSecondPwdVerify({ mouldCode: "HRM", itemCode: "SALARY" }, this.state.salaryBillToken) .then(({ status, isNeedSecondAuth }) => { if (status && isNeedSecondAuth) { @@ -71,7 +69,26 @@ export default class MobilePayroll extends React.Component { setInitEmVerify(); } }); - }); + } else { + const params = this.getUrlkey(); + const { data } = await salaryBillGetToken({ uid: _.pick(params, ["recipient"]).recipient }); + this.setState({ salaryBillToken: data }, () => { + API.isNeedSecondPwdVerify({ mouldCode: "HRM", itemCode: "SALARY" }, this.state.salaryBillToken) + .then(({ status, isNeedSecondAuth }) => { + if (status && isNeedSecondAuth) { + this.setState({ visible: true }, () => { + API.getSecondAuthForm({ mouldCode: "HRM", itemCode: "SALARY" }, this.state.salaryBillToken) + .then(({ status, notSetting }) => { + this.setState({ notSetting }); + }); + }); + } else { + this.getMySalaryBill(getQueryString("id")); + setInitEmVerify(); + } + }); + }); + } }; doSecondAuth = () => { const { salaryBillToken } = this.state; @@ -143,7 +160,7 @@ export default class MobilePayroll extends React.Component { const { salaryTemplate } = mySalaryBillData; const { feedbackUrl } = salaryTemplate; this.getMySalaryBill(getQueryString("id")); - window.location.href=`${window.ecologyContentPath || ""}${feedbackUrl}` + window.location.href = `${window.ecologyContentPath || ""}${feedbackUrl}`; // window.open(`${window.ecologyContentPath || ""}${feedbackUrl}`); } else { message.error(errorMsg); @@ -174,7 +191,8 @@ export default class MobilePayroll extends React.Component { ]} > - this.setState({ authCode })}/> + this.setState({ authCode })}/> { notSetting && From b260a41c7e58de7e8592b6ea272c22a75c6310a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=8E=E6=B0=B8=E9=A1=BA?= <971387674@qq.com> Date: Thu, 12 Oct 2023 15:52:15 +0800 Subject: [PATCH 5/5] =?UTF-8?q?feature/2.9.42310.01-=E7=A4=BE=E4=BF=9D?= =?UTF-8?q?=E7=A6=8F=E5=88=A9=E5=8F=B0=E8=B4=A6=E8=AF=A6=E6=83=85=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E7=9A=84=E5=AF=BC=E5=85=A5=E4=B8=8B=E8=BD=BD=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E6=8E=A5=E5=8F=A3=E6=9B=B4=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pc4mobx/hrmSalary/apis/benefitsProgramme.js | 0 pc4mobx/hrmSalary/apis/standingBook.js | 14 ++++++++++- .../importModal/acctResultImportModal.js | 23 ++++++++++++++++--- pc4mobx/hrmSalary/util/request.js | 22 ++++++++++++++++++ 4 files changed, 55 insertions(+), 4 deletions(-) delete mode 100644 pc4mobx/hrmSalary/apis/benefitsProgramme.js diff --git a/pc4mobx/hrmSalary/apis/benefitsProgramme.js b/pc4mobx/hrmSalary/apis/benefitsProgramme.js deleted file mode 100644 index e69de29b..00000000 diff --git a/pc4mobx/hrmSalary/apis/standingBook.js b/pc4mobx/hrmSalary/apis/standingBook.js index 28235f77..cef1aa55 100644 --- a/pc4mobx/hrmSalary/apis/standingBook.js +++ b/pc4mobx/hrmSalary/apis/standingBook.js @@ -1,5 +1,5 @@ import { WeaTools } from "ecCom"; -import { postFetch } from "../util/request"; +import { postExportFetch, postFetch } from "../util/request"; //社会福利台账-获取正常缴纳列表 export const getCommonList = (params) => { @@ -339,3 +339,15 @@ export const compensationConfigSave = (params) => { export const compensationBack = (params) => { return postFetch("/api/bs/hrmsalary/siaccount/compensationBack", params); }; + +export const exportSiaccountWelfareImporttemplate = params => { + return postExportFetch("/api/bs/hrmsalary/siaccount/welfare/importtemplate/export", params); +}; + +export const exportSiaccountWelfaresupplyimporttemplatetemplate = params => { + return postExportFetch("/api/bs/hrmsalary/siaccount/welfare/supplyimporttemplate/export", params); +}; + +export const exportSiaccountWelfarebalanceimporttemplatetetemplate = params => { + return postExportFetch("/api/bs/hrmsalary/siaccount/welfare/balanceimporttemplate/export", params); +}; diff --git a/pc4mobx/hrmSalary/pages/calculateDetail/acctResult/importModal/acctResultImportModal.js b/pc4mobx/hrmSalary/pages/calculateDetail/acctResult/importModal/acctResultImportModal.js index b7bc7c27..23d5a034 100644 --- a/pc4mobx/hrmSalary/pages/calculateDetail/acctResult/importModal/acctResultImportModal.js +++ b/pc4mobx/hrmSalary/pages/calculateDetail/acctResult/importModal/acctResultImportModal.js @@ -6,6 +6,11 @@ import SelectFieldModal from "./selectFieldModal"; import { getQueryString } from "../../../../util/url"; import AddHeaderFieldsModal from "./addHeaderFieldsModal"; import { cacheImportField } from "../../../../apis/calculate"; +import { + exportSiaccountWelfarebalanceimporttemplatetetemplate, + exportSiaccountWelfareImporttemplate, + exportSiaccountWelfaresupplyimporttemplatetemplate +} from "../../../../apis/standingBook"; @inject("calculateStore", "standingBookStore") @observer @@ -76,11 +81,23 @@ export default class AcctResultImportModal extends React.Component { const billMonth = getQueryString("billMonth"); const paymentOrganization = getQueryString("paymentOrganization"); if (standingBookTabKey === "1") { - url = `${window.location.origin}/api/bs/hrmsalary/siaccount/welfare/importtemplate/export?welfareNames=${this.state.modalParam.salaryItemIds}&billMonth=${billMonth}&paymentOrganization=${paymentOrganization}`; + const promise = exportSiaccountWelfareImporttemplate({ + billMonth, + welfareNames: this.state.modalParam.salaryItemIds.split(","), + paymentOrganization: Number(paymentOrganization) + }); } else if (standingBookTabKey === "3") { - url = `${window.location.origin}/api/bs/hrmsalary/siaccount/welfare/supplyimporttemplate/export?welfareNames=${this.state.modalParam.salaryItemIds}&billMonth=${billMonth}&paymentOrganization=${paymentOrganization}`; + const promise = exportSiaccountWelfaresupplyimporttemplatetemplate({ + billMonth, + welfareNames: this.state.modalParam.salaryItemIds.split(","), + paymentOrganization: Number(paymentOrganization) + }); } else if (standingBookType === "difference") { - url = `${window.location.origin}/api/bs/hrmsalary/siaccount/welfare/balanceimporttemplate/export?welfareNames=${this.state.modalParam.salaryItemIds}&billMonth=${billMonth}&paymentOrganization=${paymentOrganization}`; + const promise = exportSiaccountWelfarebalanceimporttemplatetetemplate({ + billMonth, + welfareNames: this.state.modalParam.salaryItemIds.split(","), + paymentOrganization: Number(paymentOrganization) + }); } } window.open(url, "_self"); diff --git a/pc4mobx/hrmSalary/util/request.js b/pc4mobx/hrmSalary/util/request.js index 3c7ecf02..a7a1c7f2 100644 --- a/pc4mobx/hrmSalary/util/request.js +++ b/pc4mobx/hrmSalary/util/request.js @@ -30,3 +30,25 @@ export const headerRequestFetch = (url, method, params, header) => { body: JSON.stringify(params) }).then(res => res.json()); }; +export const postExportFetch = (url, params) => { + url = url + "?__random__=" + (new Date()).valueOf(); + return fetch(url, { + method: "POST", + mode: "cors", + headers: { + "Content-Type": "application/json" + }, + body: JSON.stringify(params) + }).then(res => { + const filename = res.headers.get("Content-Disposition").split("filename=")[1]; + res.blob().then(blob => { + const url = window.URL.createObjectURL(blob); + const a = document.createElement("a"); + a.href = url; + a.download = decodeURI(filename); + a.click(); + window.URL.revokeObjectURL(url); + }); + }); +}; +