liting2017 7 years ago
parent
commit
b6310e0208

+ 19 - 0
js/component/manageCenter/customer/content.jsx

@@ -230,6 +230,25 @@ class Content extends Component {
                 });
       	    });
       	    break;
+      	    /*
+      	     *报表开发 
+      	     */
+      	    case 'personalReport':
+                require.ensure([], () => {
+                    const Jurisdiction = require('./report/personalReport').default;
+                    this.setState({
+                        component: <Jurisdiction />                      
+                    });
+                });
+                break;  
+            case 'departmentReport':
+                require.ensure([], () => {
+                    const DepartmentReport = require('./report/departmentReport').default;
+                    this.setState({
+                        component: <DepartmentReport />                      
+                    });
+                });
+                break;
       	    default:
             require.ensure([], () => {
                 const Module = require('../module').default;

+ 624 - 0
js/component/manageCenter/customer/report/departmentReport.jsx

@@ -0,0 +1,624 @@
+import React from 'react';
+import { Select, Spin, Input, Table, Button } from 'antd';
+import ajax from 'jquery/src/ajax/xhr.js';
+import $ from 'jquery/src/ajax';
+import './report.less';
+import { post } from '../../../dataDic.js';
+
+const PersonalReport = React.createClass({
+	loadData(totalArr) {
+		let total=totalArr.data[0] ;
+		this.setState({
+			loading: true
+		});
+		$.ajax({
+			method: "post",
+			dataType: "json",
+			crossDomain: false,
+			url: globalConfig.context + "/api/admin/organization/selectSuperId",
+			data: {
+				
+			},
+			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,
+							name: item.name,
+							id: item.id,
+//							departmentName:item.departmentName,//部门
+//							position:item.position, //职务
+//							enrollTime:item.enrollTime,// 入职时间
+//							dailyOrderCount:values.daily.orderCount,//日签单业绩
+//							dailyOrderAmount:values.daily.orderAmount,//日签单业绩
+//							weeklyOrderCount:values.weekly.orderCount,//周签单业绩
+//							weeklyOrderAmount:values.weekly.orderAmount,//周签单业绩
+//							monthlyOrderCount:values.monthly.orderCount,//月签单业绩
+//							monthlyOrderAmount:values.monthly.orderAmount,//月签单业绩
+//							quarterlyOrderCount:values.quarterly.orderCount,//季签单业绩
+//							quarterlyOrderAmount:values.quarterly.orderAmount,//季签单业绩
+//							annuallyOrderCount:values. annually.orderCount,//年签单业绩
+//							annuallyOrderAmount:values. annually.orderAmount,//年签单业绩
+							departmentName:item.name,//部门
+							position:item.name, //职务
+							enrollTime:item.name,// 入职时间
+							dailyOrderCount:nub,//日签单业绩
+							dailyOrderAmount:nub,//日签单业绩
+							weeklyOrderCount:nub,//周签单业绩
+							weeklyOrderAmount:nub,//周签单业绩
+							monthlyOrderCount:nub,//月签单业绩
+							monthlyOrderAmount:nub,//月签单业绩
+							quarterlyOrderCount:nub,//季签单业绩
+							quarterlyOrderAmount:nub,//季签单业绩
+							annuallyOrderCount:nub,//年签单业绩
+							annuallyOrderAmount:nub,//年签单业绩
+						})
+					})
+				}
+				theArr.push(
+						{
+							key:9999999,
+							theNumber:true,
+							name:'合计',
+							dailyOrderCount:total.dailyTotalCount,//日签单业绩
+							dailyOrderAmount:total.dailyTotalAmount,//日签单业绩
+							weeklyOrderCount:total.weeklyTotalCount,//周签单业绩
+							weeklyOrderAmount:total.weeklyTotalAmount,//周签单业绩
+							monthlyOrderCount:total.monthlyTotalCount,//月签单业绩
+							monthlyOrderAmount:total.monthlyTotalAmount,//月签单业绩
+							quarterlyOrderCount:total.quarterlyTotalCount,//季签单业绩
+							quarterlyOrderAmount:total.quarterlyTotalAmount,//季签单业绩
+							annuallyOrderCount:total.annuallyTotalCount,//年签单业绩
+							annuallyOrderAmount:total.annuallyTotalAmount,//年签单业绩
+						}
+					)
+				this.setState({
+					dataSource: theArr,
+				})
+			}.bind(this),
+		}).always(function() {
+			this.setState({
+				loading: false
+			});
+		}.bind(this));
+	},
+	totalData() {
+		this.setState({
+			loading: true
+		});
+		$.ajax({
+			method: "post",
+			dataType: "json",
+			crossDomain: false,
+			url: globalConfig.context + "/api/admin/organization/selectSuperId",
+			data: {
+
+			},
+			success: function(data) {
+				//let thedata = data.data;
+				let thedata = {data:[
+					{dailyTotalCount:1227,dailyTotalAmount:1233,weeklyTotalCount:1025,weeklyTotalAmount:127,monthlyTotalCount:122,
+					monthlyTotalAmount:922,quarterlyTotalCount:772,quarterlyTotalAmount:122,annuallyTotalCount:522,annuallyTotalAmount:2222,}
+				]}
+				let theArr = [];
+				if(!thedata) {
+					if(data.error && data.error.length) {
+						message.warning(data.error[0].message);
+					};
+					thedata = {};
+				} 
+				this.loadData(thedata)
+			}.bind(this),
+		}).always(function() {
+			this.setState({
+				loading: false
+			});
+		}.bind(this));
+	},
+	departmentList() {
+		this.setState({
+			loading: true
+		});
+		$.ajax({
+			method: "post",
+			dataType: "json",
+			crossDomain: false,
+			url: globalConfig.context + "/api/admin/organization/selectSuperId",
+			data: {
+
+			},
+			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) {
+						theArr.push({
+							key: index,
+							name: item.name,
+							id: item.id,
+							depNo: item.depNo
+						})
+					})
+				}
+				this.setState({
+					departmentArr: theArr,
+				})
+			}.bind(this),
+		}).always(function() {
+			this.setState({
+				loading: false
+			});
+		}.bind(this));
+	},
+	getInitialState() {
+		return {
+			selectedRowKeys: [],
+			selectedRows: [],
+			loading: false,
+			visible: false,
+			showDesc: false,
+			columns: [
+			{
+				title: '序号',
+				dataIndex: 'nub',
+				width:50,
+				key: 'nub',
+				fixed:true,
+				render:(text,record)=>{
+				     if(!record.theNumber){
+				     	return text
+				     }else{
+				     	return {
+				     		children: text,
+      						props: {
+      							colSpan:0
+      						},
+				     	}
+				     	
+				     }
+				     
+				}
+			},
+			{
+				title: '部门',
+				dataIndex: 'name',
+				key: 'name',
+				width:100,
+				fixed:true,
+				render:(text,record)=>{
+				     if(!record.theNumber){
+				     	return text
+				     }else{
+				     	return {
+				     		children: text,
+      						props: {
+      							colSpan:4
+      						},
+				     	}
+				     	
+				     }
+				     
+				}
+			},{
+				title: '负责人',
+				width:100,
+				fixed:true,
+				dataIndex: 'departmentName',
+				key: 'departmentName',
+				render:(text,record)=>{
+				     if(!record.theNumber){
+				     	return text
+				     }else{
+				     	return {
+				     		children: text,
+      						props: {
+      							colSpan:0
+      						},
+				     	}
+				     	
+				     }
+				     
+				}
+			}, 
+			{
+				title: '部门人数',
+				width:100,
+				fixed:true,
+				dataIndex: 'position',
+				key: 'position',
+				render:(text,record)=>{
+				     if(!record.theNumber){
+				     	return text
+				     }else{
+				     	return {
+				     		children: text,
+      						props: {
+      							colSpan:0
+      						},
+				     	}
+				     	
+				     }
+				     
+				}
+			},{
+				title: '当日业绩',
+				children: [
+					{
+						title: '单量',
+						dataIndex: 'num66',
+						width:70,
+						key: 'num66',
+						sorter: (a, b) => a.num66 - b.num66,
+					},{
+						title: '金额',
+						dataIndex: 'age266',
+						width:70,
+						key: 'age266',
+						sorter: (a, b) => a.age - b.age,
+					}
+				],
+			},
+			{
+				title: '当日人均业绩',
+				children: [
+					{
+						title: '人均有效',
+						dataIndex: 'num6611',
+						key: 'num6611',
+						width:100,
+						sorter: (a, b) => a.num66 - b.num66,
+					},{
+						title: '人均单量',
+						dataIndex: 'age262',
+						key: 'age262',
+						width:100,
+						sorter: (a, b) => a.age - b.age,
+					},{
+						title: '人均金额',
+						dataIndex: 'age26',
+						width:100,
+						key: 'age26',
+						sorter: (a, b) => a.age - b.age,
+					}
+				],
+			},
+			{
+				title: '当日客户营销',
+				children: [
+					{
+						title: '客户总量',
+						dataIndex: 'anum66',
+						key: 'anum66',
+						width:100,
+						sorter: (a, b) => a.num66 - b.num66,
+					},{
+						title: '新增营销',
+						dataIndex: 'aage266',
+						key: 'aage266',
+						width:100,
+						sorter: (a, b) => a.age - b.age,
+					},
+					{
+						title: '营销回访',
+						dataIndex: 'age266p',
+						key: 'age266p',
+						width:100,
+						sorter: (a, b) => a.age - b.age,
+					}
+				],
+			},
+			{
+				title: '当日客户有效',
+				children: [
+					{
+						title: '有效总量',
+						width:100,
+						dataIndex: 'num',
+						key: 'num',
+						sorter: (a, b) => a.num - b.num,
+					},{
+						title: '新增有效',
+						width:100,
+						dataIndex: 'age2',
+						key: 'age2',
+						sorter: (a, b) => a.age - b.age,
+					},{
+						title: '有效回访',
+						width:100,
+						dataIndex: 'age3',
+						key: 'age3',
+						sorter: (a, b) => a.age - b.age,
+					}
+				],
+			}, {
+				title: '当日客户拜访',
+				children: [
+					{
+						title: '拜访总量',
+						width:100,
+						dataIndex: 'age11',
+						key: 'age11',
+						sorter: (a, b) => a.age - b.age,
+					},{
+						title: '电话',
+						width:70,
+						dataIndex: 'age22',
+						key: 'age22',
+						sorter: (a, b) => a.age - b.age,
+					},{
+						title: '外拜',
+						width:70,
+						dataIndex: 'age33',
+						key: 'age33',
+						sorter: (a, b) => a.age - b.age,
+					},{
+						title: '邮件',
+						width:70,
+						dataIndex: 'age44',
+						key: 'age44',
+						sorter: (a, b) => a.age - b.age,
+					},{
+						title: '微信',
+						width:70,
+						dataIndex: 'age55',
+						key: 'age55',
+						sorter: (a, b) => a.age - b.age,
+					}
+				],
+			},
+			{
+				title: '本周业绩',
+				children: [
+					{
+						title: '数量',
+						width:70,
+						dataIndex: 'weeklyOrderCount',
+						key: 'weeklyOrderCount',
+						sorter: (a, b) => a.weeklyOrderCount - b.weeklyOrderCount,
+					},{
+						title: '金额',
+						width:70,
+						dataIndex: 'weeklyOrderAmount',
+						key: 'weeklyOrderAmount',
+						sorter: (a, b) => a.weeklyOrderAmount - b.weeklyOrderAmount,
+					}
+				],
+			},{
+				title: '本月业绩',
+				children: [
+					{
+						title: '数量',
+						width:70,
+						dataIndex: 'monthlyOrderCount',
+						key: 'monthlyOrderCount',
+						sorter: (a, b) => a.monthlyOrderCount - b.monthlyOrderCount,
+					},{
+						title: '金额',
+						width:70,
+						dataIndex: 'monthlyOrderAmount',
+						key: 'monthlyOrderAmount',
+						sorter: (a, b) => a.monthlyOrderAmount - b.monthlyOrderAmount,
+					}
+				],
+			},{
+				title: '本季业绩',
+				children: [
+					{
+						title: '数量',
+						width:70,
+						dataIndex: 'quarterlyOrderCount',
+						key: 'quarterlyOrderCount',
+						sorter: (a, b) => a.quarterlyOrderCount - b.quarterlyOrderCount,
+					},{
+						title: '金额',
+						width:70,
+						dataIndex: 'quarterlyOrderAmount',
+						key: 'quarterlyOrderAmount',
+						sorter: (a, b) => a.quarterlyOrderAmount - b.quarterlyOrderAmount,
+					}
+				],
+			},{
+				title: '本年业绩',
+				children: [
+					{
+						title: '数量',
+						width:70,
+						dataIndex: 'annuallyOrderCount',
+						key: 'annuallyOrderCount',
+						sorter: (a, b) => a.annuallyOrderCount - b.annuallyOrderCount,
+					},{
+						title: '金额',
+						width:70,
+						dataIndex: 'annuallyOrderAmount',
+						key: 'annuallyOrderAmount',
+						sorter: (a, b) => a.annuallyOrderAmount - b.annuallyOrderAmount,
+					}
+				],
+			},
+			{
+				title: '本周人均',
+				children: [
+					{
+						title: '有效',
+						width:70,
+						dataIndex: 'annuallyOrderCounty',
+						key: 'annuallyOrderCounty',
+						sorter: (a, b) => a.annuallyOrderCount1 - b.annuallyOrderCount1,
+					},{
+						title: '单量',
+						width:70,
+						dataIndex: 'annuallyOrderAmountt',
+						key: 'annuallyOrderAmountt',
+						sorter: (a, b) => a.annuallyOrderAmount1 - b.annuallyOrderAmount1,
+					},
+					{
+						title: '金额',
+						width:70,
+						dataIndex: 'annuallyOrderAmount1',
+						key: 'annuallyOrderAmount1',
+						sorter: (a, b) => a.annuallyOrderAmount1 - b.annuallyOrderAmount1,
+					}
+				],
+			},{
+				title: '本月人均',
+				children: [
+					{
+						title: '有效',
+						width:70,
+						dataIndex: 'annuallyOrderCountv',
+						key: 'annuallyOrderCountv',
+						sorter: (a, b) => a.annuallyOrderCount1 - b.annuallyOrderCount1,
+					},{
+						title: '单量',
+						width:70,
+						dataIndex: 'annuallyOrderAmountv',
+						key: 'annuallyOrderAmountv',
+						sorter: (a, b) => a.annuallyOrderAmount1 - b.annuallyOrderAmount1,
+					},
+					{
+						title: '金额',
+						width:70,
+						dataIndex: 'annuallyOrderAmount1v',
+						key: 'annuallyOrderAmount1v',
+						sorter: (a, b) => a.annuallyOrderAmount1 - b.annuallyOrderAmount1,
+					}
+				],
+			},{
+				title: '本季人均',
+				children: [
+					{
+						title: '有效',
+						width:70,
+						dataIndex: 'annuallyOrderCountc',
+						key: 'annuallyOrderCountc',
+						sorter: (a, b) => a.annuallyOrderCount1 - b.annuallyOrderCount1,
+					},{
+						title: '单量',
+						width:70,
+						dataIndex: 'annuallyOrderAmountb',
+						key: 'annuallyOrderAmountb',
+						sorter: (a, b) => a.annuallyOrderAmount1 - b.annuallyOrderAmount1,
+					},
+					{
+						title: '金额',
+						width:70,
+						dataIndex: 'annuallyOrderAmounta',
+						key: 'annuallyOrderAmounta',
+						sorter: (a, b) => a.annuallyOrderAmount1 - b.annuallyOrderAmount1,
+					}
+				],
+			},{
+				title: '本年人均',
+				children: [
+					{
+						title: '有效',
+						width:70,
+						dataIndex: 'annuallyOrderCount2',
+						key: 'annuallyOrderCount2',
+						sorter: (a, b) => a.annuallyOrderCount1 - b.annuallyOrderCount1,
+					},{
+						title: '单量',
+						width:70,
+						dataIndex: 'annuallyOrderAmount3',
+						key: 'annuallyOrderAmount3',
+						sorter: (a, b) => a.annuallyOrderAmoun1t - b.annuallyOrderAmoun1t,
+					},
+					{
+						title: '金额',
+						width:70,
+						dataIndex: 'annuallyOrderAmount4',
+						key: 'annuallyOrderAmount4',
+						sorter: (a, b) => a.annuallyOrderAmount1 - b.annuallyOrderAmount1,
+					}
+				],
+			}
+			],
+			dataSource: [],
+		};
+	},
+	search() {
+		this.totalData()
+	},
+	reset() {
+		this.state.departmentSearch = undefined;
+		this.state.postSearch = undefined;
+		this.state.uesrNameSearch = '';
+		this.totalData()
+	},
+	componentWillMount() {
+		this.departmentList();
+		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(
+			<div className='set-content'>
+				<span style={{fontSize:'16px'}}>部门业绩统计报表</span>
+				<div className="clearfix">
+					<Select placeholder="部门机构"
+                        style={{ width: 150 ,marginRight:'10px',marginTop:'10px',marginBottom:'10px'}}
+                        value={this.state.departmentSearch}
+                        onChange={(e) => { this.setState({ departmentSearch: e }) }}>
+                        {
+                            departmentArr.map(function (item) {
+                                    return <Select.Option key={item.id} >{item.name}</Select.Option>
+                            })
+                        }
+                  	</Select>
+                  	<Input  value={this.state.uesrNameSearch} placeholder="用户姓名" style={{width:'150px'}}
+                  			onChange={(e)=>{this.setState({uesrNameSearch:e.target.value})}} />
+                  	<Select placeholder="职务"
+                        style={{ width: 150 ,marginRight:'10px',marginLeft:'10px'}}
+                        value={this.state.postSearch}
+                        onChange={(e) => { this.setState({ postSearch: e }) }}>
+                        {
+                            post.map(function (item) {
+                                    return <Select.Option key={item.value} >{item.key}</Select.Option>
+                            })
+                        }
+                  	</Select>
+                  	<Button type="primary" onClick={this.search} style={{marginLeft:'10px',marginRight:'10px'}}>搜索</Button>
+	                <Button onClick={this.reset}>重置</Button>
+				</div>
+				<div className="surfaceTitle">
+					<span className="nowtime">{this.state.Nowtime}</span>
+					<span>部门营销业绩统计表</span>
+				</div>
+				<div className="patent-table">
+					<div className="scroll">
+	                    <Spin spinning={this.state.loading}>
+	                        <Table columns={this.state.columns}
+	                            dataSource={this.state.dataSource}
+	                            scroll={{ x: 3200,y:500}}
+	                            bordered
+	                            pagination={false}
+	                            />
+	                    </Spin>
+	                </div>
+	            </div>
+			</div>
+		)
+	}
+});
+
+export default PersonalReport;

+ 474 - 0
js/component/manageCenter/customer/report/personalReport.jsx

@@ -0,0 +1,474 @@
+import React from 'react';
+import { Select, Spin, Input, Table, Button } from 'antd';
+import ajax from 'jquery/src/ajax/xhr.js';
+import $ from 'jquery/src/ajax';
+import './report.less';
+import { post } from '../../../dataDic.js';
+
+const PersonalReport = React.createClass({
+	loadData(totalArr) {
+		let total=totalArr.data[0] ;
+		this.setState({
+			loading: true
+		});
+		$.ajax({
+			method: "post",
+			dataType: "json",
+			crossDomain: false,
+			url: globalConfig.context + "/api/admin/organization/selectSuperId",
+			data: {
+				
+			},
+			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,
+							name: item.name,
+							id: item.id,
+//							departmentName:item.departmentName,//部门
+//							position:item.position, //职务
+//							enrollTime:item.enrollTime,// 入职时间
+//							dailyOrderCount:values.daily.orderCount,//日签单业绩
+//							dailyOrderAmount:values.daily.orderAmount,//日签单业绩
+//							weeklyOrderCount:values.weekly.orderCount,//周签单业绩
+//							weeklyOrderAmount:values.weekly.orderAmount,//周签单业绩
+//							monthlyOrderCount:values.monthly.orderCount,//月签单业绩
+//							monthlyOrderAmount:values.monthly.orderAmount,//月签单业绩
+//							quarterlyOrderCount:values.quarterly.orderCount,//季签单业绩
+//							quarterlyOrderAmount:values.quarterly.orderAmount,//季签单业绩
+//							annuallyOrderCount:values. annually.orderCount,//年签单业绩
+//							annuallyOrderAmount:values. annually.orderAmount,//年签单业绩
+							departmentName:item.name,//部门
+							position:item.name, //职务
+							enrollTime:item.name,// 入职时间
+							dailyOrderCount:nub,//日签单业绩
+							dailyOrderAmount:nub,//日签单业绩
+							weeklyOrderCount:nub,//周签单业绩
+							weeklyOrderAmount:nub,//周签单业绩
+							monthlyOrderCount:nub,//月签单业绩
+							monthlyOrderAmount:nub,//月签单业绩
+							quarterlyOrderCount:nub,//季签单业绩
+							quarterlyOrderAmount:nub,//季签单业绩
+							annuallyOrderCount:nub,//年签单业绩
+							annuallyOrderAmount:nub,//年签单业绩
+						})
+					})
+				}
+				theArr.push(
+						{
+							key:9999999,
+							theNumber:true,
+							name:'合计',
+							dailyOrderCount:total.dailyTotalCount,//日签单业绩
+							dailyOrderAmount:total.dailyTotalAmount,//日签单业绩
+							weeklyOrderCount:total.weeklyTotalCount,//周签单业绩
+							weeklyOrderAmount:total.weeklyTotalAmount,//周签单业绩
+							monthlyOrderCount:total.monthlyTotalCount,//月签单业绩
+							monthlyOrderAmount:total.monthlyTotalAmount,//月签单业绩
+							quarterlyOrderCount:total.quarterlyTotalCount,//季签单业绩
+							quarterlyOrderAmount:total.quarterlyTotalAmount,//季签单业绩
+							annuallyOrderCount:total.annuallyTotalCount,//年签单业绩
+							annuallyOrderAmount:total.annuallyTotalAmount,//年签单业绩
+						}
+					)
+				this.setState({
+					dataSource: theArr,
+				})
+			}.bind(this),
+		}).always(function() {
+			this.setState({
+				loading: false
+			});
+		}.bind(this));
+	},
+	totalData() {
+		this.setState({
+			loading: true
+		});
+		$.ajax({
+			method: "post",
+			dataType: "json",
+			crossDomain: false,
+			url: globalConfig.context + "/api/admin/organization/selectSuperId",
+			data: {
+
+			},
+			success: function(data) {
+				//let thedata = data.data;
+				let thedata = {data:[
+					{dailyTotalCount:1227,dailyTotalAmount:1233,weeklyTotalCount:1025,weeklyTotalAmount:127,monthlyTotalCount:122,
+					monthlyTotalAmount:922,quarterlyTotalCount:772,quarterlyTotalAmount:122,annuallyTotalCount:522,annuallyTotalAmount:2222,}
+				]}
+				let theArr = [];
+				if(!thedata) {
+					if(data.error && data.error.length) {
+						message.warning(data.error[0].message);
+					};
+					thedata = {};
+				} 
+				this.loadData(thedata)
+			}.bind(this),
+		}).always(function() {
+			this.setState({
+				loading: false
+			});
+		}.bind(this));
+	},
+	departmentList() {
+		this.setState({
+			loading: true
+		});
+		$.ajax({
+			method: "post",
+			dataType: "json",
+			crossDomain: false,
+			url: globalConfig.context + "/api/admin/organization/selectSuperId",
+			data: {
+
+			},
+			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) {
+						theArr.push({
+							key: index,
+							name: item.name,
+							id: item.id,
+							depNo: item.depNo
+						})
+					})
+				}
+				this.setState({
+					departmentArr: theArr,
+				})
+			}.bind(this),
+		}).always(function() {
+			this.setState({
+				loading: false
+			});
+		}.bind(this));
+	},
+	getInitialState() {
+		return {
+			selectedRowKeys: [],
+			selectedRows: [],
+			loading: false,
+			visible: false,
+			showDesc: false,
+			columns: [
+			{
+				title: '序号',
+				dataIndex: 'nub',
+				key: 'nub',
+				render:(text,record)=>{
+				     if(!record.theNumber){
+				     	return text
+				     }else{
+				     	return {
+				     		children: text,
+      						props: {
+      							colSpan:0
+      						},
+				     	}
+				     	
+				     }
+				     
+				}
+			},
+			{
+				title: '姓名',
+				dataIndex: 'name',
+				key: 'name',
+				render:(text,record)=>{
+				     if(!record.theNumber){
+				     	return text
+				     }else{
+				     	return {
+				     		children: text,
+      						props: {
+      							colSpan:5
+      						},
+				     	}
+				     	
+				     }
+				     
+				}
+			},{
+				title: '部门',
+				dataIndex: 'departmentName',
+				key: 'departmentName',
+				render:(text,record)=>{
+				     if(!record.theNumber){
+				     	return text
+				     }else{
+				     	return {
+				     		children: text,
+      						props: {
+      							colSpan:0
+      						},
+				     	}
+				     	
+				     }
+				     
+				}
+			}, 
+			{
+				title: '职务',
+				dataIndex: 'position',
+				key: 'position',
+				render:(text,record)=>{
+				     if(!record.theNumber){
+				     	return text
+				     }else{
+				     	return {
+				     		children: text,
+      						props: {
+      							colSpan:0
+      						},
+				     	}
+				     	
+				     }
+				     
+				}
+			},{
+				title: '入职时间',
+				dataIndex: 'enrollTime',
+				key: 'enrollTime',
+				render:(text,record)=>{
+				     if(!record.theNumber){
+				     	return text
+				     }else{
+				     	return {
+				     		children: text,
+      						props: {
+      							colSpan:0
+      						},
+				     	}
+				     	
+				     }
+				     
+				}
+			},{
+				title: '当日营销客户数',
+				children: [
+					{
+						title: '总数',
+						dataIndex: 'num',
+						key: 'num',
+						sorter: (a, b) => a.num - b.num,
+					},{
+						title: '新增',
+						dataIndex: 'age2',
+						key: 'age2',
+						sorter: (a, b) => a.age - b.age,
+					},{
+						title: '回访',
+						dataIndex: 'age3',
+						key: 'age3',
+						sorter: (a, b) => a.age - b.age,
+					},{
+						title: '有效',
+						dataIndex: 'age4',
+						key: 'age4',
+						sorter: (a, b) => a.age - b.age,
+					},
+				],
+			}, {
+				title: '当日营销方式',
+				children: [
+					{
+						title: '总数',
+						dataIndex: 'age11',
+						key: 'age11',
+						sorter: (a, b) => a.age - b.age,
+					},{
+						title: '电话',
+						dataIndex: 'age22',
+						key: 'age22',
+						sorter: (a, b) => a.age - b.age,
+					},{
+						title: '外拜',
+						dataIndex: 'age33',
+						key: 'age33',
+						sorter: (a, b) => a.age - b.age,
+					},{
+						title: '邮件',
+						dataIndex: 'age44',
+						key: 'age44',
+						sorter: (a, b) => a.age - b.age,
+					},{
+						title: '微信',
+						dataIndex: 'age55',
+						key: 'age55',
+						sorter: (a, b) => a.age - b.age,
+					}
+				],
+			},
+			{
+				title: '本日签单业绩',
+				children: [
+					{
+						title: '数量',
+						dataIndex: 'dailyOrderCount',
+						key: 'dailyOrderCount',
+						sorter: (a, b) => a.dailyOrderCount - b.dailyOrderCount,
+					},{
+						title: '金额',
+						dataIndex: 'dailyOrderAmount',
+						key: 'dailyOrderAmount',
+						sorter: (a, b) => a.dailyOrderAmount - b.dailyOrderAmount,
+					}
+				],
+			},{
+				title: '本周签单业绩',
+				children: [
+					{
+						title: '数量',
+						dataIndex: 'weeklyOrderCount',
+						key: 'weeklyOrderCount',
+						sorter: (a, b) => a.weeklyOrderCount - b.weeklyOrderCount,
+					},{
+						title: '金额',
+						dataIndex: 'weeklyOrderAmount',
+						key: 'weeklyOrderAmount',
+						sorter: (a, b) => a.weeklyOrderAmount - b.weeklyOrderAmount,
+					}
+				],
+			},{
+				title: '本月签单业绩',
+				children: [
+					{
+						title: '数量',
+						dataIndex: 'monthlyOrderCount',
+						key: 'monthlyOrderCount',
+						sorter: (a, b) => a.monthlyOrderCount - b.monthlyOrderCount,
+					},{
+						title: '金额',
+						dataIndex: 'monthlyOrderAmount',
+						key: 'monthlyOrderAmount',
+						sorter: (a, b) => a.monthlyOrderAmount - b.monthlyOrderAmount,
+					}
+				],
+			},{
+				title: '本季签单业绩',
+				children: [
+					{
+						title: '数量',
+						dataIndex: 'quarterlyOrderCount',
+						key: 'quarterlyOrderCount',
+						sorter: (a, b) => a.quarterlyOrderCount - b.quarterlyOrderCount,
+					},{
+						title: '金额',
+						dataIndex: 'quarterlyOrderAmount',
+						key: 'quarterlyOrderAmount',
+						sorter: (a, b) => a.quarterlyOrderAmount - b.quarterlyOrderAmount,
+					}
+				],
+			},{
+				title: '本年签单业绩',
+				children: [
+					{
+						title: '数量',
+						dataIndex: 'annuallyOrderCount',
+						key: 'annuallyOrderCount',
+						sorter: (a, b) => a.annuallyOrderCount - b.annuallyOrderCount,
+					},{
+						title: '金额',
+						dataIndex: 'annuallyOrderAmount',
+						key: 'annuallyOrderAmount',
+						sorter: (a, b) => a.annuallyOrderAmount - b.annuallyOrderAmount,
+					}
+				],
+			}
+			],
+			dataSource: [],
+		};
+	},
+	search() {
+		this.totalData()
+	},
+	reset() {
+		this.state.departmentSearch = undefined;
+		this.state.postSearch = undefined;
+		this.state.uesrNameSearch = '';
+		this.totalData()
+	},
+	componentWillMount() {
+		this.departmentList();
+		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(
+			<div className='set-content'>
+				<span style={{fontSize:'16px'}}>个人业绩统计报表</span>
+				<div className="clearfix">
+					<Select placeholder="部门机构"
+                        style={{ width: 150 ,marginRight:'10px',marginTop:'10px',marginBottom:'10px'}}
+                        value={this.state.departmentSearch}
+                        onChange={(e) => { this.setState({ departmentSearch: e }) }}>
+                        {
+                            departmentArr.map(function (item) {
+                                    return <Select.Option key={item.id} >{item.name}</Select.Option>
+                            })
+                        }
+                  	</Select>
+                  	<Input  value={this.state.uesrNameSearch} placeholder="用户姓名" style={{width:'150px'}}
+                  			onChange={(e)=>{this.setState({uesrNameSearch:e.target.value})}} />
+                  	<Select placeholder="职务"
+                        style={{ width: 150 ,marginRight:'10px',marginLeft:'10px'}}
+                        value={this.state.postSearch}
+                        onChange={(e) => { this.setState({ postSearch: e }) }}>
+                        {
+                            post.map(function (item) {
+                                    return <Select.Option key={item.value} >{item.key}</Select.Option>
+                            })
+                        }
+                  	</Select>
+                  	<Button type="primary" onClick={this.search} style={{marginLeft:'10px',marginRight:'10px'}}>搜索</Button>
+	                <Button onClick={this.reset}>重置</Button>
+				</div>
+				<div className="surfaceTitle">
+					<span>湖南科德公司</span>
+					<span className="nowtime">{this.state.Nowtime}</span>
+					<span>个人营销业绩统计表</span>
+				</div>
+				<div className="patent-table">
+					<div className="scroll">
+	                    <Spin spinning={this.state.loading}>
+	                        <Table columns={this.state.columns}
+	                            dataSource={this.state.dataSource}
+	                            bordered
+	                            pagination={false}
+	                            />
+	                    </Spin>
+	                </div>
+	            </div>
+			</div>
+		)
+	}
+});
+
+export default PersonalReport;

+ 19 - 0
js/component/manageCenter/customer/report/report.less

@@ -0,0 +1,19 @@
+.set-content {
+    background: #fff;
+    padding: 20px;
+    .clearfix{
+        clear:both
+    }
+    .ant-table-thead > tr > th[rowspan],.ant-table-bordered .ant-table-thead > tr > th,.ant-table-bordered .ant-table-thead > tr > th, .ant-table-bordered .ant-table-tbody > tr > td{
+        text-align: center;
+    }
+    .surfaceTitle{
+        font-size: 18px;
+        text-align: center;
+        margin-bottom: 5px;
+    }
+    .surfaceTitle .nowtime{
+        margin-left: 20px;
+        margin-right: 20px;
+    }
+}