/* * Author: 黎永顺 * name: 编辑回算薪资项目 * Description: * Date: 2022/12/13 */ import React, { Component } from "react"; import { WeaFormItem, WeaInput, WeaSelect, WeaSlideModal, WeaTextarea } from "ecCom"; import { Col, message, Modal, Row } from "antd"; import SlideModalTitle from "../../../components/slideModalTitle"; import { getBackitemForm, salarysobBackitemSave } from "../../../apis/ledger"; import { fieldType, keepDecimalPlaces, roundingRules, valueTaking } from "../config"; import FormalFormModal from "../../salaryItem/formalFormModal"; import "./index.less"; class LedgerBackCalcEditSlide extends Component { constructor(props) { super(props); this.state = { loading: false, dataType: "", formulaContent: "", pattern: "", roundingMode: "", valueType: "", salaryItem: [], formulaId: "", backCalcEditFormulModal: { visible: false, valueType: "", dataType: "", backCalcType: "", formulaId: "" } }; } componentWillReceiveProps(nextProps, nextContext) { if (nextProps.visible !== this.props.visible && nextProps.id) this.getBackitemForm(nextProps.id); } getBackitemForm = (id) => { getBackitemForm({ id }).then(({ status, data }) => { if (status) { this.setState({ ...data }); } }); }; handleChange = (type, value) => { this.setState({ ...this.state, [type]: value }); }; handleSaveBackCalcItems = () => { const { salaryItem, loading, backCalcEditFormulModal, ...extra } = this.state; const { salaryItemId, editId: salarySobId, onCancle } = this.props; if (extra.valueType === "FORMULA" && _.isEmpty(extra.formulaContent)) { Modal.warning({ title: "信息确认", content: "必要信息不完整,红色*为必填项!" }); return; } const payload = { ...extra, salarySobId, salaryItemId }; this.setState({ loading: true }); salarysobBackitemSave(payload).then(({ status, errormsg }) => { this.setState({ loading: false }); if (status) { message.success("保存成功"); onCancle(true); } else { message.error(errormsg || "保存失败"); } }).catch(() => this.setState({ loading: false })); }; handleEditFormnul = () => { const { backCalcType } = this.props; const { backCalcEditFormulModal, valueType, dataType, formulaId } = this.state; this.setState({ backCalcEditFormulModal: { ...backCalcEditFormulModal, visible: true, valueType, dataType: _.lowerCase(dataType), backCalcType, formulaId } }); }; handleCloseEditFormnul = () => { const { backCalcEditFormulModal } = this.state; this.setState({ backCalcEditFormulModal: { ...backCalcEditFormulModal, visible: false, valueType: "", dataType: "", backCalcType: "", formulaId: "" } }); }; render() { const { title, visible, showOperateBtn, onCancle } = this.props; const { valueType, dataType, roundingMode, pattern, salaryItem = [], loading, formulaContent, backCalcEditFormulModal } = this.state; const salaryItemName = salaryItem[0] ? salaryItem[0].name : ""; return ( } content={
this.handleChange("roundingMode", v)} /> this.handleChange("pattern", v)} /> this.handleChange("valueType", v)} /> { valueType === "FORMULA" &&
{/*公式弹框*/} { backCalcEditFormulModal.visible && this.setState({ ...this.state, formulaId: data.id, formulaContent: data.formula })} onCancel={this.handleCloseEditFormnul} /> }
}
} onClose={onCancle} /> ); } } export default LedgerBackCalcEditSlide;