import React from "react"; import { Icon, Button, AutoComplete, Cascader, Input, Select, Spin, Table, message, DatePicker, Tooltip, Form, Tabs, Modal, Tag, Checkbox, } from "antd"; import $ from "jquery/src/ajax"; import moment from "moment"; import { citySelect, provinceList } from "@/NewDicProvinceList"; import AddIntention from "./addIntention.jsx"; import { industry, lvl, currentMember } from "@/dataDic.js"; import ZhuanjiaoDetail from "@/zhuanjiaoDetail.jsx"; import { getSocialAttribute, ShowModal } from "@/tools.js"; import FollowDetail from "./followDetail.jsx"; import IntentionDetail from "./intentionDetail/intentionDetail"; import ShowModalDiv from "@/showModal.jsx"; import "./customer.less"; import { ChooseList } from "../../../order/orderNew/chooseList"; import EnterpriseNameChange from "../../../../common/enterpriseNameChange"; const { TabPane } = Tabs; const confirm = Modal.confirm; const IntentionCustomer = Form.create()( React.createClass({ loadData(pageNo, apiUrl) { // 新需求 除湖南和内蒙古外 不让其他省操作 if (adminData.province != "21" && adminData.province != "11") { return } this.setState({ visitModul: false, loading: true, modalVisible: false, }); let api = apiUrl ? apiUrl : this.props.ApiUrl; $.ajax({ method: "post", 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 ? undefined : this.state.addressSearch[1], startDate: this.state.releaseDate[0], endDate: this.state.releaseDate[1], }, success: function (data) { ShowModal(this); let theArr = []; if (data.error.length || 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]; 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; this.setState({ ispage: data.data.pageNo, }); } if (data.data && data.data.list && !data.data.list.length) { this.state.pagination.current = 0; this.state.pagination.total = 0; } if ( JSON.stringify(theArr) !== JSON.stringify(this.state.dataSource) ) { this.setState({ selectedRowKeys: [], }); } this.setState({ dataSource: theArr, pagination: this.state.pagination, }); }.bind(this), }).always( function () { this.setState({ loading: false, }); }.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); } thedata = {}; } else { thedata.map(function (item, index) { theArr.push({ value: item.id, key: item.cname, }); }); } this.setState({ categoryArr: theArr, }); }.bind(this), }); }, getInitialState() { return { addressSearch: [], orgCodeUrl: [], companyLogoUrl: [], visible: false, zhuanjiaoVisible: false, searchMore: true, releaseDate: [], categoryArr: [], visitModul: false, keys: false, detailApi: "", followData: {}, selectedRowKeys: [], selectedRowKey: [], selectedRows: [], loading: false, modalVisible: false, pagination: { defaultCurrent: 1, defaultPageSize: 10, showQuickJumper: true, pageSize: 10, onChange: function (page) { this.loadData(page); }.bind(this), showTotal: function (total) { return "共" + total + "条数据"; }, }, columns: [ { title: "客户名称", dataIndex: "name", key: "name", width: 150, render: (text) => { return (
{ e.stopPropagation(); let input = document.getElementById("copyText"); input.value = text; input.select(); document.execCommand("copy"); message.success("复制成功"); }} // style={{ // maxWidth: "150px", // overflow: "hidden", // textOverflow: "ellipsis", // whiteSpace: "nowrap", // cursor: "pointer", // }} > {text}
); }, }, { title: "统一社会信用代码", dataIndex: "orgCode", key: "orgCode", render: (text) => { return
{!text ? "待补充" : 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", }, { title: "客户等级", dataIndex: "level", key: "level", render: (text, record) => { if (text == 0) { return 一般客户(一年以上预签); } else if (text == 1) { return 意向客户(半年内预签); } else if (text == 2) { return 重点客户(一个月内预签); } else { return ""; } }, }, { title: "跟进操作", dataIndex: "abc", key: "abc", render: (text, record, index) => { return (
); }, }, { title: "指导意见", dataIndex: "guidance", key: "guidance", render: (text, record, index) => { return (
{/*指导 0无 1未读 2已读*/} {text === 1 || text === 2 ? ( ) : (
暂无指导
)}
); }, }, ], tabsKey: "", data: [], dataman: [], dataSource: [], visitArrList: [], searchTime: [,], selList: [], }; }, //已读指导记录 guidanceRead(id) { return new Promise((resolve, reject) => { $.ajax({ method: "post", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/customer/pushGuidance", data: { uid: id, }, }).done( function (data) { if (!data.error.length) { resolve(); } else { message.warning(data.error[0].message); reject(); } }.bind(this) ); }); }, rankO(rank) { let deletedIds = ""; for (let idx = 0; idx < this.state.selectedRows.length; idx++) { let rowItem = this.state.selectedRows[idx]; if (rowItem.id) { deletedIds = this.state.selectedRows.length - 1 === idx ? deletedIds + rowItem.id : deletedIds + rowItem.id + ","; } } $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/customer/updateUserLevel", data: { id: deletedIds, //客户的ID level: rank, }, }).done( function (data) { if (!data.error.length && data.data !== 0) { message.success("操作成功!"); this.setState({ loading: false, }); this.loadData(this.state.ispage); } else { message.warning( data.data === 0 ? "操作失败,请联系管理员!" : data.error[0].message ); } }.bind(this) ); }, //进入新增拜访记录 visit(e) { this.setState({ followData: e, visitModul: true, modalVisible: false, }); }, //列表删除功能 delectRow() { let deletedIds = ""; for (let idx = 0; idx < this.state.selectedRows.length; idx++) { let rowItem = this.state.selectedRows[idx]; if (rowItem.id) { deletedIds = this.state.selectedRows.length - 1 === idx ? deletedIds + rowItem.id : deletedIds + rowItem.id + ","; } } this.setState({ loading: true, selectedRowKeys: [], }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/customer/deleteCustomer", data: { uid: deletedIds, //删除的ID }, }).done( function (data) { if (!data.error.length) { message.success("删除成功!"); this.setState({ loading: false, }); } else { message.warning(data.error[0].message); } this.loadData(this.state.ispage); }.bind(this) ); }, componentWillMount() { //城市 let Province = []; provinceList.map(function (item) { var id = String(item.id); Province.push( {item.name} ); }); //行业 let intentionalArr = []; industry.map(function (item) { intentionalArr.push( {item.key} ); }); //会员等级 let lvlArr = []; lvl.map(function (item) { lvlArr.push( {item.key} ); }); //会员状态customerStatus let currentMemberArr = []; currentMember.map(function (item) { currentMemberArr.push( {item.key} ); }); this.state.Provinces = Province; this.state.intentionalOption = intentionalArr; this.state.lvlArrOption = lvlArr; this.state.currentMemberArrOption = currentMemberArr; this.loadData(); this.category(); }, addClick() { this.setState({ loading: true, }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/customer/queryUserMax", data: {}, success: function (data) { let thedata = data.data; if (!thedata) { if (data.error && data.error.length) { message.warning(data.error[0].message); } else { if (thedata == 1) { Modal.warning({ title: '温馨提示', content: (

不可添加!您的客户数已达最大值,可移除部分客户后添加!

), onOk() { }, }); return } this.state.RowData = {}; this.setState({ detailApi: this.props.detailApi, showDesc: true, modalVisible: false, visitModul: false, }); } } }.bind(this), }).always( function () { this.setState({ loading: false, }); }.bind(this) ); }, closeDesc(e, s) { this.state.basicState = e; this.state.visitModul = e; this.state.modalVisible = e; this.state.showDesc = e; this.setState({ tabsKey: "", }); if (s) { this.loadData(this.state.ispage); } }, search() { this.loadData(); }, reset() { this.state.nameSearch = ""; this.state.level = undefined; this.state.addressSearch = []; this.state.provinceSearch = undefined; this.state.citySearch = undefined; this.state.releaseDate[0] = undefined; this.state.releaseDate[1] = undefined; this.loadData(); }, searchSwitch() { this.setState({ visitModul: false, searchMore: !this.state.searchMore, }); }, //整行点击 tableRowClick(record, index) { this.state.visitModul = false; this.setState({ // selectedRowKeys: [], modalVisible: true, basicState: true, contactState: true, modalName: record.name, RowData: record, }); }, //指定转交人自动补全 supervisor(e) { $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/customer/listAdminByName", data: { adminName: e, }, success: function (data) { let thedata = data.data; if (!thedata) { if (data.error && data.error.length) { message.warning(data.error[0].message); } thedata = {}; } this.setState({ customerArr: thedata, }); }.bind(this), }).always( function () { this.setState({ loading: false, }); }.bind(this) ); }, //上级主管输入框失去焦点是判断客户是否存在 selectAuto(value, options) { this.setState({ auto: value, }); }, blurChange(e) { let theType = ""; let contactLists = this.state.customerArr || []; if (e) { contactLists.map(function (item) { if (item.name == e.toString()) { theType = item.id; } }); } this.setState({ theTypes: theType, }); }, //值改变时请求客户名称 httpChange(e) { if (e.length >= 1) { this.supervisor(e); } this.setState({ auto: e, }); }, //转交 changeAssigner(infor) { let type = infor if (infor == 1) { if (this.state.selList.length == 0) { message.warn("请勾选您需要转交的信息!") return } else if (this.state.selList.length == 2) { type = 3 } else { type = this.state.selList[0] } } if (this.state.theTypes) { this.setState({ informationTransferVisible: false, }); let changeIds = ""; let oldAid = ""; for (let idx = 0; idx < this.state.selectedRows.length; idx++) { let rowItem = this.state.selectedRows[idx]; if (rowItem.id) { oldAid = rowItem.aid; changeIds = this.state.selectedRows.length - 1 === idx ? changeIds + rowItem.id : changeIds + rowItem.id + ","; } } let loading = message.loading("加载中..."); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/customer/transferToOther", data: { uid: changeIds, //这一行数据的ID aid: this.state.theTypes, //指定转交人的ID oldAid: oldAid, operatorType: 3, data: type, }, }).done( function (data) { loading(); this.setState({ selList: [], }) if (!data.error.length) { this.setState({ auto: "", loading: false, selectedRowKeys: [], }); if (data.data.length == 0) { message.success("转交成功!"); } else { data.data.forEach(function (e) { message.warning(e) }) } } else { message.warning(data.error[0].message); } this.loadData( Math.min( this.state.ispage == undefined ? 1 : this.state.ispage, Math.ceil((this.state.pagination.total - 1) / 10) ) ); }.bind(this) ); } else { message.warning("请输入转交人姓名"); } }, //导出 exportExec() { let departmentName = "", depart = this.state.departmentArr || []; depart.map((item) => { if (this.state.departmentId == item.id) { departmentName = item.name; return; } }); let data = { name: this.state.nameSearch, province: this.state.provinceSearch, city: this.state.addressSearch, level: this.state.level, startDate: this.state.releaseDate[0], endDate: this.state.releaseDate[1], }; window.location.href = globalConfig.context + "/api/admin/customer/privateUnitCustomerOutXls?" + $.param(data); }, componentWillReceiveProps(nextProps) { if (nextProps.ApiUrl != this.props.ApiUrl) { if (!this.state.searchMore) { this.state.searchMore = true; } this.state.nameSearch = ""; this.state.addressSearch = []; this.state.provinceSearch = undefined; this.state.citySearch = undefined; this.state.releaseDate[0] = undefined; this.state.releaseDate[1] = undefined; this.loadData(null, nextProps.ApiUrl); } }, zhuanjiaoDetail(record) { this.setState({ zhuanjiaoVisible: true, zhuanjiaoId: record.id, }); }, zhuanjiaoDetailCancel() { this.setState({ zhuanjiaoVisible: false, }); }, showConfirm() { let _this = this; Modal.confirm({ title: "提示", content: ( 确定要转交以下客户吗? {this.state.selectedRows.map((value, index) => (
{value.name}
))}
), onOk() { _this.setState({ informationTransferVisible: true, }); }, onCancel() { }, }); }, changeList(arr) { const newArr = []; this.state.columns.forEach((item) => { arr.forEach((val) => { if (val === item.title) { newArr.push(item); } }); }); this.setState({ changeList: newArr, }); }, showConfirms(fn, record) { Modal.confirm({ title: "您确定将以下客户移至公共客户吗?", content: ( 移除后,以下客户将被别人领取! {this.state.selectedRows.map((value, index) => (
{value.name}
))}
), onOk() { fn(record); }, onCancel() { }, }); }, release() { this.setState({ loading: true, }); let deletedIds = ""; for (let idx = 0; idx < this.state.selectedRows.length; idx++) { let rowItem = this.state.selectedRows[idx]; if (rowItem.id) { deletedIds = this.state.selectedRows.length - 1 === idx ? deletedIds + rowItem.id : deletedIds + rowItem.id + ","; } } $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/customer/pushReleaseUser", data: { id: deletedIds, }, success: function (data) { let thedata = data.data; if (!thedata) { if (data.error && data.error.length) { message.warning(data.error[0].message); } thedata = {}; } else { message.success("移除成功"); this.loadData( this.state.dataSource.length === 1 ? this.state.ispage === 1 ? 1 : this.state.ispage - 1 : this.state.ispage ); } }.bind(this), }).always( function () { this.setState({ loading: false, }); }.bind(this) ); }, render() { const FormItem = Form.Item; const rowSelection = { hideDefaultSelections: true, selectedRowKeys: this.state.selectedRowKeys, onChange: (selectedRowKeys, selectedRows) => { this.setState({ modalVisible: false, selectedRows: selectedRows, selectedRowKeys: selectedRowKeys, }); }, onSelect: (recordt, selected, selectedRows) => { this.setState({ modalVisible: false, recordt: recordt.id, }); }, }; const hasSelected = this.state.selectedRowKeys.length > 0; const { RangePicker } = DatePicker; const dataSources = this.state.customerArr || []; const options = dataSources.map((group) => ( {group.name} )); const intentionState = this.props.intentionState || ""; return (
{ this.setState({ showModal: false }) }} />
{!intentionState ? "私有单位客户" : "私有专家客户"}
{ // 新需求 除湖南和内蒙古外 不让其他省操作 (adminData.province == "21" || adminData.province == "11") && } { this.setState({ nameSearch: e.target.value }); }} /> { this.setState({ addressSearch: e }); }} /> { this.setState({ releaseDate: dataString }); }} /> {/* { if (info.file.status !== 'uploading') { console.log(info.file, info.fileList); } if (info.file.status === 'done') { if (!info.file.response.error.length) { message.success(`${info.file.name} 文件上传成功!`); this.loadData(); } else { message.warning(info.file.response.error[0].message); return; }; } else if (info.file.status === 'error') { message.error(`${info.file.name} 文件上传失败。`); }; }} > {adminData.isSuperAdmin? :'' }*/} { // 新需求 除湖南和内蒙古外 不让其他省操作 (adminData.province == "21" || adminData.province == "11") && } {/**/} {/*
*/}
{this.state.zhuanjiaoVisible ? ( ) : ( "" )} {this.state.informationTransferVisible && ( { this.setState({ informationTransferVisible: false, selList: [], }); }} footer={[ , , ]} >
请确定,是否一并转交以下信息,如单个资料无法转交成功,则去掉对应“勾选”项,转交单一信息!
{ this.setState({ selList: e }); }}> 1.需要转交该客户资料
2.需要转交该客户名下的订单
)}