Commit d986ae1c by Chao Sun

龙虎榜

parent 9265ab64
...@@ -92,7 +92,8 @@ ...@@ -92,7 +92,8 @@
</div> </div>
<div class="content" *ngIf="selectedId===2"> <div class="content" *ngIf="selectedId===2">
<div style="text-align: center;font-size: 16px;margin-top: 10px;" *ngIf="opportunitySurveyAnswersList?.length==0"> <div style="text-align: center;font-size: 16px;margin-top: 10px;"
*ngIf="opportunitySurveyAnswersList?.length==0 || !opportunitySurveyAnswersList">
暂无问卷信息</div> 暂无问卷信息</div>
<div class="answerContent" *ngFor="let surveyItem of opportunitySurveyAnswersList"> <div class="answerContent" *ngFor="let surveyItem of opportunitySurveyAnswersList">
<div class="questionTitle">{{surveyItem.questionName}}</div> <div class="questionTitle">{{surveyItem.questionName}}</div>
...@@ -153,7 +154,8 @@ ...@@ -153,7 +154,8 @@
</div> </div>
<div> <div>
<div>备注</div> <div>备注</div>
<div><input type="text" class="form-control" placeholder="输入备注信息" [(ngModel)]="salesNotice"></div> <div><input type="text" id="remark" class="form-control" placeholder="输入备注信息" [(ngModel)]="salesNotice"
(blur)="inputBlur()"></div>
</div> </div>
<div> <div>
<div>跟进时间</div> <div>跟进时间</div>
......
...@@ -48,6 +48,8 @@ export class MyBusinessDetailComponent implements OnInit { ...@@ -48,6 +48,8 @@ export class MyBusinessDetailComponent implements OnInit {
//显示男 //显示男
maleFlag: boolean; maleFlag: boolean;
isShow: boolean; isShow: boolean;
//线索id
leadsAssignedId: string;
constructor(private activateRoute: ActivatedRoute, private myService: MyService, constructor(private activateRoute: ActivatedRoute, private myService: MyService,
public lifeCommonService: LifeCommonService) { public lifeCommonService: LifeCommonService) {
this.titleList = [ this.titleList = [
...@@ -62,6 +64,7 @@ export class MyBusinessDetailComponent implements OnInit { ...@@ -62,6 +64,7 @@ export class MyBusinessDetailComponent implements OnInit {
ngOnInit() { ngOnInit() {
this.orderId = this.activateRoute.snapshot.queryParams['orderId']; this.orderId = this.activateRoute.snapshot.queryParams['orderId'];
this.opportunityId = this.activateRoute.snapshot.paramMap.get('id'); this.opportunityId = this.activateRoute.snapshot.paramMap.get('id');
this.leadsAssignedId = this.activateRoute.snapshot.queryParams['leadsAssignedId'];
this.opportunityRecordId = null; this.opportunityRecordId = null;
this.tagQuery(); this.tagQuery();
this.selectTab(1); this.selectTab(1);
...@@ -232,22 +235,23 @@ export class MyBusinessDetailComponent implements OnInit { ...@@ -232,22 +235,23 @@ export class MyBusinessDetailComponent implements OnInit {
}) })
} }
ownOpportunityRecordSave() { ownOpportunityRecordSave() {
const nowDate = new Date().getTime(); const oppDate = new Date(this.opportunityRecordNoticeDate + ' 23:59:59').getTime();
const oppDate = new Date(this.opportunityRecordNoticeDate).getTime();
const createDate = new Date(this.editBusiness.opportunityDate).getTime(); const createDate = new Date(this.editBusiness.opportunityDate).getTime();
console.log('创建', createDate) console.log('创建', createDate)
console.log('跟进', oppDate) console.log('跟进', oppDate)
if (nowDate < oppDate) { // if (nowDate < oppDate) {
this.toastDialog = true; // this.toastDialog = true;
this.toastInfo = { // this.toastInfo = {
status: 1, // status: 1,
msg: '跟进时间不能大于当前时间!', // msg: '跟进时间不能大于当前时间!',
timeout: 3000, // timeout: 3000,
align: 'center' // align: 'center'
}; // };
return; // return;
} // }
if (oppDate < createDate) { if (oppDate < createDate) {
this.toastDialog = true; this.toastDialog = true;
this.toastInfo = { this.toastInfo = {
...@@ -296,7 +300,8 @@ export class MyBusinessDetailComponent implements OnInit { ...@@ -296,7 +300,8 @@ export class MyBusinessDetailComponent implements OnInit {
practitionerId: JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId'], practitionerId: JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId'],
opportunityId: this.opportunityId, opportunityId: this.opportunityId,
mdDropOptionId: this.opportunityRecordId, mdDropOptionId: this.opportunityRecordId,
noticeDate: this.opportunityRecordNoticeDate noticeDate: this.opportunityRecordNoticeDate,
leadsAssignedId: this.leadsAssignedId
} }
this.myService.ownOpportunityRecordSave(param).subscribe(res => { this.myService.ownOpportunityRecordSave(param).subscribe(res => {
if (res['success']) { if (res['success']) {
...@@ -330,6 +335,10 @@ export class MyBusinessDetailComponent implements OnInit { ...@@ -330,6 +335,10 @@ export class MyBusinessDetailComponent implements OnInit {
closeToast() { closeToast() {
this.isShow = false; this.isShow = false;
} }
inputBlur() {
window.scrollTo(0, 0)
}
} }
...@@ -8,7 +8,8 @@ ...@@ -8,7 +8,8 @@
<div></div> <div></div>
</div> --> </div> -->
<div class="salesItem" *ngFor="let businessItem of businessList" <div class="salesItem" *ngFor="let businessItem of businessList"
[routerLink]="['/business',businessItem.opportunityId]" [queryParams]="{orderId:businessItem.orderId}"> [routerLink]="['/business',businessItem.opportunityId]"
[queryParams]="{orderId:businessItem.orderId,leadsAssignedId:businessItem.leadsAssignedId}">
<div class="icon_bolck"><span class="iconfont icon-xiansuo1"></span></div> <div class="icon_bolck"><span class="iconfont icon-xiansuo1"></span></div>
<div class="line"> <div class="line">
<div>姓名:{{businessItem.name}}</div> <div>姓名:{{businessItem.name}}</div>
......
...@@ -34,10 +34,10 @@ ...@@ -34,10 +34,10 @@
<!-- <img class="bg" src="assets/images/sales__bg.png" > --> <!-- <img class="bg" src="assets/images/sales__bg.png" > -->
<div class="content"> <div class="content">
<span class="detail" (click)="jumpToDetail('sales')">明细<i class="iconfont icon-ar-r" <span class="detail" (click)="jumpToDetail()">龙虎榜<i class="iconfont icon-ar-r"
style="font-size:12px;"></i></span> style="font-size:12px;"></i></span>
<ul class="tab"> <ul class="tab">
<li *ngFor="let item of performanceList" (click)="selectRang(item.type)" <li *ngFor="let item of performanceList" (click)="selectRang(item.type,'fyp')"
[ngClass]="{selected:performanceSelectedFlag==item.type}"> [ngClass]="{selected:performanceSelectedFlag==item.type}">
<div style="position: relative;"> <div style="position: relative;">
<h3>{{item.name}} <h3>{{item.name}}
...@@ -49,18 +49,25 @@ ...@@ -49,18 +49,25 @@
<div> <div>
<ul class="performance_list title"> <ul class="performance_list title">
<li></li> <li></li>
<li>FYP</li> <li>FYP<span class="iconfont icon-xiangxia" style="font-size: 10px;margin-left: 3px;"
<li>FYC</li> (click)="selectRang(performanceSelectedFlag,'fyp')"></span></li>
<li>完成率</li> <li>FYC<span class="iconfont icon-xiangxia" style="font-size: 10px;margin-left: 3px;"
(click)="selectRang(performanceSelectedFlag,'fyc')"></span></li>
<li>件数<span class="iconfont icon-xiangxia" style="font-size: 10px;margin-left: 3px;"
(click)="selectRang(performanceSelectedFlag,'count')"></span></li>
<li>排名</li> <li>排名</li>
</ul> </ul>
<ul class="performance_list"> <ul class="performance_list">
<li>线上</li> <li>线上</li>
<li class="markPrice" style="margin-left: 7px;"> <li class="markPrice" style="margin-left: 7px;">
¥{{performanceInfo?.onlineInfo['fyp'] | number: "1.2-2"}} ¥{{performanceInfo?.fyp | number: "1.0-0"}}
</li> </li>
<li class="markPrice"> <li class="markPrice">
¥{{performanceInfo?.onlineInfo['fyc'] | number: "1.2-2"}} ¥{{performanceInfo?.fyc | number: "1.0-0"}}
</li>
<li>{{performanceInfo?.count?performanceInfo.count:'-'}}</li>
<li>
{{performanceInfo?.ranking?performanceInfo.ranking:'-'}}
</li> </li>
</ul> </ul>
<ul class="performance_list"> <ul class="performance_list">
......
...@@ -233,9 +233,10 @@ ...@@ -233,9 +233,10 @@
align-items: center; align-items: center;
width: 25%; width: 25%;
height: 60px; height: 60px;
margin-bottom: 10px;
.iconfont{ .iconfont{
color: #ff002a; color: #ff002a;
font-size: 24px; font-size: 26px;
} }
} }
} }
......
...@@ -31,6 +31,7 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit { ...@@ -31,6 +31,7 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
productInfo: Plans; productInfo: Plans;
inquiry: User; inquiry: User;
firstAnnouncementTitle: string; firstAnnouncementTitle: string;
constructor( constructor(
private router: Router, private router: Router,
private lifeCommonService: LifeCommonService, private lifeCommonService: LifeCommonService,
...@@ -52,6 +53,11 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit { ...@@ -52,6 +53,11 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
{ no: 4, subtitle: '银盾在线', icon: 'icon-yidonghulianwang2', path: `https://${window.location.host}/index`, routerLink: '' }, { no: 4, subtitle: '银盾在线', icon: 'icon-yidonghulianwang2', path: `https://${window.location.host}/index`, routerLink: '' },
{ no: 13, subtitle: '我的商机', icon: 'icon-xiansuo1', path: '', routerLink: 'business' }, { no: 13, subtitle: '我的商机', icon: 'icon-xiansuo1', path: '', routerLink: 'business' },
{ no: 12, subtitle: '我的保单', icon: 'icon-baodanyangben', path: '', routerLink: '' }, { no: 12, subtitle: '我的保单', icon: 'icon-baodanyangben', path: '', routerLink: '' },
{ no: 14, subtitle: '我的佣金', icon: 'icon-yongjin', path: '', routerLink: '' },
{ no: 15, subtitle: '', icon: '', path: '', routerLink: '' },
{ no: 16, subtitle: '', icon: '', path: '', routerLink: '' }
] ]
}, { }, {
title: '教育培训', title: '教育培训',
...@@ -79,12 +85,13 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit { ...@@ -79,12 +85,13 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
] ]
this.brokerInfoQuery(); this.brokerInfoQuery();
this.recommendPlanQuery(); this.recommendPlanQuery();
} }
ngAfterViewInit() { ngAfterViewInit() {
setTimeout(() => { setTimeout(() => {
this.firstAnnouncementTitle = this.getStr(this.hide.nativeElement.innerText, '32') this.firstAnnouncementTitle = this.getStr(this.hide.nativeElement.innerText, '32')
}, 300); }, 400);
} }
// 菜单导航 // 菜单导航
...@@ -99,7 +106,10 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit { ...@@ -99,7 +106,10 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
// } // }
else if (item.no === 12) { else if (item.no === 12) {
this.router.navigate(['/salesDetail'], { queryParams: { searchType: this.performanceSelectedFlag, showType: 'orderform' } }); this.router.navigate(['/salesDetail'], { queryParams: { searchType: this.performanceSelectedFlag, showType: 'orderform' } });
} else if (item.no === 8) { } else if (item.no === 14) {
this.router.navigate(['/salesDetail'], { queryParams: { searchType: this.performanceSelectedFlag, showType: 'sales' } });
} else if (item.no === 8 || item.no === 15 || item.no === 16) {
return; return;
} else { } else {
this.isNeedAlert = true; this.isNeedAlert = true;
...@@ -142,14 +152,15 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit { ...@@ -142,14 +152,15 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
this.router.navigate(['/login']); this.router.navigate(['/login']);
} }
//查询业绩 //查询排行
brokerInfoQuery() { brokerInfoQuery() {
const practitionerId = JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId']; const practitionerId = JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId'];
this.myService.brokerInfoQuery({ practitionerId: practitionerId }).subscribe((res) => { this.myService.brokerInfoQuery({ practitionerId: practitionerId }).subscribe((res) => {
if (res['success']) { if (res['success']) {
this.allPerformanceInfo = res['data']['commissionInfo']; this.allPerformanceInfo = res['data']['commissionInfo'];
sessionStorage.setItem('allPerformanceInfo', JSON.stringify((this.allPerformanceInfo)));
//初始化查本月业绩 //初始化查本月业绩
this.selectRang('month'); this.selectRang('month', 'fyp');
} }
}) })
} }
...@@ -174,14 +185,30 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit { ...@@ -174,14 +185,30 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
return str; return str;
} }
selectRang(e) { selectRang(e, rankType) {
if (e == 'year') { if (e == 'year') {
this.performanceInfo = this.allPerformanceInfo['thisYearInfo']; if (rankType == 'fyp') {
this.leftWidth = '30%' this.performanceInfo = this.allPerformanceInfo['thisYearInfo']['onlineInfo']['rankByFYP']['practitionerInfo'];
} else if (rankType == 'fyc') {
this.performanceInfo = this.allPerformanceInfo['thisYearInfo']['onlineInfo']['rankByFYC']['practitionerInfo'];
} else if (rankType == 'count') {
this.performanceInfo = this.allPerformanceInfo['thisYearInfo']['onlineInfo']['rankByCount']['practitionerInfo'];
} else {
return;
}
this.leftWidth = '30%';
} }
if (e == 'month') { if (e == 'month') {
this.performanceInfo = this.allPerformanceInfo['thisMonthInfo']; if (rankType == 'fyp') {
this.leftWidth = '15%' this.performanceInfo = this.allPerformanceInfo['thisMonthInfo']['onlineInfo']['rankByFYP']['practitionerInfo'];
} else if (rankType == 'fyc') {
this.performanceInfo = this.allPerformanceInfo['thisMonthInfo']['onlineInfo']['rankByFYC']['practitionerInfo'];
} else if (rankType == 'count') {
this.performanceInfo = this.allPerformanceInfo['thisMonthInfo']['onlineInfo']['rankByCount']['practitionerInfo'];
} else {
return;
}
this.leftWidth = '15%';
} }
this.performanceSelectedFlag = e; this.performanceSelectedFlag = e;
} }
...@@ -232,7 +259,7 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit { ...@@ -232,7 +259,7 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
window.location.href = `https://${window.location.host}/mk/ydviphexincoupon` window.location.href = `https://${window.location.host}/mk/ydviphexincoupon`
} }
jumpToDetail(showType) { jumpToDetail() {
this.router.navigate(['/salesDetail'], { queryParams: { searchType: this.performanceSelectedFlag, showType: showType } }); this.router.navigate(['/rank'], { queryParams: { searchType: this.performanceSelectedFlag } });
} }
} }
...@@ -10,6 +10,7 @@ import { SalesDetailComponent } from './sales-detail/sales-detail.component'; ...@@ -10,6 +10,7 @@ import { SalesDetailComponent } from './sales-detail/sales-detail.component';
import { AnnouncementDetailComponent } from './announcement-detail/announcement-detail.component'; import { AnnouncementDetailComponent } from './announcement-detail/announcement-detail.component';
import { MyBusinessComponent } from './my-business/my-business.component'; import { MyBusinessComponent } from './my-business/my-business.component';
import { MyBusinessDetailComponent } from './my-business-detail/my-business-detail.component'; import { MyBusinessDetailComponent } from './my-business-detail/my-business-detail.component';
import { SalesRankComponent } from './sales-rank/sales-rank.component';
const myRoutes: Routes = [ const myRoutes: Routes = [
{ path: '', component: MyCenterHomeComponent, canActivate: [AuthGuard] }, { path: '', component: MyCenterHomeComponent, canActivate: [AuthGuard] },
{ path: 'material', component: MkMaterialComponent, canActivate: [AuthGuard] }, { path: 'material', component: MkMaterialComponent, canActivate: [AuthGuard] },
...@@ -20,7 +21,8 @@ const myRoutes: Routes = [ ...@@ -20,7 +21,8 @@ const myRoutes: Routes = [
{ path: 'salesDetail', component: SalesDetailComponent, canActivate: [AuthGuard] }, { path: 'salesDetail', component: SalesDetailComponent, canActivate: [AuthGuard] },
{ path: 'importantAnnouncement/:id', component: AnnouncementDetailComponent, canActivate: [AuthGuard] }, { path: 'importantAnnouncement/:id', component: AnnouncementDetailComponent, canActivate: [AuthGuard] },
{ path: 'business', component: MyBusinessComponent, canActivate: [AuthGuard] }, { path: 'business', component: MyBusinessComponent, canActivate: [AuthGuard] },
{ path: 'business/:id', component: MyBusinessDetailComponent, canActivate: [AuthGuard] } { path: 'business/:id', component: MyBusinessDetailComponent, canActivate: [AuthGuard] },
{ path: 'rank', component: SalesRankComponent, canActivate: [AuthGuard] }
]; ];
@NgModule({ @NgModule({
......
...@@ -14,10 +14,11 @@ import { MyBusinessComponent } from './my-business/my-business.component'; ...@@ -14,10 +14,11 @@ import { MyBusinessComponent } from './my-business/my-business.component';
import { MyBusinessDetailComponent } from './my-business-detail/my-business-detail.component'; import { MyBusinessDetailComponent } from './my-business-detail/my-business-detail.component';
import { PickerComponent } from '../common/picker/picker.component'; import { PickerComponent } from '../common/picker/picker.component';
import { ToastComponent } from '../common/toast/toast.component'; import { ToastComponent } from '../common/toast/toast.component';
import { SalesRankComponent } from './sales-rank/sales-rank.component';
@NgModule({ @NgModule({
declarations: [MyCenterHomeComponent, MkMaterialComponent, MkMaterialDetailComponent, FileUploadComponent, ImportantAnnouncementComponent, SalesDetailComponent, AnnouncementDetailComponent, MyBusinessComponent, MyBusinessDetailComponent, PickerComponent, ToastComponent], declarations: [MyCenterHomeComponent, MkMaterialComponent, MkMaterialDetailComponent, FileUploadComponent, ImportantAnnouncementComponent, SalesDetailComponent, AnnouncementDetailComponent, MyBusinessComponent, MyBusinessDetailComponent, PickerComponent, ToastComponent, SalesRankComponent],
imports: [ imports: [
CommonModule, CommonModule,
LifeCommonModule, LifeCommonModule,
......
...@@ -39,13 +39,6 @@ export class MyService { ...@@ -39,13 +39,6 @@ export class MyService {
.post(url, JSON.stringify(paginationInfo)); .post(url, JSON.stringify(paginationInfo));
} }
//查业绩
brokerInfoQuery(practitionerId) {
const url = this.API + '/practitioner/practitionerInfoQuery';
return this.http
.post(url, JSON.stringify(practitionerId));
}
//热销产品 //热销产品
recommendPlanQuery(param) { recommendPlanQuery(param) {
const url = this.API + '/recommendPlanQuery'; const url = this.API + '/recommendPlanQuery';
...@@ -84,7 +77,7 @@ export class MyService { ...@@ -84,7 +77,7 @@ export class MyService {
}); });
} }
//经纪人修改商机跟进信息 //经纪人修改商机跟进信息
ownOpportunityRecordSave(param){ ownOpportunityRecordSave(param) {
const url = this.API + "/practitioner/ownOpportunityRecordSave"; const url = this.API + "/practitioner/ownOpportunityRecordSave";
return this.http.post(url, JSON.stringify(param)).pipe(res => { return this.http.post(url, JSON.stringify(param)).pipe(res => {
return res; return res;
...@@ -126,6 +119,18 @@ export class MyService { ...@@ -126,6 +119,18 @@ export class MyService {
}); });
} }
//查业绩排行
brokerInfoQuery(practitionerId) {
const url = this.API + '/practitioner/practitionerInfoQuery';
return this.http
.post(url, JSON.stringify(practitionerId));
}
//查保单明细
practitionerPolicyListQuery(practitionerId) {
const url = this.API + '/practitioner/practitionerPolicyListQuery';
return this.http
.post(url, JSON.stringify(practitionerId));
}
} }
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
<div class="salesContent"> <div class="salesContent">
<div class="salesItem" *ngFor="let salesDetailItem of salesDetailList" <div class="salesItem" *ngFor="let salesDetailItem of salesDetailList"
(click)="jumpToOrderdetail(salesDetailItem.orderNo)"> (click)="jumpToOrderdetail(salesDetailItem.orderNo)">
<div class="icon_bolck" *ngIf="showType==='sales'"><span class="iconfont icon-money-more"></span></div> <div class="icon_bolck" *ngIf="showType==='sales'"><span class="iconfont icon-yongjin"></span></div>
<div class="icon_bolck" *ngIf="showType==='orderform'"><span class="iconfont icon-baodanyangben" <div class="icon_bolck" *ngIf="showType==='orderform'"><span class="iconfont icon-baodanyangben"
style="font-size: 20px;"></span></div> style="font-size: 20px;"></span></div>
<div class="line"> <div class="line">
......
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
border-radius: 50%; border-radius: 50%;
.iconfont{ .iconfont{
color: #ff3500; color: #ff3500;
font-size: 26px; font-size: 22px;
position: relative; position: relative;
top: 1px; top: 1px;
} }
......
...@@ -23,30 +23,34 @@ export class SalesDetailComponent implements OnInit { ...@@ -23,30 +23,34 @@ export class SalesDetailComponent implements OnInit {
ngOnInit() { ngOnInit() {
this.searchType = this.activatedRoute.snapshot.queryParams.searchType; this.searchType = this.activatedRoute.snapshot.queryParams.searchType;
this.showType = this.activatedRoute.snapshot.queryParams.showType; this.showType = this.activatedRoute.snapshot.queryParams.showType;
console.log(this.showType) this.practitionerPolicyListQuery();
this.brokerInfoQuery();
} }
//查询业绩 //查询保单
brokerInfoQuery() { practitionerPolicyListQuery() {
const practitionerId = JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId']; const practitionerId = JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId'];
this.myService.brokerInfoQuery({ practitionerId: practitionerId }).subscribe((res) => { this.myService.practitionerPolicyListQuery({ practitionerId: practitionerId }).subscribe((res) => {
if (res['success']) { if (res['success']) {
this.allPerformanceInfo = res['data']['commissionInfo']; this.allPerformanceInfo = res['data']['policyListInfo'];
if (this.searchType === 'month') { if (this.searchType === 'month') {
this.salesDetailList = this.allPerformanceInfo['thisMonthInfo']['fortuneItemList']; if (this.allPerformanceInfo['thisMonthInfo']) {
this.salesDetailList = this.allPerformanceInfo['thisMonthInfo']['onlineInfo']['fortuneItemList'];
}
} }
if (this.searchType === 'year') { if (this.searchType === 'year') {
this.salesDetailList = this.allPerformanceInfo['thisYearInfo']['fortuneItemList']; if (this.allPerformanceInfo['thisYearInfo']['onlineInfo']) {
this.salesDetailList = this.allPerformanceInfo['thisYearInfo']['onlineInfo']['fortuneItemList'];
}
} }
} }
}) })
} }
selectRang(e) {
selectRang(e) {
this.searchType = e; this.searchType = e;
this.brokerInfoQuery() this.practitionerPolicyListQuery();
} }
jumpToOrderdetail(orderNo) { jumpToOrderdetail(orderNo) {
......
<div class="salesWrapper">
<div style="height: 35px;line-height: 35px;float: left;width: 100%;font-size: 20px;margin-bottom: 5px;">
<span class="iconfont icon-paihangbang" style="font-size: 30px;color: #ef5105;"></span> 龙虎榜
</div>
<div class="title">
<ul class="tab">
<li *ngFor="let item of performanceList" (click)="selectRang(item.type,lineType,rankType)"
[ngClass]="{selected:dateType==item.type}">
{{item.name}}
</li>
</ul>
<ul class="tab">
<li *ngFor="let listItem of list" (click)="selectRang(dateType,listItem.type,rankType)"
[ngClass]="{selected:lineType==listItem.type}">
{{listItem.name}}
</li>
</ul>
<ul class="tab">
<li *ngFor="let searchListItem of searchList" (click)="selectRang(dateType,lineType,searchListItem.type)"
[ngClass]="{selected:rankType==searchListItem.type}">
{{searchListItem.name}}
</li>
</ul>
</div>
<!-- <div class="rankContent">
<ul>
<li>排名</li>
<li>姓名</li>
<li>团队</li>
<li>FYP<span class="iconfont icon-xiangxia" (click)="selectRang(dateType,lineType,'fyp')"></span></li>
<li>FYC<span class="iconfont icon-xiangxia" (click)="selectRang(dateType,lineType,'fyc')"></span></li>
<li>件数<span class="iconfont icon-xiangxia" (click)="selectRang(dateType,lineType,'count')"></span></li>
</ul>
<ul *ngFor="let performanceItem of performanceListShow;index as i;">
<li class="icon">
<ng-container *ngIf="i<=2">
<div [ngSwitch]="i+1">
<i class="iconfont icon-huangguan1" *ngSwitchCase="1"
[ngStyle]="{'color':'#fdb941','position': 'absolute','left':'0px'}"></i>
<i class="iconfont icon-huangguan1" *ngSwitchCase="2"
[ngStyle]="{'color':'#b4b9c1','position': 'absolute','left':'0px'}"></i>
<i class="iconfont icon-huangguan1" *ngSwitchCase="3"
[ngStyle]="{'color':'#ca8a6e','position': 'absolute','left':'0px'}"></i>
<i class="iconfont icon-huangguan1" *ngSwitchDefault
[ngStyle]="{'color':'#fdb941','position': 'absolute','left':'0px'}"></i>
</div>
</ng-container>
<span style="margin-left: 8px;">{{performanceItem.rank}}</span>
</li>
<li>{{performanceItem.name}}</li>
<li>{{performanceItem.subordinateSystemName}}</li>
<li>{{performanceItem.fyp | number: "1.2-2"}}</li>
<li>{{performanceItem.fyc | number: "1.2-2"}}</li>
<li>{{performanceItem.count}}</li>
</ul>
</div> -->
<div class="rankContent">
<ul>
<li>排名</li>
<li>姓名</li>
<li>团队</li>
<li *ngIf="rankType=='fyp'">FYP</li>
<li *ngIf="rankType=='fyc'">FYC</li>
<li *ngIf="rankType=='count'">件数</li>
</ul>
<div style="width: 100%;text-align: center;float: left;" *ngIf="performanceListShow?.length <=0">暂无数据</div>
<ul *ngFor="let performanceItem of performanceListShow;index as i;">
<li class="icon">
<ng-container *ngIf="i<=2">
<div [ngSwitch]="i+1">
<i class="iconfont icon-medal" *ngSwitchCase="1"
[ngStyle]="{'color':'#fdb941','position': 'absolute','left':'7px','font-size':'35px','top':'-3px'}"></i>
<i class="iconfont icon-medal" *ngSwitchCase="2"
[ngStyle]="{'color':'#b4b9c1','position': 'absolute','left':'7px','font-size':'35px','top':'-3px'}"></i>
<i class="iconfont icon-medal" *ngSwitchCase="3"
[ngStyle]="{'color':'#ca8a6e','position': 'absolute','left':'7px','font-size':'35px','top':'-3px'}"></i>
<i class="iconfont icon-medal" *ngSwitchDefault
[ngStyle]="{'color':'#fdb941','position': 'absolute','left':'7px','font-size':'35px','top':'-3px'}"></i>
</div>
</ng-container>
<span style="margin-left: -4px;">{{performanceItem.rank}}</span>
</li>
<li>{{performanceItem.name}}</li>
<li>{{performanceItem.subordinateSystemName}}</li>
<li *ngIf="rankType=='fyp'">¥{{performanceItem.fyp | number: "1.2-2"}}</li>
<li *ngIf="rankType=='fyc'">¥{{performanceItem.fyc | number: "1.2-2"}}</li>
<li *ngIf="rankType=='count'">{{performanceItem.count}}</li>
</ul>
</div>
</div>
\ No newline at end of file
.salesWrapper{
padding: 10px 5px;
background: #f6f7f2;
height: 100%;
ul,ol{
list-style: none;
}
.title{
width: 100%;
float: left;
margin-bottom: 10px;
padding: 10px 5px;
ul.tab{
float: left;
width: 30%;
// border-right: 1px #ddd solid;
margin-right: 1%;
// margin-bottom: 10px;
li{
float: left;
// width: 20%;
margin-right: 5px;
text-align: left;
height: 30px;
line-height: 30px;
margin-right: 10%;
}
li.selected{
font-size: 16px;
font-weight: bold;
// border: 1px #e10d0d solid;
border-bottom: 2px #ff002a solid;
// border-radius: 20px;
}
}
ul.tab:nth-child(3){
width: 35%;
// margin-right: 0;
// border-right: 0;
}
// ul.tab:nth-child(2){
// float: right;
// li{
// float: right;
// }
// }
}
.rankContent{
float: left;
width: 100%;
overflow: auto;
background: #fff;
box-shadow: 0 0px 2.5px #969696;
border-radius: 6px;
padding: 5px 10px 5px 5px;
ul{
width: 100%;
li{
float: left;
width: 28%;
height: 30px;
line-height: 30px;
text-align: left;
margin-right: 1%;
position: relative;
margin-bottom: 5px;
li.icon .iconfont{
position: absolute;
}
}
li:nth-child(1){
width: 15%;
text-align: center;
}
li:nth-child(2){
width: 25%;
}
li:nth-child(4){
text-align: right;
color: #ff002a;
font-weight: bold;
font-size: 15px;
}
}
}
}
\ No newline at end of file
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { SalesRankComponent } from './sales-rank.component';
describe('SalesRankComponent', () => {
let component: SalesRankComponent;
let fixture: ComponentFixture<SalesRankComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ SalesRankComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(SalesRankComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from "@angular/router";
@Component({
selector: 'ydlife-sales-rank',
templateUrl: './sales-rank.component.html',
styleUrls: ['./sales-rank.component.scss']
})
export class SalesRankComponent implements OnInit {
performanceList: Array<any>;
dateType: any;
lineType: any;
allPerformanceInfo: any;
list: Array<any>;
performanceListShow: Array<any>;
rankType: any;
searchList: Array<any>;
constructor(private activatedRoute: ActivatedRoute) {
this.performanceList = [
{ type: 'month', name: '本月' },
{ type: 'year', name: '本年' }
]
this.list = [
{ type: 'online', name: '线上' },
{ type: 'underLine', name: '寿险' },
]
this.searchList = [
{ type: 'fyp', name: 'FYP' },
{ type: 'fyc', name: 'FYC' },
{ type: 'count', name: '件数' }
]
}
ngOnInit() {
this.dateType = this.activatedRoute.snapshot.queryParams.searchType;
this.allPerformanceInfo = JSON.parse(sessionStorage.getItem('allPerformanceInfo'));
this.selectRang(this.dateType, 'online', 'fyp')
console.log(this.allPerformanceInfo)
}
selectRang(dateType, lineType, rankType) {
this.dateType = dateType;
this.lineType = lineType;
this.rankType = rankType;
if (lineType == 'online') {
if (dateType == 'year') {
if (rankType == 'fyp') {
this.performanceListShow = this.allPerformanceInfo['thisYearInfo']['onlineInfo']['rankByFYP']['rank'];
} else if (rankType == 'fyc') {
this.performanceListShow = this.allPerformanceInfo['thisYearInfo']['onlineInfo']['rankByFYC']['rank'];
} else if (rankType == 'count') {
this.performanceListShow = this.allPerformanceInfo['thisYearInfo']['onlineInfo']['rankByCount']['rank'];
} else {
return;
}
}
if (dateType == 'month') {
if (rankType == 'fyp') {
this.performanceListShow = this.allPerformanceInfo['thisMonthInfo']['onlineInfo']['rankByFYP']['rank'];
} else if (rankType == 'fyc') {
this.performanceListShow = this.allPerformanceInfo['thisMonthInfo']['onlineInfo']['rankByFYC']['rank'];
} else if (rankType == 'count') {
this.performanceListShow = this.allPerformanceInfo['thisMonthInfo']['onlineInfo']['rankByCount']['rank'];
} else {
return;
}
console.log(this.performanceListShow)
}
} else {
this.performanceListShow = [];
}
}
}
...@@ -31,6 +31,36 @@ ...@@ -31,6 +31,36 @@
<ul class="icon_lists dib-box"> <ul class="icon_lists dib-box">
<li class="dib"> <li class="dib">
<span class="icon iconfont">&#xe6bf;</span>
<div class="name">奖牌</div>
<div class="code-name">&amp;#xe6bf;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe796;</span>
<div class="name">奖牌</div>
<div class="code-name">&amp;#xe796;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe66c;</span>
<div class="name">给父母</div>
<div class="code-name">&amp;#xe66c;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe6e4;</span>
<div class="name">KHCFDC_佣金</div>
<div class="code-name">&amp;#xe6e4;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe66d;</span>
<div class="name">排行榜</div>
<div class="code-name">&amp;#xe66d;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe66b;</span> <span class="icon iconfont">&#xe66b;</span>
<div class="name">线索</div> <div class="name">线索</div>
<div class="code-name">&amp;#xe66b;</div> <div class="code-name">&amp;#xe66b;</div>
...@@ -975,6 +1005,51 @@ ...@@ -975,6 +1005,51 @@
<ul class="icon_lists dib-box"> <ul class="icon_lists dib-box">
<li class="dib"> <li class="dib">
<span class="icon iconfont icon-medal"></span>
<div class="name">
奖牌
</div>
<div class="code-name">.icon-medal
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-jiangpai"></span>
<div class="name">
奖牌
</div>
<div class="code-name">.icon-jiangpai
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-geifumu"></span>
<div class="name">
给父母
</div>
<div class="code-name">.icon-geifumu
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-yongjin"></span>
<div class="name">
KHCFDC_佣金
</div>
<div class="code-name">.icon-yongjin
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-paihangbang"></span>
<div class="name">
排行榜
</div>
<div class="code-name">.icon-paihangbang
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-xiansuo1"></span> <span class="icon iconfont icon-xiansuo1"></span>
<div class="name"> <div class="name">
线索 线索
...@@ -2346,6 +2421,46 @@ ...@@ -2346,6 +2421,46 @@
<li class="dib"> <li class="dib">
<svg class="icon svg-icon" aria-hidden="true"> <svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-medal"></use>
</svg>
<div class="name">奖牌</div>
<div class="code-name">#icon-medal</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-jiangpai"></use>
</svg>
<div class="name">奖牌</div>
<div class="code-name">#icon-jiangpai</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-geifumu"></use>
</svg>
<div class="name">给父母</div>
<div class="code-name">#icon-geifumu</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-yongjin"></use>
</svg>
<div class="name">KHCFDC_佣金</div>
<div class="code-name">#icon-yongjin</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-paihangbang"></use>
</svg>
<div class="name">排行榜</div>
<div class="code-name">#icon-paihangbang</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-xiansuo1"></use> <use xlink:href="#icon-xiansuo1"></use>
</svg> </svg>
<div class="name">线索</div> <div class="name">线索</div>
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -6,6 +6,41 @@ ...@@ -6,6 +6,41 @@
"description": "", "description": "",
"glyphs": [ "glyphs": [
{ {
"icon_id": "5801171",
"name": "奖牌",
"font_class": "medal",
"unicode": "e6bf",
"unicode_decimal": 59071
},
{
"icon_id": "11640918",
"name": "奖牌",
"font_class": "jiangpai",
"unicode": "e796",
"unicode_decimal": 59286
},
{
"icon_id": "1793415",
"name": "给父母",
"font_class": "geifumu",
"unicode": "e66c",
"unicode_decimal": 58988
},
{
"icon_id": "9874550",
"name": "KHCFDC_佣金",
"font_class": "yongjin",
"unicode": "e6e4",
"unicode_decimal": 59108
},
{
"icon_id": "13547746",
"name": "排行榜",
"font_class": "paihangbang",
"unicode": "e66d",
"unicode_decimal": 58989
},
{
"icon_id": "12239969", "icon_id": "12239969",
"name": "线索", "name": "线索",
"font_class": "xiansuo1", "font_class": "xiansuo1",
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
<img width="20" height="20" src="assets/images/loading.gif"> <img width="20" height="20" src="assets/images/loading.gif">
</div> --> </div> -->
<div class="loadingBox" id="loading" <div class="loadingBox" id="loading"
style="display: flex;justify-content: center;align-items: center;position: fixed;left:38%;top:40%;width:100%;height: 100%;"> style="display: flex;justify-content: center;align-items: center;position: fixed;left:40%;top:40%;width:100%;height: 100%;">
<img src="assets/images/loading.gif" alt="loading" class="img-responsive" style="width: 68px;height: 68px;"> <img src="assets/images/loading.gif" alt="loading" class="img-responsive" style="width: 68px;height: 68px;">
......
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