import React, { Component } from 'react'; import { connect } from 'dva'; import { Form, Input, Select, Button, Drawer, DatePicker, Checkbox, Row, Col, message, Modal } from 'antd'; import * as ajax from '../../../services/api'; import moment from 'moment'; import './less/report.less'; // import Drawer from 'react-motion-drawer'; const FormItem = Form.Item; const { Option } = Select; const confirm = Modal.confirm; const dateFormat = 'YYYY-MM-DD'; @connect(state => ({ profile: state.profile })) @Form.create() export default class AssOverseasDetails extends Component { constructor(props, context) { super(props, context); this.state = { open2: this.props.visible, loading: false, overseaManageId: this.props.overseaManageId, //传过来的方案id nationality: [], manageList: [], securityRange: [], securityRangeContentArrays: [], //安保范围数组 overseasList: { nationality: '', recordPoliceName: '', recordDate: '', startDate: '', endDate: '', securityRange: [], securityRangeContentArrays: [], manageMode: '' }, fan: false }; } componentWillReceiveProps(props) { // if (this.state.open2 !== props.visible) { this.setState( { open2: props.visible, overseaManageId: props.overseaManageId } ); // this.renderOverseas(); // this.getDictionaryData(); //获取所有所需要字典数据 // } } componentDidMount() { this.props.onRef(this); this.renderOverseas(); this.getDictionaryData(); //获取所有所需要字典数据 } //获取所有所需要字典数据 getDictionaryData = () => { ajax .publicCommonDictGetDictByCodeTypes({ codeTypes: ['nationality', 'manageMode', 'securityRange'] }) .then(data => { //判断获取数据是否为空 if (data.data) { this.setState({ nationality: data.data.nationality, //国籍选择 manageList: data.data.manageMode, securityRange: data.data.securityRange }); } }); }; //重置表单 resetFrom = () => { const { setFieldsValue } = this.props.form; setFieldsValue({ nationality: '', recordPoliceName: '', recordDate: null, startDate: null, endDate: '', securityRange: [], securityRangeContentArrays: [], manageMode: '' }); }; renderOverseas = () => { if (this.state.overseaManageId !== '00') { ajax .comStockGetOverseaManageById({ overseaManageId: this.state.overseaManageId }) .then(data => { this.setState({ overseasList: data.data }); }); } }; //国家下拉选择值 renderNationality = () => { return this.state.nationality.map((val, key) => { return ( ); }); }; //国家选中值 handleChangeNation = value => { this.setState({ nation: value }); }; handleSubmit = e => { e.preventDefault(); this.props.form.validateFieldsAndScroll((err, values) => { if (!err) { values.recordDate = values['recordDate'].format('YYYY-MM-DD'); values.startDate = values['startDate'].format('YYYY-MM-DD'); values.endDate = values['endDate'].format('YYYY-MM-DD'); values.securityRangeContentArrays = values.securityRange; // values.comId = this.state.comId; if (this.state.crossManageId !== '00') { values.overseaManageId = this.state.overseaManageId; } const d1 = new Date(values.startDate.replace(/\-/g, '/')); const d2 = new Date(values.recordDate.replace(/\-/g, '/')); const d3 = new Date(values.endDate.replace(/\-/g, '/')); if (d1 < d2) { message.error('海外经营开始日期不能早于备案日期'); } else if (d3 < d1) { message.error('经营结束日期不能早于经营开始日期'); } else { this.setState({ loading: true }); ajax.stockSubmitComStockSaveOverseaManage({ ...values }).then( data => { // message.success('海外经营详情保存成功!'); this.setState( { fan: true, loading: false }, () => { this.props.close(); } ); }, err => { this.setState({ loading: false }); } ); } } }); }; callback = key => { }; onChangeCheck = checkedValues => { }; //经营模式选择 manageMode = () => { return this.state.manageList.map((val, key) => { return ( ); }); }; //安保范围选择 renderList = () => { return this.state.securityRange.map((val, key) => { return ( // // {val.label} //
{val.label}
); }); }; fan = () => { let _that = this; if (_that.state.fan) { // _that.props.history.push(`/enterprise/reported`); _that.props.close(); } else { confirm({ title: '当前信息未保存,是否确认返回?', okText: '确认', cancelText: '取消', onOk() { // _that.props.history.push(`/enterprise/reported`); // _that.props.close(); // _that.setState({ // open2: false // }); _that.props.onChange(false); }, onCancel() { console.log('Cancel'); } }); } }; render() { const { submitting } = this.props; const { getFieldDecorator } = this.props.form; const formItemLayout = { labelCol: { xs: { span: 24 }, sm: { span: 7 } }, wrapperCol: { xs: { span: 24 }, sm: { span: 12 }, md: { span: 10 } } }; // const submitFormLayout = { // wrapperCol: { // xs: { span: 24, offset: 0 }, // sm: { span: 10, offset: 7 } // } // }; return ( { this.props.onChange(false); }} maskClosable={false} // 不允许点击遮罩关闭 >
{getFieldDecorator('nationality', { initialValue: this.state.overseasList.nationality, rules: [{ required: true, message: '请选择涉外经营国别' }] })( )} {getFieldDecorator('recordPoliceName', { initialValue: this.state.overseasList.recordPoliceName, rules: [ { required: true, message: '请输入备案公安机关名称' }, { pattern: /^[\u4E00-\u9FA5\(\)]{1,20}$/, message: '请输入中文最大长度20' } ] })()} {this.state.overseaManageId === '00' ? ( {getFieldDecorator('recordDate', { rules: [ { required: true, message: '请选择备案日期' } ] })()} ) : ( {getFieldDecorator('recordDate', { initialValue: moment( this.state.overseasList.recordDate, dateFormat ), rules: [ { required: true, message: '请选择备案日期' } ] })()} )} {this.state.overseaManageId === '00' ? ( {getFieldDecorator('startDate', { rules: [ { required: true, message: '请选择海外经营开始日期' } ] })()} ) : ( {getFieldDecorator('startDate', { initialValue: moment( this.state.overseasList.startDate, dateFormat ), rules: [ { required: true, message: '请选择海外经营开始日期' } ] })()} )} {this.state.overseaManageId === '00' ? ( {getFieldDecorator('endDate', { rules: [ { required: true, message: '请选择海外经营结束日期' } ] })()} ) : ( {getFieldDecorator('endDate', { initialValue: moment( this.state.overseasList.endDate, dateFormat ), rules: [ { required: true, message: '请选择海外经营结束日期' } ] })()} )} {getFieldDecorator('securityRange', { initialValue: this.state.overseasList .securityRangeContentArrays, rules: [ { required: true, message: '请选择' } ] })( {this.renderList()} )} {getFieldDecorator('manageMode', { initialValue: this.state.overseasList.manageMode, rules: [{ required: true, message: '请选择经营模式' }] })( )} {/* */}
); } }