diff --git a/pc4mobx/hrmSalary/apis/payroll.js b/pc4mobx/hrmSalary/apis/payroll.js
index c322c94f..fdef4e0e 100644
--- a/pc4mobx/hrmSalary/apis/payroll.js
+++ b/pc4mobx/hrmSalary/apis/payroll.js
@@ -202,8 +202,12 @@ export const salaryBillSendSum = (params) => {
return postFetch("/api/bs/hrmsalary/salaryBill/send/sum", params);
};
//工资单发放-发送短信验证码
-export const sendMobileCode = (params) => {
- return postFetch("/api/bs/hrmsalary/salaryBill/sendMobileCode", params);
+export const sendMobileCode = (params, header = {}) => {
+ return postFetch("/api/bs/hrmsalary/salaryBill/sendMobileCode", params, header);
+};
+//工资单发放-发送短信验证码
+export const checkMobileCode = (params, header = {}) => {
+ return postFetch("/api/bs/hrmsalary/salaryBill/checkMobileCode", params, header);
};
//工资单-验证方式
export const payrollCheckType = params => {
diff --git a/pc4mobx/hrmSalary/components/captchaModal/index.js b/pc4mobx/hrmSalary/components/captchaModal/index.js
index a7f00b9b..87da6745 100644
--- a/pc4mobx/hrmSalary/components/captchaModal/index.js
+++ b/pc4mobx/hrmSalary/components/captchaModal/index.js
@@ -6,31 +6,32 @@
*/
import React, { Component } from "react";
import { WeaDialog, WeaError, WeaFormItem, WeaInput, WeaLocaleProvider, WeaSearchGroup } from "ecCom";
-import { sendMobileCode } from "../../apis/payroll";
-import { Button } from "antd";
+import { WeaForm, WeaSwitch } from "comsMobx";
+import { checkMobileCode, sendMobileCode } from "../../apis/payroll";
+import { getQueryString } from "../../util/url";
+import FormInfo from "../FormInfo";
+import { captchaCondition } from "../../pages/mobilePayroll/pwdCondtion";
+import MobileModal from "../../pages/mobilePayroll/mobileModal";
+import { Button, message } from "antd";
import "./index.less";
+const form = new WeaForm();
const { getLabel } = WeaLocaleProvider;
class Index extends Component {
constructor(props) {
super(props);
- this.state = {
- captcha: "",
- time: 60
- };
+ this.state = { captcha: "", time: 60 };
this.timeRef = null;
}
+ componentDidMount() {
+ form.initFormFields(captchaCondition);
+ }
+
componentWillUnmount() {
clearInterval(this.timeRef);
- }
-
- componentWillReceiveProps(nextProps, nextContext) {
- if (nextProps.visible !== this.props.visible && !nextProps.visible) {
- clearInterval(this.timeRef);
- this.setState({ captcha: "", time: 60 });
- }
+ this.setState({ captcha: "", time: 60 });
}
handleSendCaptcha = () => {
@@ -48,44 +49,73 @@ class Index extends Component {
}
});
};
- handleConfirm = () => {
- if (!this.state.captcha) {
+ handleConfirm = async () => {
+ const type = getQueryString("type"), f = await form.validateForm();
+ if (!this.state.captcha && type !== "phone") {
this.refs.weaError.showError();
- // return
+ return;
+ } else if (!f.isValid && type === "phone") {
+ f.showErrors();
+ return;
}
- this.props.onCancel();
- this.props.onConfirm();
+ checkMobileCode({ id: this.props.id, mobileCode: this.state.captcha }).then(({ status, errormsg }) => {
+ if (status) {
+ this.props.onCancel();
+ this.props.onConfirm();
+ } else {
+ message.error(errormsg);
+ }
+ });
};
render() {
- const { captcha, time } = this.state;
- return (
- {getLabel(826, "确定")}
- ]}
- >
-
-
-
-
- this.setState({ captcha })}/>
-
-
-
-
-
-
+ const { captcha, time } = this.state, type = getQueryString("type");
+ const itemRender = {
+ mobileCode: (field, textAreaProps, form, formParams) => {
+ return (
@@ -52,7 +52,7 @@ class EditSalaryCalcSlide extends Component {
{
viewAttr === 2 &&
-
+
}
;
diff --git a/pc4mobx/hrmSalary/pages/calculate/doCalc/components/salaryEditCalc/index.less b/pc4mobx/hrmSalary/pages/calculate/doCalc/components/salaryEditCalc/index.less
index 669f1ba1..f9611c7f 100644
--- a/pc4mobx/hrmSalary/pages/calculate/doCalc/components/salaryEditCalc/index.less
+++ b/pc4mobx/hrmSalary/pages/calculate/doCalc/components/salaryEditCalc/index.less
@@ -244,6 +244,8 @@
position: relative;
margin-top: 10px;
transition: margin-top .3s;
+ max-height: 80vh;
+ overflow: auto;
.anchor-list-ink {
position: absolute;
diff --git a/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/components/attendanceDataViewSlide.js b/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/components/attendanceDataViewSlide.js
index be64c8e8..2f4804b6 100644
--- a/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/components/attendanceDataViewSlide.js
+++ b/pc4mobx/hrmSalary/pages/dataAcquisition/attendance/components/attendanceDataViewSlide.js
@@ -5,9 +5,9 @@
* Date: 2023/3/7
*/
import React, { Component } from "react";
-import { WeaInputSearch, WeaLocaleProvider, WeaSlideModal, WeaTable, WeaTop } from "ecCom";
-import { Button } from "antd";
+import { WeaInputSearch, WeaLocaleProvider, WeaSlideModal, WeaTop } from "ecCom";
import { viewAttendQuote } from "../../../../apis/attendance";
+import { Button, Spin } from "antd";
import "./index.less";
const { getLabel } = WeaLocaleProvider;
@@ -16,11 +16,31 @@ class AttendanceDataViewSlide extends Component {
constructor(props) {
super(props);
this.state = {
- loading: { query: false }, keyword: "", dataSource: [], columns: [],
- pageInfo: { current: 1, pageSize: 10, total: 0 }
+ loading: { query: false }, keyword: "", dataSource: [], pageInfo: { current: 1, pageSize: 10, total: 0 }
};
}
+ componentDidMount() {
+ window.addEventListener("message", this.handleReceive, false);
+ }
+
+ componentWillUnmount() {
+ window.removeEventListener("message", this.handleReceive, false);
+ }
+
+ handleReceive = async ({ data }) => {
+ const { type, payload: { id, params } = {} } = data;
+ if (type === "turn") {
+ switch (id) {
+ case "PAGEINFO":
+ this.setState({ pageInfo: { ...this.state.pageInfo, ...params } }, () => this.viewAttendQuote());
+ break;
+ default:
+ break;
+ }
+ }
+ };
+
componentWillReceiveProps(nextProps, nextContext) {
if (nextProps.visible !== this.props.visible && nextProps.visible) {
document.querySelector(".attendanceRefWrapper").classList.add("zIndex0-attendance");
@@ -33,19 +53,29 @@ class AttendanceDataViewSlide extends Component {
viewAttendQuote = (extraPayload = {}, props) => {
const { loading, pageInfo, keyword } = this.state;
- const { attendQuoteId } = props;
+ const { attendQuoteId } = props || this.props;
this.setState({ loading: { ...loading, query: true } });
viewAttendQuote({ ...pageInfo, attendQuoteId, keyword, ...extraPayload }).then(({ status, data }) => {
this.setState({ loading: { ...loading, query: false } });
if (status) {
const { columns, list: dataSource, pageNum: current, pageSize, total } = data.pageInfo;
this.setState({
- pageInfo: { ...pageInfo, current, pageSize, total }, dataSource,
- columns: _.map(columns, (o, i) => ({ ...o, width: 150, fixed: i === 0 ? "left" : null }))
- });
+ pageInfo: { ...pageInfo, current, pageSize, total }, dataSource
+ }, () => this.postMessageToChild({
+ pageInfo: this.state.pageInfo, dataSource, showRowSelection: false, unitTableType: "attendanceView",
+ columns: _.map(columns, (o, i) => ({ ...o, width: 150, fixed: i === 0 ? "left" : false }))
+ }));
}
}).catch(() => this.setState({ loading: { ...loading, query: false } }));
};
+ postMessageToChild = (payload = {}) => {
+ const i18n = {
+ "操作": getLabel(30585, "操作"), "编辑": getLabel(111, "编辑"), "共": getLabel(18609, "共"),
+ "条": getLabel(18256, "条")
+ };
+ const childFrameObj = document.getElementById("attendanceViewTable");
+ childFrameObj && childFrameObj.contentWindow.postMessage(JSON.stringify({ ...payload, i18n }), "*");
+ };
handleExportAttendQuote = () => {
if (!this.handleDebounce) {
this.handleDebounce = _.debounce(() => {
@@ -60,24 +90,7 @@ class AttendanceDataViewSlide extends Component {
render() {
const { showOperateBtn, salaryYearMonth, ...extra } = this.props;
- const { columns, dataSource, loading, pageInfo, keyword } = this.state;
- const pagination = {
- ...pageInfo,
- showTotal: (total) => `共 ${total} 条`,
- pageSizeOptions: ["10", "20", "50", "100"],
- showSizeChanger: true,
- showQuickJumper: true,
- onShowSizeChange: (current, pageSize) => {
- this.setState({
- pageInfo: { ...pageInfo, current, pageSize }
- }, () => this.viewAttendQuote({}, this.props));
- },
- onChange: (current) => {
- this.setState({
- pageInfo: { ...pageInfo, current }
- }, () => this.viewAttendQuote({}, this.props));
- }
- };
+ const { loading, keyword } = this.state;
const btns = [
,
{getLabel(543376, "考勤周期")}:{salaryYearMonth}