From dadb749c4ca3d72e2f7e62d15f7626b55d58cc66 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, 18 Oct 2023 17:12:44 +0800
Subject: [PATCH] =?UTF-8?q?feature/2.9.42310.01-=E5=B7=A5=E8=B5=84?=
=?UTF-8?q?=E5=8D=95=E5=8F=91=E6=94=BE=E9=A1=B5=E9=9D=A2=E9=87=8D=E6=9E=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../hrmSalary/components/pcTemplate/index.js | 24 ++++
.../components/pcTemplate/index.less | 32 ++++++
pc4mobx/hrmSalary/index.js | 10 +-
.../pages/payroll/templatePreview/index.less | 55 +++++++++
.../payroll/templatePreview/tmpPreview.js | 54 +++++++++
.../components/payrollTempBaseSet/index.js | 14 ++-
.../components/payrollTempNormalSet/index.js | 32 ++++--
.../components/payrollTempReissueSet/index.js | 20 ++--
.../payrollTemplateTableList/index.js | 2 +-
.../updatePayrollTemplateSlide/index.js | 107 +++++++++++++-----
pc4mobx/hrmSalary/stores/payroll.js | 2 +
11 files changed, 298 insertions(+), 54 deletions(-)
create mode 100644 pc4mobx/hrmSalary/components/pcTemplate/index.js
create mode 100644 pc4mobx/hrmSalary/components/pcTemplate/index.less
create mode 100644 pc4mobx/hrmSalary/pages/payroll/templatePreview/tmpPreview.js
diff --git a/pc4mobx/hrmSalary/components/pcTemplate/index.js b/pc4mobx/hrmSalary/components/pcTemplate/index.js
new file mode 100644
index 00000000..66fdb988
--- /dev/null
+++ b/pc4mobx/hrmSalary/components/pcTemplate/index.js
@@ -0,0 +1,24 @@
+import React, { Component } from "react";
+import { toJS } from "mobx";
+import "./index.less";
+
+class Index extends Component {
+ componentDidMount() {
+ const { store: { tmplDataSource } } = this.props;
+ console.log(toJS(tmplDataSource));
+ }
+
+ render() {
+ return (
+
+ );
+ }
+}
+
+export default Index;
diff --git a/pc4mobx/hrmSalary/components/pcTemplate/index.less b/pc4mobx/hrmSalary/components/pcTemplate/index.less
new file mode 100644
index 00000000..c17d0949
--- /dev/null
+++ b/pc4mobx/hrmSalary/components/pcTemplate/index.less
@@ -0,0 +1,32 @@
+.pbpc-content {
+ height: 100%;
+ border: 1px solid #e5e5e5;
+ overflow-y: auto;
+
+ .weapp-salary-sp {
+ background: #f6f6f6;
+
+ .salary-preview-container {
+ display: flex;
+ justify-content: flex-start;
+ align-items: center;
+ flex-direction: column;
+ width: 100%;
+
+ .edition-center {
+ max-width: 1000px;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ width: 100%;
+ padding-bottom: 32px;
+ }
+ }
+ }
+
+ .weapp-salary-payroll-pc-preview {
+ padding: 32px 0;
+ height: 100%;
+ overflow-y: auto;
+ }
+}
diff --git a/pc4mobx/hrmSalary/index.js b/pc4mobx/hrmSalary/index.js
index 2ae4df93..bca2db82 100644
--- a/pc4mobx/hrmSalary/index.js
+++ b/pc4mobx/hrmSalary/index.js
@@ -18,7 +18,7 @@ import Ledger from "./pages/ledgerPage";
// import Calculate from "./pages/calculate";
import Calculate from "./pages/calculate/calculate"; //重构的薪资核算页面
// import Payroll from "./pages/payroll";
-import Payroll from "./pages/payrollRelease";//重构的工资单发放页面
+import Payroll from "./pages/payrollRelease"; //重构的工资单发放页面
import PayrollGrant from "./pages/payroll/payrollGrant";
import PayrollDetail from "./pages/payroll/payrollDetail";
import Declare from "./pages/declare";
@@ -31,6 +31,7 @@ import DoCalcDetail from "./pages/calculate/doCalc";
import OfflineCompare from "./pages/calculate/calcOc";
import GenerateDeclarationDetail from "./pages/declare/generateDeclarationDetail";
import TemplatePreview from "./pages/payroll/templatePreview";
+import PayrollTemplatePreview from "./pages/payroll/templatePreview/tmpPreview"; //重构的工资单模板预览页面
import MobilePayroll from "./pages/mobilePayroll";
import SysConfig from "./pages/sysConfig";
import RuleConfig from "./pages/ruleConfig";
@@ -144,11 +145,8 @@ const Routes = (
-
+
+
+
+
+ {
+ _.map(phsImgList, o => (
+
this.setState({ active: o.key })}>

+
))
+ }
+
+
+
+
+ );
+ }
+}
+
+export default TmpPreview;
diff --git a/pc4mobx/hrmSalary/pages/payrollRelease/components/payrollTempBaseSet/index.js b/pc4mobx/hrmSalary/pages/payrollRelease/components/payrollTempBaseSet/index.js
index bcaa4073..74123d25 100644
--- a/pc4mobx/hrmSalary/pages/payrollRelease/components/payrollTempBaseSet/index.js
+++ b/pc4mobx/hrmSalary/pages/payrollRelease/components/payrollTempBaseSet/index.js
@@ -61,7 +61,13 @@ class Index extends Component {
const {
autoSendDayOfMonth = "1", autoSendTimeOfDay = "09:00", autoSendCycleType = "1",
...fieldsEchoData
- } = { ...result, ...toJS(tmplDataSource) };
+ } = {
+ ...result, ...toJS(tmplDataSource),
+ reissueRule: (
+ (!id && (_.isEmpty(toJS(tmplDataSource)) || (!_.isEmpty(toJS(tmplDataSource)) && toJS(tmplDataSource).replenishRule === "ALL"))) ||
+ (id && ((_.isEmpty(toJS(tmplDataSource)) && !result.replenishRule) || (!_.isEmpty(toJS(tmplDataSource)) && toJS(tmplDataSource).replenishRule === "ALL")))
+ ) ? "0" : "1"
+ };
const { data: replenishRuleOptions } = (fieldsEchoData["reissueRule"] === "1" && fieldsEchoData["salarySob"]) ? await getReplenishRuleSetOptions({ salarySobId: fieldsEchoData["salarySob"] }) : [];
this.setState({
conditions: _.map(tempBaseSetConditions, it => {
@@ -170,7 +176,7 @@ class Index extends Component {
});
};
handleChange = async (params) => {
- const { payrollStore: { payrollTempForm } } = this.props;
+ const { payrollStore: { payrollTempForm, setHasBeenModify } } = this.props;
const key = _.keys(params)[0], salarySobId = payrollTempForm.getFormParams().salarySob,
reissueRule = payrollTempForm.getFormParams().reissueRule;
const { data: replenishRuleOptions } = (reissueRule === "1" && salarySobId) ? await getReplenishRuleSetOptions({ salarySobId }) : [];
@@ -227,6 +233,7 @@ class Index extends Component {
this.resetRequiredForm();
});
}
+ setHasBeenModify(true);
this.forceUpdate();
};
resetRequiredForm = () => {
@@ -236,7 +243,7 @@ class Index extends Component {
if (reissueRule === "1") payrollTempForm.updateFields({ replenishRule: "" });
};
handleFbChange = (params) => {
- const { payrollStore: { payrollTempFeedbackForm } } = this.props;
+ const { payrollStore: { payrollTempFeedbackForm, setHasBeenModify } } = this.props;
const key = _.keys(params)[0];
if (key === "ackFeedbackStatus") {
this.setState({
@@ -261,6 +268,7 @@ class Index extends Component {
if (ackFeedbackStatus === "0") payrollTempFeedbackForm.updateFields({ autoAckDays: "7", feedbackUrl: "/" });
});
}
+ setHasBeenModify(true);
this.forceUpdate();
};
diff --git a/pc4mobx/hrmSalary/pages/payrollRelease/components/payrollTempNormalSet/index.js b/pc4mobx/hrmSalary/pages/payrollRelease/components/payrollTempNormalSet/index.js
index 5cb2331f..5d587ecd 100644
--- a/pc4mobx/hrmSalary/pages/payrollRelease/components/payrollTempNormalSet/index.js
+++ b/pc4mobx/hrmSalary/pages/payrollRelease/components/payrollTempNormalSet/index.js
@@ -36,12 +36,13 @@ class Index extends Component {
}
getPayrollShowForm = () => {
- const { tmplId: id, payrollStore: { payrollTempNormalForm, tmplDataSource } } = this.props;
+ const { tmplId: id, payrollStore: { payrollTempNormalForm, tmplDataSource, setTmplDataSource } } = this.props;
getPayrollShowForm({ id }).then(async ({ status, data }) => {
if (status) {
const { salaryTemplateShowSet, salaryTemplateSalaryItemSet: salaryItemSet, salaryBillItemNameSet } = data;
const { data: result } = salaryTemplateShowSet;
- const { ...fieldsEchoData } = { ...result, ...toJS(tmplDataSource) };
+ const fieldsEchoData = { ...result, ...toJS(tmplDataSource) };
+ setTmplDataSource(fieldsEchoData);
this.setState({
conditions: _.map(tempNormalSetConditions, it => {
if (it.title === "themeSet") {
@@ -66,7 +67,7 @@ class Index extends Component {
};
}
}),
- salaryBillItemNameSet, salaryItemSet
+ salaryBillItemNameSet
}, () => {
payrollTempNormalForm.initFormFields(this.state.conditions);
//字段回显
@@ -82,7 +83,25 @@ class Index extends Component {
break;
}
});
- !id && this.getPayrollItemList();
+ if (!id && !fieldsEchoData.salaryItemSetting) this.getPayrollItemList();
+ if (id && !fieldsEchoData.salaryItemSetting) {
+ setTmplDataSource({ ...toJS(tmplDataSource), salaryItemSetting: salaryItemSet });
+ this.setState({ salaryItemSet });
+ }
+ if (fieldsEchoData.salaryItemSetting) {
+ setTmplDataSource({
+ ...toJS(tmplDataSource), salaryItemSetting: _.map(toJS(fieldsEchoData.salaryItemSetting), o => ({
+ ...o,
+ items: _.map(o.items, it => ({ ...it, viewAttr: 1 }))
+ }))
+ });
+ this.setState({
+ salaryItemSet: _.map(toJS(fieldsEchoData.salaryItemSetting), o => ({
+ ...o,
+ items: _.map(o.items, it => ({ ...it, viewAttr: 1 }))
+ }))
+ });
+ }
});
}
});
@@ -117,9 +136,8 @@ class Index extends Component {
};
handleChangeSalaryItem = (resultSet) => {
const { payrollStore: { setTmplDataSource, tmplDataSource } } = this.props;
- this.setState({ salaryItemSet: resultSet }, () => {
- setTmplDataSource({ ...toJS(tmplDataSource), salaryItemSetting: resultSet });
- });
+ setTmplDataSource({ ...toJS(tmplDataSource), salaryItemSetting: resultSet });
+ this.setState({ salaryItemSet: resultSet });
};
handleChangeSalaryItemShowNamesetting = (itemShowNamesetting) => {
const { payrollStore: { setSalaryBillItemNameSetting, salaryBillItemNameSetting } } = this.props;
diff --git a/pc4mobx/hrmSalary/pages/payrollRelease/components/payrollTempReissueSet/index.js b/pc4mobx/hrmSalary/pages/payrollRelease/components/payrollTempReissueSet/index.js
index 247da322..fd443897 100644
--- a/pc4mobx/hrmSalary/pages/payrollRelease/components/payrollTempReissueSet/index.js
+++ b/pc4mobx/hrmSalary/pages/payrollRelease/components/payrollTempReissueSet/index.js
@@ -21,7 +21,17 @@ class Index extends Component {
}
componentDidMount() {
- this.getReplenishForm();
+ const { payrollStore: { tmplDataSource } } = this.props;
+ if (!toJS(tmplDataSource.replenishSalaryItemSetting)) {
+ this.getReplenishForm();
+ } else {
+ this.setState({
+ replenishSalaryTemplateSalaryItemSet: _.map(toJS(tmplDataSource.replenishSalaryItemSetting), o => ({
+ ...o,
+ items: _.map(o.items, it => ({ ...it, viewAttr: 1 }))
+ }))
+ });
+ }
}
getReplenishForm = () => {
@@ -44,12 +54,8 @@ class Index extends Component {
handleChangeSalaryItem = (resultSet) => {
const { payrollStore: { setTmplDataSource, tmplDataSource } } = this.props;
- this.setState({ replenishSalaryTemplateSalaryItemSet: resultSet }, () => {
- setTmplDataSource({
- ...toJS(tmplDataSource),
- replenishSalaryItemSetting: resultSet
- });
- });
+ setTmplDataSource({ ...toJS(tmplDataSource), replenishSalaryItemSetting: resultSet });
+ this.setState({ replenishSalaryTemplateSalaryItemSet: resultSet });
};
handleChangeSalaryItemShowNamesetting = (itemShowNamesetting) => {
const { payrollStore: { setSalaryBillItemNameSetting, salaryBillItemNameSetting } } = this.props;
diff --git a/pc4mobx/hrmSalary/pages/payrollRelease/components/payrollTemplateTableList/index.js b/pc4mobx/hrmSalary/pages/payrollRelease/components/payrollTemplateTableList/index.js
index aca60f91..bc4fd61f 100644
--- a/pc4mobx/hrmSalary/pages/payrollRelease/components/payrollTemplateTableList/index.js
+++ b/pc4mobx/hrmSalary/pages/payrollRelease/components/payrollTemplateTableList/index.js
@@ -181,7 +181,7 @@ class Index extends Component {
{/* 新建编辑工资单模板*/}
this.setState({
- tmplSlide: { ...tmplSlide, visible: false, copyId: "" }
+ tmplSlide: { ...tmplSlide, visible: false, tmplId: "" }
}, () => v === "refresh" && this.getPayrollTemplateList(this.props))}
/>
diff --git a/pc4mobx/hrmSalary/pages/payrollRelease/components/updatePayrollTemplateSlide/index.js b/pc4mobx/hrmSalary/pages/payrollRelease/components/updatePayrollTemplateSlide/index.js
index c6ed81a2..5cadc957 100644
--- a/pc4mobx/hrmSalary/pages/payrollRelease/components/updatePayrollTemplateSlide/index.js
+++ b/pc4mobx/hrmSalary/pages/payrollRelease/components/updatePayrollTemplateSlide/index.js
@@ -8,14 +8,15 @@ import React, { Component } from "react";
import { toJS } from "mobx";
import { inject, observer } from "mobx-react";
import { WeaLocaleProvider, WeaSlideModal, WeaSteps } from "ecCom";
-import { Button, message } from "antd";
+import { Button, message, Modal } from "antd";
import PayrollTempBaseSet from "../payrollTempBaseSet";
import PayrollTempNormalSet from "../payrollTempNormalSet";
import PayrollTempReissueSet from "../payrollTempReissueSet";
-import { savePayroll } from "../../../../apis/payroll";
+import { savePayroll, updatePayroll } from "../../../../apis/payroll";
const Step = WeaSteps.Step;
const getLabel = WeaLocaleProvider.getLabel;
+const APIFox = { save: savePayroll, update: updatePayroll };
@inject("payrollStore")
@observer
@@ -28,11 +29,16 @@ class Index extends Component {
this.tmpBaseSetRef = null;
}
+ componentWillReceiveProps(nextProps, nextContext) {
+ if (nextProps.visible !== this.props.visible && !nextProps.visible) nextProps.payrollStore.setHasBeenModify(false);
+ }
+
save = async () => {
const {
payrollStore: {
payrollTempForm, payrollTempFeedbackForm, initPayrollTempForm,
- initPayrollTempFeedbackForm, setTmplDataSource, tmplDataSource
+ initPayrollTempFeedbackForm, setTmplDataSource, tmplDataSource,
+ setHasBeenModify
}
} = this.props;
const [tempFormm, fbForm] = await Promise.all([payrollTempForm.validateForm(), payrollTempFeedbackForm.validateForm()]);
@@ -47,12 +53,13 @@ class Index extends Component {
emailStatus: emailStatus === "1",
msgStatus: msgStatus === "1",
autoAckDays: Number(autoAckDays),
- replenishRule: replenishRule === "0" ? "" : replenishRule
+ replenishRule: (replenishRule === "0" || !replenishRule) ? "ALL" : replenishRule
};
setTmplDataSource(payload);
this.setState({ current: this.state.current + 1 }, () => {
initPayrollTempForm();
initPayrollTempFeedbackForm();
+ setHasBeenModify(true);
});
} else {
tempFormm.showErrors();
@@ -84,35 +91,20 @@ class Index extends Component {
});
};
savePayroll = () => {
- const {
- payrollStore: {
- tmplDataSource, salaryBillItemNameSetting, initPayrollTempForm, initPayrollTempFeedbackForm,
- initPayrollTempNormalForm, setTmplDataSource, setSalaryBillItemNameSetting
- }
- } = this.props;
- const payload = { ...toJS(tmplDataSource), salaryBillItemNameSetting: toJS(salaryBillItemNameSetting) };
+ const { payrollStore: { tmplDataSource, salaryBillItemNameSetting, setHasBeenModify }, tmplId: id } = this.props;
+ const payload = {
+ ...toJS(tmplDataSource), id,
+ salarySobId: toJS(tmplDataSource).salarySob,
+ salaryBillItemNameSetting: toJS(salaryBillItemNameSetting)
+ };
this.setState({ loading: true });
- savePayroll(payload).then(({ status, errormsg }) => {
+ const API = APIFox[id ? "update" : "save"];
+ API(payload).then(({ status, errormsg }) => {
this.setState({ loading: false });
if (status) {
- initPayrollTempForm();
- initPayrollTempFeedbackForm();
- initPayrollTempNormalForm();
- setTmplDataSource({});
- setSalaryBillItemNameSetting([
- {
- salaryTemplateId: "",
- salaryBillType: 0,
- itemShowNameSetting: []
- },
- {
- salaryTemplateId: "",
- salaryBillType: 1,
- itemShowNameSetting: []
- }
- ]);
message.success(getLabel(30700, "操作成功!"));
- this.props.onClose("refresh");
+ setHasBeenModify(false);
+ this.handleClose("refresh");
} else {
message.error(errormsg);
}
@@ -147,7 +139,8 @@ class Index extends Component {
this.setState({ current: current - 1 });
}}>{getLabel(1876, "上一步")}
-
+
: