Commit 539dc04a by Chao Sun

我的目标&销售活动量&增员活动量

parent 22e86bbc
...@@ -180,7 +180,7 @@ export class LifeCommonService { ...@@ -180,7 +180,7 @@ export class LifeCommonService {
toPercent(point) { toPercent(point) {
if (point == 0) { if (point == 0) {
return 0; return 0 + '%';
} }
let result = String(point * 100); let result = String(point * 100);
let idx = result.indexOf("."); let idx = result.indexOf(".");
......
...@@ -93,7 +93,7 @@ ...@@ -93,7 +93,7 @@
<li>本月</li> <li>本月</li>
<li>本周达成率</li> <li>本周达成率</li>
<li>本月达成率</li> <li>本月达成率</li>
<li>本周新增</li> <li>本周新增商机</li>
</ul> </ul>
<ul class="activities"> <ul class="activities">
<li class="markPrice">{{this.activities_grade?.scoreDay}}</li> <li class="markPrice">{{this.activities_grade?.scoreDay}}</li>
......
...@@ -192,14 +192,15 @@ ...@@ -192,14 +192,15 @@
display: flex; display: flex;
font-size: 14px; font-size: 14px;
li{ li{
width: 20%; width: 23%;
text-align: center; text-align: center;
line-height: 25px; line-height: 25px;
font-size: 12px; font-size: 12px;
color: #fff; color: #fff;
overflow: hidden;
} }
li:nth-child(1),li:nth-child(2),li:nth-child(3){ li:nth-child(1),li:nth-child(2),li:nth-child(3){
width: 15%; width: 12%;
} }
li.markPrice{ li.markPrice{
color: #fff; color: #fff;
......
...@@ -18,6 +18,9 @@ ...@@ -18,6 +18,9 @@
<div class="content_target" *ngIf="searchType===1"> <div class="content_target" *ngIf="searchType===1">
<div class="content_target_wrapper"> <div class="content_target_wrapper">
<div class="line"> <div class="line">
<i class="iconfont icon-bianji" *ngIf="personalSalesReadonlyFlag"
(click)="personalSalesReadonlyFlag = false;"></i>
<i class="iconfont icon-save" *ngIf="!personalSalesReadonlyFlag" (click)="salesTargetSave(1)"></i>
<div class="title">个人年度销售目标</div> <div class="title">个人年度销售目标</div>
<div class="content_target_item"> <div class="content_target_item">
<span>首年保费FYP</span> <span>首年保费FYP</span>
...@@ -44,12 +47,10 @@ ...@@ -44,12 +47,10 @@
</div> </div>
</div> </div>
<div class="line"> <div class="line">
<i class="iconfont icon-bianji" *ngIf="personalSalesReadonlyFlag"
(click)="personalSalesReadonlyFlag = false;"></i>
<i class="iconfont icon-save" *ngIf="!personalSalesReadonlyFlag" (click)="salesTargetSave(1)"></i>
<div class="title">个人月销售目标</div> <div class="title">个人月销售目标</div>
<div class="month_target_item_wrapper" *ngFor="let salesTargetMonthsItem of salesTargetMonths"> <div class="month_target_item_wrapper" *ngFor="let salesTargetMonthsItem of salesTargetMonths">
<span style="font-weight: bold;">{{salesTargetMonthsItem.monthNum}}月销售目标</span> <span class="dot" style="font-weight: bold;">{{salesTargetMonthsItem.monthNum}}月</span>
<div class="content_target_item"> <div class="content_target_item">
<span>FYP</span> <span>FYP</span>
<input type="text" class="form-control" placeholder="{{personalSalesReadonlyFlag?'暂无目标保费':'请输入目标保费'}}" <input type="text" class="form-control" placeholder="{{personalSalesReadonlyFlag?'暂无目标保费':'请输入目标保费'}}"
...@@ -111,9 +112,8 @@ ...@@ -111,9 +112,8 @@
<div class="line"> <div class="line">
<div class="title">月增员目标</div> <div class="title">月增员目标</div>
<div class="month_target_item_wrapper" *ngFor="let recruitGoalForMonthItem of recruitGoalForMonthList"> <div class="month_target_item_wrapper" *ngFor="let recruitGoalForMonthItem of recruitGoalForMonthList">
<span style="font-weight: bold;">{{recruitGoalForMonthItem.month}}月增员目标</span>
<div class="content_target_item"> <div class="content_target_item">
<span>增员目标数</span> <span>{{recruitGoalForMonthItem.month}}月增员目标数</span>
<input type="number" class="form-control" placeholder="请输入增员目标数" [disabled]="recruitsReadonlyFlag" <input type="number" class="form-control" placeholder="请输入增员目标数" [disabled]="recruitsReadonlyFlag"
[(ngModel)]="recruitGoalForMonthItem.numberRecruits" (ngModelChange)="changeMonthRecruit()" [(ngModel)]="recruitGoalForMonthItem.numberRecruits" (ngModelChange)="changeMonthRecruit()"
(blur)="inputBlur()"> (blur)="inputBlur()">
...@@ -145,6 +145,9 @@ ...@@ -145,6 +145,9 @@
<div class="content_target" *ngIf="searchType===5"> <div class="content_target" *ngIf="searchType===5">
<div class="content_target_wrapper"> <div class="content_target_wrapper">
<div class="line"> <div class="line">
<i class="iconfont icon-bianji" *ngIf="personalSalesReadonlyFlag"
(click)="personalSalesReadonlyFlag = false;"></i>
<i class="iconfont icon-save" *ngIf="!personalSalesReadonlyFlag" (click)="salesTargetSave(2)"></i>
<div class="title">团队年度销售目标</div> <div class="title">团队年度销售目标</div>
<div class="content_target_item"> <div class="content_target_item">
<span>首年保费FYP</span> <span>首年保费FYP</span>
...@@ -170,12 +173,10 @@ ...@@ -170,12 +173,10 @@
</div> </div>
</div> </div>
<div class="line"> <div class="line">
<i class="iconfont icon-bianji" *ngIf="personalSalesReadonlyFlag"
(click)="personalSalesReadonlyFlag = false;"></i>
<i class="iconfont icon-save" *ngIf="!personalSalesReadonlyFlag" (click)="salesTargetSave(2)"></i>
<div class="title">团队月销售目标</div> <div class="title">团队月销售目标</div>
<div class="month_target_item_wrapper" *ngFor="let salesTargetMonthsItem of salesTargetMonths"> <div class="month_target_item_wrapper" *ngFor="let salesTargetMonthsItem of salesTargetMonths">
<span style="font-weight: bold;">{{salesTargetMonthsItem.monthNum}}月销售目标</span> <span class="dot" style="font-weight: bold;">{{salesTargetMonthsItem.monthNum}}月</span>
<div class="content_target_item"> <div class="content_target_item">
<span>FYP</span> <span>FYP</span>
<input type="number" class="form-control" placeholder="{{personalSalesReadonlyFlag?'暂无目标保费':'请输入目标保费'}}" <input type="number" class="form-control" placeholder="{{personalSalesReadonlyFlag?'暂无目标保费':'请输入目标保费'}}"
......
...@@ -80,12 +80,22 @@ ul li,ol li{ ...@@ -80,12 +80,22 @@ ul li,ol li{
flex-wrap: wrap; flex-wrap: wrap;
} }
.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control{ .form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control{
opacity:.5 opacity:.7;
} }
} }
.month_target_item_wrapper{ .month_target_item_wrapper{
margin-bottom: 15px; margin-bottom: 15px;
.dot{
width: 30px;
height: 30px;
line-height: 30px;
background: #ff002a;
border-radius: 50%;
color: #fff;
display: block;
text-align: center;
}
} }
.content_target_monthItem{ .content_target_monthItem{
border: 1px #ddd solid; border: 1px #ddd solid;
......
...@@ -61,7 +61,6 @@ export class MyTargetComponent implements OnInit { ...@@ -61,7 +61,6 @@ export class MyTargetComponent implements OnInit {
salesTargetMonths: this.salesTargetMonths, salesTargetMonths: this.salesTargetMonths,
goalsType: goalsType goalsType: goalsType
} }
console.log(this.premium)
for (let i = 0; i < this.salesTargetMonths.length; i++) { for (let i = 0; i < this.salesTargetMonths.length; i++) {
if (!this.salesTargetMonths[i]['premium'] && this.salesTargetMonths[i]['premium'] != 0) { if (!this.salesTargetMonths[i]['premium'] && this.salesTargetMonths[i]['premium'] != 0) {
this.toastDialog = true; this.toastDialog = true;
......
...@@ -114,7 +114,6 @@ export class RecruitingDetailComponent implements OnInit { ...@@ -114,7 +114,6 @@ export class RecruitingDetailComponent implements OnInit {
practitionerId: JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId'] practitionerId: JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId']
} }
this.myService.recruitTrackQuery(param).subscribe((res) => { this.myService.recruitTrackQuery(param).subscribe((res) => {
// console.log(res)
if (res['success']) { if (res['success']) {
this.recruitTrackInfoList = res['data']['recruitTrackInfoList']; this.recruitTrackInfoList = res['data']['recruitTrackInfoList'];
} }
...@@ -161,7 +160,6 @@ export class RecruitingDetailComponent implements OnInit { ...@@ -161,7 +160,6 @@ export class RecruitingDetailComponent implements OnInit {
practitionerId: JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId'], practitionerId: JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId'],
potentialId: this.potentialId ? this.potentialId : null potentialId: this.potentialId ? this.potentialId : null
} }
console.log(JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId'])
if (!this.editRecruiting.name) { if (!this.editRecruiting.name) {
this.toastDialog = true; this.toastDialog = true;
this.toastInfo = { this.toastInfo = {
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
<div class="taem_panel_item_wrapper"> <div class="taem_panel_item_wrapper">
<div class="taem_panel_item_top"> <div class="taem_panel_item_top">
<div class="item_title"> <div class="item_title">
战队业绩 战队业绩(¥)
</div> </div>
<ul class="tab"> <ul class="tab">
<li [ngClass]="{selected:selectedRecruitingItem===1}" (click)="subordinateSystemMemberQuery(1)">本月</li> <li [ngClass]="{selected:selectedRecruitingItem===1}" (click)="subordinateSystemMemberQuery(1)">本月</li>
...@@ -17,16 +17,16 @@ ...@@ -17,16 +17,16 @@
</div> </div>
<div class="taem_panel_item_content"> <div class="taem_panel_item_content">
<ul> <ul>
<li>{{statisticInfo?.fyp | number: "1.0-2"}}</li> <li class="big" style="width: 30%;">{{statisticInfo?.fyp | number: "1.0-2"}}</li>
<li>{{statisticInfo?.fyc | number: "1.0-2"}}</li> <li class="big" style="width: 30%;">{{statisticInfo?.fyc | number: "1.0-2"}}</li>
<li>{{statisticInfo?.count | number}}</li> <li class="big" style="width: 15%;">{{statisticInfo?.count | number}}</li>
<li>{{lifeCommonService.toPercent(statisticInfo?.completionRate) }}</li> <li class="big" style="width: 15%;">{{lifeCommonService.toPercent(statisticInfo?.completionRate) }}</li>
</ul> </ul>
<ul> <ul>
<li>首年保费</li> <li style="width: 30%;">首年保费</li>
<li>首年佣金</li> <li style="width: 30%;">首年佣金</li>
<li>件数</li> <li style="width: 15%;">件数</li>
<li>达成率</li> <li style="width: 15%;">达成率</li>
</ul> </ul>
</div> </div>
<div class="next"> <div class="next">
...@@ -41,11 +41,10 @@ ...@@ -41,11 +41,10 @@
</div> </div>
<div class="taem_panel_item_content"> <div class="taem_panel_item_content">
<ul> <ul>
<li>{{this.teamActionsData?.scoreDayAverage?this.teamActionsData?.scoreDayAverage:'0'}}</li> <li class="big">{{this.teamActionsData?.scoreDayAverage?this.teamActionsData?.scoreDayAverage:'0'}}</li>
<li>{{this.teamActionsData?.scoreWeekAverage?this.teamActionsData?.scoreWeekAverage:'0'}}</li> <li class="big">{{this.teamActionsData?.scoreWeekAverage?this.teamActionsData?.scoreWeekAverage:'0'}}</li>
<li>{{this.teamActionsData?.scoreMonthAverage?this.teamActionsData?.scoreMonthAverage:'0'}} <li class="big">{{this.teamActionsData?.scoreMonthAverage?this.teamActionsData?.scoreMonthAverage:'0'}}</li>
</li> <li class="big">{{this.teamActionsData?.opportunitiesNum?this.teamActionsData?.opportunitiesNum:'0'}}</li>
<li>{{this.teamActionsData?.opportunitiesNum?this.teamActionsData?.opportunitiesNum:'0'}}</li>
</ul> </ul>
<ul> <ul>
<li>今天平均</li> <li>今天平均</li>
...@@ -58,57 +57,58 @@ ...@@ -58,57 +57,58 @@
<span class="iconfont icon-ar-r" routerLink="teamSalesScore"></span> <span class="iconfont icon-ar-r" routerLink="teamSalesScore"></span>
</div> </div>
</div> </div>
<div class="taem_panel_item_wrapper"> <div class="taem_panel_item_wrapper">
<div class="taem_panel_item_top"> <div class="taem_panel_item_top">
<div class="item_title"> <div class="item_title">
战队销售业绩预测 我的增员活动量
</div> </div>
<ul class="tab">
<li [ngClass]="{selected:selectedSalseItem==='month'}" (click)="selectSales('month')">本月</li>
<li [ngClass]="{selected:selectedSalseItem==='quarter'}" (click)="selectSales('quarter')">本季</li>
<li [ngClass]="{selected:selectedSalseItem==='year'}" (click)="selectSales('year')">本年</li>
</ul>
</div> </div>
<div class="taem_panel_item_content forecast"> <div class="taem_panel_item_content">
<ul> <ul>
<li>¥{{premiums?lifeCommonService.transform(premiums):'0'}}</li> <li class="big">{{recruitingStatistics?.activityForToday}}</li>
<li>¥{{commission?lifeCommonService.transform(commission):'0'}}</li> <li class="big">{{recruitingStatistics?.activityForWeek}}</li>
<li>{{count?count:'0'}}</li> <li class="big">{{recruitingStatistics?.activityForMonth}}</li>
<li>{{completionRates?lifeCommonService.toPercent(completionRates):'0'}}</li> <li class="big" style="width: 30%;">{{recruitingStatistics?.recruitSucceed}}</li>
</ul> </ul>
<ul> <ul>
<li>{{selectedSalseItemName}}保费</li> <li>今天</li>
<li>{{selectedSalseItemName}}佣金</li> <li>本周</li>
<li>{{selectedSalseItemName}}件数</li> <li>本月</li>
<li>{{selectedSalseItemName}}完成率</li> <li style="width: 30%;">本月新增对象</li>
</ul> </ul>
</div> </div>
<div class="next"> <div class="next">
<span class="iconfont icon-ar-r" routerLink="forecast"></span> <span class="iconfont icon-ar-r" routerLink="/recruiting"></span>
</div> </div>
</div> </div>
<div class="taem_panel_item_wrapper"> <div class="taem_panel_item_wrapper">
<div class="taem_panel_item_top"> <div class="taem_panel_item_top">
<div class="item_title"> <div class="item_title">
我的增员活动量 战队销售业绩预测(¥)
</div> </div>
<ul class="tab">
<li [ngClass]="{selected:selectedSalseItem==='month'}" (click)="selectSales('month')">本月</li>
<li [ngClass]="{selected:selectedSalseItem==='quarter'}" (click)="selectSales('quarter')">本季</li>
<li [ngClass]="{selected:selectedSalseItem==='year'}" (click)="selectSales('year')">本年</li>
</ul>
</div> </div>
<div class="taem_panel_item_content"> <div class="taem_panel_item_content forecast">
<ul> <ul>
<li>{{recruitingStatistics?.activityForToday}}</li> <li class="big">{{premiums?lifeCommonService.transform(premiums):'0'}}</li>
<li>{{recruitingStatistics?.activityForWeek}}</li> <li class="big">{{commission?lifeCommonService.transform(commission):'0'}}</li>
<li>{{recruitingStatistics?.activityForMonth}}</li> <li class="big">{{count?count:'0'}}</li>
<li>{{recruitingStatistics?.recruitSucceed}}</li> <li class="big">{{completionRates?lifeCommonService.toPercent(completionRates):'0'}}</li>
</ul> </ul>
<ul> <ul>
<li>今天</li> <li>{{selectedSalseItemName}}保费</li>
<li>本周</li> <li>{{selectedSalseItemName}}佣金</li>
<li>本月</li> <li>{{selectedSalseItemName}}件数</li>
<li>本月新增对象</li> <li>{{selectedSalseItemName}}完成率</li>
</ul> </ul>
</div> </div>
<div class="next"> <div class="next">
<span class="iconfont icon-ar-r" routerLink="/recruiting"></span> <span class="iconfont icon-ar-r" routerLink="forecast"></span>
</div> </div>
</div> </div>
</div> </div>
\ No newline at end of file
...@@ -48,19 +48,29 @@ ...@@ -48,19 +48,29 @@
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
li{ li{
width: 25%; width: 20%;
text-align: center; text-align: center;
height: 30px; height: 30px;
line-height: 30px; line-height: 30px;
overflow: hidden;
}
li.big{
font-size: 16px;
}
li:nth-child(4){
width: 30%;
} }
} }
} }
.taem_panel_item_content.forecast{ .taem_panel_item_content.forecast{
ul li{ ul li{
width: 22%; width: 20%;
}
ul li:nth-child(3){
width: 18%;
} }
ul li:nth-child(1){ ul li:nth-child(1){
width: 30%; width: 40%;
} }
} }
.next{ .next{
......
...@@ -85,7 +85,6 @@ export class TeamPanelComponent implements OnInit { ...@@ -85,7 +85,6 @@ export class TeamPanelComponent implements OnInit {
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'];
console.log(res)
} }
}) })
} }
......
.team_sales_detail_wrapper{ .team_sales_detail_wrapper{
padding: 5px 8px; padding: 5px 8px;
background: #eff0f1; background: #eff0f1;
overflow: hidden; overflow: auto;
height: 100%; height: 100%;
ul li,ol li{ ul li,ol li{
list-style: none; list-style: none;
......
...@@ -23,7 +23,6 @@ export class TeamSalesScoreComponent implements OnInit { ...@@ -23,7 +23,6 @@ export class TeamSalesScoreComponent implements OnInit {
this.subordinateSystemName = sessionStorage.getItem('subordinateSystemName'); this.subordinateSystemName = sessionStorage.getItem('subordinateSystemName');
//判断显示销售得分还是销售预测 //判断显示销售得分还是销售预测
this.showType = this.activateRoute.snapshot.paramMap.get('type'); this.showType = this.activateRoute.snapshot.paramMap.get('type');
console.log(this.showType)
if (this.showType === 'teamSalesScore') { if (this.showType === 'teamSalesScore') {
this.playerSalesActivityQuery() this.playerSalesActivityQuery()
} }
......
...@@ -35,9 +35,9 @@ ...@@ -35,9 +35,9 @@
<span style="letter-spacing: 12px;">·</span> <span style="letter-spacing: 12px;">·</span>
<span style="letter-spacing: 12px;">赢家后</span> <span style="letter-spacing: 12px;">赢家后</span>
</div> </div>
<div style="margin-top: 45%;">欢迎回家,先喝碗鸡汤</div> <!-- <div style="margin-top: 45%;">欢迎回家,先喝碗鸡汤</div> -->
</div> </div>
<div id="content" style="font-size:18px;margin-top: 10%;text-align: center;padding: 0 15px;"> <div id="content" style="font-size:18px;margin-top: 30%;text-align: center;padding: 0 15px;">
</div> </div>
</div> </div>
...@@ -50,7 +50,25 @@ ...@@ -50,7 +50,25 @@
<script src="./assets/LCalendar/LCalendar.js"></script> <script src="./assets/LCalendar/LCalendar.js"></script>
<script src="./assets/laydate/laydate.js"></script> <script src="./assets/laydate/laydate.js"></script>
<script type="text/javascript"> <script type="text/javascript">
var api = 'https://' + window.location.host;
// var api = 'https://mstage.zuihuibi.cn';
function getToken() {
$.ajax({
type: "POST",
url: api + '/api/authorize/obtainToken',
contentType: "application/json",
data: JSON.stringify({
ticket: 'life'
}),
async: false,
success: function (res) {
token = res.data.token
}
})
return token;
}
var token = getToken();
const initialize = function () { const initialize = function () {
let loading = document.getElementById("adv"); let loading = document.getElementById("adv");
loading.style.display = 'block'; loading.style.display = 'block';
...@@ -82,8 +100,7 @@ ...@@ -82,8 +100,7 @@
iframe.parentNode.removeChild(iframe); iframe.parentNode.removeChild(iframe);
} }
// var api = 'https://' + window.location.host;
var api = 'https://mdev.zuihuibi.cn';
function getknowledgeQry() { function getknowledgeQry() {
$.ajax({ $.ajax({
type: "POST", type: "POST",
...@@ -93,6 +110,7 @@ ...@@ -93,6 +110,7 @@
tagId: 35 tagId: 35
}), }),
async: false, async: false,
headers: { "X-Authorization": token },
success: function (res) { success: function (res) {
if (res['success']) { if (res['success']) {
let content = String(res['data']['knowledge']['content']); let content = String(res['data']['knowledge']['content']);
......
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