From 925bc0f75abbb4b89a99471812bb7f9ada93abce Mon Sep 17 00:00:00 2001 From: lys <971387674@qq.com> Date: Tue, 1 Apr 2025 15:05:39 +0800 Subject: [PATCH 01/40] release/2.19.1.2501.01 --- .../components/salaryFileImportDialog/index.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pc4mobx/hrmSalary/pages/variableSalary/components/salaryFileImportDialog/index.js b/pc4mobx/hrmSalary/pages/variableSalary/components/salaryFileImportDialog/index.js index 415f7e33..c248b0b3 100644 --- a/pc4mobx/hrmSalary/pages/variableSalary/components/salaryFileImportDialog/index.js +++ b/pc4mobx/hrmSalary/pages/variableSalary/components/salaryFileImportDialog/index.js @@ -30,6 +30,7 @@ class Index extends Component { componentWillReceiveProps(nextProps, nextContext) { const { importDialog } = this.state; if (nextProps.visible !== this.props.visible && nextProps.visible) { + console.log("importDialog", importDialog); const { baseTableStore: { VSalryForm, VExtraSalryForm } } = nextProps; const payload = { ...VSalryForm.getFormParams(), ...VExtraSalryForm.getFormParams(), hasData: importDialog.hasData @@ -96,7 +97,9 @@ class Index extends Component { this.setState({ - importDialog: { ...importDialog, importResult: {}, imageId: "", link: null } + importDialog: { + ...importDialog, importResult: {}, imageId: "", link: "/api/bs/hrmsalary/variableSalary/downloadTemplate" + } })} importParams={this.renderFormComponent()} exportDataDom={ From 3b2a987778766b917ef2041e947f34cc9fa65b87 Mon Sep 17 00:00:00 2001 From: lys <971387674@qq.com> Date: Tue, 1 Apr 2025 15:05:59 +0800 Subject: [PATCH 02/40] release/2.19.1.2501.01 --- .../variableSalary/components/salaryFileImportDialog/index.js | 1 - 1 file changed, 1 deletion(-) diff --git a/pc4mobx/hrmSalary/pages/variableSalary/components/salaryFileImportDialog/index.js b/pc4mobx/hrmSalary/pages/variableSalary/components/salaryFileImportDialog/index.js index c248b0b3..dfc036bf 100644 --- a/pc4mobx/hrmSalary/pages/variableSalary/components/salaryFileImportDialog/index.js +++ b/pc4mobx/hrmSalary/pages/variableSalary/components/salaryFileImportDialog/index.js @@ -30,7 +30,6 @@ class Index extends Component { componentWillReceiveProps(nextProps, nextContext) { const { importDialog } = this.state; if (nextProps.visible !== this.props.visible && nextProps.visible) { - console.log("importDialog", importDialog); const { baseTableStore: { VSalryForm, VExtraSalryForm } } = nextProps; const payload = { ...VSalryForm.getFormParams(), ...VExtraSalryForm.getFormParams(), hasData: importDialog.hasData From 80307c7b9177da68c2c86d9b06fcc543284bfb71 Mon Sep 17 00:00:00 2001 From: lys <971387674@qq.com> Date: Mon, 14 Apr 2025 16:38:41 +0800 Subject: [PATCH 03/40] release/2.19.1.2501.01 --- .../calculate/doCalc/components/salaryEditCalc/index.less | 4 ++++ pc4mobx/hrmSalary/pages/payrollFiles/config/index.js | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/pc4mobx/hrmSalary/pages/calculate/doCalc/components/salaryEditCalc/index.less b/pc4mobx/hrmSalary/pages/calculate/doCalc/components/salaryEditCalc/index.less index 4e3fb3b4..ff3ef53f 100644 --- a/pc4mobx/hrmSalary/pages/calculate/doCalc/components/salaryEditCalc/index.less +++ b/pc4mobx/hrmSalary/pages/calculate/doCalc/components/salaryEditCalc/index.less @@ -150,6 +150,10 @@ .esf-base-info-form, .wea-title, .wea-content { padding: 0; + + .ant-row { + height: 100%; + } } .esf-form-content { diff --git a/pc4mobx/hrmSalary/pages/payrollFiles/config/index.js b/pc4mobx/hrmSalary/pages/payrollFiles/config/index.js index ce378ee6..7802aee6 100644 --- a/pc4mobx/hrmSalary/pages/payrollFiles/config/index.js +++ b/pc4mobx/hrmSalary/pages/payrollFiles/config/index.js @@ -407,7 +407,7 @@ export const salaryFilesConditions = [ domkey: ["position"], fieldcol: 14, label: "岗位", - lanId: 6086, + lanId: 111, labelcol: 10, value: "", viewAttr: 1 From 38572729fd6e9f96728249e7df4bfec264bb0a38 Mon Sep 17 00:00:00 2001 From: lys <971387674@qq.com> Date: Tue, 15 Apr 2025 15:16:29 +0800 Subject: [PATCH 04/40] =?UTF-8?q?release/3.0.1.2504.01-=E5=90=88=E5=B9=B6?= =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E7=BA=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../doCalc/components/salaryEditCalc/editSalaryCalcSlide.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pc4mobx/hrmSalary/pages/calculate/doCalc/components/salaryEditCalc/editSalaryCalcSlide.js b/pc4mobx/hrmSalary/pages/calculate/doCalc/components/salaryEditCalc/editSalaryCalcSlide.js index 5deeaecd..239ccb9e 100644 --- a/pc4mobx/hrmSalary/pages/calculate/doCalc/components/salaryEditCalc/editSalaryCalcSlide.js +++ b/pc4mobx/hrmSalary/pages/calculate/doCalc/components/salaryEditCalc/editSalaryCalcSlide.js @@ -99,7 +99,8 @@ class EditSalaryCalcSlide extends Component { return; } const payload = { - salaryAcctEmpId, employeeInfos: baseInfo, + salaryAcctEmpId, + employeeInfos: _.map(baseInfo, o => ({ ...o, fieldValue: o.fieldValue.id || o.fieldValue })), items: [ ..._.reduce(itemsByGroup, (pre, cur) => { return [ From 6dfb4e6650bfa004b2af6a68e5526227db2056c0 Mon Sep 17 00:00:00 2001 From: lys <971387674@qq.com> Date: Tue, 15 Apr 2025 16:13:15 +0800 Subject: [PATCH 05/40] release/2.19.1.2501.01 --- pc4mobx/hrmSalary/components/FormInfo/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pc4mobx/hrmSalary/components/FormInfo/index.js b/pc4mobx/hrmSalary/components/FormInfo/index.js index d6940489..d0d87963 100644 --- a/pc4mobx/hrmSalary/components/FormInfo/index.js +++ b/pc4mobx/hrmSalary/components/FormInfo/index.js @@ -67,7 +67,7 @@ export default class FormInfo extends Component { } } coms != null && formItems.push({ - com: ({coms}), + com: ({coms}), hide: field.hide, col }); From 51d9c5888834d190f3856d6182473a0b6d786246 Mon Sep 17 00:00:00 2001 From: lys <971387674@qq.com> Date: Tue, 15 Apr 2025 16:27:19 +0800 Subject: [PATCH 06/40] release/2.19.1.2501.01 --- pc4mobx/hrmSalary/apis/payroll.js | 18 +++++++++++++----- pc4mobx/hrmSalary/pages/mobilePayroll/index.js | 18 ++++++++++-------- 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/pc4mobx/hrmSalary/apis/payroll.js b/pc4mobx/hrmSalary/apis/payroll.js index 48fcecb2..c322c94f 100644 --- a/pc4mobx/hrmSalary/apis/payroll.js +++ b/pc4mobx/hrmSalary/apis/payroll.js @@ -210,18 +210,26 @@ export const payrollCheckType = params => { return WeaTools.callApi("/api/bs/hrmsalary/salaryBill/payrollCheckType", "GET", params); }; //工资单-反馈验证 -export const feedBackSalaryBill = params => { +export const feedBackSalaryBill = async params => { const { header, ...payload } = params; - return fetch(`/api/bs/hrmsalary/salaryBill/feedBackSalaryBill?${convertToUrlString(payload)}`, { + const res = await fetch(`/api/bs/hrmsalary/salaryBill/feedBackSalaryBill?${convertToUrlString(payload)}`, { method: "GET", mode: "cors", headers: { "Content-Type": "application/json", ...header } - }).then(res => res.json()); + }); + return await res.json(); // return WeaTools.callApi("/api/bs/hrmsalary/salaryBill/feedBackSalaryBill", "GET", params); }; //工资单-确认 -export const confirmSalaryBill = params => { - return WeaTools.callApi("/api/bs/hrmsalary/salaryBill/confirmSalaryBill", "GET", params); +export const confirmSalaryBill = async params => { + const { header, ...payload } = params; + const res = await fetch(`/api/bs/hrmsalary/salaryBill/confirmSalaryBill?${convertToUrlString(payload)}`, { + method: "GET", + mode: "cors", + headers: { "Content-Type": "application/json", ...header } + }); + return await res.json(); + // return WeaTools.callApi("/api/bs/hrmsalary/salaryBill/confirmSalaryBill", "GET", params); }; // 工资单基础设置-获取设置列表 diff --git a/pc4mobx/hrmSalary/pages/mobilePayroll/index.js b/pc4mobx/hrmSalary/pages/mobilePayroll/index.js index 1b598371..69d84928 100644 --- a/pc4mobx/hrmSalary/pages/mobilePayroll/index.js +++ b/pc4mobx/hrmSalary/pages/mobilePayroll/index.js @@ -144,14 +144,16 @@ export default class MobilePayroll extends React.Component { return params; }; confirmSalaryBill = () => { - confirmSalaryBill({ salaryInfoId: getQueryString("id") }).then(({ status, errormsg }) => { - if (status) { - message.success(getLabel(30700, "操作成功")); - this.getMySalaryBill(getQueryString("id")); - } else { - message.error(errormsg || getLabel(30651, "操作失败")); - } - }); + const { salaryBillToken } = this.state; + confirmSalaryBill({ salaryInfoId: getQueryString("id"), header: salaryBillToken }) + .then(({ status, errormsg }) => { + if (status) { + message.success(getLabel(30700, "操作成功")); + this.getMySalaryBill(getQueryString("id")); + } else { + message.error(errormsg || getLabel(30651, "操作失败")); + } + }); }; handleGoFeedback = () => { Modal.confirm({ From 854a49b01803eb871b223064f1d520114859bc56 Mon Sep 17 00:00:00 2001 From: lys <971387674@qq.com> Date: Wed, 16 Apr 2025 15:51:28 +0800 Subject: [PATCH 07/40] release/2.19.1.2501.01 --- .../payroll/payrollGrant/payrollPartTable.js | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/pc4mobx/hrmSalary/pages/payroll/payrollGrant/payrollPartTable.js b/pc4mobx/hrmSalary/pages/payroll/payrollGrant/payrollPartTable.js index 552a7122..df034794 100644 --- a/pc4mobx/hrmSalary/pages/payroll/payrollGrant/payrollPartTable.js +++ b/pc4mobx/hrmSalary/pages/payroll/payrollGrant/payrollPartTable.js @@ -32,10 +32,10 @@ class PayrollPartTable extends Component { } componentWillReceiveProps(nextProps, nextContext) { - if (nextProps.visible !== this.props.visible) { - nextProps.visible && this.sendRangeList(nextProps); - this.setState({ selectedRowKeys: [] }); - } + if (nextProps.visible !== this.props.visible && nextProps.visible) this.sendRangeList(nextProps); + if (nextProps.visible !== this.props.visible && !nextProps.visible) this.setState({ + selectedRowKeys: [], pageInfo: { current: 1, pageSize: 10, total: 0 } + }); } sendRangeList = (props) => { @@ -52,9 +52,9 @@ class PayrollPartTable extends Component { sendRangeList(payload).then(({ status, data }) => { this.setState({ loading: { ...loading, query: false } }); if (status) { - const { pageNum: current, pageSize, total, columns, list: dataSource } = data; + const { pageNum: current, total, columns, list: dataSource } = data; this.setState({ - pageInfo: { ...pageInfo, current, pageSize, total }, + pageInfo: { ...pageInfo, current, total }, dataSource: _.map(dataSource, it => ({ ...it, includeObj: _.map(it.includeObj, child => child.targetName || child.targetTypeName).join(","), @@ -125,8 +125,7 @@ class PayrollPartTable extends Component { onChange: current => { this.setState({ pageInfo: { ...pageInfo, current } - }, () => { - }); + }, () => this.sendRangeList({ grantType, salarySendId })); } }; const rowSelection = { From 55ccd8391642bf448d9b1a3557e7fe3fa27ee3cf Mon Sep 17 00:00:00 2001 From: lys <971387674@qq.com> Date: Wed, 16 Apr 2025 16:22:51 +0800 Subject: [PATCH 08/40] =?UTF-8?q?feature/2.19.1.2501.01-=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E7=AB=AF=E6=9F=A5=E7=9C=8B=E5=B7=A5=E8=B5=84=E5=8D=95=E5=AF=86?= =?UTF-8?q?=E7=A0=81=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hrmSalary/pages/mobilePayroll/index.js | 15 ++++-- .../hrmSalary/pages/mobilePayroll/index.less | 51 +++++++++++++++++++ .../pages/mobilePayroll/mobileModal.js | 33 ++++++++++++ 3 files changed, 94 insertions(+), 5 deletions(-) create mode 100644 pc4mobx/hrmSalary/pages/mobilePayroll/mobileModal.js diff --git a/pc4mobx/hrmSalary/pages/mobilePayroll/index.js b/pc4mobx/hrmSalary/pages/mobilePayroll/index.js index 69d84928..38f53195 100644 --- a/pc4mobx/hrmSalary/pages/mobilePayroll/index.js +++ b/pc4mobx/hrmSalary/pages/mobilePayroll/index.js @@ -1,4 +1,5 @@ import React from "react"; +import ReactDom from "react-dom"; import { inject, observer } from "mobx-react"; import { toJS } from "mobx"; import { getQueryString } from "../../util/url"; @@ -15,6 +16,7 @@ import { ConfirmBtns } from "../mySalary/mySalaryView"; import Content from "../../components/pcTemplate/content"; import MobileTemplate from "../../components/mobileTemplate"; import "../mySalary/index.less"; +import MobileModal from "./mobileModal"; const getLabel = WeaLocaleProvider.getLabel; @@ -82,6 +84,8 @@ export default class MobilePayroll extends React.Component { API.isNeedSecondPwdVerify({ mouldCode: "HRM", itemCode: "SALARY" }, this.state.salaryBillToken) .then(({ status, isNeedSecondAuth }) => { if (status && isNeedSecondAuth) { + ReactDom.render(, document.body); + return; this.setState({ visible: true }, () => { API.getSecondAuthForm({ mouldCode: "HRM", itemCode: "SALARY" }, this.state.salaryBillToken) .then(({ status, notSetting }) => { @@ -205,6 +209,12 @@ export default class MobilePayroll extends React.Component { } this.setState({ pwdSetVisible: false })}/> + {/*发送验证码*/} + this.setState({ captchaVisible: false })} + onConfirm={() => this.props.mySalaryStore.setInitEmVerify()} + /> ; const { salaryTemplate, salaryGroups, employeeInformation, @@ -243,11 +253,6 @@ export default class MobilePayroll extends React.Component { } - this.setState({ captchaVisible: false })} - onConfirm={() => this.props.mySalaryStore.setInitEmVerify()} - /> ); } diff --git a/pc4mobx/hrmSalary/pages/mobilePayroll/index.less b/pc4mobx/hrmSalary/pages/mobilePayroll/index.less index 923d3d82..8726d37e 100644 --- a/pc4mobx/hrmSalary/pages/mobilePayroll/index.less +++ b/pc4mobx/hrmSalary/pages/mobilePayroll/index.less @@ -39,3 +39,54 @@ } } } + +.am-modal-mask { + position: absolute; + top: 0; + right: 0; + left: 0; + bottom: 0; + height: 100%; + z-index: 999; + background-color: rgba(0, 0, 0, .4); +} + +.am-modal { + position: relative; +} + +.am-modal-transparent { + width: 270px; +} + +.am-modal-transparent .am-modal-content { + border-radius: 7px; + padding-top: 15px; +} + +.am-modal-content { + position: relative; + background-color: #fff; + border: 0; + background-clip: padding-box; + text-align: center; + height: 100%; + overflow: hidden; +} + +.am-modal-wrap { + position: fixed; + overflow: auto; + top: 0; + right: 0; + bottom: 0; + left: 0; + height: 100%; + z-index: 999; + -webkit-overflow-scrolling: touch; + outline: 0; + display: flex; + align-items: center; + justify-content: center; + transform: translateZ(1px); +} diff --git a/pc4mobx/hrmSalary/pages/mobilePayroll/mobileModal.js b/pc4mobx/hrmSalary/pages/mobilePayroll/mobileModal.js new file mode 100644 index 00000000..493cb63a --- /dev/null +++ b/pc4mobx/hrmSalary/pages/mobilePayroll/mobileModal.js @@ -0,0 +1,33 @@ +/* + * 自定义移动端弹框组件 + * + * @Author: 黎永顺 + * @Date: 2025/4/16 + * @Wechat: + * @Email: 971387674@qq.com + * @description: +*/ +import React, { Component } from "react"; +import { WeaLocaleProvider } from "ecCom"; +import "./index.less"; + +const getLabel = WeaLocaleProvider.getLabel; + +class MobileModal extends Component { + render() { + return ( +
+
+
+
+
+
123
+
+
+
+
+ ); + } +} + +export default MobileModal; From fab27c99ed3ccd87506334581a4602e7c1495e7a Mon Sep 17 00:00:00 2001 From: lys <971387674@qq.com> Date: Thu, 17 Apr 2025 09:54:03 +0800 Subject: [PATCH 09/40] =?UTF-8?q?feature/2.19.1.2501.01-=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E7=AB=AF=E6=9F=A5=E7=9C=8B=E5=B7=A5=E8=B5=84=E5=8D=95=E5=AF=86?= =?UTF-8?q?=E7=A0=81=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pages/mobilePayroll/conditions.js | 21 ++++ .../hrmSalary/pages/mobilePayroll/index.js | 7 +- .../hrmSalary/pages/mobilePayroll/index.less | 118 +++++++++++++++--- .../pages/mobilePayroll/mobileModal.js | 18 ++- .../pages/mobilePayroll/secondaryVerify.js | 30 +++++ pc4mobx/hrmSalary/util/index.js | 4 + 6 files changed, 176 insertions(+), 22 deletions(-) create mode 100644 pc4mobx/hrmSalary/pages/mobilePayroll/conditions.js create mode 100644 pc4mobx/hrmSalary/pages/mobilePayroll/secondaryVerify.js diff --git a/pc4mobx/hrmSalary/pages/mobilePayroll/conditions.js b/pc4mobx/hrmSalary/pages/mobilePayroll/conditions.js new file mode 100644 index 00000000..af7a60c8 --- /dev/null +++ b/pc4mobx/hrmSalary/pages/mobilePayroll/conditions.js @@ -0,0 +1,21 @@ +export const secondaryVerifyConditions = [ + { + items: [ + { + conditionType: "INPUT", + domkey: ["authCode"], + fieldcol: 14, + label: "二次验证密码", + labelcol: 10, + value: "", + otherParams: { + type: "password" + }, + rules: "required|string", + viewAttr: 3 + } + ], + title: "", + defaultshow: true + } +]; diff --git a/pc4mobx/hrmSalary/pages/mobilePayroll/index.js b/pc4mobx/hrmSalary/pages/mobilePayroll/index.js index 38f53195..4e764da8 100644 --- a/pc4mobx/hrmSalary/pages/mobilePayroll/index.js +++ b/pc4mobx/hrmSalary/pages/mobilePayroll/index.js @@ -17,6 +17,7 @@ import Content from "../../components/pcTemplate/content"; import MobileTemplate from "../../components/mobileTemplate"; import "../mySalary/index.less"; import MobileModal from "./mobileModal"; +import SecondaryVerify from "./secondaryVerify"; const getLabel = WeaLocaleProvider.getLabel; @@ -84,7 +85,11 @@ export default class MobilePayroll extends React.Component { API.isNeedSecondPwdVerify({ mouldCode: "HRM", itemCode: "SALARY" }, this.state.salaryBillToken) .then(({ status, isNeedSecondAuth }) => { if (status && isNeedSecondAuth) { - ReactDom.render(, document.body); + ReactDom.render( + message.error("请输入密码")}> + + , + document.body); return; this.setState({ visible: true }, () => { API.getSecondAuthForm({ mouldCode: "HRM", itemCode: "SALARY" }, this.state.salaryBillToken) diff --git a/pc4mobx/hrmSalary/pages/mobilePayroll/index.less b/pc4mobx/hrmSalary/pages/mobilePayroll/index.less index 8726d37e..c9bb4a6a 100644 --- a/pc4mobx/hrmSalary/pages/mobilePayroll/index.less +++ b/pc4mobx/hrmSalary/pages/mobilePayroll/index.less @@ -51,10 +51,6 @@ background-color: rgba(0, 0, 0, .4); } -.am-modal { - position: relative; -} - .am-modal-transparent { width: 270px; } @@ -74,19 +70,103 @@ overflow: hidden; } -.am-modal-wrap { - position: fixed; - overflow: auto; - top: 0; - right: 0; - bottom: 0; - left: 0; - height: 100%; - z-index: 999; - -webkit-overflow-scrolling: touch; - outline: 0; - display: flex; - align-items: center; - justify-content: center; - transform: translateZ(1px); +.am-modal-header { + padding: 15px; +} + +.am-modal-title { + margin: 0; + letter-spacing: -.1px; + color: #333; + font-size: 14px; + line-height: 20px; + text-align: center; + height: auto; + max-height: 150px; + overflow-y: auto; +} + +.am-modal-body { + font-size: 14px; + color: #868686; + height: 100%; + line-height: 1.5; + overflow: auto; + padding: 0 15px 15px; + + .wea-search-group, .wea-content, .wea-form-cell { + padding: 0; + } +} + +.am-modal { + position: fixed; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 1000; +} + +.am-modal-wrap { + height: 100vh; + display: flex; + justify-content: center; + align-items: center; + //position: fixed; + //overflow: auto; + //top: 0; + //right: 0; + //bottom: 0; + //left: 0; + //height: 100%; + //z-index: 999; + //-webkit-overflow-scrolling: touch; + //outline: 0; + //display: -webkit-box; + //display: -webkit-flex; + //display: -ms-flexbox; + //display: flex; + //-webkit-box-align: center; + //-webkit-align-items: center; + //-ms-flex-align: center; + //align-items: center; + //-webkit-box-pack: center; + //-webkit-justify-content: center; + //-ms-flex-pack: center; + //justify-content: center; + //-webkit-transform: translateZ(1px); + //transform: translateZ(1px); +} + +.am-modal-button-group-h { + position: relative; + border-top: 1px solid #ddd; + display: flex; +} + +.am-modal-button-group-h .am-modal-button { + -webkit-touch-callout: none; + flex: 1 1; + box-sizing: border-box; + text-align: center; + text-decoration: none; + outline: none; + color: #55b1f9; + height: 50px; + line-height: 50px; + display: block; + width: auto; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + font-size: 14px; +} + +.am-modal-button-group-h .am-modal-button:first-child { + color: #333; +} + +.am-modal-button-group-h .am-modal-button:last-child { + position: relative; + border-left: 1px solid #ddd; } diff --git a/pc4mobx/hrmSalary/pages/mobilePayroll/mobileModal.js b/pc4mobx/hrmSalary/pages/mobilePayroll/mobileModal.js index 493cb63a..1f76b313 100644 --- a/pc4mobx/hrmSalary/pages/mobilePayroll/mobileModal.js +++ b/pc4mobx/hrmSalary/pages/mobilePayroll/mobileModal.js @@ -9,6 +9,7 @@ */ import React, { Component } from "react"; import { WeaLocaleProvider } from "ecCom"; +import { removeElementById } from "../../util"; import "./index.less"; const getLabel = WeaLocaleProvider.getLabel; @@ -17,11 +18,24 @@ class MobileModal extends Component { render() { return (
-
+
-
123
+
+
+
{this.props.title}
+
+
{this.props.children}
+ +
diff --git a/pc4mobx/hrmSalary/pages/mobilePayroll/secondaryVerify.js b/pc4mobx/hrmSalary/pages/mobilePayroll/secondaryVerify.js new file mode 100644 index 00000000..e8c18c3f --- /dev/null +++ b/pc4mobx/hrmSalary/pages/mobilePayroll/secondaryVerify.js @@ -0,0 +1,30 @@ +/* + * 二次验证密码 + * + * @Author: 黎永顺 + * @Date: 2025/4/16 + * @Wechat: + * @Email: 971387674@qq.com + * @description: +*/ +import React, { Component } from "react"; +import { WeaLocaleProvider } from "ecCom"; +import { WeaForm } from "comsMobx"; +import FormInfo from "../../components/FormInfo"; +import { secondaryVerifyConditions } from "./conditions"; + +const form = new WeaForm(); +const getLabel = WeaLocaleProvider.getLabel; + +class SecondaryVerify extends Component { + componentDidMount() { + form.initFormFields(secondaryVerifyConditions); + } + + render() { + const itemRender = {}; + return (); + } +} + +export default SecondaryVerify; diff --git a/pc4mobx/hrmSalary/util/index.js b/pc4mobx/hrmSalary/util/index.js index 0b63ffda..4578ddac 100644 --- a/pc4mobx/hrmSalary/util/index.js +++ b/pc4mobx/hrmSalary/util/index.js @@ -143,3 +143,7 @@ export const getIframeParentHeight = (selector, total, extraHeight) => { } return height; }; +export const removeElementById = (id) => { + const element = document.getElementById(id); + if (element) element.remove(); +}; From 94c9a39f9f773fff1c9dd1e4e73984729fb90032 Mon Sep 17 00:00:00 2001 From: lys <971387674@qq.com> Date: Thu, 17 Apr 2025 14:23:31 +0800 Subject: [PATCH 10/40] =?UTF-8?q?feature/2.19.1.2501.01-=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E7=AB=AF=E6=9F=A5=E7=9C=8B=E5=B7=A5=E8=B5=84=E5=8D=95=E5=AF=86?= =?UTF-8?q?=E7=A0=81=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pages/mobilePayroll/conditions.js | 66 ++++++++++++++++++ .../hrmSalary/pages/mobilePayroll/index.js | 14 ++-- .../hrmSalary/pages/mobilePayroll/index.less | 60 +++++++--------- .../pages/mobilePayroll/loginVerify.js | 56 +++++++++++++++ .../pages/mobilePayroll/mobileModal.js | 20 +++++- .../pages/mobilePayroll/secondaryVerify.js | 60 +++++++++++++++- .../pages/mobilePayroll/secondarypwdVerify.js | 68 +++++++++++++++++++ 7 files changed, 297 insertions(+), 47 deletions(-) create mode 100644 pc4mobx/hrmSalary/pages/mobilePayroll/loginVerify.js create mode 100644 pc4mobx/hrmSalary/pages/mobilePayroll/secondarypwdVerify.js diff --git a/pc4mobx/hrmSalary/pages/mobilePayroll/conditions.js b/pc4mobx/hrmSalary/pages/mobilePayroll/conditions.js index af7a60c8..3462cb08 100644 --- a/pc4mobx/hrmSalary/pages/mobilePayroll/conditions.js +++ b/pc4mobx/hrmSalary/pages/mobilePayroll/conditions.js @@ -19,3 +19,69 @@ export const secondaryVerifyConditions = [ defaultshow: true } ]; +export const loginCondition = [ + { + items: [ + { + conditionType: "INPUT", + domkey: ["password"], + fieldcol: 14, + label: "登录密码", + labelcol: 10, + value: "", + otherParams: { + type: "password" + }, + rules: "required|string", + viewAttr: 3 + } + ], + title: "", + defaultshow: true + } +]; +export const secondarypwdCondition = [ + { + items: [ + { + conditionType: "INPUT", + domkey: ["secondaryPwd1"], + fieldcol: 14, + label: "密码", + labelcol: 10, + value: "", + otherParams: { + type: "password", + passwordStrength: true + }, + rules: "required|string", + viewAttr: 3 + }, + { + conditionType: "INPUT", + domkey: ["secondaryPwd2"], + fieldcol: 14, + label: "确认密码", + labelcol: 10, + value: "", + otherParams: { + type: "password" + }, + rules: "required|string", + viewAttr: 3 + }, + { + conditionType: "INPUT", + domkey: ["validatecode"], + fieldcol: 14, + label: "验证码", + labelcol: 10, + value: "", + rules: "required|string", + viewAttr: 3 + } + ], + title: "", + defaultshow: true + } +]; diff --git a/pc4mobx/hrmSalary/pages/mobilePayroll/index.js b/pc4mobx/hrmSalary/pages/mobilePayroll/index.js index 4e764da8..eaa34aff 100644 --- a/pc4mobx/hrmSalary/pages/mobilePayroll/index.js +++ b/pc4mobx/hrmSalary/pages/mobilePayroll/index.js @@ -15,9 +15,9 @@ import PassSetDialog from "./passSetDialog"; import { ConfirmBtns } from "../mySalary/mySalaryView"; import Content from "../../components/pcTemplate/content"; import MobileTemplate from "../../components/mobileTemplate"; -import "../mySalary/index.less"; -import MobileModal from "./mobileModal"; import SecondaryVerify from "./secondaryVerify"; +import { removeElementById } from "../../util"; +import "../mySalary/index.less"; const getLabel = WeaLocaleProvider.getLabel; @@ -85,11 +85,11 @@ export default class MobilePayroll extends React.Component { API.isNeedSecondPwdVerify({ mouldCode: "HRM", itemCode: "SALARY" }, this.state.salaryBillToken) .then(({ status, isNeedSecondAuth }) => { if (status && isNeedSecondAuth) { - ReactDom.render( - message.error("请输入密码")}> - - , - document.body); + ReactDom.render( { + removeElementById("am-modal-container"); + this.getMySalaryBill(getQueryString("id")); + }}/>, document.body); return; this.setState({ visible: true }, () => { API.getSecondAuthForm({ mouldCode: "HRM", itemCode: "SALARY" }, this.state.salaryBillToken) diff --git a/pc4mobx/hrmSalary/pages/mobilePayroll/index.less b/pc4mobx/hrmSalary/pages/mobilePayroll/index.less index c9bb4a6a..8d600fc5 100644 --- a/pc4mobx/hrmSalary/pages/mobilePayroll/index.less +++ b/pc4mobx/hrmSalary/pages/mobilePayroll/index.less @@ -52,7 +52,7 @@ } .am-modal-transparent { - width: 270px; + width: 80%; } .am-modal-transparent .am-modal-content { @@ -92,50 +92,38 @@ height: 100%; line-height: 1.5; overflow: auto; - padding: 0 15px 15px; + padding: 0 15px 30px; .wea-search-group, .wea-content, .wea-form-cell { padding: 0; } } -.am-modal { - position: fixed; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - z-index: 1000; -} - .am-modal-wrap { - height: 100vh; + position: fixed; + overflow: auto; + top: 0; + right: 0; + bottom: 0; + left: 0; + height: 100%; + z-index: 999; + -webkit-overflow-scrolling: touch; + outline: 0; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; display: flex; - justify-content: center; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; align-items: center; - //position: fixed; - //overflow: auto; - //top: 0; - //right: 0; - //bottom: 0; - //left: 0; - //height: 100%; - //z-index: 999; - //-webkit-overflow-scrolling: touch; - //outline: 0; - //display: -webkit-box; - //display: -webkit-flex; - //display: -ms-flexbox; - //display: flex; - //-webkit-box-align: center; - //-webkit-align-items: center; - //-ms-flex-align: center; - //align-items: center; - //-webkit-box-pack: center; - //-webkit-justify-content: center; - //-ms-flex-pack: center; - //justify-content: center; - //-webkit-transform: translateZ(1px); - //transform: translateZ(1px); + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-transform: translateZ(1px); + transform: translateZ(1px); } .am-modal-button-group-h { diff --git a/pc4mobx/hrmSalary/pages/mobilePayroll/loginVerify.js b/pc4mobx/hrmSalary/pages/mobilePayroll/loginVerify.js new file mode 100644 index 00000000..1be34d7a --- /dev/null +++ b/pc4mobx/hrmSalary/pages/mobilePayroll/loginVerify.js @@ -0,0 +1,56 @@ +/* + * 登录密码验证 + * + * @Author: 黎永顺 + * @Date: 2025/4/17 + * @Wechat: + * @Email: 971387674@qq.com + * @description: +*/ +import React, { Component } from "react"; +import ReactDom from "react-dom"; +import { WeaLocaleProvider } from "ecCom"; +import { WeaForm } from "comsMobx"; +import FormInfo from "../../components/FormInfo"; +import { loginCondition } from "./conditions"; +import MobileModal from "./mobileModal"; +import SecondarypwdVerify from "./secondarypwdVerify"; +import { checkPassword } from "../../apis/mySalaryBenefits"; +import { RSAEcrypt } from "../../util/RSAUtil"; + +const form = new WeaForm(); +const getLabel = WeaLocaleProvider.getLabel; + +class LoginVerify extends Component { + + componentDidMount() { + form.initFormFields(loginCondition); + } + + save = async () => { + form.validateForm().then(f => { + if (f.isValid) { + RSAEcrypt("1", { ...form.getFormParams() }).then(RSAParam => { + checkPassword({ ...RSAParam }).then(({ result }) => { + if (result) { + ReactDom.render(, document.body); + } else { + form.showError("password", getLabel(504343, "登录密码错误")); + } + }); + }); + } else { + f.showErrors(); + } + }); + }; + + render() { + const itemRender = {}; + return ( + + ); + } +} + +export default LoginVerify; diff --git a/pc4mobx/hrmSalary/pages/mobilePayroll/mobileModal.js b/pc4mobx/hrmSalary/pages/mobilePayroll/mobileModal.js index 1f76b313..b6f388db 100644 --- a/pc4mobx/hrmSalary/pages/mobilePayroll/mobileModal.js +++ b/pc4mobx/hrmSalary/pages/mobilePayroll/mobileModal.js @@ -15,10 +15,28 @@ import "./index.less"; const getLabel = WeaLocaleProvider.getLabel; class MobileModal extends Component { + componentDidMount() { + this.setMetaViewport(); + } + + setMetaViewport = () => { + // 检查是否已存在 viewport meta 标签 + let viewportMeta = document.querySelector("meta[name=\"viewport\"]"); + if (!viewportMeta) { + // 如果不存在,创建一个新的 meta 标签 + viewportMeta = document.createElement("meta"); + viewportMeta.setAttribute("name", "viewport"); + document.head.appendChild(viewportMeta); + } + // 设置或更新 viewport 的 content 属性 + const content = "width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"; + viewportMeta.setAttribute("content", content); + }; + render() { return (
-
+
diff --git a/pc4mobx/hrmSalary/pages/mobilePayroll/secondaryVerify.js b/pc4mobx/hrmSalary/pages/mobilePayroll/secondaryVerify.js index e8c18c3f..1660dfee 100644 --- a/pc4mobx/hrmSalary/pages/mobilePayroll/secondaryVerify.js +++ b/pc4mobx/hrmSalary/pages/mobilePayroll/secondaryVerify.js @@ -8,22 +8,76 @@ * @description: */ import React, { Component } from "react"; +import ReactDom from "react-dom"; import { WeaLocaleProvider } from "ecCom"; -import { WeaForm } from "comsMobx"; +import { WeaForm, WeaSwitch } from "comsMobx"; +import { message } from "antd"; import FormInfo from "../../components/FormInfo"; import { secondaryVerifyConditions } from "./conditions"; +import * as API from "../../apis/mySalaryBenefits"; +import MobileModal from "./mobileModal"; +import LoginVerify from "./loginVerify"; const form = new WeaForm(); const getLabel = WeaLocaleProvider.getLabel; class SecondaryVerify extends Component { + constructor(props) { + super(props); + this.state = { notSetting: false }; + } + componentDidMount() { + API.getSecondAuthForm({ mouldCode: "HRM", itemCode: "SALARY" }, this.props.salaryBillToken) + .then(({ notSetting }) => { + this.setState({ notSetting }); + }); form.initFormFields(secondaryVerifyConditions); } + doSecondAuth = () => { + form.validateForm().then(f => { + if (f.isValid) { + const { mySalaryStore: { setInitEmVerify }, salaryBillToken } = this.props; + API.doSecondAuth({ mouldCode: "HRM", itemCode: "SALARY", ...form.getFormParams() }, salaryBillToken) + .then(({ status, checkStatus, checkMsg }) => { + if (status && checkStatus === "1") { + message.success(checkMsg); + setInitEmVerify(); + this.props.onSuccess(); + } else { + form.showError("authCode", checkMsg); + } + }); + } else { + f.showErrors(); + } + }); + }; + handleSetSecondaryPassword = () => { + ReactDom.render(, document.body); + }; + render() { - const itemRender = {}; - return (); + const { notSetting } = this.state; + const itemRender = { + authCode: (field, textAreaProps, form, formParams) => { + return ( + + { + notSetting && +
+ {getLabel(111, "您还未设置二次验证密码,点击")} + {getLabel(111, "设置")} +
+ } +
); + } + }; + return ( + + ); } } diff --git a/pc4mobx/hrmSalary/pages/mobilePayroll/secondarypwdVerify.js b/pc4mobx/hrmSalary/pages/mobilePayroll/secondarypwdVerify.js new file mode 100644 index 00000000..fece44bd --- /dev/null +++ b/pc4mobx/hrmSalary/pages/mobilePayroll/secondarypwdVerify.js @@ -0,0 +1,68 @@ +/* + * 二次验证密码设置 + * + * @Author: 黎永顺 + * @Date: 2025/4/17 + * @Wechat: + * @Email: 971387674@qq.com + * @description: +*/ +import React, { Component } from "react"; +import { WeaLocaleProvider } from "ecCom"; +import { WeaForm, WeaSwitch } from "comsMobx"; +import FormInfo from "../../components/FormInfo"; +import { secondarypwdCondition } from "./conditions"; +import MobileModal from "./mobileModal"; +import { RSAEcrypt } from "../../util/RSAUtil"; + +const form = new WeaForm(); +const getLabel = WeaLocaleProvider.getLabel; + +class SecondarypwdVerify extends Component { + constructor(props) { + super(props); + this.state = { + src: (window.ecologyContentPath || "") + "/weaver/weaver.file.MakeValidateCode?notneedvalidate=1&isView=1&validatetype=0&validatenum=4", + num: 0 + }; + } + + componentDidMount() { + form.initFormFields(secondarypwdCondition); + } + + save = async () => { + form.validateForm().then(f => { + if (f.isValid) { + RSAEcrypt("1", { ...form.getFormParams() }).then(RSAParam => { + console.log(form.getFormParams(), this.props); + }); + } else { + f.showErrors(); + } + }); + }; + + render() { + const itemRender = { + validatecode: (field, textAreaProps, form, formParams) => { + return ( + + { + this.setState({ num: this.state.num + 1 }, () => { + this.setState({ src: `${window.ecologyContentPath || ""}/weaver/weaver.file.MakeValidateCode?notneedvalidate=1&isView=1&validatetype=0&validatenum=4&seriesnum_=${this.state.num}` }); + }); + }} alt=""/> + ); + } + }; + return ( + + ); + } +} + +export default SecondarypwdVerify; From aaf00ace3cfb180c6699ec6226fa8211e40307eb Mon Sep 17 00:00:00 2001 From: lys <971387674@qq.com> Date: Thu, 17 Apr 2025 15:13:40 +0800 Subject: [PATCH 11/40] =?UTF-8?q?feature/2.19.1.2501.01-=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E7=AB=AF=E6=9F=A5=E7=9C=8B=E5=B7=A5=E8=B5=84=E5=8D=95=E5=AF=86?= =?UTF-8?q?=E7=A0=81=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hrmSalary/pages/mobilePayroll/index.js | 1 + .../hrmSalary/pages/mobilePayroll/index.less | 10 ++++++ .../pages/mobilePayroll/loginVerify.js | 8 +++-- .../pages/mobilePayroll/secondaryVerify.js | 6 +++- .../pages/mobilePayroll/secondarypwdVerify.js | 32 ++++++++++++++++--- pc4mobx/hrmSalary/pages/mySalary/authority.js | 3 +- 6 files changed, 52 insertions(+), 8 deletions(-) diff --git a/pc4mobx/hrmSalary/pages/mobilePayroll/index.js b/pc4mobx/hrmSalary/pages/mobilePayroll/index.js index eaa34aff..882b0f9b 100644 --- a/pc4mobx/hrmSalary/pages/mobilePayroll/index.js +++ b/pc4mobx/hrmSalary/pages/mobilePayroll/index.js @@ -87,6 +87,7 @@ export default class MobilePayroll extends React.Component { if (status && isNeedSecondAuth) { ReactDom.render( { + setInitEmVerify(); removeElementById("am-modal-container"); this.getMySalaryBill(getQueryString("id")); }}/>, document.body); diff --git a/pc4mobx/hrmSalary/pages/mobilePayroll/index.less b/pc4mobx/hrmSalary/pages/mobilePayroll/index.less index 8d600fc5..9fd7d4d6 100644 --- a/pc4mobx/hrmSalary/pages/mobilePayroll/index.less +++ b/pc4mobx/hrmSalary/pages/mobilePayroll/index.less @@ -97,6 +97,16 @@ .wea-search-group, .wea-content, .wea-form-cell { padding: 0; } + + .secondarypwd-form { + .wea-form-cell-wrapper { + & > div:last-child { + .ant-col-16 { + width: 37.5% !important; + } + } + } + } } .am-modal-wrap { diff --git a/pc4mobx/hrmSalary/pages/mobilePayroll/loginVerify.js b/pc4mobx/hrmSalary/pages/mobilePayroll/loginVerify.js index 1be34d7a..ad862dcf 100644 --- a/pc4mobx/hrmSalary/pages/mobilePayroll/loginVerify.js +++ b/pc4mobx/hrmSalary/pages/mobilePayroll/loginVerify.js @@ -15,7 +15,7 @@ import FormInfo from "../../components/FormInfo"; import { loginCondition } from "./conditions"; import MobileModal from "./mobileModal"; import SecondarypwdVerify from "./secondarypwdVerify"; -import { checkPassword } from "../../apis/mySalaryBenefits"; +import * as API from "../../apis/mySalaryBenefits"; import { RSAEcrypt } from "../../util/RSAUtil"; const form = new WeaForm(); @@ -27,11 +27,15 @@ class LoginVerify extends Component { form.initFormFields(loginCondition); } + componentWillUnmount() { + form.resetForm(); + } + save = async () => { form.validateForm().then(f => { if (f.isValid) { RSAEcrypt("1", { ...form.getFormParams() }).then(RSAParam => { - checkPassword({ ...RSAParam }).then(({ result }) => { + API.checkPassword({ ...RSAParam }).then(({ result }) => { if (result) { ReactDom.render(, document.body); } else { diff --git a/pc4mobx/hrmSalary/pages/mobilePayroll/secondaryVerify.js b/pc4mobx/hrmSalary/pages/mobilePayroll/secondaryVerify.js index 1660dfee..c80215a4 100644 --- a/pc4mobx/hrmSalary/pages/mobilePayroll/secondaryVerify.js +++ b/pc4mobx/hrmSalary/pages/mobilePayroll/secondaryVerify.js @@ -35,6 +35,10 @@ class SecondaryVerify extends Component { form.initFormFields(secondaryVerifyConditions); } + componentWillUnmount() { + form.resetForm(); + } + doSecondAuth = () => { form.validateForm().then(f => { if (f.isValid) { @@ -75,7 +79,7 @@ class SecondaryVerify extends Component { } }; return ( - ); } diff --git a/pc4mobx/hrmSalary/pages/mobilePayroll/secondarypwdVerify.js b/pc4mobx/hrmSalary/pages/mobilePayroll/secondarypwdVerify.js index fece44bd..5a5d58cd 100644 --- a/pc4mobx/hrmSalary/pages/mobilePayroll/secondarypwdVerify.js +++ b/pc4mobx/hrmSalary/pages/mobilePayroll/secondarypwdVerify.js @@ -8,12 +8,16 @@ * @description: */ import React, { Component } from "react"; +import ReactDom from "react-dom"; import { WeaLocaleProvider } from "ecCom"; +import { message } from "antd"; import { WeaForm, WeaSwitch } from "comsMobx"; import FormInfo from "../../components/FormInfo"; import { secondarypwdCondition } from "./conditions"; +import * as API from "../../apis/mySalaryBenefits"; import MobileModal from "./mobileModal"; import { RSAEcrypt } from "../../util/RSAUtil"; +import SecondaryVerify from "./secondaryVerify"; const form = new WeaForm(); const getLabel = WeaLocaleProvider.getLabel; @@ -31,11 +35,30 @@ class SecondarypwdVerify extends Component { form.initFormFields(secondarypwdCondition); } + componentWillUnmount() { + form.resetForm(); + } + save = async () => { form.validateForm().then(f => { if (f.isValid) { - RSAEcrypt("1", { ...form.getFormParams() }).then(RSAParam => { - console.log(form.getFormParams(), this.props); + const { secondaryPwd1, secondaryPwd2, validatecode } = form.getFormParams(); + if (secondaryPwd1 !== secondaryPwd2) { + form.showError("secondaryPwd2", getLabel(504376, "密码确认不正确!")); + return; + } + RSAEcrypt("1", { secondaryPwd1, secondaryPwd2 }).then(RSAParam => { + API.saveSecondaryPwd({ ...RSAParam, validatecode }).then(({ sign, message: msg }) => { + if (sign === "1") { + message.success(msg); + ReactDom.render(, document.body); + } else { + form.showError("validatecode", msg); + this.setState({ num: this.state.num + 1 }, () => { + this.setState({ src: `${window.ecologyContentPath || ""}/weaver/weaver.file.MakeValidateCode?notneedvalidate=1&isView=1&validatetype=0&validatenum=4&seriesnum_=${this.state.num}` }); + }); + } + }); }); } else { f.showErrors(); @@ -49,7 +72,7 @@ class SecondarypwdVerify extends Component { return ( { this.setState({ num: this.state.num + 1 }, () => { @@ -60,7 +83,8 @@ class SecondarypwdVerify extends Component { } }; return ( - + ); } } diff --git a/pc4mobx/hrmSalary/pages/mySalary/authority.js b/pc4mobx/hrmSalary/pages/mySalary/authority.js index 00a74712..ef7261be 100644 --- a/pc4mobx/hrmSalary/pages/mySalary/authority.js +++ b/pc4mobx/hrmSalary/pages/mySalary/authority.js @@ -9,7 +9,7 @@ export default class Authority extends React.Component { render() { const { store } = this.props; const { loading, hasRight } = store; - + console.log("store", store); const style = { position: "absolute", top: "50%", @@ -27,6 +27,7 @@ export default class Authority extends React.Component { } if (hasRight) { + console.log("this.props.children", this.props.children); return this.props.children; } else { return ( From b3fff361ec438cc2589d81b35f60812c858cfbaf Mon Sep 17 00:00:00 2001 From: lys <971387674@qq.com> Date: Thu, 17 Apr 2025 15:23:58 +0800 Subject: [PATCH 12/40] =?UTF-8?q?feature/2.19.1.2501.01-=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E7=AB=AF=E6=9F=A5=E7=9C=8B=E5=B7=A5=E8=B5=84=E5=8D=95=E5=AF=86?= =?UTF-8?q?=E7=A0=81=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pc4mobx/hrmSalary/pages/mySalary/authority.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/pc4mobx/hrmSalary/pages/mySalary/authority.js b/pc4mobx/hrmSalary/pages/mySalary/authority.js index ef7261be..ec098fc2 100644 --- a/pc4mobx/hrmSalary/pages/mySalary/authority.js +++ b/pc4mobx/hrmSalary/pages/mySalary/authority.js @@ -9,7 +9,6 @@ export default class Authority extends React.Component { render() { const { store } = this.props; const { loading, hasRight } = store; - console.log("store", store); const style = { position: "absolute", top: "50%", @@ -27,7 +26,6 @@ export default class Authority extends React.Component { } if (hasRight) { - console.log("this.props.children", this.props.children); return this.props.children; } else { return ( From 5ab71a349208609067f2b475e0237b6886d32fbc Mon Sep 17 00:00:00 2001 From: lys <971387674@qq.com> Date: Thu, 17 Apr 2025 15:56:32 +0800 Subject: [PATCH 13/40] =?UTF-8?q?feature/2.19.1.2501.01-=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E7=AB=AF=E6=9F=A5=E7=9C=8B=E5=B7=A5=E8=B5=84=E5=8D=95=E5=AF=86?= =?UTF-8?q?=E7=A0=81=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pc4mobx/hrmSalary/pages/mobilePayroll/index.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pc4mobx/hrmSalary/pages/mobilePayroll/index.js b/pc4mobx/hrmSalary/pages/mobilePayroll/index.js index 882b0f9b..165253ad 100644 --- a/pc4mobx/hrmSalary/pages/mobilePayroll/index.js +++ b/pc4mobx/hrmSalary/pages/mobilePayroll/index.js @@ -90,14 +90,14 @@ export default class MobilePayroll extends React.Component { setInitEmVerify(); removeElementById("am-modal-container"); this.getMySalaryBill(getQueryString("id")); - }}/>, document.body); - return; - this.setState({ visible: true }, () => { - API.getSecondAuthForm({ mouldCode: "HRM", itemCode: "SALARY" }, this.state.salaryBillToken) - .then(({ status, notSetting }) => { - this.setState({ notSetting }); - }); - }); + }}/>, document.getElementById("container")); + // return; + // 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(); From b01d2806442c8bbc553f34b23a079de77e8f3ac7 Mon Sep 17 00:00:00 2001 From: lys <971387674@qq.com> Date: Thu, 17 Apr 2025 17:12:53 +0800 Subject: [PATCH 14/40] =?UTF-8?q?feature/2.19.1.2501.01-=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E7=AB=AF=E6=9F=A5=E7=9C=8B=E5=B7=A5=E8=B5=84=E5=8D=95=E5=AF=86?= =?UTF-8?q?=E7=A0=81=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hrmSalary/pages/mobilePayroll/index.js | 165 +++++------------- .../pages/mobilePayroll/loginVerify.js | 2 +- .../pages/mobilePayroll/secondaryVerify.js | 5 +- .../pages/mobilePayroll/secondarypwdVerify.js | 2 +- 4 files changed, 51 insertions(+), 123 deletions(-) diff --git a/pc4mobx/hrmSalary/pages/mobilePayroll/index.js b/pc4mobx/hrmSalary/pages/mobilePayroll/index.js index 165253ad..389afbcd 100644 --- a/pc4mobx/hrmSalary/pages/mobilePayroll/index.js +++ b/pc4mobx/hrmSalary/pages/mobilePayroll/index.js @@ -1,17 +1,15 @@ import React from "react"; -import ReactDom from "react-dom"; import { inject, observer } from "mobx-react"; import { toJS } from "mobx"; import { getQueryString } from "../../util/url"; -import { WeaDialog, WeaError, WeaInput, WeaLocaleProvider } from "ecCom"; -import { Button, message, Modal } from "antd"; +import { WeaLocaleProvider } from "ecCom"; +import { message, Modal } from "antd"; import Authority from "../mySalary/authority"; 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"; import { ConfirmBtns } from "../mySalary/mySalaryView"; import Content from "../../components/pcTemplate/content"; import MobileTemplate from "../../components/mobileTemplate"; @@ -21,21 +19,14 @@ import "../mySalary/index.less"; const getLabel = WeaLocaleProvider.getLabel; -@inject("mySalaryStore") -@observer +@inject("mySalaryStore") @observer export default class MobilePayroll extends React.Component { constructor(props) { super(props); this.state = { - pwdSetVisible: false, visible: false, captchaVisible: false, - authCode: "", - notSetting: false, - mySalaryBillData: { - employeeInformation: {}, - salaryTemplate: [] - }, + mySalaryBillData: { employeeInformation: {}, salaryTemplate: [] }, salaryBillToken: {} }; this.id = ""; @@ -63,12 +54,7 @@ export default class MobilePayroll extends React.Component { 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 }); - }); - }); + this.setState({ visible: true }); } else { this.getMySalaryBill(getQueryString("id")); setInitEmVerify(); @@ -85,19 +71,7 @@ export default class MobilePayroll extends React.Component { API.isNeedSecondPwdVerify({ mouldCode: "HRM", itemCode: "SALARY" }, this.state.salaryBillToken) .then(({ status, isNeedSecondAuth }) => { if (status && isNeedSecondAuth) { - ReactDom.render( { - setInitEmVerify(); - removeElementById("am-modal-container"); - this.getMySalaryBill(getQueryString("id")); - }}/>, document.getElementById("container")); - // return; - // this.setState({ visible: true }, () => { - // API.getSecondAuthForm({ mouldCode: "HRM", itemCode: "SALARY" }, this.state.salaryBillToken) - // .then(({ status, notSetting }) => { - // this.setState({ notSetting }); - // }); - // }); + this.setState({ visible: true }); } else { this.getMySalaryBill(getQueryString("id")); setInitEmVerify(); @@ -106,33 +80,12 @@ export default class MobilePayroll extends React.Component { }); } }; - doSecondAuth = () => { - const { salaryBillToken } = this.state; - const { mySalaryStore: { setInitEmVerify } } = this.props; - if (!this.state.authCode) { - this.refs.weaError.showError(); - return; - } - API.doSecondAuth({ - authCode: this.state.authCode, mouldCode: "HRM", itemCode: "SALARY" - }, salaryBillToken).then(({ status, checkStatus, checkMsg }) => { - if (status && checkStatus === "1") { - message.success(checkMsg); - setInitEmVerify(); - this.setState({ visible: false }); - this.getMySalaryBill(getQueryString("id")); - } else { - message.error(checkMsg); - } - }); - }; getMySalaryBill = (salaryInfoId) => { const { salaryBillToken } = this.state; const { mySalaryStore: { getMySalaryBill } } = this.props; const params = this.getUrlkey(); const payload = { - salaryInfoId, header: salaryBillToken, - ..._.pick(params, ["recipient"]) + salaryInfoId, header: salaryBillToken, ..._.pick(params, ["recipient"]) }; getMySalaryBill(payload).then(result => { this.setState({ @@ -142,10 +95,8 @@ export default class MobilePayroll extends React.Component { }; getUrlkey = () => { let url = window.location.href; - let params = {}, - arr = url.split("?"); - if (arr.length <= 1) - return params; + let params = {}, arr = url.split("?"); + if (arr.length <= 1) return params; arr = arr[1].split("&"); for (var i = 0, l = arr.length; i < l; i++) { var a = arr[i].split("="); @@ -189,77 +140,55 @@ export default class MobilePayroll extends React.Component { }; render() { - const { mySalaryStore: { clearLoading, pwdForm } } = this.props; - const { mySalaryBillData, visible, captchaVisible, notSetting, pwdSetVisible } = this.state; + const { mySalaryStore: { setInitEmVerify } } = this.props, { captchaVisible, visible } = this.state; const type = getQueryString("type"); - if (_.isEmpty(toJS(this.props.mySalaryStore.mySalaryBill))) return
- this.setState({ visible: false }, () => clearLoading())} - title="请输入二次验证密码" visible={visible} initLoadCss - className="verifyWrapper" - hasScroll buttons={[ - - ]} - > - - this.setState({ authCode })}/> - - { - notSetting && -
- {getLabel("514970", "您还未设置二次验证密码,点击")} - this.setState({ pwdSetVisible: true })}>{getLabel("30747", "设置")} -
- } -
- this.setState({ pwdSetVisible: false })}/> + if (_.isEmpty(toJS(this.props.mySalaryStore.mySalaryBill))) return + {visible && { + setInitEmVerify(); + // removeElementById("am-modal-container"); + this.getMySalaryBill(getQueryString("id")); + }}/>} {/*发送验证码*/} this.setState({ captchaVisible: false })} onConfirm={() => this.props.mySalaryStore.setInitEmVerify()} /> -
; +
; const { - salaryTemplate, salaryGroups, employeeInformation, - sendTime, confirmStatus, showAck, showFeedback + salaryTemplate, salaryGroups, employeeInformation, sendTime, confirmStatus, showAck, showFeedback } = toJS(this.props.mySalaryStore.mySalaryBill); const salaryProps = { - theme: salaryTemplate.theme, tip: salaryTemplate.textContent, sendTime, - background: salaryTemplate.background, tipPosi: salaryTemplate.textContentPosition || "", + theme: salaryTemplate.theme, + tip: salaryTemplate.textContent, + sendTime, + background: salaryTemplate.background, + tipPosi: salaryTemplate.textContentPosition || "", itemTypeList: [employeeInformation, ...salaryGroups] }; - return ( - - { - type === "phone" ? - - - - - - : - -
- - - -
-
- } -
- ); + return ( + {type === "phone" ? + + + + : +
+ + + +
+
} +
); } } diff --git a/pc4mobx/hrmSalary/pages/mobilePayroll/loginVerify.js b/pc4mobx/hrmSalary/pages/mobilePayroll/loginVerify.js index ad862dcf..33fd761b 100644 --- a/pc4mobx/hrmSalary/pages/mobilePayroll/loginVerify.js +++ b/pc4mobx/hrmSalary/pages/mobilePayroll/loginVerify.js @@ -37,7 +37,7 @@ class LoginVerify extends Component { RSAEcrypt("1", { ...form.getFormParams() }).then(RSAParam => { API.checkPassword({ ...RSAParam }).then(({ result }) => { if (result) { - ReactDom.render(, document.body); + ReactDom.render(, document.getElementById("container")); } else { form.showError("password", getLabel(504343, "登录密码错误")); } diff --git a/pc4mobx/hrmSalary/pages/mobilePayroll/secondaryVerify.js b/pc4mobx/hrmSalary/pages/mobilePayroll/secondaryVerify.js index c80215a4..a92fd378 100644 --- a/pc4mobx/hrmSalary/pages/mobilePayroll/secondaryVerify.js +++ b/pc4mobx/hrmSalary/pages/mobilePayroll/secondaryVerify.js @@ -42,12 +42,11 @@ class SecondaryVerify extends Component { doSecondAuth = () => { form.validateForm().then(f => { if (f.isValid) { - const { mySalaryStore: { setInitEmVerify }, salaryBillToken } = this.props; + const { salaryBillToken } = this.props; API.doSecondAuth({ mouldCode: "HRM", itemCode: "SALARY", ...form.getFormParams() }, salaryBillToken) .then(({ status, checkStatus, checkMsg }) => { if (status && checkStatus === "1") { message.success(checkMsg); - setInitEmVerify(); this.props.onSuccess(); } else { form.showError("authCode", checkMsg); @@ -59,7 +58,7 @@ class SecondaryVerify extends Component { }); }; handleSetSecondaryPassword = () => { - ReactDom.render(, document.body); + ReactDom.render(, document.getElementById("container")); }; render() { diff --git a/pc4mobx/hrmSalary/pages/mobilePayroll/secondarypwdVerify.js b/pc4mobx/hrmSalary/pages/mobilePayroll/secondarypwdVerify.js index 5a5d58cd..00e75d22 100644 --- a/pc4mobx/hrmSalary/pages/mobilePayroll/secondarypwdVerify.js +++ b/pc4mobx/hrmSalary/pages/mobilePayroll/secondarypwdVerify.js @@ -51,7 +51,7 @@ class SecondarypwdVerify extends Component { API.saveSecondaryPwd({ ...RSAParam, validatecode }).then(({ sign, message: msg }) => { if (sign === "1") { message.success(msg); - ReactDom.render(, document.body); + ReactDom.render(, document.getElementById("container")); } else { form.showError("validatecode", msg); this.setState({ num: this.state.num + 1 }, () => { From 6b3e321846484d82dbb594f1dc3201ec4f120036 Mon Sep 17 00:00:00 2001 From: lys <971387674@qq.com> Date: Thu, 17 Apr 2025 17:18:36 +0800 Subject: [PATCH 15/40] =?UTF-8?q?feature/2.19.1.2501.01-=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E7=AB=AF=E6=9F=A5=E7=9C=8B=E5=B7=A5=E8=B5=84=E5=8D=95=E5=AF=86?= =?UTF-8?q?=E7=A0=81=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pages/mobilePayroll/secondaryVerify.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/pc4mobx/hrmSalary/pages/mobilePayroll/secondaryVerify.js b/pc4mobx/hrmSalary/pages/mobilePayroll/secondaryVerify.js index a92fd378..a9006367 100644 --- a/pc4mobx/hrmSalary/pages/mobilePayroll/secondaryVerify.js +++ b/pc4mobx/hrmSalary/pages/mobilePayroll/secondaryVerify.js @@ -8,7 +8,6 @@ * @description: */ import React, { Component } from "react"; -import ReactDom from "react-dom"; import { WeaLocaleProvider } from "ecCom"; import { WeaForm, WeaSwitch } from "comsMobx"; import { message } from "antd"; @@ -24,7 +23,7 @@ const getLabel = WeaLocaleProvider.getLabel; class SecondaryVerify extends Component { constructor(props) { super(props); - this.state = { notSetting: false }; + this.state = { notSetting: false, visible: false }; } componentDidMount() { @@ -36,7 +35,7 @@ class SecondaryVerify extends Component { } componentWillUnmount() { - form.resetForm(); + this.setState({ notSetting: false, visible: false }, () => form.resetForm()); } doSecondAuth = () => { @@ -57,12 +56,10 @@ class SecondaryVerify extends Component { } }); }; - handleSetSecondaryPassword = () => { - ReactDom.render(, document.getElementById("container")); - }; + handleSetSecondaryPassword = () => this.setState({ visible: false }); render() { - const { notSetting } = this.state; + const { notSetting, visible } = this.state; const itemRender = { authCode: (field, textAreaProps, form, formParams) => { return ( @@ -80,6 +77,9 @@ class SecondaryVerify extends Component { return ( + { + visible && + } ); } } From 554cf4b6b3082a6af1cca11fd8dacc4b5f2658b8 Mon Sep 17 00:00:00 2001 From: lys <971387674@qq.com> Date: Thu, 17 Apr 2025 17:44:30 +0800 Subject: [PATCH 16/40] =?UTF-8?q?feature/2.19.1.2501.01-=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E7=AB=AF=E6=9F=A5=E7=9C=8B=E5=B7=A5=E8=B5=84=E5=8D=95=E5=AF=86?= =?UTF-8?q?=E7=A0=81=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pc4mobx/hrmSalary/apis/mySalaryBenefits.js | 10 +++++--- .../hrmSalary/pages/mobilePayroll/index.js | 16 ++++++++---- .../pages/mobilePayroll/loginVerify.js | 19 +++++++------- .../pages/mobilePayroll/secondaryVerify.js | 13 +++------- .../pages/mobilePayroll/secondarypwdVerify.js | 25 +++++++++---------- 5 files changed, 42 insertions(+), 41 deletions(-) diff --git a/pc4mobx/hrmSalary/apis/mySalaryBenefits.js b/pc4mobx/hrmSalary/apis/mySalaryBenefits.js index f197ba27..75e3eb73 100644 --- a/pc4mobx/hrmSalary/apis/mySalaryBenefits.js +++ b/pc4mobx/hrmSalary/apis/mySalaryBenefits.js @@ -45,11 +45,13 @@ export const doSecondAuth = (params, headers) => { export const getPasswordForm = params => { return WeaTools.callApi("/api/hrm/secondarypwd/getPasswordForm", "GET", params); }; -export const checkPassword = params => { - return WeaTools.callApi("/api/hrm/secondarypwd/checkPassword", "POST", params); +export const checkPassword = (params, headers) => { + return formHeaderPost("/api/hrm/secondarypwd/checkPassword", "POST", params, headers); + // return WeaTools.callApi("/api/hrm/secondarypwd/checkPassword", "POST", params); }; -export const saveSecondaryPwd = params => { - return WeaTools.callApi("/api/hrm/secondarypwd/saveSecondaryPwd", "POST", params); +export const saveSecondaryPwd = (params, headers) => { + return formHeaderPost("/api/hrm/secondarypwd/saveSecondaryPwd", "POST", params, headers); + // return WeaTools.callApi("/api/hrm/secondarypwd/saveSecondaryPwd", "POST", params); }; export const salaryBillGetToken = params => { return postFetch("/api/bs/hrmsalary/salaryBill/getToken", params); diff --git a/pc4mobx/hrmSalary/pages/mobilePayroll/index.js b/pc4mobx/hrmSalary/pages/mobilePayroll/index.js index 389afbcd..a1756ede 100644 --- a/pc4mobx/hrmSalary/pages/mobilePayroll/index.js +++ b/pc4mobx/hrmSalary/pages/mobilePayroll/index.js @@ -14,7 +14,8 @@ import { ConfirmBtns } from "../mySalary/mySalaryView"; import Content from "../../components/pcTemplate/content"; import MobileTemplate from "../../components/mobileTemplate"; import SecondaryVerify from "./secondaryVerify"; -import { removeElementById } from "../../util"; +import LoginVerify from "./loginVerify"; +import SecondarypwdVerify from "./secondarypwdVerify"; import "../mySalary/index.less"; const getLabel = WeaLocaleProvider.getLabel; @@ -24,8 +25,7 @@ export default class MobilePayroll extends React.Component { constructor(props) { super(props); this.state = { - visible: false, - captchaVisible: false, + visible: false, captchaVisible: false, loginVisible: false, pwdSetVisible: false, mySalaryBillData: { employeeInformation: {}, salaryTemplate: [] }, salaryBillToken: {} }; @@ -140,15 +140,21 @@ export default class MobilePayroll extends React.Component { }; render() { - const { mySalaryStore: { setInitEmVerify } } = this.props, { captchaVisible, visible } = this.state; + const { mySalaryStore: { setInitEmVerify } } = this.props, { + captchaVisible, visible, loginVisible, pwdSetVisible + } = this.state; const type = getQueryString("type"); if (_.isEmpty(toJS(this.props.mySalaryStore.mySalaryBill))) return {visible && this.setState({ visible: false, loginVisible: true })} onSuccess={() => { setInitEmVerify(); - // removeElementById("am-modal-container"); this.getMySalaryBill(getQueryString("id")); }}/>} + {loginVisible && this.setState({ loginVisible: false, pwdSetVisible: true })}/>} + {pwdSetVisible && this.setState({ pwdSetVisible: false }, () => this.initMobile())}/>} {/*发送验证码*/} { form.validateForm().then(f => { if (f.isValid) { - RSAEcrypt("1", { ...form.getFormParams() }).then(RSAParam => { - API.checkPassword({ ...RSAParam }).then(({ result }) => { - if (result) { - ReactDom.render(, document.getElementById("container")); - } else { - form.showError("password", getLabel(504343, "登录密码错误")); - } + RSAEcrypt("1", { ...form.getFormParams() }, this.props.salaryBillToken) + .then(RSAParam => { + API.checkPassword({ ...RSAParam }).then(({ result }) => { + if (result) { + this.props.onSetPwdSet(); + } else { + form.showError("password", getLabel(504343, "登录密码错误")); + } + }); }); - }); } else { f.showErrors(); } diff --git a/pc4mobx/hrmSalary/pages/mobilePayroll/secondaryVerify.js b/pc4mobx/hrmSalary/pages/mobilePayroll/secondaryVerify.js index a9006367..b5310466 100644 --- a/pc4mobx/hrmSalary/pages/mobilePayroll/secondaryVerify.js +++ b/pc4mobx/hrmSalary/pages/mobilePayroll/secondaryVerify.js @@ -15,7 +15,6 @@ import FormInfo from "../../components/FormInfo"; import { secondaryVerifyConditions } from "./conditions"; import * as API from "../../apis/mySalaryBenefits"; import MobileModal from "./mobileModal"; -import LoginVerify from "./loginVerify"; const form = new WeaForm(); const getLabel = WeaLocaleProvider.getLabel; @@ -23,7 +22,7 @@ const getLabel = WeaLocaleProvider.getLabel; class SecondaryVerify extends Component { constructor(props) { super(props); - this.state = { notSetting: false, visible: false }; + this.state = { notSetting: false }; } componentDidMount() { @@ -35,7 +34,7 @@ class SecondaryVerify extends Component { } componentWillUnmount() { - this.setState({ notSetting: false, visible: false }, () => form.resetForm()); + this.setState({ notSetting: false }, () => form.resetForm()); } doSecondAuth = () => { @@ -56,10 +55,9 @@ class SecondaryVerify extends Component { } }); }; - handleSetSecondaryPassword = () => this.setState({ visible: false }); render() { - const { notSetting, visible } = this.state; + const { notSetting } = this.state; const itemRender = { authCode: (field, textAreaProps, form, formParams) => { return ( @@ -68,7 +66,7 @@ class SecondaryVerify extends Component { notSetting &&
{getLabel(111, "您还未设置二次验证密码,点击")} - {getLabel(111, "设置")} + {getLabel(111, "设置")}
}
); @@ -77,9 +75,6 @@ class SecondaryVerify extends Component { return ( - { - visible && - } ); } } diff --git a/pc4mobx/hrmSalary/pages/mobilePayroll/secondarypwdVerify.js b/pc4mobx/hrmSalary/pages/mobilePayroll/secondarypwdVerify.js index 00e75d22..a8f84027 100644 --- a/pc4mobx/hrmSalary/pages/mobilePayroll/secondarypwdVerify.js +++ b/pc4mobx/hrmSalary/pages/mobilePayroll/secondarypwdVerify.js @@ -8,7 +8,6 @@ * @description: */ import React, { Component } from "react"; -import ReactDom from "react-dom"; import { WeaLocaleProvider } from "ecCom"; import { message } from "antd"; import { WeaForm, WeaSwitch } from "comsMobx"; @@ -17,7 +16,6 @@ import { secondarypwdCondition } from "./conditions"; import * as API from "../../apis/mySalaryBenefits"; import MobileModal from "./mobileModal"; import { RSAEcrypt } from "../../util/RSAUtil"; -import SecondaryVerify from "./secondaryVerify"; const form = new WeaForm(); const getLabel = WeaLocaleProvider.getLabel; @@ -48,17 +46,18 @@ class SecondarypwdVerify extends Component { return; } RSAEcrypt("1", { secondaryPwd1, secondaryPwd2 }).then(RSAParam => { - API.saveSecondaryPwd({ ...RSAParam, validatecode }).then(({ sign, message: msg }) => { - if (sign === "1") { - message.success(msg); - ReactDom.render(, document.getElementById("container")); - } else { - form.showError("validatecode", msg); - this.setState({ num: this.state.num + 1 }, () => { - this.setState({ src: `${window.ecologyContentPath || ""}/weaver/weaver.file.MakeValidateCode?notneedvalidate=1&isView=1&validatetype=0&validatenum=4&seriesnum_=${this.state.num}` }); - }); - } - }); + API.saveSecondaryPwd({ ...RSAParam, validatecode }, this.props.salaryBillToken) + .then(({ sign, message: msg }) => { + if (sign === "1") { + message.success(msg); + this.props.onSuccess(); + } else { + form.showError("validatecode", msg); + this.setState({ num: this.state.num + 1 }, () => { + this.setState({ src: `${window.ecologyContentPath || ""}/weaver/weaver.file.MakeValidateCode?notneedvalidate=1&isView=1&validatetype=0&validatenum=4&seriesnum_=${this.state.num}` }); + }); + } + }); }); } else { f.showErrors(); From 34b2052926608858ecd8412875681870ce5b9895 Mon Sep 17 00:00:00 2001 From: lys <971387674@qq.com> Date: Fri, 18 Apr 2025 14:49:19 +0800 Subject: [PATCH 17/40] =?UTF-8?q?feature/2.19.1.2501.01-PC=E7=AB=AFToken?= =?UTF-8?q?=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/calculateQuery/index.js | 13 ++++++++----- pc4mobx/hrmSalary/pages/calculate/index.less | 18 ++++++++++++++++++ 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/pc4mobx/hrmSalary/pages/calculate/components/calculateQuery/index.js b/pc4mobx/hrmSalary/pages/calculate/components/calculateQuery/index.js index 00cd202d..e8e89b97 100644 --- a/pc4mobx/hrmSalary/pages/calculate/components/calculateQuery/index.js +++ b/pc4mobx/hrmSalary/pages/calculate/components/calculateQuery/index.js @@ -21,11 +21,14 @@ class Index extends Component { this.props.onChange({ dateRange: v })}/>
- this.props.onChange({ name: v })} - onSearch={this.props.onSearch} - /> +
+ this.props.onChange({ name: v })} + onSearch={this.props.onSearch} + /> + {getLabel(111, "高级搜索")} +
); } diff --git a/pc4mobx/hrmSalary/pages/calculate/index.less b/pc4mobx/hrmSalary/pages/calculate/index.less index 045f4b8c..d7f45047 100644 --- a/pc4mobx/hrmSalary/pages/calculate/index.less +++ b/pc4mobx/hrmSalary/pages/calculate/index.less @@ -62,6 +62,24 @@ } } + .advance-custom { + display: flex; + align-items: center; + + & > a { + border-radius: 0; + height: 28px; + position: relative; + color: #474747; + padding: 4px 15px; + background-color: transparent; + display: flex; + align-items: center; + border: 1px solid #d9d9d9; + border-left: none + } + } + .wea-input-focus { margin-top: -4px; } From 82ffd93fd59e86ae401307ec98bca086fe20a858 Mon Sep 17 00:00:00 2001 From: lys <971387674@qq.com> Date: Fri, 18 Apr 2025 15:10:05 +0800 Subject: [PATCH 18/40] 5release/2.19.1.2501.01 --- pc4mobx/hrmSalary/components/pcTemplate/content.js | 2 +- .../hrmSalary/pages/payroll/templatePreview/index.less | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/pc4mobx/hrmSalary/components/pcTemplate/content.js b/pc4mobx/hrmSalary/components/pcTemplate/content.js index 6bc3c60e..1665ac9e 100644 --- a/pc4mobx/hrmSalary/components/pcTemplate/content.js +++ b/pc4mobx/hrmSalary/components/pcTemplate/content.js @@ -10,7 +10,7 @@ class Content extends Component { const { onlyOneGrup, showData } = dealTemplate(_.filter(itemTypeList, o => !!o), "pc"); return (
-
+
{theme || ""}
diff --git a/pc4mobx/hrmSalary/pages/payroll/templatePreview/index.less b/pc4mobx/hrmSalary/pages/payroll/templatePreview/index.less index 7eae1948..9a7c033c 100644 --- a/pc4mobx/hrmSalary/pages/payroll/templatePreview/index.less +++ b/pc4mobx/hrmSalary/pages/payroll/templatePreview/index.less @@ -173,8 +173,8 @@ .ph-switch { height: 100%; - margin: 0 auto; - text-align: center; + display: flex; + justify-content: center; .active, .phs-btn:hover { background-color: rgba(0, 0, 0, .15); @@ -184,8 +184,9 @@ .phs-btn { height: 50px; min-width: 88px; - line-height: 50px; - display: inline-block; + display: flex; + justify-content: center; + align-items: center; color: #fff; padding: 0 15px; cursor: pointer; From ae43a2aa7cc313cf7362f28255b5944006dc7695 Mon Sep 17 00:00:00 2001 From: lys <971387674@qq.com> Date: Fri, 18 Apr 2025 16:21:49 +0800 Subject: [PATCH 19/40] release/2.19.1.2501.01 --- .../hrmSalary/pages/calculate/calculate.js | 56 +++++++++++++++---- .../components/calculateQuery/index.js | 2 +- .../components/calculateTablelist/index.js | 8 ++- pc4mobx/hrmSalary/pages/calculate/config.js | 19 +++++++ pc4mobx/hrmSalary/pages/calculate/index.less | 26 +++++++++ 5 files changed, 97 insertions(+), 14 deletions(-) create mode 100644 pc4mobx/hrmSalary/pages/calculate/config.js diff --git a/pc4mobx/hrmSalary/pages/calculate/calculate.js b/pc4mobx/hrmSalary/pages/calculate/calculate.js index e6207394..b23739b8 100644 --- a/pc4mobx/hrmSalary/pages/calculate/calculate.js +++ b/pc4mobx/hrmSalary/pages/calculate/calculate.js @@ -6,7 +6,8 @@ */ import React, { Component } from "react"; import { inject, observer } from "mobx-react"; -import { WeaLocaleProvider, WeaTop } from "ecCom"; +import { WeaLocaleProvider, WeaTools, WeaTop } from "ecCom"; +import { WeaForm } from "comsMobx"; import { Button, message, Modal } from "antd"; import moment from "moment"; import CalculateQuery from "./components/calculateQuery"; @@ -15,9 +16,15 @@ import CalculateDialog from "./components/calculateDialog"; import ProgressModal from "../../components/progressModal"; import LogDialog from "../../components/logViewModal"; import { backCalculate, deleteSalaryacct, fileSalaryAcct, reAccounting } from "../../apis/calculate"; +import FormInfo from "../../components/FormInfo"; +import { queryConditions } from "./config"; +import { getTaxAgentSelectList } from "../../apis/taxAgent"; +import cs from "classnames"; import "./index.less"; +const getKey = WeaTools.getKey; const getLabel = WeaLocaleProvider.getLabel; +const form = new WeaForm(); @inject("calculateStore", "taxAgentStore") @observer @@ -31,17 +38,32 @@ class Calculate extends Component { moment(new Date()).subtract(1, "year").startOf("year").format("YYYY-MM"), moment(new Date()).endOf("year").format("YYYY-MM") ] - }, isRefresh: false, logDialogVisible: false, + }, isRefresh: false, logDialogVisible: false, conditions: [], progressModule: { visible: false, progress: 0, title: getLabel(111, "正在归档中请稍后") }, - calcDaialog: { visible: false, title: "" } + calcDaialog: { visible: false, title: "" }, showAdvance: false }; this.timer = null; this.handleDebounce = null; } + async componentDidMount() { + const { data } = await getTaxAgentSelectList(); + this.setState({ + conditions: _.map(queryConditions, item => ({ + ...item, items: _.map(item.items, o => { + o = { ...o, label: getLabel(o.lanId, o.label) }; + if (getKey(o) === "taxAgentIds") { + return { ...o, options: _.map(data, k => ({ key: k.id, showname: k.content })) }; + } + return { ...o }; + }) + })) + }, () => form.initFormFields(this.state.conditions)); + } + renderCalculateOpts = () => { const { taxAgentStore: { showOperateBtn } } = this.props; - const { queryParams, isRefresh } = this.state; + const { queryParams, isRefresh, showAdvance } = this.state; let calculateOpts = [ , - this.setState({ - isRefresh: _.keys(v)[0] === "name" ? isRefresh : !isRefresh, - queryParams: { ...queryParams, ...v } - })} onSearch={() => this.setState({ isRefresh: !isRefresh })}/> + this.setState({ showAdvance: !showAdvance })} + onChange={v => this.setState({ + isRefresh: _.keys(v)[0] === "name" ? isRefresh : !isRefresh, + queryParams: { ...queryParams, ...v } + })} onSearch={() => this.setState({ isRefresh: !isRefresh })}/> ]; return !showOperateBtn ? calculateOpts.slice(1) : calculateOpts; }; @@ -188,7 +211,9 @@ class Calculate extends Component { }; render() { - const { queryParams, isRefresh, calcDaialog, progressModule, logDialogVisible, filterConditions } = this.state; + const { + queryParams, isRefresh, calcDaialog, progressModule, logDialogVisible, filterConditions, conditions, showAdvance + } = this.state; return ( } iconBgcolor="#F14A2D" buttons={this.renderCalculateOpts()} className="calculate-main-layout" showDropIcon @@ -201,7 +226,18 @@ class Calculate extends Component { ]} >
- +
+ +
+ + + +
+
+ this.setState({ calcDaialog: { ...calcDaialog, visible: false }, diff --git a/pc4mobx/hrmSalary/pages/calculate/components/calculateQuery/index.js b/pc4mobx/hrmSalary/pages/calculate/components/calculateQuery/index.js index e8e89b97..0c74ccd5 100644 --- a/pc4mobx/hrmSalary/pages/calculate/components/calculateQuery/index.js +++ b/pc4mobx/hrmSalary/pages/calculate/components/calculateQuery/index.js @@ -27,7 +27,7 @@ class Index extends Component { onChange={v => this.props.onChange({ name: v })} onSearch={this.props.onSearch} /> - {getLabel(111, "高级搜索")} + {getLabel(111, "高级搜索")}
); diff --git a/pc4mobx/hrmSalary/pages/calculate/components/calculateTablelist/index.js b/pc4mobx/hrmSalary/pages/calculate/components/calculateTablelist/index.js index eecfa1db..63ab2e87 100644 --- a/pc4mobx/hrmSalary/pages/calculate/components/calculateTablelist/index.js +++ b/pc4mobx/hrmSalary/pages/calculate/components/calculateTablelist/index.js @@ -29,12 +29,14 @@ class Index extends Component { } getSalaryAcctList = (props) => { - const { pageInfo } = this.state; - const { queryParams } = props; + const { pageInfo } = this.state, { queryParams, form } = props; + const { taxAgentIds } = form.getFormParams(); const { dateRange, ...extra } = queryParams; const [startMonthStr, endMonthStr] = dateRange || []; const params = { startMonthStr, endMonthStr, ...extra }; - const payload = { ...pageInfo, ...params }; + const payload = { + ...pageInfo, ...params, taxAgentIds: taxAgentIds ? taxAgentIds.split(",") : [] + }; this.setState({ loading: true }); getSalaryAcctList(payload).then(({ status, data }) => { this.setState({ loading: false }); diff --git a/pc4mobx/hrmSalary/pages/calculate/config.js b/pc4mobx/hrmSalary/pages/calculate/config.js new file mode 100644 index 00000000..02da5b10 --- /dev/null +++ b/pc4mobx/hrmSalary/pages/calculate/config.js @@ -0,0 +1,19 @@ +export const queryConditions = [ + { + items: [ + { + conditionType: "SELECT", + domkey: ["taxAgentIds"], + fieldcol: 14, + label: "个税扣缴义务人", + lanI: 111, + multiple: true, + options: [], + labelcol: 6, + value: "", + viewAttr: 2 + } + ], + defaultshow: true + } +]; diff --git a/pc4mobx/hrmSalary/pages/calculate/index.less b/pc4mobx/hrmSalary/pages/calculate/index.less index d7f45047..2e73f6b2 100644 --- a/pc4mobx/hrmSalary/pages/calculate/index.less +++ b/pc4mobx/hrmSalary/pages/calculate/index.less @@ -90,6 +90,32 @@ overflow-y: hidden; } + .advance-calc { + display: none; + background: #FFF; + margin-bottom: 8px; + + .advance-calc-btns { + display: flex; + justify-content: center; + align-items: center; + padding: 15px 0; + border-top: 1px solid #dadada; + + button { + margin-right: 15px; + } + } + + .wea-search-group, .wea-content { + padding: 0; + } + } + + .show-advance-calc { + display: block; + } + .calculate-body { height: 100%; width: 100%; From 51ac08d6fc10e427cf89d3176f7081cb3cc99278 Mon Sep 17 00:00:00 2001 From: lys <971387674@qq.com> Date: Tue, 22 Apr 2025 09:35:04 +0800 Subject: [PATCH 20/40] release/2.19.1.2501.01 --- pc4mobx/hrmSalary/pages/mySalary/mySalaryView.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pc4mobx/hrmSalary/pages/mySalary/mySalaryView.js b/pc4mobx/hrmSalary/pages/mySalary/mySalaryView.js index 5fa76f93..56e1f2f4 100644 --- a/pc4mobx/hrmSalary/pages/mySalary/mySalaryView.js +++ b/pc4mobx/hrmSalary/pages/mySalary/mySalaryView.js @@ -14,6 +14,8 @@ import { confirmSalaryBill, feedBackSalaryBill, payrollCheckType } from "../../a import CaptchaModal from "../../components/captchaModal"; import "./index.less"; +const isIPhone = new RegExp("\\biPhone\\b|\\biPod\\b", "i").test(window.navigator.userAgent); +const isEm = window.navigator.userAgent.indexOf("E-Mobile7") >= 0; const { getLabel } = WeaLocaleProvider; @inject("mySalaryStore") @@ -123,7 +125,7 @@ export const ConfirmBtns = (props) => { } { - props.showFeedback === "1" && + ((props.showFeedback === "1" && !isIPhone) || (props.showFeedback === "1" && isIPhone && isEm)) && }
; From d652b2cdc61169d3c870781733a9a0a30f048e03 Mon Sep 17 00:00:00 2001 From: lys <971387674@qq.com> Date: Wed, 23 Apr 2025 16:13:49 +0800 Subject: [PATCH 21/40] release/2.19.1.2501.01 --- .../pages/declare/components/declareQuery/index.js | 2 +- .../declare/components/declareTablelist/index.js | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/pc4mobx/hrmSalary/pages/declare/components/declareQuery/index.js b/pc4mobx/hrmSalary/pages/declare/components/declareQuery/index.js index f5627a0c..e85383ca 100644 --- a/pc4mobx/hrmSalary/pages/declare/components/declareQuery/index.js +++ b/pc4mobx/hrmSalary/pages/declare/components/declareQuery/index.js @@ -17,7 +17,7 @@ class Index extends Component { return (
- {getLabel(543549, "薪资所属月:")} + {getLabel(111, "税款所属期:")} this.props.onChange({ dateRange: v })}/>
diff --git a/pc4mobx/hrmSalary/pages/declare/components/declareTablelist/index.js b/pc4mobx/hrmSalary/pages/declare/components/declareTablelist/index.js index b2cab8ff..7d119c09 100644 --- a/pc4mobx/hrmSalary/pages/declare/components/declareTablelist/index.js +++ b/pc4mobx/hrmSalary/pages/declare/components/declareTablelist/index.js @@ -8,7 +8,7 @@ import React, { Component } from "react"; import { WeaLocaleProvider, WeaTable } from "ecCom"; import { Dropdown, Menu, message, Modal } from "antd"; import { getDeclareList, withDrawTaxDeclaration } from "../../../../apis/declare"; -import { sysConfCodeRule } from "../../../../apis/ruleconfig"; +import { sysConfCodeRule, sysinfo } from "../../../../apis/ruleconfig"; const getLabel = WeaLocaleProvider.getLabel; @@ -35,9 +35,9 @@ class Index extends Component { if (status && data === "1") this.setState({ showWithDrawBtn: data === "1" }); }); }; - getDeclareList = (props) => { - const { pageInfo } = this.state; - const { queryParams } = props; + getDeclareList = async (props) => { + const { data: sysData } = await sysinfo(); + const { pageInfo } = this.state, { queryParams } = props; const { dateRange, ...extra } = queryParams; const [fromSalaryMonthStr, endSalaryMonthStr] = dateRange || []; const params = { fromSalaryMonthStr, endSalaryMonthStr, ...extra }; @@ -46,7 +46,8 @@ class Index extends Component { getDeclareList(payload).then(({ status, data }) => { this.setState({ loading: false }); if (status) { - const { columns, list: dataSource, pageNum, pageSize, total } = data; + let { columns, list: dataSource, pageNum, pageSize, total } = data; + sysData["TAX_DECLARATION_DATE_TYPE"] === "1" && (columns = _.filter(columns, o => o.dataIndex !== "salaryMonth")); this.setState({ dataSource, pageInfo: { ...pageInfo, pageNum, pageSize, total }, columns: _.map(columns, o => { From 9a50947d8aa7be5b730b863d5dd18449006888bc Mon Sep 17 00:00:00 2001 From: lys <971387674@qq.com> Date: Wed, 23 Apr 2025 17:34:46 +0800 Subject: [PATCH 22/40] release/2.19.1.2501.01 --- .../pages/declare/components/declareTablelist/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pc4mobx/hrmSalary/pages/declare/components/declareTablelist/index.js b/pc4mobx/hrmSalary/pages/declare/components/declareTablelist/index.js index 7d119c09..74100061 100644 --- a/pc4mobx/hrmSalary/pages/declare/components/declareTablelist/index.js +++ b/pc4mobx/hrmSalary/pages/declare/components/declareTablelist/index.js @@ -39,8 +39,8 @@ class Index extends Component { const { data: sysData } = await sysinfo(); const { pageInfo } = this.state, { queryParams } = props; const { dateRange, ...extra } = queryParams; - const [fromSalaryMonthStr, endSalaryMonthStr] = dateRange || []; - const params = { fromSalaryMonthStr, endSalaryMonthStr, ...extra }; + const [fromSalaryMonth, endSalaryMonth] = dateRange || []; + const params = { fromSalaryMonth: fromSalaryMonth + "-01", endSalaryMonth: endSalaryMonth + "-01", ...extra }; const payload = { ...pageInfo, ...params }; this.setState({ loading: true }); getDeclareList(payload).then(({ status, data }) => { From dee1059ca7fd18a9ab9e39e68cfe095ef3cb5c49 Mon Sep 17 00:00:00 2001 From: lys <971387674@qq.com> Date: Thu, 24 Apr 2025 16:38:36 +0800 Subject: [PATCH 23/40] release/2.19.1.2501.01 --- .../components/attendanceDataViewSlide.js | 78 ++++++++++++------- .../attendance/components/index.less | 4 +- 2 files changed, 51 insertions(+), 31 deletions(-) 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}
- +
+ +