Commit 88da3799 by sunchao

继续率承诺书

parent 7a2cbf88
......@@ -11,17 +11,17 @@
</signature-pad>
<img [src]="imgStr" alt="签名" *ngIf="isSignatureShow">
</div>
<div *ngIf="type == 'eNotice'" style="margin-left: 13px;color: #666;">
<div *ngIf="(type == 'eNotice') || (type=='continuationRate') " style="margin-left: 13px;color: #666;">
<p>签署日期:{{todayDate | date:'yyyy-MM-dd'}}</p>
</div>
<div class="signature_action" *ngIf="approveStatus == null || approveStatus == '-1'">
<img src="assets/images/clear.png" alt="清除" (click)="clearSignature();"/>
<img src="assets/images/revoke.png" *ngIf="!isSignatureShow" alt="上一步" (click)="revokeSignature()"/>
</div>
<footer class="fixed" (click)="next()" *ngIf="(approveStatus==null || approveStatus=='-1') && type != 'eNotice'">
<footer class="fixed" (click)="next()" *ngIf="(approveStatus==null || approveStatus=='-1') && (type != 'eNotice') && (type !='continuationRate')">
我自愿签订经纪人合同书
</footer>
<footer class="fixed" (click)="saveDigitalSignatures()" *ngIf="type == 'eNotice'" style="margin:45px;width:auto;border-radius:60px">
<footer class="fixed" (click)="saveDigitalSignatures()" *ngIf="(type == 'eNotice') || (type=='continuationRate')" style="margin:45px;width:auto;border-radius:60px">
确认提交
</footer>
<div id="page" *ngIf="approveStatus!=null && approveStatus !='-1'">
......
......@@ -46,7 +46,7 @@ export class SignatureComponent implements OnInit {
}
const title = this.activatedRoute.snapshot.data[0]['title'];
this.lifeCommonService.setTitle(title);
if(this.type!='eNotice'){
if(this.type!='eNotice' && this.type !='continuationRate'){
this.hiringBasicInfoId = this.activatedRoute.snapshot.queryParams.hiringBasicInfoId?this.activatedRoute.snapshot.queryParams.hiringBasicInfoId:null;
this.queryWholeInfo(this.hiringBasicInfoId)
this.viewApprovalInfo = sessionStorage.getItem('viewApprovalInfo');
......@@ -84,6 +84,22 @@ export class SignatureComponent implements OnInit {
this.openPopInfo(res['message']);
}
})
}else if(this.type == 'continuationRate'){
console.log('继续率承诺书');
const param = {
practitionerId: localStorage.getItem('lifeCustomerInfo')?JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId']:null,
practitionerName: localStorage.getItem('lifeCustomerInfo')?JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerBasicInfo']['name']:null,
imgStr:this.imgStr
}
console.log(param)
this.myService.signCommitment(param).subscribe((res)=>{
if(res['success']){
// 确认提交
this.router.navigate(['/eNotice_submit']);
}else{
this.openPopInfo(res['message']);
}
})
}else{
const param = {
hiringBasicInfoId:this.hiringBasicInfoId,
......
<div class="csNoticeContent">
<div class="csNoticeContent" *ngIf="pageType!='continuation_rate_commitment'">
<h3 style="padding-top:15px;border-top:1px solid #dcdcdc">上海银盾保险经纪有限公司客户告知书</h3>
<p style="margin-bottom: 10px;">尊敬的客户:</p>
<p style="text-indent: 32px;">感谢您委托上海银盾保险经纪有限公司代为办理保险业务,本公司是基于投保人的利益,为投保人与保险公司订立保险合同提供中介服务的保险专业中介机构。为了保护您的合法权益,按照《保险经纪人监管规定》的要求,本公司履行客户告知义务,将有关事项告知如下,请仔细阅读:</p>
......@@ -94,4 +94,24 @@
<div class="signInput"><span class="noBorder">投保人:</span></div>
<div class="signInput"><span class="noBorder">投保人亲签:</span></div>
<div class="signInput"><span class="noBorder">日 期:</span></div>
</div>
</div>
<div class="csNoticeContent" *ngIf="pageType=='continuation_rate_commitment'" style="padding: 0 10px 110px 10px;">
<h3 style="padding-top:15px;">经纪人保单继续率业务品质承诺书</h3>
<p style="text-indent: 32px;line-height: 2;" >
根据监管要求和精神,上海银盾保险经纪有限公司(“银盾“或”公司“) 将严格按照《银盾保险经纪人标准基本管理办法》的规定,对经纪人的销售业务品质进行管理,并和经纪人约定如下:</p>
<ul>
<li style="line-height: 2;">经纪人明白保单继续率是业务品质保证的重要指标。销售保单不能续保,对客户、经纪人、团队、公司和合作的保险公司都会有直接的影响,且不符合监管精神。保单存续期间经纪人必须尽最大努力推动和保证客户保单的保费续交,以满足所销售保单继续率的要求;</li>
<li style="line-height: 2;">保单存续期间客户退保(含犹豫期退保、正常现价退保和全额退保、通融退保等)给公司造成的任何损失、影响公司整体保单继续率,发生保险公司追回银盾相应来佣金的情况,公司将向经纪人和相应的各级团队长予以扣回相应的佣奖和追偿相应损失;在第 13 个月和 25 个月内发生的任何保单的退保行为,公司将向经纪人和相应的各级团队长予以扣回相应的 100%已发放的佣奖并追偿相应的损失;</li>
<li style="line-height: 2;">经纪人自保件退保或者协助客户非正常退保,如有套取退保利益、佣金、推动奖励和基本法利益行为的,公司有权追回经纪人和相应各级团队长相应的利益。自保件包含业务人员本人及其家人投保在公司其他业务人员名下的保单。</li>
</ul>
<h3 style="margin-top:20px;display: flex;">
<span></span>
<span style="text-align: justify;margin-left: 15px;">本人已详细阅读以上条款,同意上述和银盾的约定并承诺执行。</span>
</h3>
<div class="signInput"><span class="noBorder">经纪人:</span></div>
<div class="signInput"><span class="noBorder">投保人亲签:</span></div>
<div class="signInput"><span class="noBorder">日 期:</span></div>
<div class="send">
<div class="signBtn" (click)="agree()">同意,并签署</div>
</div>
</div>
......@@ -35,6 +35,24 @@
}
}
}
.send{
position: fixed;
bottom: 30px;
width: 100%;
div{
margin: 0 40px;
height: 48px;
line-height: 48px;
text-align: center;
border-radius: 46px;
background: #C81B1E;
color: #fff;
font-size: 18px;
font-weight: bold;
min-width: 240px;
max-width: 560px;
}
}
.signInput{
margin-top:10px;
width:280px;
......
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from "@angular/router";
import { Router } from '@angular/router';
@Component({
selector: 'ydlife-e-notice',
......@@ -6,10 +8,17 @@ import { Component, OnInit } from '@angular/core';
styleUrls: ['./e-notice.component.scss']
})
export class ENoticeComponent implements OnInit {
constructor() { }
pageType:any
constructor(private activatedRoute: ActivatedRoute,private router:Router) {
}
ngOnInit() {
this.pageType = this.activatedRoute.url['value'][0]['path'];
console.log(this.pageType)
}
agree(){
this.router.navigate(['/eNoticeSignature'],{ queryParams: { type:'continuationRate'} })
}
}
......@@ -22,6 +22,7 @@ export class MenuItemComponent implements OnInit {
isShow: boolean;
approvarList:Array<any>;
dotFlag:boolean = false;
commitmentUrl:any;
constructor(private lifeCommonService:LifeCommonService,private activatedRoute:ActivatedRoute,private myService:MyService,private router:Router) {
const title = this.activatedRoute.snapshot.data[0]['title'];
this.type = this.activatedRoute.snapshot.data[0]['type'];
......@@ -34,6 +35,7 @@ export class MenuItemComponent implements OnInit {
this.canSeeSalaryList();
this.getMenuList();
this.listQuery();
this.queryCommitmentByPractitionerId();
}
getMenuList() {
this.menuLists = [
......@@ -99,7 +101,7 @@ export class MenuItemComponent implements OnInit {
{ no: 30, subtitle: '执业证书', icon: 'card', path: `https://${window.location.host}/brokerQry/#/brokerDetail/${this.lifeCustomerInfo.practitionerId}?source=0`, routerLink: '',showSubMenu:true },
{ no: 32, subtitle: '公司介绍', icon: 'introduce', path: '', routerLink: '',showSubMenu:true },
{ no: 27, subtitle: '我的经纪合同', icon: 'contract', path: '', routerLink: 'my_application' ,showSubMenu:true},
{ no: 34, subtitle: '继续率承诺书', icon: 'jixu', path: '', routerLink: '' ,showSubMenu:true},
]
}
];
......@@ -140,7 +142,13 @@ export class MenuItemComponent implements OnInit {
}else if(item.no === 33){
//佣金政策
this.router.navigate(['/fileUpload'], { queryParams: { fileUploadType: 'commissionPolicy' } });
}else {
}else if(item.no === 34){
if(this.commitmentUrl){
window.open(this.commitmentUrl)
}else{
this.router.navigate(['/continuation_rate_commitment'])
}
}else{
this.isNeedAlert = true;
this.dialogInfo = {
title: null,
......@@ -150,7 +158,6 @@ export class MenuItemComponent implements OnInit {
}
}
//查询是否团队长
subordinateSystemMemberQuery() {
const practitionerId = JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId'];
......@@ -211,4 +218,15 @@ export class MenuItemComponent implements OnInit {
return 'assets/images/' + Img + '.png'
}
//获取继续率承诺书
queryCommitmentByPractitionerId(){
const param = {
practitionerId:localStorage.getItem('lifeCustomerInfo')?JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId']:null,
}
this.myService.queryCommitmentByPractitionerId(param).subscribe((res)=>{
if(res['success']){
this.commitmentUrl = res['data']['fileOssPath']
}
})
}
}
......@@ -67,6 +67,7 @@ import { AskComponent } from './ask/ask.component';
import { MenuItemComponent } from './menu-item/menu-item.component';
import { MemberListComponent } from './member-list/member-list.component';
import { ENoticeSignComponent } from './e-notice-sign/e-notice-sign.component';
import { ENoticeComponent } from './e-notice/e-notice.component';
const myRoutes: Routes = [
{ path: '', component: MyCenterHomeComponent, canActivate: [AuthGuard], data: [{ title: '银盾保险经纪 - 工作台' }] },
......@@ -148,6 +149,7 @@ const myRoutes: Routes = [
{ path: 'trainingCenter',component:MenuItemComponent,data:[{title:'银盾保经-教育培训',type:'trainingCenter'}],canActivate:[AuthGuard]},
{ path: 'newPeople',component:MenuItemComponent,data:[{title:'银盾保经-新人入口',type:'newPeople'}],canActivate:[AuthGuard]},
{ path: 'member_list/:systemType',component:MemberListComponent,canActivate:[AuthGuard]},
{ path: 'continuation_rate_commitment',component:ENoticeComponent,canActivate:[AuthGuard]}
];
@NgModule({
......
......@@ -764,4 +764,16 @@ export class MyService {
return res;
});
}
//继续率承诺书签署
signCommitment(param){
const url = this.ydapi + "/practitioner/signCommitment";
return this.http.post(url, JSON.stringify(param));
}
//查询继续率承诺书
queryCommitmentByPractitionerId(param){
const url = this.ydapi + "/practitioner/queryCommitmentByPractitionerId";
return this.http.post(url, JSON.stringify(param));
}
}
......@@ -25,9 +25,9 @@ export class SalaryDetailComponent implements OnInit {
monthlySalesAddWeight:any = null;
//独立经纪人展业津贴
independentBrokerAllowance:any = null;
//首年度直接销售佣金
//首年度辅导佣金
fycTutorInfo:any = null;
//续年度直接销售佣金
//续年度辅导佣金
rycTutorInfo:any = null;
//首年度绩效奖金/团队管理绩效达标奖金
fycMeritsInfo:any = null;
......
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