import React from 'react';
import { Button, Input, Select, Spin, Table, message, DatePicker, Upload, Form, Modal, Tabs, Col, Tag } from 'antd';
import $ from 'jquery/src/ajax';
import moment from 'moment';
import { getLiquidationStatus, getApprovedState, getProcessStatus, splitUrl, getjiedian, getboutique, getCuikuan, getProjectStatus, getRefundStatus } from '@/tools.js';
import './customer.less';
import ResolutionDetail from "@/resolutionDetail";
const checkOutsourcing = Form.create()(
React.createClass({
loadData(pageNo) {
this.setState({
visitModul: false,
loading: true,
ispage: pageNo,
modalVisible: false
});
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url:
globalConfig.context + "/api/admin/outsourceOrg/orderOutsourceList",
data: {
pageNo: pageNo || 1,
pageSize: this.state.pagination.pageSize,
contractNo: this.state.contractNoSearch,
name: this.state.nameSearch, //名称
starTime: this.state.releaseDate[0], //开始时间
endTime: this.state.releaseDate[1], //结束时间
refundStatus: this.state.refundStatusSearch //外包审核状态
},
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.list.length; i++) {
let thisdata = data.data.list[i];
theArr.push({
key: i,
id: thisdata.id, //用户ID
orderNo: thisdata.orderNo, //订单编号
contractNo: thisdata.contractNo, //签单金额
createTime: thisdata.createTime, //流程状态
signTime: thisdata.signTime, //结算状态
userName: thisdata.userName, //特批状态
depName: thisdata.depName, //签单时间
totalAmount: thisdata.totalAmount, //客户名称
adminName: thisdata.adminName, //营销员名称
financeName: thisdata.financeName, //财务名称
liquidationStatus: thisdata.liquidationStatus, //下单时间
refundStatus: thisdata.refundStatus
});
}
this.state.pagination.total = data.data.totalCount;
this.state.pagination.current = data.data.pageNo;
}
if (data.data && data.data.list && !data.data.list.length) {
this.state.pagination.total = 0;
}
this.setState({
dataSource: theArr,
pageNo: pageNo,
pagination: this.state.pagination,
selectedRowKeys: []
});
}.bind(this)
}).always(
function() {
this.setState({
loading: false
});
}.bind(this)
);
},
getInitialState() {
return {
page: 1,
releaseDate: [],
selectedRowKeys: [],
pictureUrl: [],
attachmentUrl: [],
paginations: false,
activeKey: "1",
confirmLoading: false,
aloading: false,
pagination: {
defaultCurrent: 1,
defaultPageSize: 10,
showQuickJumper: true,
pageSize: 10,
onChange: function(page) {
this.loadData(page);
}.bind(this),
showTotal: function(total) {
return "共" + total + "条数据";
}
},
columns: [
{
title: "订单编号",
dataIndex: "orderNo",
key: "orderNo"
},
{
title: "合同编号",
dataIndex: "contractNo",
key: "contractNo"
},
{
title: "创建时间",
dataIndex: "createTime",
key: "createTime"
},
{
title: "签单时间",
dataIndex: "signTime",
key: "signTime"
},
{
title: "客户名称",
dataIndex: "userName",
key: "userName"
},
{
title: "订单部门",
dataIndex: "depName",
key: "depName"
},
{
title: "签单金额(万元)",
dataIndex: "totalAmount",
key: "totalAmount"
},
{
title: "结算状态",
dataIndex: "liquidationStatus",
key: "liquidationStatus",
render: text => {
return getLiquidationStatus(text);
}
},
{
title: "外包审核",
dataIndex: "refundStatus",
key: "refundStatus",
render: text => {
if (text == 0) {
return 待审核;
} else if (text == 1) {
return 审核通过;
} else if (text == 2) {
return 审核驳回;
}
}
},
{
title: "营销负责人",
dataIndex: "adminName",
key: "adminName"
},
{
title: "财务负责人",
dataIndex: "financeName",
key: "financeName"
}
],
data: [],
dataSource: [],
columnsX: [
{
title: "业务项目名称",
dataIndex: "commodityName",
key: "commodityName"
},
{
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: "projectStatus",
key: "projectStatus",
render: text => {
return getProjectStatus(text);
}
},
{
title: "主要项目",
dataIndex: "main",
key: "main",
render: text => {
return text ? "是" : "否";
}
},
{
title: "项目说明",
dataIndex: "taskComment",
key: "taskComment",
render: text => {
return text && text.length > 8 ? text.substr(0, 8) + "…" : text;
}
}
],
columnsrizhi: [
{
title: "流程",
dataIndex: "processName",
key: "processName"
},
{
title: "操作人",
dataIndex: "adminName",
key: "adminName"
},
{
title: "时间",
dataIndex: "createDate",
key: "createDate"
},
{
title: "备注",
dataIndex: "remarks",
key: "remarks"
}
],
dataSourceX: [],
ContactsListsNew: [
{
title: "项目名称",
dataIndex: "commodityName",
key: "commodityName",
render: text => {
return {text};
}
},
{
title: "项目分类",
dataIndex: "projectType",
key: "projectType",
render: text => {
let arr = this.state.dataSourceX || [];
let str = "";
for (let i = 0; i < arr.length; i++) {
if (this.state.dataSourceX[i].sort == text) {
str = this.state.dataSourceX[i].cname;
return {str};
}
}
}
},
{
title: "催款科目",
dataIndex: "dunTypeName",
key: "dunTypeName",
render: text => {
return {text};
}
},
{
title: "时间(天)",
dataIndex: "waitDay",
key: "waitDay",
render: (text, record) => {
if (record.dunTypeName) {
return {text};
}
}
},
{
title: "金额(万元)",
dataIndex: "money",
key: "money",
render: (text, record) => {
if (record.dunTypeName) {
if (record.appropriationRatio && !record.money) {
return {record.appropriationRatio}(拨款比例);
} else if (record.appropriationRatio && record.money) {
return (
{text}(比例:{record.appropriationRatio})
);
} else {
return {text};
}
}
}
},
{
title: "服务年限",
dataIndex: "startDate",
key: "startDate",
render: (text, record) => {
if (record.dunTypeName) {
return {text};
}
}
},
{
title: "催款状态",
dataIndex: "status",
key: "status",
render: text => {
return {text == 1 ? "已启动" : "未启动"};
}
}
],
ContactsLists: [
{
title: "催款科目",
dataIndex: "dunSubject",
key: "dunSubject",
render: text => {
return getjiedian(text);
}
},
{
title: "金额(万元)",
dataIndex: "money",
key: "money"
},
{
title: "催款状态",
dataIndex: "dunStatus",
key: "dunStatus",
render: text => {
return getCuikuan(text);
}
}
],
resVisible: false
};
},
//页面加载函数
componentWillMount() {
this.loadData();
},
//整行点击
tableRowClick(record) {
this.setState({
visible: true,
refundStatus: record.refundStatus
});
this.xiangqing(record.orderNo);
this.xiangmu(record.orderNo);
this.jiedian(record.orderNo);
this.jiedianNew(record.orderNo);
},
// 拆分详细
showRes(record) {
this.setState({
resVisible: true,
resRecord: record
});
},
resCancel() {
this.setState({
resVisible: false
});
},
//点击打卡项目详情
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
});
},
//项目详情关闭
nextCancel() {
this.setState({
addnextVisible: false
});
},
//订单详情
xiangqing(orderNos) {
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/newOrder/getOrderNewDetail",
data: {
orderNo: orderNos
},
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({
orderNo: thisdata.orderNo, //订单编号
contractNo: thisdata.contractNo, //合同编号
userName: thisdata.userName, //客户名称
signDate: thisdata.signDate, //签单时间
processStatus: thisdata.processStatus, //流程状态
liquidationStatus: thisdata.liquidationStatus, //结算状态
contacts: thisdata.contacts, //企业联系人
contactMobile: thisdata.contactMobile, //联系人电话
legalPerson: thisdata.legalPerson, //法人
legalPersonTel: thisdata.legalPersonTel, //法人电话
firstAmount: thisdata.firstAmount, //签单金额
totalAmount: thisdata.totalAmount, //首付金额
approval: thisdata.approval, //特批状态
settlementAmount: thisdata.settlementAmount, //已收款项
orderRemarks: thisdata.orderRemarks, //订单留言
orgCodeUrl: thisdata.contractPictureUrl
? splitUrl(
thisdata.contractPictureUrl,
",",
globalConfig.avatarHost + "/upload"
)
: [], //图片地址
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,
outsource: thisdata.outsource == 0 ? "否" : "是"
});
}
}.bind(this)
}).always(
function() {
this.setState({
loading: false
});
}.bind(this)
);
},
//项目列表
xiangmu(orderNos) {
$.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];
theArr.push({
key: i,
id: thisdata.id,
orderNo: thisdata.orderNo, //订单编号
commodityId: thisdata.commodityId, //项目ID
commodityName: thisdata.commodityName, //项目名称
cname: thisdata.cname, //项目类别
commodityPrice: thisdata.commodityPrice, //项目价格
commodityQuantity: thisdata.commodityQuantity, //项目数量
main: thisdata.main, //是否为主要任务
taskComment: thisdata.taskComment, //任务说明
contacts: thisdata.contacts, //联系人
contactsMobile: thisdata.contactsMobile, //联系人电话
projectStatus: thisdata.projectStatus, //项目状态
splitStatus: thisdata.splitStatus
});
}
}
this.setState({
dataSourceX: theArr
});
}.bind(this)
}).always(
function() {
this.setState({
loading: false
});
}.bind(this)
);
},
rizhi() {
this.setState({
loading: true
});
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: "/api/admin/newOrder/selectOrderLog",
data: {
orderNo: this.state.orderNo
},
success: function(data) {
let theArr = [];
let thisData = data.data;
if (!thisData.length) {
if (data.error && data.error.length) {
message.warning(data.error[0].message);
}
thisData = {};
} else {
for (let i = 0; i < data.data.length; i++) {
let thisdata = data.data[i];
theArr.push({
processName: thisdata.processName,
adminName: thisdata.adminName,
createDate: thisdata.createDate,
remarks: thisdata.remarks
});
}
}
this.setState({
dataSourcerizhi: theArr
});
}.bind(this)
}).always(
function() {
this.setState({
loading: false
});
}.bind(this)
);
},
getOrderLog() {
this.setState({
rizhivisible: true
});
this.rizhi();
},
closeOrderLog() {
this.setState({
rizhivisible: false
});
},
//节点列表
jiedian(orderNos) {
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/newOrder/selectOrderDun",
data: {
orderNo: orderNos
},
success: function(data) {
let theArr = [];
let thisData = [];
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++) {
thisData = data.data[i];
theArr.push({
key: i,
dunSubject: thisData.dunSubject
? thisData.dunSubject.toString()
: "", //催款科目
id: thisData.id, //节点Id
money: thisData.money, //催款金额
dunStatus: thisData.dunStatus //催款状态
});
}
this.setState({
contactList: theArr
});
}
}.bind(this)
}).always(
function() {
this.setState({
loading: false
});
}.bind(this)
);
},
jiedianNew(orderNos) {
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url:
globalConfig.context + "/api/admin/newOrderDun/selectListNewOrderDun",
data: {
orderNo: orderNos
},
success: function(data) {
if (data.error && data.error.length) {
message.warning(data.error[0].message);
} else {
let theArr = [];
let thisData = [];
let arr = data.data || [];
let totalCui = 0;
for (let i = 0; i < arr.length; i++) {
thisData = arr[i];
totalCui += +thisData.money;
theArr.push({
key: i,
dunSubject: thisData.dunSubject
? thisData.dunSubject.toString()
: "", //催款科目
id: thisData.id, //节点Id
money: thisData.money, //催款金额
// orderNo: record ? record.orderNo : this.props.datauser.orderNo,
commodityName: thisData.commodityName,
projectType: thisData.projectType,
dunTypeName: thisData.dunTypeName,
status: thisData.status,
waitDay: thisData.waitDay,
effectiveCount: thisData.effectiveCount,
startDate: thisData.startDate,
dunType: thisData.dunType,
appropriationRatio: thisData.appropriationRatio
});
}
if (!totalCui) {
totalCui = 0;
}
totalCui = (Math.round(totalCui * 10000) / 10000).toFixed(4);
this.setState({
contactListNew: theArr,
totalCui
});
}
}.bind(this)
}).always(
function() {
this.setState({
loading: false
});
}.bind(this)
);
},
//审核通过
examOk() {
$.ajax({
method: "post",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/newOrder/auditOrderNew",
data: {
orderNo: this.state.orderNo,
orderStatus: 2
},
success: function(data) {
if (data.error.length || data.data.list == "") {
if (data.error && data.error.length) {
message.warning(data.error[0].message);
}
} else {
message.success("该订单已通过审核~");
this.setState({
visible: false
});
this.reset();
}
}.bind(this)
}).always(
function() {
this.setState({
loading: false
});
}.bind(this)
);
},
//通过发给外包
outsourcing() {
$.ajax({
method: "post",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/newOrder/auditOrderNew",
data: {
orderNo: this.state.orderNo,
orderStatus: 2,
outsource: 1
},
success: function(data) {
if (data.error.length || data.data.list == "") {
if (data.error && data.error.length) {
message.warning(data.error[0].message);
}
} else {
message.success("该订单已通过审核~");
this.setState({
visible: false
});
this.reset();
}
}.bind(this)
}).always(
function() {
this.setState({
loading: false
});
}.bind(this)
);
},
//审核不通过
examOks() {
this.setState({
aloading: true
});
$.ajax({
method: "post",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/newOrder/auditOrderNew",
data: {
orderNo: this.state.orderNo,
orderStatus: 3,
reason: this.state.reason
},
success: function(data) {
if (data.error.length || data.data.list == "") {
if (data.error && data.error.length) {
message.warning(data.error[0].message);
this.setState({
aloading: true
});
}
} else {
message.success("该订单已被拒绝~");
this.setState({
visible: false,
aloading: false,
noVisible: false,
reason: ""
});
this.reset();
}
}.bind(this)
}).always(
function() {
this.setState({
loading: false
});
}.bind(this)
);
},
//点击拒绝
examNo() {
this.setState({
noVisible: true
});
},
load() {
if (this.state.attachmentUrl) {
let url = window.location.href.substring(7);
this.state.attachmentUrl.forEach(e => {
window.location.href =
"http://" +
url.substring(0, url.indexOf("/")) +
"/api/admin/outsourceOrg//downloadFile?path=" +
e.response.data;
});
} else {
message.error("此订单无上传文件");
}
},
callback(key) {
this.setState({
activeKey: key
});
if (this.state.pictureUrl.length) {
let picArr = [];
this.state.pictureUrl.map(function(item) {
if (
item.response &&
item.response.data &&
item.response.data.length
) {
picArr.push(item.response.data);
}
});
}
if (key === "2") {
console.log(
typeof this.state.refundStatus,
!(this.state.refundStatus === 1)
);
this.setState({
loading: true
});
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url:
globalConfig.context +
"/api/admin/outsourceOrg/orderOutsourceDtails",
data: {
orderNo: this.state.orderNo
},
success: function(data) {
let thisdata = data.data;
this.setState({
id: thisdata.id,
createTimes: thisdata.createTimes,
auditTimes: thisdata.auditTimes,
remarks: thisdata.remarks,
attachmentUrl: thisdata.attachmentUrl
? splitUrl(
thisdata.attachmentUrl,
",",
globalConfig.avatarHost + "/upload"
)
: [],
pictureUrl: thisdata.pictureUrl
? splitUrl(
thisdata.pictureUrl,
",",
globalConfig.avatarHost + "/upload"
)
: [], //图片地址
amount: thisdata.amount,
companyName: thisdata.companyName,
outsourceRemarks: thisdata.outsourceRemarks,
unitNumber: thisdata.unitNumber,
unitPrice: thisdata.unitPrice
});
}.bind(this)
}).always(
function() {
this.setState({
loading: false
});
}.bind(this)
);
}
},
pass() {
if (!this.state.remarks) {
message.warning("审核意见不能为空");
return;
}
$.ajax({
method: "post",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/outsourceOrg/auditOutsourceNew",
data: {
id: this.state.id,
remarks: this.state.remarks,
refundStatus: 1,
orderNo: this.state.orderNo,
type: 0
},
success: function(data) {
if (data.error && data.error.length) {
message.warning(data.error[0].message);
} else {
message.success("已通过!");
}
}
}).done(
function() {
this.setState({
loading: false,
remarks: ""
});
this.visitCancel();
}.bind(this)
);
},
refuse() {
$.ajax({
method: "post",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/outsourceOrg/auditOutsourceNew",
data: {
id: this.state.id,
remarks: this.state.remarks,
refundStatus: 2,
orderNo: this.state.orderNo
},
success: function(data) {
if (data.error && data.error.length) {
message.warning(data.error[0].message);
} else {
message.success("已驳回!");
}
}
}).done(
function() {
this.setState({
loading: false,
remarks: ""
});
this.visitCancel();
}.bind(this)
);
},
//关闭输入理由框
noCancel() {
this.setState({
noVisible: false,
aloading: false,
reason: ""
});
},
//搜索
search() {
this.setState({
//signBillVisible:false
});
this.loadData();
},
//重置
reset() {
this.state.nameSearch = "";
this.state.contractNoSearch = "";
this.state.releaseDate[0] = undefined;
this.state.releaseDate[1] = undefined;
this.state.refundStatusSearch = undefined;
this.loadData(1);
},
resets() {
this.state.orderNo = "";
this.state.customerName = "";
this.state.releaseDate[0] = undefined;
this.state.releaseDate[1] = undefined;
},
getOrgCodeUrl(e) {
this.setState({ pictureUrl: e });
},
//关闭详情
visitCancel() {
this.setState(
{
visible: false
},
() => {
this.setState({
activeKey: "1"
});
}
);
this.resets();
this.loadData(this.state.pagination.current);
},
visitOk() {
this.setState({
visible: false
});
this.resets();
},
render() {
const formItemLayout = {
labelCol: { span: 8 },
wrapperCol: { span: 14 }
};
const FormItem = Form.Item;
const { TabPane } = Tabs;
const { RangePicker } = DatePicker;
const cuiDataList = this.state.contactList || [];
return (
{this.state.resVisible ? (
) : (
""
)}
外包审核列表
{
this.setState({ nameSearch: e.target.value });
}}
/>
{
this.setState({ contractNoSearch: e.target.value });
}}
/>
下单时间 :
{
this.setState({ releaseDate: dataString });
}}
/>
{this.state.companyName}
{this.state.unitPrice}
{this.state.unitNumber}
{this.state.amount}
{this.state.outsourceRemarks}
{/*
{
return {
'sign': e.name.substring(0,e.name.lastIndexOf("."))
}
}}
fileList={this.state.attachmentUrl}
showUploadList={{showRemoveIcon:false}}
onPreview={(e)=>{
let url = window.location.href.substring(7)
window.location.href="http://"+url.substring(0,url.indexOf("/"))+"/api/admin/outsourceOrg//downloadFile?path="+e.response.data
}}
>
*/}
{
this.setState({
previewImage: file.url || file.thumbUrl,
previewVisible: true
});
}}
>
{
this.setState({ previewVisible: false });
}}
>
{!this.state.refundStatus ? (
) : (
{this.state.remarks}
{getRefundStatus(this.state.refundStatus)}
{this.state.auditTimes}
)}
);
}
})
);
export default checkOutsourcing;