import React from 'react';
import { Radio, Icon, Button, AutoComplete,Cascader, Input, Select, Tabs, Spin, Popconfirm, Popover, Table, Switch, message, DatePicker, Modal, Upload, Form, Row, Col, TimePicker } from 'antd';
import ajax from 'jquery/src/ajax/xhr.js';
import $ from 'jquery/src/ajax';
import moment from 'moment';
import './myClient.less';
import { citySelect, provinceList, areaSelect } from '../../../NewDicProvinceList';
const { Column, ColumnGroup } = Table;
const TabPane = Tabs.TabPane;
import CustomerDetail from './myClientDesc.jsx';
import { socialAttribute, industry, newFollow, auditStatusL, lvl, currentMember, cityArr, statuslist, customerStatus, intentionalService, sex } from '../../../dataDic.js';
import { getCompanyIntention, splitUrl, getIndustry, getStatuslist, getAuditStatus, getContactType, getSocialAttribute, getfllowSituation, beforeUploadFile, getWhether, getcityArr, getcustomerStatue, getfllowSituationOn, getCertification, getcustomerTyp, getLvl, getCurrentMember, getprovince } from '../../../tools.js';
import AddContact from "../NEW/signCustomer/followDetail/addContact";
//图片组件
const PicturesWall = React.createClass({
getInitialState() {
return {
previewVisible: false,
previewImage: '',
fileList: [],
}
},
handleCancel() {
this.setState({ previewVisible: false })
},
handlePreview(file) {
this.setState({
previewImage: file.url || file.thumbUrl,
previewVisible: true,
});
},
handleChange(info) {
let fileList = info.fileList;
this.setState({ fileList });
this.props.fileList(fileList);
},
componentWillReceiveProps(nextProps) {
this.state.fileList = nextProps.pictureUrl;
},
render() {
const { previewVisible, previewImage, fileList } = this.state;
const uploadButton = (
);
return(
{uploadButton}
);
}
});
const MyClient = Form.create()(React.createClass({
loadData(pageNo, apiUrl) {
this.setState({
loading: true,
ispage:pageNo,
});
$.ajax({
method: "post",
dataType: "json",
crossDomain: false,
url: globalConfig.context + '/api/admin/customer/listPrivateOrganizationCustomer',
data: {
pageNo: pageNo || 1,
pageSize: this.state.pagination.pageSize,
type: this.state.typeSearch, //名称1
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],
status: this.state.statusSearch,
industry: this.state.industrySearch,
businessAudit: this.state.serviceCertificationSearch,
auditStatus: this.state.userCertificationSearch,
international: this.state.internationalSearch,
currentMemberStatus: this.state.currentMemberStatusSearch,
lvl: this.state.lvlSearch,
isMember: this.state.isMemberSearch,
societyTag: this.state.societyTagSearch,
listed: this.state.listedSearch, //是否上市
highTechZone: this.state.highTechZoneSearch, //是否高新
startDate: this.state.releaseDate[0],
endDate: this.state.releaseDate[1],
},
success: function(data) {
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];
theArr.push({
key: i,
id: thisdata.uid,
type: thisdata.type,
name: thisdata.name,
contacts: thisdata.contacts,
contactMobile: thisdata.contactMobile,
industry: thisdata.industry,
createTime: thisdata.createTime,
businessAudit: thisdata.businessAudit,
auditStatus: thisdata.auditStatus,
lvl: thisdata.lvl,
isMember: thisdata.isMember,
status: thisdata.status,
societyTag: thisdata.societyTag,
currentMemberStatus: thisdata.currentMemberStatus,
international: thisdata.international,
listed: thisdata.listed,
highTechZone: thisdata.highTechZone,
locationProvince: thisdata.province ? thisdata.province + '-' + thisdata.city || '' + '-' + thisdata.area : '--'
});
};
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,
pagination: this.state.pagination,
selectedRowKeys:[]
});
}.bind(this),
}).always(function() {
this.setState({
loading: false
});
}.bind(this));
},
//点击出现函数
setModal2VisibleOk(e) {
this.setState({
modal2Visible: true
});
},
//点击消失函数
setModal2Visiblecancel(e) {
this.setState({
modal2Visible: false
});
},
getPictureUrl(e) {
this.setState({ pictureUrl: e });
},
handleOk(e) {
this.setState({
visible: false,
});
},
handleCancel(e) {
this.setState({
visible: false,
});
},
getInitialState() {
return {
addressSearch: [],
orgCodeUrl: [],
companyLogoUrl: [],
visible: false,
searchMore: true,
releaseDate: [],
selectedRowKeys: [],
selectedRowKey: [],
selectedRows: [],
loading: false,
pagination: {
defaultCurrent: 1,
defaultPageSize: 10,
showQuickJumper: true,
pageSize: 10,
onChange: function(page) {
this.loadData(page);
}.bind(this),
showTotal: function(total) {
return '共' + total + '条数据';
}
},
paginations: {
defaultCurrent: 1,
defaultPageSize: 10,
showQuickJumper: true,
pageSize: 10,
onChange: function(page) {
this.loadVisit(page);
}.bind(this),
showTotal: function(total) {
return '共' + total + '条数据';
}
},
paginationsy: {
defaultCurrent: 1,
defaultPageSize: 10,
showQuickJumper: true,
pageSize: 10,
onChange: function(page) {
this.loadBfVisit(page, false);
}.bind(this),
showTotal: function(total) {
return '共' + total + '条数据';
}
},
paginationt: {
defaultCurrent: 1,
defaultPageSize: 10,
showQuickJumper: true,
pageSize: 10,
onChange: function(page) {
this.BusinessList(page, false);
}.bind(this),
showTotal: function(total) {
return '共' + total + '条数据';
}
},
//业务意向列表
intentionList: [{
title: '业务名称',
dataIndex: 'businessGlossoryId',
key: 'businessGlossoryId',
render: (text, record, index) => {
return
}
},
{
title: '最新进度',
dataIndex: 'followSituation',
key: 'followSituation',
render: (text, record, index) => {
return
}
}, {
title: '最新状态',
dataIndex: 'customerStatus',
key: 'customerStatus',
render: (text, record, index) => {
return
}
}, {
title: '跟进说明',
dataIndex: 'remarks',
key: 'remarks',
render: (text, record, index) => {
return { record.remarks = e.target.value; this.setState({ data: this.state.data }); }}
style={{width:'120px'}}/>
}
}, {
title: '操作',
dataIndex: 'rrr',
key: 'rrr',
render: (text, record, index) => {
return
{this.intentionDelet(record,index)}} okText="删除" cancelText="不删除">
}
}
],
businessIntentionList: [{
title: '意向时间',
dataIndex: 'createTime',
key: 'createTime'
}, {
title: '客户名称',
dataIndex: 'identifyName',
key: 'identifyName'
}, {
title: '业务名',
dataIndex: 'businessName',
key: 'businessName'
}, {
title: '营销员',
dataIndex: 'adminName',
key: 'adminName'
}, {
title: '业务意向进度',
dataIndex: 'followSituation',
key: 'followSituation',
render: text => { return getfllowSituation(text) }
}, {
title: '客户状态',
dataIndex: 'customerStatus',
key: 'customerStatus',
render: text => { return getcustomerStatue(text) }
}, {
title: '操作',
dataIndex: 'ooo',
key: 'ooo',
render: (text, record) => { return() }
}],
businessFollowList: [{
title: '跟进时间',
dataIndex: 'followTime',
key: 'followTime',
}, {
title: '营销员',
dataIndex: 'adminName',
key: 'adminName',
}, {
title: '业务意向进度',
dataIndex: 'followSituation',
key: 'followSituation',
render: text => { return getfllowSituation(text) }
}, {
title: '客户状态',
dataIndex: 'customerStatus',
key: 'customerStatus',
render: text => { return getcustomerStatue(text) }
},
{
title: '拜访方式',
dataIndex: 'contactType',
key: 'contactType',
render: text => { return getContactType(text) }
}, {
title: '联系人',
dataIndex: 'contacts',
key: 'contacts',
},
{
title: '联系电话',
dataIndex: 'contactMobile',
key: 'contactMobile',
}, {
title: '操作',
dataIndex: 'ooo',
key: 'ooo',
render: (text, record) => { return() }
}
],
visitsList: [{
title: '拜访时间',
dataIndex: 'followTime',
key: 'followTime'
}, {
title: '客户名称',
dataIndex: 'identifyName',
key: 'identifyName'
}, {
title: '拜访方式',
dataIndex: 'contactType',
key: 'contactType',
render: text => { return getContactType(text) }
}, {
title: '联系人',
dataIndex: 'contacts',
key: 'contacts'
}, {
title: '联系电话',
dataIndex: 'contactMobile',
key: 'contactMobile'
}, {
title: '拜访人',
dataIndex: 'adminName',
key: 'adminName'
}, {
title: '拜访说明',
dataIndex: 'result',
key: 'result'
}, {
title: '操作',
dataIndex: 'ttt',
key: 'ttt',
render: (text, record, index) => {
return
{this.visitDelet(record)}} okText="删除" cancelText="不删除">
}
}],
ContactsLists: [{
title: '姓名',
dataIndex: 'name',
key: 'name',
render: (text, record, index) => {
return { record.name = e.target.value;
this.setState({ contactList: this.state.contactList }); }} style={{width:'120px'}}/>
}
}, {
title: '联系人部门',
dataIndex: 'depatrment',
key: 'depatrment',
render: (text, record, index) => {
return { record.depatrment = e.target.value; this.setState({ contactList: this.state.contactList }); }} style={{width:'120px'}}/>
}
}, {
title: '联系人职务',
dataIndex: 'position',
key: 'position',
render: (text, record, index) => {
return { record.position = e.target.value; this.setState({ contactList: this.state.contactList }); }} style={{width:'120px'}}/>
}
}, {
title: '主要联系人',
dataIndex: 'major',
width:100,
key: 'major',
render:(text) => {
return text?'是':"否"
}
},{
title: '手机号码',
dataIndex: 'mobile',
key: 'mobile',
render: (text, record, index) => {
return { record.mobile = e.target.value; this.setState({ contactList: this.state.contactList }); }} style={{width:'120px'}}/>
}
}, {
title: '微信',
dataIndex: 'wechat',
key: 'wechat',
render: (text, record, index) => {
return { record.wechat = e.target.value; this.setState({ contactList: this.state.contactList }); }} style={{width:'120px'}}/>
}
}, {
title: '联系人QQ',
dataIndex: 'qq',
key: 'qq',
render: (text, record, index) => {
return { record.qq = e.target.value; this.setState({ contactList: this.state.contactList }); }} style={{width:'120px'}}/>
}
}, {
title: '电子邮箱',
dataIndex: 'email',
key: 'email',
render: (text, record, index) => {
return { record.email = e.target.value; this.setState({ contactList: this.state.contactList }); }} style={{width:'120px'}}/>
}
},
{
title: '操作',
dataIndex: 'dels',
key: 'dels',
render: (text, record, index) => {
return {adminData.isSuperAdmin ?
{this.confirmDelet(record)}} okText="删除" cancelText="不删除">
:''}
{record.name?
:''}
}
}
],
columnsman: [{
title: '姓名',
dataIndex: 'name',
key: 'name'
}, {
title: '手机号码',
dataIndex: 'mobile',
key: 'mobile'
}],
columns: [{
title: '客户名称',
dataIndex: 'name',
key: 'name',
}, {
title: '客户类型',
dataIndex: 'type',
key: 'type',
render: text => { return getcustomerTyp(text) }
}, {
title: '地区',
dataIndex: 'locationProvince',
key: 'locationProvince',
}, {
title: '联系人',
dataIndex: 'contacts',
key: 'contacts',
},
{
title: '联系电话',
dataIndex: 'contactMobile',
key: 'contactMobile',
},
{
title: '行业',
dataIndex: 'industry',
key: 'industry',
},
{
title: '社会性质',
dataIndex: 'societyTag',
key: 'societyTag',
render: text => { return getSocialAttribute(text) }
},
{
title: '创建时间',
dataIndex: 'createTime',
key: 'createTime',
},
{
title: '实名认证',
dataIndex: 'auditStatus',
key: 'auditStatus',
render: text => { return getAuditStatus(text) }
},
{
title: '是否高新',
dataIndex: 'highTechZone',
key: 'highTechZone',
render: text => { return getWhether(text) }
},
{
title: '是否上市',
dataIndex: 'listed',
key: 'listed',
render: text => { return getWhether(text) }
},
{
title: '是否国际',
dataIndex: 'international',
key: 'international',
render: text => { return getWhether(text) }
},
{
title: '账户状态',
dataIndex: 'status',
key: 'status',
render: text => { return getStatuslist(text) }
},
{
title: '操作',
dataIndex: 'abc',
key: 'abc',
render: (text, record, index) => {
return
}
}
],
data: [],
dataman: [],
dataSource: [],
visitArrList: [],
searchTime: [, ]
};
},
//选择主要联系人
mainContact(record){
this.setState({
loading: true
});
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/customer/updateMainContact",
data: {
uid:this.state.rowId,
ocbId: record.id
}
}).done(function(data) {
if(!data.error.length) {
message.success('设为主要联系人成功!');
this.setState({
loading: false,
});
} else {
message.warning(data.error[0].message);
};
this.contactLists(this.state.rowId);
}.bind(this));
},
//更多操作
ModalOperation() {
this.setState({
visible: true,
});
},
//tab2获取联系人详情
contactLists(ids) {
this.setState({
loading: true
});
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + '/api/admin/customer/findCustomerContacts',
data: {
uid: ids, //名称1
},
success: function(data) {
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.length; i++) {
let thisdata = data.data[i];
theArr.push({
id: thisdata.id,
name: thisdata.name,
mobile: thisdata.mobile,
email: thisdata.email,
qq: thisdata.qq,
wechat: thisdata.wechat,
depatrment: thisdata.depatrment,
position: thisdata.position,
major:thisdata.major
});
};
};
this.setState({
contactList: theArr,
});
}.bind(this),
}).always(function() {
this.setState({
loading: false
});
}.bind(this));
},
//刷新新增拜访记录刷新
deletelist(e) {
$.ajax({
method: "get",
dataType: "json",
url: globalConfig.context + '/api/admin/customer/toAddFollow',
data: {
uid: e,
},
success: function(data) {
let listArr = [];
let thedata = data.data;
if(!thedata) {
if(data.error && data.error.length) {
message.warning(data.error[0].message);
};
thedata = {};
};
for(let i = 0; i < data.data.userBusinessList.length; i++) {
let thisdata = data.data.userBusinessList[i];
listArr.push({
id: thisdata.id,
businessGlossoryId: String(thisdata.businessGlossoryId),
followSituation: String(thisdata.followSituation),
customerStatus: String(thisdata.customerStatus),
remarks: thisdata.remarks,
});
};
this.setState({
contacts: thedata.contacts,
uid: thedata.uid,
data: listArr,
identifyName: thedata.identifyName,
followTime: thedata.followTime,
businessGlossoryId: thedata.businessGlossoryId,
followSituation: thedata.followSituation,
customerStatus: thedata.customerStatus,
remarks: thedata.remarks,
});
}.bind(this),
}).always(function() {
this.setState({
loading: false
});
}.bind(this));
},
//进入新增拜访记录
visit(e) {
this.state.keys = true;
this.getNewWoman(e.id);
this.deletelist(e.id)
this.setState({
result: '',
contactType: undefined,
visitModul: true,
loading: true
});
},
//拜访记录删除
visitDelet(e) {
this.setState({
loading: true
});
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/customer/deleteFollow",
data: {
followId: e.followId, //删除的ID
}
}).done(function(data) {
if(!data.error.length) {
message.success('删除成功!');
this.setState({
loading: false,
});
} else {
message.warning(data.error[0].message);
};
this.loadVisit();
}.bind(this));
},
//进入修改拜访记录
visitModify(e) {
this.setState({
visitModul: true,
loading: true
});
$.ajax({
method: "get",
dataType: "json",
url: globalConfig.context + '/api/admin/customer/toUpdateFollow',
data: {
followId: e,
},
success: function(data) {
let theArr = [];
let thedata = data.data;
if(!thedata) {
if(data.error && data.error.length) {
message.warning(data.error[0].message);
};
thedata = {};
};
for(let i = 0; i < data.data.userBusinessList.length; i++) {
let thisdata = data.data.userBusinessList[i];
theArr.push({
id: thisdata.id,
businessGlossoryId: String(thisdata.businessGlossoryId),
followSituation: String(thisdata.followSituation),
customerStatus: String(thisdata.customerStatus),
remarks: thisdata.remarks,
});
};
this.setState({
followIds: thedata.followId,
contacts: thedata.contacts,
uid: thedata.uid,
data: theArr,
nub: thedata.contactMobile,
result: thedata.result,
contactType: parseInt(thedata.contactType),
identifyName: thedata.identifyName,
followTime: thedata.followTime,
businessGlossoryId: thedata.businessGlossoryId,
followSituation: thedata.followSituation,
customerStatus: thedata.customerStatus,
adminName: thedata.adminName,
});
}.bind(this),
}).always(function() {
this.setState({
loading: false
});
}.bind(this));
},
//转为公共客户
changeRow() {
let deletedIds;
for(let idx = 0; idx < this.state.selectedRows.length; idx++) {
let rowItem = this.state.selectedRows[idx];
if(rowItem.id) {
deletedIds = rowItem.id;
};
};
this.setState({
selectedRowKeys: [],
});
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/customer/transferToPublic",
data: {
uid: deletedIds,
}
}).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));
},
//列表删除功能
delectRow() {
let deletedIds;
for(let idx = 0; idx < this.state.selectedRows.length; idx++) {
let rowItem = this.state.selectedRows[idx];
if(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));
},
getOrgCodeUrl(e) {
this.setState({ orgCodeUrl: e });
},
getCompanyLogoUrl(e) {
this.setState({ companyLogoUrl: e });
},
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();
},
addClick() {
this.state.RowData = {};
this.setState({
showDesc: true,
});
},
newmodal(e) {
if(e) {
this.tableRowClick();
}
},
closeDesc(e, s) {
this.state.showDesc = e;
if(s) {
this.loadData(this.state.ispage);
};
},
search() {
this.loadData();
},
reset() {
this.state.isMemberSearch = undefined;
this.state.internationalSearch = undefined;
this.state.typeSearch = undefined; //名称1
this.state.nameSearch = '';
this.state.addressSearch = [];
this.state.provinceSearch = undefined;
this.state.citySearch = undefined;
this.state.statusSearch = undefined;
this.state.contactsSearch = undefined;
this.state.contactMobileSearch = undefined;
this.state.industrySearch = undefined;
this.state.serviceCertificationSearch = undefined;
this.state.userCertificationSearch = undefined;
this.state.currentMemberStatusSearch = undefined;
this.state.lvlSearch = undefined;
this.state.listedSearch = undefined;
this.state.highTechZoneSearch = undefined;
this.state.releaseDate[0] = undefined;
this.state.releaseDate[1] = undefined;
this.state.societyTagSearch = undefined;
this.loadData();
},
searchSwitch() {
this.setState({
searchMore: !this.state.searchMore
});
},
//详情保存函数
detailsSubmint() {
this.setState({
modal5Visible: false,
})
},
//整行点击
tableRowClick(record, index) {
this.state.RowData = record;
this.detailsModalOk(record);
this.loadInformation(record.id);
this.httpAccount(record.id);
this.loadBfVisit(1, record.id);
this.BusinessList(1, record.id);
this.contactLists(record.id);
this.setState({
callnub:'1',
selectedRowKeys: [],
rowId: record.id,
})
},
VisitRowClick(record, index) {
this.state.keys = false;
this.state.RowData = record;
this.visitModify(record.followId);
this.setState({
selectedRowKeys: [],
delectId: record.followId,
})
},
//基本信息提交
newSubmit(e) {
e.preventDefault();
if(!this.state.industry) {
message.warning('请选择行业');
return false;
};
if(!this.state.societyTag) {
message.warning('请选择社会性质');
return false;
};
if(!this.state.ProvinceCity[1]) {
message.warning('请选择地区');
return false;
};
if(isNaN(this.state.registeredCapital)){
message.warning('注册资本只能输入数字')
return false;
};
if(isNaN(this.state.enterpriseScale)){
message.warning('单位规模只能输入数字')
return false;
}
this.setState({
selectedRowKeys: [],
});
this.props.form.validateFields((err, values) => {
let theorgCodeUrl = [];
if(this.state.orgCodeUrl.length) {
let picArr = [];
this.state.orgCodeUrl.map(function(item) {
if ( item.response && item.response.data && item.response.data.length ){
picArr.push(item.response.data);
}
});
theorgCodeUrl = picArr.join(",");
};
let thecompanyLogoUrl = [];
if(this.state.companyLogoUrl.length) {
let picArr = [];
this.state.companyLogoUrl.map(function(item) {
if ( item.response && item.response.data && item.response.data.length ){
picArr.push(item.response.data);
}
});
thecompanyLogoUrl = picArr.join(",");
};
if(!err) {
this.setState({
loading: true
});
$.ajax({
method: "post",
dataType: "json",
url: globalConfig.context + '/api/admin/customer/updateOrganizationCustomer',
data: {
id: this.state.InformationId,
uid: this.state.InformationUid,
societyTag: this.state.societyTag,
introduction: this.state.introduction,
unitName: this.state.unitName,
industry: this.state.industry,
locationProvince: (this.state.ProvinceCity)[0], //省-
locationCity: (this.state.ProvinceCity)[1], //市
locationArea: (this.state.ProvinceCity)[2], //区
postalAddress: this.state.postalAddress,
contactsFixedTel: this.state.contactsFixedTel,
contactsFax: this.state.contactsFax,
registeredCapital: this.state.registeredCapital?this.state.registeredCapital:0,
enterpriseScale: this.state.enterpriseScale?this.state.enterpriseScale:0,
legalPerson: this.state.legalPerson,
legalPersonIdCard: this.state.legalPersonIdCard,
legalPersonTel: this.state.legalPersonTel,
legalPersonEmail: this.state.legalPersonEmail,
highTechZone: this.state.highTechZone,
listed: this.state.listed,
contacts: this.state.contacts,
contactMobile: this.state.contactMobile,
international: this.state.international,
orgCode: this.state.orgCode,
businessScope: this.state.businessScope,
companyLogoUrl: thecompanyLogoUrl!=0?thecompanyLogoUrl:'',
orgCodeUrl: theorgCodeUrl!=0?theorgCodeUrl:'',
investment: this.state.investment,
businessAudit: this.state.businessAudit,
auditStatus: this.state.auditStatus
}
}).done(function(data) {
this.setState({
loading: false
});
if(!data.error.length) {
message.success('保存成功!');
this.detailsModal()
this.loadData(this.state.ispage);
} else {
message.warning(data.error[0].message);
}
}.bind(this));
}
})
},
//点击整行查看详情
//查看基本详情基本信息
loadInformation(record) {
$.ajax({
method: "get",
dataType: "json",
url: globalConfig.context + '/api/admin/customer/findOrganizationCustomerDetail',
data: {
uid: record
},
success: function(data) {
let thisData = data.data;
if(!thisData) {
if(data.error && data.error.length) {
message.warning(data.error[0].message);
};
thisData = {};
};
let ProvinceCityArr = [];
let ProvinceS = thisData.locationProvince; //getprovince
let citys = thisData.locationCity;
let Areas = thisData.locationArea;
ProvinceCityArr.push(ProvinceS, citys, Areas);
this.setState({
InformationId: thisData.id,
InformationUid: thisData.uid,
identifyName: thisData.identifyName,
listed: thisData.listed,
highTechZone: thisData.highTechZone,
orgCodeUrl: thisData.orgCodeUrl ? splitUrl(thisData.orgCodeUrl, ',', globalConfig.avatarHost + '/upload') : [],
companyLogoUrl: thisData.companyLogoUrl ? splitUrl(thisData.companyLogoUrl, ',', globalConfig.avatarHost + '/upload') : [],
dataInformation: thisData,
ProvinceCity: ProvinceCityArr,
contacts: thisData.contacts,
contactMobile: thisData.contactMobile,
industry: String(thisData.industry) == 'null' ? undefined : String(thisData.industry),
international: thisData.international,
societyTag: thisData.societyTag,
introduction: thisData.introduction,
postalAddress: thisData.postalAddress,
contactsFixedTel: thisData.contactsFixedTel,
contactsFax: thisData.contactsFax,
registeredCapital: thisData.registeredCapital,
enterpriseScale: thisData.enterpriseScale,
legalPerson: thisData.legalPerson,
legalPersonIdCard: thisData.legalPersonIdCard,
legalPersonTel: thisData.legalPersonTel,
legalPersonEmail: thisData.legalPersonEmail,
businessScope: thisData.businessScope,
orgCode: thisData.orgCode,
investment: thisData.investment,
auditStatus: thisData.auditStatus ? String(thisData.auditStatus) : undefined,
businessAudit: thisData.businessAudit
});
}.bind(this),
}).always(function() {
this.setState({
loading: false
});
}.bind(this));
},
//tab3账户信息请求数据
httpAccount(record) {
this.RowClick;
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + '/api/admin/customer/findUserAccountDetail',
data: {
uid: record
},
success: function(data) {
let thisData = data.data;
if(!thisData) {
if(data.error && data.error.length) {
message.warning(data.error[0].message);
};
thisData = {};
};
let sourcecustomer = ''
switch(String(thisData.source)) {
case '0':
sourcecustomer = '注册客户'
break;
case '1':
sourcecustomer = '录入客户'
break;
}
this.setState({
Accountuid: thisData.id,
mobile: thisData.mobile,
nickname: thisData.nickname,
email: thisData.email,
type: getcustomerTyp(String(thisData.type)),
source: sourcecustomer,
isMember: thisData.isMember,
currentMemberStatus: String(thisData.currentMemberStatus),
lvl: String(thisData.lvl),
status: String(thisData.status),
createTimes: thisData.createTimes,
});
}.bind(this),
}).always(function() {
this.setState({
loading: false
});
}.bind(this));
},
detailsModalOk(e) {
this.setState({ modal5Visible: true }); //需要一个请求数据
},
//点击消失函数
detailsModal(e) {
this.setState({
modal5Visible: false
});
},
//拜访modul函数
visitOk(e) {
this.setState({
visitModul: false
});
this.loadVisit()
},
visitCancel(e) {
this.setState({
visitModul: false
});
},
//拜访保存函数
visitSubmit(e) {
e.preventDefault();
let GlossoryId=false;
this.state.data.map(function(item) {
if(!item.businessGlossoryId||!item.followSituation||!item.customerStatus) {
GlossoryId = true
}
})
if(this.state.contactType == undefined) {
message.warning('请选择拜访方式')
return false;
};
if(this.state.keys) {
if(this.state.lastName == undefined) {
message.warning('请选择联系人')
return false;
}
};
if(GlossoryId) {
message.warning("业务名称/最新进度/最新状态不能为空!")
return false;
};
this.setState({
loading: true
});
let contactsId = '';
if(this.state.keys) {
let conts = this.state.lastName;
contactsId = this.state.contactsIdArr[conts].id;
}
//新增
$.ajax({
method: "post",
dataType: "json",
url: this.state.keys ? globalConfig.context + '/api/admin/customer/addFollow' : globalConfig.context + '/api/admin/customer/updateFollow',
data: this.state.keys ? {
userBusinessList: JSON.stringify(this.state.data),
uid: this.state.uid,
ocbId: contactsId,
contactType: this.state.contactType,
result: this.state.result,
followTime: this.state.followTime,
} : {
followId: this.state.followIds,
userBusinessList: JSON.stringify(this.state.data),
uid: this.state.uid,
contactType: this.state.contactType,
result: this.state.result,
followTime: this.state.followTime,
}
}).done(function(data) {
this.setState({
loading: false
});
if(!data.error.length) {
message.success('保存成功!');
this.loadVisit(); //
this.loadData(this.state.ispage);
this.visitCancel();
} else {
message.warning(data.error[0].message);
}
}.bind(this));
},
//当选择联系人的列表变化时,则执行
hundleName(e) {
let changNub = this.state.telNum[e];
this.setState({
nub: this.state.telNum[e],
lastName: e,
});
},
//添加新业务及单位客户详情新增
addNew() {
this.state.data.push({
customerStatus: undefined,
businessGlossoryId: undefined,
followSituation: undefined,
remarks: '',
});
this.setState({
data: this.state.data
})
},
//tab2新增联系人
addcontact() {
this.state.contactList.push({
id: null,
name: '',
mobile: '',
email: '',
qq: '',
wechat: '',
depatrment: '',
position: '',
});
this.setState({
contactList: this.state.contactList
})
},
//tab5进入修改时
//进入修改时
listFollowUp(e) {
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/customer/toUpdateFollowOneBusiness",
data: {
ufbId: 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({
businessGlossoryIds: thedata.businessGlossoryId,
followSituations: thedata.followSituation,
customerStatuss: thedata.customerStatus,
followTimes: thedata.followTime,
createTimes: thedata.createTime,
identifyNames: thedata.identifyName,
contactTypes: parseInt(thedata.contactType),
results: thedata.result,
remarkss: thedata.remarks,
adminNames: thedata.adminName,
contactss: thedata.contacts,
contactMobiles: thedata.contactMobile,
ufbId: thedata.ufbId,
followIds: thedata.followId,
});
}.bind(this),
}).always(function() {
this.setState({
loading: false
});
}.bind(this));
},
//修改密码Modul
modifyPassworld() {
this.setState({
passworldModul: true
});
},
passworldOk(e) {
this.setState({
passworldModul: false
});
},
passworldCancel(e) {
this.setState({
passworldModul: false
});
},
//修改密码保存
passworldSubmit(e) {
e.preventDefault();
this.passworldCancel()
},
//点击新增详情
newContacts() {
this.state.newsex = undefined;
this.state.newname = '';
this.state.newmobile = '';
this.state.newwechat = '';
this.state.newqq = '';
this.state.newdepatrment = '';
this.state.newposition = '';
this.state.newemail = '';
this.setState({
uids: this.state.uid,
addcontactModul: true
});
},
//获取联系人下拉框
getNewWoman(ids) {
this.state.data = []
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/customer/findCustomerContacts",
data: {
uid: ids,
},
success: function(data) {
let theArr = [];
let thedata = data.data;
if(!thedata) {
if(data.error && data.error.length) {
message.warning(data.error[0].message);
};
thedata = {};
};
var telNum = [];
var contactIds = [];
thedata.map(function(item, index) {
contactIds.push(thedata[index].id);
telNum.push(thedata[index].mobile);
});
for(let item in data.data) {
let theData = data.data[item];
theArr.push(
{theData.name}
);
};
this.setState({
contactsIdArr: thedata,
telNum: telNum,
orderStatusOption: theArr,
});
}.bind(this),
}).always(function() {
this.setState({
deletId: ids,
loading: false
});
}.bind(this));
},
//拜访意向服务列表单个删除
intentionDelet(e, index) {
if(!this.state.keys) {
let detId = this.state.followIds;
if(e.id) {
this.setState({
selectedRowKeys: [],
});
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/customer/deleteFollowOneBusiness",
data: {
ufbId: e.id
}
}).done(function(data) {
if(!data.error.length) {
message.success('删除成功');
this.setState({
loading: false,
});
} else {
message.warning(data.error[0].message);
};
this.visitModify(detId);
}.bind(this));
} else {
this.visitModify(detId);
}
} else {
let deteluserBusinessList = (this.state.data).splice(index, 1)
this.setState({
selectedRowKeys: [],
});
}
},
//tab5意向业务
//意向业务查看列表单个详情
businessIntentionDetails(e) {
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + '/api/admin/customer/toUpdateBusiness',
data: {
businessId: e.businessId
},
success: function(data) {
let thisData = data.data;
if(!thisData) {
if(data.error && data.error.length) {
message.warning(data.error[0].message);
};
thisData = {};
};
this.setState({
businessGlossoryId: thisData.businessGlossoryId,
identifyName: thisData.identifyName,
uid: thisData.uid,
businessId: thisData.businessId,
followSituation: thisData.followSituation,
customerStatus: thisData.customerStatus,
createTime: thisData.createTime,
followTime: thisData.followTime,
adminName: thisData.adminName,
remarks: thisData.remarks,
result: thisData.result,
});
}.bind(this),
}).always(function() {
this.loadVisit();
this.setState({
loading: false
});
}.bind(this));
this.setState({
businessModul: true
})
},
//查看跟进记录列表
loadVisit(pageNo) {
this.setState({
loading: true
});
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + '/api/admin/customer/listFollowHistory',
data: {
pageNo: pageNo || 1,
pageSize: this.state.paginations.pageSize,
uid: this.state.rowId, //名称1
businessGlossoryId: this.state.businessGlossoryId,
},
success: function(data) {
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];
theArr.push({
followId: thisdata.followId,
followTime: thisdata.followTime,
identifyName: thisdata.identifyName,
contacts: thisdata.contacts,
contactMobile: thisdata.contactMobile,
result: thisdata.result,
ufbId: thisdata.ufbId,
adminName: thisdata.adminName,
followSituation: thisdata.followSituation,
customerStatus: thisdata.customerStatus,
contactType: thisdata.contactType
});
};
this.state.paginations.current = data.data.pageNo;
this.state.paginations.total = data.data.totalCount;
};
this.setState({
visitArrList: theArr,
paginations: this.state.paginations
});
}.bind(this),
}).always(function() {
this.setState({
loading: false
});
}.bind(this));
},
//tab3拜访记录
loadBfVisit(pageNo, uids) {
this.setState({
loading: true
});
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + '/api/admin/customer/listFollowHistory',
data: {
pageNo: pageNo || 1,
pageSize: this.state.paginationsy.pageSize,
uid: uids ? uids : this.state.rowId, //名称1
},
success: function(data) {
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];
theArr.push({
followId: thisdata.followId,
followTime: thisdata.followTime,
identifyName: thisdata.identifyName,
contacts: thisdata.contacts,
contactMobile: thisdata.contactMobile,
result: thisdata.result,
ufbId: thisdata.ufbId,
adminName: thisdata.adminName,
followSituation: thisdata.followSituation,
customerStatus: thisdata.customerStatus,
contactType: thisdata.contactType
});
};
this.state.paginationsy.current = data.data.pageNo;
this.state.paginationsy.total = data.data.totalCount;
};
this.setState({
visitArrList: theArr,
paginationsy: this.state.paginationsy
});
}.bind(this),
}).always(function() {
this.setState({
loading: false
});
}.bind(this));
},
businessIntentionOk() {
this.setState({
businessGlossoryId: '',
businessModul: false
})
},
businessIntentionCancel() {
this.setState({
businessGlossoryId: '',
businessModul: false
})
},
//业务跟进查看跟多
businessFollowDetails(e) {
this.listFollowUp(e.ufbId)
this.setState({
businessFollowModul: true
})
},
businessFollowOk(e) {
this.setState({
businessFollowModul: false
})
},
businessFollowCancel(e) {
this.setState({
businessFollowModul: false
})
},
//tab2联系人保存
contactSave(e) {
e.preventDefault();
this.setState({
loading: true
});
$.ajax({
url: globalConfig.context + '/api/admin/customer/updateCustomerContacts',
method: 'post',
data: {
uid: this.state.rowId,
contactList: JSON.stringify(this.state.contactList)
}
}).done(function(data) {
this.setState({
loading: false
});
if(!data.error.length) {
message.success('保存成功!');
this.detailsModal()
this.loadData(this.state.ispage);
} else {
message.warning(data.error[0].message);
}
}.bind(this));
},
//详情tab切换数据处理
callback(e) {
if(e == '1') {
this.loadInformation(this.state.rowId)
}
if(e == '2') {
this.contactLists(this.state.rowId)
}
if(e == '3') {
this.httpAccount(this.state.rowId)
}
if(e == '4') {
this.loadBfVisit(1, this.state.rowId);
}
if(e == '5') {
this.BusinessList(1, this.state.rowId);
}
if(e == '6') {
}
if(e == '7') {
}
if(e == '8') {
}
if(e == '9') {
}
this.setState({
callnub: e,
})
},
//账户信息保存
accountSave(e) {
e.preventDefault();
if(!this.state.mobile) {
message.warning('手机号码不能为空!')
return false;
}
this.setState({
loading: true
});
$.ajax({
method: "post",
dataType: "json",
url: globalConfig.context + '/api/admin/customer/updateUserAccount',
data: {
id: this.state.Accountuid,
mobile: this.state.mobile,
nickname: this.state.nickname,
email: this.state.email,
isMember: this.state.isMember,
currentMemberStatus: this.state.currentMemberStatus,
lvl: this.state.lvl,
status: this.state.status,
}
}).done(function(data) {
this.setState({
loading: false
});
if(!data.error.length) {
message.success('保存成功!');
this.detailsModal();
this.loadData(this.state.ispage);
} else {
message.warning(data.error[0].message);
}
}.bind(this));
},
//tab2删除
confirmDelet(e) {
this.setState({
loading: true
});
if(e.id) {
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/customer/deleteOneContact",
data: {
ocbId: e.id, //删除的ID
}
}).done(function(data) {
if(!data.error.length) {
message.success('删除成功!');
this.setState({
loading: false,
});
} else {
message.warning(data.error[0].message);
};
this.contactLists(this.state.rowId);
}.bind(this));
} else {
this.contactLists(this.state.rowId);
}
},
//tab5业务意向
BusinessList(pageNo, uids) {
this.setState({
loading: true
});
$.ajax({
method: "post",
dataType: "json",
crossDomain: false,
url: globalConfig.context + '/api/admin/customer/listBusiness',
data: {
pageNo: pageNo || 1,
pageSize: this.state.paginationt.pageSize,
uid: uids ? uids : this.state.rowId
},
success: function(data) {
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];
theArr.push({
key: i,
businessId: thisdata.businessId,
businessName: thisdata.businessName,
identifyName: thisdata.identifyName,
followSituation: thisdata.followSituation,
customerStatus: thisdata.customerStatus,
adminName: thisdata.adminName,
createTime: thisdata.createTime
});
};
this.state.paginationt.current = data.data.pageNo;
this.state.paginationt.total = data.data.totalCount;
};
this.setState({
dataBusiness: theArr,
paginationt: this.state.paginationt
});
}.bind(this),
}).always(function() {
this.setState({
loading: false
});
}.bind(this));
},
//指定转交人自动补全
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() {
if(this.state.theTypes){
this.setState({
selectedRowKeys: [],
});
let changeIds;
for(let idx = 0; idx < this.state.selectedRows.length; idx++) {
let rowItem = this.state.selectedRows[idx];
if(rowItem.id) {
changeIds = rowItem.id;
};
};
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/customer/transferToOther",
data: {
uid: changeIds, //这一行数据的ID
aid: this.state.theTypes, //指定转交人的ID
}
}).done(function(data) {
if(!data.error.length) {
message.success('转交成功!');
this.setState({
auto:'',
loading: false,
});
} else {
message.warning(data.error[0].message);
};
this.loadData(this.state.ispage);
}.bind(this));
}else{
message.warning('请输入转交人姓名')
}
},
componentWillReceiveProps(nextProps) {
if(!this.props.visible && nextProps.visible) {
if(nextProps.data && nextProps.data.id) {
this.loadData(nextProps.data.id, nextProps.detailApiUrl);
};
this.state.data = {};
this.state.companyLogoUrl = [];
this.state.orgCodeUrl = [];
};
},
render() {
const FormItem = Form.Item
const rowSelection = {
selectedRowKeys: this.state.selectedRowKeys,
onChange: (selectedRowKeys, selectedRows) => {
this.setState({
selectedRows: selectedRows.slice(-1),
selectedRowKeys: selectedRowKeys.slice(-1)
});
},
onSelect: (recordt, selected, selectedRows) => {
this.setState({
recordt: recordt.id
})
},
};
const rowSelections = {
selectedRowKeys: this.state.selectedRowKey,
onChange: (selectedRowKey, selectedRow) => {
this.setState({
selectedRow: selectedRow.slice(-1),
selectedRowKey: selectedRowKey.slice(-1)
});
},
onSelect: (records, selected, selectedRow) => {
this.setState({
selectedRow: selectedRow.slice(-1),
records: records.id,
})
},
};
const hasSelected = this.state.selectedRowKeys.length > 0;
const { RangePicker } = DatePicker;
const { getFieldDecorator } = this.props.form;
const formItemLayout = {
labelCol: { span: 8 },
wrapperCol: { span: 14 },
};
const theInformation = this.state.dataInformation || {}
const contactsOption = "";
const formItemLayput = {
labelCol: { span: 10 },
wrapperCol: { span: 14 },
};
const contacts = this.state.contacts || '';
const dataSources=this.state.customerArr || [];
const options = dataSources.map((group) =>
{group.name}
)
return(