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; } if (values.quantity < 1) { message.warning('申请支付数量不能小于零'); return false; } this.setState({ loading: true }) values.tid = this.props.tid; if (this.props.type === 2) { values.chooseType = 2; //支付类型 0第三方 1催款 2官费 } else { 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 } } 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 (this.props.type !== 2 && !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: this.props.type === 2 ? (adminData.province == "21" ? '国家知识产权局(呼和浩特代办处)' : '国家知识产权局') : 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', { initialValue: 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="数量(个):" > {this.props.type === 2 ? this.props.commodityQuantity : previewPayInfor.quantity} </Form.Item> {this.props.type !== 2 ? <Form.Item {...formItemLayout} style={{ display: 'flex' }} label="总价(万元):" > <div> { previewPayInfor.totalAmount } </div> </Form.Item> : null} <Form.Item {...formItemLayout} style={{ display: 'flex' }} label="本次申请支付数量:" > {getFieldDecorator('quantity', { initialValue: previewPayInfor.quantity, rules: [{ required: false, message: '请输入本次申请支付数量!' }], })( <InputNumber disabled={this.state.paymentStatus !== 0} style={{ width: '200px' }} precision={0} placeholder="请输入本次申请支付数量" onChange={(e) => { if (this.props.projectType === 1 && this.props.patentType === 0) { setFieldsValue({ applicationAmount: e * previewPayInfor.unitPrice }); } }} /> )} </Form.Item> {/*0正常 1专利 2软著 3审计 只有专利里面的专利申请没有本次申请支付金额*/} {/*专利的官费申请 本次申请支付金额(万元) 不需要*/} {/*startType 1供应商 0外包*/} {/* 申请官费 本次申请支付数量 都可以修改 本次申请支付金额 都不显示 申请付款 供应商 第三方信息 本次申请支付数量 都可以修改 本次申请支付金额 专利申请类型不显示,专利买卖类型可以修改申请支付金额,其他类型也能修改 (后加软著不可申请支付金额) 付款节点(专利申请无付款节点) 本次申请支付数量 都可以修改 本次申请支付金额 都可以修改 外包 第三方信息 本次申请支付数量 都可以修改 本次申请支付金额 专利申请不可以修改但显示(专利申请的申请金额会随支付数量乘以单价变化),其他类型可以修改 付款节点 本次申请支付数量 都可以修改 本次申请支付金额 专利申请不可以修改但显示(专利申请的申请金额会随支付数量乘以单价变化),其他类型可以修改 */} {this.props.type !== 2 && !(this.props.startType === 1 ? ((this.props.projectType === 1 && this.props.patentType === 0) || this.props.projectType === 2) : false) ? <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 || (this.props.projectType === 1 && this.props.patentType === 0)} style={{ width: '200px' }} placeholder="请输入本次申请支付金额" /> )} </Form.Item> : null} <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