From fbf16f97dc0308ae70ed126648d84dfc532dfd89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=8E=E6=B0=B8=E9=A1=BA?= <971387674@qq.com> Date: Mon, 3 Jul 2023 13:52:20 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E4=BA=A7=E5=93=81-=E5=B7=A5=E8=B5=84?= =?UTF-8?q?=E5=8D=95=E6=A8=A1=E6=9D=BF=E5=AE=9A=E6=97=B6=E5=8F=91=E6=94=BE?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pages/payroll/stepForm/baseInformForm.js | 73 ++++++++++++++++++- .../pages/payroll/stepForm/index.less | 16 ++++ 2 files changed, 86 insertions(+), 3 deletions(-) diff --git a/pc4mobx/hrmSalary/pages/payroll/stepForm/baseInformForm.js b/pc4mobx/hrmSalary/pages/payroll/stepForm/baseInformForm.js index 69ebf94e..157467d7 100644 --- a/pc4mobx/hrmSalary/pages/payroll/stepForm/baseInformForm.js +++ b/pc4mobx/hrmSalary/pages/payroll/stepForm/baseInformForm.js @@ -1,7 +1,8 @@ import React from "react"; -import { WeaCheckbox, WeaFormItem, WeaInput, WeaLocaleProvider, WeaSearchGroup, WeaSelect } from "ecCom"; +import { WeaCheckbox, WeaFormItem, WeaInput, WeaLocaleProvider, WeaSearchGroup, WeaSelect, WeaTimePicker } from "ecCom"; import { inject, observer } from "mobx-react"; import { getReplenishRuleSetOptions } from "../../../apis/payroll"; +import moment from "moment"; import { toJS } from "mobx"; import "./index.less"; @@ -35,7 +36,8 @@ export default class BaseInformForm extends React.Component { ...data.templateBaseData, msgStatus: !this.props.id ? "1" : data.templateBaseData.msgStatus, reissueRule: data.templateBaseData.replenishRule ? "1" : "0", - ...JSON.parse(templateBaseData) + ...JSON.parse(templateBaseData), + sendEmail: "" } }, () => { this.props.onChange && this.props.onChange(this.state.request); @@ -73,7 +75,19 @@ export default class BaseInformForm extends React.Component { render() { const { request, options, replenishRuleOptions } = this.state; - const { salarySob, name, description, replenishName, replenishRule, reissueRule, msgStatus, emailStatus } = request; + const { + salarySob, + name, + description, + replenishName, + replenishRule, + reissueRule, + msgStatus, + emailStatus, + autoSendStatus, + autoSendDayOfMonth, + autoSendTimeOfDay + } = request; return ( @@ -164,8 +178,61 @@ export default class BaseInformForm extends React.Component { this.hanldeChange({ emailStatus: value === "1" })}/> + + this.hanldeChange({ autoSendStatus: value === "1" })}/> + + { + autoSendStatus && + + + + } ); } } + +const SendTimeComp = (props) => { + const { value, onChange } = props; + const { autoSendDayOfMonth, autoSendTimeOfDay } = value; + + const handleChangeSendtime = (key, val) => { + onChange({ autoSendDayOfMonth, autoSendTimeOfDay, [key]: val }); + }; + return
+
+ {getLabel(111, "每月")} + ({ key: item, showname: item }))} + onChange={v => handleChangeSendtime("autoSendDayOfMonth", v)} + /> + {getLabel(16992, "号")} +
+ handleChangeSendtime("autoSendTimeOfDay", v)}/> +
; +}; + +const getDay = () => { + let days = []; + let day = getDaysInMonth(moment().year(), moment().month() + 1); + for (let i = 1; i <= day; i++) { + days.push(i); + } + return days; +}; + +const getDaysInMonth = (year, month) => { + month = parseInt(month, 10); + let d = new Date(year, month, 0); + return d.getDate(); +}; diff --git a/pc4mobx/hrmSalary/pages/payroll/stepForm/index.less b/pc4mobx/hrmSalary/pages/payroll/stepForm/index.less index 4bfbe9d0..f30d0063 100644 --- a/pc4mobx/hrmSalary/pages/payroll/stepForm/index.less +++ b/pc4mobx/hrmSalary/pages/payroll/stepForm/index.less @@ -234,4 +234,20 @@ border-bottom: 1px solid #e5e5e5; } } + + .customTimeCompWrapper { + display: flex; + justify-content: flex-start; + + & > div { + margin-right: 10px; + display: flex; + align-items: center; + + .wea-select { + width: 80px; + margin: 0 10px; + } + } + } } From afd3163ff52dfbe4112d45532516706013729399 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=8E=E6=B0=B8=E9=A1=BA?= <971387674@qq.com> Date: Mon, 3 Jul 2023 16:03:56 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E4=BA=A7=E5=93=81-=E7=BB=9F=E4=B8=80?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E5=88=97=E8=A1=A8=E6=93=8D=E4=BD=9C=E6=8C=89?= =?UTF-8?q?=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pc4mobx/hrmSalary/pages/payroll/SalarySendList.js | 12 ++++++++++-- .../hrmSalary/pages/payroll/templateSettingList.js | 12 +++++++++--- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/pc4mobx/hrmSalary/pages/payroll/SalarySendList.js b/pc4mobx/hrmSalary/pages/payroll/SalarySendList.js index 2b98919b..947db8db 100644 --- a/pc4mobx/hrmSalary/pages/payroll/SalarySendList.js +++ b/pc4mobx/hrmSalary/pages/payroll/SalarySendList.js @@ -1,6 +1,6 @@ import React from "react"; import { inject, observer } from "mobx-react"; -import { message, Tag } from "antd"; +import { Dropdown, Menu, message, Tag } from "antd"; import moment from "moment"; import CustomPaginationTable from "../../components/customPaginationTable"; import "../calculate/index.less"; @@ -91,6 +91,7 @@ export default class SalarySendList extends React.Component { { title: "操作", key: "operate", + width: 150, render: (text, record) => { const { sendNum, sendTotal, salaryAcctType, haveBackCalc, canSeeDetail } = record; //显示发放 @@ -106,7 +107,14 @@ export default class SalarySendList extends React.Component { } { sendNum !== sendTotal && !showGrant && - this.handleUpdateTemplate(record)}>更新模板 + this.handleUpdateTemplate(record)}> + 更新模板 + + }> + + } ); diff --git a/pc4mobx/hrmSalary/pages/payroll/templateSettingList.js b/pc4mobx/hrmSalary/pages/payroll/templateSettingList.js index 05d75b27..9e986510 100644 --- a/pc4mobx/hrmSalary/pages/payroll/templateSettingList.js +++ b/pc4mobx/hrmSalary/pages/payroll/templateSettingList.js @@ -2,7 +2,7 @@ import React from "react"; import { inject, observer } from "mobx-react"; import { WeaLocaleProvider, WeaTable } from "ecCom"; import { toJS } from "mobx"; -import { Radio, Spin } from "antd"; +import { Dropdown, Menu, Radio, Spin } from "antd"; const getLabel = WeaLocaleProvider.getLabel; @inject("payrollStore") @@ -93,8 +93,14 @@ export default class TemplateSettingList extends React.Component { onClick={() => this.onOperatesClick(record, "0")}>{getLabel(501169, "编辑")} this.onOperatesClick(record, "1")}>{getLabel(77, "复制")} - this.onOperatesClick(record, "2")}>{getLabel(535052, "删除")} + this.onOperatesClick(record, "2")}> + {getLabel(535052, "删除")} + + }> + + ; } } From d2fe01c7592555d36365191b0d3fdbad06436f38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=8E=E6=B0=B8=E9=A1=BA?= <971387674@qq.com> Date: Tue, 4 Jul 2023 17:37:04 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E4=BA=A7=E5=93=81-=E5=B7=A5=E8=B5=84?= =?UTF-8?q?=E5=8D=95=E6=A8=A1=E6=9D=BF=E5=AE=9A=E6=97=B6=E5=8F=91=E6=94=BE?= =?UTF-8?q?bug=E5=A4=84=E7=90=86=E4=BB=A5=E5=8F=8A=E8=A7=84=E5=88=99?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pages/payroll/stepForm/baseInformForm.js | 31 ++++++++++++------- 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/pc4mobx/hrmSalary/pages/payroll/stepForm/baseInformForm.js b/pc4mobx/hrmSalary/pages/payroll/stepForm/baseInformForm.js index 157467d7..251b8e7e 100644 --- a/pc4mobx/hrmSalary/pages/payroll/stepForm/baseInformForm.js +++ b/pc4mobx/hrmSalary/pages/payroll/stepForm/baseInformForm.js @@ -37,7 +37,8 @@ export default class BaseInformForm extends React.Component { msgStatus: !this.props.id ? "1" : data.templateBaseData.msgStatus, reissueRule: data.templateBaseData.replenishRule ? "1" : "0", ...JSON.parse(templateBaseData), - sendEmail: "" + sendEmail: "", + autoSendStatus: !_.isNil(data.templateBaseData.autoSendStatus) ? data.templateBaseData.autoSendStatus : false } }, () => { this.props.onChange && this.props.onChange(this.state.request); @@ -50,7 +51,7 @@ export default class BaseInformForm extends React.Component { JSON.parse(templateBaseData).salarySob && this.getReplenishRuleSetOptions({ salarySobId: JSON.parse(templateBaseData).salarySob }); } - hanldeChange = (params) => { + handleChange = (params) => { let request = { ...this.state.request, ...params }; this.setState({ request @@ -104,7 +105,7 @@ export default class BaseInformForm extends React.Component { options={options} value={salarySob ? salarySob : ""} style={{ width: 200 }} - onChange={value => this.hanldeChange({ salarySob: value })}/> + onChange={value => this.handleChange({ salarySob: value })}/> } this.hanldeChange({ name: value })} + onChange={value => this.handleChange({ name: value })} /> this.hanldeChange({ replenishName: value })} + onChange={value => this.handleChange({ replenishName: value })} /> this.hanldeChange({ reissueRule: value })} + onChange={value => this.handleChange({ reissueRule: value })} /> { @@ -153,7 +154,7 @@ export default class BaseInformForm extends React.Component { options={replenishRuleOptions} value={replenishRule} viewAttr={3} - onChange={value => this.hanldeChange({ replenishRule: value })} + onChange={value => this.handleChange({ replenishRule: value })} /> } @@ -164,7 +165,7 @@ export default class BaseInformForm extends React.Component { > this.hanldeChange({ description: value })} + onChange={value => this.handleChange({ description: value })} /> @@ -172,15 +173,21 @@ export default class BaseInformForm extends React.Component { className="payrollBaseInfoWrapper"> this.hanldeChange({ msgStatus: value === "1" })}/> + onChange={value => this.handleChange({ msgStatus: value === "1" })}/> this.hanldeChange({ emailStatus: value === "1" })}/> + onChange={value => this.handleChange({ emailStatus: value === "1" })}/> this.hanldeChange({ autoSendStatus: value === "1" })}/> + onChange={value => { + this.handleChange({ + autoSendStatus: value === "1", + autoSendDayOfMonth: value === "1" ? "1" : null, + autoSendTimeOfDay: value === "1" ? "09:00" : null + }); + }}/> { autoSendStatus && @@ -190,7 +197,7 @@ export default class BaseInformForm extends React.Component { autoSendDayOfMonth, autoSendTimeOfDay }} - onChange={this.hanldeChange} + onChange={this.handleChange} /> } From e501aa293e3bdbec674c13a0c8a880f5ade96c83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=8E=E6=B0=B8=E9=A1=BA?= <971387674@qq.com> Date: Wed, 5 Jul 2023 10:54:39 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E4=BA=A7=E5=93=81-=E5=B7=A5=E8=B5=84?= =?UTF-8?q?=E5=8D=95=E6=A8=A1=E6=9D=BF=E5=AE=9A=E6=97=B6=E5=8F=91=E6=94=BE?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=96=AA=E8=B5=84=E6=89=80=E5=B1=9E=E6=9C=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pages/payroll/stepForm/baseInformForm.js | 46 ++++++++++++++----- 1 file changed, 34 insertions(+), 12 deletions(-) diff --git a/pc4mobx/hrmSalary/pages/payroll/stepForm/baseInformForm.js b/pc4mobx/hrmSalary/pages/payroll/stepForm/baseInformForm.js index 251b8e7e..82be3188 100644 --- a/pc4mobx/hrmSalary/pages/payroll/stepForm/baseInformForm.js +++ b/pc4mobx/hrmSalary/pages/payroll/stepForm/baseInformForm.js @@ -2,10 +2,12 @@ import React from "react"; import { WeaCheckbox, WeaFormItem, WeaInput, WeaLocaleProvider, WeaSearchGroup, WeaSelect, WeaTimePicker } from "ecCom"; import { inject, observer } from "mobx-react"; import { getReplenishRuleSetOptions } from "../../../apis/payroll"; +import { commonEnumList } from "../../../apis/payrollFiles"; import moment from "moment"; import { toJS } from "mobx"; import "./index.less"; + const getLabel = WeaLocaleProvider.getLabel; @inject("payrollStore") @observer @@ -16,6 +18,7 @@ export default class BaseInformForm extends React.Component { inited: false, options: [], replenishRuleOptions: [], + salaryMonthOptions: [], request: {} }; } @@ -24,6 +27,7 @@ export default class BaseInformForm extends React.Component { const { payrollStore } = this.props; const { getPayrollBaseForm } = payrollStore; const templateBaseData = window.localStorage.getItem("template-basedata") || "{}"; + this.commonEnumList(); getPayrollBaseForm(this.props.id).then(data => { this.setState( { @@ -73,9 +77,19 @@ export default class BaseInformForm extends React.Component { } }); }; + commonEnumList = () => { + commonEnumList({ enumClass: "com.engine.salary.enums.salarysend.SalaryAutoSendCycleTypeEnum" }) + .then(({ status, data }) => { + if (status && !_.isEmpty(data)) { + this.setState({ + salaryMonthOptions: _.map(data, it => ({ key: it.value.toString(), showname: it.defaultLabel })) + }); + } + }); + }; render() { - const { request, options, replenishRuleOptions } = this.state; + const { request, options, replenishRuleOptions, salaryMonthOptions } = this.state; const { salarySob, name, @@ -87,7 +101,8 @@ export default class BaseInformForm extends React.Component { emailStatus, autoSendStatus, autoSendDayOfMonth, - autoSendTimeOfDay + autoSendTimeOfDay, + autoSendCycleType } = request; return ( @@ -185,7 +200,8 @@ export default class BaseInformForm extends React.Component { this.handleChange({ autoSendStatus: value === "1", autoSendDayOfMonth: value === "1" ? "1" : null, - autoSendTimeOfDay: value === "1" ? "09:00" : null + autoSendTimeOfDay: value === "1" ? "09:00" : null, + autoSendCycleType: 0 }); }}/> @@ -193,9 +209,11 @@ export default class BaseInformForm extends React.Component { autoSendStatus && @@ -208,18 +226,23 @@ export default class BaseInformForm extends React.Component { } const SendTimeComp = (props) => { - const { value, onChange } = props; - const { autoSendDayOfMonth, autoSendTimeOfDay } = value; + const { value, onChange, salaryMonthOptions } = props; + const { autoSendDayOfMonth, autoSendTimeOfDay, autoSendCycleType } = value; const handleChangeSendtime = (key, val) => { - onChange({ autoSendDayOfMonth, autoSendTimeOfDay, [key]: val }); + onChange({ autoSendDayOfMonth, autoSendTimeOfDay, autoSendCycleType, [key]: val }); }; return
- {getLabel(111, "每月")} + {getLabel(542604, "薪资所属月")} + handleChangeSendtime("autoSendCycleType", Number(v))} + /> ({ key: item, showname: item }))} + options={_.map(getDay(autoSendCycleType), item => ({ key: item, showname: item }))} onChange={v => handleChangeSendtime("autoSendDayOfMonth", v)} /> {getLabel(16992, "号")} @@ -229,15 +252,14 @@ const SendTimeComp = (props) => {
; }; -const getDay = () => { +const getDay = (num = 1) => { let days = []; - let day = getDaysInMonth(moment().year(), moment().month() + 1); + let day = getDaysInMonth(moment().year(), moment().month() + num); for (let i = 1; i <= day; i++) { days.push(i); } return days; }; - const getDaysInMonth = (year, month) => { month = parseInt(month, 10); let d = new Date(year, month, 0); From ae79ab24c37fedf6151d6afa29298eceb4c7e54c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=8E=E6=B0=B8=E9=A1=BA?= <971387674@qq.com> Date: Wed, 5 Jul 2023 14:04:26 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E4=BA=A7=E5=93=81-=E5=B7=A5=E8=B5=84?= =?UTF-8?q?=E5=8D=95=E6=A8=A1=E6=9D=BF=E5=AE=9A=E6=97=B6=E5=8F=91=E6=94=BE?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=96=AA=E8=B5=84=E6=89=80=E5=B1=9E=E6=9C=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pc4mobx/hrmSalary/pages/payroll/stepForm/baseInformForm.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pc4mobx/hrmSalary/pages/payroll/stepForm/baseInformForm.js b/pc4mobx/hrmSalary/pages/payroll/stepForm/baseInformForm.js index 82be3188..5cd3f6f1 100644 --- a/pc4mobx/hrmSalary/pages/payroll/stepForm/baseInformForm.js +++ b/pc4mobx/hrmSalary/pages/payroll/stepForm/baseInformForm.js @@ -201,7 +201,7 @@ export default class BaseInformForm extends React.Component { autoSendStatus: value === "1", autoSendDayOfMonth: value === "1" ? "1" : null, autoSendTimeOfDay: value === "1" ? "09:00" : null, - autoSendCycleType: 0 + autoSendCycleType: value === "1" ? 1 : null, }); }}/>