liting2017 7 years ago
parent
commit
52e2b9440e

+ 63 - 79
js/component/manageCenter/customer/report/departmentReport.jsx

@@ -1,5 +1,5 @@
 import React from 'react';
-import { Select, Spin, Input, Table, Button } from 'antd';
+import { Select, Spin, Input, Table, Button ,DatePicker} from 'antd';
 import ajax from 'jquery/src/ajax/xhr.js';
 import $ from 'jquery/src/ajax';
 import './report.less';
@@ -7,17 +7,26 @@ import { post } from '../../../dataDic.js';
 
 const PersonalReport = React.createClass({
 	loadData(totalArr) {
-		let total=totalArr.data[0] ;
+		if(this.state.selTime){
+			var newTime=this.state.selTime;
+			var timeArr=newTime.split('-');
+			var txtTime=timeArr[0]+'年'+timeArr[1]+'月'+timeArr[2]+'日';
+			this.setState({
+				timeState:true,
+				txtTime:txtTime,
+			})
+		}
+		let total=totalArr;
 		this.setState({
 			loading: true
 		});
 		$.ajax({
-			method: "post",
+			method: "get",
 			dataType: "json",
 			crossDomain: false,
-			url: globalConfig.context + "/api/admin/organization/selectSuperId",
+			url: globalConfig.context + "/api/admin/report/sales/department",
 			data: {
-				
+				date:this.state.selTime?(this.state.selTime+' '+'00:00:00'):'',
 			},
 			success: function(data) {
 				let thedata = data.data;
@@ -34,42 +43,30 @@ const PersonalReport = React.createClass({
 							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,//年签单业绩
+							departmentName:item.departmentName,//部门
+							managerName:item.managerName,//负责人
+							memberCount:item.memberCount, //部门人数
+							enrollTime:item.enrollTime,// 入职时间
+							dailyOrderCount:item.values.daily.orderCount,//日签单业绩
+							dailyOrderAmount:item.values.daily.orderAmount,//日签单业绩
+							weeklyOrderCount:item.values.weekly.orderCount,//周签单业绩
+							weeklyOrderAmount:item.values.weekly.orderAmount,//周签单业绩
+							monthlyOrderCount:item.values.monthly.orderCount,//月签单业绩
+							monthlyOrderAmount:item.values.monthly.orderAmount,//月签单业绩
+							quarterlyOrderCount:item.values.quarterly.orderCount,//季签单业绩
+							quarterlyOrderAmount:item.values.quarterly.orderAmount,//季签单业绩
+							annuallyOrderCount:item.values.annually.orderCount,//年签单业绩
+							annuallyOrderAmount:item.values.annually.orderAmount,//年签单业绩
 						})
 					})
 				}
+				
 				theArr.push(
 						{
 							key:9999999,
 							theNumber:true,
-							name:'合计',
+							departmentName:'合计',
 							dailyOrderCount:total.dailyTotalCount,//日签单业绩
 							dailyOrderAmount:total.dailyTotalAmount,//日签单业绩
 							weeklyOrderCount:total.weeklyTotalCount,//周签单业绩
@@ -83,6 +80,7 @@ const PersonalReport = React.createClass({
 						}
 					)
 				this.setState({
+					
 					dataSource: theArr,
 				})
 			}.bind(this),
@@ -97,19 +95,15 @@ const PersonalReport = React.createClass({
 			loading: true
 		});
 		$.ajax({
-			method: "post",
+			method: "get",
 			dataType: "json",
 			crossDomain: false,
-			url: globalConfig.context + "/api/admin/organization/selectSuperId",
+			url: globalConfig.context + "/api/admin/report/sales/total",
 			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 thedata = data.data;
 				let theArr = [];
 				if(!thedata) {
 					if(data.error && data.error.length) {
@@ -165,6 +159,13 @@ const PersonalReport = React.createClass({
 			});
 		}.bind(this));
 	},
+	//时间选择
+    selTime(value,index){
+    	this.setState({
+    		Dtime:value,
+    		selTime:index
+    	})
+    },
 	getInitialState() {
 		return {
 			selectedRowKeys: [],
@@ -172,6 +173,9 @@ const PersonalReport = React.createClass({
 			loading: false,
 			visible: false,
 			showDesc: false,
+			timeState:false,
+			Dtime:undefined,
+			selTime:'',
 			columns: [
 			{
 				title: '序号',
@@ -196,8 +200,8 @@ const PersonalReport = React.createClass({
 			},
 			{
 				title: '部门',
-				dataIndex: 'name',
-				key: 'name',
+				dataIndex: 'departmentName',
+				key: 'departmentName',
 				width:100,
 				fixed:true,
 				render:(text,record)=>{
@@ -218,8 +222,8 @@ const PersonalReport = React.createClass({
 				title: '负责人',
 				width:100,
 				fixed:true,
-				dataIndex: 'departmentName',
-				key: 'departmentName',
+				dataIndex: 'managerName',
+				key: 'managerName',
 				render:(text,record)=>{
 				     if(!record.theNumber){
 				     	return text
@@ -239,8 +243,8 @@ const PersonalReport = React.createClass({
 				title: '部门人数',
 				width:100,
 				fixed:true,
-				dataIndex: 'position',
-				key: 'position',
+				dataIndex: 'memberCount',
+				key: 'memberCount',
 				render:(text,record)=>{
 				     if(!record.theNumber){
 				     	return text
@@ -260,16 +264,16 @@ const PersonalReport = React.createClass({
 				children: [
 					{
 						title: '单量',
-						dataIndex: 'num66',
+						dataIndex: 'dailyOrderCount',
 						width:70,
-						key: 'num66',
-						sorter: (a, b) => a.num66 - b.num66,
+						key: 'dailyOrderCount',
+						sorter: (a, b) => a.dailyOrderCount - b.dailyOrderCount,
 					},{
 						title: '金额',
-						dataIndex: 'age266',
+						dataIndex: 'dailyOrderAmount',
 						width:70,
-						key: 'age266',
-						sorter: (a, b) => a.age - b.age,
+						key: 'dailyOrderAmount',
+						sorter: (a, b) => a.dailyOrderAmount - b.dailyOrderAmount,
 					}
 				],
 			},
@@ -555,9 +559,9 @@ const PersonalReport = React.createClass({
 		this.totalData()
 	},
 	reset() {
-		this.state.departmentSearch = undefined;
-		this.state.postSearch = undefined;
-		this.state.uesrNameSearch = '';
+		this.state.Dtime = undefined;
+		this.state.selTime='';
+		this.state.timeState=false;
 		this.totalData()
 	},
 	componentWillMount() {
@@ -575,33 +579,13 @@ const PersonalReport = React.createClass({
 			<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>
+					<span style={{fontSize:'16px'}}>选择日期 : </span>
+					<DatePicker onChange={this.selTime} value={this.state.Dtime}/>
                   	<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 className="nowtime">{this.state.timeState?this.state.txtTime:this.state.Nowtime}</span>
 					<span>部门营销业绩统计表</span>
 				</div>
 				<div className="patent-table">

+ 68 - 12
js/component/manageCenter/customer/report/personalReport.jsx

@@ -1,28 +1,32 @@
 import React from 'react';
-import { Select, Spin, Input, Table, Button } from 'antd';
+import { Select, Spin, Input, Table, Button ,message} 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] ;
+	loadData(totalArr,pageNo) {
+//		console.log(totalArr);
+		let total=totalArr.data[0];
 		this.setState({
 			loading: true
 		});
+//		console.log(pageNo)
 		$.ajax({
 			method: "post",
 			dataType: "json",
 			crossDomain: false,
-			url: globalConfig.context + "/api/admin/organization/selectSuperId",
+			url: globalConfig.context + "/api/admin/order/listPublicOrder",
 			data: {
-				
+				pageNo: pageNo || 1,
+                pageSize: this.state.pagination.pageSize,
 			},
 			success: function(data) {
-				let thedata = data.data;
+//				console.log(data)
+				let thedata = data.data.list;
 				let theArr = [];
-				if(!thedata) {
+				if(!data.data) {
 					if(data.error && data.error.length) {
 						message.warning(data.error[0].message);
 					};
@@ -64,11 +68,18 @@ const PersonalReport = React.createClass({
 							annuallyOrderAmount:nub,//年签单业绩
 						})
 					})
+					this.state.pagination.current = data.data.pageNo;
+                    this.state.pagination.total = data.data.totalCount;
 				}
+//				if(!data.data.length){
+//					this.state.pagination.current=0
+//					this.state.pagination.total=0
+//				}
 				theArr.push(
 						{
 							key:9999999,
 							theNumber:true,
+							nub:11,
 							name:'合计',
 							dailyOrderCount:total.dailyTotalCount,//日签单业绩
 							dailyOrderAmount:total.dailyTotalAmount,//日签单业绩
@@ -82,8 +93,11 @@ const PersonalReport = React.createClass({
 							annuallyOrderAmount:total.annuallyTotalAmount,//年签单业绩
 						}
 					)
+				console.log(theArr)
 				this.setState({
-					dataSource: theArr,
+					pageNo:pageNo,
+                    dataSource: theArr,
+                    pagination: this.state.pagination,
 				})
 			}.bind(this),
 		}).always(function() {
@@ -92,7 +106,8 @@ const PersonalReport = React.createClass({
 			});
 		}.bind(this));
 	},
-	totalData() {
+	totalData(page) {
+		console.log(page)
 		this.setState({
 			loading: true
 		});
@@ -117,7 +132,10 @@ const PersonalReport = React.createClass({
 					};
 					thedata = {};
 				} 
-				this.loadData(thedata)
+				this.loadData(thedata,page)
+				this.setState({
+					totals:thedata[0]
+				})
 			}.bind(this),
 		}).always(function() {
 			this.setState({
@@ -172,10 +190,24 @@ const PersonalReport = React.createClass({
 			loading: false,
 			visible: false,
 			showDesc: false,
+			pagination: {
+                defaultCurrent: 1,
+                defaultPageSize: 10,
+                showQuickJumper: true,
+                pageSize: 10,
+                onChange: function (page) {
+                    this.totalData(page);
+                }.bind(this),
+                showTotal: function (total) {
+                    return '共' + total + '条数据';
+                }
+            },
 			columns: [
 			{
 				title: '序号',
 				dataIndex: 'nub',
+				width:50,
+				fixed:true,
 				key: 'nub',
 				render:(text,record)=>{
 				     if(!record.theNumber){
@@ -195,6 +227,8 @@ const PersonalReport = React.createClass({
 			{
 				title: '姓名',
 				dataIndex: 'name',
+				width:100,
+				fixed:true,
 				key: 'name',
 				render:(text,record)=>{
 				     if(!record.theNumber){
@@ -213,6 +247,7 @@ const PersonalReport = React.createClass({
 			},{
 				title: '部门',
 				dataIndex: 'departmentName',
+				width:100,
 				key: 'departmentName',
 				render:(text,record)=>{
 				     if(!record.theNumber){
@@ -233,6 +268,7 @@ const PersonalReport = React.createClass({
 				title: '职务',
 				dataIndex: 'position',
 				key: 'position',
+				width:100,
 				render:(text,record)=>{
 				     if(!record.theNumber){
 				     	return text
@@ -249,6 +285,7 @@ const PersonalReport = React.createClass({
 				}
 			},{
 				title: '入职时间',
+				width:100,
 				dataIndex: 'enrollTime',
 				key: 'enrollTime',
 				render:(text,record)=>{
@@ -271,20 +308,24 @@ const PersonalReport = React.createClass({
 					{
 						title: '总数',
 						dataIndex: 'num',
+						width:70,
 						key: 'num',
 						sorter: (a, b) => a.num - b.num,
 					},{
 						title: '新增',
 						dataIndex: 'age2',
+						width:70,
 						key: 'age2',
 						sorter: (a, b) => a.age - b.age,
 					},{
 						title: '回访',
+						width:70,
 						dataIndex: 'age3',
 						key: 'age3',
 						sorter: (a, b) => a.age - b.age,
 					},{
 						title: '有效',
+						width:70,
 						dataIndex: 'age4',
 						key: 'age4',
 						sorter: (a, b) => a.age - b.age,
@@ -295,26 +336,31 @@ const PersonalReport = React.createClass({
 				children: [
 					{
 						title: '总数',
+						width:70,
 						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,
@@ -326,11 +372,13 @@ const PersonalReport = React.createClass({
 				children: [
 					{
 						title: '数量',
+						width:70,
 						dataIndex: 'dailyOrderCount',
 						key: 'dailyOrderCount',
 						sorter: (a, b) => a.dailyOrderCount - b.dailyOrderCount,
 					},{
 						title: '金额',
+						width:70,
 						dataIndex: 'dailyOrderAmount',
 						key: 'dailyOrderAmount',
 						sorter: (a, b) => a.dailyOrderAmount - b.dailyOrderAmount,
@@ -341,11 +389,13 @@ const PersonalReport = React.createClass({
 				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,
@@ -356,11 +406,13 @@ const PersonalReport = React.createClass({
 				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,
@@ -371,11 +423,13 @@ const PersonalReport = React.createClass({
 				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,
@@ -386,11 +440,13 @@ const PersonalReport = React.createClass({
 				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,
@@ -451,7 +507,6 @@ const PersonalReport = React.createClass({
 	                <Button onClick={this.reset}>重置</Button>
 				</div>
 				<div className="surfaceTitle">
-					<span>湖南科德公司</span>
 					<span className="nowtime">{this.state.Nowtime}</span>
 					<span>个人营销业绩统计表</span>
 				</div>
@@ -461,7 +516,8 @@ const PersonalReport = React.createClass({
 	                        <Table columns={this.state.columns}
 	                            dataSource={this.state.dataSource}
 	                            bordered
-	                            pagination={false}
+	                            scroll={{x:1780}}
+	                            pagination={this.state.pagination}
 	                            />
 	                    </Spin>
 	                </div>