import React,{Component} from 'react'; import {Button, Form, Input, message, Modal, Radio, Spin, InputNumber} from "antd"; import propType from 'prop-types'; import $ from "jquery"; const layout = { labelCol: { span: 8, }, wrapperCol: { span: 16, }, }; const formItemLayout = { labelCol: { span: 8 }, wrapperCol: { span: 14 }, }; class ApplyPaymentModal extends Component{ // static propTypes = { // visible: PropTypes.bool.isRequired, // changeVisible: PropTypes.func.isRequired, // } // // static defaultProps = { // visible: false, // changeVisible: ()=>{}, // } constructor(props) { super(props); this.state={ loading: false, paymentStatus: 0, totalPrice: -1, } } //申请付款 handleSubmit(e){ e.preventDefault(); this.props.form.validateFieldsAndScroll((err, values) => { if (err) { return; } this.setState({ loading: true }) values.tid = this.props.tid; if(this.props.previewPayInfor.nodeId){ //催款 values.nodeId = this.props.previewPayInfor.nodeId; values.chooseType = 1; //支付选择 0第三方 1催款 2官费 values.tpcId = this.props.previewPayInfor.cid; //第三方机构id }else{ values.chooseType = 0 //支付选择 0第三方 1催款 2官费 values.tpcId = this.props.previewPayInfor.id; //第三方机构id } if(this.props.type === 2){ values.chooseType = 2; //支付类型 0第三方 1催款 2官费 } values.companyName = values.companyName.split('-')[0]; $.ajax({ method: 'POST', dataType: 'json', crossDomain: false, url: globalConfig.context + '/api/admin/company/addOrderPayment', data: values, }).done( function (data) { this.setState({ loading: false, }) if (!data.error.length) { this.props.changeVisible(); this.props.onRefresh(); message.success('申请成功!') } else { message.warning(data.error[0].message) } }.bind(this) ) }) } render() { const { getFieldDecorator,setFieldsValue } = this.props.form; const { previewPayInfor } = this.props; if(!previewPayInfor){ return; } return( <Modal maskClosable={false} footer={null} visible={this.props.visible} onCancel={() => { this.props.changeVisible(); }} > <Spin spinning={this.state.loading}> <div> <div> { this.props.type === 2 ? "支付供应商官费" : "支付供应商费用" } </div> <Form {...layout} name="basic" initialValues={{ remember: true, }} onSubmit={(e)=>{ this.handleSubmit(e) }} > <Form.Item {...formItemLayout} style={{ display:'flex' }} label="付款单位/个人:" > {getFieldDecorator('companyName', { initialValue: previewPayInfor.companyName, rules: [{ required: false, message: '请输入付款单位/个人!', }], })( <Input style={{ width: '200px' }} placeholder="请输入付款单位/个人" /> )} </Form.Item> {/* 0正常 1专利 2软著 3审计 */} {this.props.projectType === 1 && this.props.patentType === 1 ?<Form.Item {...formItemLayout} style={{ display:'flex' }} label="支付状态:" > {getFieldDecorator('paymentStatus', { constructor: this.state.paymentStatus, rules: [{ required: false, message: '请选择支付状态!' }], })( <Radio.Group onChange={(e)=>{ this.setState({ paymentStatus: e.target.value }) if(e.target.value === 1){ setFieldsValue({ quantity:parseInt(previewPayInfor.quantity), applicationAmount:(previewPayInfor.partyAmount ? parseFloat(previewPayInfor.totalAmount) - parseFloat(previewPayInfor.partyAmount) : parseFloat(previewPayInfor.totalAmount))/2 }); } else if(e.target.value === 2){ setFieldsValue({ quantity:parseInt(previewPayInfor.quantity), applicationAmount:(previewPayInfor.partyAmount ? parseFloat(previewPayInfor.totalAmount) - parseFloat(previewPayInfor.partyAmount) : parseFloat(previewPayInfor.totalAmount)) }); } }}> <Radio value={0}>自定义</Radio> <Radio value={1}>半款</Radio> <Radio value={2}>全款</Radio> </Radio.Group> )} </Form.Item> : <div/>} {this.props.type !== 2 ? <Form.Item {...formItemLayout} style={{ display:'flex' }} label="单价(万元):" > {/*可以查看单价 正常 审计 专利买卖 软著 专利申请 打星号 */} { this.props.projectType === 2 || (this.props.projectType === 1 && this.props.patentType === 0)? '***' : getFieldDecorator('unitPrice', { initialValue:previewPayInfor.unitPrice, rules: [{ required: true, message: '请输入单价!' }], })( <Input disabled={true} style={{ width: '200px' }} placeholder="请输入单价" type={'number'}/> ) } </Form.Item> : <div/>} { this.props.type === 2 ? <Form.Item {...formItemLayout} style={{ display:'flex' }} label="官费(万元):" > <div>***</div> </Form.Item> : <div/> } {/* 0正常 1专利 2软著 3审计 */} { this.props.projectType === 1 || this.props.projectType === 2? <Form.Item {...formItemLayout} style={{ display:'flex' }} label="数量(个):" > {previewPayInfor.quantity} </Form.Item>: <Form.Item {...formItemLayout} style={{ display:'flex' }} label="数量(个):" > {getFieldDecorator('quantity', { initialValue: parseInt(previewPayInfor.quantity), rules: [{ required: false, message: '请输入數量!' }], })( <InputNumber min={0} onChange={(e)=>{ //软著 专利申请不需要计算,因为单价未知 if(!(this.props.projectType === 2 || (this.props.projectType === 1 && this.props.patentType === 0))){ let num = previewPayInfor.unitPrice * e; this.setState({ totalPrice: num }) } }} disabled={previewPayInfor.quantity <= 1 || this.props.projectType === 3} style={{ width: '200px' }} placeholder="请输入數量" type={'number'}/> )} </Form.Item> } <Form.Item {...formItemLayout} style={{ display:'flex' }} label="总价(万元):" > <div>{this.state.totalPrice > -1 ? this.state.totalPrice : previewPayInfor.totalAmount}</div> {/*{getFieldDecorator('totalPrice', {*/} {/* rules: [{ required: false, message: '请输入总价!' }],*/} {/*})(*/} {/* <Input disabled={true} style={{ width: '200px' }} placeholder="请输入总价" type={'number'}/>*/} {/*)}*/} </Form.Item> {/*<Form.Item*/} {/* {...formItemLayout}*/} {/* style={{*/} {/* display:'flex'*/} {/* }}*/} {/* label="已付(万元):"*/} {/*>*/} {/* {getFieldDecorator('totalPrice', {*/} {/* initialValue: previewPayInfor.partyAmount ? parseFloat(previewPayInfor.partyAmount) : 0,*/} {/* rules: [{ required: false, message: '请输入已付金额!' }],*/} {/* })(*/} {/* <Input disabled={true} style={{ width: '200px' }} placeholder="请输入已付金额" type={'number'}/>*/} {/* )}*/} {/*</Form.Item>*/} { this.props.projectType === 1 || this.props.projectType === 2 || this.props.type === 2? <Form.Item {...formItemLayout} style={{ display:'flex' }} label="本次申请支付数量:" > {getFieldDecorator('quantity', { initialValue: 1, rules: [{ required: false, message: '请输入本次申请支付数量!' }], })( <Input disabled={previewPayInfor.quantity <= 1 || this.state.paymentStatus !== 0} style={{ width: '200px' }} placeholder="请输入本次申请支付数量" type={'number'}/> )} </Form.Item> : <div/>} <Form.Item {...formItemLayout} style={{ display:'flex' }} label="本次申请支付金额(万元):" > {getFieldDecorator('applicationAmount', { initialValue:this.state.paymentStatus === 1 ? (previewPayInfor.partyAmount ? parseFloat(previewPayInfor.totalAmount) - parseFloat(previewPayInfor.partyAmount) : parseFloat(previewPayInfor.totalAmount)) / 2 : previewPayInfor.partyAmount ? parseFloat(previewPayInfor.totalAmount) - parseFloat(previewPayInfor.partyAmount) : parseFloat(previewPayInfor.totalAmount) , rules: [{ required: true, message: '请输入本次申请支付金额!' }], })( <Input disabled={this.state.paymentStatus !== 0} style={{ width: '200px' }} placeholder="请输入本次申请支付金额" type={'number'}/> )} </Form.Item> <Form.Item {...formItemLayout} style={{ display:'flex' }} label="备注:" > {getFieldDecorator('remarks', { rules: [{ required: true, message: '请输入备注!' }], })( <Input style={{ width: '200px' }} placeholder="请输入备注" type={'textarea'}/> )} </Form.Item> <Form.Item> <div style={{ display: 'flex', justifyContent: 'center', }}> <Button type="primary" htmlType="submit" style={{width:'60%',height:'40px'}}> {this.props.type === 2 ? "确定申请付官费" : "确定申请支付"} </Button> </div> </Form.Item> </Form> </div> </Spin> </Modal> ) } } const WrappedNormalLoginForm = Form.create()(ApplyPaymentModal); export default WrappedNormalLoginForm