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
92b442f8
Commit
92b442f8
authored
May 12, 2020
by
Chao Sun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
我的增员
parent
07cdf86e
Show whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
345 additions
and
121 deletions
+345
-121
package.json
+1
-1
src/app/common/life-common.service.ts
+0
-35
src/app/domain/recruitingQuery.ts
+22
-0
src/app/my/mk-material-detail/mk-material-detail.component.ts
+9
-9
src/app/my/my-business-detail/my-business-detail.component.html
+49
-20
src/app/my/my-business-detail/my-business-detail.component.scss
+7
-0
src/app/my/my-business-detail/my-business-detail.component.ts
+22
-1
src/app/my/my-business/my-business.component.html
+5
-1
src/app/my/my-business/my-business.component.scss
+21
-0
src/app/my/my-business/my-business.component.ts
+5
-2
src/app/my/my-center-home/my-center-home.component.ts
+14
-13
src/app/my/my-routing.module.ts
+1
-1
src/app/my/my.service.ts
+27
-3
src/app/my/recruiting-detail/recruiting-detail.component.html
+28
-26
src/app/my/recruiting-detail/recruiting-detail.component.scss
+1
-2
src/app/my/recruiting-detail/recruiting-detail.component.ts
+84
-5
src/app/my/recruiting/recruiting.component.html
+9
-0
src/app/my/recruiting/recruiting.component.scss
+22
-0
src/app/my/recruiting/recruiting.component.ts
+15
-2
src/environments/environment.prod.ts
+1
-0
src/environments/environment.stage.ts
+1
-0
src/environments/environment.ts
+1
-0
No files found.
package.json
View file @
92b442f8
...
...
@@ -3,7 +3,7 @@
"version"
:
"0.0.0"
,
"scripts"
:
{
"ng"
:
"ng"
,
"start"
:
"ng serve --host 192.168.1.
169
"
,
"start"
:
"ng serve --host 192.168.1.
25
"
,
"build"
:
"ng build -c=dev --prod"
,
"test"
:
"ng test"
,
"lint"
:
"ng lint"
,
...
...
src/app/common/life-common.service.ts
View file @
92b442f8
...
...
@@ -153,39 +153,4 @@ export class LifeCommonService {
return
str
.
replace
(
/<
[^
>
]
+>/g
,
""
);
//去掉所有的html标记
}
checkStr
(
str
)
{
if
(
str
==
'0'
)
{
return
'待跟进'
;
}
if
(
str
==
'95'
)
{
return
'打电话'
;
}
if
(
str
==
'96'
)
{
return
'加微信沟通'
;
}
if
(
str
==
'97'
)
{
return
'约好见面'
;
}
if
(
str
==
'98'
)
{
return
'邀请参加活动'
;
}
if
(
str
==
'99'
)
{
return
'提交建议书'
;
}
if
(
str
==
'100'
)
{
return
'方案解读'
;
}
if
(
str
==
'101'
)
{
return
'成交'
;
}
if
(
str
==
'102'
)
{
return
'拒绝'
;
}
if
(
str
==
'103'
)
{
return
'客户还在考虑'
;
}
if
(
str
==
'104'
)
{
return
'客户买了其他'
;
}
}
}
src/app/domain/recruitingQuery.ts
0 → 100644
View file @
92b442f8
export
class
RecruitingQuery
{
constructor
(
public
name
?:
string
,
public
gender
?:
any
,
public
age
?:
string
,
public
mobileNo
?:
string
,
public
wechatId
?:
string
,
public
qqId
?:
string
,
public
otherContacts
?:
string
,
public
educationLevel
?:
string
,
public
resourceDropMasterId
?:
string
,
public
introducer
?:
string
,
public
tag
?:
string
,
public
remark
?:
string
,
public
ossPathResume
?:
string
,
public
assignedId
?:
string
,
public
operateUserId
?:
string
,
public
potentialId
?:
string
)
{
}
}
\ No newline at end of file
src/app/my/mk-material-detail/mk-material-detail.component.ts
View file @
92b442f8
import
{
Component
,
ElementRef
,
OnInit
,
ViewChild
}
from
'@angular/core'
;
import
{
ActivatedRoute
}
from
'@angular/router'
;
import
{
environment
}
from
'../../../environments/environment'
;
import
{
LifeCommonService
}
from
'../../common/life-common.service'
;
import
{
MyService
}
from
'../my.service'
;
import
{
Component
,
ElementRef
,
OnInit
,
ViewChild
}
from
'@angular/core'
;
import
{
ActivatedRoute
}
from
'@angular/router'
;
import
{
environment
}
from
'../../../environments/environment'
;
import
{
LifeCommonService
}
from
'../../common/life-common.service'
;
import
{
MyService
}
from
'../my.service'
;
declare
var
QRCode
:
any
;
...
...
@@ -71,7 +71,7 @@ export class MkMaterialDetailComponent implements OnInit {
if
(
this
.
lifeCustomerInfo
.
practitionerBasicInfo
.
headImagePath
)
{
avatarImg
.
src
=
this
.
lifeCustomerInfo
.
practitionerBasicInfo
.
headImagePath
+
'?v='
+
new
Date
().
getTime
();
}
else
{
avatarImg
.
src
=
`
${
environment
.
ORIG
INNAME
}
/assets/img/meng.png?v=
${
new
Date
().
getTime
()}
`
;
avatarImg
.
src
=
`
${
environment
.
DOMA
INNAME
}
/assets/img/meng.png?v=
${
new
Date
().
getTime
()}
`
;
}
// 这里的第一张图片就是可以是你们的海报 这里注意绘制的顺序 我们要手动控制
img
.
src
=
this
.
productPosterPath
;
...
...
@@ -226,7 +226,7 @@ export class MkMaterialDetailComponent implements OnInit {
shareCode
:
shareCodeUuid
,
customerId
:
this
.
lifeCustomerInfo
.
customerId
,
productId
:
this
.
materialItemId
,
url
:
`
${
environment
.
ORIG
INNAME
}
/life/
${
this
.
materialItemId
}
?shareCode=
${
shareCodeUuid
}
`
url
:
`
${
environment
.
DOMA
INNAME
}
/life/
${
this
.
materialItemId
}
?shareCode=
${
shareCodeUuid
}
`
};
if
(
itemType
==
'2'
)
{
this
.
shareInfo
.
productId
=
null
;
...
...
@@ -235,9 +235,9 @@ export class MkMaterialDetailComponent implements OnInit {
// 0是有plan,1是无plan
if
(
posterInfo
.
isPlan
==
'0'
)
{
if
(
posterInfo
.
productCategoryId
==
'2'
)
{
this
.
shareInfo
.
url
=
`
${
environment
.
ORIG
INNAME
}
/hProductDetail/
${
this
.
materialItemId
}
?shareCode=
${
shareCodeUuid
}
&type=7`
;
this
.
shareInfo
.
url
=
`
${
environment
.
DOMA
INNAME
}
/hProductDetail/
${
this
.
materialItemId
}
?shareCode=
${
shareCodeUuid
}
&type=7`
;
}
else
if
(
posterInfo
.
productCategoryId
==
'5'
)
{
this
.
shareInfo
.
url
=
`
${
environment
.
ORIG
INNAME
}
/hProductDetail/
${
this
.
materialItemId
}
?shareCode=
${
shareCodeUuid
}
&type=9`
;
this
.
shareInfo
.
url
=
`
${
environment
.
DOMA
INNAME
}
/hProductDetail/
${
this
.
materialItemId
}
?shareCode=
${
shareCodeUuid
}
&type=9`
;
}
}
// 发送请求保存分享码
...
...
src/app/my/my-business-detail/my-business-detail.component.html
View file @
92b442f8
...
...
@@ -12,7 +12,7 @@
<i
class=
"iconfont icon-bianji"
*
ngIf=
"readonlyFlag"
(
click
)="
editInfo
()"
></i>
<i
class=
"iconfont icon-save"
*
ngIf=
"!readonlyFlag"
(
click
)="
saveInfo
()"
></i>
<div
class=
"contentDetail"
>
<div
class=
"
first
"
>
<div
class=
"
wrapper_item
"
>
<div
class=
"contentItem"
>
<span>
姓名
</span>
<input
class=
"form-control"
type=
"text"
placeholder=
"{{readonlyFlag ?'暂无姓名':'请输入姓名'}}"
...
...
@@ -34,9 +34,25 @@
</button>
</div>
<input
class=
"form-control"
type=
"text"
placeholder=
"暂无性别信息"
*
ngIf=
"!sexFlag"
disabled
/>
</div>
<div
class=
"contentItem"
>
<span>
城市
</span>
<input
class=
"form-control"
type=
"text"
placeholder=
"{{readonlyFlag ?'暂无城市信息':'请输入城市'}}"
[(
ngModel
)]="
editBusiness
.
address
"
[
disabled
]="
readonlyFlag
"
(
blur
)="
inputBlur
()"
/>
</div>
<div
class=
"contentItem"
>
<span>
血型
</span>
<input
class=
"form-control"
type=
"text"
placeholder=
"{{readonlyFlag ?'暂无血型信息':'请选择血型'}}"
[
disabled
]="
readonlyFlag
"
(
blur
)="
inputBlur
()"
/>
</div>
<div
class=
"contentItem"
>
<span>
星座
</span>
<input
class=
"form-control"
type=
"text"
placeholder=
"{{readonlyFlag ?'暂无星座信息':'请选择星座'}}"
[
disabled
]="
readonlyFlag
"
(
blur
)="
inputBlur
()"
/>
</div>
</div>
<div
class=
"wrapper_item"
>
<div
class=
"contentItem"
>
<span>
手机
</span>
<a
style=
"text-decoration:none;color: #333;margin-right: 16px;"
href=
"tel:{{editBusiness.mobileNo}}"
>
<i
class=
"iconfont icon-dianhua"
style=
"color: #e10d0d;"
></i>
...
...
@@ -54,20 +70,31 @@
<input
class=
"form-control"
type=
"text"
placeholder=
"{{readonlyFlag ?'暂无其他联系方式':'请输入其他联系方式'}}"
[(
ngModel
)]="
editBusiness
.
otherContacts
"
[
disabled
]="
readonlyFlag
"
(
blur
)="
inputBlur
()"
/>
</div>
</div>
<div
class=
"wrapper_item"
>
<div
class=
"contentItem"
>
<span>
城市
</span>
<input
class=
"form-control"
type=
"text"
placeholder=
"{{readonlyFlag ?'暂无
城市信息':'请输入城市
'}}"
[
(
ngModel
)]="
editBusiness
.
address
"
[
disabled
]="
readonlyFlag
"
(
blur
)="
inputBlur
()
"
/>
<span>
预计FYP
</span>
<input
class=
"form-control"
type=
"text"
placeholder=
"{{readonlyFlag ?'暂无
预计FYP':'请输入预计FYP
'}}"
[
disabled
]="
readonlyFlag
"
/>
</div>
<div
class=
"contentItem"
>
<span>
预计FYC
</span>
<input
class=
"form-control"
type=
"text"
placeholder=
"{{readonlyFlag ?'暂无预计FYC':'请输入预计FYP'}}"
[
disabled
]="
readonlyFlag
"
/>
</div>
<div
class=
"second"
>
<div
class=
"contentItem"
>
<span>
城市
</span>
<input
class=
"form-control"
type=
"text"
placeholder=
"{{readonlyFlag ?'暂无城市信息':'请输入城市'}}"
[(
ngModel
)]="
editBusiness
.
address
"
[
disabled
]="
readonlyFlag
"
(
blur
)="
inputBlur
()"
/>
<span>
预计成交件数
</span>
<input
class=
"form-control"
type=
"text"
placeholder=
"{{readonlyFlag ?'暂无预计件数':'请输入预计件数'}}"
[
disabled
]="
readonlyFlag
"
/>
</div>
<div
class=
"contentItem"
>
<span>
预计成交时间
</span>
<input
class=
"form-control"
type=
"text"
placeholder=
"{{readonlyFlag ?'暂无预计成交时间':'请输入预计成交时间'}}"
[
disabled
]="
readonlyFlag
"
/>
</div>
</div>
<div
class=
"wrapper_item"
>
<div
class=
"contentItem"
>
<span>
商机来源
</span>
<input
class=
"form-control"
type=
"text"
[(
ngModel
)]="
editBusiness
.
sourceChannel
"
disabled
/>
...
...
@@ -80,13 +107,22 @@
<div
class=
"contentItem"
>
<span>
商机状态
</span>
<div
style=
"padding: 6px 15px;padding: 6px 15px;color: #e10d0d;font-weight: bold;"
>
{{lifeCommonService.checkStr(editBusiness.mdDropOptionId)
}}
</div>
{{editBusiness.mdDropOptionName?editBusiness.mdDropOptionName:'待跟进'
}}
</div>
</div>
</div>
<!-- <div class="contentItem">
<span>标签</span>
<input class="form-control" type="text" placeholder="标签" [(ngModel)]="editBusiness.name"
[disabled]="readonlyFlag" />
</div> -->
<div
class=
"wrapper_item"
style=
"border: none;margin-bottom: 0;"
>
<div
class=
"contentItem"
>
<span>
备注
</span>
<div
style=
"padding: 6px 15px;padding: 6px 15px;color: #e10d0d;font-weight: bold;"
>
{{editBusiness.mdDropOptionName?editBusiness.mdDropOptionName:'待跟进'}}
</div>
</div>
</div>
</div>
<div
class=
"tagWrapper"
>
<div
style=
"width: 100%;height: 34px;line-height: 34px;"
>
标签
</div>
...
...
@@ -118,18 +154,11 @@
<li
*
ngFor=
"let opportunityRecordItem of opportunityRecordInfos"
>
<div
style=
"display: flex;justify-content: space-between;"
>
<div
class=
"updatedAt"
>
{{opportunityRecordItem.noticeDate}}
</div>
<div
class=
"opportunityRecordItem"
>
{{lifeCommonService.checkStr(opportunityRecordItem.mdDropOptionId)}}
</div>
<div
class=
"opportunityRecordItem"
>
{{opportunityRecordItem.mdDropOptionName?opportunityRecordItem.mdDropOptionName:'待跟进'}}
</div>
</div>
<div
class=
"salesNotice"
>
{{opportunityRecordItem.salesNotice}}
</div>
</li>
<!-- 待跟进状态永远显示在列表最下面 -->
<!-- <li>
<div style="display: flex;justify-content: space-between;">
<div>{{(editBusiness.opportunityDate).substr(0,10)}}</div>
<div>{{lifeCommonService.checkStr(editBusiness.mdDropOptionId)}}</div>
</div>
<div class="salesNotice">商机状态</div>
</li> -->
<li>
<div
class=
"salesNotice"
>
{{(editBusiness.opportunityDate).substr(0,10)}}
</div>
<div
style=
"display: flex;justify-content: space-between;"
>
...
...
src/app/my/my-business-detail/my-business-detail.component.scss
View file @
92b442f8
...
...
@@ -41,9 +41,13 @@
background
:
#0767bf
;
text-align
:
center
;
bottom
:
30px
;
left
:
42%
;
}
.contentDetail
{
margin-top
:
15px
;
.wrapper_item
{
border-bottom
:
1px
#ddd
solid
;
margin-bottom
:
10px
;
.contentItem
{
display
:
flex
;
margin-bottom
:
10px
;
...
...
@@ -91,6 +95,8 @@
border-bottom
:
none
;
}
}
}
.tagWrapper
{
display
:
flex
;
flex-wrap
:
wrap
;
...
...
@@ -126,6 +132,7 @@
font-size
:
28px
;
// color: #ff5933;
font-weight
:
bold
;
}
}
.answerContent
{
...
...
src/app/my/my-business-detail/my-business-detail.component.ts
View file @
92b442f8
...
...
@@ -4,6 +4,7 @@ import { ActivatedRoute } from "@angular/router";
import
{
BusinessQuery
}
from
'../../domain/businessQuery'
;
import
{
LifeCommonService
}
from
'../../common/life-common.service'
;
@
Component
({
selector
:
'ydlife-my-business-detail'
,
templateUrl
:
'./my-business-detail.component.html'
,
...
...
@@ -50,6 +51,8 @@ export class MyBusinessDetailComponent implements OnInit {
isShow
:
boolean
;
//线索id
leadsAssignedId
:
string
;
//控制tab可不可点
clickFlag
:
boolean
;
constructor
(
private
activateRoute
:
ActivatedRoute
,
private
myService
:
MyService
,
public
lifeCommonService
:
LifeCommonService
)
{
this
.
titleList
=
[
...
...
@@ -66,13 +69,26 @@ export class MyBusinessDetailComponent implements OnInit {
this
.
leadsAssignedId
=
this
.
activateRoute
.
snapshot
.
queryParams
[
'leadsAssignedId'
];
this
.
opportunityRecordId
=
null
;
this
.
tagQuery
();
this
.
selectTab
(
1
);
this
.
dropOptionsQuery
();
//新增商机
if
(
Number
(
this
.
opportunityId
)
===
0
)
{
this
.
readonlyFlag
=
false
;
this
.
sexFlag
=
true
;
this
.
maleFlag
=
true
;
this
.
femaleFlag
=
true
;
this
.
clickFlag
=
false
;
this
.
selectTab
(
1
);
}
else
{
this
.
clickFlag
=
true
;
this
.
selectTab
(
1
);
//查询商机
setTimeout
(()
=>
{
this
.
ownOpportunityDetailQuery
();
},
300
)
}
}
//改为编辑状态出现男女选项
editInfo
()
{
this
.
readonlyFlag
=
false
;
...
...
@@ -82,12 +98,17 @@ export class MyBusinessDetailComponent implements OnInit {
}
selectTab
(
id
)
{
if
(
this
.
clickFlag
==
true
)
{
this
.
selectedId
=
id
;
if
(
id
===
4
)
{
if
(
this
.
isCompletedQuestionnaire
==
3
)
{
window
.
location
.
href
=
`https://
${
window
.
location
.
host
}
/customizedPlanList/3?orderId=
${
this
.
orderId
}
&customerId=
${
this
.
opportunityId
}
`
}
}
}
else
{
this
.
selectedId
=
1
;
}
}
ownOpportunityDetailQuery
()
{
...
...
src/app/my/my-business/my-business.component.html
View file @
92b442f8
...
...
@@ -18,7 +18,7 @@
</div>
<div
class=
"line"
>
<div>
手机号:{{businessItem.mobileNo}}
</div>
<div>
{{
this.lifeCommonService.checkStr(businessItem.mdDropOptionId)
}}
</div>
<div>
{{
businessItem.mdDropOptionName ? businessItem.mdDropOptionName:'待跟进'
}}
</div>
</div>
<div
class=
"line"
>
<div>
商机来源:{{businessItem.opportunityFrom}}
</div>
...
...
@@ -26,4 +26,7 @@
</div>
</div>
</div>
<div
class=
"add"
>
<i
class=
"iconfont icon-jiahao"
(
click
)="
addBussiness
()"
></i>
</div>
</div>
\ No newline at end of file
src/app/my/my-business/my-business.component.scss
View file @
92b442f8
...
...
@@ -45,4 +45,24 @@
border-bottom
:
none
;
}
}
.add
{
position
:
absolute
;
.iconfont
{
width
:
55px
;
height
:
55px
;
line-height
:
55px
;
border-radius
:
50%
;
position
:
fixed
;
right
:
10px
;
font-size
:
24px
;
color
:
#fff
;
background
:
#0767bf
;
text-align
:
center
;
bottom
:
50px
;
font-size
:
28px
;
// color: #ff5933;
font-weight
:
bold
;
left
:
42%
;
}
}
}
\ No newline at end of file
src/app/my/my-business/my-business.component.ts
View file @
92b442f8
import
{
Component
,
OnInit
}
from
'@angular/core'
;
import
{
MyService
}
from
'../my.service'
;
import
{
LifeCommonService
}
from
'../../common/life-common.service'
;
import
{
Router
}
from
"@angular/router"
;
@
Component
({
selector
:
'ydlife-my-business'
,
templateUrl
:
'./my-business.component.html'
,
...
...
@@ -8,7 +9,7 @@ import { LifeCommonService } from '../../common/life-common.service';
})
export
class
MyBusinessComponent
implements
OnInit
{
businessList
:
Array
<
any
>
;
constructor
(
private
myService
:
MyService
,
public
lifeCommonService
:
LifeCommonService
)
{
}
constructor
(
private
myService
:
MyService
,
public
lifeCommonService
:
LifeCommonService
,
private
router
:
Router
)
{
}
ngOnInit
()
{
this
.
ownOpportunityQuery
()
...
...
@@ -27,5 +28,7 @@ export class MyBusinessComponent implements OnInit {
})
}
addBussiness
()
{
this
.
router
.
navigate
([
'/business/0'
]);
}
}
src/app/my/my-center-home/my-center-home.component.ts
View file @
92b442f8
import
{
Component
,
OnInit
,
ViewChild
,
ElementRef
,
AfterViewInit
}
from
'@angular/core'
;
import
{
Router
}
from
"@angular/router"
;
import
{
Router
,
ActivatedRoute
}
from
"@angular/router"
;
import
{
LifeCommonService
}
from
"../../common/life-common.service"
;
import
{
environment
}
from
"../../../environments/environment"
;
import
{
MyService
}
from
"../my.service"
;
...
...
@@ -37,14 +37,26 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
private
router
:
Router
,
private
lifeCommonService
:
LifeCommonService
,
private
myService
:
MyService
,
private
ls
:
LocalStorage
private
ls
:
LocalStorage
,
private
activatedRoute
:
ActivatedRoute
,
)
{
}
ngOnInit
()
{
const
title
=
this
.
activatedRoute
.
snapshot
.
data
[
0
][
'title'
];
this
.
lifeCommonService
.
setTitle
(
title
);
this
.
deviceType
=
this
.
lifeCommonService
.
checkDeviceType
();
this
.
lifeCustomerInfo
=
JSON
.
parse
(
localStorage
.
getItem
(
'lifeCustomerInfo'
))
?
JSON
.
parse
(
localStorage
.
getItem
(
'lifeCustomerInfo'
))
:
null
;
this
.
announcementQuery
();
this
.
performanceList
=
[
{
name
:
'本月'
,
time
:
1
},
{
name
:
'季度'
,
time
:
3
},
{
name
:
'本年度'
,
time
:
2
}
]
//初始化调本月线上 保费+ 本月线下保费
this
.
rank
(
1
,
1
,
1
)
this
.
rank
(
1
,
2
,
1
)
this
.
recommendPlanQuery
();
this
.
subordinateSystemMemberQuery
();
setTimeout
(()
=>
{
this
.
menuLists
=
[
...
...
@@ -96,17 +108,6 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
];
},
300
)
this
.
performanceList
=
[
{
name
:
'本月'
,
time
:
1
},
{
name
:
'季度'
,
time
:
3
},
{
name
:
'本年度'
,
time
:
2
}
]
//初始化调本月线上 保费+ 本月线下保费
this
.
rank
(
1
,
1
,
1
)
this
.
rank
(
1
,
2
,
1
)
this
.
recommendPlanQuery
();
}
ngAfterViewInit
()
{
...
...
src/app/my/my-routing.module.ts
View file @
92b442f8
...
...
@@ -20,7 +20,7 @@ import { MySettingDetailComponent } from './my-setting-detail/my-setting-detail.
import
{
MyNewsComponent
}
from
'./my-news/my-news.component'
;
const
myRoutes
:
Routes
=
[
{
path
:
''
,
component
:
MyCenterHomeComponent
,
canActivate
:
[
AuthGuard
]
},
{
path
:
''
,
component
:
MyCenterHomeComponent
,
canActivate
:
[
AuthGuard
]
,
data
:
[{
title
:
'银盾保险经纪 - 工作台'
}]
},
{
path
:
'material'
,
component
:
MkMaterialComponent
,
canActivate
:
[
AuthGuard
]
},
{
path
:
'material/:itemId'
,
component
:
MkMaterialDetailComponent
,
canActivate
:
[
AuthGuard
]
},
{
path
:
'fileUpload'
,
component
:
FileUploadComponent
,
canActivate
:
[
AuthGuard
],
data
:
[{
type
:
'fileUpload'
}]
},
...
...
src/app/my/my.service.ts
View file @
92b442f8
...
...
@@ -27,14 +27,14 @@ export class MyService {
// 重要公告
announcementQuery
(
id
,
announcementTypeId
)
{
const
url
=
this
.
API
+
'
/announcementQuery'
;
const
url
=
this
.
ydapi
+
'/market
/announcementQuery'
;
return
this
.
http
.
post
(
url
,
JSON
.
stringify
({
id
:
id
,
announcementTypeId
:
announcementTypeId
}));
}
// 产品海报
posterQuery
(
paginationInfo
)
{
const
url
=
this
.
API
+
'
/posterQuery'
;
const
url
=
this
.
ydapi
+
'/market
/posterQuery'
;
return
this
.
http
.
post
(
url
,
JSON
.
stringify
(
paginationInfo
));
}
...
...
@@ -157,7 +157,6 @@ export class MyService {
return
this
.
http
.
post
(
url
,
JSON
.
stringify
(
param
));
}
//排行榜
rank
(
param
)
{
const
url
=
this
.
ydapi
+
'/practitioner/rank'
;
...
...
@@ -165,4 +164,29 @@ export class MyService {
.
post
(
url
,
JSON
.
stringify
(
param
));
}
//新增增员接口
recruit
(
param
)
{
const
url
=
this
.
ydapi
+
'/practitioner/recruitTrackQuery'
;
return
this
.
http
.
post
(
url
,
JSON
.
stringify
(
param
));
}
//创建增员跟进记录
addRecruitTrack
(
param
)
{
const
url
=
this
.
ydapi
+
'/practitioner/recruitTrackQuery'
;
return
this
.
http
.
post
(
url
,
JSON
.
stringify
(
param
));
}
//增员查询跟进接口
recruitTrackQuery
(
param
)
{
const
url
=
this
.
ydapi
+
'/practitioner/recruitTrackQuery'
;
return
this
.
http
.
post
(
url
,
JSON
.
stringify
(
param
));
}
// 教育等级查询
educationLevelQuery
()
{
const
url
=
this
.
API
+
'/metadata/educationLevelQuery'
;
return
this
.
http
.
get
(
url
);
}
}
src/app/my/recruiting-detail/recruiting-detail.component.html
View file @
92b442f8
...
...
@@ -15,20 +15,20 @@
<div
class=
"contentItem"
>
<span>
姓名
</span>
<input
class=
"form-control"
type=
"text"
placeholder=
"{{readonlyFlag ?'暂无姓名':'请输入姓名'}}"
[(
ngModel
)]="
edit
Business
.
name
"
[
disabled
]="
readonlyFlag
"
/>
[(
ngModel
)]="
edit
Recruiting
.
name
"
[
disabled
]="
readonlyFlag
"
/>
</div>
<div
class=
"contentItem"
>
<span>
年龄
</span>
<input
class=
"form-control"
type=
"text"
placeholder=
"{{readonlyFlag ?'暂无年龄信息':'请输入年龄'}}"
[(
ngModel
)]="
edit
Business
.
age
"
[
disabled
]="
readonlyFlag
"
/>
[(
ngModel
)]="
edit
Recruiting
.
age
"
[
disabled
]="
readonlyFlag
"
/>
</div>
<div
class=
"contentItem"
>
<span>
性别
</span>
<div
class=
"sexWrapper"
>
<button
class=
"form-control sex"
[
ngClass
]="{'
sexBtn
'
:edit
Business
?.
gender=
='1'
&&
maleFlag
&&
femaleFlag
}"
<button
class=
"form-control sex"
[
ngClass
]="{'
sexBtn
'
:edit
Recruiting
?.
gender=
='1'
&&
maleFlag
&&
femaleFlag
}"
(
click
)="
selectedGender
('
1
')"
[
disabled
]="
readonlyFlag
"
*
ngIf=
"sexFlag && maleFlag"
>
男
</button>
<button
class=
"form-control sex"
[
ngClass
]="{'
sexBtn
'
:edit
Business
?.
gender=
='2'
&&
maleFlag
&&
femaleFlag
}"
<button
class=
"form-control sex"
[
ngClass
]="{'
sexBtn
'
:edit
Recruiting
?.
gender=
='2'
&&
maleFlag
&&
femaleFlag
}"
(
click
)="
selectedGender
('
2
')"
[
disabled
]="
readonlyFlag
"
*
ngIf=
"sexFlag && femaleFlag"
>
女
</button>
</div>
...
...
@@ -37,46 +37,48 @@
</div>
<div
class=
"contentItem"
>
<span>
手机
</span>
<a
style=
"text-decoration:none;color: #333;margin-right: 16px;"
href=
"tel:{{edit
Business
.mobileNo}}"
>
<a
style=
"text-decoration:none;color: #333;margin-right: 16px;"
href=
"tel:{{edit
Recruiting
.mobileNo}}"
>
<i
class=
"iconfont icon-dianhua"
style=
"color: #e10d0d;"
></i>
{{edit
Business
.mobileNo}}
</a>
<!-- <input class="form-control" type="text" [(ngModel)]="edit
Business
.mobileNo" disabled /> -->
{{edit
Recruiting
.mobileNo}}
</a>
<!-- <input class="form-control" type="text" [(ngModel)]="edit
Recruiting
.mobileNo" disabled /> -->
</div>
<div
class=
"contentItem"
>
<span>
微信
</span>
<input
class=
"form-control"
type=
"text"
placeholder=
"{{readonlyFlag ?'暂无微信':'请输入微信'}}"
[(
ngModel
)]="
edit
Business
.
weChat
"
[
disabled
]="
readonlyFlag
"
(
blur
)="
inputBlur
()"
/>
[(
ngModel
)]="
edit
Recruiting
.
weChat
"
[
disabled
]="
readonlyFlag
"
(
blur
)="
inputBlur
()"
/>
</div>
<div
class=
"contentItem"
>
<span>
其他联系
</span>
<input
class=
"form-control"
type=
"text"
placeholder=
"{{readonlyFlag ?'暂无其他联系方式':'请输入其他联系方式'}}"
[(
ngModel
)]="
edit
Business
.
otherContacts
"
[
disabled
]="
readonlyFlag
"
(
blur
)="
inputBlur
()"
/>
[(
ngModel
)]="
edit
Recruiting
.
otherContacts
"
[
disabled
]="
readonlyFlag
"
(
blur
)="
inputBlur
()"
/>
</div>
<div
class=
"contentItem"
>
<span>
学历
</span>
<input
class=
"form-control"
type=
"text"
[(
ngModel
)]="
editBusiness
.
sourceChannel
"
placeholder=
"{{readonlyFlag ?'暂无学历信息':'请选择学历'}}"
[
disabled
]="
readonlyFlag
"
/>
<select
class=
"form-control"
[(
ngModel
)]="
editRecruiting
.
educationLevel
"
[
disabled
]="
readonlyFlag
"
style=
" direction: rtl;"
>
<option
value=
''
>
请选择学历
</option>
<option
*
ngFor=
"let educationLevelItem of educationLevelList"
[
value
]="
educationLevelItem
.
id
"
>
{{educationLevelItem.name}}
</option>
</select>
</div>
<div
class=
"contentItem"
>
<span>
招募来源
</span>
<input
class=
"form-control"
type=
"text"
[(
ngModel
)]="
edit
Business
.
sourceChannel
"
disabled
/>
<input
class=
"form-control"
type=
"text"
[(
ngModel
)]="
edit
Recruiting
.
sourceChannel
"
disabled
/>
</div>
<div
class=
"contentItem"
>
<span>
时间
</span>
<input
class=
"form-control"
type=
"text"
placeholder=
"
商机时间"
[(
ngModel
)]="
editBusiness
.
opportunityDate
"
<input
class=
"form-control"
type=
"text"
placeholder=
"
增员创建时间"
[(
ngModel
)]="
editRecruiting
.
opportunityDate
"
disabled
/>
</div>
<div
class=
"contentItem"
>
<span>
商机
状态
</span>
<span>
增员
状态
</span>
<div
style=
"padding: 6px 15px;padding: 6px 15px;color: #e10d0d;font-weight: bold;"
>
{{
lifeCommonService.checkStr(editBusiness.mdDropOptionId)
}}
</div>
{{
editRecruiting.mdDropOptionId
}}
</div>
</div>
</div>
</div>
<div
class=
"content"
*
ngIf=
"selectedId===2"
>
<div
style=
"text-align: center;font-size: 16px;margin-top: 10px;"
...
...
@@ -101,9 +103,9 @@
<div
class=
"salesNotice"
>
{{opportunityRecordItem.salesNotice}}
</div>
</li>
<li>
<div
class=
"salesNotice"
>
{{edit
Business
.opportunityDate}}
</div>
<div
class=
"salesNotice"
>
{{edit
Recruiting
.opportunityDate}}
</div>
<div
style=
"display: flex;justify-content: space-between;"
>
<div>
商机
状态
</div>
<div>
增员
状态
</div>
<div>
待跟进
</div>
</div>
</li>
...
...
@@ -118,13 +120,13 @@
<!--编辑框-->
<div
class=
"editContainer"
*
ngIf=
"isShow"
>
<div>
<div>
跟进
状态
</div>
<div>
增员
状态
</div>
<div
style=
"position:relative"
>
<select
name=
"businessStatus"
(
onChange
)="
inputBlur
()"
id=
"businessStatus"
class=
"form-control"
[(
ngModel
)]="
opportunityRecord
Id
"
>
[(
ngModel
)]="
trackStatus
Id
"
>
<option
value=
"null"
>
请选择
</option>
<option
*
ngFor=
"let
businessStatusItem of businessStatusList"
value=
"{{business
StatusItem.id}}"
>
{{
business
StatusItem.dropOptionName}}
<option
*
ngFor=
"let
recruitingStatusItem of recruitingStatusList"
value=
"{{recruiting
StatusItem.id}}"
>
{{
recruiting
StatusItem.dropOptionName}}
</option>
</select>
<i
class=
"iconfont icon-xiangxia"
style=
"position: absolute;right: 50px;top: 5px;"
></i>
...
...
@@ -132,7 +134,7 @@
</div>
<div>
<div>
备注
</div>
<div><input
type=
"text"
id=
"remark"
class=
"form-control"
placeholder=
"输入备注信息"
[(
ngModel
)]="
salesN
otice
"
<div><input
type=
"text"
id=
"remark"
class=
"form-control"
placeholder=
"输入备注信息"
[(
ngModel
)]="
n
otice
"
(
blur
)="
inputBlur
()"
></div>
</div>
<div>
...
...
@@ -141,7 +143,7 @@
[(
ngModel
)]="
opportunityRecordNoticeDate
"
(
blur
)="
inputBlur
()"
></div>
</div>
<ul
class=
"footer"
>
<li
(
click
)="
ownOpportunityRecordSave
()"
>
确定
</li>
<li
(
click
)="
addRecruitTrack
()"
>
确定
</li>
<li
(
click
)="
this
.
isShow =
false;"
>
取消
</li>
</ul>
</div>
...
...
src/app/my/recruiting-detail/recruiting-detail.component.scss
View file @
92b442f8
...
...
@@ -54,7 +54,7 @@
>
span
:first-child
{
white-space
:
nowrap
;
}
input
.form-control
{
input
.form-control
,
select
.form-control
{
display
:
inline-block
;
// width: 60%;
margin
:
0
5px
;
...
...
@@ -66,7 +66,6 @@
display
:
flex
;
flex-wrap
:
wrap
;
}
.sexWrapper
{
display
:
flex
;
width
:
60%
;
...
...
src/app/my/recruiting-detail/recruiting-detail.component.ts
View file @
92b442f8
import
{
Component
,
OnInit
}
from
'@angular/core'
;
import
{
ActivatedRoute
}
from
"@angular/router"
;
import
{
BusinessQuery
}
from
'../../domain/businessQuery'
;
import
{
LifeCommonService
}
from
'../../common/life-common.service'
;
import
{
MyService
}
from
'../my.service'
;
import
{
RecruitingQuery
}
from
'../../domain/recruitingQuery'
;
@
Component
({
selector
:
'ydlife-recruiting-detail'
,
...
...
@@ -9,11 +10,12 @@ import { LifeCommonService } from '../../common/life-common.service';
styleUrls
:
[
'./recruiting-detail.component.scss'
]
})
export
class
RecruitingDetailComponent
implements
OnInit
{
editRecruiting
:
RecruitingQuery
=
new
RecruitingQuery
();
//潜在增员的id
id
:
string
;
titleList
:
Array
<
any
>
;
selectedId
:
number
;
editBusiness
:
BusinessQuery
=
new
BusinessQuery
();
readonlyFlag
:
boolean
=
true
;
//性别显示
sexFlag
:
boolean
;
...
...
@@ -22,10 +24,17 @@ export class RecruitingDetailComponent implements OnInit {
//显示男
maleFlag
:
boolean
;
isShow
:
boolean
;
recruitingStatusList
:
Array
<
any
>
;
//控制tab可不可点
clickFlag
:
boolean
;
educationLevelList
:
Array
<
any
>
;
//新增增员记录的备注
notice
:
any
;
trackStatusId
:
any
;
constructor
(
private
activateRoute
:
ActivatedRoute
,
public
lifeCommonService
:
LifeCommonService
)
{
public
lifeCommonService
:
LifeCommonService
,
private
myService
:
MyService
)
{
this
.
titleList
=
[
{
id
:
1
,
name
:
'基本信息'
},
{
id
:
2
,
name
:
'简历'
},
...
...
@@ -36,11 +45,29 @@ export class RecruitingDetailComponent implements OnInit {
ngOnInit
()
{
this
.
id
=
this
.
activateRoute
.
snapshot
.
paramMap
.
get
(
'id'
);
console
.
log
(
this
.
id
)
this
.
dropOptionsQuery
();
this
.
educationLevelQuery
();
if
(
Number
(
this
.
id
)
===
0
)
{
this
.
readonlyFlag
=
false
;
this
.
sexFlag
=
true
;
this
.
maleFlag
=
true
;
this
.
femaleFlag
=
true
;
this
.
clickFlag
=
false
;
this
.
editRecruiting
=
new
RecruitingQuery
(
''
,
1
,
''
,
''
,
''
,
''
,
''
,
''
,
''
,
null
,
''
,
''
,
''
,
''
,
''
);
this
.
selectTab
(
1
);
}
else
{
this
.
clickFlag
=
true
;
this
.
selectTab
(
1
);
}
}
selectTab
(
id
)
{
if
(
this
.
clickFlag
==
true
)
{
this
.
selectedId
=
id
;
}
else
{
this
.
selectedId
=
1
;
}
}
//改为编辑状态出现男女选项
...
...
@@ -53,7 +80,59 @@ export class RecruitingDetailComponent implements OnInit {
//选男女
selectedGender
(
e
)
{
this
.
editBusiness
.
gender
=
e
;
this
.
editRecruiting
.
gender
=
e
;
}
//查询跟进记录
recruitTrackQuery
()
{
const
param
=
{
potentialId
:
null
,
practitionerId
:
JSON
.
parse
(
localStorage
.
getItem
(
'lifeCustomerInfo'
))[
'practitionerId'
]
}
this
.
myService
.
recruitTrackQuery
(
param
).
subscribe
((
res
)
=>
{
console
.
log
(
res
)
})
}
//跟进状态列表
dropOptionsQuery
()
{
this
.
myService
.
dropOptionsQuery
({
code
:
'team_biulding_track'
}).
subscribe
((
res
)
=>
{
if
(
res
[
'success'
])
{
this
.
recruitingStatusList
=
res
[
'data'
][
'dropMasterInfoList'
][
'0'
][
'dropOptionsInfoList'
];
}
})
}
// 教育等级查询
educationLevelQuery
()
{
this
.
myService
.
educationLevelQuery
().
subscribe
(
res
=>
{
if
(
res
[
'success'
])
{
this
.
educationLevelList
=
res
[
'data'
][
'educationLevelList'
]
}
})
}
inputBlur
()
{
window
.
scrollTo
(
0
,
0
)
}
//创建增员跟进记录
addRecruitTrack
()
{
const
RecruitTrackParam
=
{
potentialId
:
26
,
//测试先写死小小仙女
practitionerId
:
JSON
.
parse
(
localStorage
.
getItem
(
'lifeCustomerInfo'
))[
'practitionerId'
],
notice
:
this
.
notice
,
trackStatusId
:
this
.
trackStatusId
}
this
.
myService
.
addRecruitTrack
(
RecruitTrackParam
).
subscribe
((
res
)
=>
{
console
.
log
(
res
)
if
(
res
[
'success'
])
{
}
else
{
}
})
}
}
src/app/my/recruiting/recruiting.component.html
View file @
92b442f8
<div
class=
"salesWrapper"
>
<ul
class=
"tab"
>
<li
*
ngFor=
"let titleItem of titleList"
(
click
)="
selectTab
(
titleItem
.
id
)"
[
ngClass
]="{
selected:selectedId=
==titleItem.id}"
>
<div
style=
"position: relative;"
>
<h3>
{{titleItem.name}}
</h3>
</div>
</li>
</ul>
<div
class=
"salesContent"
>
<div
style=
"text-align: center;margin: 20px auto;font-size: 20px;"
*
ngIf=
"businessList?.length==0"
>
暂无商机
</div>
<div
class=
"salesItem"
*
ngFor=
"let recruitingItem of recruitingList"
...
...
src/app/my/recruiting/recruiting.component.scss
View file @
92b442f8
...
...
@@ -3,6 +3,28 @@
height
:
100%
;
overflow
:
auto
;
// background:#f7f7f2;
.tab
{
display
:
flex
;
list-style
:
none
;
margin
:
10px
0px
;
padding-left
:
1%
;
li
{
margin-right
:
10px
;
line-height
:
30px
;
height
:
30px
;
width
:
25%
;
text-align
:
center
;
border
:
1px
#a9aabb
solid
;
border-radius
:
20px
;
h3
{
font-weight
:
normal
;
font-size
:
16px
;
}
}
li
.selected
{
border
:
1px
#e10d0d
solid
;
}
}
.salesContent
{
.salesItem
{
border-bottom
:
1px
#dcdcdc
solid
;
...
...
src/app/my/recruiting/recruiting.component.ts
View file @
92b442f8
import
{
Component
,
OnInit
}
from
'@angular/core'
;
import
{
Router
}
from
"@angular/router"
;
import
{
MyService
}
from
'../my.service'
;
@
Component
({
selector
:
'ydlife-recruiting'
,
templateUrl
:
'./recruiting.component.html'
,
...
...
@@ -7,14 +9,20 @@ import { Router } from "@angular/router";
})
export
class
RecruitingComponent
implements
OnInit
{
recruitingList
:
Array
<
any
>
;
constructor
(
private
router
:
Router
)
{
}
titleList
:
Array
<
any
>
;
selectedId
:
any
;
constructor
(
private
router
:
Router
,
private
myService
:
MyService
)
{
}
ngOnInit
()
{
this
.
titleList
=
[
{
id
:
1
,
name
:
'待跟进'
},
{
id
:
2
,
name
:
'跟进中'
},
{
id
:
4
,
name
:
'已报聘'
},
]
this
.
recruitingList
=
[
{
id
:
1
,
name
:
'月亮'
,
mobileNo
:
'18100000000'
,
sources
:
'boss直聘'
,
status
:
'有意向'
,
date
:
'2020-01-12'
},
{
id
:
2
,
name
:
'太阳'
,
mobileNo
:
'18100000001'
,
sources
:
'拉钩网'
,
status
:
'有意向'
,
date
:
'2020-01-12'
},
{
id
:
3
,
name
:
'星星'
,
mobileNo
:
'18100000002'
,
sources
:
'拉钩网'
,
status
:
'考虑加入'
,
date
:
'2020-01-12'
},
]
}
...
...
@@ -22,5 +30,10 @@ export class RecruitingComponent implements OnInit {
this
.
router
.
navigate
([
'/recruiting/0'
]);
}
selectTab
(
id
)
{
console
.
log
(
id
)
}
}
src/environments/environment.prod.ts
View file @
92b442f8
...
...
@@ -2,5 +2,6 @@ export const environment = {
production
:
true
,
BACKEND_URL_CONFIG_VALUE
:
'https://m.zuihuibi.cn/api'
,
ORIGINNAME
:
'https://m.zuihuibi.cn/ydapi'
,
DOMAINNAME
:
'https://m.zuihuibi.cn/'
,
BAIDU_TONGJI_CODE
:
'36b1eb7eec3b5dac9f97d887092b5b27'
};
src/environments/environment.stage.ts
View file @
92b442f8
...
...
@@ -5,5 +5,6 @@ export const environment = {
production
:
true
,
BACKEND_URL_CONFIG_VALUE
:
'https://mstage.zuihuibi.cn/api'
,
ORIGINNAME
:
'https://mstage.zuihuibi.cn/ydapi'
,
DOMAINNAME
:
'https://mstage.zuihuibi.cn/'
,
BAIDU_TONGJI_CODE
:
'84be9b9eaaca51048f32bb160ccad2e6'
};
src/environments/environment.ts
View file @
92b442f8
...
...
@@ -7,5 +7,6 @@ export const environment = {
production
:
false
,
BACKEND_URL_CONFIG_VALUE
:
'https://mdev.zuihuibi.cn/api'
,
ORIGINNAME
:
'https://mdev.zuihuibi.cn/ydapi'
,
DOMAINNAME
:
'https://mdev.zuihuibi.cn/'
,
BAIDU_TONGJI_CODE
:
'e8fa107d82e0471d097d545225aeed64'
};
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