import React from "react"; import { Button, Col, Row } from "antd"; import { inject, observer } from "mobx-react"; import { WeaDatePicker, WeaDialog, WeaError, WeaInput, WeaSelect } from "ecCom"; import { notNull } from "../../util/validate"; import "./index.less"; @inject("calculateStore") @observer export default class baseFormModal extends React.Component { constructor(props) { super(props); this.state = { salaryMonthStr: "", inited: false, selectOptions: [], salarySob: "", description: "", loading: false }; } componentWillMount() { const { calculateStore } = this.props; const { salaryacctGetForm } = calculateStore; salaryacctGetForm().then(data => { this.setState({ inited: true, selectOptions: _.isEmpty(data.salarySobs) ? [{ key: "", showname: "" }] : [{ key: "", showname: "" }, ..._.map(data.salarySobs, it => ({ key: String(it.id), showname: it.name }))] }); }); } handleSelectChange(value) { this.setState({ salarySob: value }); } // 保存回调 handleSave() { if (!this.validate()) { return; } let params = { salaryMonthStr: this.state.salaryMonthStr, salarySobId: this.state.salarySob, description: this.state.description }; const { calculateStore: { saveBasic } } = this.props; this.setState({ loading: true }); saveBasic(params).then((id) => { this.setState({ loading: false }); this.props.onCancel(); this.props.onRefresh(); window.open("/spa/hrmSalary/static/index.html#/main/hrmSalary/calculateDetail?id=" + id); }).catch(()=>{ this.setState({ loading: false }); }) } validate() { if (!notNull(this.state.salaryMonthStr) && !notNull(this.state.salarySob)) { this.refs.weaError.showError(); this.refs.weaError1.showError(); return false; } if (!notNull(this.state.salaryMonthStr)) { this.refs.weaError.showError(); return false; } else if (!notNull(this.state.salarySob)) { this.refs.weaError1.showError(); return false; } return true; } render() { const { description, loading } = this.state; return ( { this.props.onCancel(); }} buttons={[ ]} > 薪酬所属月 { if (value === "") this.refs.weaError.showError(); this.setState({ salaryMonthStr: value }); }} /> 核算账套 { this.state.inited && { if (value === "") this.refs.weaError1.showError(); this.handleSelectChange(value); }} value={this.state.salarySob} style={{ width: "100%" }}/> } 备注 this.setState({ description: value })}/> ); } }