import React from 'react' import { Modal, Row, Col, Button } from 'antd' import { inject, observer } from 'mobx-react'; import { WeaCheckbox } from 'ecCom' @inject('calculateStore') @observer export default class SelectFieldModal extends React.Component { constructor(props) { super(props) this.state = { fieldData: {} } } componentWillMount() { const {calculateStore: { getImportField } } = this.props; getImportField(this.props.id).then(data => { let fieldData = {}; let formulaItems = [] formulaItems = data.formulaItems if(this.props.fieldData.formulaItems) { formulaItems = this.props.fieldData.formulaItems } let inputItems = [] inputItems = data.inputItems if(this.props.fieldData.inputItems) { inputItems = this.props.fieldData.inputItems } fieldData.formulaItems = formulaItems; fieldData.inputItems = inputItems; this.setState({ fieldData }) this.fieldData = fieldData }) } // 公式项改变 handleFormalChange(item, value, flag) { item.checked = value == 1 ? true: false let fieldData = {...this.state.fieldData} if(flag) { // 公式项 fieldData.formulaItems.map(fieldItem => { if(item.salaryItemId == fieldItem.salaryItemId) { fieldItem.checked = item.checked } }) } else { // 输入项 fieldData.inputItems.map(fieldItem => { if(item.salaryItemId == fieldItem.salaryItemId) { fieldItem.checked = item.checked } }) } this.setState({ fieldData }) this.fieldData = fieldData } // 添加按钮点击回调 handleAddClick() { this.props.onAdd(this.fieldData) this.props.onCancel() } // 标题checkbox点击 handleTitleCheckboxChange(value, flag) { let checked = value == 1 ? true: false let fieldData = {...this.state.fieldData} if(flag === 'formula') { fieldData.formulaItems.map(fieldItem => { fieldItem.checked = checked }) } else if(flag === "input") { fieldData.inputItems.map(fieldItem => { fieldItem.checked = checked }) } this.setState({ fieldData }) this.fieldData = fieldData; } // 只显示已选中 showSelectedChange(value) { let checked = value == 1 ? true: false let fieldData = {...this.fieldData} if(checked) { if(fieldData.formulaItems) { fieldData.formulaItems = fieldData.formulaItems.filter(fieldItem => fieldItem.checked) } if(fieldData.inputItems) { fieldData.inputItems = fieldData.inputItems.filter(fieldItem => fieldItem.checked) } } this.setState({ fieldData }) } render() { const { fieldData } = this.state; return ( {this.props.onCancel()}} footer={null} >
添加表头字段
{this.handleTitleCheckboxChange(value, "formula")}}/>
{ fieldData.formulaItems && fieldData.formulaItems.map(item => ( { this.handleFormalChange(item, value, true) }}/> ))}
{this.handleTitleCheckboxChange(value, "input")}}/>
{ fieldData.inputItems && fieldData.inputItems.map(item => ( { this.handleFormalChange(item, value, true) }}/> ))}
{this.showSelectedChange(value)}}/>
) } }