import React,{Component} from 'react'; import {Button, Form, Input, message, Modal, Radio, Spin, InputNumber} from "antd"; import $ from "jquery"; const layout = { labelCol: { span: 8, }, wrapperCol: { span: 16, }, }; const formItemLayout = { labelCol: { span: 8 }, wrapperCol: { span: 14 }, }; class ApplyPaymentModal extends Component{ constructor(props) { super(props); this.state={ loading: false, paymentStatus: 0, } } //申请付款 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: true, 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) * 1000000) - (parseFloat(previewPayInfor.partyAmount) * 1000000)) / 1000000 : parseFloat(previewPayInfor.totalAmount))/2 }); } else if(e.target.value === 2){ setFieldsValue({ quantity:parseInt(previewPayInfor.quantity), applicationAmount:(previewPayInfor.partyAmount ? ((parseFloat(previewPayInfor.totalAmount) * 1000000) - (parseFloat(previewPayInfor.partyAmount) * 1000000)) / 1000000 : 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="单价(万元):" > {/*可以查看单价 正常 审计 专利买卖 软著 专利申请 打星号 */} { isNaN(parseFloat(previewPayInfor.unitPrice)) ? previewPayInfor.unitPrice : 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="官费(万元):"*/} {/* >*/} {/* /!*costReduction 费减 0否 1 是*!/*/} {/* /!*reductionAmount 费减金额*!/*/} {/* /!*officialUnitPrice 官费单价*!/*/} {/* <div>*/} {/* {*/} {/* previewPayInfor.costReduction === 1 ?*/} {/* (isNaN(parseFloat(previewPayInfor.reductionAmount)) ? previewPayInfor.reductionAmount : parseFloat(previewPayInfor.reductionAmount)):*/} {/* (isNaN(parseFloat(previewPayInfor.officialUnitPrice)) ? previewPayInfor.officialUnitPrice : parseFloat(previewPayInfor.officialUnitPrice))*/} {/* }*/} {/* </div>*/} {/* </Form.Item> : <div/>*/} {/*}*/} <Form.Item {...formItemLayout} style={{ display:'flex' }} label="数量(个):" > {previewPayInfor.quantity} </Form.Item> <Form.Item {...formItemLayout} style={{ display:'flex' }} label="总价(万元):" > <div> { previewPayInfor.totalAmount } </div> </Form.Item> <Form.Item {...formItemLayout} style={{ display:'flex' }} label="本次申请支付数量:" > {getFieldDecorator('quantity', { initialValue: previewPayInfor.quantity, rules: [{ required: false, message: '请输入本次申请支付数量!' }], })( <InputNumber disabled={previewPayInfor.quantity <= 1 || this.state.paymentStatus !== 0} style={{ width: '200px' }} precision={0} placeholder="请输入本次申请支付数量" onChange={(e)=>{ //0正常 1专利 2软著 3审计 //软著 专利申请不需要计算,因为单价未知 if(!(this.props.projectType === 2 || (this.props.projectType === 1 && this.props.patentType === 0))){ //官费 if(this.props.type === 2){ this.props.form.setFieldsValue({ applicationAmount: (previewPayInfor.costReduction === 1 ? previewPayInfor.reductionAmount : previewPayInfor.officialUnitPrice) * 1000000 * e / 1000000, }); }else { let num = previewPayInfor.unitPrice * 1000000 * e / 1000000; this.props.form.setFieldsValue({ applicationAmount: num, }); } } }} /> )} </Form.Item> {/* 0正常 1专利 2软著 3审计 */} {this.props.projectType !== 2 && !(this.props.projectType === 1 && this.props.patentType === 0) ? <Form.Item {...formItemLayout} style={{ display:'flex' }} label="本次申请支付金额(万元):" > {getFieldDecorator('applicationAmount', { initialValue:this.props.type === 2 ?( ((previewPayInfor.costReduction === 1 ? previewPayInfor.reductionAmount : previewPayInfor.officialUnitPrice) * 1000000 * parseInt(previewPayInfor.quantity)) / 1000000 ): ( !isNaN(parseFloat(previewPayInfor.totalAmount)) && !isNaN(parseFloat(previewPayInfor.partyAmount))? ( this.state.paymentStatus === 1 ? (previewPayInfor.partyAmount ? ((parseFloat(previewPayInfor.totalAmount) * 1000000) - (parseFloat(previewPayInfor.partyAmount) * 1000000)) / 1000000 : parseFloat(previewPayInfor.totalAmount)) / 2 : previewPayInfor.partyAmount ? ((parseFloat(previewPayInfor.totalAmount) * 1000000) - (parseFloat(previewPayInfor.partyAmount) * 1000000)) / 1000000 : parseFloat(previewPayInfor.totalAmount) ) : null ), rules: [{ required: true, message: '请输入本次申请支付金额!' }], })( <InputNumber min={0} disabled={this.state.paymentStatus !== 0} style={{ width: '200px' }} placeholder="请输入本次申请支付金额"/> )} </Form.Item> : <div/>} <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