salary-management-front/pc4mobx/hrmSalary/pages/salaryItem/customSalaryItemSlide.js

63 lines
1.7 KiB
JavaScript

import React from "react";
import FormalFormModal from "./formalFormModal";
import SalaryItemForm from "./salaryItemForm";
import "./index.less";
export default class CustomSalaryItemSlide extends React.Component {
constructor(props) {
super(props);
this.state = {
showForm: false,
formalModalVisible: false,
salaryItemName: ""
};
}
handleChange = (params) => {
this.props.onChange({ ...this.props.request, ...params });
};
handleShowFormal = (salaryItemName) => {
this.setState({
formalModalVisible: true,
salaryItemName
});
};
// 保存公式成功回调
handleSaveFormal = (data) => {
this.handleChange({
formulaId: data.id, formulaContent: data.formula,
originFormulaContent: data.referenceType === "formula" ? data.formula : "",
originSqlContent: data.referenceType === "sql" ? data.formula : ""
});
};
render() {
const { request } = this.props;
const { valueType, dataType, formulaId } = request;
const { formalModalVisible, salaryItemName } = this.state;
return (
<div className="customSalaryItemSlide">
<SalaryItemForm {...this.props} onChangeFieldsItem={this.handleChange} onShowFormal={this.handleShowFormal}/>
{formalModalVisible &&
<FormalFormModal
name={salaryItemName}
formulaId={formulaId}
visible={formalModalVisible}
valueType={valueType}
dataType={dataType}
onSaveFormal={data => {
this.handleSaveFormal(data);
}}
onCancel={() =>
this.setState({
formalModalVisible: false,
salaryItemName: ""
})}
/>}
</div>
);
}
}