import React from 'react'; import { Radio, Icon, Button, Input, Select, Tabs,Spin,Popconfirm, 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 { areaSelect } from '../../NewDicProvinceList'; const { Column, ColumnGroup } = Table; const TabPane = Tabs.TabPane; import CustomerDetail from './myClientDesc.jsx'; import { achievementCategoryList, techAuditStatusList,cityArr,tag,customerStatus,intentionalService,newFollow ,contact,sex} from '../../dataDic.js'; import { beforeUploadFile, companySearch, getAchievementCategory,getsex,getSearchUrl,getTag,getTechAuditStatus,getcustomerTyp,getcityArr,getCompanyIntentionOn,getcustomerStatue,getCompanyIntention,getfllowSituation,getcontact,getfllowSituationOn,getcustomerStatueOn} from '../../tools.js'; import BatchImport from './batchImport'; //图片组件 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 = ( <div> <Icon type="plus" /> <div className="ant-upload-text">点击上传</div> </div> ); return ( <div className="clearfix"> <Upload action={globalConfig.context + "/api/admin/customer/attachmentUpload"} data={{ 'sign': this.props.pictureSign }} listType="picture-card" fileList={fileList} onPreview={this.handlePreview} onChange={this.handleChange} > {fileList.length >= 5 ? null : uploadButton} </Upload> <Modal maskClosable={false} visible={previewVisible} footer={null} onCancel={this.handleCancel}> <img alt="example" style={{ width: '100%' }} src={previewImage} /> </Modal> </div> ); } }); const AchievementList = Form.create()(React.createClass({ loadData(pageNo, apiUrl) { this.state.data = []; this.setState({ loading: true }); $.ajax({ method: "post", dataType: "json", crossDomain: false, url:globalConfig.context + '/api/admin/customer/listPrivateCustomer', data: { pageNo: pageNo || 1, pageSize: this.state.pagination.pageSize, companyName: this.state.companyNamet, //名称1 customerType: this.state.customerTypet, //客户类型1 locationProvince:this.state.locationProvincet,//地区 customerStatus:this.state.customerStatust,//客户状态1 contactName:this.state.contactNamet,//联系人姓名1 contactTel:this.state.contactTelt,//联系人手机 companyIntention:this.state.companyIntentiont,//意向服务 followSituation:this.state.followSituationt,//最新跟进进度 }, success: function (data) { let theArr = []; let ad; if (data.error.length || data.data.list=="") { if (data.error && data.error.length) { message.warning(data.error[0].message); }; } else { ad=data.data.list[0].aid; for (let i = 0; i < data.data.list.length; i++) { let thisdata = data.data.list[i]; let intentionText=thisdata._companyIntention.split("-"); let intentionstring=intentionText.slice("0","1").join('-') theArr.push({ key: i, id: thisdata.id, companyName:thisdata.companyName,//公司名称 _shareType:thisdata._shareType,//客户类型 locationProvince:thisdata.locationProvince,//地区 contactName:thisdata.contactName, //联系人姓名 telNum:thisdata.telNum,//手机号 _customerStatus:thisdata._customerStatus,//客户状态 _companyIntention:intentionstring,//意向服务 _followSituation:thisdata._followSituation,//最新跟进 customerStatus:thisdata.customerStatus,//客户状态 companyIntention:thisdata.companyIntention,//意向服务 followSituation:thisdata.followSituation,//最新跟进 adminName:thisdata.adminName, //跟进人 followDate:thisdata.followDate, _customerType:thisdata._customerType,//客户类型 }); }; this.state.pagination.current = data.data.pageNo; this.state.pagination.total = data.data.totalCount; }; this.setState({ aid:ad, dataSource: theArr, pagination: this.state.pagination }); }.bind(this), }).always(function () { this.setState({ loading: false }); }.bind(this)); }, //点击+号进行两次查询,这个是查询联系人的函数 getNewWoman(index) { this.state.data = [] $.ajax({ method: "post", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/customer/findCustomerUserList", data:{ cid:index }, 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 email=[]; var telNum=[]; var watch=[]; var qq=[]; var contactIds=[]; thedata.map(function (item,index) { watch.push(thedata[index].wechat); qq.push(thedata[index].qq); email.push(thedata[index].email); contactIds.push(thedata[index].id); telNum.push(thedata[index].telNum); theArr.push(<Select.Option value={index}>{item.name}</Select.Option>) }); var lastName= thedata[thedata.length-1].name; var nub=thedata[thedata.length-1].telNum; var kid=thedata[thedata.length-1].id; var contacts='电话'; this.setState({ idt:thedata[0].id, kid:kid, contactIds:contactIds, contacts:contacts, nub:nub, telNum:telNum, email:email, watch:watch, qq:qq, lastName:lastName, orderStatusOption: theArr, technicalPictureUrl: thedata.sign ? splitUrl(thedata.sign, ',', globalConfig.avatarHost + '/upload') : [], }); }.bind(this), }).always(function () { this.setState({ loading: false }); }.bind(this)); }, //在添加联系记录页面,选择联系方式查看号码 contacts(e){ let conts=''; if(e==0){ conts='电话' this.state.nub=this.state.changNub } if(e==1){ conts='邮件' this.state.nub=this.state.changEmail } if(e==2){ conts='微信' this.state.nub=this.state.changWatch } if(e==3){ conts='QQ' this.state.nub=this.state.changQq } this.setState({ conts:conts, contacts: e, }); }, //通过ID查询这一条的信息 Detailload(deletedIds,record){ this.RowClick; $.ajax({ method: "post", dataType: "json", crossDomain: false, url: globalConfig.context + '/api/admin/customer/findCustomerDetails', data: { id: deletedIds }, success: function (data) { let thisData = data.data; if (!thisData) { if (data.error && data.error.length) { message.warning(data.error[0].message); }; thisData = {}; }; //意向服务多选 // let companyArr=[]; // let companyString=thisData.companyIntention; // companyArr=companyString.split(",") ; // let creatMent=thisData.createTime.substr(10,9); // let createYear=thisData.createTime.substr(0,10); let followSituationTxt=getfllowSituation(thisData.followSituation.toString()); let yearMonth = new Date().toLocaleDateString(); let yearString = yearMonth.split('/').join('-'); let days = new Date(); let hours = parseInt(days.getHours())<10 ? "0"+days.getHours():days.getHours(); let minutes =parseInt(days.getMinutes())<10 ? "0"+days.getMinutes():days.getMinutes(); let seconds =parseInt(days.getSeconds())<10 ? "0"+days.getSeconds():days.getSeconds(); let pjstringY=hours+':'+minutes+':'+seconds ; this.setState({ locationProvince:thisData.locationProvince, addId:thisData.id, creatMent:pjstringY, createYear:yearString, addCid:thisData.cid, datak: thisData, companyIndustry:thisData.companyIndustry, adress:thisData.adress, followSituation:followSituationTxt, customerStatus:thisData.customerStatus.toString(), companyIntention:thisData.companyIntention, _followSituation:thisData._followSituation, _customerStatus:thisData._customerStatus, _companyIntention:thisData._companyIntention, cid:thisData.cid, customerType:thisData.customerType, companyName:thisData.companyName, adminName:thisData.adminName }); if (thisData.ownerId) { this.getContactsList(thisData.ownerId); }; }.bind(this), }).always(function () { this.setState({ loading: false }); }.bind(this)); }, //点击出现函数 //点击消失函数 setModal1Visiblecancel(e) { this.setState({ modal1Visible:false }); this.reset(); }, //点击添加跟进记录,点击最新跟进下的+号,将会查询出很多数据,展示在列表里面, setModal1VisibleOk(e) { this.setState({modal1Visible:true}); this.state.remarkst=''; 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({ remarks:'', selectedRowKeys: [], }); this.Detailload(deletedIds); this.getNewWoman(deletedIds); }, //点击出现函数 setModal2VisibleOk(e) { this.setState({ modal2Visible:true }); this.state.hotst=undefined; this.state.hott=undefined; this.state.paymentIdt=''; this.state.entIdt=''; this.state.payt=''; this.state.paymt=''; this.state.paytIdtt=''; this.state.paentIdt=''; this.state.payIdt=''; this.state.emailst=''; }, //点击消失函数 setModal2Visiblecancel(e) { this.setState({ modal2Visible:false }); }, //点击消失函数 setModal3Visiblecancel(e) { this.setState({ modal3Visible:false }); }, rescordlist(deletedIds){ this.setState({ selectedRowKeys:[], }); this.state.data = []; $.ajax({ method: "get", dataType: "json", crossDomain: false, url:globalConfig.context + '/api/admin/customer/listFollowUpRecord', data: { customerId:deletedIds }, success: function (data) { let theArr = []; let theWomanID=[]; let theFollowID=[]; if (!data.data) { if (data.error && data.error.length) { message.warning(data.error[0].message); }; } else { data.data.map(function (item,index) { theWomanID.push(data.data[index].contactId); }); data.data.map(function (item,index) { theFollowID.push(data.data[index].followId); }); for (let i = 0; i < data.data.length; i++) { let thisdata = data.data[i]; theArr.push({ key:i, _followDate:thisdata._followDate,//跟进时间 adminName:thisdata.adminName,//跟进人 contactName:thisdata.contactName, //联系人姓名 contactId:thisdata.contactId, //联系人ID contactInfo:thisdata.contactInfo,//联系信息 _customerStatus:thisdata._customerStatus,//客户状态 _followSituation:thisdata._followSituation,//最新跟进 followResult:thisdata.followResult,//跟进结果 attachment:thisdata.attachment,//附件地址 }); }; }; this.setState({//导出数据 datahistory: theArr, theWomanID:theWomanID, theFollowID:theFollowID, }); }.bind(this), }).always(function () { this.setState({ loading: false }); }.bind(this)); }, //点击查看跟进记录,点击最新跟进的第一个按钮(跟进状态)执行的函数,将会出现很多跟进列表 setModal3VisibleOk(e) { this.setState({ modal3Visible:true }); this.state.data = []; this.setState({ loading: true }); let deletedIds=this.state.rowId; for (let idx = 0; idx < this.state.selectedRows.length; idx++) { let rowItem = this.state.selectedRows[idx]; if (rowItem.id) { deletedIds=rowItem.id; }; }; this.rescordlist(deletedIds) }, //删除历史记录 onDelete(index){ let deletedIds=this.state.rowId; for (let idx = 0; idx < this.state.selectedRows.length; idx++) { let rowItem = this.state.selectedRows[idx]; if (rowItem.id) { deletedIds=rowItem.id; }; }; let deleteID=this.state.theFollowID[index]; $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/customer/deleteFollowUpRecord", data: { followId:deleteID,//删除的ID } }).done(function (data) { if (!data.error.length) { message.success('删除成功!'); this.rescordlist(deletedIds) this.setState({ loading: false, }); } else { message.warning(data.error[0].message); }; this.loadData(); }.bind(this)); }, //点击消失函数 setModal4Visiblecancel(e) { this.setState({ modal4Visible:false }); }, //点击客户的名字,进行详情的查询 setModal4Visible(e,index) { this.setState({ modal4Visible:true }); let changeIds=this.state.datahistory[index].contactId; $.ajax({ method: "get", dataType: "json", crossDomain: false, url:globalConfig.context + '/api/admin/customer/findContactDetail', data: { contactId:changeIds }, success: function (data) { let theArr = []; let theDate=data.data; if (!data.data) { 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({ key:i, name:name,//联系人姓名 sex:sex,//联系人性别 mobile:mobile,//座机号 telNum:telNum,//手机号 email:email,//邮箱 qq:qq,//qq wechat:wechat,//微信号 depatrment:depatrment,//部门 customerPosition:customerPosition,//职位 }); }; }; this.setState({//导出数据 theDate:theDate, name:theDate.name,//联系人姓名 sex:theDate.sex,//联系人性别 mobile:theDate.mobile,//座机号 telNum:theDate.telNum,//手机号 email:theDate.email,//邮箱 qq:theDate.qq,//qq wechat:theDate.wechat,//微信号 depatrment:theDate.depatrment,//部门 customerPosition:theDate.customerPosition,//职位 companyName:theDate.companyName,//公司 }); }.bind(this), }).always(function () { this.setState({ loading: false }); }.bind(this)); }, //点击消失函数 setModal5Visiblecancel(e) { this.setState({ modal5Visible:false }); }, setModal6Visiblecancel(e) { this.setState({ modal6Visible:false }); }, setModal8Visiblecancel(e) { this.setState({ modal8Visible:false }); }, //点击名称时获取列表 setModal5VisibleOk(e) { this.setState({ modal5Visible:true }); //需要一个请求数据 this.Detailload(e.id); }, //历史记录查看更多,还是历史记录接口 setModal6VisibleOk(e) { this.setState({ followResults:this.state.datahistory[e].followResult, modal6Visible:true }); //需要一个请求数据 }, getPictureUrl(e) { this.setState({pictureUrl: e }); }, //查看所有的联系人setModal7VisibleOk contactList(index) { $.ajax({ method: "post", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/customer/findCustomerUserList", data:{ cid:index }, success: function (data) { let theArr = []; let thedata=data.data; if (!thedata) { if (data.error && data.error.length) { message.warning(data.error[0].message); }; thedata={} }; let cidArr=[]; for (let i = 0; i < data.data.length; i++) { cidArr.push({ i:thedata[i].cid, }) } for (let i = 0; i < data.data.length; i++) { let thisdata = data.data[i]; theArr.push({ cid:thisdata.cid,//客户的ID id:thisdata.id,//联系人ID contactName:thisdata.name,//联系人姓名 sex:thisdata.sex,//联系人性别 mobile:thisdata.mobile,//座机号 telNum:thisdata.telNum,//手机号 email:thisdata.email,//邮箱 qq:thisdata.qq,//qq wechat:thisdata.wechat,//微信号 depatrment:thisdata.depatrment,//部门 customerPosition:thisdata.customerPosition,//职位 }); }; this.setState({ information: theArr, cidArr:cidArr, }); }.bind(this), }).always(function () { this.setState({ loading: false }); }.bind(this)); }, //修改联系人列表数据 setModal8VisibleOk(e) { this.setState({ modal8Visible:true }); //需要一个请求数据 let deletedIds=this.state.rowId; for (let idx = 0; idx < this.state.selectedRows.length; idx++) { let rowItem = this.state.selectedRows[idx]; if (rowItem.id) { deletedIds=rowItem.id; }; }; }, changefollow(e){ e.preventDefault(); $.ajax({ method: "post", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/customer/updateContacter", data: { id:this.state.id,//联系人ID cid:this.state.cid,//客户的ID name:this.state.name,//客户名 sex:this.state.sex,//性别 mobile:this.state.mobile,//座机号 telNum:this.state.telNum,//手机号 email:this.state.email,//邮箱 qq:this.state.qq,//qq wechat:this.state.wechat,//微信号 depatrment:this.state.depatrment,//部门 customerPosition:this.state.customerPosition,//职位 primaryFlg:this.state.primaryFlg,//是否是主要联系人 } }).done(function (data) { if (!data.error.length) { message.success('修改成功!'); this.setState({ loading: false, }); this.setModal8Visiblecancel() } else { message.warning(data.error[0].message); }; this.Detailload(this.state.rowId); this.contactList(this.state.rowId); this.loadData(); }.bind(this)); }, informationRowClick(index){ this.setModal8VisibleOk() $.ajax({ method: "get", dataType: "json", crossDomain: false, url:globalConfig.context + '/api/admin/customer/findContactDetail', data: { contactId:index.id }, success: function (data) { let theArr = []; let theDate=data.data; if (!data.data) { 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({ key:i, primaryFlg:primaryFlg, name:name,//联系人姓名 sex:sex,//联系人性别 mobile:mobile,//座机号 telNum:telNum,//手机号 email:email,//邮箱 qq:qq,//qq wechat:wechat,//微信号 depatrment:depatrment,//部门 customerPosition:customerPosition,//职位 }); }; }; this.setState({//导出数据 primaryFlg:theDate.primaryFlg, thaDate:theDate, cid:theDate.cid,//客户ID id:theDate.id,//联系人ID name:theDate.name,//联系人姓名 sex:theDate.sex,//联系人性别 mobile:theDate.mobile,//座机号 telNum:theDate.telNum,//手机号 email:theDate.email,//邮箱 qq:theDate.qq,//qq wechat:theDate.wechat,//微信号 depatrment:theDate.depatrment,//部门 customerPosition:theDate.customerPosition,//职位 companyName:theDate.companyName,//公司 }); }.bind(this), }).always(function () { this.setState({ loading: false }); }.bind(this)); }, componentWillReceiveProps(nextProps) { if (!this.props.visible && nextProps.visible) { if (nextProps.data && nextProps.data.id) { this.loadData(nextProps.data.id, nextProps.detailApiUrl); }; this.state.technicalPictureUrl = []; }; }, //添加一条跟进记录,点击保存按钮进行添加 addFollowSubmit(e) { e.preventDefault(); this.state.data = [] this.setState({ selectedRowKeys: [], }); let deletedIds=this.state.addId; this.props.form.validateFields((err, values) => { if (!err) { this.setState({ loading: true }); let custype=values._shareType; let customerTypechange=""; switch(custype){ case "个人客户":customerTypechange=0;break; case "机构单位":customerTypechange=1;break; case "团体单位":customerTypechange=2;break; } let customerStatus= getcustomerStatueOn(this.state.customerStatus); let followSituation= getfllowSituationOn(this.state.followSituation); //图片转换 let thetechnicalPictureUrl = []; if (this.state.technicalPictureUrl.length) { let picArr = []; this.state.technicalPictureUrl.map(function (item) { picArr.push(item.response.data); }); thetechnicalPictureUrl = picArr.join(","); }; let yearMonth = new Date(this.state.createYear).toLocaleDateString(); let yearString = yearMonth.split('/').join('-'); let pjstringY=''; let days = new Date(this.state.creatMent); let hours = parseInt(days.getHours())<10 ? "0"+days.getHours():days.getHours(); let minutes =parseInt(days.getMinutes())<10 ? "0"+days.getMinutes():days.getMinutes(); let seconds =parseInt(days.getSeconds())<10 ? "0"+days.getSeconds():days.getSeconds(); if(this.state.creatMent.length==8){ pjstringY=this.state.creatMent }else{ pjstringY=hours+':'+minutes+':'+seconds } $.ajax({ method: "POST", dataType: "json", crossDomain: false, url:globalConfig.context + '/api/admin/customer/addFollowUpRecord', data: { id: this.state.addCid,//编号id cuid:this.state.idt,//联系人ID followDates:yearString+' '+pjstringY, followResult:this.state.remarkst,//跟进结果 attachment:thetechnicalPictureUrl,//附件地址 customerStatus:this.state.customerStatus,//跟进客户状态 followSituation:this.state.followSituation.length==1?this.state.followSituation:followSituation,//跟进进度 contactInfo:(this.state.conts?this.state.conts:"电话")+"-"+(this.state.nub?this.state.nub:""), } }).done(function (data) { this.setState({ loading: false }); if (!data.error.length) { message.success('保存成功!'); this.setModal1Visiblecancel() } else { message.warning(data.error[0].message); } this.rescordlist(this.state.rowId); }.bind(this)); } }) }, //当选择联系人的列表变化时,则执行 hundleName(e){ let changNub=this.state.telNum[e]; let changEmail=this.state.email[e]; let changWatch=this.state.watch[e]; let changQq=this.state.qq[e]; let kid=this.state.contactIds[e]; this.setState({ kid:kid, contacts:'电话', nub:this.state.telNum[e], lastName: e, changNub:changNub, changEmail:changEmail, changWatch:changWatch, changQq:changQq }); }, //所有资料修改保存提交,点击保存按钮进行更新 handleSubmit(e) { e.preventDefault(); this.state.data=[] let deletedIds; let adminName; let customerStatus; let companyIntention; let followSituation; for (let idx = 0; idx < this.state.selectedRows.length; idx++) { let rowItem = this.state.selectedRows[idx]; if (rowItem.id) { deletedIds=rowItem.id; adminName=rowItem.adminName; customerStatus=rowItem.customerStatus; companyIntention=rowItem.companyIntention; followSituation=rowItem.followSituation; }; }; this.props.form.validateFields((err, values) => { if (!err) { this.setState({ loading: true }); let custype=values._customerType; let customerTypechange=""; switch(custype){ case "个人客户":customerTypechange=0;break; case "公司客户":customerTypechange=1;break; case "团体单位":customerTypechange=2;break; } let companyIntentions= getCompanyIntentionOn(values.companyIntention); let followSituations= getfllowSituationOn(values.followSituation); let becompanyIntentions=getCompanyIntentionOn(); let city=getcityArr(values.locationProvince); //let companyMore = []; const theDatak = this.state.datak || {}; //意向服务多选 // if (this.state.companyIntention.length) { // let companyList = []; // this.state.companyIntention.map(function (item) { // companyList.push(item); // }); // companyMore = companyList.join(","); // }; $.ajax({ method: "POST", dataType: "json", crossDomain: false, url:globalConfig.context + '/api/admin/customer/updateCustomer', data: { id: this.state.cid,//编号id customerType:this.state.customerType,//客户信息 1 companyName: this.state.companyName,//公司名称 1 companyIndustry: this.state.companyIndustry,//公司行业 tag: theDatak.tag, locationProvince:this.state.locationProvince ,//省份1 adress: this.state.adress,//详细地址1 remarks: values.remarks,//备注1 companyIntention:this.state.companyIntention,//公司意向 followSituation:theDatak.followSituation,//最新跟进1 customerStatus:this.state.customerStatus,//客户状态1 } }).done(function (data) { this.setState({ loading: false }); if (!data.error.length) { message.success('修改成功!'); this.setModal5Visiblecancel(); } else { message.warning(data.error[0].message); } this.Detailload(this.state.rowId); this.loadData() }.bind(this)); } }) }, submitcontactman(e){ let deletedIds; this.state.data=[]; for (let idx = 0; idx < this.state.selectedRows.length; idx++) { let rowItem = this.state.selectedRows[idx]; if (rowItem.id) { deletedIds=rowItem.id } }; if(!deletedIds){ deletedIds=this.state.cid } this.setState({ selectedRowKeys: [], }); e.preventDefault(); this.props.form.validateFields((err, values) => { if (!err) { this.setState({ loading: true }); $.ajax({ method: "POST", dataType: "json", crossDomain: false, url: globalConfig.context + '/api/admin/customer/addContacter', data: { cid: deletedIds,//编号id sex:this.state.hott,//性别 primaryFlg:this.state.hotst,//是否是主要联系人 name:this.state.paymentIdt,//联系人姓名 mobile:this.state.paymt,//座机 telNum:this.state.payt,//电话 qq:this.state.entIdt,//qq wechat:this.state.payIdt,//微信 customerPosition:this.state.paentIdt,//职位 depatrment:this.state.paytIdtt,//部门 email:this.state.emailst,//邮箱 } }).done(function (data) { this.setState({ loading: false }); if (!data.error.length) { message.success('保存成功!'); this.setModal2Visiblecancel() } else { message.warning(data.error[0].message); } this.Detailload(this.state.rowId); this.getNewWoman(this.state.rowId); this.contactList(this.state.rowId); //this.loadData(); }.bind(this)); } }); }, getTechnicalPictureUrl(e) { this.setState({ technicalPictureUrl: e }); }, //新建联系人modal框显示 showModal(){ this.setState({ visible: true, }); }, //指定转交人的点击函数 showModa(){ this.setState({ visible: true, }); this.setState({ selectedRowKeys:[], }); let changeIds; let adminName; let customerStatus; let companyIntention; let followSituation; for (let idx = 0; idx < this.state.selectedRows.length; idx++) { let rowItem = this.state.selectedRows[idx]; if (rowItem.id) { changeIds=rowItem.id; adminName=rowItem.adminName; customerStatus=rowItem.customerStatus; companyIntention=rowItem.companyIntention; followSituation=rowItem.followSituation; }; }; $.ajax({ method: "post", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/customer/findAdmin", data: { id: changeIds,//这一行数据的ID beforeCompanyIntention:companyIntention,//意向服务 beforeCustomerStatus:customerStatus,//客户状态 beforeFollowSituation:followSituation,//最新跟进状态 beforeAdminName:adminName,//跟进人 } }).done(function (data) { if (data.error && data.error.length) { message.warning(data.error[0].message); } else { let theAssigne = []; if (!data.data) { 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]; //处理数据 进行循环 theAssigne.push({ name: thisdata.name, id: thisdata.id, ids: thisdata.cid, mobile:thisdata.mobile, adminName: thisdata.beforeAdminName, customerStatus: thisdata.beforeCustomerStatus, companyIntention: thisdata.beforeCompanyIntention, followSituation: thisdata.beforeFollowSituation, }); }; }; this.setState({ dataman: theAssigne, paginations:false }); } }.bind(this)); }, //选择了指定人之后的保存点击函数,需要修改函数 changeAssigner() { this.setState({ visible: false, }); this.setState({ selectedRowKeys:[], }); let changeId; let changeIds; let adminName; let beforeAdminName; let customerStatus; let companyIntention; let followSituation; for (let idx = 0; idx < this.state.selectedRows.length; idx++) { let rowItem = this.state.selectedRows[idx]; if (rowItem.id) { changeId=rowItem.id; beforeAdminName=rowItem.adminName; adminName=rowItem.key; customerStatus=rowItem.customerStatus; companyIntention=rowItem.companyIntention; followSituation=rowItem.followSituation; changeIds=rowItem.ids; }; }; $.ajax({ method: "post", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/customer/transferCustomer", data: { id: changeIds,//这一行数据的ID aid:changeId,//指定转交人的ID // beforeCompanyIntention:companyIntention,//意向服务 // beforeCustomerStatus:customerStatus,//客户状态 // beforeFollowSituation:followSituation,//最新跟进状态 beforeAdminName:beforeAdminName,//之前的跟进人 adminName:adminName,//转交的跟进人 } }).done(function (data) { if (!data.error.length) { message.success('转交成功!'); this.setState({ loading: false, }); } else { message.warning(data.error[0].message); }; this.loadData(); }.bind(this)); }, handleOk(e){ this.setState({ visible: false, }); }, handleCancel(e){ this.setState({ visible: false, }); }, getInitialState() { return { technicalPictureUrl: [], modal1Visible: false, modal2Visible: false, visible: false , searchMore: true, searchType: 0, validityPeriodDate: [], releaseDate: [], selectedRowKeys: [], 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 + '条数据'; } }, contactInformation:[ { title: '姓名', dataIndex: 'contactName', key: 'contactName' },{ title: '性别', dataIndex: 'sex', key: 'sex', render: text => { return getsex(text); } }, { title: '手机号码', dataIndex: 'telNum', key: 'telNum' },{ title: '座机号', dataIndex: 'mobile', key: 'mobile' },{ title: 'QQ号码', dataIndex: 'qq', key: 'qq' },{ title: '邮箱号', dataIndex: 'email', key: 'email' },{ title: '微信', dataIndex: 'wechat', key: 'wechat' }, ], addFollow:[ { title: '时间', dataIndex: '_followDate', key: '_followDate' },{ title: '客户', dataIndex: 'contactName', key: 'contactName', }, { title: '跟进人', dataIndex: 'adminName', key: 'adminName' },{ title: '联系方式', dataIndex: 'contactInfo', key: 'contactInfo' },{ title: '客户状态', dataIndex: '_customerStatus', key: '_customerStatus' },{ title: '跟进结果', dataIndex: '_followSituation', key: '_followSituation' },{ title: '备注', dataIndex: 'remarks', key: 'remarks' }, ], achievement:[ { title: '编号', dataIndex: 'contactName', key: 'contactName' },{ title: '成果名称', dataIndex: 'sex', key: 'sex', render: text => { return getsex(text); } }, { title: '关键字', dataIndex: 'telNum', key: 'telNum' },{ title: '类型', dataIndex: 'mobile', key: 'mobile' },{ title: '所有人名称', dataIndex: 'qq', key: 'qq' },{ title: '审核状态', dataIndex: 'email11', key: 'email11' },{ title: '是否精品', dataIndex: 'wechat323', key: 'wechat323' },{ title: '首页展示', dataIndex: 'email33', key: 'email33' },{ title: '发布时间', dataIndex: 'wechat211', key: 'wechat211' }, ], demand:[ { title: '编号', dataIndex: 'contactName', key: 'contactName' },{ title: '需求名称', dataIndex: 'sex', key: 'sex', render: text => { return getsex(text); } }, { title: '是否精品', dataIndex: 'telNum', key: 'telNum' },{ title: '首页展示', dataIndex: 'mobile', key: 'mobile' },{ title: '关键字', dataIndex: 'qq', key: 'qq' },{ title: '需求类型', dataIndex: 'email44', key: 'email44' },{ title: '信息来源', dataIndex: 'wechat', key: 'wechat' },{ title: '雇主名称', dataIndex: 'email12', key: 'email12' },{ title: '审核状态', dataIndex: 'wechat33', key: 'wechat33' },{ title: '需求状态', dataIndex: 'email23', key: 'email23' },{ title: '有效期限', dataIndex: 'wechat212', key: 'wechat212' },{ title: '发布时间', dataIndex: 'wechat44', key: 'wechat44' }, ], operationLog:[ { title: '操作员姓名', dataIndex: 'operatorName', key: 'operatorName' },{ title: '操作类型', dataIndex: 'operatorType', key: 'operatorType', }, { title: '操作时间', dataIndex: 'operatorTime', key: 'operatorTime' },{ title: '修改前客户状态', dataIndex: 'beforeCustomerStatus', key: 'beforeCustomerStatus' },{ title: '修改后客户状态', dataIndex: 'afterCustomerStatus', key: 'afterCustomerStatus' },{ title: '修改前客户意向', dataIndex: 'beforeCustomerIntention', key: 'beforeCustomerIntention' },{ title: '修改后客户意向', dataIndex: 'afterCustomerIntention', key: 'afterCustomerIntention' },{ title: '修改前跟进进度', dataIndex: 'beforeFollowSituation', key: 'beforeFollowSituation' },{ title: '修改后跟进进度', dataIndex: 'afterFollowSituation', key: 'afterFollowSituation' },{ title: '修改前跟进人', dataIndex: 'beforeAdminName', key: 'beforeAdminName' },{ title: '修改后跟进人', dataIndex: 'afterAdminName', key: 'afterAdminName' }, ], columnsman:[{ title: '姓名', dataIndex: 'name', key: 'name' },{ title: '手机号码', dataIndex: 'mobile', key: 'mobile' } ], columns: [ { title: '公司名称', dataIndex: 'companyName', key: 'companyName', }, { title: '客户类型', dataIndex: '_customerType', key: '_customerType' // render: text => { return getcustomerTyp(text); } }, { title: '地区', dataIndex: 'locationProvince', key: 'locationProvince', render: text => { return getcityArr(text); } }, { title: '联系人姓名', dataIndex: 'contactName', key: 'contactName', }, { title: '手机号', dataIndex: 'telNum', key:'telNum', }, { title: '客户状态', dataIndex: '_customerStatus', key: '_customerStatus' //render: text => { return getcustomerStatue(text) } }, { title: '意向服务', dataIndex: '_companyIntention', key: '_companyIntention', }, { title: '最新跟进', dataIndex: '_followSituation', key: '_followSituation', }, { title: '跟单人', dataIndex: 'adminName', key: 'adminName', }, { title: '时间', dataIndex: 'followDate', key: 'followDate', } ], dataSource: [], searchTime: [,] }; }, componentWillMount() { let theArr = []; customerStatus.map(function (item) { theArr.push( <Select.Option value={item.value} key={item.key}>{item.key}</Select.Option> ) }); let auditArr = []; cityArr.map(function (item) { auditArr.push( <Select.Option value={item.value} key={item.key}>{item.key}</Select.Option> ) }); let intentionalArr = []; intentionalService.map(function (item) { intentionalArr.push( <Select.Option value={item.value} key={item.key}>{item.key}</Select.Option> ) }); let newArr = []; newFollow.map(function (item) { newArr.push( <Select.Option value={item.value} key={item.key}>{item.key}</Select.Option> ) }); this.state.customerStatuarr = theArr; this.state.auditStatusOption = auditArr; this.state.intentionalOption = intentionalArr; this.state.newOption = newArr; this.loadData(); }, tableRowClick(record, index) { //this.state.RowData = record; this.setModal5VisibleOk(record); this.contactList(record.id); this.rescordlist(record.id); this.findCustomerHistory(record.id); this.historyList(record.id); this.setState({ rowId:record.id , before_customerStatus:record._customerStatus, before_companyIntention:record._companyIntention, before_followSituation:record._followSituation }) }, //删除功能,已经完成 delectRow() { let deletedIds; let adminName; let customerStatus; let companyIntention; let followSituation; for (let idx = 0; idx < this.state.selectedRows.length; idx++) { let rowItem = this.state.selectedRows[idx]; if (rowItem.id) { deletedIds=rowItem.id; adminName=rowItem.adminName; customerStatus=rowItem.customerStatus; companyIntention=rowItem.companyIntention; followSituation=rowItem.followSituation; }; }; this.state.data = [] this.setState({ selectedRowKeys: [], }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/customer/deleteCustomer", data: { id: deletedIds,//删除的ID // beforeCustomerStatus:customerStatus, // beforeCompanyIntention:companyIntention, // beforeFollowSituation:followSituation, // beforeAdminName:adminName } }).done(function (data) { if (!data.error.length) { message.success('删除成功!'); this.setState({ loading: false, }); } else { message.warning(data.error[0].message); }; this.loadData(); }.bind(this)); }, //删除功能 delectRowFollow() { 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.state.data = [] this.setState({ selectedRowKeys: [], }); $.ajax({ method: "post", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/customer/deleteContacter", data: { contactId: deletedIds,//删除的ID } }).done(function (data) { if (!data.error.length) { message.success('删除成功!'); this.setState({ loading: false, }); } else { message.warning(data.error[0].message); }; this.loadData(); }.bind(this)); }, //列表历史记录查询不带单选的 findCustomerHistory(cid){ $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/customer/findCustomerHistory", data: { customerId: cid,//这一行数据的ID } }).done(function (data) { if (data.error && data.error.length) { message.warning(data.error[0].message); } else { let theAssigne = []; if (!data.data) { if (data.error && data.error.length) { message.warning(data.error[0].message); }; } this.setState({ dataRowhistory: data.data, }); } }.bind(this)); }, //历史记录列表查询 historyList(cid){ this.state.data = []; this.setState({ loading: true }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url:globalConfig.context + '/api/admin/customer/listCustomerLog', data: { customerId:cid }, success: function (data) { let theArr = []; if (!data.data) { 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]; // let intentionText=thisdata.beforeCustomerIntention.split(","); // let intentionstring=intentionText.slice("0","2").join('-') //console.log(intentionstring) // let afterIntentionText=thisdata.afterCustomerIntention.split(","); // let afterIntentionstring=afterIntentionText.slice("0","2").join('-') theArr.push({ key:i, operatorName:thisdata.operatorName,//操作员姓名 operatorType:thisdata.operatorType,//操作类型 operatorTime:thisdata.operatorTime, //操作时间 beforeCustomerStatus:thisdata.beforeCustomerStatus, //修改前客户状态 afterCustomerStatus:thisdata.afterCustomerStatus,//修改后客户状态 beforeCustomerIntention:thisdata.beforeCustomerIntention,//修改前客户意向 afterCustomerIntention:thisdata.afterCustomerIntention,//修改后客户意向 beforeFollowSituation:thisdata.beforeFollowSituation,//修改前跟进进度 afterFollowSituation:thisdata.afterFollowSituation,//修改后跟进进度 beforeAdminName:thisdata.beforeAdminName,//修改前跟进人 afterAdminName:thisdata.afterAdminName,//修改后跟进人 }); }; }; this.setState({//导出数据 Logrecord: theArr, }); }.bind(this), }).always(function () { this.setState({ loading: false }); }.bind(this)); }, //详情tab切换数据处理 callback(e){ if(e==1){ this.Detailload(this.state.rowId) this.getNewWoman(this.state.rowId); } if(e==2){ this.rescordlist(this.state.rowId) } if(e==3){ this.Detailload(this.state.rowId) } if(e==4){ this.findCustomerHistory(this.state.rowId) this.historyList(this.state.rowId) } }, changeRow() { let deletedIds; let customerStatus; let companyIntention; let followSituation; let adminName; for (let idx = 0; idx < this.state.selectedRows.length; idx++) { let rowItem = this.state.selectedRows[idx]; if (rowItem.id) { deletedIds=rowItem.id; customerStatus=rowItem.customerStatus; companyIntention=rowItem.companyIntention; followSituation=rowItem.followSituation; adminName=rowItem.adminName; }; }; this.setState({ selectedRowKeys: [], }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/customer/transferToPublic", data: { //aid:this.state.aid, id: deletedIds, // beforeCompanyIntention:companyIntention,//意向服务 // beforeCustomerStatus:customerStatus,//客户状态 // beforeFollowSituation:followSituation,//最新跟进状态 beforeAdminName:adminName, } }).done(function (data) { if (!data.error.length) { message.success('已转为公共客户!'); this.setState({ loading: false, }); } else { message.warning(data.error[0].message); }; this.loadData(); }.bind(this)); }, addClick() { this.state.RowData={}; this.setState({ showDesc: true, }); }, closeDesc(e, s) { this.state.showDesc = e; if (s) { this.loadData(); }; }, search() { this.loadData(); }, reset() { this.state.companyNamet=''; this.state.customerTypet = undefined; this.state.id = undefined; this.state.shareTypet = undefined; this.state.companyIntentiont = undefined; this.state.followSituationt = undefined; this.state.locationProvincet = undefined; this.state.customerStatust = undefined; this.state.contactNamet = undefined; this.state.contactTelt = undefined; this.state.contactNamet = undefined; this.state.releaseDatet = []; this.loadData(); }, searchSwitch() { this.setState({ searchMore: !this.state.searchMore }); }, //快速新增联系人 addContant(){ this.setModal2VisibleOk() this.state.hotst=undefined; this.state.hott=undefined; this.state.paymentIdt=''; this.state.entIdt=''; this.state.payt=''; this.state.paymt=''; this.state.paytIdtt=''; this.state.paentIdt=''; this.state.payIdt=''; this.state.emailst=''; }, //添加跟进记录没单选的情况下 addcord(){ var addcord=this.state.rowId this.setState({modal1Visible:true}); this.state.remarkst=''; this.Detailload(addcord); this.getNewWoman(addcord) }, render() { const FormItem = Form.Item const rowSelection = { selectedRowKeys: this.state.selectedRowKeys, onChange: (selectedRowKeys, selectedRows) => { this.setState({ selectedRows: selectedRows.slice(-1), selectedRowKeys: selectedRowKeys.slice(-1) }); } }; const hasSelected = this.state.selectedRowKeys.length > 0; const { RangePicker } = DatePicker; const theData = this.props.data || {}; const { getFieldDecorator } = this.props.form; const formItemLayout = { labelCol: { span: 8 }, wrapperCol: { span: 14 }, }; const theDatak = this.state.datak || {}; const theDatat = this.state.data || {}; const theDatahistory=this.state.dataRowhistory || {}; const contactsOption=""; const formItemLayput = { labelCol: { span: 10 }, wrapperCol: { span: 14 }, }; return ( <div className="user-content" > <div className="content-title"> <span>我的客户管理</span> <div className="patent-addNew clearfix" style={{marginRight:"22px"}}> <Button onClick={() => { window.open(globalConfig.context + '/api/admin/achievement/downloadTemplate?sign=achievement_template') }}>下载批量导入模板</Button> <Upload action={globalConfig.context + "/api/admin/achievement/uploadTemplate"} data={{ 'sign': 'achievement_template' }} beforeUpload={beforeUploadFile} showUploadList={false} onChange={(info) => { 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} 文件上传成功!`); } else { message.warning(info.file.response.error[0].message); return; }; } else if (info.file.status === 'error') { message.error(`${info.file.name} 文件上传失败。`); }; }} > <Button>上传批量内容</Button> </Upload> <Button type="primary" className="addButton" onClick={this.addClick}>新建客户<Icon type="plus" /></Button> </div> </div> <div className="user-search"> <Input placeholder="公司名称" value={this.state.companyNamet} onChange={(e) => { this.setState({ companyNamet: e.target.value }); }} /> <Select placeholder="客户类型" style={{ width: 120 }} value={this.state.customerTypet } onChange={(e) => { this.setState({ customerTypet : e }) }}> <Select.Option value="0" >个人客户</Select.Option> <Select.Option value="1" >机构单位</Select.Option> <Select.Option value="2" >团体单位</Select.Option> </Select> <Select placeholder="意向服务" style={{ width: 160 }} value={this.state.companyIntentiont} onChange={(e) => { this.setState({ companyIntentiont: e }) }}> {this.state.intentionalOption} </Select> <Select placeholder="跟进进度" style={{ width: 160 }} value={this.state.followSituationt} onChange={(e) => { this.setState({ followSituationt: e }) }}> {this.state.newOption} </Select> <Select placeholder="地区" style={{ width: 160 }} value={this.state.locationProvincet} onChange={(e) => { this.setState({ locationProvincet: e }) }}> {this.state.auditStatusOption} </Select> <Select placeholder="客户状态" style={{ width: 120 }} value={this.state.customerStatust} onChange={(e) => { this.setState({customerStatust: e }) }}> {this.state.customerStatuarr} </Select> <Button type="primary" onClick={this.search}>搜索</Button> <Button onClick={this.reset}>重置</Button> <Button onClick={this.setModal3VisibleOk} style={{marginRight:'10px'}} disabled={!hasSelected}>查看跟进记录</Button> <Button type="primary" onClick={this.setModal1VisibleOk} disabled={!hasSelected}>添加跟进记录</Button> <Button type="primary" onClick={this.showModa} disabled={!hasSelected}>指定转交人</Button> <Modal footer='' title="选择指定人" visible={this.state.visible} onOk={this.handleOk} onCancel={this.handleCancel} > <Spin spinning={this.state.loading}> <Table scroll={{y:'350px'}} pagination={this.state.paginations} columns={this.state.columnsman} rowSelection={rowSelection} dataSource={this.state.dataman} /> <FormItem wrapperCol={{ span: 12, offset: 12 }} style={{marginTop:'15px'}}> <Button className="set-submit" type="primary" htmlType="submit" id="change_keep" style={{marginLeft:"50px"}} onClick={this.changeAssigner }>保存</Button> <Button className="set-submit" type="ghost" onClick={this.handleCancel } style={{marginLeft:"30px"}} id='change_rem'>取消</Button> </FormItem> </Spin> </Modal> <Button style={{ background: "#3fcf9e", border: "none", color: "#fff" }} disabled={!hasSelected} onClick={this.changeRow}>转为公共客户<Icon /></Button> <div className='clearfix' style={{marginTop:'10px'}}> <Button style={{ background: "#ea0862", border: "none", color: "#fff",marginRight:'15px' }} disabled={!hasSelected} onClick={this.delectRow}>删除<Icon type="minus" /></Button> <span >更多搜索<Switch defaultChecked={false} onChange={this.searchSwitch} /></span> <div className="search-more" style={this.state.searchMore ? { display: 'none' } : {}}> <Input placeholder="联系人姓名" style={{width:'140px',marginRight:'10px'}} value={this.state.contactNamet} onChange={(e) => { this.setState({ contactNamet: e.target.value }); }} /> <Input placeholder="手机号码" style={{width:'140px',marginRight:'10px'}} value={this.state.contactTelt } onChange={(e) => { this.setState({ contactTelt: e.target.value }); }} /> </div> </div> </div> <div className="patent-table"> <Spin spinning={this.state.loading}> <Table columns={this.state.columns} dataSource={this.state.dataSource} rowSelection={rowSelection} pagination={this.state.pagination} onRowClick={this.tableRowClick} /> </Spin> </div> <Modal style={{left:'500px'}} footer='' title="客户详细信息" width='400px' visible={this.state.modal4Visible} onOk={this.setModal4Visiblecancel} onCancel={this.setModal4Visiblecancel} > <Form horizontal onSubmit={this.submitcontact} id="demand-form"> <Spin spinning={this.state.loading}> <div className='clearfix'> <FormItem className="half-item" {...formItemLayput} label="所属公司" > <span>{this.state.companyName}</span> </FormItem> <FormItem className="half-item" {...formItemLayput} label="性别" > <span>{getsex(this.state.sex)}</span> </FormItem> <FormItem className="half-item" {...formItemLayput} label="姓名" > <span>{this.state.name}</span> </FormItem> <FormItem className="half-item" {...formItemLayput} label="QQ号" > <span>{this.state.qq}</span> </FormItem> <FormItem className="half-item" {...formItemLayput} label="手机号" > <span>{this.state.telNum}</span> </FormItem> <FormItem className="half-item" {...formItemLayput} label="部门" > <span>{this.state.depatrment}</span> </FormItem> <FormItem className="half-item" {...formItemLayput} label="职位" > <span>{this.state.customerPosition}</span> </FormItem> <FormItem className="half-item" {...formItemLayput} label="微信号" > <span>{this.state.wechat}</span> </FormItem> </div> </Spin> </Form> </Modal> <Modal footer='' title="历史记录列表" width='800px' visible={this.state.modal3Visible} onOk={this.setModal3Visiblecancel} onCancel={this.setModal3Visiblecancel} > <Spin spinning={this.state.loading}> <Table dataSource={this.state.datahistory} > <Column title="时间" dataIndex="_followDate" key="_followDate" /> <Column title="客户" dataIndex="contactName" key="contactName" render={(text, record,index) => ( <a href="#" onClick={() => this.setModal4Visible(true,index)}>{text}</a> )} /> <Column title="客户状态" dataIndex="_customerStatus" key="_customerStatus" /> <Column title="跟进人" dataIndex="adminName" key="adminName" /> <Column title="联系方式" dataIndex="contactInfo" key="contactInfo" /> <Column title="最新跟进状态" dataIndex="_followSituation" key="_followSituation" /> <Column title="跟进结果" dataIndex="followResult" key="followResult" render={(text, record,index) => ( <div> <a href="#" onClick={()=>this.setModal6VisibleOk(index)}>查看跟进结果</a> </div> )} /> <Column title="删除记录" key="del" render={(text, record, index) => ( <Popconfirm title="是否删除?" onConfirm={() => this.onDelete(index)}> <a href="#" style={{color:"#f00"}}>删除</a> </Popconfirm> )} /> </Table> </Spin> </Modal> <Modal className="followrecord" style={{zIndex:'120'}} footer='' title="新增跟进记录" width='1000px' visible={this.state.modal1Visible} onOk={this.setModal1Visiblecancel} onCancel={this.setModal1Visiblecancel} > <Form horizontal onSubmit={this.handleSubmit} id="demand-form"> <Spin spinning={this.state.loading}> <div className="user-search"> <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label="客户公司名称:" > <span>{theDatak.companyName}</span> </FormItem> </div> <FormItem className="half-item" {...formItemLayout} label="最新联系人:" > <Select placeholder="选择联系人" style={{ width: 140 }} value={this.state.lastName} onChange={this.hundleName}> {this.state.orderStatusOption} </Select> <span style={{width:'120px',display:'inline-block',marginLeft:'20px'}}>{getcustomerTyp(theDatat.customerTyp)} <Button type="primary" onClick={this.setModal2VisibleOk}>添加</Button> </span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="联系方式" > <Select placeholder="选择方式" style={{width:'100px'}} value={this.state.contacts} onChange={this.contacts}> <Select.Option value="0">电话</Select.Option> <Select.Option value="1">邮件</Select.Option> <Select.Option value="2">微信</Select.Option> <Select.Option value="3">QQ</Select.Option> </Select> <span style={{marginLeft:'20px'}}>{this.state.nub}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="最近跟进时间:" > <span>{theDatak.createTime}</span> </FormItem> <div> <FormItem className="half-item" {...formItemLayout} label="最新跟进时间" > <DatePicker placeholder="更新日期" value={moment(this.state.createYear,'YYYY-MM-DD')} onChange={(time) => {this.setState({createYear: time});}}/> <TimePicker placeholder="更新时间" value={moment(this.state.creatMent, 'HH:mm:ss')} onChange={(time) => { this.setState({creatMent: time}); }}/> </FormItem> </div> <FormItem className="half-item" {...formItemLayout} label="客户状态:" > <span>{this.state._customerStatus}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="最新客户状态" > <Select placeholder="选择客户状态" style={{width:'200px'}} value={this.state.customerStatus} onChange={(e) => { this.setState({customerStatus: e}); }}> { customerStatus.map(function (item) { return <Select.Option key={item.value} >{item.key}</Select.Option> }) } </Select> </FormItem> <FormItem className="half-item" {...formItemLayout} label="跟进状态:" > <span>{this.state._followSituation}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="最新跟进状态" > <Select placeholder="选择跟进状态" style={{width:'200px'}} value={this.state.followSituation} onChange={(e) => { this.setState({followSituation: e}); }}> { newFollow.map(function (item) { return <Select.Option key={item.value} >{item.key}</Select.Option> }) } </Select> </FormItem> <div className="clearfix"> <FormItem labelCol={{ span: 4 }} wrapperCol={{ span: 18 }} label="跟进结果" > <Input type="textarea" rows={4} value={this.state.remarkst} onChange={(e)=>{this.setState({remarkst:e.target.value}); }}/> </FormItem> </div> <div className="clearfix"> <FormItem labelCol={{ span: 4 }} wrapperCol={{ span: 18 }} label="技术图片" > <PicturesWall pictureSign="customer_sys_file" fileList={this.getTechnicalPictureUrl} pictureUrl={this.state.technicalPictureUrl} /> <p>图片建议:图片要清晰。</p> </FormItem> </div> <Button style={{ marginRight: '20px' ,marginLeft:'160px',marginBottom:'50px'}} type="primary" onClick={this.addFollowSubmit}>保存</Button> <Button className="set-submit" type="ghost" onClick={this.setModal1Visiblecancel} id='change_rem'>取消</Button> </div> </Spin> </Form > </Modal> <Modal className="customeDetails" style={{zIndex:'100'}} footer='' title="客户详情" width='1200px' visible={this.state.modal5Visible} onOk={this.setModal5Visiblecancel} onCancel={this.setModal5Visiblecancel} > <Tabs defaultActiveKey="1" onChange={this.callback}> <TabPane tab="基本资料" key="1"> <Form horizontal onSubmit={this.handleSubmit} id="demand-form"> <Spin spinning={this.state.loading}> <div className="clearfix"> <p style={{marginLeft:'50px',marginBottom:'20px',marginTop:'10px',fontSize:'18px'}}>公司资料</p> </div> <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label="公司名称" > <Input type="text" value={this.state.companyName} onChange={(e) => { this.setState({companyName: e.target.value }); }}/> </FormItem> <FormItem className="half-item" {...formItemLayout} label="地区" > <Select placeholder="选择地区" style={{ width: 160 }} value={this.state.locationProvince} onChange={(e) => { this.setState({locationProvince: e }); }}> { cityArr.map(function (item) { return <Select.Option key={item.value} >{item.key}</Select.Option> }) } </Select> </FormItem> </div> <FormItem className="half-item" {...formItemLayout} label="公司行业" > <Input type="text" value={this.state.companyIndustry} onChange={(e) => { this.setState({companyIndustry: e.target.value }); }}/> </FormItem> <FormItem className="half-item" {...formItemLayout} label="详细地址" > <Input type="text" value={this.state.adress} onChange={(e) => { this.setState({adress: e.target.value }); }}/> </FormItem> <FormItem className="half-item" {...formItemLayout} label="客户状态" > <Select placeholder="选择客户状态" style={{ width: 120 }} value={getcustomerStatue(this.state.customerStatus)} onChange={(e) => { this.setState({customerStatus: e }) }}> {this.state.customerStatuarr} </Select> </FormItem> <FormItem className="half-item" style={{marginLeft:'96px'}} labelCol={{ span: 4 }} wrapperCol={{ span: 18 }} label="意向服务" > <span>{getCompanyIntention(this.state.companyIntention)}</span> {/* <Select placeholder="选择意向服务" style={{width:'200px'}} value={this.state.companyIntention} onChange={(e) => { this.setState({companyIntention: e}); }}> { intentionalService.map(function (item) { return <Select.Option key={item.value} >{item.key}</Select.Option> }) } </Select> */} </FormItem> <FormItem className="half-item" {...formItemLayout} label="客户来源" > <span>{this.state.laiyuan}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="标签" > <span>{getTag(theDatak.tag)}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="最新跟进" > <span>{this.state._followSituation}</span> </FormItem> <div className="clearfix"> <FormItem labelCol={{ span: 4 }} wrapperCol={{ span: 18 }} label="备注" > <span>{theDatak.remarks}</span> </FormItem> </div> <FormItem wrapperCol={{ span: 12, offset: 4 }} style={{marginTop:'25px'}}> <Button className="set-submit" type="primary" htmlType="submit" style={{marginRight:"40px"}}>保存</Button> <Button className="set-submit" type="ghost" onClick={this.setModal5Visiblecancel}>取消</Button> </FormItem> <div className="clearfix"> <p style={{marginLeft:'50px',marginBottom:'20px',marginTop:'10px',fontSize:'18px'}}>联系人<Button type="primary" onClick={this.addContant} style={{marginLeft:'20px'}}>快速新增联系人</Button></p> </div> <div className="clearfix" style={{marginBottom:'100px'}}> <Table style={{width:'1100px',marginLeft:'50px',background:'none'}} className="tabcolor" columns={this.state.contactInformation} dataSource={this.state.information} onRowClick={this.informationRowClick} /> </div> </Spin> </Form> </TabPane> <TabPane tab="跟进记录" key="2"> <Button type="primary" onClick={this.addcord} style={{marginLeft:"75px"}}>添加跟进记录</Button> <div className="clearfix" style={{marginBottom:'100px'}}> <Table style={{width:'1100px',marginLeft:'50px',background:'none'}} className="tabcolor" columns={this.state.addFollow} dataSource={this.state.datahistory} /> </div> </TabPane> <TabPane tab="业务操作" key="3"> <div style={{marginLeft:"50px",fontSize:'18px'}}>科技成果</div> <div className="clearfix"> <Table style={{width:'1100px',marginLeft:'50px',background:'none'}} className="tabcolor" columns={this.state.achievement} dataSource={this.state.achievementrecord} /> </div> <div style={{marginLeft:"50px",marginTop:'20px',fontSize:'18px'}}>科技需求</div> <div className="clearfix" style={{marginBottom:'100px'}}> <Table style={{width:'1100px',marginLeft:'50px',background:'none'}} className="tabcolor" columns={this.state.demand} dataSource={this.state.demandrecord} /> </div> </TabPane> <TabPane tab="历史记录" key="4"> <Form horizontal id="demand-form"> <Spin spinning={this.state.loading}> <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label="注册账号" > <span>{theDatahistory.customerName}</span> </FormItem> </div> <FormItem className="half-item" {...formItemLayout} label="录入时间" > <span>{theDatahistory.createTime}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="跟单人" > <span>{theDatahistory.adminName}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="跟进次数" > <span>{theDatahistory.followCount}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="当前客户状态持续时间" > <span>{theDatahistory.diffDate}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="最后跟进联系人" > <span>{theDatahistory.contactName}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="最后跟进时间" > <span>{theDatahistory.followDate}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="最后客户状态" > <span>{getcustomerStatue(theDatahistory.customerStatus)}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="最后跟进状态" > <span>{getfllowSituation(theDatahistory.followSituation)}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="操作日志" > <span>查看列表<Switch defaultChecked={false} onChange={this.searchSwitch} style={{marginLeft:'10px'}}/></span> </FormItem> <FormItem className="half-item" style={{marginBottom:'50px'}} {...formItemLayout} label="最后修改时间" > <span>{theDatahistory.operatorTime}</span> </FormItem> <div className="search-more clearfix" style={this.state.searchMore ? { display: 'none' } : {}}> <Table style={{background:'none',textAlign:'center'}} className="tabcolor" columns={this.state.operationLog} dataSource={this.state.Logrecord} bordered /> </div> </Spin> </Form> </TabPane> </Tabs> </Modal> <Modal className="newContacts" style={{zIndex:'300'}} footer='' width='800px' title="新增联系人" visible={this.state.modal2Visible} onOk={this.setModal2Visiblecancel} onCancel={this.setModal2Visiblecancel} > <Form horizontal onSubmit={this.submitcontactman} id="demand-form"> <Spin spinning={this.state.loading}> <Row> <FormItem labelCol={{ span: 4 }} wrapperCol={{ span: 14 }} label="是否是主要联系人:" style={{marginRight:'10px'}}> <Radio.Group value={this.state.hotst} onChange={(e) => { this.setState({ hotst: e.target.value }) }}> <Radio value={0}>是</Radio> <Radio value={1}>否</Radio> </Radio.Group> </FormItem> <FormItem labelCol={{ span: 4 }} wrapperCol={{ span: 14 }} label="性别:" style={{marginRight:'10px',marginTop: '-15px'}}> <Radio.Group value={this.state.hott} onChange={(e) => { this.setState({ hott: e.target.value }) }}> <Radio value={0}>男</Radio> <Radio value={1}>女</Radio> </Radio.Group> </FormItem> </Row> <Row style={{ paddingLeft:'50px' }}> <Col span={2}>姓名:</Col> <Col span={8}> <Input value={this.state.paymentIdt} onChange={(e) => { this.setState({ paymentIdt: e.target.value }) }} /> </Col> <Col span={2} style={{ marginLeft: '50px' }}>QQ号:</Col> <Col span={8}> <Input value={this.state.entIdt} onChange={(e) => { this.setState({ entIdt: e.target.value }) }} /> </Col> </Row> <Row style={{ marginTop: '20px',paddingLeft:'50px' }}> <Col span={2}>手机号:</Col> <Col span={8}> <Input value={this.state.payt} onChange={(e) => { this.setState({ payt: e.target.value }) }} /> </Col> <Col span={2} style={{ marginLeft: '50px' }}>座机号:</Col> <Col span={8}> <Input value={this.state.paymt} onChange={(e) => { this.setState({ paymt: e.target.value }) }} /> </Col> </Row> <Row style={{ marginTop: '20px' ,paddingLeft:'50px'}}> <Col span={2}>部门:</Col> <Col span={8}> <Input value={this.state.paytIdtt} onChange={(e) => { this.setState({ paytIdtt: e.target.value }) }} /> </Col> <Col span={2} style={{ marginLeft: '50px' }}>职位:</Col> <Col span={8}> <Input value={this.state.paentIdt} onChange={(e) => { this.setState({ paentIdt: e.target.value }) }} /> </Col> </Row> <Row style={{ marginTop: '20px',paddingLeft:'50px' }}> <Col span={2}>微信号:</Col> <Col span={8}> <Input value={this.state.payIdt} onChange={(e) => { this.setState({ payIdt: e.target.value }) }} /> </Col> <Col span={2} style={{ marginLeft: '50px' }}>邮箱:</Col> <Col span={8}> <Input value={this.state.emailst} onChange={(e) => { this.setState({ emailst: e.target.value }) }} /> </Col> </Row> <Row style={{ marginTop: '20px',paddingLeft:'50px' ,marginBottom:'50px'}}> <Button className="set-submit" type="primary" htmlType="submit" id="change_keep" style={{marginLeft:'60px'}}>保存</Button> <Button className="set-submit" type="ghost" onClick={this.setModal2Visiblecancel} id='change_rem'>取消</Button> </Row> </Spin> </Form> </Modal> <Modal width="600px" footer='' title="联系人详细信息" visible={this.state.modal8Visible} onOk={this.setModal8Visiblecancel} onCancel={this.setModal8Visiblecancel}> <div style={{paddingRight:"50px"}}> <FormItem className="half-item" {...formItemLayout} label="姓名" > {getFieldDecorator('name', { initialValue: this.state.name })( <Input onChange={(e) => { this.setState({ name: e.target.value }) }}/> )} </FormItem> <FormItem className="half-item" {...formItemLayout} label="性别" > {getFieldDecorator('sex', { initialValue: this.state.sex })( <Radio.Group onChange={(e) => { this.setState({ sex: e.target.value }); }}> <Radio value="0">男</Radio> <Radio value="1">女</Radio> </Radio.Group> )} </FormItem> <FormItem labelCol={{ span: 6 }} wrapperCol={{ span: 14 }} label="是否是主要联系人:" style={{marginLeft:"65px"}}> {getFieldDecorator('primaryFlg', { initialValue: this.state.primaryFlg })( <Radio.Group onChange={(e) => {this.setState({primaryFlg: e.target.value });}}> <Radio value={0}>是</Radio> <Radio value={1}>否</Radio> </Radio.Group> )} </FormItem> <FormItem className="half-item" {...formItemLayout} label="手机号码" > {getFieldDecorator('telNum', { initialValue: this.state.telNum })( <Input onChange={(e) => { this.setState({ telNum: e.target.value }) }}/> )} </FormItem> <FormItem className="half-item" {...formItemLayout} label="座机号" > {getFieldDecorator('mobile', { initialValue: this.state.mobile })( <Input onChange={(e) => { this.setState({ mobile: e.target.value }) }}/> )} </FormItem> <FormItem className="half-item" {...formItemLayout} label="QQ号码" > {getFieldDecorator('qq', { initialValue: this.state.qq })( <Input onChange={(e) => { this.setState({ qq: e.target.value }) }}/> )} </FormItem> <FormItem className="half-item" {...formItemLayout} label="邮箱号" > {getFieldDecorator('email', { initialValue: this.state.email })( <Input onChange={(e) => { this.setState({ email: e.target.value }) }}/> )} </FormItem> <FormItem className="half-item" {...formItemLayout} label="微信" > {getFieldDecorator('wechat', { initialValue: this.state.wechat })( <Input onChange={(e) => { this.setState({ wechat: e.target.value }) }}/> )} </FormItem> <FormItem className="half-item" {...formItemLayout} label="部门" > {getFieldDecorator('depatrment', { initialValue: this.state.depatrment })( <Input onChange={(e) => { this.setState({ depatrment: e.target.value }) }}/> )} </FormItem> <FormItem className="half-item" {...formItemLayout} label="职位" > {getFieldDecorator('customerPosition', { initialValue: this.state.customerPosition })( <Input onChange={(e) => { this.setState({ customerPosition: e.target.value }); }}/> )} </FormItem> </div> <FormItem wrapperCol={{ span: 12, offset: 4 }}> <Button className="set-submit" type="primary" htmlType="submit" onClick={this.changefollow} style={{marginRight:"50px"}}>保存</Button> <Button className="set-submit" type="ghost" onClick={this.setModal8Visiblecancel}>取消</Button> </FormItem> </Modal> <Modal footer='' title="更多详情" visible={this.state.modal6Visible} onOk={this.setModal6Visiblecancel} onCancel={this.setModal6Visiblecancel}> <Spin spinning={this.state.loading}> <div className="clearfix"> <FormItem labelCol={{ span: 5 }} wrapperCol={{ span: 18 }} label="跟进结果" > <span>{this.state.followResults}</span> </FormItem> </div> <FormItem labelCol={{ span: 5 }} wrapperCol={{ span: 18 }} label="附件" > <div className="clearfix"> <Upload className="demandDetailShow-upload" listType="picture-card" fileList={this.state.attachment} onPreview={(file) => { this.setState({ previewImage: file.url || file.thumbUrl, previewVisible: true, }); }} > </Upload> <Modal maskClosable={false} footer={null} visible={this.state.previewVisible} onCancel={() => { this.setState({ previewVisible: false }) }}> <img alt="" style={{ width: '100%' }} src={this.state.previewImage || ''} /> </Modal> </div> </FormItem> </Spin> </Modal> <CustomerDetail data={this.state.RowData} showDesc={this.state.showDesc} closeDesc={this.closeDesc} /> </div > ); } })); export default AchievementList;