| | |
| | | import React, {Component} from 'react' |
| | | import { Row, Col, Icon, Radio } from 'antd' |
| | | import { Row, Col, Icon, Radio, Input } from 'antd' |
| | | import './index.scss' |
| | | |
| | | const { Search } = Input |
| | | |
| | | class EditCardCell extends Component { |
| | | constructor(props) { |
| | |
| | | const { card } = this.state |
| | | this.setState({ |
| | | card: {...card, selected: !card.selected} |
| | | }, () => { |
| | | this.props.changeCard(this.state.card) |
| | | }) |
| | | } |
| | | |
| | |
| | | |
| | | this.state = { |
| | | dataSource: props.data, |
| | | type: props.type |
| | | selectCards: props.data.filter(item => item.selected), |
| | | type: props.type, |
| | | searchKey: '' |
| | | } |
| | | } |
| | | |
| | | getSelectedCard = () => { |
| | | let box = [] |
| | | this.state.dataSource.forEach((item, index) => { |
| | | box.push(this.refs['cellCard' + index].state.card) |
| | | changeCard = (item) => { |
| | | let cards = JSON.parse(JSON.stringify(this.state.selectCards)) |
| | | let isAdd = true |
| | | cards = cards.map(card => { |
| | | if (card.field === item.field) { |
| | | isAdd = false |
| | | return item |
| | | } else { |
| | | return card |
| | | } |
| | | }) |
| | | return box |
| | | if (isAdd) { |
| | | cards.push(item) |
| | | } |
| | | this.setState({ |
| | | selectCards: cards |
| | | }) |
| | | } |
| | | |
| | | render() { |
| | |
| | | |
| | | return ( |
| | | <div className="common-modal-edit-card"> |
| | | <Row className="search-row"> |
| | | <Col span={8}> |
| | | <Search placeholder="请输入字段名" onSearch={value => {this.setState({searchKey: value})}} enterButton /> |
| | | </Col> |
| | | </Row> |
| | | <Row> |
| | | {dataSource.map((item, index) => ( |
| | | <Col key={index} span={8}> |
| | | <EditCardCell ref={'cellCard' + index} type={type} card={item} /> |
| | | </Col> |
| | | ))} |
| | | {dataSource.map((item, index) => { |
| | | if (item.field.toLowerCase().indexOf(this.state.searchKey.toLowerCase()) >= 0) { |
| | | return ( |
| | | <Col key={index} span={8}> |
| | | <EditCardCell ref={'cellCard' + index} type={type} card={item} changeCard={this.changeCard} /> |
| | | </Col> |
| | | ) |
| | | } else { |
| | | return '' |
| | | } |
| | | })} |
| | | </Row> |
| | | </div> |
| | | ) |