import React from "react"; import { WeaFormItem, WeaInput, WeaSearchGroup, WeaSelect } from "ecCom"; import { inject, observer } from "mobx-react"; import { getReplenishRuleSetOptions } from "../../../apis/payroll"; import { toJS } from "mobx"; @inject("payrollStore") @observer export default class BaseInformForm extends React.Component { constructor(props) { super(props); this.state = { inited: false, options: [], replenishRuleOptions: [], request: {} }; } componentWillMount() { const { payrollStore } = this.props; const { getPayrollBaseForm } = payrollStore; const templateBaseData = window.localStorage.getItem("template-basedata") || "{}"; getPayrollBaseForm(this.props.id).then(data => { this.setState( { replenishRuleOptions: _.map(data.replenishRuleSetOption, it => ({ key: it.id, showname: it.content })), options: _.isEmpty(toJS(data.salarySobOptions)) ? [{ key: "", showname: "" }] : [{ key: "", showname: "" }, ...toJS(data.salarySobOptions)], request: { ...data.templateBaseData, reissueRule: data.templateBaseData.replenishRule ? "1" : "0", ...JSON.parse(templateBaseData) } }, () => { this.props.onChange && this.props.onChange(this.state.request); this.setState({ inited: true }); } ); }); JSON.parse(templateBaseData).salarySob && this.getReplenishRuleSetOptions({ salarySobId: JSON.parse(templateBaseData).salarySob }); } hanldeChange = (params) => { let request = { ...this.state.request, ...params }; this.setState({ request }, () => { if (this.state.request.reissueRule === "1" && this.state.request.salarySob) { // TODO:获取规则设置枚举项 this.getReplenishRuleSetOptions(); } }); this.props.onChange && this.props.onChange(request); }; getReplenishRuleSetOptions = (params = {}) => { const { request } = this.state; getReplenishRuleSetOptions({ salarySobId: request.salarySob, ...params }).then(({ status, data }) => { if (status && !_.isEmpty(data)) { this.setState({ replenishRuleOptions: _.map(data, it => ({ key: it.id, showname: it.content })) }); } }); }; render() { const { request, options, replenishRuleOptions } = this.state; const { salarySob, name, description, replenishName, replenishRule, reissueRule } = request; return ( { this.state.inited && this.hanldeChange({ salarySob: value })}/> } this.hanldeChange({ name: value })} /> this.hanldeChange({ replenishName: value })} /> this.hanldeChange({ reissueRule: value })} /> { reissueRule !== "0" && this.hanldeChange({ replenishRule: value })} /> } this.hanldeChange({ description: value })} /> ); } }