Commit 5c307df8 by sunchao

战队业绩详情

parent f59e2f68
...@@ -32,7 +32,9 @@ ...@@ -32,7 +32,9 @@
"node_modules/ng-zorro-antd-mobile/src/ng-zorro-antd-mobile.min.css", "node_modules/ng-zorro-antd-mobile/src/ng-zorro-antd-mobile.min.css",
"src/styles.scss" "src/styles.scss"
], ],
"scripts": [], // 引入全局脚步,构建时会打包进来,常用于第三方库引入的脚本 "scripts": [
"node_modules/echarts/dist/echarts.min.js"
], // 引入全局脚步,构建时会打包进来,常用于第三方库引入的脚本
"es5BrowserSupport": true "es5BrowserSupport": true
}, },
"configurations": { "configurations": {
......
...@@ -3070,6 +3070,14 @@ ...@@ -3070,6 +3070,14 @@
"safer-buffer": "^2.1.0" "safer-buffer": "^2.1.0"
} }
}, },
"echarts": {
"version": "4.9.0",
"resolved": "https://registry.npm.taobao.org/echarts/download/echarts-4.9.0.tgz",
"integrity": "sha1-qbm6oD8Doqcx5jQMVb77V6nhNH0=",
"requires": {
"zrender": "4.3.2"
}
},
"ee-first": { "ee-first": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz", "resolved": "https://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz",
...@@ -6125,6 +6133,14 @@ ...@@ -6125,6 +6133,14 @@
"tslib": "^1.9.0" "tslib": "^1.9.0"
} }
}, },
"ngx-echarts": {
"version": "3.2.0",
"resolved": "https://registry.npm.taobao.org/ngx-echarts/download/ngx-echarts-3.2.0.tgz",
"integrity": "sha1-abw32fwmFWEXwsC7m6ETgiIo3EM=",
"requires": {
"tslib": "^1.9.0"
}
},
"nice-try": { "nice-try": {
"version": "1.0.5", "version": "1.0.5",
"resolved": "https://registry.npm.taobao.org/nice-try/download/nice-try-1.0.5.tgz", "resolved": "https://registry.npm.taobao.org/nice-try/download/nice-try-1.0.5.tgz",
...@@ -10475,6 +10491,11 @@ ...@@ -10475,6 +10491,11 @@
"version": "0.8.29", "version": "0.8.29",
"resolved": "https://registry.npm.taobao.org/zone.js/download/zone.js-0.8.29.tgz", "resolved": "https://registry.npm.taobao.org/zone.js/download/zone.js-0.8.29.tgz",
"integrity": "sha1-jc6Sqg3VU7ULxb+7kK+Zhq2EWhI=" "integrity": "sha1-jc6Sqg3VU7ULxb+7kK+Zhq2EWhI="
},
"zrender": {
"version": "4.3.2",
"resolved": "https://registry.npm.taobao.org/zrender/download/zrender-4.3.2.tgz?cache=0&sync_timestamp=1597683497625&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fzrender%2Fdownload%2Fzrender-4.3.2.tgz",
"integrity": "sha1-7HQy+UFcgsc1hLa3uMR+GwFiCcY="
} }
} }
} }
...@@ -24,8 +24,10 @@ ...@@ -24,8 +24,10 @@
"buffer": "^5.4.3", "buffer": "^5.4.3",
"core-js": "^2.5.4", "core-js": "^2.5.4",
"dayjs": "^1.8.35", "dayjs": "^1.8.35",
"echarts": "^4.9.0",
"html2canvas": "^1.0.0-rc.5", "html2canvas": "^1.0.0-rc.5",
"ng-zorro-antd-mobile": "^0.12.5", "ng-zorro-antd-mobile": "^0.12.5",
"ngx-echarts": "^3.2.0",
"rxjs": "~6.3.3", "rxjs": "~6.3.3",
"tslib": "^1.9.0", "tslib": "^1.9.0",
"uuid": "^3.3.3", "uuid": "^3.3.3",
......
...@@ -49,11 +49,11 @@ ...@@ -49,11 +49,11 @@
<div style="font-size: 18px;">选择任务需要的时间</div> <div style="font-size: 18px;">选择任务需要的时间</div>
<div class="timeContent"> <div class="timeContent">
<div class="picker_list"> <div class="picker_list">
<PickerView [data]="seasons" [cascade]="false" [(ngModel)]="addTrack.taskTimeFrom" (ngModelChange)="onChange($event,1)"></PickerView> <PickerView [data]="seasons" [cols]='3' [cascade]="false" [ngModel]="addTrack.taskTimeFrom" (ngModelChange)="onChange($event,1)"></PickerView>
</div> </div>
<div style="color: #d9dadc;width: 10%;text-align: center;"></div> <div style="color: #d9dadc;width: 10%;text-align: center;"></div>
<div class="picker_list"> <div class="picker_list">
<PickerView [data]="seasons" [cascade]="false" [(ngModel)]="addTrack.taskTimeEnd" (ngModelChange)="onChange($event,2)"></PickerView> <PickerView [data]="seasons" [cascade]="false" [cols]='3' [ngModel]="addTrack.taskTimeEnd" (ngModelChange)="onChange($event,2)"></PickerView>
</div> </div>
</div> </div>
</div> </div>
......
...@@ -99,15 +99,19 @@ export class AddTaskComponent implements OnInit { ...@@ -99,15 +99,19 @@ export class AddTaskComponent implements OnInit {
//如果有缓存切换到缓存数据 //如果有缓存切换到缓存数据
if(JSON.parse(sessionStorage.getItem('pageDwellDtatus'))){ if(JSON.parse(sessionStorage.getItem('pageDwellDtatus'))){
this.tabType = JSON.parse(sessionStorage.getItem('pageDwellDtatus'))['tabType']; this.tabType = JSON.parse(sessionStorage.getItem('pageDwellDtatus'))['tabType'];
this.dropOptionsQuery(this.tabType); this.addTrack.taskType = JSON.parse(sessionStorage.getItem('pageDwellDtatus'))['taskType'];
setTimeout(() => {
this.dropOptionsQuery(this.tabType);
this.addTrack.mdDropOptionId = JSON.parse(sessionStorage.getItem('pageDwellDtatus'))['mdDropOptionId']; this.addTrack.mdDropOptionId = JSON.parse(sessionStorage.getItem('pageDwellDtatus'))['mdDropOptionId'];
}, 300);
}else{ }else{
this.tabType = 'bizchance_promotion_action'; this.tabType = 'bizchance_promotion_action';
this.addTrack.taskType = 1;
this.addTrack.mdDropOptionId = null; this.addTrack.mdDropOptionId = null;
} }
//如果有日程时间就取缓存没有就默认当天 //如果有日程时间就取缓存没有就默认当天
if(sessionStorage.getItem('trackDate')){ if(sessionStorage.getItem('trackTime')){
this.addTrack.trackTime = sessionStorage.getItem('trackDate'); this.addTrack.trackTime = sessionStorage.getItem('trackTime');
}else{ }else{
this.addTrack.trackTime = dayjs().format('YYYY-MM-DD'); this.addTrack.trackTime = dayjs().format('YYYY-MM-DD');
} }
...@@ -163,11 +167,12 @@ export class AddTaskComponent implements OnInit { ...@@ -163,11 +167,12 @@ export class AddTaskComponent implements OnInit {
onChange(result,type) { onChange(result,type) {
if(type===1){ if(type===1){
this.addTrack.taskTimeFrom = result[0]['label']; this.addTrack.taskTimeFrom = result;
} }
if(type===2){ if(type===2){
this.addTrack.taskTimeEnd = result[0]['label']; this.addTrack.taskTimeEnd = result;
} }
console.log(this.addTrack.taskTimeFrom,this.addTrack.taskTimeEnd)
} }
selectTask(id){ selectTask(id){
...@@ -301,7 +306,9 @@ export class AddTaskComponent implements OnInit { ...@@ -301,7 +306,9 @@ export class AddTaskComponent implements OnInit {
this.addTrack = { this.addTrack = {
...this.addTrack, ...this.addTrack,
taskImportantTag:this.addTrack.taskImportantTag?1:0, taskImportantTag:this.addTrack.taskImportantTag?1:0,
isActive:1 isActive:1,
taskTimeFrom:this.addTrack.taskTimeFrom[0]['label'],
taskTimeEnd:this.addTrack.taskTimeEnd[0]['label']
} }
this.myService.addScheduleTrack(this.addTrack).subscribe((res)=>{ this.myService.addScheduleTrack(this.addTrack).subscribe((res)=>{
const toast = ToastService.show(`${res['message']}`, 0); const toast = ToastService.show(`${res['message']}`, 0);
......
...@@ -32,15 +32,18 @@ import { OrderDetailComponent } from './order-detail/order-detail.component'; ...@@ -32,15 +32,18 @@ import { OrderDetailComponent } from './order-detail/order-detail.component';
import { SalaryComponent } from './salary/salary.component'; import { SalaryComponent } from './salary/salary.component';
import { TodoListComponent } from './todo-list/todo-list.component'; import { TodoListComponent } from './todo-list/todo-list.component';
import { AddTaskComponent } from './add-task/add-task.component'; import { AddTaskComponent } from './add-task/add-task.component';
import { NgZorroAntdMobileModule, ModalServiceComponent, ToastComponent } from 'ng-zorro-antd-mobile';
import { NgZorroAntdMobileModule, ModalServiceComponent, ToastComponent } from 'ng-zorro-antd-mobile';
import {NgxEchartsModule} from 'ngx-echarts'
@NgModule({ @NgModule({
declarations: [MyCenterHomeComponent, MkMaterialComponent, MkMaterialDetailComponent, FileUploadComponent, ImportantAnnouncementComponent, SalesDetailComponent, AnnouncementDetailComponent, MyBusinessComponent, MyBusinessDetailComponent, PickerComponent, MyToastComponent, SalesRankComponent, TeamRankComponent, RecruitingComponent, RecruitingDetailComponent, ThanksComponent, MySettingComponent, MySettingDetailComponent, MyNewsComponent, MyTargetComponent, TeamPanelComponent, SwitchNumberPipe, TeamSalesScoreComponent, ScoreDetailsComponent, BusinessCardComponent, OrderDetailComponent, SalaryComponent, TodoListComponent, AddTaskComponent], declarations: [MyCenterHomeComponent, MkMaterialComponent, MkMaterialDetailComponent, FileUploadComponent, ImportantAnnouncementComponent, SalesDetailComponent, AnnouncementDetailComponent, MyBusinessComponent, MyBusinessDetailComponent, PickerComponent, MyToastComponent, SalesRankComponent, TeamRankComponent, RecruitingComponent, RecruitingDetailComponent, ThanksComponent, MySettingComponent, MySettingDetailComponent, MyNewsComponent, MyTargetComponent, TeamPanelComponent, SwitchNumberPipe, TeamSalesScoreComponent, ScoreDetailsComponent, BusinessCardComponent, OrderDetailComponent, SalaryComponent, TodoListComponent, AddTaskComponent],
imports: [ imports: [
CommonModule, CommonModule,
LifeCommonModule, LifeCommonModule,
MyRoutingModule, MyRoutingModule,
NgZorroAntdMobileModule NgZorroAntdMobileModule,
NgxEchartsModule
], ],
entryComponents: [ModalServiceComponent, ToastComponent], entryComponents: [ModalServiceComponent, ToastComponent],
providers: [ providers: [
......
...@@ -359,4 +359,11 @@ export class MyService { ...@@ -359,4 +359,11 @@ export class MyService {
return this.http return this.http
.post(url, JSON.stringify(param)); .post(url, JSON.stringify(param));
} }
//PEP详情得分
queryPEPScoreDetail(param){
const url = this.ydapi + '/practitioner/queryPEPScoreDetail';
return this.http
.post(url, JSON.stringify(param));
}
} }
<div class="scoreDetail_wrapper"> <div class="scoreDetail_wrapper">
<div> <div class="head">
<div class="title">战绩</div> <div class="title">战绩</div>
<div class="top"> <div class="top">
<div style="font-size: 16px;font-family:'Source Han Sans CN'"> <div style="font-size: 16px;font-family:'Source Han Sans CN'">
...@@ -7,19 +7,31 @@ ...@@ -7,19 +7,31 @@
</div> </div>
<ul> <ul>
<!-- <li [ngClass]="{selected:selectedTime===''}" (click)="salesScoreDetailQuery('')">全部</li> --> <!-- <li [ngClass]="{selected:selectedTime===''}" (click)="salesScoreDetailQuery('')">全部</li> -->
<li [ngClass]="{selected:selectedTime==='D'}" (click)="salesScoreDetailQuery('D')">今天</li> <li [ngClass]="{selected:selectedTime==='D'}" (click)="queryPEPScoreDetail('D')">今天</li>
<li [ngClass]="{selected:selectedTime==='W'}" (click)="salesScoreDetailQuery('W')">本周</li> <li [ngClass]="{selected:selectedTime==='W'}" (click)="queryPEPScoreDetail('W')">本周</li>
<li [ngClass]="{selected:selectedTime==='M'}" (click)="salesScoreDetailQuery('M')">本月</li> <li [ngClass]="{selected:selectedTime==='M'}" (click)="queryPEPScoreDetail('M')">本月</li>
</ul> </ul>
</div> </div>
</div> </div>
<div class="contentWrapper"> <div class="body">
<div *ngIf="salesScoreDetails?.length>0"> <div class="contentWrapper">
<div class="content" *ngFor="let scoreItem of salesScoreDetails"> <ul class="content_detail">
<span>{{scoreItem.dropOptionsName}}</span> <li>{{salesScoreDetails?.recruitScore}}</li>
<span>{{scoreItem.number * scoreItem.score}}</span> <li>{{salesScoreDetails?.saleScore}}</li>
</div> <li>{{salesScoreDetails?.coachScore}}</li>
<li>{{salesScoreDetails?.trainScore}}</li>
<li>{{salesScoreDetails?.meetingScore}}</li>
</ul>
<ul class="content_detail">
<li>增员</li>
<li>销售</li>
<li>辅导</li>
<li>培训</li>
<li>会议</li>
</ul>
</div> </div>
<div class="tips" *ngIf="salesScoreDetails?.length<=0">暂无销售活动量得分</div> <div style="height: 35px;line-height: 35px;margin: 10px auto 0 auto;">数据分析:</div>
<div echarts [options]="chartOption" class="chart" style="height: 300px;"></div>
</div> </div>
</div> </div>
\ No newline at end of file
...@@ -3,49 +3,58 @@ ul ,ol{ ...@@ -3,49 +3,58 @@ ul ,ol{
} }
.scoreDetail_wrapper{ .scoreDetail_wrapper{
padding: 10px 0; padding: 10px 0;
.title{ height: 100%;
width: 100%; .head{
text-align: center; .title{
height: 60px; width: 100%;
line-height: 60px; text-align: center;
background: #1B5B99FF; height: 60px;
color: #fff; line-height: 60px;
font-size: 18px; background: #1B5B99FF;
font-weight: bold; color: #fff;
} font-size: 18px;
.top{ font-weight: bold;
display: flex; }
justify-content: space-between; .top{
align-items: center;
height: 70px;
margin-bottom: 15px;
padding: 10px 15px;
ul{
width: 40%;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
color: #333333FF; height: 70px;
li.selected{ padding: 10px 15px;
font-weight: bold; ul{
border-bottom: 2px #F8002EFF solid; width: 40%;
color: #F8002EFF; display: flex;
justify-content: space-between;
align-items: center;
color: #333333FF;
li.selected{
font-weight: bold;
border-bottom: 2px #F8002EFF solid;
color: #F8002EFF;
}
} }
} }
} }
.contentWrapper{ .body{
padding: 10px 15px; padding: 10px 15px;
.content{ .contentWrapper{
display: flex; padding: 15px 0px;
justify-content: space-between; background-color: #c9d6e6;
align-items: center; .content_detail{
height: 30px; display: flex;
} justify-content: space-around;
.tips{ align-items: center;
text-align: center; li{
height: 40px; height: 35px;
line-height: 40px; line-height: 35px;
font-size: 16px;
font-family: '微软雅黑';
}
}
.content_detail:nth-child(1){
font-weight: bold;
}
} }
} }
} }
\ No newline at end of file
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
import { MyService } from '../my.service'; import { MyService } from '../my.service';
import { ActivatedRoute, Router } from "@angular/router"; import { ActivatedRoute, Router } from "@angular/router";
import { EChartOption } from 'echarts';
@Component({ @Component({
selector: 'ydlife-score-details', selector: 'ydlife-score-details',
templateUrl: './score-details.component.html', templateUrl: './score-details.component.html',
styleUrls: ['./score-details.component.scss'] styleUrls: ['./score-details.component.scss']
}) })
export class ScoreDetailsComponent implements OnInit { export class ScoreDetailsComponent implements OnInit {
salesScoreDetails: Array<any>; salesScoreDetails: any;
selectedTime: string; selectedTime: string;
practitionerId:number; practitionerId:number;
chartOption: EChartOption = {}
constructor(private activateRoute: ActivatedRoute,private myService: MyService) { } constructor(private activateRoute: ActivatedRoute,private myService: MyService) { }
ngOnInit() { ngOnInit() {
this.selectedTime = 'D'; this.selectedTime = 'D';
this.salesScoreDetailQuery('D'); this.queryPEPScoreDetail('D');
if(this.activateRoute.snapshot.paramMap.get('practitionerId')){ if(this.activateRoute.snapshot.paramMap.get('practitionerId')){
this.practitionerId = Number(this.activateRoute.snapshot.paramMap.get('practitionerId')); this.practitionerId = Number(this.activateRoute.snapshot.paramMap.get('practitionerId'));
}else{ }else{
this.practitionerId = JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId']; this.practitionerId = JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId'];
} }
} }
//销售活动量详情D-天 W-周 M-月 //销售活动量详情D-天 W-周 M-月
salesScoreDetailQuery(time) { queryPEPScoreDetail(time) {
this.selectedTime = time; this.selectedTime = time;
const practitionerId = JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId']; const practitionerId = JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId'];
this.myService.salesScoreDetailQuery({ practitionerId: practitionerId, time: this.selectedTime }).subscribe((res) => { this.myService.queryPEPScoreDetail({ practitionerId: practitionerId, time: this.selectedTime }).subscribe((res) => {
if (res['success']) { if (res['success']) {
this.salesScoreDetails = res['data']['salesScoreDetails']; this.salesScoreDetails = res['data']['detail'];
this.chartOption ={
tooltip: {
trigger: 'item',
formatter: '{a} <br/>{b}: {c} ({d}%)'
},
legend: {
orient: 'horizontal',
bottom: 0,
data: ['营销', '辅导', '会议', '培训', '增员'],
itemWidth:10,
itemHeight:10,
},
series: [
{
name: 'PEP得分',
type: 'pie',
radius: ['20%', '40%'],
avoidLabelOverlap: false,
label: {
show: true,
position: 'outside',
//显示的标签的内容
formatter: "{b}:{c}分",
},
emphasis: {
label: {
show: true,
fontSize: '18',
fontWeight: 'bold'
}
},
labelLine: {
show: true
},
data: [
{value: this.salesScoreDetails.saleScore, name: '营销',itemStyle:{color:'#CF3153FF'}},
{value: this.salesScoreDetails.coachScore, name: '辅导',itemStyle:{color:'#F1C13FFF'}},
{value: this.salesScoreDetails.meetingScore, name: '会议',itemStyle:{color:'#34A0BEFF'}},
{value: this.salesScoreDetails.trainScore, name: '培训',itemStyle:{color:'#5C66ADFF'}},
{value: this.salesScoreDetails.recruitScore, name: '增员',itemStyle:{color:'#00447AFF'}}
]
}
]
}
} }
}) })
} }
......
...@@ -14,19 +14,18 @@ ...@@ -14,19 +14,18 @@
</div> </div>
<div class="taem_panel_item_content"> <div class="taem_panel_item_content">
<ul> <ul>
<li class="big">{{this.teamActionsData?.scoreDayAverage?this.teamActionsData?.scoreDayAverage:'0'}}</li> <li class="big">{{this.averageData?.dayScore}}</li>
<li class="big">{{this.teamActionsData?.scoreWeekAverage?this.teamActionsData?.scoreWeekAverage:'0'}}</li> <li class="big">{{this.averageData?.weekScore}}</li>
<li class="big">{{this.teamActionsData?.scoreMonthAverage?this.teamActionsData?.scoreMonthAverage:'0'}}</li> <li class="big">{{this.averageData?.monthScore}}</li>
<li class="big">{{this.teamActionsData?.opportunitiesNum?this.teamActionsData?.opportunitiesNum:'0'}}</li> <li class="big">{{this.averageData?.rate}}</li>
</ul> </ul>
<ul> <ul>
<li>今天平均</li> <li>今天平均</li>
<li>本周平均</li> <li>本周平均</li>
<li>本月平均</li> <li>本月平均</li>
<li>本周新增商机</li> <li>月平均分效</li>
</ul> </ul>
</div> </div>
</div> </div>
<!-- <div class="taem_panel_item_wrapper"> <!-- <div class="taem_panel_item_wrapper">
......
...@@ -24,13 +24,15 @@ export class TeamPanelComponent implements OnInit { ...@@ -24,13 +24,15 @@ export class TeamPanelComponent implements OnInit {
recruitingStatistics: any; recruitingStatistics: any;
selectedRecruitingItem: any; selectedRecruitingItem: any;
statisticInfo: any; statisticInfo: any;
averageData:any;
constructor(private myService: MyService, public lifeCommonService: LifeCommonService) { } constructor(private myService: MyService, public lifeCommonService: LifeCommonService) { }
ngOnInit() { ngOnInit() {
this.practitionerId = JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId']; this.practitionerId = JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId'];
this.subordinateSystemName = sessionStorage.getItem('subordinateSystemName'); this.subordinateSystemName = sessionStorage.getItem('subordinateSystemName');
this.teamActionsAverageQuery(); this.teamActionsAverageQuery();
this.potentialActivityQuery(); // this.potentialActivityQuery();
this.subordinateSystemMemberQuery(1); this.subordinateSystemMemberQuery(1);
this.queryPEPScore();
} }
teamActionsAverageQuery() { teamActionsAverageQuery() {
...@@ -81,10 +83,20 @@ export class TeamPanelComponent implements OnInit { ...@@ -81,10 +83,20 @@ export class TeamPanelComponent implements OnInit {
} }
//增员统计 //增员统计
potentialActivityQuery() { // potentialActivityQuery() {
this.myService.potentialActivityQuery({ practitionerId: this.practitionerId }).subscribe((res) => { // this.myService.potentialActivityQuery({ practitionerId: this.practitionerId }).subscribe((res) => {
if (res['success']) { // if (res['success']) {
this.recruitingStatistics = res['data']; // this.recruitingStatistics = res['data'];
// }
// })
// }
//活动量得分统计
queryPEPScore(){
this.myService.queryPEPScore({ practitionerId: this.practitionerId }).subscribe((res)=>{
console.log(res)
if(res['success']){
this.averageData = res['data']['average'];
} }
}) })
} }
......
...@@ -21,17 +21,17 @@ ...@@ -21,17 +21,17 @@
<li></li> <li></li>
</ul> </ul>
<div style="width: 100%;text-align: center;float: left;height: 35px;" <div style="width: 100%;text-align: center;float: left;height: 35px;"
*ngIf="playerSalesActivityInfo?.length <=0"> *ngIf="personalList?.length <=0">
暂无战队成员,努力去增员吧 暂无战队成员,努力去增员吧
</div> </div>
<ul *ngFor="let playerSalesActivityItem of playerSalesActivityInfo;index as i;"> <ul *ngFor="let personalItem of personalList;index as i;">
<li><span> {{i + 1}} </span> <li><span> {{i + 1}} </span>
{{playerSalesActivityItem.name}}</li> {{personalItem.name}}</li>
<li class="day">{{playerSalesActivityItem.scoreDay!=null?playerSalesActivityItem.scoreDay:'-'}}</li> <li class="day">{{personalItem.dayScore}}</li>
<li>{{playerSalesActivityItem.scoreWeek!=null?playerSalesActivityItem.scoreWeek:'-'}}</li> <li>{{personalItem.weekScore}}</li>
<li>{{playerSalesActivityItem.scoreMonth!=null?playerSalesActivityItem.scoreMonth:'-'}}</li> <li>{{personalItem.monthScore}}</li>
<li>{{playerSalesActivityItem.addOpportunityNum!=null?playerSalesActivityItem.addOpportunityNum:'-'}}</li> <li>{{personalItem.rate}}</li>
<li><i class="iconfont icon-ar-r" style="color: #A4A4A4FF;font-size: 12px;" [routerLink]="['/scoreDeatil',playerSalesActivityItem.practitionerId]"></i></li> <li><i class="iconfont icon-ar-r" style="color: #A4A4A4FF;font-size: 12px;" [routerLink]="['/scoreDeatil',personalItem.practitionerId]"></i></li>
</ul> </ul>
</div> </div>
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
</ul> </ul>
</div> </div>
<div class="content_wrapper forecast"> <div class="content_wrapper forecast">
<ul> <ul style="border-bottom: none;">
<li class="name">姓名</li> <li class="name">姓名</li>
<li>FYP</li> <li>FYP</li>
<li>FYC</li> <li>FYC</li>
...@@ -62,7 +62,7 @@ ...@@ -62,7 +62,7 @@
暂无战队成员,努力去增员吧 暂无战队成员,努力去增员吧
</div> </div>
<ul *ngFor="let forecastItem of salesPerformanceForecastInfos;index as i;"> <ul *ngFor="let forecastItem of salesPerformanceForecastInfos;index as i;">
<li class="name">{{forecastItem.name}}</li> <li class="name"><span>{{i+1}}</span>{{forecastItem.name}}</li>
<li>{{forecastItem.premium!=null?'¥'+lifeCommonService.transform(forecastItem.premium):'-'}}</li> <li>{{forecastItem.premium!=null?'¥'+lifeCommonService.transform(forecastItem.premium):'-'}}</li>
<li>{{forecastItem.commission!=null?'¥'+lifeCommonService.transform(forecastItem.commission):'-'}}</li> <li>{{forecastItem.commission!=null?'¥'+lifeCommonService.transform(forecastItem.commission):'-'}}</li>
<li class="count">{{forecastItem.pieces!=null?forecastItem.pieces:'-'}}</li> <li class="count">{{forecastItem.pieces!=null?forecastItem.pieces:'-'}}</li>
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
overflow: hidden; overflow: hidden;
border-radius: 6px; border-radius: 6px;
color: #fff; color: #fff;
height: 135px; height: 125px;
img{ img{
width: 12%; width: 12%;
margin-left: -8%; margin-left: -8%;
...@@ -120,9 +120,15 @@ ...@@ -120,9 +120,15 @@
} }
.content_wrapper.forecast{ .content_wrapper.forecast{
ul li{ ul li{
width: 28%; width: 26%;
margin: 0; margin: 0;
overflow: hidden; overflow: hidden;
span{
position: absolute;
left: 0;
width: 15px;
text-align: center;
}
} }
ul li:nth-child(2),ul li:nth-child(3){ ul li:nth-child(2),ul li:nth-child(3){
text-align: right; text-align: right;
...@@ -134,7 +140,7 @@ ...@@ -134,7 +140,7 @@
width: 16%; width: 16%;
} }
ul li.name{ ul li.name{
width: 15%; width: 20%;
} }
} }
......
...@@ -15,6 +15,7 @@ export class TeamSalesScoreComponent implements OnInit { ...@@ -15,6 +15,7 @@ export class TeamSalesScoreComponent implements OnInit {
playerSalesActivityInfo: Array<any>; playerSalesActivityInfo: Array<any>;
selectedSalseItem: any; selectedSalseItem: any;
salesPerformanceForecastInfos: Array<any>; salesPerformanceForecastInfos: Array<any>;
personalList:Array<any>;
constructor(private activateRoute: ActivatedRoute, private router: Router, constructor(private activateRoute: ActivatedRoute, private router: Router,
private myService: MyService, public lifeCommonService: LifeCommonService) { } private myService: MyService, public lifeCommonService: LifeCommonService) { }
...@@ -24,7 +25,7 @@ export class TeamSalesScoreComponent implements OnInit { ...@@ -24,7 +25,7 @@ export class TeamSalesScoreComponent implements OnInit {
//判断显示销售得分还是销售预测 //判断显示销售得分还是销售预测
this.showType = this.activateRoute.snapshot.paramMap.get('type'); this.showType = this.activateRoute.snapshot.paramMap.get('type');
if (this.showType === 'teamSalesScore') { if (this.showType === 'teamSalesScore') {
this.playerSalesActivityQuery() this.queryPEPScore();
} }
if (this.showType === 'forecast') { if (this.showType === 'forecast') {
this.salesPerformanceForecastListQuery('m') this.salesPerformanceForecastListQuery('m')
...@@ -32,13 +33,13 @@ export class TeamSalesScoreComponent implements OnInit { ...@@ -32,13 +33,13 @@ export class TeamSalesScoreComponent implements OnInit {
} }
//获取成员销售活动量得分 //获取成员销售活动量得分
playerSalesActivityQuery() { // playerSalesActivityQuery() {
this.myService.playerSalesActivityQuery({ practitionerId: this.practitionerId }).subscribe((res) => { // this.myService.playerSalesActivityQuery({ practitionerId: this.practitionerId }).subscribe((res) => {
if (res['success']) { // if (res['success']) {
this.playerSalesActivityInfo = res['data']['playerSalesActivityInfo'] // this.playerSalesActivityInfo = res['data']['playerSalesActivityInfo']
} // }
}) // })
} // }
salesPerformanceForecastListQuery(type) { salesPerformanceForecastListQuery(type) {
this.selectedSalseItem = type; this.selectedSalseItem = type;
...@@ -52,4 +53,15 @@ export class TeamSalesScoreComponent implements OnInit { ...@@ -52,4 +53,15 @@ export class TeamSalesScoreComponent implements OnInit {
} }
}) })
} }
//活动量得分统计
queryPEPScore(){
this.myService.queryPEPScore({ practitionerId: this.practitionerId }).subscribe((res)=>{
console.log(res)
if(res['success']){
this.personalList = res['data']['personalList'];
console.log( this.personalList)
}
})
}
} }
...@@ -108,13 +108,20 @@ input::placeholder { ...@@ -108,13 +108,20 @@ input::placeholder {
} }
.timeContent{ .timeContent{
// .am-picker-col{ .am-picker-col{
// height: 102px; // height: 102px;
// .am-picker-col-mask{ // .am-picker-col-mask{
// background-size: 100% 34px!important; // background-size: 100% 34px!important;
// } // }
.am-picker-col-indicator {
// } background: #f6f6f6;
border-radius: 50px;
z-index: 0;
}
.am-picker-col-indicator::before,.am-picker-col-indicator::after{
background-color: transparent;
}
}
} }
.search_wrapper{ .search_wrapper{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment