|
@@ -0,0 +1,516 @@
|
|
|
+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 ? "确认发起外包,不通过总部" : "提交供应商信息"
|
|
|
+ }
|
|
|
+ </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;
|