salary-management-front/pc4mobx/hrmSalary/pages/payroll/stepForm/baseInformForm.js

99 lines
2.7 KiB
JavaScript

import React from "react";
import { Col, Row } from "antd";
import { WeaInput, WeaSelect } from "ecCom";
import { inject, observer } from "mobx-react";
import { toJS } from 'mobx';
import "./index.less";
@inject("payrollStore")
@observer
export default class BaseInformForm extends React.Component {
constructor(props) {
super(props);
this.state = {
inited: false,
options: [],
request: {}
};
}
componentWillMount() {
const { payrollStore } = this.props;
const { getPayrollBaseForm } = payrollStore;
getPayrollBaseForm(this.props.id).then(data => {
this.setState(
{
options: _.isEmpty(toJS(data.salarySobOptions)) ? [{ key: "", showname: "" }] : [{
key: "",
showname: ""
}, ...toJS(data.salarySobOptions)],
request: data.templateBaseData
},
() => {
this.setState({
inited: true
});
}
);
});
}
hanldeChange(params) {
let request = { ...this.state.request, ...params };
this.setState({
request
});
this.props.onChange && this.props.onChange(request);
}
render() {
const { request, options } = this.state;
const { salarySob, name, description } = request;
return (
<div className="baseInformForm">
<div className="formItemWrapper">
<div className="itemTitle">基础信息</div>
<div className="formWrapper">
<Row className="formItem">
<Col span={8}>
薪资账套
</Col>
<Col span={16}>
{this.state.inited &&
<WeaSelect
viewAttr={3}
options={options}
value={salarySob ? salarySob : ""}
style={{ width: "200px" }}
onChange={value => this.hanldeChange({ salarySob: value })}/>}
</Col>
</Row>
<Row className="formItem">
<Col span={8}>
工资单模板名称
</Col>
<Col span={16}>
<WeaInput
value={name}
viewAttr={3}
onChange={value => this.hanldeChange({ name: value })}
/>
</Col>
</Row>
<Row className="formItem">
<Col span={8}>备注</Col>
<Col span={16}>
<WeaInput
value={description}
onChange={value => this.hanldeChange({ description: value })}
/>
</Col>
</Row>
</div>
</div>
</div>
);
}
}