import React, { Component } from "react"; import { Button, DatePicker, Form, Input, message, Select, Spin, Table, Tabs, Tooltip } from "antd"; import moment from "moment"; import ShowModalDiv from "@/showModal.jsx"; import { ShowModal, getContactType } from "@/tools.js"; import { ChooseList } from "../../../order/orderNew/chooseList"; import $ from "jquery/src/ajax"; import IntentionDetail from "../../NEW/intentionCustomer/intentionDetail/intentionDetail"; import { getProvince } from '@/NewDicProvinceList'; import Cascaders from "../../../../common/cascaders"; const { TabPane } = Tabs; const { RangePicker } = DatePicker; class FollowUpSummary extends Component { constructor(props) { super(props); this.state = { loading: false, changeList: undefined,// 子组件改变的表格title数组 columns: [ { title: "客户名称", dataIndex: "nickname", key: "nickname", render: text => { return (
{text}
) } }, { title: '客户类型', dataIndex: 'shareType', key: 'shareType', render: text => { // 0-私有 1-公共 2 签单 3外联 return ( text === 0 ? '私有客户' : text === 1 ? '公共客户' : text === 2 ? '签单客户' : text === 3 ? '外联客户' : '' ) } }, { title: '客户初始时间', dataIndex: 'startTimes', key: 'startTimes', }, { title: "跟进方式", dataIndex: "contactType", key: "contactType", render: (text) => { return getContactType(text); }, }, { title: "限定项目名称", dataIndex: "projectName", key: "projectName", width: 160, }, { title: "跟进人", dataIndex: "followName", key: "followName", }, { title: "跟进类型", dataIndex: "type", key: "type", render: (text, record) => { return (
{["客户跟进", "限定项目跟进"][text]}
); }, }, { title: "跟进部门", dataIndex: "followDep", key: "followDep", }, { title: "跟进说明", dataIndex: "result", key: "result", render: (text, record) => { return ( {text}}>
{text}
); }, }, { title: "跟进时间", dataIndex: "followTimes", key: "followTimes", }, { title: "次数", dataIndex: "followCount", key: "followCount", }, { title: "指导意见", dataIndex: "guidance", key: "guidance", render: (text, record) => { return ( {(record.guidanceName ? '(' + record.guidanceName + ')' : '') + text}}>
{record.guidanceName ? '(' + record.guidanceName + ')' : null} {text}
); }, }, { title: "指导时间", dataIndex: "guidanceTimes", key: "guidanceTimes", render: (text) => { return ( {text ? text : ''} ) } } ], dataSource: [], pagination: { defaultCurrent: 1, defaultPageSize: 10, showQuickJumper: true, pageSize: 10, onChange: function (page) { this.loadData(page); }.bind(this), showTotal: function (total) { return "共" + total + "条数据"; }, }, releaseDate: [], releaseDate1: [], releaseDate2: [], userName: undefined, followName: undefined, userType: undefined, contactType: undefined, deps: undefined, shiroType: props.shiroType, } this.reset = this.reset.bind(this); this.loadData = this.loadData.bind(this); this.selectSuperId = this.selectSuperId.bind(this); this.category = this.category.bind(this); this.closeDesc = this.closeDesc.bind(this); this.tableRowClick = this.tableRowClick.bind(this); this.export = this.export.bind(this); this.changeList = this.changeList.bind(this); } componentWillReceiveProps(prevProps) { if (prevProps.shiroType !== this.state.shiroType) { this.setState({ shiroType: prevProps.shiroType }, () => { this.reset(); // this.selectSuperId(); }) } } componentDidMount() { this.props.shiroType != 2 && this.loadData(); // this.selectSuperId(); } loadData(pageNo) { if (this.state.userName == undefined && this.state.followName == undefined && this.state.userType == undefined && this.state.contactType == undefined && this.state.deps == undefined && this.state.releaseDate.length == 0 && this.state.releaseDate1.length == 0 && this.state.releaseDate2.length == 0 && this.props.shiroType == 2 ) { message.warning("请先填写筛选条件!"); return } let data = { pageNo: pageNo || 1, pageSize: this.state.pagination.pageSize, userName: this.state.userName || undefined, followName: this.state.followName || undefined, userType: isNaN(parseInt(this.state.userType)) ? undefined : this.state.userType, contactType: isNaN(parseInt(this.state.contactType)) ? undefined : this.state.contactType, deps: this.state.deps || undefined, followStartTime: this.state.releaseDate[0] ? this.state.releaseDate[0] : undefined, followEndTime: this.state.releaseDate[1] ? this.state.releaseDate[1] : undefined, createStartTime: this.state.releaseDate1[0] ? this.state.releaseDate1[0] : undefined, createEndTime: this.state.releaseDate1[1] ? this.state.releaseDate1[1] : undefined, guidanceStartTime: this.state.releaseDate2[0] ? this.state.releaseDate2[0] : undefined, guidanceEndTime: this.state.releaseDate2[1] ? this.state.releaseDate2[1] : undefined, shiroType: this.state.shiroType }; this.setState({ loading: true, }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + '/api/admin/userFollowList', data, success: function (data) { ShowModal(this); if (data.error.length === 0) { let theArr = []; for (let i = 0; i < data.data.list.length; i++) { let thisdata = data.data.list[i]; let diqu = getProvince(thisdata.province, thisdata.city, thisdata.area) thisdata.key = i; thisdata.lastFollowTime = thisdata.lastFollowTime && thisdata.lastFollowTime.split(" ")[0]; thisdata.transferTime = thisdata.transferTime && thisdata.transferTime.split(" ")[0]; thisdata.surplusFollowTime = thisdata.surplusFollowTime && thisdata.surplusFollowTime.split(" ")[0]; thisdata.surplusSignTime = thisdata.surplusSignTime && thisdata.surplusSignTime.split(" ")[0]; thisdata.locationProvince = diqu; thisdata.uid = thisdata.id; theArr.push(thisdata); } this.state.pagination.current = data.data.pageNo; this.state.pagination.total = data.data.totalCount; this.setState({ pageNo: data.data.pageNo, dataSource: theArr, pagination: this.state.pagination, }); } else { message.warning(data.error[0].message); } }.bind(this), }).always( function () { this.setState({ loading: false, }); }.bind(this) ); }; selectSuperId() { this.state.data = [] $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/organization/selectSuperId", data: {}, success: function (data) { if (data.error.length === 0) { let theArr = []; for (let i = 0; i < data.data.length; i++) { let theData = data.data[i]; theArr.push( {theData.name} ); } this.setState({ contactsOption: theArr, }); } else { message.warning(data.error[0].message); } }.bind(this), }).always(function () { }.bind(this)); } //品类数据获取 category() { $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/Varieties/getSuperList", data: {}, success: function (data) { let thedata = data.data; let theArr = []; if (!thedata) { if (data.error && data.error.length) { message.warning(data.error[0].message); } } else { thedata.map(function (item, index) { theArr.push({ value: item.id, key: item.cname, }); }); } this.setState({ categoryArr: theArr, }); }.bind(this), }); } tableRowClick(record) { this.category(); this.setState({ rowData: record, modalVisible: true, modalName: record.nickname, }) } closeDesc(e, s) { this.setState({ visitModul: e, modalVisible: e, showDesc: e, tabsKey: '', }) if (s) { this.props.shiroType != 2 && this.loadData(this.state.pageNo); } } export() { this.setState({ exportExecLoading: true }) let loading = message.loading('加载中...'); let data = { userName: this.state.userName || undefined, followName: this.state.followName || undefined, userType: isNaN(parseInt(this.state.userType)) ? undefined : this.state.userType, contactType: isNaN(parseInt(this.state.contactType)) ? undefined : this.state.contactType, deps: this.state.deps || undefined, followStartTime: this.state.releaseDate[0] ? this.state.releaseDate[0] : undefined, followEndTime: this.state.releaseDate[1] ? this.state.releaseDate[1] : undefined, createStartTime: this.state.releaseDate1[0] ? this.state.releaseDate1[0] : undefined, createEndTime: this.state.releaseDate1[1] ? this.state.releaseDate1[1] : undefined, guidanceStartTime: this.state.releaseDate2[0] ? this.state.releaseDate2[0] : undefined, guidanceEndTime: this.state.releaseDate2[1] ? this.state.releaseDate2[1] : undefined, shiroType: this.state.shiroType }; for (let i in data) { if (typeof data[i] === "undefined") { delete data[i] } } $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/userFollowListExport", 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({ exportExecLoading: false }) }.bind(this)); } download(fileName) { window.location.href = globalConfig.context + "/open/download?fileName=" + fileName } reset() { this.setState({ userName: undefined, followName: undefined, userType: undefined, contactType: undefined, deps: undefined, releaseDate: [], releaseDate1: [], releaseDate2: [], dataSource: [], }, () => { this.Cascaders.empty(); this.props.shiroType != 2 && this.loadData(); }) } // 更改表格显示数据 changeList(arr) { const newArr = []; this.state.columns.forEach((item) => { arr.forEach((val) => { if (val === item.title) { newArr.push(item); } }); }); this.setState({ changeList: newArr, }); } render() { return (
{ this.setState({ showModal: false }) }} />
客户跟进汇总
{ this.setState({ userName: e.target.value }); }} /> { this.setState({ followName: e.target.value }); }} /> this.Cascaders = ref} placeholder="选择跟进部门" id="id" name="name" children="list" height={32} onSel={(e) => { this.setState({ deps: JSON.stringify(e) }) }} /> {/* */} { this.setState({ releaseDate: dataString }); }} /> { this.setState({ releaseDate1: dataString }); }} /> { this.setState({ releaseDate2: dataString }); }} />
) } } export default FollowUpSummary;