import React, { Component } from 'react'
import './pointsItem.css'
import { Icon, Modal } from 'semantic-ui-react'
import { DatePicker, Space } from 'antd'
import locale from 'antd/lib/date-picker/locale/zh_CN'
import { isObjEmpty } from '../../utils/common'
import ApprovalBean from '../../model/ApprovalBean'
import moment from 'moment'
import 'moment/locale/zh-cn'
export default class PointsItem extends Component {
componentDidMount () {
let { mApproval } = this.state
this.setState({
mApproval: this.props.approval,
approvalAble: this.props.approvalAble,
})
let options = []
let datas = mApproval.datas
if (!isObjEmpty(datas)) {
for (let i = 0; i < datas.length; i++) {
options.push(datas[i].display)
}
}
this.setState({
selectList: options,
inputValue: mApproval.values,
})
}
componentWillReceiveProps () {
this.componentDidMount()
}
constructor () {
super()
this.state = {
modalOpen: false,
selectList: [],
inputValue: '',
mApproval: new ApprovalBean(),
approvalAble: true,
}
}
render () {
let valueItem = ''
const dateFormat = 'YYYY-MM-DD'
const { inputValue, selectList, mApproval, approvalAble } = this.state
if (approvalAble == false) {
valueItem =
{mApproval.values}
} else if (mApproval.isSelect()) {
let placeHolder = ''
if (mApproval.mustInput) {
placeHolder = '请选择(必选)'
} else {
placeHolder = '请选择(非必选)'
}
if (mApproval.inputType() == 2) {
//日期选择框
let defaultDate = inputValue
if (!isObjEmpty(inputValue)) {
defaultDate = ''
} else {
defaultDate = moment(defaultDate, 'YYYY-MM-DD')
if (!defaultDate._isValid) {
defaultDate = ''
}
}
valueItem =
} else {
//弹框选择
const { modalOpen } = this.state
let modalItems = []
for (let i = 0; i < selectList.length; i++) {
modalItems.push({selectList[i]}
)
}
valueItem =
}
open={modalOpen}
onClose={this.modalClose}
size='small'>
{modalItems}
}
} else {
let placeHolder = ''
if (mApproval.mustInput) {
placeHolder = '请输入(必填)'
} else {
placeHolder = '请输入(非必填)'
}
if (mApproval.dfType == 'N') {
//数字输入框
valueItem =
} else {
//文本输入框
valueItem =
}
}
/*switch (this.props.type) {
case '1':
//输入框
valueItem =
break
case '2':
//日期选择框
valueItem =
break
case '3':
//弹框选择
const {modalOpen, selectList} = this.state
let modalItems = []
for (let i = 0; i < selectList.length; i++) {
modalItems.push({selectList[i]}
)
}
valueItem =
}
open={modalOpen}
onClose={this.modalClose}
size='small'>
{modalItems}
break
default:
valueItem =
break
}*/
return
{mApproval.caption}
{valueItem}
}
numKeyPress = (event) => {
const invalidChars = ['-', '+', 'e', '.', 'E']
if (invalidChars.indexOf(event.key) !== -1) {
event.preventDefault()
}
}
modalClose = () => {
this.setState({
modalOpen: false,
})
}
modalSelect = (index) => {
const { selectList } = this.state
this.setState({
inputValue: selectList[index],
modalOpen: false,
}, () => {
this.props.valueListener(this.props.approval.type, this.props.index,
this.state.inputValue, false)
})
}
inputChange = (e) => {
this.setState({
inputValue: e.target.value,
}, () => {
this.props.valueListener(this.props.approval.type, this.props.index,
this.state.inputValue, false)
})
}
onDatePicker = (e, dateString) => {
this.setState({
inputValue: dateString,
}, () => {
this.props.valueListener(this.props.approval.type, this.props.index,
this.state.inputValue, false)
})
}
onSelectClick = () => {
this.setState({
modalOpen: true,
})
}
}