/* * Author: 黎永顺 * name: 工资单模板基础设置 * Description: * Date: 2023/6/12 */ import React, { Component } from "react"; import { WeaCheckbox, WeaFormItem, WeaHelpfulTip, 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"; const getLabel = WeaLocaleProvider.getLabel; class TemplateBaseSettings extends Component { constructor(props) { super(props); this.state = { watermarkStatus: "0", watermark: "DEFAULT", wmSetting: null, watermarkSet: { visible: false, watermarkSetting: null }, ackFeedbackSetting: { ackStatus: "0", feedbackStatus: "0", autoAckDays: 7, feedBackUrl: "", mobileFeedbackUrl: "" }, salaryBillViewingLimitSetting: { limitMonth: 0, burningAfterReadingMin: null } }; } componentDidMount() { this.getSalaryBillBaseSetForm(); } getSalaryBillBaseSetForm = () => { const { watermarkSet } = this.state; getSalaryBillBaseSetForm().then(({ status, data }) => { if (status) { const { watermarkStatus, watermark = "DEFAULT", watermarkSetting, ackFeedbackSetting, salaryBillViewingLimitSetting = {} } = data; this.setState({ watermark, watermarkStatus: watermarkStatus ? "1" : "0", ackFeedbackSetting, salaryBillViewingLimitSetting, wmSetting: { wmSetting: watermarkSetting }, watermarkSet: { ...watermarkSet, watermarkSetting } }, () => window.localStorage.setItem("wmSetting", JSON.stringify({ wmSetting: watermarkSetting }))); } }); }; salaryBillBaseSetSave = () => { const { watermark, watermarkStatus, wmSetting, ackFeedbackSetting, salaryBillViewingLimitSetting } = this.state; const { feedBackUrl, mobileFeedbackUrl, feedbackStatus, autoAckDays, ackStatus } = ackFeedbackSetting; if (ackStatus === "1" && _.isNil(autoAckDays)) { Modal.warning({ title: getLabel(111, "信息确认"), content: getLabel(111, "必要信息不完整,红色*为必填项!") }); return; } if (feedbackStatus === "1" && (!feedBackUrl || !mobileFeedbackUrl)) { Modal.warning({ title: getLabel(111, "信息确认"), content: getLabel(111, "必要信息不完整,红色*为必填项!") }); return; } let payload = { watermarkStatus: watermarkStatus === "1", ackFeedbackSetting: { ...ackFeedbackSetting }, salaryBillViewingLimitSetting: { ...salaryBillViewingLimitSetting } }; if (watermarkStatus === "1") payload = { ...payload, watermark }; if (!_.isNil(wmSetting)) payload = { ...payload, watermark, ...wmSetting }; this.props.onChangeLoading(true); salaryBillBaseSetSave(payload).then(({ status, errormsg }) => { this.props.onChangeLoading(false); if (status) { message.success(getLabel(111, "保存成功")); this.getSalaryBillBaseSetForm(); } else { message.error(errormsg || getLabel(111, "保存失败")); } }).catch(() => this.props.onChangeLoading(false)); }; render() { const { watermarkStatus, watermark, watermarkSet, ackFeedbackSetting, salaryBillViewingLimitSetting } = this.state; const { ackStatus, feedbackStatus, autoAckDays, feedBackUrl, mobileFeedbackUrl } = ackFeedbackSetting; const { limitMonth, burningAfterReadingMin } = salaryBillViewingLimitSetting; return ( this.setState({ watermarkStatus, watermark: "DEFAULT" })}/> { watermarkStatus === "1" && this.setState({ watermark })} /> { watermark === "CUSTOM" && this.setState({ watermarkSet: { ...watermarkSet, visible: true } })}>{getLabel(111, "水印设置")} } this.setState({ watermarkSet: { ...watermarkSet, visible: false } })} onChange={wmSetting => this.setState({ wmSetting })} /> } this.setState({ ackFeedbackSetting: { ...ackFeedbackSetting, ackStatus, autoAckDays: 7 } })}/> { ackStatus === "1" && this.setState({ ackFeedbackSetting: { ...ackFeedbackSetting, autoAckDays } })}/> } this.setState({ ackFeedbackSetting: { ...ackFeedbackSetting, feedbackStatus } })}/> { feedbackStatus === "1" && this.setState({ ackFeedbackSetting: { ...ackFeedbackSetting, feedBackUrl } })}/> this.setState({ ackFeedbackSetting: { ...ackFeedbackSetting, mobileFeedbackUrl } })}/> }
{getLabel(111, "仅可查看")} this.setState({ salaryBillViewingLimitSetting: { ...salaryBillViewingLimitSetting, limitMonth } })}/> {getLabel(111, "个月内的工资单")}
{getLabel(111, "首次查看")} this.setState({ salaryBillViewingLimitSetting: { ...salaryBillViewingLimitSetting, burningAfterReadingMin } })}/> {getLabel(111, "分钟后无法查看工资单")}
); } } export default TemplateBaseSettings;