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,
            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,
            },
            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({ customerName: 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;