import React from 'react';
import { Select, Spin, Input, Table, Button, DatePicker, Form, Tabs, Switch, message } from 'antd';
import ajax from 'jquery/src/ajax/xhr.js';
import $ from 'jquery/src/ajax';
import './report.less';
import DiurnalStatisticsOne from './diurnalStatisticsOne.jsx';
import { post } from '../../../dataDic.js';
import { ChooseList } from "../../order/orderNew/chooseList";
const TabPane = Tabs.TabPane;
const DiurnalStatistics = React.createClass({
loadData(totalArr) {
let total = totalArr;
this.setState({
loading: true
});
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/report/sales/marketingStatistics",
data: {
type: '1',
depId: this.state.superId,//部门机构
},
success: function (data) {
let thedata = data.data;
let theArr = [];
if (!thedata) {
if (data.error && data.error.length) {
message.warning(data.error[0].message);
};
thedata = {};
} else {
thedata.map(function (item, index) {
let nub = index + 1;
theArr.push({
key: index,
theNumber: false,
nub: nub,
id: item.id,
departmentId: item.departmentId,//部门ID
departmentName: item.departmentName,//部门名称
departmentManagerName: item.departmentManagerName,//部门负责人名称
departmentNumber: item.departmentNumber, //部门人数
privateCustomersCount: item.privateCustomersCount,// 部门客户数
dataCount: item.dataCount,// 新增客户数
dailyTelNo: item.dayTelNo,//日电话量
dailyVisitNo: item.dayVisitNo,//日外拜量
dailyFollowNo: item.dayFollowNo,//日营销总量
dailyAVG: parseFloat(item.dayAVG).toFixed(2),//日人均营销量
weekTelNo: item.weeklyTelNo,//周电话量
weekFollowNo: item.weeklyFollowNo,//周总量
weekVisitNo: item.weeklyVisitNo,//周外拜量
monthsTelNo: item.monthTelNo,//月电话量
monthsFollowNo: item.monthFollowNo,//月总量
monthsVisitNo: item.monthVisitNo,//月外拜量
annualTelNo: item.yearTelNo,//年电话量
annualFollowNo: item.yearFollowNo,//年总量
annualVisitNo: item.yearVisitNo,//年外拜量
})
})
}
if (theArr.length) {
theArr.push(
{
key: 9999999,
theNumber: true,
departmentName: '合计',
departmentNumber: total.departmentNumber, //部门人数
privateCustomersCount: total.privateCustomersCount,// 部门客户数
dataCount: total.dataCount,// 新增客户数
dailyTelNo: total.dayTelNo,//日电话量
dailyVisitNo: total.dayVisitNo,//日外拜量
dailyFollowNo: total.dayFollowNo,//日营销总量
dailyAVG: parseFloat(total.dayAVG).toFixed(2),//日人均营销量
weekTelNo: total.weeklyTelNo,//周电话量
weekFollowNo: total.weeklyFollowNo,//周总量
weekVisitNo: total.weeklyVisitNo,//周外拜量
monthsTelNo: total.monthTelNo,//月电话量
monthsFollowNo: total.monthFollowNo,//月总量
monthsVisitNo: total.monthVisitNo,//月外拜量
annualTelNo: total.yearTelNo,//年电话量
annualFollowNo: total.yearFollowNo,//年总量
annualVisitNo: total.yearVisitNo,//年外拜量
}
)
}
this.setState({
dataSource: theArr,
})
}.bind(this),
}).always(function () {
this.setState({
loading: false
});
}.bind(this));
},
totalData() {
this.setState({
loading: true
});
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/report/sales/countMarketingStatistics",
data: {
type: '1',
depId: this.state.superId,//部门机构
},
success: function (data) {
let thedata = data.data;
let theArr = [];
if (!thedata) {
if (data.error && data.error.length) {
message.warning(data.error[0].message);
};
thedata = {};
}
this.loadData(thedata)
this.selectSuperId();
}.bind(this),
}).always(function () {
this.setState({
loading: false
});
}.bind(this));
},
//时间选择
selTime(value, index) {
this.setState({
Dtime: value,
selTime: index
})
},
//获取上级组织
selectSuperId() {
this.state.data = []
$.ajax({
method: "get",
dataType: "json",
crossDomain: false,
url: globalConfig.context + "/api/admin/organization/selectSuperId",
data: {
},
success: function (data) {
let theArr = [];
let theId = [];//用于保存上级组织的ID和名称
let thedata = data.data;
if (!thedata) {
if (data.error && data.error.length) {
message.warning(data.error[0].message);
};
thedata = {};
};
var contactIds = [];
for (var i = 0; i < data.data.length; i++) {
let theData = data.data[i];
theArr.push(
{theData.name}
);
theId.push(
[theData.id, theData.name]
);
};
this.setState({
SuperArr: thedata,
contactsOption: theArr,
theId: theId,
orderStatusOptions: data.data,
});
}.bind(this),
}).always(function () {
this.setState({
loading: false
});
}.bind(this));
},
//判断浏览器类型
getExplorer() {
var explorer = window.navigator.userAgent;
//ie
if (explorer.indexOf("MSIE") >= 0) {
return 'ie';
}
//firefox
else if (explorer.indexOf("Firefox") >= 0) {
return 'Firefox';
}
//Chrome
else if (explorer.indexOf("Chrome") >= 0) {
return 'Chrome';
}
//Opera
else if (explorer.indexOf("Opera") >= 0) {
return 'Opera';
}
//Safari
else if (explorer.indexOf("Safari") >= 0) {
return 'Safari';
}
},
//导出为exel表格
tabExel() {
var table = document.querySelector('#daochu');
var idTmr;
//debugger;
//整个表格拷贝到EXCEL中
if (this.getExplorer() == 'ie') {
var curTbl = document.getElementById(tableid);
var oXL = new ActiveXObject("Excel.Application");
//创建AX对象excel
var oWB = oXL.Workbooks.Add();
//获取workbook对象
var xlsheet = oWB.Worksheets(1);
//激活当前sheet
var sel = document.body.createTextRange();
sel.moveToElementText(curTbl);
//把表格中的内容移到TextRange中
sel.select();
//全选TextRange中内容
sel.execCommand("Copy");
//复制TextRange中内容
xlsheet.Paste();
//粘贴到活动的EXCEL中
oXL.Visible = true;
//设置excel可见属性
try {
var fname = oXL.Application.GetSaveAsFilename("Excel.xls", "Excel Spreadsheets (*.xls), *.xls");
} catch (e) {
print("Nested catch caught " + e);
} finally {
oWB.SaveAs(fname);
oWB.Close(savechanges = false);
//xls.visible = false;
oXL.Quit();
oXL = null;
//结束excel进程,退出完成
//window.setInterval("Cleanup();",1);
idTmr = window.setInterval("Cleanup();", 1);
}
} else {
this.tableToExcel(table, this.getExplorer());
}
function Cleanup() {
window.clearInterval(idTmr);
CollectGarbage();
}
},
tableToExcel(table, name) {
var uri = 'data:application/vnd.ms-excel;base64,',
template = '
',
base64 = function (s) {
return window.btoa(unescape(encodeURIComponent(s)))
},
format = function (s, c) {
return s.replace(/{(\w+)}/g,
function (m, p) {
return c[p];
})
}
if (!table.nodeType) table = document.getElementById(table);
var ctx = {
worksheet: name || 'Worksheet',
table: table.innerHTML
};
window.location.href = uri + base64(format(template, ctx))
},
getInitialState() {
return {
selectedRowKeys: [],
selectedRows: [],
loading: false,
visible: false,
showDesc: false,
timeState: false,
Dtime: undefined,
selTime: '',
columns: [
{
title: '序号',
dataIndex: 'nub',
width: 50,
key: 'nub',
fixed: false,
render: (text, record) => {
if (!record.theNumber) {
return text
} else {
return {
children: text,
props: {
colSpan: 0
},
}
}
}
},
{
title: '部门',
dataIndex: 'departmentName',
key: 'departmentName',
width: 230,
fixed: false,
render: (text, record) => {
if (!record.theNumber) {
return text//&&text.length>6?{text.substr(0,6)+'…'}:text
} else {
return {
children: text,
props: {
colSpan: 3
},
}
}
}
}, {
title: '总经理',
width: 100,
fixed: false,
dataIndex: 'departmentManagerName',
key: 'departmentManagerName',
render: (text, record) => {
if (!record.theNumber) {
return text
} else {
return {
children: text,
props: {
colSpan: 0
},
}
}
}
},
{
title: '部门人数',
width: 100,
fixed: false,
dataIndex: 'departmentNumber',
key: 'departmentNumber',
render: (text, record) => {
if (!record.theNumber) {
return text
} else {
return {
children: text,
props: {
colSpan: 1
},
}
}
}
},
{
title: '部门客户数',
width: 100,
fixed: false,
dataIndex: 'privateCustomersCount',
key: 'privateCustomersCount',
render: (text, record) => {
if (!record.theNumber) {
return text
} else {
return {
children: text,
props: {
colSpan: 1
},
}
}
}
}, {
title: '新增客户数',
width: 100,
fixed: false,
dataIndex: 'dataCount',
key: 'dataCount',
render: (text, record) => {
if (!record.theNumber) {
return text
} else {
return {
children: text,
props: {
colSpan: 1
},
}
}
}
},
{
title: '今日营销',
children: [
{
title: '营销总量(所有)',
width: 100,
dataIndex: 'dailyFollowNo',
key: 'nudailyFollowNom',
sorter: (a, b) => a.dailyFollowNo - b.dailyFollowNo,
// sortOrder:'ascend'
}, {
title: '电话量',
width: 80,
dataIndex: 'dailyTelNo',
key: 'dailyTelNo',
sorter: (a, b) => a.dailyTelNo - b.dailyTelNo,
}, {
title: '外拜量',
width: 80,
dataIndex: 'dailyVisitNo',
key: 'dailyVisitNo',
sorter: (a, b) => a.dailyVisitNo - b.dailyVisitNo,
}, {
title: '人均营销量',
width: 110,
dataIndex: 'dailyAVG',
key: 'dailyAVG',
sorter: (a, b) => a.dailyAVG - b.dailyAVG,
}
],
},
{
title: '周营销累计',
children: [
{
title: '周营销总量(所有)',
width: 110,
dataIndex: 'weekFollowNo',
key: 'weekFollowNo',
sorter: (a, b) => a.weekFollowNo - b.weekFollowNo,
}, {
title: '电话量',
width: 80,
dataIndex: 'weekTelNo',
key: 'weekTelNo',
sorter: (a, b) => a.weekTelNo - b.weekTelNo,
}, {
title: '外拜量',
width: 80,
dataIndex: 'weekVisitNo',
key: 'weekVisitNo',
sorter: (a, b) => a.weekVisitNo - b.weekVisitNo,
}
],
}, {
title: '月营销累计',
children: [
{
title: '月营销总量(所有)',
width: 110,
dataIndex: 'monthsFollowNo',
key: 'monthsFollowNo',
sorter: (a, b) => a.monthsFollowNo - b.monthsFollowNo,
}, {
title: '电话量',
width: 80,
dataIndex: 'monthsTelNo',
key: 'monthsTelNo',
sorter: (a, b) => a.monthsTelNo - b.monthsTelNo,
}, {
title: '外拜量',
width: 80,
dataIndex: 'monthsVisitNo',
key: 'monthsVisitNo',
sorter: (a, b) => a.monthsVisitNo - b.monthsVisitNo,
}
],
}, {
title: '年营销累计',
children: [
{
title: '年营销总量(所有)',
width: 110,
dataIndex: 'annualFollowNo',
key: 'annualFollowNo',
sorter: (a, b) => a.annualFollowNo - b.annualFollowNo,
}, {
title: '电话量',
width: 80,
dataIndex: 'annualTelNo',
key: 'annualTelNo',
sorter: (a, b) => a.annualTelNo - b.annualTelNo,
}, {
title: '外拜量',
width: 80,
dataIndex: 'annualVisitNo',
key: 'annualVisitNo',
sorter: (a, b) => a.annualVisitNo - b.annualVisitNo,
}
],
}
],
dataSource: [],
};
},
search() {
this.totalData()
},
reset() {
this.state.superId = undefined;//部门机构清零
this.totalData()
this.setState({
order: "false"
})
},
//重构排序
tabChange(pagination, filter, sorter) {
// console.log(pagination)
// console.log(sorter)
},
changeList(arr) {
const newArr = [];
this.state.columns.forEach(item => {
arr.forEach(val => {
if (val === item.title) {
newArr.push(item);
}
});
});
this.setState({
changeList: newArr
});
},
componentWillMount() {
//this.loadData();
this.totalData();
let times = new Date();
let nowTime = times.getFullYear() + '年' + (times.getMonth() + 1) + '月' + times.getDate() + '日';
this.setState({
Nowtime: nowTime
})
},
render() {
let departmentArr = this.state.departmentArr || [];
return (
客户营销统计表(部门)
部门机构 :
{this.state.timeState ? this.state.txtTime : this.state.Nowtime}
客户营销统计表(部门)
)
}
});
const Tablees = Form.create()(React.createClass({
//详情tab切换数据处理
callbacks(e) {
this.setState({
callnubs: e,
})
if (e == '1') {
}
if (e == '2') {
}
},
getInitialState() {
return {
callnubs: "1",
}
},
render() {
return (
);
}
}));
export default Tablees;