Commit d2b439b7 by sunchao

Merge branch 'dev' into master

parents e0a0fad8 3095a83c
...@@ -18,6 +18,7 @@ export class AppComponent implements OnInit, OnDestroy { ...@@ -18,6 +18,7 @@ export class AppComponent implements OnInit, OnDestroy {
dialogInfo: any; dialogInfo: any;
// 是否显示首页浮标 // 是否显示首页浮标
isShowIndexBtn: boolean; isShowIndexBtn: boolean;
loginId:any;
constructor(private router: Router,private authService: AuthService, private lifeCommonService: LifeCommonService) { constructor(private router: Router,private authService: AuthService, private lifeCommonService: LifeCommonService) {
this.subscription = lifeCommonService.shareStatus$.subscribe(status => { this.subscription = lifeCommonService.shareStatus$.subscribe(status => {
this.shareGuidePageEnable = status == '1'; this.shareGuidePageEnable = status == '1';
...@@ -25,7 +26,8 @@ export class AppComponent implements OnInit, OnDestroy { ...@@ -25,7 +26,8 @@ export class AppComponent implements OnInit, OnDestroy {
} }
ngOnInit() { ngOnInit() {
this.authService.obtainToken().subscribe(res => { this.loginId = localStorage.getItem('lifeCustomerInfo')?JSON.parse(localStorage.getItem('lifeCustomerInfo')).mobileNo:null;
this.authService.obtainToken(this.loginId).subscribe(res => {
if (res['success']) { if (res['success']) {
localStorage.setItem('lifeToken', res['data']['token']); localStorage.setItem('lifeToken', res['data']['token']);
this.ydWxConfig(); this.ydWxConfig();
......
...@@ -43,12 +43,9 @@ export class AuthService { ...@@ -43,12 +43,9 @@ export class AuthService {
/** /**
* 获取TOKEN * 获取TOKEN
*/ */
obtainToken() { obtainToken(loginId) {
const url = this.API + '/authorize/obtainToken'; const url = this.API + '/authorize/obtainToken';
const ticketObj = { return this.http.post(url, JSON.stringify({ ticket: "life",loginId:loginId}));
ticket: 'life'
};
return this.http.post(url, JSON.stringify(ticketObj));
} }
//获取微信配置ydLife公众号 //获取微信配置ydLife公众号
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
<div class="weui-cell weui-cell_vcode" style="padding:12px 0px"> <div class="weui-cell weui-cell_vcode" style="padding:12px 0px">
<!-- <div class="weui-cell__hd"><label class="weui-label">验证码</label></div> --> <!-- <div class="weui-cell__hd"><label class="weui-label">验证码</label></div> -->
<div class="weui-cell__bd"> <div class="weui-cell__bd">
<input class="weui-input" type="tel" pattern="[0-9]*" id="js_input" placeholder="请输入验证码" maxlength="4" <input class="weui-input" type="tel" pattern="[0-9]*" id="js_input" placeholder="请输入验证码" maxlength="6"
name="verificationCode" [(ngModel)]="userInfo.verificationCode" (blur)="inputBlur()"> name="verificationCode" [(ngModel)]="userInfo.verificationCode" (blur)="inputBlur()">
</div> </div>
<div class="weui-cell__ft"> <div class="weui-cell__ft">
......
...@@ -42,7 +42,7 @@ export class LoginComponent implements OnInit, OnDestroy { ...@@ -42,7 +42,7 @@ export class LoginComponent implements OnInit, OnDestroy {
verificationCode: this.userInfo.verificationCode, verificationCode: this.userInfo.verificationCode,
expireTime: '3600' expireTime: '3600'
}; };
if (this.MOBILE_REGEXP.test(this.userInfo.mobileNo) && this.userInfo.verificationCode && this.userInfo.verificationCode.length == 4) { if (this.MOBILE_REGEXP.test(this.userInfo.mobileNo) && this.userInfo.verificationCode && this.userInfo.verificationCode.length == 6) {
this.authService.compare(compareInfo).subscribe(res => { this.authService.compare(compareInfo).subscribe(res => {
if (res['success']) { if (res['success']) {
this.authService.login({ mobileNo: this.userInfo.mobileNo }).subscribe((response) => { this.authService.login({ mobileNo: this.userInfo.mobileNo }).subscribe((response) => {
...@@ -52,6 +52,11 @@ export class LoginComponent implements OnInit, OnDestroy { ...@@ -52,6 +52,11 @@ export class LoginComponent implements OnInit, OnDestroy {
sessionStorage.setItem('subordinateSystemName', response['data']['practitionerBasicInfo']['subordinateName']) sessionStorage.setItem('subordinateSystemName', response['data']['practitionerBasicInfo']['subordinateName'])
} }
const lifeCustomerInfo = { ...response.data, mobileNo: this.userInfo.mobileNo, commonResult: null }; const lifeCustomerInfo = { ...response.data, mobileNo: this.userInfo.mobileNo, commonResult: null };
this.authService.obtainToken(this.userInfo.mobileNo).subscribe((res)=>{
if (res['success']) {
localStorage.setItem('lifeToken', res['data']['token']);
}
})
if (lifeCustomerInfo['customerId'] && lifeCustomerInfo['practitionerId']) { if (lifeCustomerInfo['customerId'] && lifeCustomerInfo['practitionerId']) {
// if (response['data']['practitionerTypeId'] == 28) { // if (response['data']['practitionerTypeId'] == 28) {
localStorage.setItem('lifeCustomerInfo', JSON.stringify(lifeCustomerInfo)); localStorage.setItem('lifeCustomerInfo', JSON.stringify(lifeCustomerInfo));
......
<div class="guidePageContainer" (click)="closeGuidePage()"> <div class="guidePageContainer" (click)="closeGuidePage()">
<div class="guideTips"> <div class="guideTips">
<p>请点击右上角菜单</p> <p>请点击右上角菜单</p>
<p>分享给朋友</p> <p>{{eNoticeId ? '分享给客户' :'分享给朋友'}}</p>
</div> </div>
<i class="iconfont icon-yindaojiantou"></i> <i class="iconfont icon-yindaojiantou"></i>
</div> </div>
...@@ -7,11 +7,14 @@ import { LifeCommonService } from "../life-common.service"; ...@@ -7,11 +7,14 @@ import { LifeCommonService } from "../life-common.service";
styleUrls: ['./guide-page.component.scss'] styleUrls: ['./guide-page.component.scss']
}) })
export class GuidePageComponent implements OnInit { export class GuidePageComponent implements OnInit {
eNoticeId:string;
constructor(private lifeCommonService: LifeCommonService) { constructor(private lifeCommonService: LifeCommonService) {
} }
ngOnInit() { ngOnInit() {
// 判断是分享给客户还是分享给朋友
this.eNoticeId = sessionStorage.getItem('eNoticeId');
setTimeout(() => { setTimeout(() => {
this.closeGuidePage(); this.closeGuidePage();
}, 6000); }, 6000);
......
...@@ -134,6 +134,7 @@ export class LifeCommonService { ...@@ -134,6 +134,7 @@ export class LifeCommonService {
link: link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致 link: link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: imgUrl, // 分享图标 imgUrl: imgUrl, // 分享图标
success: () => { success: () => {
console.log('试试');
_this.shareStatusPublish(0); _this.shareStatusPublish(0);
} }
}; };
......
...@@ -25,7 +25,8 @@ export class BusinessQuery { ...@@ -25,7 +25,8 @@ export class BusinessQuery {
public leadsAssignedId?: any, public leadsAssignedId?: any,
public expertType?: any, public expertType?: any,
public expertPractitionerId?: any, public expertPractitionerId?: any,
public expertPractitionerName?: any public expertPractitionerName?: any,
public mdDropOptionName?: any
) { ) {
......
<div class="wrapper"> <div class="wrapper">
<img src="assets/images/pass.png" alt="通过" /> <img src="assets/images/pass.png" alt="通过" />
<div style="font-size: 22px;font-weight: bold;margin: 15px auto;">您已经成功提交,谢谢!</div> <div style="font-size: 22px;font-weight: bold;margin: 15px auto;color:#333">{{type=='eNotice_submit' ? '您已提交成功': '您已经成功提交,谢谢!'}}</div>
<div class="before"> <div class="before" *ngIf="type == 'eNotice_submit'">
<p>感谢您的理解与配合</p>
</div>
<div class="footer" *ngIf="type == 'eNotice_submit'">
<div class="eQrocde">
<img src="assets/images/ydOnline.jpg" alt="银盾在线">
</div>
<div style="margin-top: 10px;letter-spacing:1px;color:#666;">请扫码关注“银盾在线”</div>
</div>
<div class="before" *ngIf="type!='eNotice_submit'">
<p>我们将在3个工作日完成报聘审核。</p> <p>我们将在3个工作日完成报聘审核。</p>
<p>一旦审核完成,将以短信方式通知您成功报聘,</p> <p>一旦审核完成,将以短信方式通知您成功报聘,</p>
<p>请注意查看。</p> <p>请注意查看。</p>
</div> </div>
<div class="after"> <div class="after" *ngIf="type!='eNotice_submit'">
<div style="margin-bottom: 15px;font-size: 16px;">通知您报聘成功后:</div> <div style="margin-bottom: 15px;font-size: 16px;">通知您报聘成功后:</div>
<ul> <ul>
<li>你可以关注“银盾保险经纪”的微信服务号</li> <li>你可以关注“银盾保险经纪”的微信服务号</li>
<li>在服务号里,用手机号登录我们的银盾经纪平台,可查看您经纪合同和公司相关资料。</li> <li>在服务号里,用手机号登录我们的银盾经纪平台,可查看您经纪合同和公司相关资料。</li>
...@@ -15,11 +24,11 @@ ...@@ -15,11 +24,11 @@
<li>运营人员将给您公司和相关介绍</li> <li>运营人员将给您公司和相关介绍</li>
</ul> </ul>
</div> </div>
<!-- <img src="assets/images/login_logo.png" alt="logo" style="width: 50%;position: absolute;left: 0;right: 0;margin: 0 auto;bottom: 20px;"> --> <!-- <img src="assets/images/login_logo.png" alt="logo" style="width: 50%;position: absolute;left: 0;right: 0;margin: 0 auto;bottom: 20px;"> -->
</div> </div>
<ydlife-alert *ngIf="isNeedAlert" [dialogInfo]="dialogInfo" (popInfo)="getPopInfo()"></ydlife-alert> <ydlife-alert *ngIf="isNeedAlert" [dialogInfo]="dialogInfo" (popInfo)="getPopInfo()"></ydlife-alert>
...@@ -12,6 +12,8 @@ export class EmployeeSubmitComponent implements OnInit { ...@@ -12,6 +12,8 @@ export class EmployeeSubmitComponent implements OnInit {
approveStatus:any; approveStatus:any;
isNeedAlert: boolean; isNeedAlert: boolean;
dialogInfo: any; dialogInfo: any;
// 判断是哪个成功页面
type:string;
constructor(private activatedRoute: ActivatedRoute, constructor(private activatedRoute: ActivatedRoute,
public lifeCommonService:LifeCommonService, public lifeCommonService:LifeCommonService,
private myService:MyService) { } private myService:MyService) { }
...@@ -22,8 +24,11 @@ export class EmployeeSubmitComponent implements OnInit { ...@@ -22,8 +24,11 @@ export class EmployeeSubmitComponent implements OnInit {
this.lifeCommonService.setTitle(title); this.lifeCommonService.setTitle(title);
this.hiringBasicInfoId = this.activatedRoute.snapshot.queryParams.hiringBasicInfoId?this.activatedRoute.snapshot.queryParams.hiringBasicInfoId:null; this.hiringBasicInfoId = this.activatedRoute.snapshot.queryParams.hiringBasicInfoId?this.activatedRoute.snapshot.queryParams.hiringBasicInfoId:null;
this.approveStatus = this.activatedRoute.snapshot.queryParams.status?this.activatedRoute.snapshot.queryParams.status:null; this.approveStatus = this.activatedRoute.snapshot.queryParams.status?this.activatedRoute.snapshot.queryParams.status:null;
if(this.approveStatus == null || this.approveStatus == '-1'){ this.type = this.activatedRoute.snapshot.routeConfig.path;
this.hiringSubmit(); if(this.type!='eNotice_submit'){
if(this.approveStatus == null || this.approveStatus == '-1'){
this.hiringSubmit();
}
} }
} }
......
...@@ -18,7 +18,7 @@ export class InvitationComponent implements OnInit { ...@@ -18,7 +18,7 @@ export class InvitationComponent implements OnInit {
hiringBasicInfoId:any; hiringBasicInfoId:any;
//被邀请人 //被邀请人
inviteeName:string; inviteeName:string;
constructor(private myService: MyService, constructor(private myService: MyService,
private activatedRoute: ActivatedRoute, private activatedRoute: ActivatedRoute,
public lifeCommonService: LifeCommonService, public lifeCommonService: LifeCommonService,
private router: Router) { } private router: Router) { }
...@@ -37,7 +37,7 @@ export class InvitationComponent implements OnInit { ...@@ -37,7 +37,7 @@ export class InvitationComponent implements OnInit {
//分享邀请 //分享邀请
sandInvitation() { sandInvitation() {
if(this.deviceType == 3){ if(this.deviceType == 3){
const imgUrl = this.lifeCustomerInfo.practitionerBasicInfo.headImagePath ? this.lifeCustomerInfo.practitionerBasicInfo.headImagePath : `${environment.ORIGINNAME}/ydLife/assets/images/icons/meng.png`; const imgUrl = this.lifeCustomerInfo.practitionerBasicInfo.headImagePath ? this.lifeCustomerInfo.practitionerBasicInfo.headImagePath : `${environment.DOMAINNAME}/ydLife/assets/images/icons/meng.png`;
this.lifeCommonService.shareStatusPublish(1); this.lifeCommonService.shareStatusPublish(1);
this.lifeCommonService.wxShare( this.lifeCommonService.wxShare(
'银盾保险经纪电子报聘邀请函', '银盾保险经纪电子报聘邀请函',
...@@ -48,8 +48,8 @@ export class InvitationComponent implements OnInit { ...@@ -48,8 +48,8 @@ export class InvitationComponent implements OnInit {
alert('请在微信公众号中发送邀请'); alert('请在微信公众号中发送邀请');
} }
} }
register(){ register(){
this.router.navigate(['/register'],{ queryParams: { hiringBasicInfoId:this.hiringBasicInfoId} }); this.router.navigate(['/register'],{ queryParams: { hiringBasicInfoId:this.hiringBasicInfoId} });
} }
......
<div class="register_wrapper"> <div class="register_wrapper">
<img class="logo" src="assets/images/register_logo.png" alt="logo" /> <img class="logo" src="assets/images/register_logo.png" alt="logo"/>
<div *ngIf="type=='identify'" style="font-size:14px;color:#666;margin-top:32px;letter-spacing:1px;">
<p>感谢您的信任和支持</p>
<p>耽搁您一分钟</p>
<p>完成客户告知书和保险经纪服务委托协议的签署</p>
</div>
<div class="weui-form__control-area"> <div class="weui-form__control-area">
<div class="weui-cells__group weui-cells__group_form"> <div class="weui-cells__group weui-cells__group_form">
<div class="weui-cells weui-cells_form"> <div class="weui-cells weui-cells_form">
<div class="weui-cell" style="padding:10px 0px" *ngIf="type=='identify'">
<div class="weui-cell__bd">
<input autofocus="" class="weui-input" type="tel" maxlength="11" pattern="[0-9]*" placeholder="请输入您的姓名"
name="mobileNo" [(ngModel)]="userInfo.name" [disabled]="type=='identify'" (blur)="inputBlur()">
</div>
</div>
<div class="weui-cell" style="padding:10px 0px"> <div class="weui-cell" style="padding:10px 0px">
<div class="weui-cell__bd"> <div class="weui-cell__bd">
<input autofocus="" class="weui-input" type="tel" maxlength="11" pattern="[0-9]*" placeholder="请输入您的真实手机" <input autofocus="" class="weui-input" type="tel" maxlength="11" pattern="[0-9]*" placeholder="请输入您的真实手机"
name="mobileNo" [(ngModel)]="userInfo.mobileNo" (blur)="inputBlur()"> name="mobileNo" [(ngModel)]="userInfo.mobileNo" (blur)="inputBlur()" [disabled]="type=='identify'">
</div> </div>
</div> </div>
<div class="weui-cell weui-cell_vcode" style="padding:12px 0px"> <div class="weui-cell weui-cell_vcode" style="padding:12px 0px">
<div class="weui-cell__bd"> <div class="weui-cell__bd">
<input class="weui-input" type="tel" pattern="[0-9]*" id="js_input" placeholder="请输入验证码" maxlength="4" <input class="weui-input" type="tel" pattern="[0-9]*" id="js_input" placeholder="请输入验证码" maxlength="6"
name="verificationCode" [(ngModel)]="userInfo.verificationCode" (blur)="inputBlur()"> name="verificationCode" [(ngModel)]="userInfo.verificationCode" (blur)="inputBlur()">
</div> </div>
<div class="weui-cell__ft"> <div class="weui-cell__ft">
...@@ -23,7 +34,7 @@ ...@@ -23,7 +34,7 @@
</div> </div>
</div> </div>
<footer style="width: 80%;margin-top: 30px;" (click)="checkVerificationCode()">下一步</footer> <footer style="width: 80%;margin-top: 30px;" (click)="checkVerificationCode()">下一步</footer>
<img style="position: relative;bottom: 0;left: 0;z-index: 1;" src="assets/images/register_bg.png" alt=""> <img style="position: relative;bottom: 0;left: 0;z-index: 1;" src="assets/images/register_bg.png" alt="" *ngIf="type!='identify'">
</div> </div>
<ydlife-alert *ngIf="isNeedAlert" [dialogInfo]="dialogInfo" (popInfo)="getPopInfo()"></ydlife-alert> <ydlife-alert *ngIf="isNeedAlert" [dialogInfo]="dialogInfo" (popInfo)="getPopInfo()"></ydlife-alert>
<ydlife-toast *ngIf="toastDialog" [toastInfo]="toastInfo"></ydlife-toast> <ydlife-toast *ngIf="toastDialog" [toastInfo]="toastInfo"></ydlife-toast>
...@@ -2,22 +2,28 @@ import { Component, OnInit } from "@angular/core"; ...@@ -2,22 +2,28 @@ import { Component, OnInit } from "@angular/core";
import { AuthService } from '../../../auth/auth.service'; import { AuthService } from '../../../auth/auth.service';
import { ActivatedRoute,Router } from "@angular/router"; import { ActivatedRoute,Router } from "@angular/router";
import { LifeCommonService } from "../../../common/life-common.service"; import { LifeCommonService } from "../../../common/life-common.service";
import { MyService } from "../../my.service";
import { THIS_EXPR } from "@angular/compiler/src/output/output_ast";
@Component({ @Component({
selector: "ydlife-register", selector: "ydlife-register",
templateUrl: "./register.component.html", templateUrl: "./register.component.html",
styleUrls: ["./register.component.scss"], styleUrls: ["./register.component.scss"],
}) })
export class RegisterComponent implements OnInit { export class RegisterComponent implements OnInit {
constructor(public authService: AuthService, constructor(public authService: AuthService,
private activatedRoute: ActivatedRoute, private activatedRoute: ActivatedRoute,
private router: Router, private router: Router,
public lifeCommonService: LifeCommonService) {} private myService: MyService,
public lifeCommonService: LifeCommonService) {
}
MOBILE_REGEXP = /^(1)\d{10}$/; MOBILE_REGEXP = /^(1)\d{10}$/;
sendCodeHtml: string = '获取验证码'; sendCodeHtml: string = '获取验证码';
timer: any; timer: any;
remainTimes: number = 60; remainTimes: number = 60;
disabledSendBtn: boolean = false; disabledSendBtn: boolean = false;
userInfo: any = { userInfo: any = {
name:null,
mobileNo: null, mobileNo: null,
verificationCode: null verificationCode: null
}; };
...@@ -28,16 +34,50 @@ export class RegisterComponent implements OnInit { ...@@ -28,16 +34,50 @@ export class RegisterComponent implements OnInit {
toastDialog: boolean; toastDialog: boolean;
toastInfo: any; toastInfo: any;
hiringBasicInfoId:any; hiringBasicInfoId:any;
// 判断是哪个注册页面
type:string;
// 分享电子告知书ID
eNoticeId:string;
// 电子告知书信息
eNoticeInfo:any;
ngOnInit() { ngOnInit() {
const title = this.activatedRoute.snapshot.data[0]['title']; const title = this.activatedRoute.snapshot.data[0]['title'];
this.lifeCommonService.setTitle(title); this.lifeCommonService.setTitle(title);
this.hiringBasicInfoId = this.activatedRoute.snapshot.queryParams.hiringBasicInfoId?this.activatedRoute.snapshot.queryParams.hiringBasicInfoId:null; this.hiringBasicInfoId = this.activatedRoute.snapshot.queryParams.hiringBasicInfoId?this.activatedRoute.snapshot.queryParams.hiringBasicInfoId:null;
this.eNoticeId = this.activatedRoute.snapshot.queryParams.eNoticeId?this.activatedRoute.snapshot.queryParams.eNoticeId:null;
sessionStorage.setItem('eNoticeId',this.eNoticeId);
this.type = this.activatedRoute.snapshot.routeConfig.path;
console.log(this.type)
if(this.type=='identify'){
this.queryInformedSheetById();
}
} }
inputBlur() { inputBlur() {
window.scrollTo(0, 0); window.scrollTo(0, 0);
} }
// 查询告知书链接
queryInformedSheetList(){
this.myService.queryInformedSheetList({id:this.eNoticeId}).subscribe(res=>{
if(res['success']){
this.eNoticeInfo = res['data']['list'][0];
if(this.eNoticeInfo['status']==1){
if (this.lifeCommonService.checkDeviceType() == '1') {
const newWindow = window.open();
newWindow.location.href = this.eNoticeInfo['informedOssPath'];
} else {
window.location.href = this.eNoticeInfo['informedOssPath'];
}
}else{
this.router.navigate(['/eNoticeSign']);
}
}else{
this.openPopInfo(res['message']);
}
})
}
// 发送验证码 // 发送验证码
verificationCode() { verificationCode() {
const verificationInfo = { const verificationInfo = {
...@@ -56,7 +96,7 @@ export class RegisterComponent implements OnInit { ...@@ -56,7 +96,7 @@ export class RegisterComponent implements OnInit {
this.openPopInfo('手机号不正确'); this.openPopInfo('手机号不正确');
} }
} }
// 倒计时 // 倒计时
countDown() { countDown() {
this.disabledSendBtn = true; this.disabledSendBtn = true;
...@@ -115,7 +155,27 @@ export class RegisterComponent implements OnInit { ...@@ -115,7 +155,27 @@ export class RegisterComponent implements OnInit {
}; };
this.authService.compare(compareCodeObj).subscribe((res)=>{ this.authService.compare(compareCodeObj).subscribe((res)=>{
if(res['success']){ if(res['success']){
this.router.navigate(['/employee_info'],{ queryParams: { hiringBasicInfoId:this.hiringBasicInfoId,mobileNo:this.userInfo.mobileNo} }); if(this.type=='identify'){
this.queryInformedSheetList();
}else{
this.router.navigate(['/employee_info'],{ queryParams: { hiringBasicInfoId:this.hiringBasicInfoId,mobileNo:this.userInfo.mobileNo} });
}
}else{
this.openPopInfo(res['message']);
}
})
}
// 通过ID获取用户信息
queryInformedSheetById(){
this.myService.queryInformedSheetById({'id':this.eNoticeId}).subscribe(res=>{
console.log(res);
if(res['success']){
const informed = res['data']['informed'];
this.userInfo = {
name:informed.customerName,
mobileNo: informed.customerMobile
};
}else{ }else{
this.openPopInfo(res['message']); this.openPopInfo(res['message']);
} }
......
...@@ -4,20 +4,26 @@ ...@@ -4,20 +4,26 @@
<div> <div>
电子签名<span style="font-size: 10px;font-weight: normal;">(请书写工整,字迹清晰)</span> 电子签名<span style="font-size: 10px;font-weight: normal;">(请书写工整,字迹清晰)</span>
</div> </div>
<span class="page_mark"> 8/8</span> <span class="page_mark" *ngIf="type!='eNotice'"> 8/8</span>
</div> </div>
<div class="signatureContent"> <div class="signatureContent">
<signature-pad *ngIf="!isSignatureShow" #signaturePad [options]="signaturePadOptions" (onBeginEvent)="drawStart()" (onEndEvent)="drawComplete()"> <signature-pad *ngIf="!isSignatureShow" #signaturePad [options]="signaturePadOptions" (onBeginEvent)="drawStart()" (onEndEvent)="drawComplete()">
</signature-pad> </signature-pad>
<img [src]="imgStr" alt="签名" *ngIf="isSignatureShow"> <img [src]="imgStr" alt="签名" *ngIf="isSignatureShow">
</div> </div>
<div *ngIf="type == 'eNotice'" style="margin-left: 13px;color: #666;">
<p>签署日期:{{todayDate | date:'yyyy-MM-dd'}}</p>
</div>
<div class="signature_action" *ngIf="approveStatus == null || approveStatus == '-1'"> <div class="signature_action" *ngIf="approveStatus == null || approveStatus == '-1'">
<img src="assets/images/clear.png" alt="清除" (click)="clearSignature();"/> <img src="assets/images/clear.png" alt="清除" (click)="clearSignature();"/>
<img src="assets/images/revoke.png" *ngIf="!isSignatureShow" alt="上一步" (click)="revokeSignature()"/> <img src="assets/images/revoke.png" *ngIf="!isSignatureShow" alt="上一步" (click)="revokeSignature()"/>
</div> </div>
<footer class="fixed" (click)="next()" *ngIf="approveStatus==null || approveStatus=='-1'"> <footer class="fixed" (click)="next()" *ngIf="(approveStatus==null || approveStatus=='-1') && type != 'eNotice'">
我自愿签订经纪人合同书 我自愿签订经纪人合同书
</footer> </footer>
<footer class="fixed" (click)="saveDigitalSignatures()" *ngIf="type == 'eNotice'" style="margin:45px;width:auto;border-radius:60px">
确认提交
</footer>
<div id="page" *ngIf="approveStatus!=null && approveStatus !='-1'"> <div id="page" *ngIf="approveStatus!=null && approveStatus !='-1'">
<div (click)="goBack()">上一页</div> <div (click)="goBack()">上一页</div>
<div (click)="viewNext()">下一页</div> <div (click)="viewNext()">下一页</div>
...@@ -26,4 +32,4 @@ ...@@ -26,4 +32,4 @@
返回审批结果 返回审批结果
</footer> </footer>
</div> </div>
<ydlife-alert *ngIf="isNeedAlert" [dialogInfo]="dialogInfo" (popInfo)="getPopInfo()"></ydlife-alert> <ydlife-alert *ngIf="isNeedAlert" [dialogInfo]="dialogInfo" (popInfo)="getPopInfo()"></ydlife-alert>
\ No newline at end of file
...@@ -20,16 +20,20 @@ export class SignatureComponent implements OnInit { ...@@ -20,16 +20,20 @@ export class SignatureComponent implements OnInit {
isSignatureShow:boolean; isSignatureShow:boolean;
viewApprovalInfo:any; viewApprovalInfo:any;
approveStatus:any; approveStatus:any;
// 获取页面适用类型
type:string;
todayDate:Date = new Date();
@ViewChild(SignaturePad) signaturePad : SignaturePad; @ViewChild(SignaturePad) signaturePad : SignaturePad;
constructor(private activatedRoute: ActivatedRoute, constructor(private activatedRoute: ActivatedRoute,
private router: Router,public lifeCommonService:LifeCommonService, private router: Router,public lifeCommonService:LifeCommonService,
public myService:MyService) { public myService:MyService) {
} }
ngOnInit() { ngOnInit() {
this.type = this.activatedRoute.snapshot.queryParams.type ? this.activatedRoute.snapshot.queryParams.type :null;
this.signaturePadOptions = { this.signaturePadOptions = {
minWidth: 0.5, minWidth: 0.5,
maxWidth: 3, maxWidth: 3,
...@@ -42,9 +46,12 @@ export class SignatureComponent implements OnInit { ...@@ -42,9 +46,12 @@ export class SignatureComponent implements OnInit {
} }
const title = this.activatedRoute.snapshot.data[0]['title']; const title = this.activatedRoute.snapshot.data[0]['title'];
this.lifeCommonService.setTitle(title); this.lifeCommonService.setTitle(title);
this.hiringBasicInfoId = this.activatedRoute.snapshot.queryParams.hiringBasicInfoId?this.activatedRoute.snapshot.queryParams.hiringBasicInfoId:null; if(this.type!='eNotice'){
this.queryWholeInfo(this.hiringBasicInfoId) this.hiringBasicInfoId = this.activatedRoute.snapshot.queryParams.hiringBasicInfoId?this.activatedRoute.snapshot.queryParams.hiringBasicInfoId:null;
this.viewApprovalInfo = sessionStorage.getItem('viewApprovalInfo'); this.queryWholeInfo(this.hiringBasicInfoId)
this.viewApprovalInfo = sessionStorage.getItem('viewApprovalInfo');
}
} }
next(){ next(){
...@@ -68,18 +75,30 @@ export class SignatureComponent implements OnInit { ...@@ -68,18 +75,30 @@ export class SignatureComponent implements OnInit {
this.openPopInfo('您还没有签名!'); this.openPopInfo('您还没有签名!');
return; return;
} }
const param = { if(this.type=='eNotice'){
hiringBasicInfoId:this.hiringBasicInfoId, this.myService.signInformedSheet({'id':sessionStorage.getItem('eNoticeId'),imgStr:this.imgStr}).subscribe(res=>{
imgStr:this.imgStr if(res['success']){
} // 确认提交
this.myService.saveDigitalSignatures(param).subscribe((res)=>{ this.router.navigate(['/eNotice_submit']);
if(res['success']){ }else{
this.queryWholeInfo(this.hiringBasicInfoId); this.openPopInfo(res['message']);
this.router.navigate(['/employee_submit'],{queryParams:{ hiringBasicInfoId:this.hiringBasicInfoId,status:this.approveStatus}}); }
}else{ })
this.openPopInfo(res['message']); }else{
const param = {
hiringBasicInfoId:this.hiringBasicInfoId,
imgStr:this.imgStr
} }
}) this.myService.saveDigitalSignatures(param).subscribe((res)=>{
if(res['success']){
this.queryWholeInfo(this.hiringBasicInfoId);
this.router.navigate(['/employee_submit'],{queryParams:{ hiringBasicInfoId:this.hiringBasicInfoId,status:this.approveStatus}});
}else{
this.openPopInfo(res['message']);
}
})
}
} }
queryWholeInfo(hiringBasicInfoId){ queryWholeInfo(hiringBasicInfoId){
......
<ydlife-e-notice></ydlife-e-notice>
<div class="">
<div class="signBtn" (click)="agree()">同意,并签署</div>
</div>
.signBtn{
margin: 30px 45px;
height: 48px;
line-height: 48px;
text-align: center;
border-radius: 46px;
background: #C81B1E;
color: #fff;
font-size: 18px;
font-weight: bold;
}
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ENoticeSignComponent } from './e-notice-sign.component';
describe('ENoticeSignComponent', () => {
let component: ENoticeSignComponent;
let fixture: ComponentFixture<ENoticeSignComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ ENoticeSignComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(ENoticeSignComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
@Component({
selector: 'ydlife-e-notice-sign',
templateUrl: './e-notice-sign.component.html',
styleUrls: ['./e-notice-sign.component.scss']
})
export class ENoticeSignComponent implements OnInit {
constructor(private router:Router) { }
ngOnInit() {
}
agree(){
this.router.navigate(['/eNoticeSignature'],{ queryParams: { type:'eNotice'} })
}
}
.csNoticeContent{
color: #666;
letter-spacing: 1px;
padding: 0 10px 50px 10px;
font-size: 18px;
h3{
text-align: center;
font-size: 19px;
font-weight: bold;
margin: 8px 0 15px 0;
}
h4{
font-weight: bold;
margin: 15px 0;
line-height: 1.5;
}
ul{
padding-left: 18px;
ol{
padding-left: 20px;
li{
list-style: lower-alpha;
}
}
}
ul li{
list-style: decimal;
}
ul.list_2{
li{
list-style: none;
display: flex;
span{
margin-right: 5px;
}
}
}
}
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ENoticeComponent } from './e-notice.component';
describe('ENoticeComponent', () => {
let component: ENoticeComponent;
let fixture: ComponentFixture<ENoticeComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ ENoticeComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(ENoticeComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'ydlife-e-notice',
templateUrl: './e-notice.component.html',
styleUrls: ['./e-notice.component.scss']
})
export class ENoticeComponent implements OnInit {
constructor() { }
ngOnInit() {
}
}
...@@ -99,7 +99,7 @@ export class MenuItemComponent implements OnInit { ...@@ -99,7 +99,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: 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: 32, subtitle: '公司介绍', icon: 'introduce', path: '', routerLink: '',showSubMenu:true },
{ no: 27, subtitle: '我的经纪合同', icon: 'contract', path: '', routerLink: 'my_application' ,showSubMenu:true}, { no: 27, subtitle: '我的经纪合同', icon: 'contract', path: '', routerLink: 'my_application' ,showSubMenu:true},
] ]
} }
]; ];
...@@ -181,7 +181,7 @@ export class MenuItemComponent implements OnInit { ...@@ -181,7 +181,7 @@ export class MenuItemComponent implements OnInit {
// 分享名片 // 分享名片
shareIdCard() { shareIdCard() {
const imgUrl = this.lifeCustomerInfo.practitionerBasicInfo.headImagePath ? this.lifeCustomerInfo.practitionerBasicInfo.headImagePath : `${environment.ORIGINNAME}/ydLife/assets/images/icons/meng.png`; const imgUrl = this.lifeCustomerInfo.practitionerBasicInfo.headImagePath ? this.lifeCustomerInfo.practitionerBasicInfo.headImagePath : `${environment.DOMAINNAME}/ydLife/assets/images/icons/meng.png`;
this.lifeCommonService.shareStatusPublish(1); this.lifeCommonService.shareStatusPublish(1);
this.lifeCommonService.wxShare( this.lifeCommonService.wxShare(
`银盾保险经纪 ${this.lifeCustomerInfo.practitionerBasicInfo.name}`, `银盾保险经纪 ${this.lifeCustomerInfo.practitionerBasicInfo.name}`,
......
...@@ -169,26 +169,38 @@ ...@@ -169,26 +169,38 @@
</div> </div>
</div> </div>
</div> </div>
<!-- 咨询问卷 -->
<div class="content" *ngIf="selectedId===2"> <div class="content" *ngIf="selectedId===2">
<div style="text-align: center;font-size: 16px;margin-top: 10px;" <div style="text-align: center;font-size: 16px;margin-top: 10px;"
*ngIf="opportunitySurveyAnswersList?.length==0 || !opportunitySurveyAnswersList"> *ngIf="opportunitySurveyAnswersList?.length==0 || !opportunitySurveyAnswersList">
暂无问卷信息</div> 暂无问卷信息</div>
<div *ngIf="!(opportunitySurveyAnswersList?.length==0 || !opportunitySurveyAnswersList)">
<div class="viewReportBtn" *ngIf="isCompletedQuestionnaire == 3" (click)="viewReport()">查看报告</div>
<div class="viewReportBtn" *ngIf="isCompletedQuestionnaire != 3">暂无报告</div>
</div>
<div class="answerContent" *ngFor="let surveyItem of opportunitySurveyAnswersList"> <div class="answerContent" *ngFor="let surveyItem of opportunitySurveyAnswersList">
<div class="questionTitle">{{surveyItem.questionName}}</div> <div class="questionTitle">{{surveyItem.questionName}}</div>
<div class="questionContent">{{surveyItem.optionName}}</div> <div class="questionContent">{{surveyItem.optionName}}</div>
</div> </div>
</div> </div>
<div class="content" *ngIf="selectedId===4"> <!-- 客户告知书 -->
<div style="text-align: center;font-size: 16px;margin-top: 10px;" *ngIf="isCompletedQuestionnaire!=3">暂无方案</div> <div class="content" *ngIf="selectedId===5">
<ydlife-e-notice></ydlife-e-notice>
<div class="send">
<div (click)="eNoticeState=true;">发送给客户签署</div>
</div>
</div> </div>
<!-- 商机跟进 -->
<div class="content" *ngIf="selectedId===3"> <div class="content" *ngIf="selectedId===3">
<ul class="recordLists"> <ul class="recordLists">
<li *ngFor="let opportunityRecordItem of opportunityRecordInfos;index as idx"> <li *ngFor="let opportunityRecordItem of opportunityRecordInfos;index as idx">
<div style="display: flex;justify-content: space-between;height: 25px;"> <div style="display: flex;justify-content: space-between;height: 25px;">
<div class="updatedAt">{{opportunityRecordItem.noticeDate}}</div> <div class="updatedAt">{{opportunityRecordItem.noticeDate}}</div>
<div class="opportunityRecordItem"> <div class="opportunityRecordItem">
{{opportunityRecordItem.mdDropOptionName?opportunityRecordItem.mdDropOptionName:'待跟进'}}</div> <a *ngIf="opportunityRecordItem.informedOssPath" href="{{opportunityRecordItem.informedOssPath}}" target="_blank"><i class="iconfont icon-pdf" style="color: #C81B1E;margin-right:5px"></i></a>
<span [ngStyle]="setBackgroundColor(opportunityRecordItem)">{{opportunityRecordItem.mdDropOptionName?opportunityRecordItem.mdDropOptionName:'待跟进'}}</span>
</div>
</div> </div>
<div class="salesNotice"> <div class="salesNotice">
<span> <span>
...@@ -248,6 +260,40 @@ ...@@ -248,6 +260,40 @@
<li (click)="closeToast()">取消</li> <li (click)="closeToast()">取消</li>
</ul> </ul>
</div> </div>
<!-- 客户告知书弹窗 -->
<div class="eNoticeDialog">
<div class="eNoticeContent">
<Modal [(ngModel)]="this.eNoticeState" [transparent]="true" [closable]="true" (onClose)="onClose()">
<div [ngStyle]="{ height: 300, overflow: 'scroll' }">
<div class="am-list" style="margin:0;">
<div class="am-list-item">
<InputItem [clear]="true"
[value]="editBusiness.name"
(onChange)="editBusiness.name = $event">姓名:</InputItem>
</div>
<div class="am-list-item">
<InputItem [type]="'phone'"
[value]="editBusiness.mobileNo"
(onChange)="editBusiness.mobileNo = $event">手机号码:</InputItem>
</div>
<div class="am-list-line" style="color: #999;font-size:12px">
<p style="margin-bottom: 5px;">(请确保客户姓名和手机号填写正确</p>
<p>将会用于客户签署告知书时的身份验证)</p>
</div>
<div class="am-list-item am-list-item-middle">
<div class="am-list-line">
<div class="am-list-content"
style="width:100%;color:#fff;text-align:center;background-color: #2179AD;border-radius: 20px;margin:18px auto"
(click)="sendENotice()"
>发送</div>
</div>
</div>
</div>
</div>
</Modal>
</div>
</div>
</div> </div>
<ydlife-toast *ngIf="toastDialog" [toastInfo]="toastInfo"></ydlife-toast> <ydlife-toast *ngIf="toastDialog" [toastInfo]="toastInfo"></ydlife-toast>
<ydlife-alert *ngIf="isNeedAlert" [dialogInfo]="dialogInfo" (popInfo)="getPopInfo()"></ydlife-alert> <ydlife-alert *ngIf="isNeedAlert" [dialogInfo]="dialogInfo" (popInfo)="getPopInfo()"></ydlife-alert>
\ No newline at end of file
...@@ -15,13 +15,13 @@ ...@@ -15,13 +15,13 @@
margin-right: 10px; margin-right: 10px;
line-height: 30px; line-height: 30px;
height: 30px; height: 30px;
width: 25%; flex: 1;
text-align: center; text-align: center;
border: 1px #a9aabb solid; border: 1px #a9aabb solid;
border-radius: 20px; border-radius: 20px;
h3 { h3 {
font-weight: normal; font-weight: normal;
font-size: 16px; font-size: 15px;
} }
} }
li.selected { li.selected {
...@@ -174,6 +174,32 @@ ...@@ -174,6 +174,32 @@
line-height: 30px; line-height: 30px;
} }
} }
.viewReportBtn{
position: fixed;
bottom: 0;
left: 0;
width: 100%;
height: 44px;
text-align: center;
background: #2179AD;
color: #fff;
line-height: 44px;
}
.send{
position: fixed;
bottom: 30px;
width: 100%;
div{
margin: 0 40px;
height: 40px;
line-height: 40px;
text-align: center;
color: #fff;
font-size: 18px;
background: #2179AD;
border-radius: 20px;
}
}
} }
.editContainer { .editContainer {
...@@ -283,4 +309,7 @@ ...@@ -283,4 +309,7 @@
background-color: rgba(0, 0, 0, .5); background-color: rgba(0, 0, 0, .5);
top: 0; top: 0;
} }
.am-list-item.am-input-item{
padding-left: 0;
}
} }
...@@ -3,6 +3,7 @@ import { MyService } from '../my.service'; ...@@ -3,6 +3,7 @@ import { MyService } from '../my.service';
import { ActivatedRoute, Router } from "@angular/router"; import { ActivatedRoute, Router } from "@angular/router";
import { BusinessQuery } from '../../domain/businessQuery'; import { BusinessQuery } from '../../domain/businessQuery';
import { LifeCommonService } from '../../common/life-common.service'; import { LifeCommonService } from '../../common/life-common.service';
import {environment} from '../../../environments/environment';
@Component({ @Component({
selector: 'ydlife-my-business-detail', selector: 'ydlife-my-business-detail',
templateUrl: './my-business-detail.component.html', templateUrl: './my-business-detail.component.html',
...@@ -16,7 +17,7 @@ export class MyBusinessDetailComponent implements OnInit { ...@@ -16,7 +17,7 @@ export class MyBusinessDetailComponent implements OnInit {
surveyAnswersList: Array<any>; surveyAnswersList: Array<any>;
readonlyFlag: boolean = true; readonlyFlag: boolean = true;
orderId: number; orderId: number;
opportunityId: string; opportunityId: number;
opportunitySurveyAnswersList: Array<any>; opportunitySurveyAnswersList: Array<any>;
tagList: Array<any>; tagList: Array<any>;
editBusiness: BusinessQuery = new BusinessQuery(); editBusiness: BusinessQuery = new BusinessQuery();
...@@ -63,24 +64,33 @@ export class MyBusinessDetailComponent implements OnInit { ...@@ -63,24 +64,33 @@ export class MyBusinessDetailComponent implements OnInit {
isNeedAlert: boolean; isNeedAlert: boolean;
dialogInfo: any; dialogInfo: any;
practitionerId:any; practitionerId:any;
// 电子告知书弹窗显示
eNoticeState:boolean = false;
deviceType:number;
// 获取经纪人信息
lifeCustomerInfo:any;
constructor(private activateRoute: ActivatedRoute, private myService: MyService, constructor(private activateRoute: ActivatedRoute, private myService: MyService,
public lifeCommonService: LifeCommonService, private router: Router, ) { public lifeCommonService: LifeCommonService, private router: Router, ) {
this.titleList = [ this.titleList = [
{ id: 1, name: '基本信息' }, { id: 1, name: '基本信息' },
{ id: 3, name: '商机跟进' }, { id: 3, name: '商机跟进' },
{ id: 2, name: '咨询问卷' }, { id: 2, name: '咨询问卷' },
{ id: 4, name: '咨询报告' }, // { id: 4, name: '咨询报告' },
{ id: 5, name: '客户告知书' }
] ]
} }
ngOnInit() { ngOnInit() {
// 获取设备
this.deviceType = this.lifeCommonService.checkDeviceType();
this.orderId = this.activateRoute.snapshot.queryParams['orderId']; this.orderId = this.activateRoute.snapshot.queryParams['orderId'];
//商机对应的客户id //商机对应的客户id
this.opportunityId = this.activateRoute.snapshot.paramMap.get('id'); this.opportunityId = +this.activateRoute.snapshot.paramMap.get('id');
//商机id //商机id
this.leadsAssignedId = this.activateRoute.snapshot.queryParams['leadsAssignedId']; this.leadsAssignedId = this.activateRoute.snapshot.queryParams['leadsAssignedId'];
this.opportunityRecordId = null; this.opportunityRecordId = null;
this.practitionerId = JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId'] this.lifeCustomerInfo = JSON.parse(localStorage.getItem('lifeCustomerInfo'));
this.practitionerId = this.lifeCustomerInfo['practitionerId'];
this.tagQuery(); this.tagQuery();
//商机状态 //商机状态
this.dropOptionsQuery('bizchance_promotion_action'); this.dropOptionsQuery('bizchance_promotion_action');
...@@ -134,15 +144,14 @@ export class MyBusinessDetailComponent implements OnInit { ...@@ -134,15 +144,14 @@ export class MyBusinessDetailComponent implements OnInit {
selectTab(id) { selectTab(id) {
if (this.clickFlag == true) { if (this.clickFlag == true) {
this.selectedId = id; 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 { } else {
this.selectedId = 1; this.selectedId = 1;
} }
} }
// 查看报告
viewReport(){
window.location.href = `https://${window.location.host}/customizedPlanList/3?orderId=${this.orderId}&customerId=${this.opportunityId}`
}
ownOpportunityDetailQuery() { ownOpportunityDetailQuery() {
const detailParam = { const detailParam = {
...@@ -588,13 +597,83 @@ export class MyBusinessDetailComponent implements OnInit { ...@@ -588,13 +597,83 @@ export class MyBusinessDetailComponent implements OnInit {
}; };
} }
}) })
} }
// 关闭弹窗 // 关闭弹窗
getPopInfo() { getPopInfo() {
this.isNeedAlert = false; this.isNeedAlert = false;
} }
// 关闭客户告知书
onClose() {
this.eNoticeState = false;
}
// 发送电子客户告知书,opportunityIdID = CustomerId
sendENotice(){
this.eNoticeState = false;
if(this.deviceType != 3){
alert('请在微信公众号中发送邀请');
return;
}
const param = {
 practitionerId:this.lifeCustomerInfo['practitionerId'],
     leadsAssignedId:this.leadsAssignedId,
     customerName: this.editBusiness.name,
     customerId:this.editBusiness.opportunityId,
     customerMobile: this.editBusiness.mobileNo.replace(/\s/g, ''),
loginId:this.lifeCustomerInfo['customerId']
}
this.myService.saveInformedSheet(param).subscribe(res=>{
if(res['success']){
setTimeout(()=>{
const imgUrl = this.lifeCustomerInfo.practitionerBasicInfo.headImagePath ? this.lifeCustomerInfo.practitionerBasicInfo.headImagePath : `${environment.DOMAINNAME}/ydLife/assets/images/icons/meng.png`;
console.log(imgUrl);
this.lifeCommonService.shareStatusPublish(1);
this.lifeCommonService.wxShare(
'保险服务委托协议和客户告知书签署',
`您的保险服务委托协议和客户告知书已准备好,请查收并签署,感谢信任和支持。`,
`https://${window.location.host}/ydLife/identify?eNoticeId=${res['data']['id']}`,
imgUrl);
},500)
}else{
this.toastDialog = true;
this.toastInfo = {
status: 1,
msg: res['message'],
timeout: 3000,
align: 'center'
};
return false;
}
})
}
// 设置样式
setBackgroundColor(e){
let bgColor = 'transparent';
let fontColor = '#666';
if(e.informedOssPath && e.status==0){
bgColor = '#999999';
fontColor = '#fff';
}else if(e.informedOssPath && e.status==1){
bgColor = '#C81B1E';
fontColor = '#fff';
}else{
bgColor = 'transparent';
fontColor = '#666';
}
let style = {
'background-color':bgColor,
'color':fontColor,
'padding':"1px 3px",
'border-radius':"3px"
};
return style;
}
} }
...@@ -66,6 +66,7 @@ import { MyQuestionComponent } from './my-question/my-question.component'; ...@@ -66,6 +66,7 @@ import { MyQuestionComponent } from './my-question/my-question.component';
import { AskComponent } from './ask/ask.component'; import { AskComponent } from './ask/ask.component';
import { MenuItemComponent } from './menu-item/menu-item.component'; import { MenuItemComponent } from './menu-item/menu-item.component';
import { MemberListComponent } from './member-list/member-list.component'; import { MemberListComponent } from './member-list/member-list.component';
import { ENoticeSignComponent } from './e-notice-sign/e-notice-sign.component';
const myRoutes: Routes = [ const myRoutes: Routes = [
{ path: '', component: MyCenterHomeComponent, canActivate: [AuthGuard], data: [{ title: '银盾保险经纪 - 工作台' }] }, { path: '', component: MyCenterHomeComponent, canActivate: [AuthGuard], data: [{ title: '银盾保险经纪 - 工作台' }] },
...@@ -102,6 +103,8 @@ const myRoutes: Routes = [ ...@@ -102,6 +103,8 @@ const myRoutes: Routes = [
{ path: 'inviter' ,component:InvitationComponent,canActivate:[AuthGuard],data:[{type:'inviter',title: '邀请函'}]}, { path: 'inviter' ,component:InvitationComponent,canActivate:[AuthGuard],data:[{type:'inviter',title: '邀请函'}]},
{ path: 'invitees' ,component:InvitationComponent,data:[{type:'invitees',title: '邀请函'}]}, { path: 'invitees' ,component:InvitationComponent,data:[{type:'invitees',title: '邀请函'}]},
{ path: 'register' ,component:RegisterComponent,data: [{ title: '注册信息' }]}, { path: 'register' ,component:RegisterComponent,data: [{ title: '注册信息' }]},
{ path: 'identify' ,component:RegisterComponent,data: [{ title: '保险经纪服务委托协议和客户告知书' }]},
{ path: 'eNoticeSign' ,component:ENoticeSignComponent,data: [{ title: '保险经纪服务委托协议和客户告知书' }]},
{ path: 'employee_info',component:EmployeeInfoComponent,data: [{ title: '银盾经纪人报聘' }]}, { path: 'employee_info',component:EmployeeInfoComponent,data: [{ title: '银盾经纪人报聘' }]},
{ path: 'employee_basic_info',component:EmployeeBasicInfoComponent,data: [{ title: '银盾经纪人报聘' }] }, { path: 'employee_basic_info',component:EmployeeBasicInfoComponent,data: [{ title: '银盾经纪人报聘' }] },
{ path: 'work_experience',component:WorkExperienceComponent,data: [{ title: '银盾经纪人报聘' }] }, { path: 'work_experience',component:WorkExperienceComponent,data: [{ title: '银盾经纪人报聘' }] },
...@@ -113,7 +116,9 @@ const myRoutes: Routes = [ ...@@ -113,7 +116,9 @@ const myRoutes: Routes = [
{ path: 'personal_statement',component:PersonalStatementComponent,data: [{ type:'personal_statement',title: '银盾经纪人报聘' }] }, { path: 'personal_statement',component:PersonalStatementComponent,data: [{ type:'personal_statement',title: '银盾经纪人报聘' }] },
{ path: 'contract',component:PersonalStatementComponent,data: [{ type:'contract',title: '银盾经纪人报聘' }] }, { path: 'contract',component:PersonalStatementComponent,data: [{ type:'contract',title: '银盾经纪人报聘' }] },
{ path: 'signature',component:SignatureComponent,data: [{ title: '银盾经纪人报聘' }]}, { path: 'signature',component:SignatureComponent,data: [{ title: '银盾经纪人报聘' }]},
{ path: 'eNoticeSignature',component:SignatureComponent,data: [{ title: '保险经纪服务委托协议和客户告知书' }]},
{ path: 'employee_submit',component:EmployeeSubmitComponent,data: [{ title: '已提交' }]}, { path: 'employee_submit',component:EmployeeSubmitComponent,data: [{ title: '已提交' }]},
{ path: 'eNotice_submit',component:EmployeeSubmitComponent,data: [{ title: '已提交' }]},
{ path: 'member_detail/:practitionerId',component:MemberDetailComponent, canActivate: [AuthGuard]}, { path: 'member_detail/:practitionerId',component:MemberDetailComponent, canActivate: [AuthGuard]},
{ path: 'approval_list',component:ApprovalListComponent, data: [{ title: '审批列表' }],canActivate: [AuthGuard]}, { path: 'approval_list',component:ApprovalListComponent, data: [{ title: '审批列表' }],canActivate: [AuthGuard]},
{ path: 'approval_comments',component:ApprovalCommentsComponent,canActivate:[AuthGuard]}, { path: 'approval_comments',component:ApprovalCommentsComponent,canActivate:[AuthGuard]},
......
...@@ -89,4 +89,4 @@ ...@@ -89,4 +89,4 @@
</div> </div>
<ydlife-alert *ngIf="isNeedAlert" [dialogInfo]="dialogInfo" (popInfo)="getPopInfo()"></ydlife-alert> <ydlife-alert *ngIf="isNeedAlert" [dialogInfo]="dialogInfo" (popInfo)="getPopInfo()"></ydlife-alert>
<ydlife-toast *ngIf="toastDialog" [toastInfo]="toastInfo"></ydlife-toast> <ydlife-toast *ngIf="toastDialog" [toastInfo]="toastInfo"></ydlife-toast>
\ No newline at end of file
...@@ -79,9 +79,11 @@ import { MyQuestionComponent } from './my-question/my-question.component'; ...@@ -79,9 +79,11 @@ import { MyQuestionComponent } from './my-question/my-question.component';
import { AskComponent } from './ask/ask.component'; import { AskComponent } from './ask/ask.component';
import { MenuItemComponent } from './menu-item/menu-item.component'; import { MenuItemComponent } from './menu-item/menu-item.component';
import { MemberListComponent } from './member-list/member-list.component'; import { MemberListComponent } from './member-list/member-list.component';
import { ENoticeComponent } from './e-notice/e-notice.component';
import { ENoticeSignComponent } from './e-notice-sign/e-notice-sign.component';
@NgModule({ @NgModule({
declarations: [MyCenterHomeComponent, MkMaterialComponent, MkMaterialDetailComponent, FileUploadComponent, ImportantAnnouncementComponent, SalesDetailComponent, AnnouncementDetailComponent, MyBusinessComponent, MyBusinessDetailComponent, PickerComponent, MyToastComponent, SalesRankComponent, TeamRankComponent, RecruitingComponent, RecruitingDetailComponent, ThanksComponent, MySettingComponent, MySettingDetailComponent, MyNewsComponent, MyTargetComponent, TeamPanelComponent, SwitchNumberPipe, TeamSalesScoreComponent, ScoreDetailsComponent, BusinessCardComponent, OrderDetailComponent, SalaryComponent, TodoListComponent, AddTaskComponent, MedicalServiceComponent, InvitationComponent, RegisterComponent, EmployeeInfoComponent, EmployeeBasicInfoComponent, WorkExperienceComponent, PersonalPhotosComponent, EmployeeIdCardComponent, EmployeeEducationComponent, PersonalStatementComponent, SignatureComponent, EmployeeSubmitComponent, BankCardComponent, MemberDetailComponent, ApprovalListComponent, ApprovalCommentsComponent, ApprovalResultListComponent, MyApplicationComponent, SuggestionComponent, EmployeeSalaryComponent, HistoricalRankComponent, TeamAreaPanelComponent, ArticleComponent, ArticleDetailComponent, ArticleReadComponent,SalaryDetailComponent,SalaryFirstYearComponent,DetailModalComponent, ProductComponent, ProductDataComponent, CommissionComponent, FileListComponent,MyCustomerComponent, CustomerRelationComponent, MyCustomerPolicyComponent, UnderwritingKnowledgeComponent, MyQuestionComponent, AskComponent, MenuItemComponent, MemberListComponent], declarations: [MyCenterHomeComponent, MkMaterialComponent, MkMaterialDetailComponent, FileUploadComponent, ImportantAnnouncementComponent, SalesDetailComponent, AnnouncementDetailComponent, MyBusinessComponent, MyBusinessDetailComponent, PickerComponent, MyToastComponent, SalesRankComponent, TeamRankComponent, RecruitingComponent, RecruitingDetailComponent, ThanksComponent, MySettingComponent, MySettingDetailComponent, MyNewsComponent, MyTargetComponent, TeamPanelComponent, SwitchNumberPipe, TeamSalesScoreComponent, ScoreDetailsComponent, BusinessCardComponent, OrderDetailComponent, SalaryComponent, TodoListComponent, AddTaskComponent, MedicalServiceComponent, InvitationComponent, RegisterComponent, EmployeeInfoComponent, EmployeeBasicInfoComponent, WorkExperienceComponent, PersonalPhotosComponent, EmployeeIdCardComponent, EmployeeEducationComponent, PersonalStatementComponent, SignatureComponent, EmployeeSubmitComponent, BankCardComponent, MemberDetailComponent, ApprovalListComponent, ApprovalCommentsComponent, ApprovalResultListComponent, MyApplicationComponent, SuggestionComponent, EmployeeSalaryComponent, HistoricalRankComponent, TeamAreaPanelComponent, ArticleComponent, ArticleDetailComponent, ArticleReadComponent,SalaryDetailComponent,SalaryFirstYearComponent,DetailModalComponent, ProductComponent, ProductDataComponent, CommissionComponent, FileListComponent,MyCustomerComponent, CustomerRelationComponent, MyCustomerPolicyComponent, UnderwritingKnowledgeComponent, MyQuestionComponent, AskComponent, MenuItemComponent, MemberListComponent, ENoticeComponent, ENoticeSignComponent],
imports: [ imports: [
CommonModule, CommonModule,
LifeCommonModule, LifeCommonModule,
......
...@@ -729,4 +729,29 @@ export class MyService { ...@@ -729,4 +729,29 @@ export class MyService {
return this.http.post(url, JSON.stringify(objParam)); return this.http.post(url, JSON.stringify(objParam));
} }
// 保存客户告知书分享信息
saveInformedSheet(objParam) {
const url = this.ydapi + "/practitioner/saveInformedSheet";
return this.http.post(url, JSON.stringify(objParam));
}
// 获取客户告知书分享信息
queryInformedSheetById(objParam) {
const url = this.ydapi + "/practitioner/queryInformedSheetById";
return this.http.post(url, JSON.stringify(objParam));
}
// 保存客户签名
signInformedSheet(objParam) {
const url = this.ydapi + "/practitioner/signInformedSheet";
return this.http.post(url, JSON.stringify(objParam));
}
// 查询电子告知书列表
queryInformedSheetList(param){
const url = this.ydapi + "/practitioner/queryInformedSheetList";
return this.http.post(url, JSON.stringify(param)).pipe(res => {
return res;
});
}
} }
...@@ -42,14 +42,14 @@ ...@@ -42,14 +42,14 @@
<body> <body>
<app-root> <app-root>
</app-root> </app-root>
<!-- <div class="loadingBox" id="loading" <!-- <div class="loadingBox" id="loading"
style="display: flex;justify-content: center;align-items: center;position: fixed;left:40%;top:40%;width:100%;height: 100%;"> style="display: flex;justify-content: center;align-items: center;position: fixed;left:40%;top:40%;width:100%;height: 100%;">
<img src="assets/images/loading.gif" alt="loading" class="img-responsive" style="width: 68px;height: 68px;"> <img src="assets/images/loading.gif" alt="loading" class="img-responsive" style="width: 68px;height: 68px;">
</div> --> </div> -->
<div id="adv" <div id="adv"
style="width: 100%;min-width: 320px;height:100%;max-width: 640px;overflow: hidden;position: fixed;top: 0;right: 0; bottom: 0;left: 0;background: #fff;margin: auto;"> style="width: 100%;min-width: 320px;height:100%;max-width: 640px;overflow: hidden;position: fixed;top: 0;right: 0; bottom: 0;left: 0;background: #fff;margin: auto;display: none;">
<div class="content" style="text-align: center;margin: 0 auto;"> <div class="content" style="text-align: center;margin: 0 auto;">
<img style="width:100%;margin-bottom: 15px;" src="assets/images/loading_bg.png"> <img style="width:100%;margin-bottom: 15px;" src="assets/images/loading_bg.png">
<!-- <div style="margin-top: 45%;">欢迎回家,先喝碗鸡汤</div> --> <!-- <div style="margin-top: 45%;">欢迎回家,先喝碗鸡汤</div> -->
...@@ -73,6 +73,7 @@ ...@@ -73,6 +73,7 @@
<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://' + window.location.host;
var loginId = localStorage.getItem('lifeCustomerInfo')?JSON.parse(localStorage.getItem('lifeCustomerInfo')).mobileNo:null;
// var api = 'https://mdev.zuihuibi.cn'; // var api = 'https://mdev.zuihuibi.cn';
function getToken() { function getToken() {
$.ajax({ $.ajax({
...@@ -80,7 +81,8 @@ ...@@ -80,7 +81,8 @@
url: api + '/api/authorize/obtainToken', url: api + '/api/authorize/obtainToken',
contentType: "application/json", contentType: "application/json",
data: JSON.stringify({ data: JSON.stringify({
ticket: 'life' ticket: 'life',
loginId:loginId
}), }),
async: false, async: false,
success: function (res) { success: function (res) {
...@@ -115,17 +117,11 @@ ...@@ -115,17 +117,11 @@
} }
//页面刷新的时候不出现 //页面刷新的时候不出现
if (window.name == "") { if (window.name == "") {
window.name = "isReload"; // 在首次进入页面时我们可以给window.name设置一个固定值 if(window.location.pathname != '/ydLife/identify'){
if(shareCode){ window.name = "isReload"; // 在首次进入页面时我们可以给window.name设置一个固定值
let loading = document.getElementById("adv");
loading.style.display = 'none';
}else{
initialize(); initialize();
getknowledgeQry();
} }
getknowledgeQry();
} else if (window.name == "isReload") {
let loading = document.getElementById("adv");
loading.style.display = 'none';
} }
//用于去除alert的url //用于去除alert的url
...@@ -170,7 +166,7 @@ ...@@ -170,7 +166,7 @@
} }
}) })
} }
// (function() { // (function() {
// if (typeof WeixinJSBridge == "object" && typeof WeixinJSBridge.invoke == "function") { // if (typeof WeixinJSBridge == "object" && typeof WeixinJSBridge.invoke == "function") {
...@@ -190,4 +186,4 @@ ...@@ -190,4 +186,4 @@
</script> </script>
</body> </body>
</html> </html>
\ No newline at end of file
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