import React from "react";
import ajax from "jquery/src/ajax/xhr.js";
import $ from "jquery/src/ajax";
import {
Modal,
Form,
layout,
Radio,
Button,
Input,
Spin,
Table,
Select,
Popconfirm,
message,
} from "antd";
import { intentionalService, newFollow, customerStatus } from "@/dataDic.js";
import { getCompanyIntention } from "@/tools.js";
const FormItem = Form.Item;
import AddContact from "../signCustomer/followDetail/addContact";
import BusName from "./followDetail/businessName.jsx";
const FollowDetail = React.createClass({
getInitialState() {
return {
visitModul: false,
loading: false,
data: [],
businessName: "",
projectName: "",
busModul: false,
intentionList: [
{
title: "业务名称",
dataIndex: "businessGlossoryId",
width: 120,
key: "businessGlossoryId",
render: (text, record, index) => {
return (
{!record.id ? (
) : (
{record.businessVarietiesName}
)}
);
},
},
{
title: "项目名称",
dataIndex: "businessName",
key: "businessName",
width: 120,
render: (text, record, index) => {
return (
{!record.id ? (
) : (
{record.businessProjectName}
)}
);
},
},
{
title: "最新进度",
width: 120,
dataIndex: "followSituation",
key: "followSituation",
render: (text, record, index) => {
if (text == 5 && !record.isEdit) {
return newFollow.map(function (item) {
if (item.value == text) {
return item.key;
}
});
} else {
return (
);
}
},
},
{
title: "最新状态",
width: 120,
dataIndex: "customerStatus",
key: "customerStatus",
render: (text, record, index) => {
if (record.followSituation == 5 && !record.isEdit) {
return customerStatus.map(function (item) {
if (item.value == text) {
return item.key;
}
});
} else {
return (
);
}
},
},
{
title: "跟进说明",
width: 120,
dataIndex: "remarks",
key: "remarks",
render: (text, record, index) => {
if (record.followSituation == 5 && !record.isEdit) {
return text;
} else {
return (
{
record.remarks = e.target.value;
this.setState({ data: this.state.data });
}}
/>
);
}
},
},
{
title: "操作",
width: 120,
dataIndex: "rrr",
key: "rrr",
render: (text, record, index) => {
return (
{!record.id && (
{
this.intentionDelet(record, index);
}}
okText="删除"
cancelText="不删除"
>
)}
);
},
},
],
};
},
//选择子项目
businessFn(record, index) {
if (!record.businessGlossoryId) {
message.warn("请先选择业务名称!");
return;
}
this.setState({
businessId: record.businessGlossoryId,
busModul: true,
index: index,
addcontactModul: false,
});
},
closeBus(datas, e, s) {
this.state.addcontactModul = e;
this.state.busModul = false;
if (s) {
this.state.data[this.state.index].businessName = datas.id;
this.state.data[this.state.index].projectName = datas.name;
this.setState({
busModul: false,
data: this.state.data,
});
}
},
//拜访意向服务列表单个删除
intentionDelet(e, index) {
let deteluserBusinessList = this.state.data.splice(index, 1);
this.setState({
selectedRowKeys: [],
});
},
//拜访modul函数
visitOk(e) {
this.setState({
addcontactModul: false,
visitModul: false,
});
},
visitCancel(e) {
this.setState({
addcontactModul: false,
visitModul: false,
});
this.props.closeDesc(false, false);
},
//获取联系人下拉框
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];
theData.name != "***" &&
theArr.push(
{theData.name}
);
}
this.setState({
contactsIdArr: thedata,
telNum: telNum,
orderStatusOption: theArr,
});
}.bind(this),
}).always(
function () {
this.setState({
deletId: ids,
loading: false,
});
}.bind(this)
);
},
//刷新新增拜访记录刷新
deletelist(e) {
this.setState({
loading: true,
});
$.ajax({
method: "get",
dataType: "json",
url: globalConfig.context + this.props.isLimit
? "/api/restrict/Project/getFollowDetails"
: "/api/admin/customer/toAddFollowOnHistory",
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.businessId,
businessName: thisdata.businessProjectId,
businessGlossoryId: i,
businessVarietiesName: thisdata.businessVarietiesName,
businessProjectName: thisdata.businessProjectName,
followSituation: String(thisdata.followSituation),
customerStatus: String(thisdata.customerStatus),
remarks: thisdata.remarks,
});
}
this.setState({
contacts: thedata.contacts,
uid: thedata.uid,
data: listArr,
followTime: thedata.followTime,
remarks: thedata.remarks,
});
}.bind(this),
}).always(
function () {
this.setState({
loading: false,
});
}.bind(this)
);
},
//当选择联系人的列表变化时,则执行
hundleName(e) {
let changNub = this.state.telNum[e];
this.setState({
nub: this.state.telNum[e],
lastName: e,
});
},
//点击添加联系人
newContacts() {
this.setState({
busModul: false,
uids: this.state.uid,
addcontactModul: true,
});
},
//页面刷新
closeFollow(e, s) {
this.state.addcontactModul = false;
this.state.visitModul = true;
if (s) {
this.getNewWoman(this.props.followData.id);
this.deletelist(this.props.followData.id);
}
},
//详情保存
visitSubmit(e) {
e.preventDefault();
let GlossoryId = false;
this.state.data.map(function (item) {
if (!item.followSituation || !item.customerStatus || !item.businessName) {
GlossoryId = true;
}
});
if (this.state.contactType == undefined) {
message.warning("请选择拜访方式");
return false;
}
if (this.state.lastName == undefined) {
message.warning("请选择联系人");
return false;
}
if (this.state.result.length < 10) {
message.warning("备注不少于10个字符!");
return false;
}
if (this.state.data.length && GlossoryId) {
message.warning("项目名称/最新进度/最新状态不能为空!");
return false;
}
let dataList = this.state.data,
idsList = [];
dataList.map((item, index) => {
idsList.push({
businessId: item.id || "",
businessProjectId: item.businessName,
customerStatus: item.customerStatus,
followSituation: item.followSituation,
remarks: item.remarks || "",
});
});
this.setState({
loading: true,
});
let contactsId = "";
let conts = this.state.lastName;
contactsId = this.state.contactsIdArr[conts].id;
//新增
$.ajax({
method: "post",
dataType: "json",
url: globalConfig.context + "/api/admin/customer/addFollow",
data: {
userBusinessList: JSON.stringify(idsList),
uid: this.state.uid,
ocbId: contactsId,
contactType: this.state.contactType,
result: this.state.result,
followTime: this.state.followTime,
type: this.props.isLimit ? 1 : 0,
pid: this.props.isLimit ? this.props.details.pid : undefined,
},
}).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)
);
},
//添加新业务
addNew() {
this.state.data.push({
isEdit: true,
projectName: "选择",
businessName: "",
customerStatus: undefined,
businessGlossoryId: undefined,
followSituation: undefined,
remarks: "",
});
this.setState({
addcontactModul: false,
data: this.state.data,
});
},
componentWillReceiveProps(nextProps) {
if (nextProps.visitModul && nextProps.followData.id) {
this.setState({
result: "",
contactType: undefined,
visitModul: true,
loading: true,
lastName: undefined,
nub: "",
busModul: false,
addcontactModul: false,
});
this.getNewWoman(nextProps.followData.id);
this.deletelist(nextProps.followData.id);
}
},
render() {
const formItemLayout = {
labelCol: { span: 8 },
wrapperCol: { span: 14 },
};
return (