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()); +};