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;