import React, { Component } from 'react'
import {
  Form,
  Spin,
  Table,
  Modal,
  Col,
  Tag,
  Button,
  message,
  Tooltip,
  Popconfirm,
} from 'antd'
import { getMaterialStatus, getUrgentStatus,getProjectName } from '@/tools'
import ApplyPaymentModal from './applyPaymentModal';
import PayRecord from './payRecord';
import ImgList from '../../../common/imgList/index';
import './index.less'
import $ from "jquery";
import OldInforProject from "../oldInforProject";
import PatentCheck from "../../../common/patentCheck";

import PaymentRecord from '../../../common/initiateOrder/paymentRecord';
import NewSupplier from "../../project/task/newSupplier";
import OperationPayNode from "../../project/task/operationPayNode";

const confirm = Modal.confirm

class CheckProject extends Component {
  constructor(props) {
    super(props)
    this.state = {
      value: '',
      loading: false,
      previewImage: '',
      previewVisible: false,
      previewPayVisible: false,
      type: 1,//1 申请付款 2 申请付官费
      previewPayInfor: {},        //点击申请付款的第三方信息或者支付节点信息
      nodeId: 0,
      // 专利
      ContactsListsNew: [],
      //付款节点表头
      PayNodeTableColunms: [],
      outsourceLogs: [],//审核日志


      outsourcingLogLoading: false,
      payRecordsLoading: false,

      PayNodeCompany:[]
    }
    this.getPayNodeCompany = this.getPayNodeCompany.bind(this);
  }

  componentDidMount() {
    if(this.props.tid){
      setTimeout(()=>{
        this.getSelectOutsourceLog();
        this.projectTypeTabContent(this.props.projectType);
      },500)
    }
    this.getPayNodeCompany();
  }

  getPayNodeCompany(){
    let arr = this.props.thirdInfoList ? JSON.parse(JSON.stringify(this.props.thirdInfoList)) : [];
    let companyNameArr = [];
    for (let d = 0; d < arr.length; d++) {
      arr[d].companyName = arr[d].companyName + '-' + arr[d].id;
      companyNameArr.push({
        companyName: arr[d].companyName,
        id: arr[d].id,
      });
    }
    this.setState({
      PayNodeCompany:companyNameArr
    })
  }

  projectTypeTabContent(projectType) {
    this.setState({
      //付款节点表头
      PayNodeTableColunms: [
        {
          title: '节点编号',
          dataIndex: 'id',
          key: 'id',
        },
        {
          title: '供应商名称',
          dataIndex: 'companyName',
          key: 'companyName',
          render: (text, record, index) => {
            if (text) {
              return <span>{text}</span>
            }
          },
        },
        {
          title: '付款科目',
          dataIndex: 'dunType',
          key: 'dunType',
          render: (text, record) => {
            if (text) {
              return <span>{text}</span>
            }
          },
        },
        {
          title: '付款时间',
          dataIndex: 'partyTimes',
          key: 'partyTimes',
          render: (text, record) => {
            return <span>{text ? text : '/'}</span>
          },
        },
        {
          title: '数量',
          dataIndex: 'quantity',
          key: 'quantity',
          render: (text, record) => {
            if (text) {
              return <span>{text}</span>
            }
          },
        },
        {
          title: '总价(万元)',
          dataIndex: 'totalAmount',
          key: 'totalAmount',
          render: (text, record) => {
            return <span>
                {
                  isNaN(text) ? text : parseFloat(text)
                }
              </span>
          },
        },
        {
          title: '已付',
          dataIndex: 'partyAmount',
          key: 'partyAmount',
          render: (text, record) => {
            if (text) {
              return <span>{text}</span>
            }
          },
        },
        {
          title: '操作',
          dataIndex: 'dels',
          key: 'dels',
          render: (text, record, index) => {
            return (
                <div>
                  {/*外包审核通过后,咨询师/咨询经理可申请付款*/}
                  {/*存在支付节点时不显示第三方的申请付款*/}
                  {/*0-待审核 ,1-审核通过,2-审核拒绝 true [NULL]*/}
                  {/*this.props.startType   0外包  1供应商(不需要审核)*/}
                  {/*record.status  0-未支付 1-待全款 ,2已全款  status=2的时候已经全款,按钮可以去掉了*/}
                  <Button disabled={
                    !(this.props.isPreviewPay && (this.props.status === 1 || parseInt(this.props.startType) === 1) && record.status !==2 )
                  } type="primary" onClick={() => {
                    this.setState({
                      previewPayVisible: true,
                      previewPayInfor: record,
                    })
                  }}>
                    申请付款
                  </Button>
                  {this.props.status === 2 && !this.props.isAuditPaymentGLY ? <Popconfirm
                      title="是否删除?"
                      onConfirm={() => {
                        this.payNodeConfirmDeletNew(record)
                      }}
                      okText="删除"
                      cancelText="不删除"
                  >
                    <Button
                        disabled={this.props.status !== 2}
                        onClick={(e) => {
                          e.stopPropagation()
                        }}
                        style={{
                          marginLeft: '10px',
                          color: '#ffffff',
                          background: '#f00',
                          border: 'none',
                        }}
                    >
                      删除
                    </Button>
                  </Popconfirm> : <div/>}
                </div>
            )
          },
        },
      ],
    })
    //0正常 1专利 2软著 3审计      this.props.startType 0外包 1供应商     外包时当普通单处理   projectType大于3的都用通用表格
    if(projectType === 0 || !projectType || this.props.startType === 0  || projectType > 3){
      this.setState({
        ContactsListsNew: [
          {
            title: '供应商名称',
            dataIndex: 'companyName',
            key: 'companyName',
            render: (text, record, index) => {
              if (text) {
                return <span>{text}</span>
              }
            },
          },
          {
            title: '单价(万元)',
            dataIndex: 'unitPrice',
            key: 'unitPrice',
            render: (text, record) => {
              if (text) {
                return <span>
                  {
                    isNaN(text) ? text : parseFloat(text)
                  }
                </span>
              }
            },
          },
          {
            title: '数量',
            dataIndex: 'quantity',
            key: 'quantity',
            render: (text, record) => {
              if (text) {
                return <span>{text}</span>
              }
            },
          },
          {
            title: '总价(万元)',
            dataIndex: 'totalAmount',
            key: 'totalAmount',
            render: (text, record) => {
              if (text) {
                return <span>
                  {
                    isNaN(text) ? text : parseFloat(text)
                  }
                </span>
              }
            },
          },
          {
            title: '备注',
            dataIndex: 'remarks',
            key: 'remarks',
            render: (text) => {
              return (
                  <Tooltip placement="topLeft" title={text}>
                      <div style={{
                        maxWidth:'150px',
                        overflow:'hidden',
                        textOverflow: "ellipsis",
                        whiteSpace:'nowrap',
                      }}>{text}</div>
                  </Tooltip>
              )
            }
          },
          {
            title: '操作',
            dataIndex: 'action',
            key: 'action',
            render: (text, record) => {
              return (
                  <div>
                    {/*外包审核通过后,咨询师/咨询经理可申请付款*/}
                    {/*存在支付节点时不显示第三方的申请付款*/}
                    {/*0-待审核 ,1-审核通过,2-审核拒绝 true [NULL]*/}
                    {/*this.props.startType   0外包  1供应商(不需要审核)*/}
                    <Button disabled={
                      !(this.props.isPreviewPay && (this.props.status === 1 || parseInt(this.props.startType) === 1) && this.props.dataSource.length === 0)
                    } type="primary" onClick={() => {
                      this.setState({
                        previewPayVisible: true,
                        previewPayInfor: record,
                      })
                    }}>
                      申请付款
                    </Button>
                    {this.props.status === 2 && !this.props.isAuditPaymentGLY ? <Popconfirm
                        title="是否删除?"
                        onConfirm={() => {
                          this.confirmDeletNew(record)
                        }}
                        okText="删除"
                        cancelText="不删除"
                    >
                      <Button
                          disabled={this.props.status !== 2}
                          onClick={(e) => {
                            e.stopPropagation()
                          }}
                          style={{
                            marginLeft: '10px',
                            color: '#ffffff',
                            background: '#f00',
                            border: 'none',
                          }}
                      >
                        删除
                      </Button>
                    </Popconfirm> : <div/>}
                  </div>
              )
            },
          },
        ],
      })
    }else if(projectType === 2){    //2软著
      this.setState({
        ContactsListsNew: [
          {
            title: '供应商名称',
            dataIndex: 'companyName',
            key: 'companyName',
            render: (text, record, index) => {
              if (text) {
                return <span>{text}</span>
              }
            },
          },
          {
            title: '单价(万元)',
            dataIndex: 'unitPrice',
            key: 'unitPrice',
            render: (text, record) => {
              if (text) {
                return <span>
                  {
                    isNaN(text) ? text : parseFloat(text)
                  }
                </span>
              }
            },
          },
          {
            title: '数量',
            dataIndex: 'quantity',
            key: 'quantity',
            render: (text, record) => {
              if (text) {
                return <span>{text}</span>
              }
            },
          },
          {
            title: '总价(万元)',
            dataIndex: 'totalAmount',
            key: 'totalAmount',
            render: (text, record) => {
              if (text) {
                return <span>
                  {
                    isNaN(text) ? text : parseFloat(text)
                  }
                </span>
              }
            },
          },
          {
            title: '材料',
            dataIndex: 'material',
            key: 'material',
            render: (text, record) => {
              return getMaterialStatus(text)
            },
          },
          {
            title: '加急',
            dataIndex: 'urgent',
            key: 'urgent',
            render: (text, record) => {
              return getUrgentStatus(text)
            },
          },
          {
            title: '操作',
            dataIndex: 'action',
            key: 'action',
            render: (text, record) => {
              return (
                  <div>
                    {/*外包审核通过后,咨询师/咨询经理可申请付款*/}
                    {/*存在支付节点时不显示第三方的申请付款*/}
                    {/*0-待审核 ,1-审核通过,2-审核拒绝 true [NULL]*/}
                    {
                      <Button disabled={
                        !(this.props.isPreviewPay && (this.props.status === 1 || parseInt(this.props.startType) === 1) && this.props.dataSource.length === 0)
                      } type="primary" onClick={() => {
                        this.setState({
                          previewPayVisible: true,
                          previewPayInfor: record,
                        })
                      }}>
                        申请付款
                      </Button>
                    }
                    {this.props.status === 2 && !this.props.isAuditPaymentGLY ? <Popconfirm
                        title="是否删除?"
                        onConfirm={() => {
                          this.confirmDeletNew(record)
                        }}
                        okText="删除"
                        cancelText="不删除"
                    >
                      <Button
                          disabled={this.props.status !== 2}
                          onClick={(e) => {
                            e.stopPropagation()
                          }}
                          style={{
                            marginLeft: '10px',
                            color: '#ffffff',
                            background: '#f00',
                            border: 'none',
                          }}
                      >
                        删除
                      </Button>
                    </Popconfirm> : <div/>}
                  </div>
              )
            },
          },
        ],
      })
    }else if(projectType === 1){       //1专利
      if(this.props.patentType === 0){      //专利申请
        this.setState({
          ContactsListsNew: [
            {
              title: '供应商名称',
              dataIndex: 'companyName',
              key: 'companyName',
              render: (text, record, index) => {
                if (text) {
                  return <span>{text}</span>
                }
              },
            },
            {
              title: '单价(万元)',
              dataIndex: 'unitPrice',
              key: 'unitPrice',
              render: (text, record) => {
                if (text) {
                  return <span>
                  {
                    isNaN(text) ? text : parseFloat(text)
                  }
                </span>
                }
              },
            },
            {
              title: '数量',
              dataIndex: 'quantity',
              key: 'quantity',
              render: (text, record) => {
                if (text) {
                  return <span>{text}</span>
                }
              },
            },
            // {
            //   title: "官费",
            //   dataIndex: "officialCost",
            //   key: "officialCost",
            //   render: (text) => {
            //     return text === 1 ? '含官费' : '不含官费'
            //   },
            // },
            // {
            //   title: "费减",
            //   dataIndex: "costReduction",
            //   key: "costReduction",
            //   render: (text) => {
            //     return text === 1 ? '有费减' : '无费减'
            //   },
            // },
            {
              title: '总价(万元)',
              dataIndex: 'totalAmount',
              key: 'totalAmount',
              render: (text, record) => {
                if (text) {
                  return <span>
                  {
                    isNaN(text) ? text : parseFloat(text)
                  }
                </span>
                }
              },
            },
            {
              title: '备注',
              dataIndex: 'remarks',
              key: 'remarks',
              render: (text) => {
                return (
                    <Tooltip placement="topLeft" title={text}>
                        <div style={{
                          maxWidth:'150px',
                          overflow:'hidden',
                          textOverflow: "ellipsis",
                          whiteSpace:'nowrap',
                        }}>{text}</div>
                    </Tooltip>
                )
              }
            },
            {
              title: '操作',
              dataIndex: 'action',
              key: 'action',
              render: (text, record) => {
                return (
                    <div>
                      {/*外包审核通过后,咨询师/咨询经理可申请付款*/}
                      {/*存在支付节点时不显示第三方的申请付款*/}
                      {/*0-待审核 ,1-审核通过,2-审核拒绝 true [NULL]*/}
                      <Button disabled={
                        !(this.props.isPreviewPay && (this.props.status === 1 || parseInt(this.props.startType) === 1) && this.props.dataSource.length === 0)
                      } type="primary" onClick={() => {
                        this.setState({
                          previewPayVisible: true,
                          previewPayInfor: record,
                        })
                      }}>
                        申请付款
                      </Button>
                      {/*{record.officialCost === 1? <Button*/}
                      {/*    type="primary"*/}
                      {/*    style={{*/}
                      {/*      marginLeft: '10px',*/}
                      {/*    }}*/}
                      {/*    disabled={!(this.props.isPreviewPay && (this.props.status === 1 || parseInt(this.props.startType) === 1))}*/}
                      {/*    onClick={() => {*/}
                      {/*      this.setState({*/}
                      {/*        previewPayVisible: true,*/}
                      {/*        previewPayInfor: record,*/}
                      {/*        type: 2,*/}
                      {/*      })*/}
                      {/*    }}>*/}
                      {/*  付官费*/}
                      {/*</Button> : <div/>}*/}
                      {this.props.status === 2 && !this.props.isAuditPaymentGLY ? <Popconfirm
                          title="是否删除?"
                          onConfirm={() => {
                            this.confirmDeletNew(record)
                          }}
                          okText="删除"
                          cancelText="不删除"
                      >
                        <Button
                            disabled={this.props.status !== 2}
                            onClick={(e) => {
                              e.stopPropagation()
                            }}
                            style={{
                              marginLeft: '10px',
                              color: '#ffffff',
                              background: '#f00',
                              border: 'none',
                            }}
                        >
                          删除
                        </Button>
                      </Popconfirm> : <div/>}
                    </div>
                )
              },
            },
          ],
        })
      }else{
        this.setState({
          ContactsListsNew: [
            {
              title: '供应商名称',
              dataIndex: 'companyName',
              key: 'companyName',
              render: (text, record, index) => {
                if (text) {
                  return <span>{text}</span>
                }
              },
            },
            {
              title: '单价(万元)',
              dataIndex: 'unitPrice',
              key: 'unitPrice',
              render: (text, record) => {
                if (text) {
                  return <span>
                  {
                    isNaN(text) ? text : parseFloat(text)
                  }
                </span>
                }
              },
            },
            {
              title: '数量',
              dataIndex: 'quantity',
              key: 'quantity',
              render: (text, record) => {
                if (text) {
                  return <span>{text}</span>
                }
              },
            },
            {
              title: '总价(万元)',
              dataIndex: 'totalAmount',
              key: 'totalAmount',
              render: (text, record) => {
                if (text) {
                  return <span>
                  {
                    isNaN(text) ? text : parseFloat(text)
                  }
                </span>
                }
              },
            },
            {
              title: '备注',
              dataIndex: 'remarks',
              key: 'remarks',
              render: (text) => {
                return (
                    <Tooltip placement="topLeft" title={text}>
                      <div style={{
                        maxWidth:'150px',
                        overflow:'hidden',
                        textOverflow: "ellipsis",
                        whiteSpace:'nowrap',
                      }}>{text}</div>
                    </Tooltip>
                )
              }
            },
            {
              title: '操作',
              dataIndex: 'action',
              key: 'action',
              render: (text, record) => {
                return (
                    <div>
                      {/*外包审核通过后,咨询师/咨询经理可申请付款*/}
                      {/*存在支付节点时不显示第三方的申请付款*/}
                      {/*0-待审核 ,1-审核通过,2-审核拒绝 true [NULL]*/}
                      {
                        <Button disabled={
                          !(this.props.isPreviewPay && (this.props.status === 1 || parseInt(this.props.startType) === 1) && this.props.dataSource.length === 0)
                        } type="primary" onClick={() => {
                          this.setState({
                            previewPayVisible: true,
                            previewPayInfor: record,
                          })
                        }}>
                          申请付款
                        </Button>
                      }
                      {this.props.status === 2 && !this.props.isAuditPaymentGLY ? <Popconfirm
                          title="是否删除?"
                          onConfirm={() => {
                            this.confirmDeletNew(record)
                          }}
                          okText="删除"
                          cancelText="不删除"
                      >
                        <Button
                            disabled={this.props.status !== 2}
                            onClick={(e) => {
                              e.stopPropagation()
                            }}
                            style={{
                              marginLeft: '10px',
                              color: '#ffffff',
                              background: '#f00',
                              border: 'none',
                            }}
                        >
                          删除
                        </Button>
                      </Popconfirm> : <div/>}
                    </div>
                )
              },
            },
          ]
        })
      }
    }else if(projectType === 3){  //3审计
      this.setState({
        ContactsListsNew: [
          {
            title: '供应商名称',
            dataIndex: 'companyName',
            key: 'companyName',
            render: (text, record, index) => {
              if (text) {
                return <span>{text}</span>
              }
            },
          },
          {
            title: '单价(万元)',
            dataIndex: 'unitPrice',
            key: 'unitPrice',
            render: (text, record) => {
              if (text) {
                return <span>
                  {
                    isNaN(text) ? text : parseFloat(text)
                  }
                </span>
              }
            },
          },
          {
            title: '数量',
            dataIndex: 'quantity',
            key: 'quantity',
            render: (text, record) => {
              if (text) {
                return <span>{text}</span>
              }
            },
          },
          {
            title: '总价(万元)',
            dataIndex: 'totalAmount',
            key: 'totalAmount',
            render: (text, record) => {
              if (text) {
                return <span>
                  {
                    isNaN(text) ? text : parseFloat(text)
                  }
                </span>
              }
            },
          },
          {
            title: '审计',
            dataIndex: 'audit',
            key: 'audit',
            render: (text, record) => {
              if (text) {
                return <span>{text===0?'无审计':text===1?'年审':'专审'}</span>
              }
            },
          },
          {
            title: '公司资产(万元)',
            dataIndex: 'assets',
            key: 'assets',
            render: (text, record) => {
              if (text) {
                return <span>{text}</span>
              }
            },
          },
          {
            title: '收入(万元)',
            dataIndex: 'income',
            key: 'income',
            render: (text, record) => {
              if (text) {
                return <span>{text}</span>
              }
            },
          },
          {
            title: '操作',
            dataIndex: 'action',
            key: 'action',
            render: (text, record) => {
              return (
                  <div>
                    {/*外包审核通过后,咨询师/咨询经理可申请付款*/}
                    {/*存在支付节点时不显示第三方的申请付款*/}
                    {/*0-待审核 ,1-审核通过,2-审核拒绝 true [NULL]*/}
                    {
                      <Button disabled={
                        !(this.props.isPreviewPay && (this.props.status === 1 || parseInt(this.props.startType) === 1) && this.props.dataSource.length === 0)
                      } type="primary" onClick={() => {
                        this.setState({
                          previewPayVisible: true,
                          previewPayInfor: record,
                        })
                      }}>
                        申请付款
                      </Button>
                    }
                    {this.props.status === 2 && !this.props.isAuditPaymentGLY ? <Popconfirm
                        title="是否删除?"
                        onConfirm={() => {
                          this.confirmDeletNew(record)
                        }}
                        okText="删除"
                        cancelText="不删除"
                    >
                      <Button
                          disabled={this.props.status !== 2}
                          onClick={(e) => {
                            e.stopPropagation()
                          }}
                          style={{
                            marginLeft: '10px',
                            color: '#ffffff',
                            background: '#f00',
                            border: 'none',
                          }}
                      >
                        删除
                      </Button>
                    </Popconfirm> : <div/>}
                  </div>
              )
            },
          },
        ]
      })
    }
  }

  tableRowClickOne(record) {}

  //点击付款节点详情
  payNodeTableRowClickOne(record) {}

  //外包日志列表
  getSelectOutsourceLog(){
    this.setState({
      outsourcingLogLoading: true
    })
    $.ajax({
      method: 'get',
      dataType: 'json',
      crossDomain: false,
      url: globalConfig.context + '/api/admin/outsourceOrg/selectOutsourceLog',
      data: {
        tid: this.props.tid,
      },
      success: function (data) {
        if (data.error.length) {
          if (data.error && data.error.length) {
            message.warning(data.error[0].message);
          }
        } else {
          this.setState({
            outsourceLogs: data.data
          })
        }
      }.bind(this),
    }).always(
        function () {
          this.setState({
            outsourcingLogLoading: false
          })
        }.bind(this)
    )
  }



  // 删除供应商信息
  confirmDeletNew(index) {
    this.setState({
      loading: true,
      ThirdListVisible: false,
    })
    $.ajax({
      url: globalConfig.context + '/api/admin/company/deleteCompany',
      method: 'post',
      data: {
        id: index.id,
      },
    }).done(
        function (data) {
          this.setState({
            loading: false,
          })
          if (!data.error.length) {
            message.success('删除成功!')
            this.props.onRefresh()
          } else {
            message.warning(data.error[0].message)
          }
        }.bind(this)
    )
  }

  //超级管理员
  superAdminReject() {
    let _this = this;
    confirm({
      title: '提醒',
      content: '确定要驳回吗?',
      onOk() {
        _this.setState({
          loading: true,
        })
        $.ajax({
          url: globalConfig.context + '/api/admin/outsourceOrg/superAdminReject',
          method: 'post',
          data: {
            id: _this.props.mid,
          },
        }).done(
            function (data) {
              _this.setState({
                loading: false,
              })
              if (!data.error.length) {
                message.success('驳回成功!')
                _this.props.onRefresh();
                _this.getSelectOutsourceLog();
              } else {
                message.warning(data.error[0].message)
              }
            }.bind(_this)
        )
      }
    })
  }

  render() {
    return (
        <div>
          { this.props.oldInfor && Object.keys(this.props.oldInfor).length > 0 ?
            <OldInforProject oldInfor={this.props.oldInfor}/> :
              <div className="App">
                <div className="projectType">
                  <div className="typeTitle">
                    <div>类型:</div>
                  </div>
                  {
                    parseInt(this.props.startType) === 0 ?
                        <div>
                          <div>外包(外包派单,不走总部)</div>
                          <div className="tipsText">提示高于总部价格,费用个人承担</div>
                        </div> :
                        <div>供应商信息(普通单)</div>
                  }
                  <div style={{marginLeft:'auto'}}>
                    <span style={{color:'#58a3ff'}}>项目状态:</span>{getProjectName(parseInt(this.props.projectStatus))}
                  </div>
                </div>
                {
                  this.props.projectType === 1?
                      <div style={{
                        display:'flex',
                        flexFlow:'row nowrap',
                        alignItems:'center',
                        padding:'0px 0px 10px 20px'
                      }}>
                        <div>
                          专利类型:<span style={{marginLeft:'15px'}}>{this.props.patentType === 0 ? '专利申请/变更' : '专利转让'}</span>
                        </div>
                        <div style={{paddingLeft:'100px'}}>
                          专利名称:<span style={{marginLeft:'15px'}}>
                            {
                              this.props.patentNameType === 0 ? '实用新型专利' :
                                  this.props.patentNameType === 1 ? '发明专利' :
                                      this.props.patentNameType === 2 ? '外观专利' :
                                          this.props.patentNameType === 3 ? this.props.patentName : ''
                            }
                          </span>
                        </div>
                    </div> : <div/>
                }
                {
                  this.props.projectType === 1 && this.props.startType !== 0?
                      <div style={{padding:'0px 0px 10px 20px',display:'flex', alignItems:'center',}}>
                        官费:
                        {
                          this.props.patentType === 1 ?
                              <span style={{marginLeft:'15px'}}>{this.props.containOfficialFees === 0 ? '实际已缴费' : '实际未缴费'}</span>:
                              <PatentCheck
                                  style={{
                                    display:'flex',
                                    alignItems:'center',
                                  }}
                                  id={this.props.tid}
                                  isAuditPayment={this.props.isAuditPayment}
                                  isAuditPaymentGLY={this.props.isAuditPaymentGLY}
                                  patentTypeName={this.props.patentTypeName}
                                  patentTypeId={this.props.patentTypeId}
                                  checkStatus={this.props.checkStatus}  //核对状态
                                  projectType={this.props.projectType}  //项目类型
                                  patentType={this.props.patentType}   //专利类型
                                  startType={this.props.startType}   //1供应商 0外包
                                  orderTaskOfficialCost={this.props.orderTaskOfficialCost}  //1含官费 0不含官费
                                  orderTaskCostReduction={this.props.orderTaskCostReduction} //1有费减 0无费减
                                  isPreviewPay={this.props.isPreviewPay}
                                  status={this.props.status}
                                  onRefresh={this.props.onRefresh}
                                  onPayOfficialExpenses={()=>{
                                    this.setState({
                                      previewPayVisible: true,
                                      type: 2,
                                    })
                                  }}
                              />
                        }
                      </div> : null
                }
                <div className="thirdParty">
                  <div>
                    <span className="title">
                      第三方信息
                    </span>
                    {this.props.startType === 1 && !this.props.isAuditPayment && !this.props.isAuditPaymentGLY ? <Button
                        type="primary"
                        onClick={(e) => {
                          this.setState({
                            ThirdListVisible: true,
                          })
                        }}
                        style={{
                          float: 'right',
                          marginRight: '50px',
                          marginBottom: '15px',
                        }}
                    >
                      +新增第三方信息
                    </Button> : null}
                  </div>
                  <div
                      className="clearfix"
                  >
                    <Spin spinning={this.state.loading}>
                      <Form layout="horizontal">
                        <Table
                            pagination={false}
                            columns={this.state.ContactsListsNew}
                            dataSource={this.props.thirdInfoList}
                            onRowClick={this.tableRowClickOne}
                            scroll={{ x: 'max-content', y: 0 }}
                            style={{
                              cursor: 'pointer',
                            }}
                            bordered
                            size="middle"
                        />
                        <Col span={24} offset={9} style={{ marginTop: '15px' }}/>
                      </Form>
                    </Spin>
                  </div>
                </div>
                {/*如果是软著类或者专利类的专利申请,隐藏付款节点但当为外包类型时,无需隐藏*/}
                {(!((this.props.projectType === 1 && this.props.patentType === 0) || this.props.projectType === 2)) || this.props.startType === 0 ? <div className="thirdParty">
                  <div>
                    <span className="title">
                      付款节点
                    </span>
                    {this.props.startType === 1 && !this.props.isAuditPayment && !this.props.isAuditPaymentGLY ? <Button
                        type="primary"
                        onClick={(e) => {
                          this.getPayNodeCompany();
                          this.setState({
                            PayNodeVisible: true,
                          })
                        }}
                        style={{
                          float: 'right',
                          marginRight: '50px',
                          marginBottom: '15px',
                        }}
                    >
                      +新增付款节点
                    </Button> : null}
                  </div>
                  <div
                      className="clearfix"
                  >
                    <Spin spinning={this.state.loading}>
                      <Form layout="horizontal">
                        <Table
                            pagination={false}
                            columns={this.state.PayNodeTableColunms}
                            dataSource={this.props.dataSource}
                            onRowClick={this.payNodeTableRowClickOne}
                            style={{
                              cursor: 'pointer',
                            }}
                            scroll={{ x: 'max-content', y: 0 }}
                            bordered
                            size="middle"
                        />
                        <Col span={24} offset={9} style={{ marginTop: '15px' }}/>
                      </Form>
                    </Spin>
                  </div>
                </div> : <div/>}
                <div
                    style={{
                      borderTop: '1px #000000 dashed',
                      padding: '10px 20px 0px 20px',
                    }}
                >
                  <div>
                    <div className="title">备注</div>
                    <div style={{fontSize:'15px'}}>
                      {this.props.outsourceRemarks}
                    </div>
                  </div>
                  {this.props.fileList && this.props.fileList.length > 0 ? <div style={{paddingTop:'10px'}}>
                    <div className="title">合同/协议扫描件</div>
                    <div>
                      <ImgList fileList={this.props.fileList} ItemWidth={'96px'}/>
                    </div>
                    {/*<Upload*/}
                    {/*    className="demandDetailShow-upload"*/}
                    {/*    listType="picture-card"*/}
                    {/*    fileList={this.props.fileList}*/}
                    {/*    onPreview={(file) => {*/}
                    {/*      this.setState({*/}
                    {/*        previewImage: file.url || file.thumbUrl,*/}
                    {/*        previewVisible: true,*/}
                    {/*      })*/}
                    {/*    }}*/}
                    {/*/>*/}
                    <Modal
                        maskClosable={false}
                        footer={null}
                        visible={this.state.previewVisible}
                        onCancel={() => {
                          this.setState({ previewVisible: false })
                        }}
                    >
                      <img
                          alt=""
                          style={{ width: '100%' }}
                          src={this.state.previewImage || ''}
                      />
                    </Modal>
                  </div> : <div/>}
                </div>
                <Spin spinning={this.state.outsourcingLogLoading}>
                  {parseInt(this.props.startType) !== 1 && this.state.outsourceLogs.length !== 0 ? <div className="outsourceLogConent">
                     <div className="title" style={{
                       paddingBottom: 0,
                     }}>外包状态</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> : <div/>}
                </Spin>
                <Spin spinning={this.state.payRecordsLoading}>
                  <PaymentRecord
                      {...this.props}
                      ref={res=>this.paymentRecordRef=res}
                      tid={this.props.tid}
                      isAuditPayment={this.props.isAuditPayment}
                      projectType={this.props.projectType}
                      patentType={this.props.patentType}
                      isAuditPaymentGLY={this.props.isAuditPaymentGLY}
                  />
                </Spin>
                {/*
                  申请付款
                  tid:项目id
                  nodeId: 付款节点id
                  previewPayInfor: 项目或者节点信息
               */}
                {this.state.previewPayVisible ? <ApplyPaymentModal
                    {...this.props}
                    tid={this.props.tid}
                    type={this.state.type}
                    nodeId={this.state.nodeId}
                    projectType={this.props.projectType}
                    patentType={this.props.patentType}
                    previewPayInfor={this.state.previewPayInfor}
                    visible={this.state.previewPayVisible}
                    commodityQuantity={this.props.commodityQuantity}
                    startType={this.props.startType}   //1供应商 0外包
                    onRefresh={()=>{
                      this.props.onRefresh();
                      this.paymentRecordRef.refresh();
                    }}
                    changeVisible={()=>{
                      this.setState({
                        previewPayVisible: false,
                        nodeId: 0,                  //付款节点id
                        previewPayInfor: {},
                        type: 1
                      })
                    }}/> : <div/>}
              </div>
          }
          {/*管理员在审核通过的情况下才有此操作*/}
          {
            window.adminData.isSuperAdmin && this.props.status === 1 ? <div style={{
            flex:1,
            marginTop:'30px',
          }}>
                <Button
                    onClick={()=>{
                      this.superAdminReject();
                    }}
                    style={{
                      color: '#ffffff',
                      background: '#f00',
                      border: 'none',
                      width: '30%',
                      height: '40px',
                      display: 'flex',
                      fontSize: '15px',
                      justifyContent: 'center',
                      alignItems: 'center',
                      margin: '0 auto',
                    }}>
                  驳回
                </Button>
          </div> : null
          }
          {this.state.ThirdListVisible ? <NewSupplier
              isLaunch//是否项目已经发起
              patentNameType={this.props.patentNameType}
              tid={this.props.tid}
              patentType={this.props.patentType}
              projectType={this.props.startType === 0 ? 0 : this.props.projectType}
              realProjectType={this.props.projectType}       //真实的项目类型
              startType={this.props.startType}               //项目类型 0外包  1供应商
              visible={this.state.ThirdListVisible}
              onCancel={() => {
                this.props.onRefresh();
                this.setState({
                  ThirdListVisible: false,
                })
              }}/> : null}
          {this.state.PayNodeVisible ? <OperationPayNode
              tid={this.props.tid}
              cSort={this.props.sort}
              visible={this.state.PayNodeVisible}
              thirdInfoList={this.props.thirdInfoList}
              supplierList={this.state.PayNodeCompany}
              onCancel={() => {
                this.setState({
                  PayNodeVisible: false,
                  PayNodeCompany:[],
                })
                this.props.onRefresh();
              }}
          /> : <div/>}
        </div>
    )
  }
}

export default CheckProject