import React, { PureComponent } from 'react'; import { connect } from 'dva'; import moment from 'moment'; import style from 'styled-components'; import { Input, Button, message, DatePicker, Form, Modal, TreeSelect, Drawer, Select } from 'antd'; // import Drawer from 'react-motion-drawer'; import { getPerGoodDeedsById, updatePerGoodDeeds, getTreeperBydepart, selectPerIdCardNum } from '../../../services/api'; import $perModal from '../../../utils/modal/perModal'; const FormItem = Form.Item; const dateFormat = 'YYYY-MM-DD'; const { TextArea } = Input; const { Option } = Select; const config = { rules: [ { type: 'object', required: false, message: '请选择日期!' } ] }; //首次验证trim() function validateTrim(v){ return v === undefined ? v : v.trim(); } @connect(state => ({ profile: state.profile })) @Form.create() export default class EditIncentive extends PureComponent { constructor(props, context) { super(props, context); this.state = { openEdit: this.props.visiable, goodDeedsId: 0, // treeData: [ // //树 // { title: '', key: '' } // ], showPerId: 0, perId: '', canEditFlag: '', //是否有离职人员 goodDeeds: { idCardNo: '', name: '', happenDate: '', goodContent: '', remark: '' } }; } /******************************生命周期******************************/ componentWillReceiveProps(nextProps) { this.setState({ openEdit: nextProps.visible }); // if (nextProps.goodDeedsId !== this.state.goodDeedsId) { // if (nextProps.goodDeedsId === 0 || nextProps.goodDeedsId === undefined) { // return; // } // this.setState({ // goodDeedsId: nextProps.goodDeedsId // }); // this.renderDate(nextProps.goodDeedsId); // } if(this.state.openEdit !== nextProps.visible) { if (nextProps.goodDeedsId === 0 || nextProps.goodDeedsId === undefined) { return; } this.setState({ goodDeedsId: nextProps.goodDeedsId, // treeData:nextProps.treeData }); this.renderDate(nextProps.goodDeedsId); } } componentDidMount() { // getTreeperBydepart({}).then( // response => { // console.log(response, 'getTreeperBydepart-response'); // this.setState({ treeData: response.data }); // }, // err => { // console.log(err, 'getTreeperBydepart-err'); // } // ); } renderDate = pro => { console.log('id的值', pro); getPerGoodDeedsById({ goodDeedsId: pro }).then( data => { //人员处理 if (data.data) { const { setFieldsValue } = this.props.form; setFieldsValue({ perId: data.data[0].perId, perName: data.data[0].name, idCardNo: data.data[0].idCardNo || '', happenDate: data.data[0].happenDate || '', goodContent: data.data[0].goodContent || '', remark: data.data[0].remark || '' }); this.setState({ goodDeedsType: data.data[0].goodDeedsType, canEditFlag: data.data[0].canEditFlag || '', goodDeeds: { idCardNo: data.data[0].idCardNo || '', happenDate: data.data[0].happenDate || '', goodContent: data.data[0].goodContent || '', remark: data.data[0].remark || '' } }); } }, err => { console.log(err); } ); }; hideModal = () => { this.setState({ visible: true }); const values = this.props.form.getFieldsValue(); const rangeValue = values['happenDateDs']; values.happenDate = rangeValue.format('YYYY-MM-DD'); console.log(values); console.log(this.state.goodDeeds); if(values.idCardNo !== this.state.goodDeeds.idCardNo || values.happenDate!== this.state.goodDeeds.happenDate || values.goodContent!== this.state.goodDeeds.goodContent || values.remark!== this.state.goodDeeds.remark) { this.setState({ visible: true, }); }else{ this.handleModalOk(); } }; handleModalOk = e => { console.log(e); this.setState({ visible: false, openEdit: false }); }; handleModalCancel = e => { console.log(e); this.setState({ visible: false }); }; //树形选择器改编 handleTreeSelectChange = (value, label, extra) => { const lastValue = this.state.perId; if ( extra.triggerNode && extra.triggerNode.props && extra.triggerNode.props.treeType === '1' ) { console.log('部门'); this.setState({ perId: lastValue }, this.selectPerIdCardNum()); } else { this.setState({ perId: value }, this.selectPerIdCardNum()); } }; selectPerIdCardNum = () => { selectPerIdCardNum({ perId: this.state.perId }).then( response => { console.log(response, 'selectPerIdCardNum-response'); const { setFieldsValue } = this.props.form; setFieldsValue({ idCardNo: response.data }); }, err => { console.log(err, 'selectPerIdCardNum-err'); } ); }; // 判断日期 disabledStartDate = (currentDate) =>{ return currentDate && currentDate > moment(parseInt(sessionStorage.getItem('requestDate'))).endOf('day'); } //表单提交 handleGoodDeedsSubmit = e => { e.preventDefault(); this.props.form.validateFields((err, values) => { if (!err) { const rangeValue = values['happenDateDs']; values.happenDate = rangeValue.format('YYYY-MM-DD'); values.goodDeedsId = this.state.goodDeedsId; updatePerGoodDeeds(values).then( data => { console.log(data); this.setState({ openEdit: false }); this.props.tableUpdate(); }, err1 => { console.log(err1); } ); } }); }; render() { const formItemLayout = { labelCol: { xs: { span: 24 }, sm: { span: 7 } }, wrapperCol: { xs: { span: 24 }, sm: { span: 17 }, md: { span: 17 } } }; const { getFieldDecorator, setFieldsValue, getFieldValue } = this.props.form; console.log(this.state.openEdit) return ( {/*好人好事详情*/} { this.props.onChange(openEdit); this.setState({ openEdit }); }} onClose={()=>{ this.setState({ openEdit:false }); }} destroyOnClose >
{getFieldDecorator('perId', { rules: [ { required: true, message: '请选择被表彰奖励人员' } ] })()} {getFieldDecorator('perName', { rules: [ { required: true, message: '请选择被表彰奖励人员' } ] })( { $perModal({ value: getFieldValue('perId'), type: 'radio', onOk: (values, close) => { const { perId, name, idCardNo } = values[0]; setFieldsValue({ perId, perName: name, idCardNo }); close(); } }); }} />)} {getFieldDecorator('goodDeedsType', { initialValue: this.state.goodDeedsType, rules: [ { transform: (transformeValue) => { return validateTrim(transformeValue); } }, { required: true, message: '请选择', } ] })( )} {getFieldDecorator('idCardNo', { initialValue: this.state.goodDeeds.idCardNo, rules: [ { required: true,message:"请输入身份证号" } ] })()} {getFieldDecorator( 'happenDateDs', { initialValue: moment( this.state.goodDeeds.happenDate, dateFormat ), rules: [ { required: true, message: '请选择发生日期' } ] }, config )( )} {getFieldDecorator('goodContent', { initialValue: this.state.goodDeeds.goodContent, rules: [ { transform:(transformeValue) =>{ return validateTrim(transformeValue); } }, { required: true, message: '请填写好人好事内容' } ] })(