import React, { Component } from "react";
import { Button, DatePicker, Icon, Input, message, Select, Spin, Table, Tabs, Tag, Tooltip } from "antd";
import { ChooseList } from "../../order/orderNew/chooseList";
import FollowUpDetails from './followUpDetails';
import CorrespondingDetails from './correspondingDetails';
import OrderItemStatus from '../../../../component/common/orderItemStatus';
import $ from "jquery";
import { ShowModal } from "@/tools";
import ShowModalDiv from "@/showModal.jsx";
import moment from "moment";
import Cascaders from "../../../../component/common/cascaders";
const { TabPane } = Tabs;
const { RangePicker } = DatePicker;
class FollowUp extends Component {
constructor(props) {
super(props);
this.state = {
columns: [
{
title: "合同编号",
dataIndex: "contractNo",
key: "contractNo",
width: 120,
fixed: 'left',
},
{
title: "订单编号",
dataIndex: "orderNo",
key: "orderNo",
width: 140,
fixed: 'left',
},
{
title: "状态",
dataIndex: "deleteSign",
key: "deleteSign",
width: 80,
fixed: 'left',
render: (text) => {
//0=正常, 1=作废, 2=锁定, 3=变更中
return
}
},
{
title: "订单部门",
dataIndex: "depName",
key: "depName",
width: 160,
fixed: 'left',
},
{
title: "客户名称",
dataIndex: "userName",
key: "userName",
width: 150,
fixed: 'left',
render: text => {
return (
{text}
)
}
},
{
title: "合同签订时间",
dataIndex: "signTimes",
key: "signTimes",
},
{
title: "下单时间",
dataIndex: "orderTimes",
key: "orderTimes",
},
{
title: "申报项目",
dataIndex: "projects",
key: "projects",
width: 80,
render: (text) => {
return (
{text}
)
}
},
{
title: "咨询师",
dataIndex: "consultants",
key: "consultants",
width: 80,
render: (text) => {
return (
{text}
)
}
},
{
title: "申报批次",
dataIndex: "declareBatchs",
key: "declareBatchs",
width: 80,
render: (text) => {
return (
{text}
)
}
},
{
title: "证书编号",
dataIndex: "certificationNos",
key: "certificationNos",
width: 80,
render: (text) => {
return (
{text}
)
}
},
{
title: "客服最新跟进",
dataIndex: "newTimes",
key: "newTimes",
},
{
title: "跟进客服",
dataIndex: "adminName",
key: "adminName",
},
{
title: "是否已添微信",
dataIndex: "addWechat",
key: "addWechat",
width: 100,
render: (text, record) => {
let str = text === 1 ? '是(' + record.wechat + ')' : text === 0 ? '否' : '';
return (
{str}
)
}
},
{
title: "续签情况",
dataIndex: "renewal",
key: "renewal",
width: 80,
render: (text, record) => {
let str = text === 0 ? '未联系上当前联系人' :
text === 1 ? '企业已签其他机构' :
text === 2 ? '企业自己申报' :
text === 3 ? '企业不打算申报/注销' :
text === 4 ? '待续签,未报价(客服维护中)' :
text === 5 ? '待续签,已报价(客服维护中)' :
text === 6 ? ('已续签/复审、续签时间、续签项目' + (record.renewalTimes ? '(' + record.renewalTimes + ')' : '')) : ''
return (
{str}
)
}
},
{
title: "满意度(技术/业务)",
dataIndex: "techSatisfaction",
key: "techSatisfaction",
render: (text, record) => (
(
text === 0 ? '已投诉' :
text === 1 ? '不满意' :
text === 2 ? '一般满意' :
text === 3 ? '非常满意' : '无'
)
+ '/' +
(record.businessSatisfaction === 0 ? '已投诉' :
record.businessSatisfaction === 1 ? '不满意' :
record.businessSatisfaction === 2 ? '一般满意' :
record.businessSatisfaction === 3 ? '非常满意' : '无')
)
},
{
title: "备注",
dataIndex: "remarks",
key: "remarks",
width: 80,
render: (text) => {
return (
{text}
)
}
},
{
title: "操作",
dataIndex: "a",
key: "a",
width: 100,
render: (_, record) => {
if (record.projects) {
let projectsArr = record.projects.split('/');
let consultantsArr = record.consultants.split('/');
let declareBatchsArr = record.declareBatchs.split('/');
let certificationNosArr = record.certificationNos.split('/');
let data = [];
for (let i in projectsArr) {
data.push({
project: projectsArr[i],
consultant: consultantsArr[i],
declareBatch: declareBatchsArr[i],
certificationNo: certificationNosArr[i],
})
}
return (
)
}
}
},
],
changeList: [],
listLoading: false,
page: 1,
pagination: {
defaultCurrent: 1,
defaultPageSize: 10,
showQuickJumper: true,
pageSize: 10,
onChange: function (page) {
this.loadData(page);
}.bind(this),
showTotal: function (total) {
return "共" + total + "条数据";
},
},
departmentArr: [],
customerName: '',
releaseDate: [],
signTimes: [],
}
this.changeList = this.changeList.bind(this);
this.loadData = this.loadData.bind(this);
this.search = this.search.bind(this);
this.reset = this.reset.bind(this);
this.exportExec = this.exportExec.bind(this);
this.download = this.download.bind(this);
}
componentDidMount() {
this.loadData();
}
search() {
this.loadData();
}
reset() {
this.setState({
customerName: undefined,
contractNo: undefined,
depId: undefined,
addWechat: undefined,
renewal: undefined,
releaseDate: [],
signTimes: [],
}, () => {
this.Cascaders.empty();
this.loadData();
})
}
loadData(pageNo) {
this.setState({
listLoading: true,
});
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/listOrderUseService",
data: {
pageNo: pageNo || 1,
pageSize: this.state.pagination.pageSize,
userName: this.state.customerName || undefined,
deps: this.state.depId || undefined,
addWechat: this.state.addWechat || undefined,
renewal: this.state.renewal || undefined,
startFollowTimes: this.state.releaseDate[0] || undefined,
endFollowTimes: this.state.releaseDate[1] || undefined,
startSignTimes: this.state.signTimes[0] || undefined,
endSignTimes: this.state.signTimes[1] || undefined,
contractNo: this.state.contractNo || undefined,
},
success: function (data) {
ShowModal(this);
let theArr = [];
if (!data.data || !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(thisdata);
}
this.state.pagination.current = data.data.pageNo;
this.state.pagination.total = data.data.totalCount;
if (data.data && data.data.list && !data.data.list.length) {
this.state.pagination.current = 0;
this.state.pagination.total = 0;
}
this.setState({
dataSource: theArr,
page: data.data.pageNo,
pagination: this.state.pagination,
});
}
}.bind(this),
}).always(
function () {
this.setState({
listLoading: false,
});
}.bind(this)
);
}
changeList(arr) {
const newArr = [];
this.state.columns.forEach(item => {
arr.forEach(val => {
if (val === item.title) {
newArr.push(item);
}
});
});
this.setState({
changeList: newArr
});
}
// 导出excel
exportExec() {
message.config({
duration: 20,
});
let loading = message.loading("下载中...");
this.setState({
exportPendingLoading: true,
});
let data = {
userName: this.state.customerName || undefined,
deps: this.state.depId || undefined,
addWechat: this.state.addWechat || undefined,
renewal: this.state.renewal || undefined,
startFollowTimes: this.state.releaseDate[0] || undefined,
endFollowTimes: this.state.releaseDate[1] || undefined,
startSignTimes: this.state.signTimes[0] || undefined,
endSignTimes: this.state.signTimes[1] || undefined,
};
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: "/api/admin/userServiceExport",
data,
success: function (data) {
if (data.error.length === 0) {
this.download(data.data);
} else {
message.warning(data.error[0].message);
}
}.bind(this),
}).always(
function () {
loading();
this.setState({
exportPendingLoading: false,
});
}.bind(this)
);
}
// 下载
download(fileName) {
window.location.href =
globalConfig.context + "/open/download?fileName=" + fileName;
}
render() {
return (
{ this.setState({ showModal: false }) }} />
客服跟进详情
{
this.setState({ customerName: e.target.value });
}}
/>
{
this.setState({ contractNo: e.target.value });
}}
/>
this.Cascaders = node}
placeholder="订单部门"
height={28}
onSel={(e) => {
this.setState({
depId: JSON.stringify(e),
});
}}
/>
跟进时间 :
{
this.setState({ releaseDate: dataString });
}}
/>
下单时间 :
{
this.setState({ signTimes: dataString });
}}
/>
{
this.setState({
visible: true,
orderNo: record.orderNo,
uid: record.uid,
})
}}
/>
{this.state.visible ? {
this.setState({
visible: false,
orderNo: '',
uid: '',
}, () => {
this.loadData(this.state.page);
})
}} /> : ''}
{this.state.detailsVisible ?
{
this.setState({
detailsVisible: false,
detailsInfor: [],
})
}} /> : ''}
)
}
}
export default FollowUp;