| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354 | 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 ? '国家知识产权局' : 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
 |