Commit d2b439b7 by sunchao

Merge branch 'dev' into master

parents e0a0fad8 3095a83c
......@@ -18,6 +18,7 @@ export class AppComponent implements OnInit, OnDestroy {
dialogInfo: any;
// 是否显示首页浮标
isShowIndexBtn: boolean;
loginId:any;
constructor(private router: Router,private authService: AuthService, private lifeCommonService: LifeCommonService) {
this.subscription = lifeCommonService.shareStatus$.subscribe(status => {
this.shareGuidePageEnable = status == '1';
......@@ -25,7 +26,8 @@ export class AppComponent implements OnInit, OnDestroy {
}
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']) {
localStorage.setItem('lifeToken', res['data']['token']);
this.ydWxConfig();
......
......@@ -43,12 +43,9 @@ export class AuthService {
/**
* 获取TOKEN
*/
obtainToken() {
obtainToken(loginId) {
const url = this.API + '/authorize/obtainToken';
const ticketObj = {
ticket: 'life'
};
return this.http.post(url, JSON.stringify(ticketObj));
return this.http.post(url, JSON.stringify({ ticket: "life",loginId:loginId}));
}
//获取微信配置ydLife公众号
......
......@@ -19,7 +19,7 @@
<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__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()">
</div>
<div class="weui-cell__ft">
......
......@@ -42,7 +42,7 @@ export class LoginComponent implements OnInit, OnDestroy {
verificationCode: this.userInfo.verificationCode,
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 => {
if (res['success']) {
this.authService.login({ mobileNo: this.userInfo.mobileNo }).subscribe((response) => {
......@@ -52,6 +52,11 @@ export class LoginComponent implements OnInit, OnDestroy {
sessionStorage.setItem('subordinateSystemName', response['data']['practitionerBasicInfo']['subordinateName'])
}
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 (response['data']['practitionerTypeId'] == 28) {
localStorage.setItem('lifeCustomerInfo', JSON.stringify(lifeCustomerInfo));
......
<div class="guidePageContainer" (click)="closeGuidePage()">
<div class="guideTips">
<p>请点击右上角菜单</p>
<p>分享给朋友</p>
<p>{{eNoticeId ? '分享给客户' :'分享给朋友'}}</p>
</div>
<i class="iconfont icon-yindaojiantou"></i>
</div>
......@@ -7,11 +7,14 @@ import { LifeCommonService } from "../life-common.service";
styleUrls: ['./guide-page.component.scss']
})
export class GuidePageComponent implements OnInit {
eNoticeId:string;
constructor(private lifeCommonService: LifeCommonService) {
}
ngOnInit() {
// 判断是分享给客户还是分享给朋友
this.eNoticeId = sessionStorage.getItem('eNoticeId');
setTimeout(() => {
this.closeGuidePage();
}, 6000);
......
......@@ -134,6 +134,7 @@ export class LifeCommonService {
link: link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: imgUrl, // 分享图标
success: () => {
console.log('试试');
_this.shareStatusPublish(0);
}
};
......
......@@ -25,7 +25,8 @@ export class BusinessQuery {
public leadsAssignedId?: any,
public expertType?: any,
public expertPractitionerId?: any,
public expertPractitionerName?: any
public expertPractitionerName?: any,
public mdDropOptionName?: any
) {
......
<div class="wrapper">
<img src="assets/images/pass.png" alt="通过" />
<div style="font-size: 22px;font-weight: bold;margin: 15px auto;">您已经成功提交,谢谢!</div>
<div class="before">
<div style="font-size: 22px;font-weight: bold;margin: 15px auto;color:#333">{{type=='eNotice_submit' ? '您已提交成功': '您已经成功提交,谢谢!'}}</div>
<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>一旦审核完成,将以短信方式通知您成功报聘,</p>
<p>请注意查看。</p>
</div>
<div class="after">
<div style="margin-bottom: 15px;font-size: 16px;">通知您报聘成功后:</div>
<div class="after" *ngIf="type!='eNotice_submit'">
<div style="margin-bottom: 15px;font-size: 16px;">通知您报聘成功后:</div>
<ul>
<li>你可以关注“银盾保险经纪”的微信服务号</li>
<li>在服务号里,用手机号登录我们的银盾经纪平台,可查看您经纪合同和公司相关资料。</li>
......@@ -15,11 +24,11 @@
<li>运营人员将给您公司和相关介绍</li>
</ul>
</div>
<!-- <img src="assets/images/login_logo.png" alt="logo" style="width: 50%;position: absolute;left: 0;right: 0;margin: 0 auto;bottom: 20px;"> -->
</div>
<ydlife-alert *ngIf="isNeedAlert" [dialogInfo]="dialogInfo" (popInfo)="getPopInfo()"></ydlife-alert>
......@@ -12,6 +12,8 @@ export class EmployeeSubmitComponent implements OnInit {
approveStatus:any;
isNeedAlert: boolean;
dialogInfo: any;
// 判断是哪个成功页面
type:string;
constructor(private activatedRoute: ActivatedRoute,
public lifeCommonService:LifeCommonService,
private myService:MyService) { }
......@@ -22,8 +24,11 @@ export class EmployeeSubmitComponent implements OnInit {
this.lifeCommonService.setTitle(title);
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;
if(this.approveStatus == null || this.approveStatus == '-1'){
this.hiringSubmit();
this.type = this.activatedRoute.snapshot.routeConfig.path;
if(this.type!='eNotice_submit'){
if(this.approveStatus == null || this.approveStatus == '-1'){
this.hiringSubmit();
}
}
}
......
......@@ -18,7 +18,7 @@ export class InvitationComponent implements OnInit {
hiringBasicInfoId:any;
//被邀请人
inviteeName:string;
constructor(private myService: MyService,
constructor(private myService: MyService,
private activatedRoute: ActivatedRoute,
public lifeCommonService: LifeCommonService,
private router: Router) { }
......@@ -37,7 +37,7 @@ export class InvitationComponent implements OnInit {
//分享邀请
sandInvitation() {
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.wxShare(
'银盾保险经纪电子报聘邀请函',
......@@ -48,8 +48,8 @@ export class InvitationComponent implements OnInit {
alert('请在微信公众号中发送邀请');
}
}
register(){
this.router.navigate(['/register'],{ queryParams: { hiringBasicInfoId:this.hiringBasicInfoId} });
}
......
<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-cells__group weui-cells__group_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__bd">
<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 class="weui-cell weui-cell_vcode" style="padding:12px 0px">
<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()">
</div>
<div class="weui-cell__ft">
......@@ -23,7 +34,7 @@
</div>
</div>
<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>
<ydlife-alert *ngIf="isNeedAlert" [dialogInfo]="dialogInfo" (popInfo)="getPopInfo()"></ydlife-alert>
<ydlife-toast *ngIf="toastDialog" [toastInfo]="toastInfo"></ydlife-toast>
......@@ -2,22 +2,28 @@ import { Component, OnInit } from "@angular/core";
import { AuthService } from '../../../auth/auth.service';
import { ActivatedRoute,Router } from "@angular/router";
import { LifeCommonService } from "../../../common/life-common.service";
import { MyService } from "../../my.service";
import { THIS_EXPR } from "@angular/compiler/src/output/output_ast";
@Component({
selector: "ydlife-register",
templateUrl: "./register.component.html",
styleUrls: ["./register.component.scss"],
})
export class RegisterComponent implements OnInit {
constructor(public authService: AuthService,
constructor(public authService: AuthService,
private activatedRoute: ActivatedRoute,
private router: Router,
public lifeCommonService: LifeCommonService) {}
private myService: MyService,
public lifeCommonService: LifeCommonService) {
}
MOBILE_REGEXP = /^(1)\d{10}$/;
sendCodeHtml: string = '获取验证码';
timer: any;
remainTimes: number = 60;
disabledSendBtn: boolean = false;
userInfo: any = {
name:null,
mobileNo: null,
verificationCode: null
};
......@@ -28,16 +34,50 @@ export class RegisterComponent implements OnInit {
toastDialog: boolean;
toastInfo: any;
hiringBasicInfoId:any;
// 判断是哪个注册页面
type:string;
// 分享电子告知书ID
eNoticeId:string;
// 电子告知书信息
eNoticeInfo:any;
ngOnInit() {
const title = this.activatedRoute.snapshot.data[0]['title'];
this.lifeCommonService.setTitle(title);
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() {
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() {
const verificationInfo = {
......@@ -56,7 +96,7 @@ export class RegisterComponent implements OnInit {
this.openPopInfo('手机号不正确');
}
}
// 倒计时
countDown() {
this.disabledSendBtn = true;
......@@ -115,7 +155,27 @@ export class RegisterComponent implements OnInit {
};
this.authService.compare(compareCodeObj).subscribe((res)=>{
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{
this.openPopInfo(res['message']);
}
......
......@@ -4,20 +4,26 @@
<div>
电子签名<span style="font-size: 10px;font-weight: normal;">(请书写工整,字迹清晰)</span>
</div>
<span class="page_mark"> 8/8</span>
<span class="page_mark" *ngIf="type!='eNotice'"> 8/8</span>
</div>
<div class="signatureContent">
<signature-pad *ngIf="!isSignatureShow" #signaturePad [options]="signaturePadOptions" (onBeginEvent)="drawStart()" (onEndEvent)="drawComplete()">
</signature-pad>
<img [src]="imgStr" alt="签名" *ngIf="isSignatureShow">
</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'">
<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'">
<footer class="fixed" (click)="next()" *ngIf="(approveStatus==null || approveStatus=='-1') && type != 'eNotice'">
我自愿签订经纪人合同书
</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 (click)="goBack()">上一页</div>
<div (click)="viewNext()">下一页</div>
......@@ -26,4 +32,4 @@
返回审批结果
</footer>
</div>
<ydlife-alert *ngIf="isNeedAlert" [dialogInfo]="dialogInfo" (popInfo)="getPopInfo()"></ydlife-alert>
\ No newline at end of file
<ydlife-alert *ngIf="isNeedAlert" [dialogInfo]="dialogInfo" (popInfo)="getPopInfo()"></ydlife-alert>
......@@ -20,16 +20,20 @@ export class SignatureComponent implements OnInit {
isSignatureShow:boolean;
viewApprovalInfo:any;
approveStatus:any;
// 获取页面适用类型
type:string;
todayDate:Date = new Date();
@ViewChild(SignaturePad) signaturePad : SignaturePad;
constructor(private activatedRoute: ActivatedRoute,
private router: Router,public lifeCommonService:LifeCommonService,
public myService:MyService) {
public myService:MyService) {
}
ngOnInit() {
this.type = this.activatedRoute.snapshot.queryParams.type ? this.activatedRoute.snapshot.queryParams.type :null;
this.signaturePadOptions = {
minWidth: 0.5,
maxWidth: 3,
......@@ -42,9 +46,12 @@ export class SignatureComponent implements OnInit {
}
const title = this.activatedRoute.snapshot.data[0]['title'];
this.lifeCommonService.setTitle(title);
this.hiringBasicInfoId = this.activatedRoute.snapshot.queryParams.hiringBasicInfoId?this.activatedRoute.snapshot.queryParams.hiringBasicInfoId:null;
this.queryWholeInfo(this.hiringBasicInfoId)
this.viewApprovalInfo = sessionStorage.getItem('viewApprovalInfo');
if(this.type!='eNotice'){
this.hiringBasicInfoId = this.activatedRoute.snapshot.queryParams.hiringBasicInfoId?this.activatedRoute.snapshot.queryParams.hiringBasicInfoId:null;
this.queryWholeInfo(this.hiringBasicInfoId)
this.viewApprovalInfo = sessionStorage.getItem('viewApprovalInfo');
}
}
next(){
......@@ -68,18 +75,30 @@ export class SignatureComponent implements OnInit {
this.openPopInfo('您还没有签名!');
return;
}
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']);
if(this.type=='eNotice'){
this.myService.signInformedSheet({'id':sessionStorage.getItem('eNoticeId'),imgStr:this.imgStr}).subscribe(res=>{
if(res['success']){
// 确认提交
this.router.navigate(['/eNotice_submit']);
}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){
......
<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'} })
}
}
<div class="csNoticeContent">
<h3>银盾保险经纪服务委托协议</h3>
<p style="text-indent: 32px;">感谢您选择上海银盾保险经纪有限公司(简称“银盾”)为您提供保险经纪服务, 并与银盾签署《保险经纪服务委托协议》(简称“本协议”)。为维护您自身的权益, 请您认真阅读本协议, 充分理解各条款内容, 特别是免除或限制责任的条款、法律适用和争议解决的条款。如您对协议有任何疑问,可向银盾咨询。阅读并点击同意,即表示您本人完全理解并自愿接受本协议全部内容。在本协议生效后,您既享有本协议约定的权利, 亦应履行相应的义务。</p>
<h4>一、订约主体</h4>
<p>本协议由您与银盾共同缔结,对您和银盾均具有合同效力。</p>
<ul>
<li>上海银盾保险经纪有限公司是经中国银行保险监督管理委员会批准成立, 可在全国区域范围内(港、澳、台除外)为客户提供保险经纪服务的专业保险中介机构,在本协议中,以“银盾”简称。</li>
<li>在本协议中,您亦会被称为“客户”。签署本协议前,请您确认本人具有法律规定的相应民事行为能力。</li>
</ul>
<h4>二、 银盾提供的服务</h4>
<p>本协议生效后,银盾可为您提供以下一项或多项服务:</p>
<ul>
<li>保单整理和诊断:在您提出本项服务需求后,银盾安排专人为您整理此前已购的全部保单,并提供专业、中立的诊断分析意见及风险评估、风险管理咨询服务;</li>
<li>保险产品咨询:银盾可对您拟购买的保险产品及产品所属保险公司进行对比、评估,通过纸质、邮件、电话、微信等形式为您提供拟定的投保方案;</li>
<li>协助投保:协助您办理投保手续,代您向保险公司提交投保资料;</li>
<li>保单变更(保全)服务:协助您办理保单中地址、银行账户、职业、投保人、受益人等合同事项的变更,以及协助递交保单补发、退保、生存金领取等事项的申请资料;</li>
<li>续期服务:通过短信或微信的方式提醒您交纳续期保费,避免出现遗漏;</li>
<li> 协助理赔服务:在您需要进行保单项下的理赔时,银盾可协助您向保险公司递交理赔资料,并协助办理理赔申请;</li>
<li>保单托管:您可将您及您家庭所拥有的纸质保单交由银盾代为保管,并免费享受已被代管保单的交费提醒、生存金领取提醒等增值服务。</li>
</ul>
<p style="margin-top:10px">注:上述 4-6 项服务,是在客户通过银盾购买保险产品且保险合同(保单) 处于有效状态的前提下,银盾针对客户所购保单提供的服务。</p>
<p>上述所有服务项目,银盾会根据客户的需求、选择以及服务进程的不同,提供一项或多项的服务项目。</p>
<h4>三、 您的权利和义务</h4>
<ul>
<li>您应本着最大诚信原则,如实、准确向银盾提供所有与委托事项有关的信息和资料,履行如实告知义务,不提供虚假或不实信息,不隐瞒与委托事项及订立保险合同有关的重要事项。</li>
<li>在委托银盾为您提供经纪服务时,您应充分考虑自身的保险需求,在银盾的协助下理性进行分析,慎重选择保险方案,并认真阅读投保单及保险合同条款,明确您的权利义务,特别是关于保险责任、除外责任、责任免除、犹豫期权利、合同生效和保险责任期间、退保费用、现金价值、保证利益、 非保证利益、投资风险、索赔时效、变更解除合同权、按期缴费义务、合同中止或失效等条款的规定。</li>
<li>购买保险产品时,请您确保投保人、被保险人、受益人、法定监护人等保单关系人在投保单、照会、回执等文件上由其本人亲笔签名,不允许或默认他人代签,也不授权或诱使、暗示银盾工作人员代替您签章。因非亲笔签名造成的后果,须由您自行承担。</li>
<li>出现下列任一情况的,您应当在24小时内通知银盾:</li>
<ul class="list_2">
<li><span>(1)</span><div>保险标的的风险性质及情况发生改变的;</div></li>
<li><span>(2)</span><div>发生任何可能引起保险理赔的事件或情况的;</div></li>
<li><span>(3)</span><div>发生保险事故的。</div></li>
</ul>
<li>您承认银盾提供的服务是一种有价值的服务,对于银盾及其工作人员为您制定的任何文件和方案, 银盾均享有知识产权。未经银盾许可,您不得随意复制、 翻印及传播, 并不得允许第三方使用上述文件。</li>
</ul>
<h4>四、 银盾的权利和义务</h4>
<ul>
<li>作为您的经纪人,银盾在履行本协议过程中,本着客户至上的服务宗旨, 在法律范围内维护您的合法权益,并始终把您的利益放在第一位。</li>
<li>严格遵守《保险法》《保险经纪人监管规定》等相关法律法规和职业规范。</li>
<li>银盾利用专业知识和技术,根据您的需求及您选择的服务套餐内容,为您提供客观、中立的保险经纪和咨询服务。</li>
<li>您如果对银盾服务人员的工作不满意,可通过电话、邮件或其它书面形式进行投诉,银盾将在三个工作日内给予答复,积极妥善处理,包括在必要时更换服务人员。</li>
<li>为更好的为您提供服务,银盾有权向您投保的保险公司取得您的个人信息、保单状态、保全、理赔进度等信息。获取的上述信息只用于为您服务之目的,银盾承诺不会将获取的信息用于非法用途。</li>
</ul>
<h4>五、 保密条款</h4>
<p>对于在履行本协议过程中获得的对方的任何保密信息,银盾和您均应承担保密义务,除非为本协议约定之目的或履行法律法规规定的披露义务。</p>
<h4>六、 违约责任</h4>
<p>您或银盾任意一方违反本协议约定给对方造成经济损失的,应当承担相应的赔偿责任。</p>
<h4>七、 法律适用与争议的解决</h4>
<ul>
<li>本协议的履行与争议解决适用中华人民共和国大陆地区法律。</li>
<li>您与银盾就执行本协议发生争议的,可通过友好协商解决。协商不成, 可向银盾所在地有管辖权的人民法院提起诉讼。</li>
</ul>
<h4>八、 联系方式和通知</h4>
<ul>
<li>您应提供真实有效的电子邮箱、联系电话和地址。若上述通讯方式发生变更,请您及时通知银盾,以便于银盾可正常与您取得联系。</li>
<li>银盾可通过您提供的任一联系方式向您发送通知,此类通知的内容可能对您的权利义务产生影响,请您务必及时关注。</li>
</ul>
<h4>九、 本协议的有效期</h4>
<ul>
<li>您点击“同意”按钮,视为您自愿与银盾订立本协议,本协议即时生效。</li>
<li>本协议有效的前提为:您通过银盾投保的任意一张保单处于有效状态,未发生撤单、解除、退保、终止等情况。</li>
<li>您通过银盾投保的保单,已无任何一张处于有效状态时,银盾给予您三十日的延长服务期间,上述情况持续至三十日届满仍未消除的, 则本协议自动终止;</li>
</ul>
<h4>十、 其它</h4>
<ul>
<li>您和银盾在履行本协议过程中,均应遵守反商业贿赂的法律规定。根据监管规定,您不得向银盾及工作人员索要或收受本协议或保险合同约定之外的利益,银盾亦严格禁止工作人员的任何商业贿赂行为。若您需要向银盾支付服务费,应通过转账或在线支付的方式付款至银盾指定账户。</li>
<li>因法律法规修订、废止等情况致使本协议任一条款被废止、无效或不可执行,该条款应视为可分的且并不影响本协议其余条款的有效性及可执行性。</li>
<li>本协议未尽事宜,可通过补充协议形式确定,或者按国家有关法律、法规的规定执行。</li>
</ul>
<h3 style="padding-top:15px;border-top:1px solid #dcdcdc">上海银盾保险经纪有限公司客户告知书</h3>
<p style="margin-bottom: 10px;">尊敬的客户:</p>
<p>感谢您委托银盾代为办理保险业务,本公司是基于投保人的利益,为投保人与保险公司订立保险合同提供中介服务的保险专业中介机构。为了保护您的合法权益,按照《保险经纪人监管规定》的要求,本公司履行客户告知义务,将有关事项告知如下,请仔细阅读:</p>
<h4>一、 公司基本情况</h4>
<ul class="list_2">
<li><span>(一)</span><div>名称:上海银盾保险经纪有限公司</div></li>
<li><span>(二)</span><div>住所:上海市崇明区绿华镇嘉华路4号</div></li>
<li><span>(三)</span><div>许可证名称及编号:中华人民共和国保险中介许可证编号269615000000800</div></li>
<li><span>(四)</span><div>许可证有效期:2012 年8 月21 日至2024 年8 月18 日</div></li>
<li><span>(五)</span><div>业务范围:在全国区域内(港、澳、台除外)为投保人拟定投保方案、选择保险人、办理投保手续、协助被保险人或受益人进行索赔;再保险人经纪业务;为委托人提供防灾、防损或风险评估、风险管理咨询服务;中国保监会批准的其他业务</div></li>
<li><span>(六)</span><div>经营区域:全国区域(港、澳、台除外)</div></li>
<li style="margin-bottom: 10px;"><span>(七)</span><div style="word-break: keep-all;">联系方式: 400-921-9290; 客服邮箱: cs@ydinsurance.cn;官网:www.ydinsurance.cn</div>
</ul>
<p style="margin-bottom: 10px;">二、 请您仔细阅读保险条款,重点关注保险责任、责任免除、被保险人权利义务、免赔额或免赔率的计算、健康保险产品等待期等内容。</p>
<p style="margin-bottom: 10px;">三、 请向本公司的经纪人详细了解《中国人民共和国保险法》等法律法规对于索赔时效、保险公司理赔时限、合同中止与失效、未成年人投保限额等的相关规定,以及不履行如实告知义务、故意制造保险事故或夸大事故损失、申报年龄不真实等情形导致的法律后果。</p>
<p style="margin-bottom: 10px;">四、 请关注保险产品的承保公司设立分支机构信息,在承保保险公司未设立分支机构的地区购买保险,后续服务可能会受到一定影响。</p>
<p style="margin-bottom: 10px;">五、 根据《中华人民共和国保险法》的规定,保险经纪机构因过错给投保人、被保险人造成损失的,依法承担赔偿责任。</p>
<p style="margin-bottom: 10px;">六、 本公司已按《保险经纪人监管规定》缴存保证金,并与合作保险公司签订合作合同。本公司按照合同约定在保险公司授权范围内销售其公司的寿险、意外险、健康险、家财险、车险等产品,向保险公司收取经纪服务费,具体以保险公司告知为准。</p>
<p style="margin-bottom: 10px;">七、 如果您发现本公司从业人员存在误导行为及其他损害您合法利益的行为,可向本公司投诉,投诉电话400-921-9290。</p>
<p style="text-align: right;">上海银盾保险经纪有限公司</p>
<p style="margin-top:20px;">※本人已详细阅读并充分了解上述告知所说明之权利义务,同意委托上海银盾保险经纪公司代为办理保险业务。</p>
<p style="margin-top:10px;">投保人亲签:_________________</p>
<p>日 期:_______________________</p>
</div>
.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 {
{ 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},
]
}
];
......@@ -181,7 +181,7 @@ export class MenuItemComponent implements OnInit {
// 分享名片
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.wxShare(
`银盾保险经纪 ${this.lifeCustomerInfo.practitionerBasicInfo.name}`,
......
......@@ -169,26 +169,38 @@
</div>
</div>
</div>
<!-- 咨询问卷 -->
<div class="content" *ngIf="selectedId===2">
<div style="text-align: center;font-size: 16px;margin-top: 10px;"
*ngIf="opportunitySurveyAnswersList?.length==0 || !opportunitySurveyAnswersList">
暂无问卷信息</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="questionTitle">{{surveyItem.questionName}}</div>
<div class="questionContent">{{surveyItem.optionName}}</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 class="content" *ngIf="selectedId===3">
<ul class="recordLists">
<li *ngFor="let opportunityRecordItem of opportunityRecordInfos;index as idx">
<div style="display: flex;justify-content: space-between;height: 25px;">
<div class="updatedAt">{{opportunityRecordItem.noticeDate}}</div>
<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 class="salesNotice">
<span>
......@@ -248,6 +260,40 @@
<li (click)="closeToast()">取消</li>
</ul>
</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>
<ydlife-toast *ngIf="toastDialog" [toastInfo]="toastInfo"></ydlife-toast>
<ydlife-alert *ngIf="isNeedAlert" [dialogInfo]="dialogInfo" (popInfo)="getPopInfo()"></ydlife-alert>
\ No newline at end of file
<ydlife-alert *ngIf="isNeedAlert" [dialogInfo]="dialogInfo" (popInfo)="getPopInfo()"></ydlife-alert>
......@@ -15,13 +15,13 @@
margin-right: 10px;
line-height: 30px;
height: 30px;
width: 25%;
flex: 1;
text-align: center;
border: 1px #a9aabb solid;
border-radius: 20px;
h3 {
font-weight: normal;
font-size: 16px;
font-size: 15px;
}
}
li.selected {
......@@ -174,6 +174,32 @@
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 {
......@@ -283,4 +309,7 @@
background-color: rgba(0, 0, 0, .5);
top: 0;
}
.am-list-item.am-input-item{
padding-left: 0;
}
}
......@@ -3,6 +3,7 @@ import { MyService } from '../my.service';
import { ActivatedRoute, Router } from "@angular/router";
import { BusinessQuery } from '../../domain/businessQuery';
import { LifeCommonService } from '../../common/life-common.service';
import {environment} from '../../../environments/environment';
@Component({
selector: 'ydlife-my-business-detail',
templateUrl: './my-business-detail.component.html',
......@@ -16,7 +17,7 @@ export class MyBusinessDetailComponent implements OnInit {
surveyAnswersList: Array<any>;
readonlyFlag: boolean = true;
orderId: number;
opportunityId: string;
opportunityId: number;
opportunitySurveyAnswersList: Array<any>;
tagList: Array<any>;
editBusiness: BusinessQuery = new BusinessQuery();
......@@ -63,24 +64,33 @@ export class MyBusinessDetailComponent implements OnInit {
isNeedAlert: boolean;
dialogInfo: any;
practitionerId:any;
// 电子告知书弹窗显示
eNoticeState:boolean = false;
deviceType:number;
// 获取经纪人信息
lifeCustomerInfo:any;
constructor(private activateRoute: ActivatedRoute, private myService: MyService,
public lifeCommonService: LifeCommonService, private router: Router, ) {
this.titleList = [
{ id: 1, name: '基本信息' },
{ id: 3, name: '商机跟进' },
{ id: 2, name: '咨询问卷' },
{ id: 4, name: '咨询报告' },
// { id: 4, name: '咨询报告' },
{ id: 5, name: '客户告知书' }
]
}
ngOnInit() {
// 获取设备
this.deviceType = this.lifeCommonService.checkDeviceType();
this.orderId = this.activateRoute.snapshot.queryParams['orderId'];
//商机对应的客户id
this.opportunityId = this.activateRoute.snapshot.paramMap.get('id');
this.opportunityId = +this.activateRoute.snapshot.paramMap.get('id');
//商机id
this.leadsAssignedId = this.activateRoute.snapshot.queryParams['leadsAssignedId'];
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.dropOptionsQuery('bizchance_promotion_action');
......@@ -134,15 +144,14 @@ 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;
}
}
// 查看报告
viewReport(){
window.location.href = `https://${window.location.host}/customizedPlanList/3?orderId=${this.orderId}&customerId=${this.opportunityId}`
}
ownOpportunityDetailQuery() {
const detailParam = {
......@@ -588,13 +597,83 @@ export class MyBusinessDetailComponent implements OnInit {
};
}
})
}
// 关闭弹窗
getPopInfo() {
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';
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';
const myRoutes: Routes = [
{ path: '', component: MyCenterHomeComponent, canActivate: [AuthGuard], data: [{ title: '银盾保险经纪 - 工作台' }] },
......@@ -102,6 +103,8 @@ const myRoutes: Routes = [
{ path: 'inviter' ,component:InvitationComponent,canActivate:[AuthGuard],data:[{type:'inviter',title: '邀请函'}]},
{ path: 'invitees' ,component:InvitationComponent,data:[{type:'invitees',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_basic_info',component:EmployeeBasicInfoComponent,data: [{ title: '银盾经纪人报聘' }] },
{ path: 'work_experience',component:WorkExperienceComponent,data: [{ title: '银盾经纪人报聘' }] },
......@@ -113,7 +116,9 @@ const myRoutes: Routes = [
{ path: 'personal_statement',component:PersonalStatementComponent,data: [{ type:'personal_statement',title: '银盾经纪人报聘' }] },
{ path: 'contract',component:PersonalStatementComponent,data: [{ type:'contract',title: '银盾经纪人报聘' }] },
{ path: 'signature',component:SignatureComponent,data: [{ title: '银盾经纪人报聘' }]},
{ path: 'eNoticeSignature',component:SignatureComponent,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: 'approval_list',component:ApprovalListComponent, data: [{ title: '审批列表' }],canActivate: [AuthGuard]},
{ path: 'approval_comments',component:ApprovalCommentsComponent,canActivate:[AuthGuard]},
......
......@@ -89,4 +89,4 @@
</div>
<ydlife-alert *ngIf="isNeedAlert" [dialogInfo]="dialogInfo" (popInfo)="getPopInfo()"></ydlife-alert>
<ydlife-toast *ngIf="toastDialog" [toastInfo]="toastInfo"></ydlife-toast>
\ No newline at end of file
<ydlife-toast *ngIf="toastDialog" [toastInfo]="toastInfo"></ydlife-toast>
......@@ -79,9 +79,11 @@ import { MyQuestionComponent } from './my-question/my-question.component';
import { AskComponent } from './ask/ask.component';
import { MenuItemComponent } from './menu-item/menu-item.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({
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: [
CommonModule,
LifeCommonModule,
......
......@@ -729,4 +729,29 @@ export class MyService {
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 @@
<body>
<app-root>
</app-root>
<!-- <div class="loadingBox" id="loading"
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;">
</div> -->
<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;">
<img style="width:100%;margin-bottom: 15px;" src="assets/images/loading_bg.png">
<!-- <div style="margin-top: 45%;">欢迎回家,先喝碗鸡汤</div> -->
......@@ -73,6 +73,7 @@
<script src="./assets/laydate/laydate.js"></script>
<script type="text/javascript">
var api = 'https://' + window.location.host;
var loginId = localStorage.getItem('lifeCustomerInfo')?JSON.parse(localStorage.getItem('lifeCustomerInfo')).mobileNo:null;
// var api = 'https://mdev.zuihuibi.cn';
function getToken() {
$.ajax({
......@@ -80,7 +81,8 @@
url: api + '/api/authorize/obtainToken',
contentType: "application/json",
data: JSON.stringify({
ticket: 'life'
ticket: 'life',
loginId:loginId
}),
async: false,
success: function (res) {
......@@ -115,17 +117,11 @@
}
//页面刷新的时候不出现
if (window.name == "") {
window.name = "isReload"; // 在首次进入页面时我们可以给window.name设置一个固定值
if(shareCode){
let loading = document.getElementById("adv");
loading.style.display = 'none';
}else{
if(window.location.pathname != '/ydLife/identify'){
window.name = "isReload"; // 在首次进入页面时我们可以给window.name设置一个固定值
initialize();
getknowledgeQry();
}
getknowledgeQry();
} else if (window.name == "isReload") {
let loading = document.getElementById("adv");
loading.style.display = 'none';
}
//用于去除alert的url
......@@ -170,7 +166,7 @@
}
})
}
// (function() {
// if (typeof WeixinJSBridge == "object" && typeof WeixinJSBridge.invoke == "function") {
......@@ -190,4 +186,4 @@
</script>
</body>
</html>
\ No newline at end of file
</html>
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