hotfix/2.9.42310.01

工资单查看权限
This commit is contained in:
黎永顺 2023-10-11 16:23:55 +08:00
parent d00e46442d
commit dd9d429a81
4 changed files with 93 additions and 66 deletions

View File

@ -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);
};

View File

@ -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 => {

View File

@ -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);
}
});
}
});
};

View File

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