63 lines
1.7 KiB
JavaScript
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>
|
|
);
|
|
}
|
|
}
|