Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
ydLife
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Sweet Zhang
ydLife
Commits
539dc04a
Commit
539dc04a
authored
May 29, 2020
by
Chao Sun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
我的目标&销售活动量&增员活动量
parent
22e86bbc
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
105 additions
and
69 deletions
+105
-69
src/app/common/life-common.service.ts
+1
-1
src/app/my/my-center-home/my-center-home.component.html
+1
-1
src/app/my/my-center-home/my-center-home.component.scss
+3
-2
src/app/my/my-target/my-target.component.html
+11
-10
src/app/my/my-target/my-target.component.scss
+11
-1
src/app/my/my-target/my-target.component.ts
+0
-1
src/app/my/recruiting-detail/recruiting-detail.component.ts
+0
-2
src/app/my/team-panel/team-panel.component.html
+42
-41
src/app/my/team-panel/team-panel.component.scss
+13
-3
src/app/my/team-panel/team-panel.component.ts
+0
-1
src/app/my/team-sales-score/team-sales-score.component.scss
+1
-1
src/app/my/team-sales-score/team-sales-score.component.ts
+0
-1
src/index.html
+22
-4
No files found.
src/app/common/life-common.service.ts
View file @
539dc04a
...
...
@@ -180,7 +180,7 @@ export class LifeCommonService {
toPercent
(
point
)
{
if
(
point
==
0
)
{
return
0
;
return
0
+
'%'
;
}
let
result
=
String
(
point
*
100
);
let
idx
=
result
.
indexOf
(
"."
);
...
...
src/app/my/my-center-home/my-center-home.component.html
View file @
539dc04a
...
...
@@ -93,7 +93,7 @@
<li>
本月
</li>
<li>
本周达成率
</li>
<li>
本月达成率
</li>
<li>
本周新增
</li>
<li>
本周新增
商机
</li>
</ul>
<ul
class=
"activities"
>
<li
class=
"markPrice"
>
{{this.activities_grade?.scoreDay}}
</li>
...
...
src/app/my/my-center-home/my-center-home.component.scss
View file @
539dc04a
...
...
@@ -192,14 +192,15 @@
display
:
flex
;
font-size
:
14px
;
li
{
width
:
2
0
%
;
width
:
2
3
%
;
text-align
:
center
;
line-height
:
25px
;
font-size
:
12px
;
color
:
#fff
;
overflow
:
hidden
;
}
li
:nth-child
(
1
),
li
:nth-child
(
2
),
li
:nth-child
(
3
)
{
width
:
1
5
%
;
width
:
1
2
%
;
}
li
.markPrice
{
color
:
#fff
;
...
...
src/app/my/my-target/my-target.component.html
View file @
539dc04a
...
...
@@ -18,6 +18,9 @@
<div
class=
"content_target"
*
ngIf=
"searchType===1"
>
<div
class=
"content_target_wrapper"
>
<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=
"content_target_item"
>
<span>
首年保费FYP
</span>
...
...
@@ -44,12 +47,10 @@
</div>
</div>
<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=
"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"
>
<span>
FYP
</span>
<input
type=
"text"
class=
"form-control"
placeholder=
"{{personalSalesReadonlyFlag?'暂无目标保费':'请输入目标保费'}}"
...
...
@@ -111,9 +112,8 @@
<div
class=
"line"
>
<div
class=
"title"
>
月增员目标
</div>
<div
class=
"month_target_item_wrapper"
*
ngFor=
"let recruitGoalForMonthItem of recruitGoalForMonthList"
>
<span
style=
"font-weight: bold;"
>
{{recruitGoalForMonthItem.month}}月增员目标
</span>
<div
class=
"content_target_item"
>
<span>
增员目标数
</span>
<span>
{{recruitGoalForMonthItem.month}}月
增员目标数
</span>
<input
type=
"number"
class=
"form-control"
placeholder=
"请输入增员目标数"
[
disabled
]="
recruitsReadonlyFlag
"
[(
ngModel
)]="
recruitGoalForMonthItem
.
numberRecruits
"
(
ngModelChange
)="
changeMonthRecruit
()"
(
blur
)="
inputBlur
()"
>
...
...
@@ -145,6 +145,9 @@
<div
class=
"content_target"
*
ngIf=
"searchType===5"
>
<div
class=
"content_target_wrapper"
>
<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=
"content_target_item"
>
<span>
首年保费FYP
</span>
...
...
@@ -170,12 +173,10 @@
</div>
</div>
<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=
"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"
>
<span>
FYP
</span>
<input
type=
"number"
class=
"form-control"
placeholder=
"{{personalSalesReadonlyFlag?'暂无目标保费':'请输入目标保费'}}"
...
...
src/app/my/my-target/my-target.component.scss
View file @
539dc04a
...
...
@@ -80,12 +80,22 @@ ul li,ol li{
flex-wrap
:
wrap
;
}
.form-control
[
disabled
],
.form-control
[
readonly
],
fieldset
[
disabled
]
.form-control
{
opacity
:
.
5
opacity
:
.
7
;
}
}
.month_target_item_wrapper
{
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
{
border
:
1px
#ddd
solid
;
...
...
src/app/my/my-target/my-target.component.ts
View file @
539dc04a
...
...
@@ -61,7 +61,6 @@ export class MyTargetComponent implements OnInit {
salesTargetMonths
:
this
.
salesTargetMonths
,
goalsType
:
goalsType
}
console
.
log
(
this
.
premium
)
for
(
let
i
=
0
;
i
<
this
.
salesTargetMonths
.
length
;
i
++
)
{
if
(
!
this
.
salesTargetMonths
[
i
][
'premium'
]
&&
this
.
salesTargetMonths
[
i
][
'premium'
]
!=
0
)
{
this
.
toastDialog
=
true
;
...
...
src/app/my/recruiting-detail/recruiting-detail.component.ts
View file @
539dc04a
...
...
@@ -114,7 +114,6 @@ export class RecruitingDetailComponent implements OnInit {
practitionerId
:
JSON
.
parse
(
localStorage
.
getItem
(
'lifeCustomerInfo'
))[
'practitionerId'
]
}
this
.
myService
.
recruitTrackQuery
(
param
).
subscribe
((
res
)
=>
{
// console.log(res)
if
(
res
[
'success'
])
{
this
.
recruitTrackInfoList
=
res
[
'data'
][
'recruitTrackInfoList'
];
}
...
...
@@ -161,7 +160,6 @@ export class RecruitingDetailComponent implements OnInit {
practitionerId
:
JSON
.
parse
(
localStorage
.
getItem
(
'lifeCustomerInfo'
))[
'practitionerId'
],
potentialId
:
this
.
potentialId
?
this
.
potentialId
:
null
}
console
.
log
(
JSON
.
parse
(
localStorage
.
getItem
(
'lifeCustomerInfo'
))[
'practitionerId'
])
if
(
!
this
.
editRecruiting
.
name
)
{
this
.
toastDialog
=
true
;
this
.
toastInfo
=
{
...
...
src/app/my/team-panel/team-panel.component.html
View file @
539dc04a
...
...
@@ -7,7 +7,7 @@
<div
class=
"taem_panel_item_wrapper"
>
<div
class=
"taem_panel_item_top"
>
<div
class=
"item_title"
>
战队业绩
战队业绩
(¥)
</div>
<ul
class=
"tab"
>
<li
[
ngClass
]="{
selected:selectedRecruitingItem=
==1}"
(
click
)="
subordinateSystemMemberQuery
(
1
)"
>
本月
</li>
...
...
@@ -17,16 +17,16 @@
</div>
<div
class=
"taem_panel_item_content"
>
<ul>
<li
>
¥
{{statisticInfo?.fyp | number: "1.0-2"}}
</li>
<li
>
¥
{{statisticInfo?.fyc | number: "1.0-2"}}
</li>
<li>
{{statisticInfo?.count | number}}
</li>
<li>
{{lifeCommonService.toPercent(statisticInfo?.completionRate) }}
</li>
<li
class=
"big"
style=
"width: 30%;"
>
{{statisticInfo?.fyp | number: "1.0-2"}}
</li>
<li
class=
"big"
style=
"width: 30%;"
>
{{statisticInfo?.fyc | number: "1.0-2"}}
</li>
<li
class=
"big"
style=
"width: 15%;"
>
{{statisticInfo?.count | number}}
</li>
<li
class=
"big"
style=
"width: 15%;"
>
{{lifeCommonService.toPercent(statisticInfo?.completionRate) }}
</li>
</ul>
<ul>
<li>
首年保费
</li>
<li>
首年佣金
</li>
<li>
件数
</li>
<li>
达成率
</li>
<li
style=
"width: 30%;"
>
首年保费
</li>
<li
style=
"width: 30%;"
>
首年佣金
</li>
<li
style=
"width: 15%;"
>
件数
</li>
<li
style=
"width: 15%;"
>
达成率
</li>
</ul>
</div>
<div
class=
"next"
>
...
...
@@ -41,11 +41,10 @@
</div>
<div
class=
"taem_panel_item_content"
>
<ul>
<li>
{{this.teamActionsData?.scoreDayAverage?this.teamActionsData?.scoreDayAverage:'0'}}
</li>
<li>
{{this.teamActionsData?.scoreWeekAverage?this.teamActionsData?.scoreWeekAverage:'0'}}
</li>
<li>
{{this.teamActionsData?.scoreMonthAverage?this.teamActionsData?.scoreMonthAverage:'0'}}
</li>
<li>
{{this.teamActionsData?.opportunitiesNum?this.teamActionsData?.opportunitiesNum:'0'}}
</li>
<li
class=
"big"
>
{{this.teamActionsData?.scoreDayAverage?this.teamActionsData?.scoreDayAverage:'0'}}
</li>
<li
class=
"big"
>
{{this.teamActionsData?.scoreWeekAverage?this.teamActionsData?.scoreWeekAverage:'0'}}
</li>
<li
class=
"big"
>
{{this.teamActionsData?.scoreMonthAverage?this.teamActionsData?.scoreMonthAverage:'0'}}
</li>
<li
class=
"big"
>
{{this.teamActionsData?.opportunitiesNum?this.teamActionsData?.opportunitiesNum:'0'}}
</li>
</ul>
<ul>
<li>
今天平均
</li>
...
...
@@ -58,57 +57,58 @@
<span
class=
"iconfont icon-ar-r"
routerLink=
"teamSalesScore"
></span>
</div>
</div>
<div
class=
"taem_panel_item_wrapper"
>
<div
class=
"taem_panel_item_top"
>
<div
class=
"item_title"
>
战队销售业绩预测
我的增员活动量
</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
class=
"taem_panel_item_content
forecast
"
>
<div
class=
"taem_panel_item_content"
>
<ul>
<li
>
¥{{premiums?lifeCommonService.transform(premiums):'0'
}}
</li>
<li
>
¥{{commission?lifeCommonService.transform(commission):'0'
}}
</li>
<li
>
{{count?count:'0'
}}
</li>
<li
>
{{completionRates?lifeCommonService.toPercent(completionRates):'0'
}}
</li>
<li
class=
"big"
>
{{recruitingStatistics?.activityForToday
}}
</li>
<li
class=
"big"
>
{{recruitingStatistics?.activityForWeek
}}
</li>
<li
class=
"big"
>
{{recruitingStatistics?.activityForMonth
}}
</li>
<li
class=
"big"
style=
"width: 30%;"
>
{{recruitingStatistics?.recruitSucceed
}}
</li>
</ul>
<ul>
<li>
{{selectedSalseItemName}}保费
</li>
<li>
{{selectedSalseItemName}}佣金
</li>
<li>
{{selectedSalseItemName}}件数
</li>
<li
>
{{selectedSalseItemName}}完成率
</li>
<li>
今天
</li>
<li>
本周
</li>
<li>
本月
</li>
<li
style=
"width: 30%;"
>
本月新增对象
</li>
</ul>
</div>
<div
class=
"next"
>
<span
class=
"iconfont icon-ar-r"
routerLink=
"
forecast
"
></span>
<span
class=
"iconfont icon-ar-r"
routerLink=
"
/recruiting
"
></span>
</div>
</div>
<div
class=
"taem_panel_item_wrapper"
>
<div
class=
"taem_panel_item_top"
>
<div
class=
"item_title"
>
我的增员活动量
战队销售业绩预测(¥)
</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
class=
"taem_panel_item_content"
>
<div
class=
"taem_panel_item_content
forecast
"
>
<ul>
<li
>
{{recruitingStatistics?.activityForToday
}}
</li>
<li
>
{{recruitingStatistics?.activityForWeek
}}
</li>
<li
>
{{recruitingStatistics?.activityForMonth
}}
</li>
<li
>
{{recruitingStatistics?.recruitSucceed
}}
</li>
<li
class=
"big"
>
{{premiums?lifeCommonService.transform(premiums):'0'
}}
</li>
<li
class=
"big"
>
{{commission?lifeCommonService.transform(commission):'0'
}}
</li>
<li
class=
"big"
>
{{count?count:'0'
}}
</li>
<li
class=
"big"
>
{{completionRates?lifeCommonService.toPercent(completionRates):'0'
}}
</li>
</ul>
<ul>
<li>
今天
</li>
<li>
本周
</li>
<li>
本月
</li>
<li>
本月新增对象
</li>
<li>
{{selectedSalseItemName}}保费
</li>
<li>
{{selectedSalseItemName}}佣金
</li>
<li>
{{selectedSalseItemName}}件数
</li>
<li>
{{selectedSalseItemName}}完成率
</li>
</ul>
</div>
<div
class=
"next"
>
<span
class=
"iconfont icon-ar-r"
routerLink=
"
/recruiting
"
></span>
<span
class=
"iconfont icon-ar-r"
routerLink=
"
forecast
"
></span>
</div>
</div>
</div>
\ No newline at end of file
src/app/my/team-panel/team-panel.component.scss
View file @
539dc04a
...
...
@@ -48,19 +48,29 @@
display
:
flex
;
justify-content
:
space-between
;
li
{
width
:
2
5
%
;
width
:
2
0
%
;
text-align
:
center
;
height
:
30px
;
line-height
:
30px
;
overflow
:
hidden
;
}
li
.big
{
font-size
:
16px
;
}
li
:nth-child
(
4
)
{
width
:
30%
;
}
}
}
.taem_panel_item_content.forecast
{
ul
li
{
width
:
22%
;
width
:
20%
;
}
ul
li
:nth-child
(
3
)
{
width
:
18%
;
}
ul
li
:nth-child
(
1
)
{
width
:
3
0%
;
width
:
4
0%
;
}
}
.next
{
...
...
src/app/my/team-panel/team-panel.component.ts
View file @
539dc04a
...
...
@@ -85,7 +85,6 @@ export class TeamPanelComponent implements OnInit {
this
.
myService
.
potentialActivityQuery
({
practitionerId
:
this
.
practitionerId
}).
subscribe
((
res
)
=>
{
if
(
res
[
'success'
])
{
this
.
recruitingStatistics
=
res
[
'data'
];
console
.
log
(
res
)
}
})
}
...
...
src/app/my/team-sales-score/team-sales-score.component.scss
View file @
539dc04a
.team_sales_detail_wrapper
{
padding
:
5px
8px
;
background
:
#eff0f1
;
overflow
:
hidden
;
overflow
:
auto
;
height
:
100%
;
ul
li
,
ol
li
{
list-style
:
none
;
...
...
src/app/my/team-sales-score/team-sales-score.component.ts
View file @
539dc04a
...
...
@@ -23,7 +23,6 @@ export class TeamSalesScoreComponent implements OnInit {
this
.
subordinateSystemName
=
sessionStorage
.
getItem
(
'subordinateSystemName'
);
//判断显示销售得分还是销售预测
this
.
showType
=
this
.
activateRoute
.
snapshot
.
paramMap
.
get
(
'type'
);
console
.
log
(
this
.
showType
)
if
(
this
.
showType
===
'teamSalesScore'
)
{
this
.
playerSalesActivityQuery
()
}
...
...
src/index.html
View file @
539dc04a
...
...
@@ -35,9 +35,9 @@
<span
style=
"letter-spacing: 12px;"
>
·
</span>
<span
style=
"letter-spacing: 12px;"
>
赢家后
</span>
盾
</div>
<
div
style=
"margin-top: 45%;"
>
欢迎回家,先喝碗鸡汤
</div
>
<
!-- <div style="margin-top: 45%;">欢迎回家,先喝碗鸡汤</div> --
>
</div>
<div
id=
"content"
style=
"font-size:18px;margin-top:
1
0%;text-align: center;padding: 0 15px;"
>
<div
id=
"content"
style=
"font-size:18px;margin-top:
3
0%;text-align: center;padding: 0 15px;"
>
</div>
</div>
...
...
@@ -50,7 +50,25 @@
<script
src=
"./assets/LCalendar/LCalendar.js"
></script>
<script
src=
"./assets/laydate/laydate.js"
></script>
<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
()
{
let
loading
=
document
.
getElementById
(
"adv"
);
loading
.
style
.
display
=
'block'
;
...
...
@@ -82,8 +100,7 @@
iframe
.
parentNode
.
removeChild
(
iframe
);
}
// var api = 'https://' + window.location.host;
var
api
=
'https://mdev.zuihuibi.cn'
;
function
getknowledgeQry
()
{
$
.
ajax
({
type
:
"POST"
,
...
...
@@ -93,6 +110,7 @@
tagId
:
35
}),
async
:
false
,
headers
:
{
"X-Authorization"
:
token
},
success
:
function
(
res
)
{
if
(
res
[
'success'
])
{
let
content
=
String
(
res
[
'data'
][
'knowledge'
][
'content'
]);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment