import React, { Component } from 'react';
import {
AutoComplete,
Button,
Cascader,
DatePicker,
Icon,
Input,
message,
Modal,
Select,
Spin,
Table,
Tabs,
Tag, Tooltip
} from "antd";
import { citySelect, provinceList } from '@/NewDicProvinceList';
import { getSocialAttribute, ShowModal } from "@/tools.js";
import ShowModalDiv from "@/showModal.jsx";
import moment from "moment";
import $ from "jquery/src/ajax";
import IntentionDetail from "../../NEW/intentionCustomer/intentionDetail/intentionDetail";
import { ChooseList } from "../../../order/orderNew/chooseList";
const { TabPane } = Tabs;
const { RangePicker } = DatePicker;
class CustomerFollow extends Component {
constructor(props) {
super(props);
this.state = {
nameSearch: '',
provinceSearch: undefined,
addressSearch: '',
level: undefined,
releaseDate: [],
selectedRowKeys: [],
sortType: 0,
filteredInfo: null,
sortedInfo: null,
columns: [
{
title: "客户名称",
dataIndex: "name",
key: "name",
render: text => {
return (
{text}
)
}
},
{
title: "地区",
dataIndex: "locationProvince",
key: "locationProvince",
},
// {
// title: "联系人",
// dataIndex: "contacts",
// key: "contacts",
// },
// {
// title: "联系电话",
// dataIndex: "contactMobile",
// key: "contactMobile",
// },
{
title: "社会性质",
dataIndex: "societyTag",
key: "societyTag",
render: (text) => {
return getSocialAttribute(text);
},
},
{
title: "客户初始时间",
dataIndex: "transferTime",
key: "transferTime",
},
// {
// title: "剩余私有天数",
// dataIndex: "surplusFollowTime",
// key: "surplusFollowTime",
// },
// {
// title: "剩余签单天数",
// dataIndex: "surplusSignTime",
// key: "surplusSignTime",
// },
{
title: "最新跟进时间",
dataIndex: "lastFollowTime",
key: "lastFollowTime",
//0无 1转换倒序 2转换正序
sorter: true,
sortOrder: (this.sortedInfo || {}).columnKey === 'lastFollowTime' && (this.sortedInfo || {}).order,
filteredValue: (this.filteredInfo || {}).lastFollowTime || null,
},
{
title: "客户等级",
dataIndex: "level",
key: "level",
render: (text) => {
if (text === 0) {
return 一般客户;
} else if (text === 1) {
return 意向客户;
} else if (text === 2) {
return 重点客户;
} else {
return "";
}
},
},
{
title: "跟进人",
dataIndex: "aName",
key: "aName",
},
{
title: "跟进操作",
dataIndex: "abc",
key: "abc",
render: (text, record, index) => {
return (
);
},
},
],
provinces: [],
dataSource: [],
categoryArr: [],
modalName: '',
modalVisible: false,
basicState: false,
contactState: false,
rowData: {},
pagination: {
defaultCurrent: 1,
defaultPageSize: 10,
showQuickJumper: true,
pageSize: 10,
onChange: function (page) {
this.loadData(page);
}.bind(this),
showTotal: function (total) {
return "共" + total + "条数据";
},
},
loading: false,
ispage: 1,
guidance: '',
tabsKey: '',
};
this.callback = this.callback.bind(this);
this.loadData = this.loadData.bind(this);
this.reset = this.reset.bind(this);
this.tableRowClick = this.tableRowClick.bind(this);
this.closeDesc = this.closeDesc.bind(this);
this.releaseGuidance = this.releaseGuidance.bind(this);
this.changeList = this.changeList.bind(this);
}
componentDidMount() {
this.loadData();
this.category();
//城市
let Province = [];
provinceList.map(function (item) {
let id = String(item.id);
Province.push(
{item.name}
);
});
this.setState({
provinces: Province
})
}
callback() {
}
loadData(pageNo) {
this.setState({
loading: true,
});
let api = '/api/admin/customer/listFollowManagement';
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + api,
data: {
pageNo: pageNo || 1,
pageSize: this.state.pagination.pageSize,
level: this.state.level ? this.state.level : undefined,
name: this.state.nameSearch,
province: !this.state.addressSearch.length
? this.state.provinceSearch
: this.state.addressSearch[0],
city: !this.state.addressSearch.length
? ""
: this.state.addressSearch[1],
startDate: this.state.releaseDate[0],
endDate: this.state.releaseDate[1],
sortType: this.state.sortType,
},
success: function (data) {
ShowModal(this);
let theArr = [];
if (data.error.length !== 0) {
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];
let diqu =
(thisdata.province == null ? "" : thisdata.province) +
(thisdata.city == null ? "" : "-" + thisdata.city) +
(thisdata.area == null ? "" : "-" + thisdata.area);
thisdata.key = i;
thisdata.id = thisdata.uid;
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;
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({
ispage: data.data.pageNo,
dataSource: theArr,
pagination: this.state.pagination,
});
}
}.bind(this),
}).always(
function () {
this.setState({
loading: false,
});
}.bind(this)
);
};
reset() {
this.setState({
nameSearch: '',
provinceSearch: undefined,
addressSearch: '',
level: undefined,
releaseDate: [],
selectedRowKeys: [],
sortType: 0,
filteredInfo: null,
sortedInfo: null,
}, () => {
this.loadData();
});
};
//品类数据获取
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) { //key 控制弹窗初始显示第几级
this.setState({
selectedRowKeys: [],
modalVisible: true,
basicState: true,
contactState: true,
modalName: record.name,
rowData: record,
});
};
closeDesc(e, s) {
this.setState({
basicState: e,
visitModul: e,
modalVisible: e,
showDesc: e,
tabsKey: '',
})
if (s) {
this.loadData(this.state.ispage);
}
}
//发布指导意见
releaseGuidance() {
if (!this.state.guidance) {
message.info('指导意见不能为空')
return;
}
this.setState({
loading: true,
});
let _this = this;
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/customer/pushReleaseUser",
data: {
guidance: this.state.guidance,
},
success: function (data) {
let thedata = data.data;
if (!thedata) {
if (data.error && data.error.length) {
message.warning(data.error[0].message);
}
} else {
message.success("发布成功");
_this.loadData(this.state.ispage);
}
}.bind(this),
}).always(
function () {
this.setState({
loading: 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
});
}
render() {
let { sortedInfo, filteredInfo, columns } = this.state;
return (
{ this.setState({ showModal: false }) }} />
指导意见
{
this.setState({ nameSearch: e.target.value });
}}
/>
{
this.setState({ addressSearch: e });
}}
/>
{
this.setState({ releaseDate: dataString });
}}
/>
{
//0 正序 1倒序
if (sorter.order === 'ascend') { //倒序
this.setState({
sortType: 1
}, () => {
this.loadData(pagination.current)
});
} else if (sorter.order === 'descend') { //正序
this.setState({
sortType: 0
}, () => {
this.loadData(pagination.current)
});
} else if (typeof sorter.order === 'undefined') { //正常
this.setState({
sortType: 0
}, () => {
this.loadData(pagination.current)
});
}
this.setState({
filteredInfo: filters,
sortedInfo: sorter,
});
}
}
/>
{
this.setState({
guidanceVisible: false,
guidance: '',
}, () => {
this.loadData(this.state.ispage);
})
}}
onCancel={() => {
this.setState({
guidanceVisible: false,
guidance: '',
}, () => {
this.loadData(this.state.ispage);
})
}}
footer=''
>
{
this.setState({
guidance: e.target.value,
})
}}
/>
)
}
}
export default CustomerFollow;