import React from 'react'
import $ from 'jquery/src/ajax';
import {Modal, Form, Button, Spin, Table, message, Tag, Tooltip} from 'antd';
import {getfllowSituation,getcustomerStatue,getClockState,splitUrl,getContactType} from '@/tools.js';
import ImgList from "../../../../../../common/imgList";
const FormItem =Form.Item;
const VisitDetail = React.createClass({
getInitialState(){
return{
visitModul:false,
loading:false,
data:[],
publicReleaseLog:[],
followDtails:{},
enclosure:[],
intentionPublicReleaseLog:[
{
title: '状态',
dataIndex: 'status',
key: 'status',
render: (text) => (
{getClockState(text,true).title}
)
},
{
title: '操作人',
dataIndex: 'aname',
key: 'aname',
},
{
title: '操作时间',
dataIndex: 'createTimes',
key: 'createTimes',
},
{
title: '备注',
width:120,
dataIndex: 'remarks',
key: 'remarks',
render: (text) => {
return (
{text}
)
}
},
{
title: '操作',
width:120,
dataIndex: 'photoUrl',
key: 'photoUrl',
render: (text) => {
let arr = splitUrl(
text,
",",
globalConfig.avatarHost + "/upload"
)
return (
arr.length !== 0 ? : null
)
}
},
],
//业务意向列表
intentionList:[
{
title: '业务名称',
dataIndex: 'businessVarietiesName',
width:120,
key: 'businessVarietiesName'
},
{
title: '项目名称',
dataIndex: 'businessProjectName',
key:'businessProjectName',
width:120
},
{
title: '最新进度',
width:120,
dataIndex: 'followSituation',
key: 'followSituation',
render: (text, record, index) => {
return
{getfllowSituation(text)}
}
}, {
title: '最新状态',
width:120,
dataIndex: 'customerStatus',
key: 'customerStatus',
render: (text, record, index) => {
return
{getcustomerStatue(text)}
}
}, {
title: '跟进说明',
width:120,
dataIndex: 'remarks',
key: 'remarks',
render: (text, record, index) => {
return
{text&&text.length>8?text.substr(0,8)+'…':text}
}
}
],
}
},
//进入修改拜访记录
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({
key:i,
readOnly:this.props.followData.readOnly,
id: thisdata.ufbId,
businessName:thisdata.businessProjectId,
businessVarietiesName:thisdata.businessVarietiesName,
businessProjectName:thisdata.businessProjectName,
followSituation: thisdata.followSituation==null?undefined : String(thisdata.followSituation),
customerStatus: thisdata.customerStatus==null?undefined : String(thisdata.customerStatus),
remarks: thisdata.remarks,
});
};
this.setState({
followIds: thedata.followId,
contacts: thedata.contacts,
uid: thedata.uid,
data: theArr,
result: thedata.result,
contactMobile:thedata.contactMobile,
contactType:getContactType(thedata.contactType),
followTime: thedata.followTime,
followSituation: thedata.followSituation,
customerStatus: thedata.customerStatus,
});
}.bind(this),
}).always(function() {
this.setState({
loading: false
});
}.bind(this));
},
//拜访意向服务列表单个删除
intentionDelet(e, index) {
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);
}
},
//拜访modul函数
visitOk(e) {
this.setState({
addcontactModul:false,
visitModul: false
});
},
visitCancel(e) {
this.setState({
addcontactModul:false,
visitModul: false
});
},
//详情保存
visitSubmit(e){
e.preventDefault();
this.setState({
loading: true
});
let contactsId = '';
if(this.state.keys) {
let conts = this.state.lastName;
contactsId = this.state.contactsIdArr[conts].id;
}
let GlossoryId=false;
this.state.data.map(function(item) {
if(!item.followSituation||!item.customerStatus||!item.businessName) {
GlossoryId = true
}
})
if(this.state.data.length&&GlossoryId) {
message.warning("项目名称/最新进度/最新状态不能为空!")
return false;
};
let dataList=this.state.data,
idsList=[];
dataList.map((item,index) => {
idsList.push({
ufbId:item.id||'',
businessProjectId:item.businessName,
customerStatus:item.customerStatus,
followSituation:item.followSituation,
remarks:item.remarks||''
})
});
//新增
$.ajax({
method: "post",
dataType: "json",
url: globalConfig.context + '/api/admin/customer/updateFollow',
data: {
followId: this.state.followIds,
userBusinessList: JSON.stringify(idsList),
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.props.closeDesc(false,true);
this.visitCancel();
} else {
message.warning(data.error[0].message);
}
}.bind(this));
},
getFollowDtails(e) {
this.setState({
loading: true
});
$.ajax({
method: "get",
dataType: "json",
url: globalConfig.context + '/api/admin/release/followDtails',
data: {
id: e,
},
success: function(data) {
if(data.error.length === 0){
this.setState({
followDtails:data.data || {}
})
}else{
message.warning(data.error[0].message)
}
}.bind(this),
}).always(function() {
this.setState({
loading: false
});
}.bind(this));
},
getListPublicReleaseLog(e) {
this.setState({
loading: true
});
$.ajax({
method: "get",
dataType: "json",
url: globalConfig.context + '/api/admin/release/listPublicReleaseLog',
data: {
ufid: e,
},
success: function(data) {
if(data.error.length === 0){
this.setState({
publicReleaseLog:data.data || []
})
}else{
message.warning(data.error[0].message)
}
}.bind(this),
}).always(function() {
this.setState({
loading: false
});
}.bind(this));
},
componentWillReceiveProps(nextProps) {
if (nextProps.visitModul && nextProps.followData.followId) {
this.setState({
visitModul: true,
loading: true,
})
if(nextProps.followData.contactType === "5"){
this.getListPublicReleaseLog(nextProps.followData.followId);
this.getFollowDtails(nextProps.followData.followId);
}
this.visitModify(nextProps.followData.followId)
};
},
render() {
const formItemLayout = {
labelCol: { span: 8 },
wrapperCol: { span: 14 },
};
const followData= this.props.followData || []
return(