产品-工资单反馈改造

This commit is contained in:
黎永顺 2023-07-12 16:18:54 +08:00
parent b8c8297cf0
commit a3e9a6e733
2 changed files with 98 additions and 61 deletions

View File

@ -5,8 +5,16 @@
* Date: 2023/6/12
*/
import React, { Component } from "react";
import { WeaCheckbox, WeaFormItem, WeaLocaleProvider, WeaSearchGroup, WeaSelect } from "ecCom";
import { message } from "antd";
import {
WeaCheckbox,
WeaFormItem,
WeaInput,
WeaInputNumber,
WeaLocaleProvider,
WeaSearchGroup,
WeaSelect
} from "ecCom";
import { message, Modal } from "antd";
import { getSalaryBillBaseSetForm, salaryBillBaseSetSave } from "../../apis/payroll";
import WaterMarkSetModal from "./components/waterMarkSetModal";
import "./index.less";
@ -22,6 +30,11 @@ class TemplateBaseSettings extends Component {
wmSetting: null,
watermarkSet: {
visible: false, watermarkSetting: null
},
ackFeedbackSetting: {
ackStatus: "0",
autoAckDays: 7,
feedBackUrl: ""
}
};
}
@ -34,9 +47,10 @@ class TemplateBaseSettings extends Component {
const { watermarkSet } = this.state;
getSalaryBillBaseSetForm().then(({ status, data }) => {
if (status) {
const { watermarkStatus, watermark = "DEFAULT", watermarkSetting } = data;
const { watermarkStatus, watermark = "DEFAULT", watermarkSetting, ackFeedbackSetting } = data;
this.setState({
watermark, watermarkStatus: watermarkStatus ? "1" : "0",
watermark, watermarkStatus: watermarkStatus ? "1" : "0", ackFeedbackSetting,
wmSetting: { wmSetting: watermarkSetting },
watermarkSet: {
...watermarkSet,
watermarkSetting
@ -46,8 +60,16 @@ class TemplateBaseSettings extends Component {
});
};
salaryBillBaseSetSave = () => {
const { watermark, watermarkStatus, wmSetting } = this.state;
let payload = { watermarkStatus: watermarkStatus === "1" };
const { watermark, watermarkStatus, wmSetting, ackFeedbackSetting } = this.state;
const { feedBackUrl } = ackFeedbackSetting;
if (!feedBackUrl) {
Modal.warning({
title: getLabel(111, "信息确认"),
content: getLabel(111, "必要信息不完整,红色*为必填项!")
});
return;
}
let payload = { watermarkStatus: watermarkStatus === "1", ackFeedbackSetting: { ...ackFeedbackSetting } };
if (watermarkStatus === "1") payload = { ...payload, watermark };
if (!_.isNil(wmSetting)) payload = { ...payload, watermark, ...wmSetting };
this.props.onChangeLoading(true);
@ -63,40 +85,76 @@ class TemplateBaseSettings extends Component {
};
render() {
const { watermarkStatus, watermark, watermarkSet } = this.state;
const { watermarkStatus, watermark, watermarkSet, ackFeedbackSetting } = this.state;
const { ackStatus, autoAckDays, feedBackUrl } = ackFeedbackSetting;
return (
<WeaSearchGroup title={getLabel(111, "水印设置")} showGroup needTigger className="waterMarkWrapper">
<WeaFormItem label={getLabel(111, "启用水印")} labelCol={{ span: 2 }} wrapperCol={{ span: 4 }}>
<WeaCheckbox value={watermarkStatus} display="switch"
onChange={watermarkStatus => this.setState({ watermarkStatus, watermark: "DEFAULT" })}/>
</WeaFormItem>
{
watermarkStatus === "1" &&
<WeaFormItem label={getLabel(111, "水印类型")} labelCol={{ span: 2 }} wrapperCol={{ span: 4 }}>
<WeaSelect
value={watermark}
options={[
{ key: "DEFAULT", showname: getLabel(111, "系统默认水印") },
{ key: "CUSTOM", showname: getLabel(111, "自定义水印") }
]}
onChange={watermark => this.setState({ watermark })}
/>
{
watermark === "CUSTOM" &&
<span className="waterMarkTitle" onClick={() => this.setState({
watermarkSet: {
...watermarkSet,
visible: true
}
})}>{getLabel(111, "水印设置")}</span>
}
<WaterMarkSetModal {...watermarkSet}
onClose={() => this.setState({ watermarkSet: { ...watermarkSet, visible: false } })}
onChange={wmSetting => this.setState({ wmSetting })}
/>
<React.Fragment>
<WeaSearchGroup title={getLabel(111, "水印设置")} showGroup needTigger className="waterMarkWrapper">
<WeaFormItem label={getLabel(111, "启用水印")} labelCol={{ span: 2 }} wrapperCol={{ span: 4 }}>
<WeaCheckbox value={watermarkStatus} display="switch"
onChange={watermarkStatus => this.setState({ watermarkStatus, watermark: "DEFAULT" })}/>
</WeaFormItem>
}
</WeaSearchGroup>
{
watermarkStatus === "1" &&
<WeaFormItem label={getLabel(111, "水印类型")} labelCol={{ span: 2 }} wrapperCol={{ span: 4 }}>
<WeaSelect
value={watermark}
options={[
{ key: "DEFAULT", showname: getLabel(111, "系统默认水印") },
{ key: "CUSTOM", showname: getLabel(111, "自定义水印") }
]}
onChange={watermark => this.setState({ watermark })}
/>
{
watermark === "CUSTOM" &&
<span className="waterMarkTitle" onClick={() => this.setState({
watermarkSet: {
...watermarkSet,
visible: true
}
})}>{getLabel(111, "水印设置")}</span>
}
<WaterMarkSetModal {...watermarkSet}
onClose={() => this.setState({ watermarkSet: { ...watermarkSet, visible: false } })}
onChange={wmSetting => this.setState({ wmSetting })}
/>
</WeaFormItem>
}
</WeaSearchGroup>
<WeaSearchGroup title={getLabel(111, "工资单确认反馈设置")} showGroup needTigger className="waterMarkWrapper">
<WeaFormItem label={getLabel(111, "启用工资单确认")} labelCol={{ span: 2 }} wrapperCol={{ span: 4 }}>
<WeaCheckbox value={ackStatus} display="switch"
onChange={ackStatus => this.setState({
ackFeedbackSetting: {
...ackFeedbackSetting, ackStatus, autoAckDays: 7
}
})}/>
</WeaFormItem>
{
ackStatus === "1" &&
<React.Fragment>
<WeaFormItem label={getLabel(111, "自动确认超时天数")} labelCol={{ span: 2 }} wrapperCol={{ span: 4 }}>
<WeaInputNumber
min={1} value={autoAckDays} viewAttr={3}
onChange={autoAckDays => this.setState({
ackFeedbackSetting: {
...ackFeedbackSetting, autoAckDays
}
})}/>
</WeaFormItem>
<WeaFormItem label={getLabel(111, "反馈流程地址")} labelCol={{ span: 2 }} wrapperCol={{ span: 4 }}>
<WeaInput
value={feedBackUrl} viewAttr={3}
onChange={feedBackUrl => this.setState({
ackFeedbackSetting: {
...ackFeedbackSetting, feedBackUrl
}
})}/>
</WeaFormItem>
</React.Fragment>
}
</WeaSearchGroup>
</React.Fragment>
);
}
}

View File

@ -26,7 +26,6 @@ export default class Index extends Component {
enctry: "",
operateTaxDeclaration: "",
matchRule: "",
salarySendFeedback: ""
},
showEncryptOperationButton: "",
progressVisible: false,
@ -55,7 +54,6 @@ export default class Index extends Component {
isOpenEncrypt: enctry,
isOpenTaxDeclaration: operateTaxDeclaration,
salaryAcctEmployeeRule: matchRule,
salarySendFeedback
}
} = appSettings;
this.setState({
@ -63,7 +61,7 @@ export default class Index extends Component {
showEncryptOperationButton,
saveParams: {
...saveParams,
ascOrDesc, orderRule, rule, enctry, operateTaxDeclaration, matchRule, salarySendFeedback
ascOrDesc, orderRule, rule, enctry, operateTaxDeclaration, matchRule
}
});
}
@ -130,16 +128,6 @@ export default class Index extends Component {
}
});
};
saveSalarySendFeedback = () => {
API.saveSalarySendFeedback({ confValue: this.state.saveParams.salarySendFeedback })
.then(({ status, errormsg }) => {
if (status) {
message.success(getLabel(22619, "保存成功!"));
} else {
message.error(errormsg || getLabel(22620, "保存失败!"));
}
});
};
operateTaxDeclarationFunction = () => {
API.operateTaxDeclarationFunction(_.pick(this.state.saveParams, ["operateTaxDeclaration"]))
.then(({ status, errormsg }) => {
@ -239,9 +227,6 @@ export default class Index extends Component {
case "enctry":
this.saveEncryptSetting();
break;
case "salarySendFeedback":
this.saveSalarySendFeedback();
break;
default:
break;
}
@ -267,7 +252,7 @@ export default class Index extends Component {
employeeOptions,
showEncryptOperationButton
} = this.state;
const { orderRule, ascOrDesc, rule, enctry, operateTaxDeclaration, matchRule, salarySendFeedback } = saveParams;
const { orderRule, ascOrDesc, rule, enctry, operateTaxDeclaration, matchRule } = saveParams;
return (
<div className="ruleWrapper">
<WeaTop
@ -318,12 +303,6 @@ export default class Index extends Component {
/>
</WeaFormItem>
</WeaSearchGroup>
<WeaSearchGroup title={getLabel(111, "工资单反馈")} showGroup center>
<WeaFormItem label={getLabel(111, "工资单反馈")} labelCol={{ span: 8 }} wrapperCol={{ span: 16 }}>
<WeaCheckbox display="switch" value={salarySendFeedback}
onChange={val => this.handleChange("salarySendFeedback", val)}/>
</WeaFormItem>
</WeaSearchGroup>
{
this.state.progressVisible &&
<ProgressModal