| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517 | import React, {Component} from "react";import {Button, Col, Form, message, Radio, Spin, Table, Tag} from "antd";import PatentCheck from "../patentCheck";import CheckProject from "../../manageCenter/components/checkProject";class InitiateOrder extends Component {    constructor(props) {        super(props);    }    render() {        return (            <div>                <Spin                    spinning={this.state.sureOutLoading || this.state.waiDetailLoading || this.state.payNodeLoading || this.state.thirdInfoLoading}>                    <div style={{marginTop: 10}}>                        <div className="clearfix">                            <FormItem                                className="half-item"                                labelCol={{span: 3}}                                wrapperCol={{span: 14}}                                label={                                    <span>                            <strong style={{color: '#f00'}}>*</strong>                            类型                          </span>                                }                            >                                <Radio.Group                                    disabled={this.state.payNodeLoading || this.state.thirdInfoLoading}                                    value={this.state.startType}                                    onChange={(e) => {                                        let _this = this;                                        if (this.state.thirdInfoList.length > 0) {                                            confirm({                                                title: '确定要切换吗?',                                                content: '切换将删除所有第三信息和付款节点',                                                onOk() {                                                    return new Promise((resolve, reject) => {                                                        _this.setState({startType: e.target.value}, () => {                                                            _this.projectTypeTabContent(_this.state.projectType);                                                        })                                                        _this.confirmDeletNew(-1, resolve, reject)                                                        if (_this.state.payNodeList.length > 0) {                                                            _this.payNodeConfirmDeletNew(-1, resolve, reject);                                                        }                                                    }).catch(() => console.log('Oops errors!'));                                                },                                                onCancel() {                                                },                                            });                                        } else {                                            this.setState({startType: e.target.value}, () => {                                                this.projectTypeTabContent(this.state.projectType);                                            })                                        }                                    }}                                >                                    <Radio value={0}>外包(不走总部)</Radio>                                    <Radio value={1}>供应商信息</Radio>                                </Radio.Group>                            </FormItem>                        </div>                        {/* 专利类型 */}                        <div                            className="clearfix"                            style={{                                display: this.state.projectType === 1 ? 'block' : 'none',                            }}                        >                            <FormItem                                className="half-item"                                labelCol={{span: 4}}                                wrapperCol={{span: 14}}                                label={                                    <span>                            <strong style={{color: '#f00'}}>*</strong>                            专利类型                          </span>                                }                            >                                <Radio.Group                                    disabled={this.state.payNodeLoading || this.state.thirdInfoLoading}                                    value={this.state.patentType}                                    onChange={(e) => {                                        let _this = this;                                        if (this.state.thirdInfoList.length > 0) {                                            confirm({                                                title: '确定要切换吗?',                                                content: '切换将删除所有第三信息和付款节点',                                                onOk() {                                                    return new Promise((resolve, reject) => {                                                        _this.setState({patentType: e.target.value}, () => {                                                            _this.projectTypeTabContent(_this.state.projectType);                                                        })                                                        _this.confirmDeletNew(-1, resolve, reject)                                                        if (_this.state.payNodeList.length > 0) {                                                            _this.payNodeConfirmDeletNew(-1, resolve, reject);                                                        }                                                    }).catch(() => console.log('Oops errors!'));                                                },                                                onCancel() {                                                },                                            });                                        } else {                                            this.setState({patentType: e.target.value}, () => {                                                this.projectTypeTabContent(this.state.projectType);                                            })                                        }                                    }}                                >                                    <Radio value={0}>专利申请/变更/转让</Radio>                                    <Radio value={1}>专利买卖</Radio>                                </Radio.Group>                            </FormItem>                        </div>                        <div                            className="clearfix"                            style={{                                display: this.state.projectType === 1 ? 'block' : 'none',                            }}                        >                            <FormItem                                className="half-item"                                labelCol={{span: 4}}                                wrapperCol={{span: 14}}                                label={                                    <span>                            <strong style={{color: '#f00'}}>*</strong>                            专利名称                          </span>                                }                            >                                <Radio.Group                                    disabled={this.state.payNodeLoading || this.state.thirdInfoLoading}                                    value={this.state.patentNameType}                                    onChange={(e) => {                                        let _this = this;                                        if (this.state.thirdInfoList.length > 0) {                                            confirm({                                                title: '确定要切换吗?',                                                content: '切换将删除所有第三信息和付款节点',                                                onOk() {                                                    return new Promise((resolve, reject) => {                                                        _this.setState({patentNameType: e.target.value}, () => {                                                            _this.projectTypeTabContent(_this.state.projectType);                                                        })                                                        _this.confirmDeletNew(-1, resolve, reject)                                                        if (_this.state.payNodeList.length > 0) {                                                            _this.payNodeConfirmDeletNew(-1, resolve, reject);                                                        }                                                    }).catch(() => console.log('Oops errors!'));                                                },                                                onCancel() {                                                },                                            });                                        } else {                                            this.setState({patentNameType: e.target.value}, () => {                                                this.projectTypeTabContent(this.state.projectType);                                            })                                        }                                    }}                                >                                    <Radio value={0}>实用新型专利</Radio>                                    <Radio value={1}>发明专利</Radio>                                    <Radio value={2}>外观专利</Radio>                                    {/*<Radio value={3}>*/}                                    {/*  其他*/}                                    {/*  <Input*/}                                    {/*    disabled={this.state.patentNameType !== 3}*/}                                    {/*    value={this.state.patentName}*/}                                    {/*    style={{ marginLeft: '15px' }}*/}                                    {/*    onChange={(e) => {*/}                                    {/*      this.setState({*/}                                    {/*        patentName: e.target.value,*/}                                    {/*      })*/}                                    {/*    }}*/}                                    {/*    placeholder="请填写专利名称"*/}                                    {/*  />*/}                                    {/*</Radio>*/}                                </Radio.Group>                            </FormItem>                        </div>                        {/*外包类型无此选项*/}                        {this.state.startType !== 0 && this.state.projectType === 1 ? <div className="clearfix">                            <FormItem                                className="half-item"                                labelCol={{span: 3}}                                wrapperCol={{span: 15}}                                label={<span>官费</span>}>                                {                                    this.state.patentType === 1 ?                                        <Radio.Group                                            value={this.state.containOfficialFees}                                            onChange={(e) => {                                                this.setState({containOfficialFees: e.target.value})                                            }}                                        >                                            <Radio value={0}>实际已缴费</Radio>                                            <Radio value={1}>实际未缴费</Radio>                                        </Radio.Group> :                                        <PatentCheck                                            style={{                                                display: 'flex',                                                alignItems: 'center',                                            }}                                            id={this.state.id}                                            patentTypeName={this.state.patentTypeName}                                            checkStatus={this.state.checkStatus}  //核对状态                                            projectType={this.state.projectType}  //项目类型                                            patentType={this.state.patentType}   //专利类型                                            startType={this.state.startType}   //1供应商 0外包                                            orderTaskOfficialCost={this.state.orderTaskOfficialCost}  //1含官费 0不含官费                                            orderTaskCostReduction={this.state.orderTaskCostReduction} //1有费减 0无费减                                            isPreviewPay={false}                                            onRefresh={() => {                                                this.xiangqing(this.state.tid);                                            }}                                            status={this.state.refundStatus}                                        />                                }                            </FormItem>                        </div> : <div/>}                        {/* 第三方信息专利 */}                        <div>                      <span                          style={{                              fontSize: '18px',                          }}                      >                        第三方信息                      </span>                            <span                                style={{                                    display: 'inline-block',                                    marginLeft: 10,                                    color: 'red',                                }}                            >                        金额总计(万元): {this.state.allTotalAmount}                      </span>                            <Button                                type="primary"                                onClick={(e) => {                                    //this.state.startType 0外包 1供应商   类型为外包时,当普通单                                    if (this.state.projectType === 1 && this.state.patentType === -1) {                                        message.info('请先选择专利类型');                                    } else if (this.state.projectType === 1 && this.state.patentNameType === -1) {                                        message.info('请先选择专利名称');                                    } else {                                        this.addThirdList()                                    }                                }}                                style={{                                    float: 'right',                                    marginRight: '50px',                                    marginBottom: '15px',                                }}                            >                                +新增第三方信息                            </Button>                        </div>                        <div                            className="clearfix"                            style={{                                // display: this.state.type == 1 ? "block" : "none",                                display: this.state.type == 1 ? 'block' : 'block',                            }}                        >                            <Spin spinning={this.state.thirdInfoLoading}>                                <Form layout="horizontal">                                    <Table                                        pagination={false}                                        columns={this.state.ContactsListsNew}                                        dataSource={this.state.thirdInfoList}                                        onRowClick={this.tableRowClickOne}                                        scroll={{x: 'max-content', y: 0}}                                        bordered                                        size="small"                                    />                                    <Col                                        span={24}                                        offset={9}                                        style={{marginTop: '15px'}}                                    />                                </Form>                            </Spin>                        </div>                        {/*如果是软著类或者专利类的专利申请,隐藏付款节点 但当为外包类型时,无需隐藏*/}                        {/*this.state.startType 0外包 1供应商*/}                        <div                            style={{                                display: this.state.startType === 0 ? 'block' : ((this.state.projectType === 1 && this.state.patentType === 0) || this.state.projectType === 2 ? 'none' : 'block'),  //0正常 1专利 2软著 3审计                            }}                        >                      <span                          style={{                              fontSize: '18px',                          }}                      >                        付款节点                      </span>                            <span                                style={{                                    display: 'inline-block',                                    marginLeft: 10,                                    color: 'red',                                }}                            />                            <Button                                type="primary"                                onClick={(e) => {                                    this.addPayNode()                                }}                                style={{                                    float: 'right',                                    marginRight: '50px',                                    marginBottom: '15px',                                }}                            >                                +新增付款节点                            </Button>                        </div>                        {/*如果是软著类或者专利类的专利申请,隐藏付款节点 但当为外包类型时,无需隐藏*/}                        <div                            className="clearfix"                            style={{                                display: this.state.startType === 0 ? 'block' : ((this.state.projectType === 1 && this.state.patentType === 0) || this.state.projectType === 2 ? 'none' : 'block'),  //0正常 1专利 2软著 3审计                            }}                        >                            <Spin spinning={this.state.payNodeLoading}>                                <Form layout="horizontal">                                    <Table                                        pagination={false}                                        columns={this.state.PayNodeTableColunms}                                        dataSource={this.state.payNodeList}                                        onRowClick={this.payNodeTableRowClickOne}                                        scroll={{x: 'max-content', y: 0}}                                        bordered                                        size="small"                                    />                                    <Col                                        span={24}                                        offset={9}                                        style={{marginTop: '15px'}}                                    />                                </Form>                            </Spin>                        </div>                        <div className="clearfix">                            <FormItem                                className="half-item"                                {...formItemLayout}                                label={                                    <span>                            <strong style={{color: '#f00'}}>*</strong>备注                          </span>                                }                            >                                <TextArea                                    rows={4}                                    value={this.state.outsourceRemarks}                                    onChange={(e) => {                                        this.setState({                                            outsourceRemarks: e.target.value,                                        })                                    }}                                    placeholder="请输入备注"                                />                            </FormItem>                        </div>                        <p                            className="tip"                            style={{                                paddingBottom: '12px',                                width: '240px',                                marginLeft: '145px',                                color: 'red',                            }}                        >                            首次派单项目,需上传协议,第2次起,同项目,只需写外包公司                        </p>                        <div className="clearfix">                            <FormItem                                labelCol={{span: 4}}                                wrapperCol={{span: 18}}                                label={                                    <span>                            合同/协议扫描件                          </span>                                }                            >                                <PicturesWall                                    domId={'myTask3'}                                    fileList={this.getOrgCodeUrlWai}                                    pictureUrl={this.state.pictureUrl}                                />                                <p style={{color: 'red'}}>图片建议:要清晰。</p>                            </FormItem>                        </div>                        {/*只有审核拒绝和第一次发起外包的时候才要填写发起原因   如果是类型为供应商则不需要发起原因*/}                        {/*this.state.startType  0外包  1供应商*/}                        {(typeof this.state.refundStatus === 'undefined' || this.state.refundStatus === 2) && this.state.startType !== 1 ?                            <div className="clearfix">                                <FormItem                                    className="half-item"                                    {...formItemLayout}                                    label={                                        <span>                            <strong style={{color: '#f00'}}>*</strong>发起原因                          </span>                                    }                                >                                    <TextArea                                        rows={4}                                        value={this.state.reason}                                        onChange={(e) => {                                            this.setState({                                                reason: e.target.value,                                            })                                        }}                                        placeholder="请输入发起原因"                                    />                                </FormItem>                            </div> : <div/>}                        <div className="clearfix">                            <div                                style={{                                    display: 'inline-black',                                    textAlign: 'center',                                }}                            >                                <Button                                    type="primary"                                    loading={this.state.loading}                                    onClick={() => {                                        this.sureOut(this.state.startType);                                    }}                                >                                    {                                        this.state.startType === 0 ? "确认发起外包,不通过总部1" : "提交供应商信息"                                    }                                </Button>                                <p className="tip" style={{color: 'red'}}>                                    {                                        this.state.startType === 0 ? "提示:高于总部价格,费用个人承担" : "确定提交供应商信息,提交后,不可修改"                                    }                                </p>                            </div>                        </div>                    </div>                    {(this.state.refundStatus == 1 ||                        this.state.refundStatus == 0 ||                        this.state.refundStatus == 2) &&                    this.state.startType !== 1                        ? (                            <div className="clearfix"                                 style={{                                     display: this.state.refundStatus == 0 ? 'none' : 'block',                                 }}                            >                                <hr className="division"/>                                {parseInt(this.state.startType) !== 1 ? <div style={{                                    color: '#F00',                                    fontWeight: 'bolder',                                    paddingBottom: '20px',                                }}>                                    审核结果: <span                                    style={{paddingLeft: '20px'}}>{getRefundStatus(this.state.refundStatus)}</span>                                </div> : <div/>}                                <div className="outsourceLogList">                                    {                                        this.state.outsourceLogs && this.state.outsourceLogs.map((value, index) => (                                            <div key={index} className="outsourceLogItem outsource">                                                <div style={{                                                    display: 'flex',                                                    flexFlow: 'row nowrap',                                                    paddingBottom: '3px',                                                    paddingTop: '3px',                                                }}>                                                    <div>                                                        {value.aname}                                                    </div>                                                    <div style={{paddingLeft: '5px'}}>                                                        {                                                            value.status === 0 ?                                                                <Tag color="#2db7f5">发起外包审核</Tag> :                                                                value.status === 1 ? <Tag color="#87d068">通过</Tag> :                                                                    <Tag color="#f50">驳回</Tag>                                                        }                                                    </div>                                                    <div style={{                                                        wordBreak: 'break-all',                                                        maxWidth: '67%',                                                    }}>                                                        {value.remarks}                                                    </div>                                                    <div style={{paddingLeft: '10px'}}>                                                        {value.createTimes}                                                    </div>                                                </div>                                            </div>                                        ))                                    }                                </div>                            </div>                        ) : (                            ''                        )}                </Spin>            </div>        )    }}export default InitiateOrder;
 |