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;