salary-management-front/pc4mobx/hrmSalary/pages/socialSecurityBenefits/programme/defaultSlideForm.js

234 lines
8.6 KiB
JavaScript

import React from 'react'
import { WeaSelect, WeaInput } from 'ecCom'
import { Table, Row, Col, Switch } from 'antd'
import { insertUpdateColumns } from './columns'
import { inject, observer } from 'mobx-react';
import SmallTab from '../../../components/smallTab'
import "./index.less"
import RequiredLabelTip from '../../../components/requiredLabelTip';
@inject('programmeStore')
@observer
export default class DefaultSlideForm extends React.Component {
constructor(props) {
super(props)
this.state = {
value: "SCHEME_TOWN",
selectItem: "个人",
dataSource: {}
}
insertUpdateColumns.map(item => {
if(item.dataIndex == "isPayment") {
item.render = (text, record) => {
return (<Switch checked={text} onChange={(e) => {
this.updateDataSource(record, e, "isPayment")
}}/>)
}
} else if(item.dataIndex == "validNum") {
let options = [
{
key: "0",
selected: false,
showname: "0"
},
{
key: "1",
selected: false,
showname: "1"
},
{
key: "2",
selected: true,
showname: "2"
}
]
item.render = (text, record) => {
return (
<WeaSelect
options={options}
value={text}
onChange={v => {
this.updateDataSource(record, v, "validNum")
}}
/>
)
}
} else if(item.dataIndex == "rententionRule") {
let options = [
{
key: "1",
selected: false,
showname: "原始数据"
},
{
key: "2",
selected: false,
showname: "四舍五入"
},
{
key: "3",
selected: false,
showname: "向上舍入"
},
{
key: "4",
selected: false,
showname: "向下舍入"
},
]
item.render = (text, record) => {
return (
<WeaSelect
options={options}
value={text}
onChange={v => {
this.updateDataSource(record, v, "rententionRule")
}}
/>
)
}
} else if(item.dataIndex == "paymentProportion") {
item.render = (text, record) => {
return (
<WeaInput value={text} onChange={(v) => {
this.updateDataSource(record, v, "paymentProportion")
}}/>
)
}
} else if(item.dataIndex == "fixedCost") {
item.render = (text, record) => {
return (
<WeaInput value={text} onChange={(v) => {
this.updateDataSource(record, v, "fixedCost")
}} />
)
}
}
})
}
updateDataSource(record, e, key) {
const { programmeStore: {defaultCompanyDataSource, defaultPersonDataSource, setDefaultPersonDataSource, setDefaultCompanyDataSource}} = this.props;
let result = {...record}
result[key] = e
if(this.state.selectItem == "个人") {
let dataSource = [...defaultPersonDataSource];
dataSource = dataSource.map(item => {
if(item.id == result.id)
return result;
else
return item;
})
setDefaultPersonDataSource(dataSource)
} else {
let dataSource = [...defaultCompanyDataSource];
dataSource = dataSource.map(item => {
if(item.id == result.id)
return result;
else
return item;
})
setDefaultCompanyDataSource(dataSource)
}
}
componentWillMount() {
const { programmeStore } = this.props;
const { getForm, selectedKey, defaultPersonDataSource } = programmeStore
}
render() {
const { programmeStore } = this.props;
const { defaultPersonDataSource, defaultCompanyDataSource, selectedKey } = programmeStore
const { dataSource } = this.state;
const options = [
{
key: "SCHEME_TOWN",
selected: true,
showname: "城镇"
},
{
key: "SCHEME_VILLAGE",
selected: false,
showname: "农村"
}
]
const handleSmallTabChange = (item) => {
// let paymentArea = item == "paymentArea" ? "1": "2"
// let requestParams = {...this.props.requestParams}
// requestParams.paymentArea = paymentArea
this.setState({
selectItem: item.value,
})
// this.props.onChange(requestParams)
}
return (
<div className="defaultSlideForm">
<div>
<Row style={{lineHeight: "40px"}}>
<Col span={6}>
缴纳类型<RequiredLabelTip />
</Col>
<Col span={18}>
<WeaSelect
style={{width: "200px"}}
options={options}
value={this.props.requestParams.paymentType}
onChange={(v, showname) => {
let requestParams = {...this.props.requestParams}
requestParams.paymentType = v
this.props.onChange(requestParams)
}}
/>
</Col>
</Row>
<Row style={{lineHeight: "40px"}}>
<Col span={6}>
方案名称<RequiredLabelTip />
</Col>
<Col span={18}>
<WeaInput value={this.props.requestParams.schemeName} onChange={(value) => {
let requestParams = {...this.props.requestParams}
requestParams.schemeName = value
this.props.onChange(requestParams)
}}/>
</Col>
</Row>
<Row style={{lineHeight: "40px"}}>
<Col span={6}>
备注
</Col>
<Col span={18}>
<WeaInput value={this.props.requestParams.remarks} onChange={(value) => {
let requestParams = {...this.props.requestParams}
requestParams.remarks = value
this.props.onChange(requestParams)
}}/>
</Col>
</Row>
</div>
<div className="tableBar">
<div>
<SmallTab items={[{title: "个人", value: "个人"}, {title: '公司', value: '公司'}]} onChange={(item) => {handleSmallTabChange(item)}} />
</div>
<div className="tableWrapper">
{
this.state.selectItem == "个人" ?
<Table dataSource={defaultPersonDataSource} columns={insertUpdateColumns} />
:
<Table dataSource={defaultCompanyDataSource} columns={insertUpdateColumns} />
}
</div>
</div>
</div>
)
}
}