Commit fdcf45d8 by Sweet Zhang

联合销售提醒

parent b141205c
...@@ -155,7 +155,8 @@ const myRoutes: Routes = [ ...@@ -155,7 +155,8 @@ const myRoutes: Routes = [
{ path: 'continuation_rate_commitment',component:ENoticeComponent,canActivate:[AuthGuard],data:{type:2}}, { path: 'continuation_rate_commitment',component:ENoticeComponent,canActivate:[AuthGuard],data:{type:2}},
{ path: 'eNoticeSign',component:ENoticeComponent,canActivate:[AuthGuard],data:{type:1,title: '客户告知书和保险经纪服务委托协议'}}, { path: 'eNoticeSign',component:ENoticeComponent,canActivate:[AuthGuard],data:{type:1,title: '客户告知书和保险经纪服务委托协议'}},
{ path: 'renewal_reminder',component:RenewalReminderComponent,canActivate:[AuthGuard],data:{type:1,title: '续期提醒'}}, { path: 'renewal_reminder',component:RenewalReminderComponent,canActivate:[AuthGuard],data:{type:1,title: '续期提醒'}},
{ path: 'renewal_reminder_detail',component:RenewalReminderDetailComponent,canActivate:[AuthGuard],data:{type:1,title: '续期订单详情'}}, { path: 'renewal_reminder_detail/:orderPayId',component:RenewalReminderDetailComponent,canActivate:[AuthGuard],data:{type:1,title: '续期订单提醒'}},
{ path: 'reminder_detail/:orderPayId',component:RenewalReminderDetailComponent,canActivate:[AuthGuard],data:{type:2,title: '续期订单详情信息'}},
{ path: 'joint_sales',component:JointSalesComponent,canActivate:[AuthGuard],data:{title: '联合销售列表'}}, { path: 'joint_sales',component:JointSalesComponent,canActivate:[AuthGuard],data:{title: '联合销售列表'}},
{ path: 'joint_sales_detail/:unionSalesId',component:JointSaleDetailComponent,canActivate:[AuthGuard],data:{ttitle: '联合销售签署'}} { path: 'joint_sales_detail/:unionSalesId',component:JointSaleDetailComponent,canActivate:[AuthGuard],data:{ttitle: '联合销售签署'}}
......
...@@ -833,4 +833,19 @@ export class MyService { ...@@ -833,4 +833,19 @@ export class MyService {
const url = this.ydapi + "/practitioner/signUnionSales" const url = this.ydapi + "/practitioner/signUnionSales"
return this.http.post(url,JSON.stringify(params)) return this.http.post(url,JSON.stringify(params))
} }
// 续期提醒列表查询接口
queryNoticeList(params){
const url = this.API + "/orderPay/queryNoticeList"
return this.http.post(url,JSON.stringify(params))
}
// 续期提醒通知接口
addNotice(params){
const url = this.API + "/orderPay/addNotice";
return this.http.post(url,JSON.stringify(params))
}
// 续期提醒通知详情接口
queryNoticeDetail(params){
const url = this.API + "/orderPay/queryNoticeDetail";
return this.http.post(url,JSON.stringify(params))
}
} }
<p> <div class="renewalReminderDetailContainer">
renewal-reminder-detail works! <div class="cardContent">
</p> <div class="leftSection">
<h4>预计扣费时间:{{orderPayDetail.payableDate}}</h4>
<p>{{orderPayDetail.payStatus===1 ? '保费未划扣' : '保费已划扣'}}</p>
</div>
<div class="rightSection">
<p><strong>{{orderPayDetail.payPeriod}}</strong></p>
<p>续期保费</p>
</div>
</div>
<div class="tabPaneItem">
<h4>
<span>保险名称{{orderPayDetail.productName}}</span>
<span></span>
</h4>
<ul>
<li><span>保险公司:</span><span>{{orderPayDetail.productName}}</span></li>
<li><span>保单号:</span><span>{{orderPayDetail.policyNo}}</span></li>
<li><span>投保人:</span><span>{{orderPayDetail.policyholderName}}</span></li>
<li><span>被保人:</span><span>{{orderPayDetail.insuredName}}</span></li>
<li><span>缴费期:</span><span>{{orderPayDetail.paymentTerm}}</span></li>
<li><span>保费:</span><span style="color: #F24949;">{{orderPayDetail.annualizedPremium | number:'1.2-2'}}</span></li>
<li><span>保障期:</span><span>{{orderPayDetail.coverTerm}}</span></li>
</ul>
</div>
<div class="paymentInfoContent tabPaneItem">
<ul>
<li><span>年化保费:</span><span>{{orderPayDetail.annualizedPremium | number:'1.2-2'}}</span></li>
<li><span>缴费期间:</span><span>{{orderPayDetail.paymentTerm}}</span></li>
<li><span>本期扣费时间:</span><span>{{orderPayDetail.payableDate}}</span></li>
</ul>
</div>
<div class="remindContent" *ngIf="type===1">
<h3>提醒一下客户吧</h3>
<ul>
<li (click)="shareSelect(1)">
<div>
<img src="../../../assets/images/smsIcon.png" alt="">
</div>
<div>短信通知</div>
</li>
<li (click)="shareSelect(2)" *ngIf="deviceType == 3">
<div> <img src="../../../assets/images/wechatIcon.png" alt=""></div>
<div>微信通知</div>
</li>
<li (click)="shareSelect(3)">
<div> <img src="../../../assets/images/telIcon.png" alt=""></div>
<div>电话通知</div>
</li>
</ul>
</div>
</div>
<!-- 弹窗 -->
<div class="popDialog" *ngIf="dialogDisabled">
<div class="popContent" *ngIf="noticeType!==2">
<div class="closeBtn" (click)="close($event)">&times;</div>
<div class="telContent">
<div><span>姓名:</span><span>{{orderPayDetail.policyholderName}}</span></div>
<div><span>电话:</span><span>{{orderPayDetail.policyholderMobile}}</span></div>
<div *ngIf="noticeType===1">
{{orderPayDetail.noticeList[0].content}}
</div>
<div class="button" *ngIf="noticeType===3"><a href="tel:{{orderPayDetail.policyholderMobile}}">拨打电话</a></div>
<div class="button" *ngIf="noticeType===1" (click)="addNotice()"><a href="javascript:;">发送信息</a></div>
</div>
</div>
<div class="weChatShare" *ngIf="noticeType===2" (click)="close($event)">
<i class="iconfont icon-yindaojiantou"></i>
<div class="tips">
<p>请点击右上角菜单</p>
<p>分享给朋友</p>
</div>
</div>
</div>
<ydlife-alert *ngIf="isNeedAlert" [dialogInfo]="dialogInfo" (popInfo)="getPopInfo()"></ydlife-alert>
.renewalReminderDetailContainer{
height: 100%;
background-color: #f9f9f9;
.cardContent{
padding: 6px 15px 6px 25px;
background-color: #1B5B99;
color: #fff;
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 10px;
.leftSection{
font-size: 16px;
p{
font-size: 12px;
margin-top: 10px;
}
}
.rightSection{
width: 76px;
height: 76px;
border-radius: 50%;
background-color: #fff;
color: #1B5B99;
font-size: 13px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
strong{
color: #F24949;
font-size: 15px;
}
}
}
.tabPaneItem{
margin: 10px 5px;
background-color: #fff;
padding: 10px 0;
h4{
display: flex;
justify-content: space-between;
padding: 6px 11px 10px 18px;
>span:first-child{
font-size: 15px;
color: #333;
}
>span:last-child{
color: #F24949;
font-size: 12px;
}
}
ul{
color: #666;
font-size: 12px;
padding: 0 11px 0 18px;
li{
display: flex;
justify-content: space-between;
}
}
button{
width: 101px;
height: 28px;
text-align: center;
line-height: 28px;
color: #fff;
background-color: #1B5B99;
border: none;
outline: none;
box-shadow: none;
border-radius: 20px;
}
}
.paymentInfoContent{
li{
color: #F24949;
}
}
.remindContent{
h3{
text-align: center;
font-size: 18px;
color: #1B5B99;
margin: 100px auto 30px;
}
ul{
display: flex;
li{
flex: 1;
text-align: center;
}
}
}
}
.popDialog{
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
background-color: rgba(0,0,0,0.3);
.popContent{
position: absolute;
top: 0;
left: 0;
width: 80%;
margin: 0 auto;
transform: translate(13%,100%);
background-color: #fff;
border-radius: 6px;
padding: 10px 20px;
.closeBtn{
width: 30px;
height: 30px;
background-color: rgba(0, 0, 0, 0.3);
color: #fff;
cursor: pointer;
float: right;
text-align: center;
border-radius: 50%;
font-size: 26px;
line-height: 1;
}
.telContent{
padding-top: 10px;
}
.button{
text-align: center;
margin-top: 20px;
a{
width: 142px;
height: 34px;
text-align: center;
line-height: 34px;
background: #1b5b99;
display: inline-block;
color: #fff;
border: none;
outline: none;
border-radius: 35px;
}
}
}
.weChatShare{
height: 100%;
i{
font-size: 100px;
color: #fff;
margin-left: 56%;
}
.tips{
color: #fff;
text-align: center;
font-size: 16px;
}
}
}
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { LifeCommonService } from 'src/app/common/life-common.service';
import { MyService } from '../my.service';
@Component({ @Component({
selector: 'ydlife-renewal-reminder-detail', selector: 'ydlife-renewal-reminder-detail',
...@@ -6,10 +9,69 @@ import { Component, OnInit } from '@angular/core'; ...@@ -6,10 +9,69 @@ import { Component, OnInit } from '@angular/core';
styleUrls: ['./renewal-reminder-detail.component.scss'] styleUrls: ['./renewal-reminder-detail.component.scss']
}) })
export class RenewalReminderDetailComponent implements OnInit { export class RenewalReminderDetailComponent implements OnInit {
practitionerId: number;
constructor() { } orderPayId: number;//续交记录id
noticeType: number;//1-短信 2-微信 3-电话
content: string; //通知内容
remark: string; //备注
dialogDisabled:boolean;
orderPayDetail:any;
// 判断是经纪人1还是客户2看到的详情页面
type:number = 1;
isNeedAlert: boolean;
dialogInfo: any;
deviceType:number;
shareSelect(type){
this.noticeType = type;
this.dialogDisabled = true;
if(this.noticeType===2){
this.wxShare()
}
}
close = (e)=>{
this.dialogDisabled = false;
}
constructor(private myService:MyService,private route:ActivatedRoute,private lifeCommonService:LifeCommonService) { }
ngOnInit() { ngOnInit() {
this.deviceType = this.lifeCommonService.checkDeviceType();
this.orderPayId = this.route.snapshot.params['orderPayId'];
this.type = this.route.snapshot.data.type;
this.queryNoticeDetail();
}
queryNoticeDetail(){
this.myService.queryNoticeDetail({orderPayId:this.orderPayId}).subscribe(res=>{
if(res['success']){
this.orderPayDetail = res['data']['orderPayDetail'];
}else{
this.openPopInfo(res['message']);
}
})
}
addNotice(){
this.myService.addNotice({practitionerId:this.practitionerId,orderPayId:this.orderPayId,noticeType:this.noticeType,content:this.content,remark:this.remark}).subscribe(res=>{
this.openPopInfo(res['message']);
})
}
wxShare(){
this.lifeCommonService.wxShare('续保提醒','保险续保提醒',`${window.location.origin}/reminder_detail/${this.orderPayId}`,'');
}
// 打开弹窗
openPopInfo(message) {
this.isNeedAlert = true;
this.dialogInfo = {
title: null,
content: { value: message, align: 'center' },
footer: [{ value: '我知道了', routerLink: '', className: 'weui-dialog__btn_primary' }],
};
}
// 关闭弹窗
getPopInfo() {
this.isNeedAlert = false;
} }
} }
<div class="renewalReminderContainer">
<ul class="tabs">
<li [ngClass]="{actived:index==0}" (click)="selectTab(0)">待通知</li>
<li [ngClass]="{actived:index==1}" (click)="selectTab(1)">已通知</li>
</ul>
<div class="tabPaneContent">
<div class="tabPaneItem" *ngFor="let item of lists">
<h4>
<span>保险名称{{item.productName}}</span>
<span>第{{item.payPeriod}}年续期保费</span>
</h4>
<ul>
<li><span>保险公司:</span><span>{{item.payPeriod}}</span></li>
<li><span>保单号:</span><span>{{item.policyNo}}</span></li>
<li><span>投保人:</span><span>{{item.policyholderName}}</span></li>
<li><span>被保人:</span><span>{{item.insuredName}}</span></li>
<li><span>缴费期:</span><span>{{item.paymentTerm}}</span></li>
<li><span>保费:</span><span style="color: #F24949;">{{item.annualizedPremium | number:'1.2-2'}}</span></li>
<li><span>保障期:</span><span>{{item.coverTerm}}</span></li>
</ul>
<div style="text-align: right;"><button [routerLink]="['/renewal_reminder_detail',item.id]">提醒客户</button></div>
</div>
</div>
</div>
.renewalReminderContainer{
height: 100%;
background: #F9F9F9;
.tabs{
display: flex;
background-color: #fff;
li{
height: 40px;
line-height: 40px;
padding-left: 22px;
position: relative;
&.actived{
color: #1B5B99;
}
&.actived::after{
position: absolute;
content: '';
width: 55%;
height: 1px;
background-color: #1B5B99;
left: 0;
bottom: 0;
transform: translateX(70%);
}
}
}
.tabPaneContent{
.tabPaneItem{
margin: 10px 5px;
background-color: #fff;
padding: 10px 0;
h4{
display: flex;
justify-content: space-between;
padding: 6px 11px 10px 18px;
>span:first-child{
font-size: 15px;
color: #333;
}
>span:last-child{
color: #F24949;
font-size: 12px;
}
}
ul{
color: #666;
font-size: 12px;
padding: 0 11px 0 18px;
}
button{
width: 101px;
height: 28px;
text-align: center;
line-height: 28px;
color: #fff;
background-color: #1B5B99;
border: none;
outline: none;
box-shadow: none;
border-radius: 20px;
}
}
}
}
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
import { MyService } from '../my.service';
@Component({ @Component({
selector: 'ydlife-renewal-reminder', selector: 'ydlife-renewal-reminder',
...@@ -6,10 +7,24 @@ import { Component, OnInit } from '@angular/core'; ...@@ -6,10 +7,24 @@ import { Component, OnInit } from '@angular/core';
styleUrls: ['./renewal-reminder.component.scss'] styleUrls: ['./renewal-reminder.component.scss']
}) })
export class RenewalReminderComponent implements OnInit { export class RenewalReminderComponent implements OnInit {
index:number = 1;
constructor() { } practitionerId:number;
lists:Array<any>;
selectTab(i){
this.index = i;
}
constructor(private myService:MyService) { }
ngOnInit() { ngOnInit() {
this.practitionerId = localStorage.getItem('lifeCustomerInfo')?JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId']:null;
}
queryNoticeList(){
this.myService.queryNoticeList({practitionerId:this.practitionerId,status:this.index}).subscribe(res=>{
if(res['success']){
this.lists = res['data']['list'];
}
})
} }
} }
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