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 {text}
}
},
},
{
title: '付款科目',
dataIndex: 'dunType',
key: 'dunType',
render: (text, record) => {
if (text) {
return {text}
}
},
},
{
title: '付款时间',
dataIndex: 'partyTimes',
key: 'partyTimes',
render: (text, record) => {
return {text ? text : '/'}
},
},
{
title: '数量',
dataIndex: 'quantity',
key: 'quantity',
render: (text, record) => {
if (text) {
return {text}
}
},
},
{
title: '总价(万元)',
dataIndex: 'totalAmount',
key: 'totalAmount',
render: (text, record) => {
return
{
isNaN(text) ? text : parseFloat(text)
}
},
},
{
title: '已付',
dataIndex: 'partyAmount',
key: 'partyAmount',
render: (text, record) => {
if (text) {
return {text}
}
},
},
{
title: '操作',
dataIndex: 'dels',
key: 'dels',
render: (text, record, index) => {
return (
{/*外包审核通过后,咨询师/咨询经理可申请付款*/}
{/*存在支付节点时不显示第三方的申请付款*/}
{/*0-待审核 ,1-审核通过,2-审核拒绝 true [NULL]*/}
{/*this.props.startType 0外包 1供应商(不需要审核)*/}
{/*record.status 0-未支付 1-待全款 ,2已全款 status=2的时候已经全款,按钮可以去掉了*/}
{this.props.status === 2 && !this.props.isAuditPaymentGLY ?
{
this.payNodeConfirmDeletNew(record)
}}
okText="删除"
cancelText="不删除"
>
:
}
)
},
},
],
})
//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 {text}
}
},
},
{
title: '单价(万元)',
dataIndex: 'unitPrice',
key: 'unitPrice',
render: (text, record) => {
if (text) {
return
{
isNaN(text) ? text : parseFloat(text)
}
}
},
},
{
title: '数量',
dataIndex: 'quantity',
key: 'quantity',
render: (text, record) => {
if (text) {
return {text}
}
},
},
{
title: '总价(万元)',
dataIndex: 'totalAmount',
key: 'totalAmount',
render: (text, record) => {
if (text) {
return
{
isNaN(text) ? text : parseFloat(text)
}
}
},
},
{
title: '备注',
dataIndex: 'remarks',
key: 'remarks',
render: (text) => {
return (
{text}
)
}
},
{
title: '操作',
dataIndex: 'action',
key: 'action',
render: (text, record) => {
return (
{/*外包审核通过后,咨询师/咨询经理可申请付款*/}
{/*存在支付节点时不显示第三方的申请付款*/}
{/*0-待审核 ,1-审核通过,2-审核拒绝 true [NULL]*/}
{/*this.props.startType 0外包 1供应商(不需要审核)*/}
{this.props.status === 2 && !this.props.isAuditPaymentGLY ?
{
this.confirmDeletNew(record)
}}
okText="删除"
cancelText="不删除"
>
:
}
)
},
},
],
})
} else if (projectType === 2) { //2软著
this.setState({
ContactsListsNew: [
{
title: '供应商名称',
dataIndex: 'companyName',
key: 'companyName',
render: (text, record, index) => {
if (text) {
return {text}
}
},
},
{
title: '单价(万元)',
dataIndex: 'unitPrice',
key: 'unitPrice',
render: (text, record) => {
if (text) {
return
{
isNaN(text) ? text : parseFloat(text)
}
}
},
},
{
title: '数量',
dataIndex: 'quantity',
key: 'quantity',
render: (text, record) => {
if (text) {
return {text}
}
},
},
{
title: '总价(万元)',
dataIndex: 'totalAmount',
key: 'totalAmount',
render: (text, record) => {
if (text) {
return
{
isNaN(text) ? text : parseFloat(text)
}
}
},
},
{
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 (
{/*外包审核通过后,咨询师/咨询经理可申请付款*/}
{/*存在支付节点时不显示第三方的申请付款*/}
{/*0-待审核 ,1-审核通过,2-审核拒绝 true [NULL]*/}
{
}
{this.props.status === 2 && !this.props.isAuditPaymentGLY ?
{
this.confirmDeletNew(record)
}}
okText="删除"
cancelText="不删除"
>
:
}
)
},
},
],
})
} 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 {text}
}
},
},
{
title: '单价(万元)',
dataIndex: 'unitPrice',
key: 'unitPrice',
render: (text, record) => {
if (text) {
return
{
isNaN(text) ? text : parseFloat(text)
}
}
},
},
{
title: '数量',
dataIndex: 'quantity',
key: 'quantity',
render: (text, record) => {
if (text) {
return {text}
}
},
},
// {
// 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
{
isNaN(text) ? text : parseFloat(text)
}
}
},
},
{
title: '备注',
dataIndex: 'remarks',
key: 'remarks',
render: (text) => {
return (
{text}
)
}
},
{
title: '操作',
dataIndex: 'action',
key: 'action',
render: (text, record) => {
return (
{/*外包审核通过后,咨询师/咨询经理可申请付款*/}
{/*存在支付节点时不显示第三方的申请付款*/}
{/*0-待审核 ,1-审核通过,2-审核拒绝 true [NULL]*/}
{this.props.status === 2 && !this.props.isAuditPaymentGLY ?
{
this.confirmDeletNew(record)
}}
okText="删除"
cancelText="不删除"
>
:
}
)
},
},
],
})
} else {
this.setState({
ContactsListsNew: [
{
title: '供应商名称',
dataIndex: 'companyName',
key: 'companyName',
render: (text, record, index) => {
if (text) {
return {text}
}
},
},
{
title: '单价(万元)',
dataIndex: 'unitPrice',
key: 'unitPrice',
render: (text, record) => {
if (text) {
return
{
isNaN(text) ? text : parseFloat(text)
}
}
},
},
{
title: '数量',
dataIndex: 'quantity',
key: 'quantity',
render: (text, record) => {
if (text) {
return {text}
}
},
},
{
title: '总价(万元)',
dataIndex: 'totalAmount',
key: 'totalAmount',
render: (text, record) => {
if (text) {
return
{
isNaN(text) ? text : parseFloat(text)
}
}
},
},
{
title: '备注',
dataIndex: 'remarks',
key: 'remarks',
render: (text) => {
return (
{text}
)
}
},
{
title: '操作',
dataIndex: 'action',
key: 'action',
render: (text, record) => {
return (
{/*外包审核通过后,咨询师/咨询经理可申请付款*/}
{/*存在支付节点时不显示第三方的申请付款*/}
{/*0-待审核 ,1-审核通过,2-审核拒绝 true [NULL]*/}
{
}
{this.props.status === 2 && !this.props.isAuditPaymentGLY ?
{
this.confirmDeletNew(record)
}}
okText="删除"
cancelText="不删除"
>
:
}
)
},
},
]
})
}
} else if (projectType === 3) { //3审计
this.setState({
ContactsListsNew: [
{
title: '供应商名称',
dataIndex: 'companyName',
key: 'companyName',
render: (text, record, index) => {
if (text) {
return {text}
}
},
},
{
title: '单价(万元)',
dataIndex: 'unitPrice',
key: 'unitPrice',
render: (text, record) => {
if (text) {
return
{
isNaN(text) ? text : parseFloat(text)
}
}
},
},
{
title: '数量',
dataIndex: 'quantity',
key: 'quantity',
render: (text, record) => {
if (text) {
return {text}
}
},
},
{
title: '总价(万元)',
dataIndex: 'totalAmount',
key: 'totalAmount',
render: (text, record) => {
if (text) {
return
{
isNaN(text) ? text : parseFloat(text)
}
}
},
},
{
title: '审计',
dataIndex: 'audit',
key: 'audit',
render: (text, record) => {
if (text) {
return {text === 0 ? '无审计' : text === 1 ? '年审' : '专审'}
}
},
},
{
title: '公司资产(万元)',
dataIndex: 'assets',
key: 'assets',
render: (text, record) => {
if (text) {
return {text}
}
},
},
{
title: '收入(万元)',
dataIndex: 'income',
key: 'income',
render: (text, record) => {
if (text) {
return {text}
}
},
},
{
title: '操作',
dataIndex: 'action',
key: 'action',
render: (text, record) => {
return (
{/*外包审核通过后,咨询师/咨询经理可申请付款*/}
{/*存在支付节点时不显示第三方的申请付款*/}
{/*0-待审核 ,1-审核通过,2-审核拒绝 true [NULL]*/}
{
}
{this.props.status === 2 && !this.props.isAuditPaymentGLY ?
{
this.confirmDeletNew(record)
}}
okText="删除"
cancelText="不删除"
>
:
}
)
},
},
]
})
}
}
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 (
{this.props.oldInfor && Object.keys(this.props.oldInfor).length > 0 ?
:
{
parseInt(this.props.startType) === 0
?
外包(外包派单,不走总部)
提示高于总部价格,费用个人承担
: parseInt(this.props.startType) === 1
?
供应商信息(普通单)
:
高质量申请
}
项目状态:{getProjectName(parseInt(this.props.projectStatus))}
{
this.props.projectType === 1 ?
专利类型:{this.props.patentType === 0 ? '专利申请/变更' : '专利转让'}
专利名称:
{
this.props.patentNameType === 0 ? '实用新型专利' :
this.props.patentNameType === 1 ? '发明专利' :
this.props.patentNameType === 2 ? '外观专利' :
this.props.patentNameType === 3 ? this.props.patentName : ''
}
:
}
{
this.props.projectType === 1 && this.props.startType !== 0 ?
官费:
{
this.props.patentType === 1 ?
{this.props.containOfficialFees === 0 ? '实际已缴费' : '实际未缴费'} :
{
this.setState({
previewPayVisible: true,
type: 2,
})
}}
/>
}
: null
}
第三方信息
{this.props.startType === 1 && !this.props.isAuditPayment && !this.props.isAuditPaymentGLY ? : null}
{/*如果是软著类或者专利类的专利申请,隐藏付款节点但当为外包类型时,无需隐藏*/}
{(!((this.props.projectType === 1 && this.props.patentType === 0) || this.props.projectType === 2)) || this.props.startType === 0 || this.props.startType === 2 ?
付款节点
{this.props.startType === 1 && !this.props.isAuditPayment && !this.props.isAuditPaymentGLY ? : null}
:
}
备注
{this.props.outsourceRemarks}
{this.props.fileList && this.props.fileList.length > 0 ?
合同/协议扫描件
{/*
{*/}
{/* this.setState({*/}
{/* previewImage: file.url || file.thumbUrl,*/}
{/* previewVisible: true,*/}
{/* })*/}
{/* }}*/}
{/*/>*/}
{
this.setState({ previewVisible: false })
}}
>
:
}
{parseInt(this.props.startType) !== 1 && this.state.outsourceLogs.length !== 0 ?
外包状态
{
this.state.outsourceLogs && this.state.outsourceLogs.map((value, index) => (
{value.aname}
{
value.status === 0 ?
发起外包审核 :
value.status === 1 ? 通过 :
驳回
}
{value.remarks}
{value.createTimes}
))
}
: }
this.paymentRecordRef = res}
tid={this.props.tid}
isAuditPayment={this.props.isAuditPayment}
projectType={this.props.projectType}
patentType={this.props.patentType}
isAuditPaymentGLY={this.props.isAuditPaymentGLY}
/>
{/*
申请付款
tid:项目id
nodeId: 付款节点id
previewPayInfor: 项目或者节点信息
*/}
{this.state.previewPayVisible ?
{
this.props.onRefresh();
this.paymentRecordRef.refresh();
}}
changeVisible={() => {
this.setState({
previewPayVisible: false,
nodeId: 0, //付款节点id
previewPayInfor: {},
type: 1
})
}} /> : }
}
{/*管理员在审核通过的情况下才有此操作*/}
{
window.adminData.isSuperAdmin && this.props.status === 1 ?
: null
}
{this.state.ThirdListVisible ?
{
this.props.onRefresh();
this.setState({
ThirdListVisible: false,
})
}} /> : null}
{this.state.PayNodeVisible ? {
this.setState({
PayNodeVisible: false,
PayNodeCompany: [],
})
this.props.onRefresh();
}}
/> : }
)
}
}
export default CheckProject