import React, {Component} from 'react'
|
import { Row, Col, Icon, Radio } from 'antd'
|
import './index.scss'
|
|
class EditCardCell extends Component {
|
constructor(props) {
|
super(props)
|
|
this.state = {
|
selected: false,
|
card: props.card
|
}
|
}
|
|
changeSelect = () => {
|
this.setState({
|
selected: !this.state.selected
|
})
|
}
|
|
changeType = (e) => {
|
console.log(e.target.value)
|
const { card } = this.state
|
this.setState({
|
card: {...card, type: e.target.value}
|
})
|
}
|
|
render() {
|
const { card } = this.state
|
return (
|
<div className={'ant-card ant-card-bordered ' + (this.state.selected ? 'selected' : '')} >
|
<div className="base" onClick={this.changeSelect}>
|
<Icon type="check" />
|
<p>字段名: {card.label}</p>
|
<p>提示文字: {card.field}</p>
|
</div>
|
<label>类型:</label>
|
<Radio.Group onChange={this.changeType} value={this.state.card.type} disabled={!this.state.selected}>
|
<Radio value="text">text</Radio>
|
<Radio value="select">select</Radio>
|
<Radio value="date">date</Radio>
|
</Radio.Group>
|
</div>
|
)
|
}
|
}
|
|
class EditCard extends Component {
|
constructor(props) {
|
super(props)
|
|
this.state = {
|
dataSource: props.data,
|
title: props.title
|
}
|
}
|
|
getSelectedCard = () => {
|
let box = []
|
this.state.dataSource.forEach((item, index) => {
|
if (this.refs['cellCard' + index].state.selected) {
|
box.push(this.refs['cellCard' + index].state.card)
|
}
|
})
|
return box
|
}
|
|
render() {
|
const { dataSource, title } = this.state
|
|
return (
|
<div className="common-modal-edit-card">
|
{title && <h4>{title}</h4>}
|
<Row>
|
{dataSource.map((item, index) => (
|
<Col key={index} span={8}>
|
<EditCardCell ref={'cellCard' + index} card={item} />
|
</Col>
|
))}
|
</Row>
|
</div>
|
)
|
}
|
}
|
|
export default EditCard
|