import React from 'react'
import $ from 'jquery'
import {
Spin,
Button,
Tabs,
Table,
message,
Modal,
Form,
Upload,
Tag,
Tooltip,
} from 'antd'
import {
getProcessStatus,
getApproval,
getTaskStatus,
getLiquidationStatus,
splitUrl,
getProjectStatus,
getboutique,
getprovince,
ShowModal,
getRefundStatus,
getFormRetrieves,
} from '@/tools'
const FormItem = Form.Item
import ResolutionDetail from '@/resolutionDetail'
import ImgList from "./common/imgList";
import CheckProject from "./manageCenter/components/checkProject";
import { cuiJieDian } from '@/dataDic.js'
import { getProjectName } from "./tools";
import OrderCoor from './manageCenter/order/orderNew/changeComponent/orderCoor'
const { TabPane } = Tabs
const project = React.createClass({
getInitialState() {
return {
oldInfor: {},
patentNameType: -1,
patentType: -1,
paySubject: [],
orderNos: '',
containOfficialFees: 0,//官费缴费情况
record: this.props.record,
paginations: false,
tabsKey: "1",
columnsX: [
{
title: '业务项目名称',
dataIndex: 'commodityName',
key: 'commodityName',
render: (text, record) => {
return (
{text}{record.patentTypeName}
)
}
},
{
title: '项目类别',
dataIndex: 'cname',
key: 'cname',
},
{
title: '项目数量',
dataIndex: 'commodityQuantity',
key: 'commodityQuantity',
render: (text, record) => {
if (record.splitStatus == 1) {
return (
{text}{' '}
{
e.stopPropagation()
this.showRes(record)
}}
>
已拆
)
} else {
return text
}
},
},
{
title: '金额(万元)',
dataIndex: 'commodityPrice',
key: 'commodityPrice',
},
{
title: '负责人',
dataIndex: 'contacts',
key: 'contacts',
},
{
title: '负责人电话',
dataIndex: 'contactsMobile',
key: 'contactsMobile',
},
{
title: '主要项目',
dataIndex: 'main',
key: 'main',
render: (text) => {
return text ? '是' : '否'
},
},
{
title: "总年限",
dataIndex: "yearSum",
key: "yearSum",
render: (text, record) => {
return (
{["", "一年", "二年", "三年", "四年", "五年"][text]}
);
}
},
{
title: "年限",
dataIndex: "serviceLife",
key: "serviceLife",
render: (text, record) => {
return (
{!!text && JSON.parse(text).toString()}
);
}
},
{
title: "本次派单",
dataIndex: "serviceYear",
key: "serviceYear",
render: (text, record) => {
return (
{!text ? "" : text}
);
}
},
{
title: '项目说明',
dataIndex: 'taskComment',
key: 'taskComment',
render: (text) => {
return (
{text}
)
},
},
],
columnsA: [
{
title: '流程',
dataIndex: 'content',
key: 'content',
align: 'center',
},
{
title: '操作人',
dataIndex: 'aName',
key: 'aName',
align: 'center',
},
{
title: '时间',
dataIndex: 'createTimes',
key: 'createTimes',
align: 'center',
},
],
resVisible: false,
companyColumns: [
{
title: '公司',
dataIndex: 'name',
key: 'name',
//fixed:'left',
width: 160,
},
{
title: '联系人',
dataIndex: 'contacts',
key: 'contacts',
},
{
title: '联系人电话',
dataIndex: 'contactsMobile',
key: 'contactsMobile',
},
{
title: '地址',
dataIndex: 'companyProvinceArr',
key: 'companyProvinceArr',
width: 140,
render: (test) => {
return test[0] === null
? ''
: getprovince(test[0]) +
'/' +
getprovince(test[1]) +
'/' +
getprovince(test[2])
},
},
{
title: '详细地址',
dataIndex: 'address',
key: 'address',
},
],
}
},
componentWillReceiveProps(nextProps) {
this.setState({
record: nextProps.record,
})
if (nextProps.record) {
this.setState({
orderNo: nextProps.record
})
this.xiangqing(nextProps.record.id)
this.xiangqings(nextProps.record.orderNo)
this.xiangmu(nextProps.record.orderNo)
this.loaduserss(nextProps.record)
}
},
// handleOk() {
// this.setState({
// newVisible: false
// });
// // window.setTimeout( () => {
// // this.setState({
// // newVisible: true
// // });
// // },)
// },
// 拆分详细
showRes(record) {
this.setState({
resVisible: true,
resRecord: record,
})
},
resCancel() {
this.setState({
resVisible: false,
})
},
// 详情
xiangqing(id) {
this.setState({
loading: true,
})
$.ajax({
method: 'get',
dataType: 'json',
crossDomain: false,
url: globalConfig.context + '/api/admin/orderProject/orderTaskDetail',
data: {
id: id,
},
success: function (data) {
if (data.error.length || data.data.list == '') {
if (data.error && data.error.length) {
message.warning(data.error[0].message)
}
} else {
let thisdata = data.data
this.setState({
orderTaskCostReduction: thisdata.costReduction,//费减
checkStatus: thisdata.checkStatus,//核对状态
commodityQuantity: thisdata.commodityQuantity,//项目数量
patentTypeName: thisdata.patentTypeName,//官费类型名称
patentTypeId: thisdata.patentType,//官费专利类型
id: thisdata.id, //ID
orderNo: thisdata.orderNo, //订单编号
userName: thisdata.userName, //客户名称
taskName: thisdata.taskName, //任务名称
cname: thisdata.cname, //项目品类
contractNo: thisdata.contractNo, //合同编号
projectStatus: thisdata.projectStatus, //项目状态
taskStatus: thisdata.taskStatus, //任务状态
taskDate: thisdata.taskDate, //分配时间
taskComment: thisdata.taskComment, //说明
attachmentUrl: thisdata.attachmentUrl
? splitUrl(
thisdata.attachmentUrl,
',',
globalConfig.avatarHost + '/upload'
)
: [], //图片地址
salesmanName: thisdata.salesmanName, //订单负责人
startDate: thisdata.startDate, //启动日期
endDate: thisdata.endDate, //结束日期
acceptDate: thisdata.acceptDate, //受理日期
reviewDate: thisdata.reviewDate, //评审日期
publicityDate: thisdata.publicityDate, //公示日期
licenceDate: thisdata.licenceDate, //发证日期
contacts: thisdata.contacts, //联系人
contactMobile: thisdata.contactMobile, //联系人电话
legalPerson: thisdata.legalPerson, //法人
legalPersonTel: thisdata.legalPersonTel, //法人电话
certificateNumber: thisdata.certificateNumber, //证书编号
status: thisdata.status, //状态
formRetrieve: thisdata.formRetrieve, // 满意度调查表状态
satisfactionDegree: thisdata.satisfactionDegree, // 满意度
satisfactionDegreeUrl: thisdata.satisfactionDegreeUrl ? splitUrl(thisdata.satisfactionDegreeUrl, ",", globalConfig.avatarHost + "/upload") : [], // 满意度调查表
taskRefund: thisdata.taskRefund, //退单
refundContent: thisdata.refundContent, //退单信息
retrieveContent: thisdata.retrieveContent, //回收信息
arrivalMoney: thisdata.arrivalMoney, //是否到款
setUpAmount: thisdata.setUpAmount, //立项金额
declareUser: thisdata.declareUser, //账号
declarePwd: thisdata.declarePwd, //密码
depName: thisdata.depName, //订单部门
outsourceName: thisdata.outsourceName, //外包公司名称
outsourcePrice: thisdata.outsourcePrice, //外包价格
declarationBatch: thisdata.declarationBatch, //外包价格
projectType: thisdata.bpType,//项目类型
orderTaskOfficialCost: thisdata.officialCost, //官费 0无 1有
sort: thisdata.sort,
})
if (thisdata.patentTransfer) {
this.setState({
patentType: 1
})
} else {
this.setState({
patentType: 0
})
}
}
}.bind(this),
}).always(
function () {
this.setState({
loading: false,
})
}.bind(this)
)
},
// 获取csort下的数据
getCsortData(cSort) {
cuiJieDian.map((item) => {
if (item.value == cSort) {
this.setState({
paySubject: item.children,
})
}
})
},
//订单详情
xiangqings(orderNos) {
this.setState({
loading: true,
})
$.ajax({
method: 'get',
dataType: 'json',
crossDomain: false,
url: globalConfig.context + '/api/admin/newOrder/getOrderNewDetail',
data: {
orderNo: orderNos,
},
success: function (data) {
let thisdata = data.data
let ProvinceCityArr = []
let ProvinceS = thisdata.locationProvince //省
let citys = thisdata.locationCity //市
let Areas = thisdata.locationArea //区
ProvinceCityArr.push(ProvinceS, citys, Areas)
if (data.error.length || data.data.list == '') {
if (data.error && data.error.length) {
message.warning(data.error[0].message)
}
} else {
this.setState({
examineName: thisdata.examineName,
processStatus: thisdata.processStatus, //流程状态
liquidationStatus: thisdata.liquidationStatus, //结算状态
approval: thisdata.approval, //特批状态
orderRemarks: thisdata.orderRemarks, //订单留言
salesmanName: thisdata.salesmanName, //营销员名称
salesmanMobile: thisdata.salesmanMobile, //营销员电话
oldSalesmanName: thisdata.oldSalesmanName, //营销员名称
oldSalesmanMobile: thisdata.oldSalesmanMobile, //营销员电话
financeName: thisdata.financeName, //财务名称
financeMobile: thisdata.financeMobile, //财务电话
nowFinance: thisdata.nowFinance, //财务名称
nowFinanceMobile: thisdata.nowFinanceMobile, //财务电话
depName: thisdata.depName, //订单部门
locationProvince: thisdata.locationProvince,
locationCity: thisdata.locationCity,
locationArea: thisdata.locationArea,
ProvinceCity: ProvinceCityArr,
postalAddress: thisdata.postalAddress, //详细地址
outsource: thisdata.outsource,
})
}
}.bind(this),
}).always(
function () {
this.setState({
loading: false,
})
}.bind(this)
)
},
//查看下证信息
loaduserss(record) {
this.setState({
loading: true,
})
$.ajax({
method: 'get',
dataType: 'json',
crossDomain: false,
url: globalConfig.context + '/api/admin/orderProject/selectTaskProgress',
data: {
tid: record.id,
},
success: function (data) {
let theArr = []
let thisData = []
if (!thisData) {
if (data.error && data.error.length) {
message.warning(data.error[0].message)
}
thisData = {}
} else {
for (let i = 0; i < data.data.length; i++) {
thisData = data.data[i]
theArr.push({
num: i + 1,
key: i,
id: thisData.id, //编号
alreadyNumber: thisData.alreadyNumber, //下证数
licenceTimes: thisData.licenceTimes, //下证时间
notCount: thisData.notCount, //未下证数
flag: true,
})
}
this.setState({
contactList: theArr,
})
}
}.bind(this),
}).always(
function () {
this.setState({
loading: false,
})
}.bind(this)
)
},
//项目列表
xiangmu(orderNos) {
this.setState({
loading: true,
})
$.ajax({
method: 'get',
dataType: 'json',
crossDomain: false,
url: globalConfig.context + '/api/admin/newOrder/getOrderTask',
data: {
orderNo: orderNos,
},
success: function (data) {
let theArr = []
if (data.error.length || data.data.list == '') {
if (data.error && data.error.length) {
message.warning(data.error[0].message)
}
} else {
for (let i = 0; i < data.data.length; i++) {
let thisdata = data.data[i];
thisdata.key = i;
thisdata.sort = thisdata.cSort;
theArr.push(thisdata);
}
}
this.setState({
dataSourceX: theArr,
})
}.bind(this),
}).always(
function () {
this.setState({
loading: false,
})
}.bind(this)
)
},
tableRowClickX(record) {
this.setState({
jid: record.id, //项目ID
kid: record.commodityId, //商品ID
commodityName: record.commodityName, //金额
commodityPrice: record.commodityPrice, //金额
commodityQuantity: record.commodityQuantity, //数量
taskComment: record.taskComment, //备注
main: record.main.toString(), //是否为主要
addnextVisible: true,
addState: 0,
})
},
caozuorizhi() {
this.setState({
loading: true,
})
this.setState({
visibleA: true,
})
$.ajax({
method: 'get',
dataType: 'json',
crossDomain: false,
url: globalConfig.context + '/api/admin/orderProject/TaskLogList',
data: {
id: this.state.id,
},
success: function (data) {
let theArr = []
if (data.error.length || data.data.list == '') {
if (data.error && data.error.length) {
message.warning(data.error[0].message)
}
} else {
for (let i = 0; i < data.data.length; i++) {
let thisdata = data.data[i]
theArr.push({
key: i,
id: thisdata.id, //日志ID
content: thisdata.content, //流程
taskId: thisdata.taskId, //任务ID
aName: thisdata.aName, //负责人
createTimes: thisdata.createTimes, //时间
})
}
}
this.setState({
dataSourceA: theArr,
})
}.bind(this),
}).always(
function () {
this.setState({
loading: false,
})
}.bind(this)
)
}, //关闭操作工时
visitCancelA() {
this.setState({
visibleA: false,
})
},
waiDetail() {
let url = window.location.href.substring(7)
this.setState({
loading: true,
})
$.ajax({
method: 'get',
dataType: 'json',
crossDomain: false,
url:
globalConfig.context + '/api/admin/outsourceOrg/orderOutsourceDtails',
data: {
tid: this.props.record.id,
orderNo: this.props.record.orderNo,
},
}).done(
function (data) {
this.setState({
loading: false,
})
if (!data.error.length && data.data) {
if (!isNaN(parseFloat(data.data.unitNumber))) {
this.setState({
oldInfor: {
companyName: data.data.companyName,
unitPrice: data.data.unitPrice,
unitNumber: data.data.unitNumber,
amount: data.data.amount,
outsourceRemarks: data.data.outsourceRemarks,
refundStatus: data.data.refundStatus,
pictureUrl: data.data.pictureUrl
? splitUrl(
data.data.pictureUrl,
',',
globalConfig.avatarHost + '/upload',
url
)
: [], //图片地址
},
})
} else {
this.setState({
oldInfor: {},
})
}
this.setState({
containOfficialFees: data.data.actualOfficial,//官费类型 0实际已缴费 1实际未缴费
startType: data.data.startType, //类型
patentType: data.data.patentType, //专利类型
patentNameType: data.data.patentNameType, //专利名称类型
patentName: data.data.patentName, //专利名称
outsourceRemarks: data.data.outsourceRemarks,
remarks: data.data.remarks,
companyName: data.data.companyName,
amount: data.data.amount,
mid: data.data.id,
unitPrice: data.data.unitPrice,
refundStatus: data.data.refundStatus,
unitNumber: data.data.unitNumber,
pictureUrl: data.data.pictureUrl
? splitUrl(
data.data.pictureUrl,
',',
globalConfig.avatarHost + '/upload',
url
)
: [], //图片地址
createTimes: data.data.createTimes,
auditTimes: data.data.auditTimes,
})
} else if (data.error && data.error.length) {
message.warning(data.error[0].message)
} else if (!data.data) {
this.setState({
refundStatus: undefined,
containOfficialFees: undefined,//官费类型 0实际已缴费 1实际未缴费
startType: undefined, //类型
patentType: undefined, //专利类型
patentNameType: undefined, //专利名称类型
patentName: undefined, //专利名称
outsourceRemarks: undefined,
remarks: undefined,
companyName: undefined,
amount: undefined,
mid: undefined,
unitPrice: undefined,
unitNumber: undefined,
pictureUrl: undefined, //图片地址
createTimes: undefined,
auditTimes: undefined,
})
}
}.bind(this)
)
},
//加载外包
loadCompany() {
this.setState({
loading: true,
})
$.ajax({
method: 'get',
dataType: 'json',
crossDomain: false,
url: globalConfig.context + '/api/admin/outsourceOrg/selectOutsourceOrg',
data: {
tid: this.props.record.id,
orderNo: this.props.record.orderNo,
},
success: function (data) {
let theArr = []
if (data.error.length || data.data.list == '') {
if (data.error && data.error.length) {
message.warning(data.error[0].message)
}
} else {
for (let i = 0; i < data.data.length; i++) {
let thisdata = data.data[i]
let ProvinceCityArr = []
let ProvinceS = thisdata.province //省
let citys = thisdata.city //市
let Areas = thisdata.area //区
ProvinceCityArr.push(ProvinceS, citys, Areas)
theArr.push({
key: i,
id: thisdata.id, //外包Id
name: thisdata.name, //名称
contacts: thisdata.contacts, //联系人
contactsMobile: thisdata.contactsMobile, //联系人电话
companyProvinceArr: ProvinceCityArr,
address: thisdata.address,
remarks: thisdata.remarks,
})
}
}
this.setState({
companys: theArr,
})
}.bind(this),
}).always(
function () {
this.setState({
loading: false,
})
}.bind(this)
)
},
tabChange(e) {
this.setState({
tabsKey: e
})
if (e == 2) {
this.waiDetail();
this.payNodeTable();
this.thirdTable();
this.getCsortData();
} else if (e == 3) {
this.loadCompany()
}
},
//查看第三方信息表格
thirdTable() {
this.setState({
thirdInfoLoading: true,
})
let ajaxObj = $.ajax({
method: 'get',
dataType: 'json',
crossDomain: false,
url: globalConfig.context + '/api/admin/company/selectCompany',
data: {
tid: this.props.record.id,
},
success: function (data) {
if (data.error && data.error.length) {
message.warning(data.error[0].message)
} else {
let companyNameArr = [];
let theArr = [];
let thisData = [];
let arr = data.data || [];
let allTotalAmount = 0;
let type = 0;
let startType = 0;
let patentNameType = 0;
for (let i = 0; i < arr.length; i++) {
thisData = arr[i]
allTotalAmount =
(allTotalAmount * 10000 + thisData.totalAmount * 10000) / 10000
companyNameArr.push(thisData.companyName);
thisData.key = i;
type = thisData.patentType;
thisData.patentType = thisData.type;
theArr.push(thisData);
startType = thisData.startType;
patentNameType = thisData.patentNameType
}
if (!allTotalAmount) {
allTotalAmount = 0
}
for (let d = 0; d < theArr.length; d++) {
theArr[d].companyName = theArr[d].companyName + '-' + theArr[d].id;
companyNameArr[d] = {
companyName: theArr[d].companyName,
id: theArr[d].id,
}
}
if ((type === 0 || type === 1) && arr.length > 0) {
this.setState({
patentType: type === 0 ? 0 : 1, //0专利申请 1专利买卖
patentNameType: patentNameType, //0实用新型 1发明专利 2外观专利 3 其他
})
}
//设置项目类型
if (arr.length > 0) {
this.setState({
startType: startType
})
}
this.setState({
thirdInfoList: theArr,
})
}
}.bind(this),
}).always(
function () {
this.setState({
thirdInfoLoading: false,
})
}.bind(this)
)
this.setState({
selectCompanyAjaxObj: ajaxObj
})
},
payNodeTable() {
this.setState({
payNodeLoading: true,
})
let ajaxObj = $.ajax({
method: 'get',
dataType: 'json',
crossDomain: false,
url: globalConfig.context + '/api/admin/company/selectPaymentNode',
data: {
tid: this.props.record.id,
},
success: function (data) {
if (data.error && data.error.length) {
message.warning(data.error[0].message)
} else {
let payNodeArr = []
let thisData = []
let arr = data.data || []
//对#5283自定义的补充展示
this.state.paySubject.push({ key: '自定义', value: '0' })
for (let i = 0; i < arr.length; i++) {
thisData = arr[i]
//遍历paySubject,获取当前dunType对应的key
this.state.paySubject.map((item) => {
if (item.value == thisData.dunType) {
thisData.dunType = item.key
}
})
payNodeArr.push({
key: i,
id: thisData.id, //付款节点Id
nodeId: thisData.id, //付款节点Id
tid: thisData.tid,
companyName: thisData.companyName, //供应商名称
projectType: thisData.projectType, //项目分类
dunType: thisData.dunType, //催款分类
unitPrice: thisData.unitPrice, //单价
quantity: thisData.quantity, //数量
totalAmount: thisData.totalAmount, //总价
partyAmount: thisData.partyAmount, //付款
partyTimes: thisData.partyTimes, //付款时间
cid: thisData.cid, //机构id
status: thisData.status, //催款状态 0-未支付 1-待全款 ,2已全款 status=2的时候已经全款,申请付款按钮可以去掉了
})
}
for (let d = 0; d < payNodeArr.length; d++) {
payNodeArr[d].companyName = payNodeArr[d].companyName + '-' + payNodeArr[d].cid;
}
this.setState({
payNodeList: payNodeArr,
})
}
}.bind(this),
}).always(
function () {
this.setState({
payNodeLoading: false,
})
}.bind(this)
)
this.setState({
selectPaymentNodeAjaxObj: ajaxObj
})
},
render() {
const formItemLayout = {
labelCol: { span: 8 },
wrapperCol: { span: 14 },
}
const utils = {
getSatisfaction: function (num) {
switch (num) {
case 0:
return '未收回'
case 1:
return '已收回'
default:
return '其它'
}
},
getChargeback: function (num) {
switch (num) {
case 0:
return '已完成'
case 1:
return '未完成'
default:
return '其它'
}
},
}
return (
this.props.visible ? {
this.setState({
tabsKey: "1"
})
this.props.cancel()
}}
>
{this.state.resVisible ? (
) : (
''
)}
{this.state.tabsKey === "1" &&
}
{this.state.tabsKey === "2" ?
{
this.props.visible && this.state.tabsKey === '2' ?
{
this.waiDetail();
this.thirdTable();
this.payNodeTable()
this.xiangqing(this.state.id);
}}
/> :
}
{this.state.remarks}
{!(this.state.oldInfor && Object.keys(this.state.oldInfor).length > 0) ?
{getRefundStatus(this.state.refundStatus)}
:
}
{this.state.auditTimes}
: }
{/*{this.props.record && this.props.record.outsource == 1 ? (*/}
{/* */}
{/* */}
{/*
*/}
{/* {*/}
{/* return {record.remarks}
*/}
{/* }}*/}
{/* pagination={false}*/}
{/* />*/}
{/* */}
{/* */}
{/* */}
{/*) : (*/}
{/* ''*/}
{/*)}*/}
:
)
},
})
export default project