Commit 60d58a2e by sunchao

合并代码

parents d7542ce1 09355e9a
...@@ -613,6 +613,24 @@ ...@@ -613,6 +613,24 @@
"integrity": "sha1-x/9jA99xCA7HpPW4wAPFjxz1EDc=", "integrity": "sha1-x/9jA99xCA7HpPW4wAPFjxz1EDc=",
"dev": true "dev": true
}, },
"@babel/runtime-corejs3": {
"version": "7.13.3",
"resolved": "https://registry.npm.taobao.org/@babel/runtime-corejs3/download/@babel/runtime-corejs3-7.13.3.tgz?cache=0&sync_timestamp=1614047252854&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime-corejs3%2Fdownload%2F%40babel%2Fruntime-corejs3-7.13.3.tgz",
"integrity": "sha1-afo+hgum9k7Og9UvmIthW8noXnU=",
"optional": true,
"requires": {
"core-js-pure": "^3.0.0",
"regenerator-runtime": "^0.13.4"
},
"dependencies": {
"regenerator-runtime": {
"version": "0.13.7",
"resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.13.7.tgz?cache=0&sync_timestamp=1595456105304&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.7.tgz",
"integrity": "sha1-ysLazIoepnX+qrrriugziYrkb1U=",
"optional": true
}
}
},
"@babel/template": { "@babel/template": {
"version": "7.10.4", "version": "7.10.4",
"resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.10.4.tgz?cache=0&sync_timestamp=1593522831608&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.10.4.tgz", "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.10.4.tgz?cache=0&sync_timestamp=1593522831608&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftemplate%2Fdownload%2F%40babel%2Ftemplate-7.10.4.tgz",
...@@ -780,6 +798,12 @@ ...@@ -780,6 +798,12 @@
"integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=",
"dev": true "dev": true
}, },
"@types/raf": {
"version": "3.4.0",
"resolved": "https://registry.npm.taobao.org/@types/raf/download/@types/raf-3.4.0.tgz?cache=0&sync_timestamp=1613379696113&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fraf%2Fdownload%2F%40types%2Fraf-3.4.0.tgz",
"integrity": "sha1-K3LL1VQF4HHxxNKZkmOOAisgrMI=",
"optional": true
},
"@types/selenium-webdriver": { "@types/selenium-webdriver": {
"version": "3.0.17", "version": "3.0.17",
"resolved": "https://registry.npm.taobao.org/@types/selenium-webdriver/download/@types/selenium-webdriver-3.0.17.tgz", "resolved": "https://registry.npm.taobao.org/@types/selenium-webdriver/download/@types/selenium-webdriver-3.0.17.tgz",
...@@ -1388,8 +1412,7 @@ ...@@ -1388,8 +1412,7 @@
"atob": { "atob": {
"version": "2.1.2", "version": "2.1.2",
"resolved": "https://registry.npm.taobao.org/atob/download/atob-2.1.2.tgz", "resolved": "https://registry.npm.taobao.org/atob/download/atob-2.1.2.tgz",
"integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=", "integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k="
"dev": true
}, },
"autoprefixer": { "autoprefixer": {
"version": "9.4.6", "version": "9.4.6",
...@@ -1924,6 +1947,11 @@ ...@@ -1924,6 +1947,11 @@
"https-proxy-agent": "^2.2.1" "https-proxy-agent": "^2.2.1"
} }
}, },
"btoa": {
"version": "1.2.1",
"resolved": "https://registry.npm.taobao.org/btoa/download/btoa-1.2.1.tgz",
"integrity": "sha1-AamQn4ssk/a/aAuiYTHrMPf6PXM="
},
"buffer": { "buffer": {
"version": "5.6.0", "version": "5.6.0",
"resolved": "https://registry.npm.taobao.org/buffer/download/buffer-5.6.0.tgz", "resolved": "https://registry.npm.taobao.org/buffer/download/buffer-5.6.0.tgz",
...@@ -2113,6 +2141,20 @@ ...@@ -2113,6 +2141,20 @@
"integrity": "sha1-/LRwwjlY3vhQgYVr56hukE8YDR0=", "integrity": "sha1-/LRwwjlY3vhQgYVr56hukE8YDR0=",
"dev": true "dev": true
}, },
"canvg": {
"version": "3.0.7",
"resolved": "https://registry.npm.taobao.org/canvg/download/canvg-3.0.7.tgz?cache=0&sync_timestamp=1602916894464&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcanvg%2Fdownload%2Fcanvg-3.0.7.tgz",
"integrity": "sha1-5FuHpkEWr5BpF/fK1X03DqNy1oI=",
"optional": true,
"requires": {
"@babel/runtime-corejs3": "^7.9.6",
"@types/raf": "^3.4.0",
"raf": "^3.4.1",
"rgbcolor": "^1.0.1",
"stackblur-canvas": "^2.0.0",
"svg-pathdata": "^5.0.5"
}
},
"caseless": { "caseless": {
"version": "0.12.0", "version": "0.12.0",
"resolved": "https://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz", "resolved": "https://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz",
...@@ -2568,6 +2610,12 @@ ...@@ -2568,6 +2610,12 @@
"resolved": "https://registry.npm.taobao.org/core-js/download/core-js-2.6.11.tgz", "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-2.6.11.tgz",
"integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=" "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw="
}, },
"core-js-pure": {
"version": "3.9.0",
"resolved": "https://registry.npm.taobao.org/core-js-pure/download/core-js-pure-3.9.0.tgz?cache=0&sync_timestamp=1613669337476&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js-pure%2Fdownload%2Fcore-js-pure-3.9.0.tgz",
"integrity": "sha1-MmzHTh/vi3RDpqeT3bCt/Ngfnvs=",
"optional": true
},
"core-util-is": { "core-util-is": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz", "resolved": "https://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz",
...@@ -3068,6 +3116,12 @@ ...@@ -3068,6 +3116,12 @@
"integrity": "sha1-PTH1AZGmdJ3RN1p/Ui6CPULlTto=", "integrity": "sha1-PTH1AZGmdJ3RN1p/Ui6CPULlTto=",
"dev": true "dev": true
}, },
"dompurify": {
"version": "2.2.6",
"resolved": "https://registry.npm.taobao.org/dompurify/download/dompurify-2.2.6.tgz",
"integrity": "sha1-VJRdxcC0XOWuIocFd36OWdey7cQ=",
"optional": true
},
"duplexer": { "duplexer": {
"version": "0.1.2", "version": "0.1.2",
"resolved": "https://registry.npm.taobao.org/duplexer/download/duplexer-0.1.2.tgz", "resolved": "https://registry.npm.taobao.org/duplexer/download/duplexer-0.1.2.tgz",
...@@ -3738,6 +3792,11 @@ ...@@ -3738,6 +3792,11 @@
"websocket-driver": ">=0.5.1" "websocket-driver": ">=0.5.1"
} }
}, },
"fflate": {
"version": "0.4.8",
"resolved": "https://registry.npm.taobao.org/fflate/download/fflate-0.4.8.tgz",
"integrity": "sha1-+QuCrvvYrBdCE6uzOL1++Ejw9a4="
},
"figgy-pudding": { "figgy-pudding": {
"version": "3.5.2", "version": "3.5.2",
"resolved": "https://registry.npm.taobao.org/figgy-pudding/download/figgy-pudding-3.5.2.tgz", "resolved": "https://registry.npm.taobao.org/figgy-pudding/download/figgy-pudding-3.5.2.tgz",
...@@ -5384,6 +5443,28 @@ ...@@ -5384,6 +5443,28 @@
"integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=",
"dev": true "dev": true
}, },
"jspdf": {
"version": "2.3.0",
"resolved": "https://registry.npm.taobao.org/jspdf/download/jspdf-2.3.0.tgz",
"integrity": "sha1-ltX157EEtNVC4gOmgpm0DMiENP8=",
"requires": {
"atob": "^2.1.2",
"btoa": "^1.2.1",
"canvg": "^3.0.6",
"core-js": "^3.6.0",
"dompurify": "^2.2.0",
"fflate": "^0.4.8",
"html2canvas": "^1.0.0-rc.5"
},
"dependencies": {
"core-js": {
"version": "3.9.0",
"resolved": "https://registry.npm.taobao.org/core-js/download/core-js-3.9.0.tgz?cache=0&sync_timestamp=1613668840564&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-3.9.0.tgz",
"integrity": "sha1-eQsbsRVToicrNuJiXHF52zRUkvg=",
"optional": true
}
}
},
"jsprim": { "jsprim": {
"version": "1.4.1", "version": "1.4.1",
"resolved": "https://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz", "resolved": "https://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz",
...@@ -7058,8 +7139,7 @@ ...@@ -7058,8 +7139,7 @@
"performance-now": { "performance-now": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz", "resolved": "https://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz",
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
"dev": true
}, },
"picomatch": { "picomatch": {
"version": "2.2.2", "version": "2.2.2",
...@@ -7642,6 +7722,15 @@ ...@@ -7642,6 +7722,15 @@
"integrity": "sha1-M0WUG0FTy50ILY7uTNogFqmu9/Y=", "integrity": "sha1-M0WUG0FTy50ILY7uTNogFqmu9/Y=",
"dev": true "dev": true
}, },
"raf": {
"version": "3.4.1",
"resolved": "https://registry.npm.taobao.org/raf/download/raf-3.4.1.tgz",
"integrity": "sha1-B0LpmkplUvRF1z4+4DKK8P8e3jk=",
"optional": true,
"requires": {
"performance-now": "^2.1.0"
}
},
"randombytes": { "randombytes": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npm.taobao.org/randombytes/download/randombytes-2.1.0.tgz", "resolved": "https://registry.npm.taobao.org/randombytes/download/randombytes-2.1.0.tgz",
...@@ -7990,6 +8079,12 @@ ...@@ -7990,6 +8079,12 @@
"integrity": "sha1-unLME2egzNnPgahws7WL060H+MI=", "integrity": "sha1-unLME2egzNnPgahws7WL060H+MI=",
"dev": true "dev": true
}, },
"rgbcolor": {
"version": "1.0.1",
"resolved": "https://registry.npm.taobao.org/rgbcolor/download/rgbcolor-1.0.1.tgz",
"integrity": "sha1-1lBezbMEplldom+ktDMHMGd1lF0=",
"optional": true
},
"rimraf": { "rimraf": {
"version": "2.7.1", "version": "2.7.1",
"resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz", "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz",
...@@ -8954,6 +9049,12 @@ ...@@ -8954,6 +9049,12 @@
"figgy-pudding": "^3.5.1" "figgy-pudding": "^3.5.1"
} }
}, },
"stackblur-canvas": {
"version": "2.5.0",
"resolved": "https://registry.npm.taobao.org/stackblur-canvas/download/stackblur-canvas-2.5.0.tgz?cache=0&sync_timestamp=1613482743762&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstackblur-canvas%2Fdownload%2Fstackblur-canvas-2.5.0.tgz",
"integrity": "sha1-qoe77RVg/c0xOP/zRPxqHEE+usQ=",
"optional": true
},
"static-extend": { "static-extend": {
"version": "0.1.2", "version": "0.1.2",
"resolved": "https://registry.npm.taobao.org/static-extend/download/static-extend-0.1.2.tgz", "resolved": "https://registry.npm.taobao.org/static-extend/download/static-extend-0.1.2.tgz",
...@@ -9222,6 +9323,12 @@ ...@@ -9222,6 +9323,12 @@
"has-flag": "^3.0.0" "has-flag": "^3.0.0"
} }
}, },
"svg-pathdata": {
"version": "5.0.5",
"resolved": "https://registry.npm.taobao.org/svg-pathdata/download/svg-pathdata-5.0.5.tgz",
"integrity": "sha1-ZejXZWQroV/hVDREQIfQgrxSayk=",
"optional": true
},
"symbol-observable": { "symbol-observable": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npm.taobao.org/symbol-observable/download/symbol-observable-1.2.0.tgz?cache=0&sync_timestamp=1599184821652&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsymbol-observable%2Fdownload%2Fsymbol-observable-1.2.0.tgz", "resolved": "https://registry.npm.taobao.org/symbol-observable/download/symbol-observable-1.2.0.tgz?cache=0&sync_timestamp=1599184821652&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsymbol-observable%2Fdownload%2Fsymbol-observable-1.2.0.tgz",
......
...@@ -26,8 +26,9 @@ ...@@ -26,8 +26,9 @@
"core-js": "^2.5.4", "core-js": "^2.5.4",
"dayjs": "^1.8.35", "dayjs": "^1.8.35",
"echarts": "^4.9.0", "echarts": "^4.9.0",
"html2canvas": "^1.0.0-rc.5", "html2canvas": "^1.0.0-rc.7",
"jquery": "^3.5.1", "jquery": "^3.5.1",
"jspdf": "^2.3.0",
"ng-zorro-antd-mobile": "^0.12.5", "ng-zorro-antd-mobile": "^0.12.5",
"ngx-echarts": "^3.2.0", "ngx-echarts": "^3.2.0",
"rxjs": "~6.3.3", "rxjs": "~6.3.3",
......
...@@ -30,6 +30,14 @@ export class BankCardComponent implements OnInit { ...@@ -30,6 +30,14 @@ export class BankCardComponent implements OnInit {
} }
next(){ next(){
if(!this.bankAccountOpening){
this.openPopInfo('开户行不能为空!');
return;
}
if(!this.bankAccountId){
this.openPopInfo('银行卡号不能为空!');
return;
}
if(this.bankAccountId != this.sureBankAccountId){ if(this.bankAccountId != this.sureBankAccountId){
this.openPopInfo('两次银行卡号不一致!'); this.openPopInfo('两次银行卡号不一致!');
return; return;
...@@ -40,6 +48,7 @@ export class BankCardComponent implements OnInit { ...@@ -40,6 +48,7 @@ export class BankCardComponent implements OnInit {
return; return;
} }
const param = { const param = {
hiringBasicInfoId:this.hiringBasicInfoId, hiringBasicInfoId:this.hiringBasicInfoId,
bankAccountOpening:this.bankAccountOpening, bankAccountOpening:this.bankAccountOpening,
bankAccountId:this.bankAccountId bankAccountId:this.bankAccountId
...@@ -48,7 +57,6 @@ export class BankCardComponent implements OnInit { ...@@ -48,7 +57,6 @@ export class BankCardComponent implements OnInit {
if(res['success']){ if(res['success']){
// this.router.navigate(['/personal_statement'],{ queryParams: { hiringBasicInfoId:this.hiringBasicInfoId} }); // this.router.navigate(['/personal_statement'],{ queryParams: { hiringBasicInfoId:this.hiringBasicInfoId} });
this.router.navigate(['/employee_salary'],{ queryParams: { hiringBasicInfoId:this.hiringBasicInfoId} }); this.router.navigate(['/employee_salary'],{ queryParams: { hiringBasicInfoId:this.hiringBasicInfoId} });
}else{ }else{
this.toastDialog = true; this.toastDialog = true;
this.toastInfo = { this.toastInfo = {
......
...@@ -50,7 +50,9 @@ ...@@ -50,7 +50,9 @@
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
font-size: 18px; font-size: 18px;
direction: rtl; }
select.form-control {
direction: rtl;
} }
} }
......
...@@ -26,12 +26,12 @@ ...@@ -26,12 +26,12 @@
<div class="photo" *ngIf="!backVxUrl" (click)="selectPic('back')"> <div class="photo" *ngIf="!backVxUrl" (click)="selectPic('back')">
<img src="assets/images/back.png" alt="身份证反面面"> <img src="assets/images/back.png" alt="身份证反面面">
<img class="camera" src="assets/images/camera.png" alt="身份证" /> <img class="camera" src="assets/images/camera.png" alt="身份证" />
<div class="choseBtn" >点击添加身份证</div> <div class="choseBtn" >点击添加身份证</div>
</div> </div>
<img class="showImg" src="{{backVxUrl}}" alt="身份证反面" *ngIf="backVxUrl" <img class="showImg" src="{{backVxUrl}}" alt="身份证反面" *ngIf="backVxUrl"
(click)="selectPic('back')"> (click)="selectPic('back')">
<div class="tips"> <div class="tips">
<p>(正确示例:身份证面,字体清晰)</p> <p>(正确示例:身份证面,字体清晰)</p>
<p>(jpg,png 文件大小不大于1mb)</p> <p>(jpg,png 文件大小不大于1mb)</p>
</div> </div>
......
<div class="wrapper"> <div class="wrapper">
<div class="title"> <div class="title">
<div><span class="line"></span>个人照片资料</div> <div><span class="line"></span>个人证件照片资料</div>
<span class="page_mark"> 3/8</span> <span class="page_mark"> 3/8</span>
</div> </div>
<div class="content"> <div class="content">
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
} }
} }
.content{ .content{
padding: 10px 5px; padding: 15px 0 65px 0;
position: relative; position: relative;
.photo_wrapper{ .photo_wrapper{
width: 189px; width: 189px;
......
import { Component, OnInit,ViewChild,ElementRef ,HostListener} from '@angular/core'; import {
import { ActivatedRoute,Router } from "@angular/router"; Component,
import { MyService } from '../../my.service'; OnInit,
ViewChild,
ElementRef,
HostListener,
} from "@angular/core";
import { ActivatedRoute, Router } from "@angular/router";
import { MyService } from "../../my.service";
import { LifeCommonService } from "../../../common/life-common.service"; import { LifeCommonService } from "../../../common/life-common.service";
@Component({ @Component({
selector: 'ydlife-personal-statement', selector: "ydlife-personal-statement",
templateUrl: './personal-statement.component.html', templateUrl: "./personal-statement.component.html",
styleUrls: ['./personal-statement.component.scss'] styleUrls: ["./personal-statement.component.scss"],
}) })
export class PersonalStatementComponent implements OnInit { export class PersonalStatementComponent implements OnInit {
@ViewChild('autofocusFlag') elementView: ElementRef; @ViewChild("autofocusFlag") elementView: ElementRef;
@ViewChild('contract') toastContent:ElementRef; @ViewChild("contract") toastContent: ElementRef;
//判断是个人声明还是合同确认 //判断是个人声明还是合同确认
type:any; type: any;
hiringBasicInfoId:any; hiringBasicInfoId: any;
dropOptionsInfoList:Array<any>; dropOptionsInfoList: Array<any>;
isNeedAlert: boolean; isNeedAlert: boolean;
dialogInfo: any; dialogInfo: any;
autofocusFlag:boolean; autofocusFlag: boolean;
dropOptionsInfoListParam:Array<any> = []; dropOptionsInfoListParam: Array<any> = [];
contractTermsList:Array<any>; contractTermsList: Array<any>;
everWork:string; everWork: string;
//判断曾经报聘是否可点 //判断曾经报聘是否可点
everWorkFlag:boolean = false; everWorkFlag: boolean = false;
isShow: boolean; isShow: boolean;
curTitle:any; curTitle: any;
curContract:any; curContract: any;
curContractId:number; curContractId: number;
isAllAgree:boolean = false; isAllAgree: boolean = false;
contractTermsConfirmsListParm:Array<any>; contractTermsConfirmsListParm: Array<any>;
approveStatus:any; approveStatus: any;
agreeBtnShow:boolean = false; agreeBtnShow: boolean = false;
timeCount:number = 5; timeCount: number = 5;
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
) {}
ngOnInit() { ngOnInit() {
this.type = this.activatedRoute.snapshot.data[0]['type']; this.type = this.activatedRoute.snapshot.data[0]["type"];
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
if(this.type=="personal_statement"){ .hiringBasicInfoId
? this.activatedRoute.snapshot.queryParams.hiringBasicInfoId
: null;
if (this.type == "personal_statement") {
this.dropOptionsQuery(); this.dropOptionsQuery();
} }
if(this.type=="contract"){ if (this.type == "contract") {
this.queryContractTerms(); this.queryContractTerms();
} }
} }
ngOnChanges(){ ngOnChanges() {}
}
next(){ next() {
if(this.type == 'personal_statement'){ if (this.type == "personal_statement") {
this.savePersonalStatements(); this.savePersonalStatements();
}else if(this.type == 'contract'){ } else if (this.type == "contract") {
if(!this.isAllAgree){ if (!this.isAllAgree) {
this.openPopInfo('请详细阅读全部条款!') this.openPopInfo("请详细阅读全部条款!");
return; return;
} }
this.saveContractTermsConfirms(); this.saveContractTermsConfirms();
this.router.navigate(['/signature'],{ queryParams: { hiringBasicInfoId:this.hiringBasicInfoId} }); this.router.navigate(["/signature"], {
queryParams: { hiringBasicInfoId: this.hiringBasicInfoId },
});
} }
} }
dropOptionsQuery(){ dropOptionsQuery() {
this.myService.dropOptionsQuery({code:'EHiring_Personal_Statements'}).subscribe((res)=>{ this.myService
if(res['success']){ .dropOptionsQuery({ code: "EHiring_Personal_Statements" })
this.dropOptionsInfoList = res['data']['dropMasterInfoList'][0]['dropOptionsInfoList']; .subscribe((res) => {
this.dropOptionsInfoList.forEach((item)=>{ if (res["success"]) {
item.status = 0; this.dropOptionsInfoList =
item.userInput = null; res["data"]["dropMasterInfoList"][0]["dropOptionsInfoList"];
}); this.dropOptionsInfoList.forEach((item) => {
this.queryWholeInfo(this.hiringBasicInfoId); item.status = 0;
}else{ item.userInput = null;
this.openPopInfo(res['message']); });
} this.queryWholeInfo(this.hiringBasicInfoId);
}) } else {
this.openPopInfo(res["message"]);
}
});
} }
// 打开弹窗 // 打开弹窗
openPopInfo(message) { openPopInfo(message) {
this.isNeedAlert = true; this.isNeedAlert = true;
this.dialogInfo = { this.dialogInfo = {
title: null, title: null,
content: { value: message, align: 'center' }, content: { value: message, align: "center" },
footer: [{ value: '我知道了', routerLink: '', className: 'weui-dialog__btn_primary' }], footer: [
{
value: "我知道了",
routerLink: "",
className: "weui-dialog__btn_primary",
},
],
}; };
} }
//选择个人声明 //选择个人声明
selectStatements(personalStatements){ selectStatements(personalStatements) {
if(this.approveStatus==null || this.approveStatus == '-1'){ if (this.approveStatus == null || this.approveStatus == "-1") {
if( personalStatements.status ==1){ if (personalStatements.status == 1) {
personalStatements.status = 0; personalStatements.status = 0;
}else{ } else {
personalStatements.status = 1; personalStatements.status = 1;
} }
if(personalStatements.dropOptionCode == 'NO_REGISTER_SAME_TRADE'){ if (personalStatements.dropOptionCode == "NO_REGISTER_SAME_TRADE") {
if(personalStatements.status == 1){ if (personalStatements.status == 1) {
this.everWorkFlag = true; this.everWorkFlag = true;
//点击曾经报聘输入报聘自动获取焦点 //点击曾经报聘输入报聘自动获取焦点
setTimeout(() => { setTimeout(() => {
this.elementView.nativeElement.focus(); this.elementView.nativeElement.focus();
}, 500); }, 500);
}else{ } else {
this.everWork = null; this.everWork = null;
this.everWorkFlag = false; this.everWorkFlag = false;
} }
} }
} }
} }
savePersonalStatements(){ savePersonalStatements() {
this.dropOptionsInfoListParam = []; this.dropOptionsInfoListParam = [];
for(let i=0;i<this.dropOptionsInfoList.length;i++){ for (let i = 0; i < this.dropOptionsInfoList.length; i++) {
this.dropOptionsInfoList[i]['mdDropOptionName'] = this.dropOptionsInfoList[i]['dropOptionName']; this.dropOptionsInfoList[i][
this.dropOptionsInfoList[i]['mdDropOptionId'] = this.dropOptionsInfoList[i]['id']; "mdDropOptionName"
if(this.dropOptionsInfoList[i]['dropOptionCode'] =='NO_REGISTER_SAME_TRADE'){ ] = this.dropOptionsInfoList[i]["dropOptionName"];
this.dropOptionsInfoList[i]["mdDropOptionId"] = this.dropOptionsInfoList[
i
]["id"];
if (
this.dropOptionsInfoList[i]["dropOptionCode"] ==
"NO_REGISTER_SAME_TRADE"
) {
this.dropOptionsInfoListParam.push({ this.dropOptionsInfoListParam.push({
mdDropOptionName:this.dropOptionsInfoList[i]['dropOptionName'], mdDropOptionName: this.dropOptionsInfoList[i]["dropOptionName"],
mdDropOptionId:this.dropOptionsInfoList[i]['id'], mdDropOptionId: this.dropOptionsInfoList[i]["id"],
status:this.dropOptionsInfoList[i]['status'], status: this.dropOptionsInfoList[i]["status"],
userInput:this.everWork?this.everWork:null userInput: this.everWork ? this.everWork : null,
}) });
}else{ } else {
this.dropOptionsInfoListParam.push({ this.dropOptionsInfoListParam.push({
mdDropOptionName:this.dropOptionsInfoList[i]['dropOptionName'], mdDropOptionName: this.dropOptionsInfoList[i]["dropOptionName"],
mdDropOptionId:this.dropOptionsInfoList[i]['id'], mdDropOptionId: this.dropOptionsInfoList[i]["id"],
status:this.dropOptionsInfoList[i]['status'], status: this.dropOptionsInfoList[i]["status"],
userInput:null userInput: null,
}) });
} }
} }
for(let m=0;m<this.dropOptionsInfoListParam.length;m++){ for (let m = 0; m < this.dropOptionsInfoListParam.length; m++) {
if(this.dropOptionsInfoList[m]['dropOptionCode'] == 'NO_REGISTER_SAME_TRADE' && this.dropOptionsInfoList[m]['status'] == '1'){ if (
if(!this.everWork){ this.dropOptionsInfoList[m]["dropOptionCode"] ==
this.openPopInfo('勾选曾经报聘后,您曾经报聘过的保险机构名称不可为空!'); "NO_REGISTER_SAME_TRADE" &&
this.dropOptionsInfoList[m]["status"] == "1"
) {
if (!this.everWork) {
this.openPopInfo(
"勾选曾经报聘后,您曾经报聘过的保险机构名称不可为空!"
);
return; return;
} }
} }
} }
const param = { const isselectedPersonalStatement = this.dropOptionsInfoListParam.some(
hiringBasicInfoId:this.hiringBasicInfoId, (item) => {
personalStatementList:this.dropOptionsInfoListParam return item.status == 1;
}
);
if (isselectedPersonalStatement == false) {
this.openPopInfo("请选择至少一项个人声明!");
return;
} }
this.myService.savePersonalStatements(param).subscribe((res)=>{ const param = {
if(res['success']){ hiringBasicInfoId: this.hiringBasicInfoId,
this.router.navigate(['/contract'],{ queryParams: { hiringBasicInfoId:this.hiringBasicInfoId} }); personalStatementList: this.dropOptionsInfoListParam,
}else{ };
this.openPopInfo(res['message']); this.myService.savePersonalStatements(param).subscribe((res) => {
if (res["success"]) {
this.router.navigate(["/contract"], {
queryParams: { hiringBasicInfoId: this.hiringBasicInfoId },
});
} else {
this.openPopInfo(res["message"]);
} }
}) });
} }
queryContractTerms(){ queryContractTerms() {
this.myService.queryContractTerms().subscribe((res)=>{ this.myService.queryContractTerms().subscribe((res) => {
if(res['success']){ if (res["success"]) {
this.contractTermsList = res['data']['contractTermsList']; this.contractTermsList = res["data"]["contractTermsList"];
this.contractTermsList.forEach((item)=>{ this.contractTermsList.forEach((item) => {
item.confirmStatus = 0; item.confirmStatus = 0;
}); });
this.queryWholeInfo(this.hiringBasicInfoId); this.queryWholeInfo(this.hiringBasicInfoId);
}else{ } else {
this.openPopInfo(res['message']); this.openPopInfo(res["message"]);
} }
}); });
} }
...@@ -181,18 +221,18 @@ export class PersonalStatementComponent implements OnInit { ...@@ -181,18 +221,18 @@ export class PersonalStatementComponent implements OnInit {
this.isNeedAlert = false; this.isNeedAlert = false;
} }
readContract(contractItem){ readContract(contractItem) {
if(this.approveStatus==null || this.approveStatus == '-1'){ if (this.approveStatus == null || this.approveStatus == "-1") {
this.agreeBtnShow = false; this.agreeBtnShow = false;
if( contractItem.confirmStatus ==1){ if (contractItem.confirmStatus == 1) {
contractItem.confirmStatus = 0; contractItem.confirmStatus = 0;
}else{ } else {
this.isShow = true; this.isShow = true;
setTimeout(() => { setTimeout(() => {
let scrollTop = this.toastContent.nativeElement.scrollTop; let scrollTop = this.toastContent.nativeElement.scrollTop;
if(scrollTop>=0){ if (scrollTop >= 0) {
// setTimeout(() => { // setTimeout(() => {
this.agreeBtnShow = true; this.agreeBtnShow = true;
// }, 1000); // }, 1000);
} }
}, 500); }, 500);
...@@ -200,84 +240,97 @@ export class PersonalStatementComponent implements OnInit { ...@@ -200,84 +240,97 @@ export class PersonalStatementComponent implements OnInit {
this.curTitle = contractItem.termName; this.curTitle = contractItem.termName;
this.curContractId = contractItem.id; this.curContractId = contractItem.id;
} }
this.isAllAgree = this.contractTermsList.every((item)=>{ this.isAllAgree = this.contractTermsList.every((item) => {
return item.confirmStatus == 1; return item.confirmStatus == 1;
}); });
} }
} }
//同意合同条款 //同意合同条款
agree() { agree() {
if(this.agreeBtnShow == true){ if (this.agreeBtnShow == true) {
this.isShow = false; this.isShow = false;
for(let i=0;i<this.contractTermsList.length;i++){ for (let i = 0; i < this.contractTermsList.length; i++) {
if(this.curContractId == this.contractTermsList[i]['id']){ if (this.curContractId == this.contractTermsList[i]["id"]) {
this.contractTermsList[i]['confirmStatus'] = 1; this.contractTermsList[i]["confirmStatus"] = 1;
} }
} }
this.isAllAgree = this.contractTermsList.every((item)=>{ this.isAllAgree = this.contractTermsList.every((item) => {
return item.confirmStatus == 1; return item.confirmStatus == 1;
}) });
} }
} }
saveContractTermsConfirms(){ saveContractTermsConfirms() {
this.contractTermsConfirmsListParm = []; this.contractTermsConfirmsListParm = [];
for(let i=0;i<this.contractTermsList.length;i++){ for (let i = 0; i < this.contractTermsList.length; i++) {
this.contractTermsConfirmsListParm.push({ this.contractTermsConfirmsListParm.push({
contractTermId:this.contractTermsList[i]['id'], contractTermId: this.contractTermsList[i]["id"],
confirmStatus:this.contractTermsList[i]['confirmStatus'] confirmStatus: this.contractTermsList[i]["confirmStatus"],
}) });
} }
const param = { const param = {
hiringBasicInfoId:this.hiringBasicInfoId, hiringBasicInfoId: this.hiringBasicInfoId,
contractTermsConfirmsList:this.contractTermsConfirmsListParm contractTermsConfirmsList: this.contractTermsConfirmsListParm,
} };
this.myService.saveContractTermsConfirms(param).subscribe((res)=>{ this.myService.saveContractTermsConfirms(param).subscribe((res) => {
if(res['success']){ if (res["success"]) {
} else {
}else{ this.openPopInfo(res["message"]);
this.openPopInfo(res['message']); }
} });
})
} }
queryWholeInfo(hiringBasicInfoId){ queryWholeInfo(hiringBasicInfoId) {
this.myService.queryWholeInfo({hiringBasicInfoId:hiringBasicInfoId}).subscribe( (res)=>{ this.myService
if(res['success']){ .queryWholeInfo({ hiringBasicInfoId: hiringBasicInfoId })
this.approveStatus = res['data']['hiringBasicInfo']['approveStatus']; .subscribe((res) => {
if(this.type=="personal_statement"){ if (res["success"]) {
if(res['data']['hiringPersonalStatementsList'].length >0){ this.approveStatus = res["data"]["hiringBasicInfo"]["approveStatus"];
this.dropOptionsInfoList = res['data']['hiringPersonalStatementsList']; if (this.type == "personal_statement") {
for(let i=0;i<this.dropOptionsInfoList.length;i++){ if (res["data"]["hiringPersonalStatementsList"].length > 0) {
this.dropOptionsInfoList[i]['dropOptionName'] = this.dropOptionsInfoList[i]['mdDropOptionName']; this.dropOptionsInfoList =
this.dropOptionsInfoList[i]['id'] = this.dropOptionsInfoList[i]['mdDropOptionId']; res["data"]["hiringPersonalStatementsList"];
if(this.dropOptionsInfoList[i]['status'] == 1 && this.dropOptionsInfoList[i]['dropOptionCode']== 'NO_REGISTER_SAME_TRADE'){ for (let i = 0; i < this.dropOptionsInfoList.length; i++) {
this.everWorkFlag = true; this.dropOptionsInfoList[i][
this.everWork = this.dropOptionsInfoList[i]['userInput']; "dropOptionName"
}else{ ] = this.dropOptionsInfoList[i]["mdDropOptionName"];
this.everWorkFlag = false; this.dropOptionsInfoList[i]["id"] = this.dropOptionsInfoList[i][
"mdDropOptionId"
];
if (
this.dropOptionsInfoList[i]["status"] == 1 &&
this.dropOptionsInfoList[i]["dropOptionCode"] ==
"NO_REGISTER_SAME_TRADE"
) {
this.everWorkFlag = true;
this.everWork = this.dropOptionsInfoList[i]["userInput"];
} else {
this.everWorkFlag = false;
}
} }
} }
} }
} if (this.type == "contract") {
if(this.type == 'contract'){ let hiringContractTermsConfirmsList =
let hiringContractTermsConfirmsList = res['data']['hiringContractTermsConfirmsList']; res["data"]["hiringContractTermsConfirmsList"];
for(let i=0;i<hiringContractTermsConfirmsList.length;i++){ for (let i = 0; i < hiringContractTermsConfirmsList.length; i++) {
for(let j=0;j<this.contractTermsList.length;j++){ for (let j = 0; j < this.contractTermsList.length; j++) {
if(hiringContractTermsConfirmsList[i]['contractTermId'] == this.contractTermsList[j]['id']){ if (
this.contractTermsList[j]['confirmStatus'] = hiringContractTermsConfirmsList[i]['confirmStatus']; hiringContractTermsConfirmsList[i]["contractTermId"] ==
this.contractTermsList[j]["id"]
) {
this.contractTermsList[j]["confirmStatus"] =
hiringContractTermsConfirmsList[i]["confirmStatus"];
}
} }
} }
this.isAllAgree = this.contractTermsList.every((item) => {
return item.confirmStatus == 1;
});
} }
this.isAllAgree = this.contractTermsList.every((item)=>{
return item.confirmStatus == 1;
})
} }
} });
})
} }
// onScroll(event){ // onScroll(event){
...@@ -291,20 +344,24 @@ export class PersonalStatementComponent implements OnInit { ...@@ -291,20 +344,24 @@ export class PersonalStatementComponent implements OnInit {
// } // }
// } // }
viewNext(){ viewNext() {
if(this.type == 'personal_statement'){ if (this.type == "personal_statement") {
this.router.navigate(['/contract'],{ queryParams: { hiringBasicInfoId:this.hiringBasicInfoId} }); this.router.navigate(["/contract"], {
queryParams: { hiringBasicInfoId: this.hiringBasicInfoId },
});
} }
if(this.type == 'contract'){ if (this.type == "contract") {
this.router.navigate(['/signature'],{ queryParams: { hiringBasicInfoId:this.hiringBasicInfoId} }); this.router.navigate(["/signature"], {
queryParams: { hiringBasicInfoId: this.hiringBasicInfoId },
});
} }
} }
goBack(){ goBack() {
history.go(-1) history.go(-1);
} }
startCount(){ startCount() {
// if(!this.timer){ // if(!this.timer){
// this.count = TIME_COUNT; // this.count = TIME_COUNT;
// this.timer = setInterval(()=>{ // this.timer = setInterval(()=>{
...@@ -317,5 +374,4 @@ export class PersonalStatementComponent implements OnInit { ...@@ -317,5 +374,4 @@ export class PersonalStatementComponent implements OnInit {
// },1000) // },1000)
// } // }
} }
} }
...@@ -141,7 +141,7 @@ export class SignatureComponent implements OnInit { ...@@ -141,7 +141,7 @@ export class SignatureComponent implements OnInit {
} }
goBack(){ goBack(){
history.go(-1) history.go(-1);
} }
returnResult(){ returnResult(){
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
</ul> </ul>
<div class="salesContent"> <div class="salesContent">
<div style="text-align: center;margin: 20px auto;font-size: 20px;" *ngIf="approvarList?.length==0">暂无数据</div> <div style="text-align: center;margin: 20px auto;font-size: 20px;" *ngIf="approvarList?.length==0">暂无数据</div>
<div class="salesItem" *ngFor="let approvarItem of approvarList" > <div class="salesItem" *ngFor="let approvarItem of approvarList" (click)="jumpToDetail(approvarItem)">
<div class="line name"> <div class="line name">
<div> <div>
<i style="background:#1c5483;" *ngIf="selectedId==0"></i> <i style="background:#1c5483;" *ngIf="selectedId==0"></i>
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
<span>{{approvarItem.name}}提交的报聘</span> <span>{{approvarItem.name}}提交的报聘</span>
</div> </div>
<span class="iconfont icon-ar-r" style="font-size: 10px;position: relative; right: -2px;" <span class="iconfont icon-ar-r" style="font-size: 10px;position: relative; right: -2px;"
(click)="jumpToDetail(approvarItem)"></span> ></span>
</div> </div>
<!-- <div class="line" *ngIf="selectedId==1 || selectedId==2" (click)="jumpToDetail(approvarItem,'view')"> <!-- <div class="line" *ngIf="selectedId==1 || selectedId==2" (click)="jumpToDetail(approvarItem,'view')">
查看详情 查看详情
......
<div class="businessCardContainer"> <div class="businessCardContainer">
<div class="brokerCardPositive"> <div class="brokerCardPositive" id="brokerCardPositive" *ngIf="showFlag==false">
<div class="qrcodeBox"> <div class="qrcodeBox">
<div> <div>
<div style="margin-bottom: 20%;"><img src="assets/images/ydShield.png" alt="银盾保险经纪" class="img-responsive"> <div style="margin-bottom: 20%;"><img src="assets/images/ydShield.png" alt="银盾保险经纪" class="img-responsive">
...@@ -40,7 +40,10 @@ ...@@ -40,7 +40,10 @@
</div> </div>
</div> </div>
</div> </div>
<img src="{{canvasImg}}" *ngIf="showFlag==true">
<div class="brokerCardOpposite"> <div class="brokerCardOpposite">
<img src="assets/images/card_opposite.jpg" alt="" class="img-responsive"> <img src="assets/images/card_opposite.jpg" alt="" class="img-responsive">
</div> </div>
</div> </div>
<!--
<div (click) = "downLoadJspdfs()">导出pdf</div> -->
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
display: flex; display: flex;
padding-top: 7%; padding-top: 7%;
padding-left: 5%; padding-left: 5%;
margin-bottom: 10%; padding-bottom: 10%;
.qrcodeBox { .qrcodeBox {
width: 15%; width: 15%;
display: flex; display: flex;
......
import {Component, OnInit} from '@angular/core'; import {Component, ElementRef, OnInit, ViewChild} from '@angular/core';
import jspdf from 'jspdf';
import html2canvas from 'html2canvas';
@Component({ @Component({
selector: 'ydlife-business-card', selector: 'ydlife-business-card',
...@@ -6,13 +8,67 @@ import {Component, OnInit} from '@angular/core'; ...@@ -6,13 +8,67 @@ import {Component, OnInit} from '@angular/core';
styleUrls: ['./business-card.component.scss'] styleUrls: ['./business-card.component.scss']
}) })
export class BusinessCardComponent implements OnInit { export class BusinessCardComponent implements OnInit {
element:any;
lifeCustomerInfo: any; lifeCustomerInfo: any;
canvasImg:any;
showFlag:boolean = false;
constructor() { constructor() {
} }
ngOnInit() { ngOnInit() {
this.lifeCustomerInfo = JSON.parse(localStorage.getItem('lifeCustomerInfo')); this.lifeCustomerInfo = JSON.parse(localStorage.getItem('lifeCustomerInfo'));
setTimeout(()=>{
this.getImg();
},500)
}
getImg(){
this.element = document.getElementById("brokerCardPositive");
html2canvas(this.element).then(canvas => {
// 修改生成的宽度
canvas.style.width = "1000px";
console.log(canvas, "生成的画布文件");
this.canvasImg = canvas.toDataURL("image/png");
if(canvas){
this.showFlag = true;
}
})
} }
// downLoadJspdfs(){
// this.element = document.getElementById("brokerCardPositive");
// html2canvas(this.element,{
// logging:false //一开始canvas设置不渲染页面
// }).then((canvas)=>{
// let pdf:any = new jspdf('p','mm','a4') //纵向,单位mm,A4纸张大小
// let ctx:any = canvas.getContext('2d'); //预设2维画布
// let a4w:number = 190; //设置显示内容的大小,A4大小:210*297;最后显示在A4内部区域大小为:190*360
// let a4h:number = 200;
// let imgHeight:number = Math.floor(a4h*canvas.width/a4w); //按A4显示比例换算一页图像的像素高度
// let renderedHeight:number = 0;
// while(renderedHeight<canvas.height){//判断页面有内容时
// let page:any = document.createElement('canvas'); //创建画布
// page.width = canvas.width; //设置画布宽高等于内容宽高
// page.height = Math.min(imgHeight,canvas.height-renderedHeight); //画布的高等于内容的最小的高度(不足一页)
// //用getImageData裁剪指定区域,并绘制到前面创建的canvas对象中
// let a:any = page.getContext('2d');
// a.putImageData(ctx.getImageData(0,renderedHeight,canvas.width,Math.min(imgHeight,canvas.height-renderedHeight)),0,0);
// pdf.addImage(page.toDataURL('image/jpeg',1.0),'JPEG',10,10,a4w,Math.min(a4h,a4w*page.height/page.width)); //添加图片到页面,保留10mm边距
// renderedHeight += imgHeight;
// if(renderedHeight < canvas.height){
// pdf.addPage();
// }
// }
// pdf.save('content.pdf')
// });
// }
} }
...@@ -5,4 +5,82 @@ ...@@ -5,4 +5,82 @@
<div style="letter-spacing: 5px;margin-left: 5%;margin-top: 2%;">往期历史</div> <div style="letter-spacing: 5px;margin-left: 5%;margin-top: 2%;">往期历史</div>
</div> </div>
</div> </div>
<div class="history_wrapper">
<div class="history_item">
<div class="date">2020年12月</div>
<div class="history_content">
<ul class="performance_list title">
<li></li>
<li>首年保费</li>
<li>首年佣金</li>
<li>件数</li>
<li>完成率</li>
</ul>
<ul class="performance_list">
<li>线上</li>
<li class="markPrice" style="margin:0 7px;">
¥0
</li>
<li class="markPrice">
¥0
</li>
<li class="markPrice"></li>
<li class="markPrice" style="position: relative;top: 12px;">
</li>
</ul>
<ul class="performance_list">
<li>线下</li>
<li class="markPrice" style="margin:0 7px;">
</li>
<li class="markPrice">
</li>
<li class="markPrice"></li>
<li class="markPrice">
&nbsp;
</li>
</ul>
</div>
</div>
<div class="history_item">
<div class="date">2020年11月</div>
<div class="history_content">
<ul class="performance_list title">
<li></li>
<li>首年保费</li>
<li>首年佣金</li>
<li>件数</li>
<li>完成率</li>
</ul>
<ul class="performance_list">
<li>线上</li>
<li class="markPrice" style="margin:0 7px;">
¥10
</li>
<li class="markPrice">
¥10
</li>
<li class="markPrice"></li>
<li class="markPrice" style="position: relative;top: 12px;">
</li>
</ul>
<ul class="performance_list">
<li>线下</li>
<li class="markPrice" style="margin:0 7px;">
</li>
<li class="markPrice">
</li>
<li class="markPrice"></li>
<li class="markPrice">
&nbsp;
</li>
</ul>
</div>
</div>
</div>
</div> </div>
\ No newline at end of file
...@@ -25,4 +25,45 @@ ...@@ -25,4 +25,45 @@
} }
} }
} }
.history_wrapper{
padding: 10px;
.date{
height: 30px;
line-height: 30px;
}
.history_content{
background: #edf7ff;
border-radius: 8px;
padding: 0 5px;
.performance_list{
display: flex;
font-size: 14px;
li{
width: 15%;
text-align: center;
line-height: 35px;
font-size: 12px;
margin: 0 5px;
overflow: hidden;
}
li.markPrice{
font-weight: bold;
font-size: 15px;
}
li:nth-child(1){
width: 8%;
text-align: left;
margin: 0;
}
li:nth-child(2),li:nth-child(3){
width: 26%;
text-align: right;
}
li:last-child{
width: 18%;
}
}
}
}
} }
\ No newline at end of file
...@@ -116,13 +116,17 @@ ...@@ -116,13 +116,17 @@
<div class="tool_item" *ngIf="menuItem.isShow"> <div class="tool_item" *ngIf="menuItem.isShow">
<h3>{{menuItem.title}}</h3> <h3>{{menuItem.title}}</h3>
<div class="tool_content"> <div class="tool_content">
<div class="content_item" *ngFor="let menuItemContent of menuItem['content']" href="javascript:;" <ng-container *ngFor="let menuItemContent of menuItem['content']" >
(click)="menuNavigation(menuItemContent)"> <div class="content_item" *ngIf="menuItemContent.showSubMenu" href="javascript:;"
<!-- <span class="iconfont" [ngClass]="menuItemContent.icon"></span> --> (click)="menuNavigation(menuItemContent)">
<span *ngIf="menuItemContent.dot"></span>
<img [src]="getImgUrl(menuItemContent.icon)" alt=""> <!-- <span class="iconfont" [ngClass]="menuItemContent.icon"></span> -->
<div style="font-size: 13px;">{{menuItemContent.subtitle}}</div> <span *ngIf="menuItemContent.dot"></span>
</div> <img [src]="getImgUrl(menuItemContent.icon)" alt="">
<div style="font-size: 13px;">{{menuItemContent.subtitle}}</div>
</div>
</ng-container>
</div> </div>
</div> </div>
</div> </div>
......
...@@ -39,6 +39,7 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit { ...@@ -39,6 +39,7 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
showFlag:boolean = false; showFlag:boolean = false;
approvarList:Array<any>; approvarList:Array<any>;
dotFlag:boolean = false; dotFlag:boolean = false;
isShowSalay:boolean;
constructor( constructor(
private router: Router, private router: Router,
public lifeCommonService: LifeCommonService, public lifeCommonService: LifeCommonService,
...@@ -53,6 +54,7 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit { ...@@ -53,6 +54,7 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
this.lifeCommonService.setTitle(title); this.lifeCommonService.setTitle(title);
this.deviceType = this.lifeCommonService.checkDeviceType(); this.deviceType = this.lifeCommonService.checkDeviceType();
this.lifeCustomerInfo = JSON.parse(localStorage.getItem('lifeCustomerInfo')) ? JSON.parse(localStorage.getItem('lifeCustomerInfo')) : null; this.lifeCustomerInfo = JSON.parse(localStorage.getItem('lifeCustomerInfo')) ? JSON.parse(localStorage.getItem('lifeCustomerInfo')) : null;
this.isShowSalay = this.lifeCustomerInfo.canSeeSalaryList==1?true:false;
this.announcementQuery(); this.announcementQuery();
this.performanceList = [ this.performanceList = [
{ name: `${this.lifeCommonService.dateFormat(new Date, ('M'))}月`, time: 1 }, { name: `${this.lifeCommonService.dateFormat(new Date, ('M'))}月`, time: 1 },
...@@ -71,6 +73,7 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit { ...@@ -71,6 +73,7 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
//活动量得分查询 //活动量得分查询
this.queryPEPScore(); this.queryPEPScore();
this.listQuery(); this.listQuery();
this.canSeeSalaryList();
} }
ngAfterViewInit() { ngAfterViewInit() {
...@@ -84,25 +87,25 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit { ...@@ -84,25 +87,25 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
{ {
title: '营销工具', title: '营销工具',
content: [ content: [
{ no: 2, subtitle: 'AI保险医生', icon: 'ai', path: `https://${window.location.host}/questionnaire/#/index?campaign=AIRobot&task=AItask1&customerId=${this.lifeCustomerInfo.customerId}`, routerLink: '' }, { no: 2, subtitle: 'AI保险医生', icon: 'ai', path: `https://${window.location.host}/questionnaire/#/index?campaign=AIRobot&task=AItask1&customerId=${this.lifeCustomerInfo.customerId}`, routerLink: '',showSubMenu:true },
{ no: 1, subtitle: '獴哥保险诊所', icon: 'clinic', path: `https://${window.location.host}/consulting`, routerLink: '' }, { no: 1, subtitle: '獴哥保险诊所', icon: 'clinic', path: `https://${window.location.host}/consulting`, routerLink: '' ,showSubMenu:true},
{ no: 4, subtitle: '线上投保', icon: 'online', path: `https://${window.location.host}/index?source=dyd`, routerLink: '' }, { no: 4, subtitle: '线上投保', icon: 'online', path: `https://${window.location.host}/index?source=dyd`, routerLink: '' ,showSubMenu:true},
{ no: 13, subtitle: '我的商机', icon: 'line', path: '', routerLink: 'business' }, { no: 13, subtitle: '我的商机', icon: 'line', path: '', routerLink: 'business',showSubMenu:true },
{ no: 9, subtitle: '执业证书', icon: 'card', path: `https://${window.location.host}/brokerQry/#/brokerDetail/${this.lifeCustomerInfo.practitionerId}?source=0`, routerLink: '' }, { no: 9, subtitle: '执业证书', icon: 'card', path: `https://${window.location.host}/brokerQry/#/brokerDetail/${this.lifeCustomerInfo.practitionerId}?source=0`, routerLink: '',showSubMenu:true },
{ no: 10, subtitle: '职业类别', icon: 'job', path: 'https://www.ydinsurance.cn/occupationQry/', routerLink: '' }, { no: 10, subtitle: '职业类别', icon: 'job', path: 'https://www.ydinsurance.cn/occupationQry/', routerLink: '',showSubMenu:true },
{ no: 7, subtitle: '文章分享', icon: 'article', path: `https://${window.location.host}/discovery`, routerLink: '' }, { no: 7, subtitle: '文章分享', icon: 'article', path: `https://${window.location.host}/discovery`, routerLink: '' ,showSubMenu:true},
{ no: 3, subtitle: '产品海报', icon: 'poster_p', path: '/salesDetail', routerLink: 'material' }, { no: 3, subtitle: '产品海报', icon: 'poster_p', path: '/salesDetail', routerLink: 'material',showSubMenu:true },
], ],
isShow: true isShow: true
}, },
{ {
title: '我的团队', title: '我的团队',
content: [ content: [
{ no: 15, subtitle: '我的团队', icon: 'team', path: '', routerLink: '' }, { no: 15, subtitle: '我的团队', icon: 'team', path: '', routerLink: '',showSubMenu:true },
// { no: 16, subtitle: '团队增员', icon: 'recruiting', path: '', routerLink: '' }, // { no: 16, subtitle: '团队增员', icon: 'recruiting', path: '', routerLink: '',showSubMenu:true },
{ no: 16, subtitle: '团队增员', icon: 'recruiting', path: '', routerLink: 'recruiting' }, { no: 16, subtitle: '团队增员', icon: 'recruiting', path: '', routerLink: 'recruiting' ,showSubMenu:true},
{ no: 18, subtitle: '招募海报', icon: 'poster_r', path: '', routerLink: '' }, { no: 18, subtitle: '招募海报', icon: 'poster_r', path: '', routerLink: '',showSubMenu:true },
{ no: 22, subtitle: '报聘审批', icon: 'approval', path: '', routerLink: 'approval_list',dot: this.dotFlag} { no: 22, subtitle: '报聘审批', icon: 'approval', path: '', routerLink: 'approval_list',dot: this.dotFlag,showSubMenu:true}
], ],
// isShow: this.isShow // isShow: this.isShow
isShow: true isShow: true
...@@ -110,6 +113,7 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit { ...@@ -110,6 +113,7 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
{ {
title: '我的展业', title: '我的展业',
content: [ content: [
<<<<<<< HEAD
{ no: 12, subtitle: '我的保单', icon: 'policy', path: '', routerLink: '' }, { no: 12, subtitle: '我的保单', icon: 'policy', path: '', routerLink: '' },
{ no: 20, subtitle: '我的客户', icon: 'customer', path: '', routerLink: '' }, { no: 20, subtitle: '我的客户', icon: 'customer', path: '', routerLink: '' },
// { no: 14, subtitle: '我的佣金', icon: 'commission', path: '', routerLink: '' }, // { no: 14, subtitle: '我的佣金', icon: 'commission', path: '', routerLink: '' },
...@@ -120,16 +124,28 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit { ...@@ -120,16 +124,28 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
{ no: 25, subtitle: '', icon: 'default', path: '', routerLink: '' }, { no: 25, subtitle: '', icon: 'default', path: '', routerLink: '' },
{ no: 25, subtitle: '', icon: 'default', path: '', routerLink: '' }, { no: 25, subtitle: '', icon: 'default', path: '', routerLink: '' },
{ no: 26, subtitle: '', icon: 'default', path: '', routerLink: '' } { no: 26, subtitle: '', icon: 'default', path: '', routerLink: '' }
=======
{ no: 12, subtitle: '我的保单', icon: 'policy', path: '', routerLink: '',showSubMenu:true },
{ no: 20, subtitle: '我的客户', icon: 'customer', path: '', routerLink: '',showSubMenu:true },
// { no: 14, subtitle: '我的佣金', icon: 'commission', path: '', routerLink: '',showSubMenu:true },
{ no: 19, subtitle: '薪资单', icon: 'salary', path: '', routerLink: 'salary',showSubMenu:this.isShowSalay },
{ no: 21, subtitle: '公司制度', icon: 'management', path: '', routerLink: '',showSubMenu:true },
{ no: 23, subtitle: '我的报聘', icon: 'pin', path: '', routerLink: 'my_application' ,showSubMenu:true},
{ no: 24, subtitle: '目标设置', icon: 'set', path: '', routerLink: 'target',showSubMenu:true },
{ no: 25, subtitle: '', icon: 'default', path: '', routerLink: '' ,showSubMenu:true},
{ no: 26, subtitle: '', icon: 'default', path: '', routerLink: '' ,showSubMenu:true}
>>>>>>> dev
], ],
isShow: true isShow: true
}, },
{ {
title: '教育培训', title: '教育培训',
content: [ content: [
{ no: 5, subtitle: '保险ABC', icon: 'abc', path: `https://${window.location.host}/issue`, routerLink: '' }, { no: 5, subtitle: '保险ABC', icon: 'abc', path: `https://${window.location.host}/issue`, routerLink: '' ,showSubMenu:true},
{ no: 6, subtitle: '培训课件', icon: 'train', path: '', routerLink: 'training' }, { no: 6, subtitle: '培训课件', icon: 'train', path: '', routerLink: 'training',showSubMenu:true },
{ no: 11, subtitle: '文件下载', icon: 'download', path: 'https://www.ydinsurance.cn/?page_id=13957', routerLink: 'fileUpload' }, { no: 11, subtitle: '文件下载', icon: 'download', path: 'https://www.ydinsurance.cn/?page_id=13957', routerLink: 'fileUpload',showSubMenu:true },
{ no: 17, subtitle: '产品库', icon: 'product', path: 'https://www.ydinsurance.cn/?page_id=14331', routerLink: '' } { no: 17, subtitle: '产品库', icon: 'product', path: 'https://www.ydinsurance.cn/?page_id=14331', routerLink: '' ,showSubMenu:true}
], ],
isShow: true isShow: true
...@@ -157,6 +173,7 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit { ...@@ -157,6 +173,7 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
this.router.navigate(['/salesDetail'], { queryParams: { searchType: this.performanceSelectedFlag, showType: 'sales' } }); this.router.navigate(['/salesDetail'], { queryParams: { searchType: this.performanceSelectedFlag, showType: 'sales' } });
} else if (item.no === 15) { } else if (item.no === 15) {
this.router.navigate(['/teamPanel']) this.router.navigate(['/teamPanel'])
// this.router.navigate(['/team_area'])
} else if (!item.subtitle) { } else if (!item.subtitle) {
return; return;
} else if (item.no === 18) { } else if (item.no === 18) {
...@@ -314,11 +331,9 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit { ...@@ -314,11 +331,9 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
this.isShow = true; this.isShow = true;
sessionStorage.setItem('isTeamleader', '1'); sessionStorage.setItem('isTeamleader', '1');
sessionStorage.setItem('subordinateSystemName', res['data']['subordinateSystemName']) sessionStorage.setItem('subordinateSystemName', res['data']['subordinateSystemName'])
this.getMenuList();
} else { } else {
this.isShow = false; this.isShow = false;
sessionStorage.setItem('isTeamleader', '0') sessionStorage.setItem('isTeamleader', '0')
this.getMenuList();
} }
}) })
} }
...@@ -391,4 +406,18 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit { ...@@ -391,4 +406,18 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
} }
}) })
} }
//判断是否显示薪资单
canSeeSalaryList(){
const practitionerId = JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId'];
this.myService.canSeeSalaryList(practitionerId).subscribe((res)=>{
if(res['data'] && res['data'].canSeeSalaryList == 1){
this.isShowSalay = true;
this.getMenuList();
}else{
this.isShowSalay = false;
this.getMenuList();
}
})
}
} }
...@@ -48,6 +48,7 @@ import { MyApplicationComponent } from './my-application/my-application.componen ...@@ -48,6 +48,7 @@ import { MyApplicationComponent } from './my-application/my-application.componen
import { SuggestionComponent } from './suggestion/suggestion.component'; import { SuggestionComponent } from './suggestion/suggestion.component';
import { EmployeeSalaryComponent } from './application-process/employee-salary/employee-salary.component'; import { EmployeeSalaryComponent } from './application-process/employee-salary/employee-salary.component';
import { HistoricalRankComponent } from './historical-rank/historical-rank.component'; import { HistoricalRankComponent } from './historical-rank/historical-rank.component';
import { TeamAreaPanelComponent } from './team-area-panel/team-area-panel.component';
const myRoutes: Routes = [ const myRoutes: Routes = [
{ path: '', component: MyCenterHomeComponent, canActivate: [AuthGuard], data: [{ title: '银盾保险经纪 - 工作台' }] }, { path: '', component: MyCenterHomeComponent, canActivate: [AuthGuard], data: [{ title: '银盾保险经纪 - 工作台' }] },
...@@ -102,8 +103,8 @@ const myRoutes: Routes = [ ...@@ -102,8 +103,8 @@ const myRoutes: Routes = [
{ path: 'approval_result_list',component:ApprovalResultListComponent,data: [{ title: '审批流程' }],canActivate:[AuthGuard]}, { path: 'approval_result_list',component:ApprovalResultListComponent,data: [{ title: '审批流程' }],canActivate:[AuthGuard]},
{ path: 'my_application',component:MyApplicationComponent,data: [{ title: '我的报聘' }],canActivate:[AuthGuard]}, { path: 'my_application',component:MyApplicationComponent,data: [{ title: '我的报聘' }],canActivate:[AuthGuard]},
{ path: 'suggestion',component:SuggestionComponent,data: [{ title: '问题反馈' }],canActivate:[AuthGuard]}, { path: 'suggestion',component:SuggestionComponent,data: [{ title: '问题反馈' }],canActivate:[AuthGuard]},
{ path: 'historical_rank', component: HistoricalRankComponent, canActivate: [AuthGuard] } { path: 'historical_rank', component: HistoricalRankComponent, canActivate: [AuthGuard] },
{ path: 'team_area',component:TeamAreaPanelComponent, canActivate: [AuthGuard]}
]; ];
@NgModule({ @NgModule({
......
...@@ -58,9 +58,10 @@ import { MyApplicationComponent } from './my-application/my-application.componen ...@@ -58,9 +58,10 @@ import { MyApplicationComponent } from './my-application/my-application.componen
import { SuggestionComponent } from './suggestion/suggestion.component'; import { SuggestionComponent } from './suggestion/suggestion.component';
import { EmployeeSalaryComponent } from './application-process/employee-salary/employee-salary.component'; import { EmployeeSalaryComponent } from './application-process/employee-salary/employee-salary.component';
import { HistoricalRankComponent } from './historical-rank/historical-rank.component'; import { HistoricalRankComponent } from './historical-rank/historical-rank.component';
import { TeamAreaPanelComponent } from './team-area-panel/team-area-panel.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], 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],
imports: [ imports: [
CommonModule, CommonModule,
LifeCommonModule, LifeCommonModule,
......
...@@ -569,4 +569,33 @@ export class MyService { ...@@ -569,4 +569,33 @@ export class MyService {
return this.http return this.http
.post(url, JSON.stringify(param)); .post(url, JSON.stringify(param));
} }
//区域负责人数字权限成员业绩信息查询
employeePerformanceForAreaManagerQuery(param){
const url = this.ydapi + "/practitioner/employeePerformanceForAreaManagerQuery";
return this.http.post(url, JSON.stringify(param)).pipe(res => {
return res;
});
}
//销售业绩预测  保费/佣金/件数
employeeFCTPerformanceForAreaManagerQuery(param){
const url = this.ydapi + "/practitioner/employeeFCTPerformanceForAreaManagerQuery";
return this.http.post(url, JSON.stringify(param)).pipe(res => {
return res;
});
}
//区域负责人查询战队PEP得分
pepForAreaManagerQuery(param){
const url = this.ydapi + "/practitioner/pepForAreaManagerQuery";
return this.http.post(url, JSON.stringify(param)).pipe(res => {
return res;
});
}
canSeeSalaryList(params){
const url = this.ydapi + "/practitioner/canSeeSalaryList/" + params ;
return this.http.get(url);
}
} }
...@@ -80,6 +80,9 @@ ...@@ -80,6 +80,9 @@
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
font-size: 16px; font-size: 16px;
}
select.form-control {
direction: rtl; direction: rtl;
} }
input[type="date"]{ input[type="date"]{
......
...@@ -478,6 +478,13 @@ export class RecruitingDetailComponent implements OnInit { ...@@ -478,6 +478,13 @@ export class RecruitingDetailComponent implements OnInit {
this.openPopInfo('S2级别以下,辅导人不可以为空!') this.openPopInfo('S2级别以下,辅导人不可以为空!')
return; return;
} }
if(this.employQuery.mentorPractitionerId || this.employQuery.mentor){
if(!this.employQuery.subsystemId || !this.employQuery.subsystem){
this.openPopInfo('该辅导人在系统里还没有归属到某一个体系,请重新选择辅导人!')
return;
}
}
}else{ }else{
if(!this.employQuery.branch || !this.employQuery.branchId){ if(!this.employQuery.branch || !this.employQuery.branchId){
this.openPopInfo('报聘职级为S2级别时,请您自己选择分公司!') this.openPopInfo('报聘职级为S2级别时,请您自己选择分公司!')
......
<div class="salesWrapper"> <div class="salesWrapper">
<div class="salesContent"> <div class="salesContent">
<div class="salesItem" *ngFor="let payScaleItem of payScaleInfos"> <div class="salesItem" *ngFor="let payScaleItem of payScaleInfos" (click)="getPdf(payScaleItem.monShId,payScaleItem.pdfOssPath)">
<div class="icon_bolck"><span class="iconfont icon-xinzidan"></span></div> <div class="icon_bolck"><span class="iconfont icon-xinzidan"></span></div>
<div class="line"> <div class="line">
<div>薪资日期</div> <div>薪资日期</div>
...@@ -12,19 +12,22 @@ ...@@ -12,19 +12,22 @@
</div> </div>
<div class="line"> <div class="line">
<span>应发佣金</span> <span>应发佣金</span>
<div class="price">¥{{payScaleItem.monDtlAmount | number: "1.2-2"}}</div> <div class="price" *ngIf="!payScaleItem.pdfOssPath">¥{{payScaleItem.monDtlAmount | number: "1.2-2"}}</div>
<div *ngIf="payScaleItem.pdfOssPath">直接查看薪资单明细</div>
</div> </div>
<div class="line"> <div class="line">
<span>扣除税</span> <span>扣除税</span>
<div class="price">¥{{(payScaleItem.monDtlAmount-payScaleItem.monDtlRAmount) | number: "1.2-2"}}</div> <div class="price" *ngIf="!payScaleItem.pdfOssPath">¥{{(payScaleItem.monDtlAmount-payScaleItem.monDtlRAmount) | number: "1.2-2"}}</div>
<div class="price" *ngIf="payScaleItem.pdfOssPath">-</div>
</div> </div>
<div class="line"> <div class="line">
<span>实发佣金</span> <span>实发佣金</span>
<div class="price">¥{{payScaleItem.monDtlRAmount | number: "1.2-2"}}</div> <div class="price" *ngIf="!payScaleItem.pdfOssPath">¥{{payScaleItem.monDtlRAmount | number: "1.2-2"}}</div>
<div *ngIf="payScaleItem.pdfOssPath">直接查看薪资单明细</div>
</div> </div>
<div class="line"> <div class="line">
<div></div> <div></div>
<div (click)="getPdf(payScaleItem.monShId)"> <div>
薪资单明细 薪资单明细
<span class="iconfont icon-xiazai" style="color:#ff3500;margin-left: 5px;"></span> <span class="iconfont icon-xiazai" style="color:#ff3500;margin-left: 5px;"></span>
</div> </div>
......
...@@ -23,7 +23,7 @@ export class SalaryComponent implements OnInit { ...@@ -23,7 +23,7 @@ export class SalaryComponent implements OnInit {
} }
payScaleListQuery() { payScaleListQuery() {
this.myService.payScaleListQuery({ practitionerIdEG: this.practitionerIdEG }).subscribe((res) => { this.myService.payScaleListQuery({ practitionerIdEG: this.practitionerIdEG,practitionerId:this.practitionerId }).subscribe((res) => {
if (res['success']) { if (res['success']) {
this.payScaleInfos = res['data']['payScaleInfos']; this.payScaleInfos = res['data']['payScaleInfos'];
} else { } else {
...@@ -33,22 +33,29 @@ export class SalaryComponent implements OnInit { ...@@ -33,22 +33,29 @@ export class SalaryComponent implements OnInit {
} }
//下载pdf //下载pdf
getPdf(monShId) { getPdf(monShId,url) {
this.myService.payScalePdf({ monShId: monShId, practitionerId: Number(this.practitionerId) }).subscribe((res) => { if(url){
if (res['success']) { window.open(url)
if (res['data']['url']) { // location.href = url;
location.href = res['data']['url']; }else{
} else { this.myService.payScalePdf({ monShId: monShId, practitionerId: Number(this.practitionerId) }).subscribe((res) => {
this.toastDialog = true; if (res['success']) {
this.toastInfo = { if (res['data']['url']) {
status: 1, window.open(res['data']['url'])
msg: '暂无薪资单!', // location.href = res['data']['url'];
timeout: 3000, } else {
align: 'center' this.toastDialog = true;
}; this.toastInfo = {
return; status: 1,
msg: '暂无薪资单!',
timeout: 3000,
align: 'center'
};
return;
}
} }
} })
}) }
} }
} }
...@@ -19,7 +19,7 @@ export class SalesDetailComponent implements OnInit { ...@@ -19,7 +19,7 @@ export class SalesDetailComponent implements OnInit {
{ time: 1, name: '本月' }, { time: 1, name: '本月' },
{ time: 3, name: '本季' }, { time: 3, name: '本季' },
{ time: 2, name: '本年度' }, { time: 2, name: '本年度' },
// { time: 4, name: '历史' } { time: 4, name: '历史' }
] ]
} }
......
<div class="taem_panel_wrapper">
<div class="teamInfo">
<img src="assets/images/cup_icon.png" >
<div style="float: left;letter-spacing: 5px;margin-left: 5%;">我的战队</div>
</div>
<div class="team_wrapper">
<div class="item" *ngFor="let branchIntem of branchDataInfos" [routerLink]="['/teamPanel']">
<ng-container *ngFor="let deptItem of branchIntem['deptDataInfos']">
<div *ngFor="let systemItem of deptItem['subordinateSystemDataInfos']">
{{systemItem.subordinateSystemName}}
</div>
</ng-container>
</div>
</div>
</div>
\ No newline at end of file
.taem_panel_wrapper{
padding: 5px 8px;
background: url('../../../assets/images/team_bg.png') no-repeat;
// background: #1b5b99;
background-size: 100%;
height: auto;
min-height: 100%;
position: relative;
ul li,ol li{
list-style: none;
}
.teamInfo{
font-size: 26px;
position: relative;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
overflow: hidden;
border-radius: 6px;
color: #fff;
width: 100%;
height: 130px;
img{
width: 12%;
margin-left: -8%;
}
}
.item{
div{
background: #fff;
padding: 0px 5px;
height: 35px;
line-height: 35px;
margin-bottom: 5px;
}
}
}
\ No newline at end of file
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { TeamAreaPanelComponent } from './team-area-panel.component';
describe('TeamAreaPanelComponent', () => {
let component: TeamAreaPanelComponent;
let fixture: ComponentFixture<TeamAreaPanelComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ TeamAreaPanelComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(TeamAreaPanelComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from '@angular/core';
import { MyService } from '../my.service';
@Component({
selector: 'ydlife-team-area-panel',
templateUrl: './team-area-panel.component.html',
styleUrls: ['./team-area-panel.component.scss']
})
export class TeamAreaPanelComponent implements OnInit {
practitionerId: any;
branchDataInfos:Array<any>;
constructor(private myService: MyService) { }
ngOnInit() {
this.practitionerId = JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId'];
this.queryPEPScore();
}
//获取区域管理人所有战队
queryPEPScore(){
// this.myService.employeePerformanceForAreaManagerQuery({ areaManagerPractitionerId: this.practitionerId }).subscribe((res)=>{
// if(res['success']){
// this.branchDataInfos = res['data']['insurerDataInfos'][0]['branchDataInfos'];
// }
// })
this.branchDataInfos = [
{
"branchId": 97,
"branchName": "北京分公司",
"statisticInfo": {
"fyc": 0.0,
"fyp": 0.0,
"count": 0
},
"deptDataInfos": [
{
"deptId": 38,
"deptName": "北京营业部",
"statisticInfo": {
"fyc": 0.0,
"fyp": 0.0,
"count": 0
},
"subordinateSystemDataInfos": [
{
"subordinateSystemId": 35,
"subordinateSystemName": "冠军",
"statisticInfo": {
"fyc": 0.0,
"fyp": 0.0,
"count": 0,
"completionRate": null
},
"memberInfoList": [
{
"practitionerId": 105,
"name": "梁朝霞",
"levelCode": "S2",
"levelName": "业务合伙人",
"fyp": 0.0,
"fyc": 0.0,
"count": 0
}
]
}
]
}
]
},
{
"branchId": 86,
"branchName": "测试分公司",
"statisticInfo": {
"fyc": 0.0,
"fyp": 0.0,
"count": 0
},
"deptDataInfos": [
{
"deptId": 30,
"deptName": "张江营业二部",
"statisticInfo": {
"fyc": 0.0,
"fyp": 0.0,
"count": 0
},
"subordinateSystemDataInfos": [
{
"subordinateSystemId": 38,
"subordinateSystemName": "柠檬精体系",
"statisticInfo": {
"fyc": 0.0,
"fyp": 0.0,
"count": 0,
"completionRate": null
},
"memberInfoList": [
{
"practitionerId": 72,
"name": "玛丽酱",
"levelCode": "S2",
"levelName": "业务合伙人",
"fyp": 0.0,
"fyc": 0.0,
"count": 0
}
]
}
]
},
{
"deptId": 37,
"deptName": "长江产险营业部",
"statisticInfo": {
"fyc": 0.0,
"fyp": 0.0,
"count": 0
},
"subordinateSystemDataInfos": [
{
"subordinateSystemId": 34,
"subordinateSystemName": "产险一体系",
"statisticInfo": {
"fyc": 0.0,
"fyp": 0.0,
"count": 0,
"completionRate": null
},
"memberInfoList": [
{
"practitionerId": 25,
"name": "李慧敏",
"levelCode": "A3",
"levelName": "业务总监",
"fyp": 0.0,
"fyc": 0.0,
"count": 0
}
]
}
]
}
]
},
{
"branchId": 64,
"branchName": "银盾北京分公司",
"statisticInfo": {
"fyc": 0.0,
"fyp": 0.0,
"count": 0
},
"deptDataInfos": [
{
"deptId": 3,
"deptName": "北京water营业一部",
"statisticInfo": {
"fyc": 0.0,
"fyp": 0.0,
"count": 0
},
"subordinateSystemDataInfos": [
{
"subordinateSystemId": 4,
"subordinateSystemName": "water体系2",
"statisticInfo": {
"fyc": 0.0,
"fyp": 0.0,
"count": 0,
"completionRate": null
},
"memberInfoList": [
{
"practitionerId": 69,
"name": "毛利",
"levelCode": "S1-B",
"levelName": "营销高级总监",
"fyp": 0.0,
"fyc": 0.0,
"count": 0
}
]
},
{
"subordinateSystemId": 3,
"subordinateSystemName": "water体系1",
"statisticInfo": {
"fyc": 0.0,
"fyp": 0.0,
"count": 0,
"completionRate": null
},
"memberInfoList": [
{
"practitionerId": 21,
"name": "肖晓耀",
"levelCode": "S2",
"levelName": "业务合伙人",
"fyp": 0.0,
"fyc": 0.0,
"count": 0
}
]
}
]
}
]
},
{
"branchId": 67,
"branchName": "上海分公司",
"statisticInfo": {
"fyc": 0.0,
"fyp": 0.0,
"count": 0
},
"deptDataInfos": [
{
"deptId": 11,
"deptName": "测试新增上海营业部",
"statisticInfo": {
"fyc": 0.0,
"fyp": 0.0,
"count": 0
},
"subordinateSystemDataInfos": [
{
"subordinateSystemId": 40,
"subordinateSystemName": "乘风破浪",
"statisticInfo": {
"fyc": 0.0,
"fyp": 0.0,
"count": 0,
"completionRate": null
},
"memberInfoList": [
{
"practitionerId": 113,
"name": "李春霞",
"levelCode": "S2",
"levelName": "业务合伙人",
"fyp": 0.0,
"fyc": 0.0,
"count": 0
},
{
"practitionerId": 114,
"name": "孙葵",
"levelCode": "A3",
"levelName": "业务总监",
"fyp": 0.0,
"fyc": 0.0,
"count": 0
}
]
}
]
},
{
"deptId": 2,
"deptName": "金港路寿险部",
"statisticInfo": {
"fyc": 0.0,
"fyp": 0.0,
"count": 0
},
"subordinateSystemDataInfos": [
{
"subordinateSystemId": 2,
"subordinateSystemName": "双莲",
"statisticInfo": {
"fyc": 0.0,
"fyp": 0.0,
"count": 0,
"completionRate": null
},
"memberInfoList": [
{
"practitionerId": 97,
"name": "金毛",
"levelCode": "A3",
"levelName": "业务总监",
"fyp": 0.0,
"fyc": 0.0,
"count": 0
},
{
"practitionerId": 79,
"name": "张九九",
"levelCode": "S2",
"levelName": "业务合伙人",
"fyp": 0.0,
"fyc": 0.0,
"count": 0
},
{
"practitionerId": 18,
"name": "汪鹏",
"levelCode": "S2",
"levelName": "业务合伙人",
"fyp": 0.0,
"fyc": 0.0,
"count": 0
},
{
"practitionerId": 91,
"name": "十二不傻",
"levelCode": "S1-B",
"levelName": "营销高级总监",
"fyp": 0.0,
"fyc": 0.0,
"count": 0
},
{
"practitionerId": 10,
"name": "万双莲",
"levelCode": "S2",
"levelName": "业务合伙人",
"fyp": 0.0,
"fyc": 0.0,
"count": 0
},
{
"practitionerId": 90,
"name": "六四",
"levelCode": "S2",
"levelName": "业务合伙人",
"fyp": 0.0,
"fyc": 0.0,
"count": 0
},
{
"practitionerId": 11,
"name": "余侑蓁",
"levelCode": "S2",
"levelName": "业务合伙人",
"fyp": 0.0,
"fyc": 0.0,
"count": 0
},
{
"practitionerId": 78,
"name": "张嘉欣",
"levelCode": "S2",
"levelName": "业务合伙人",
"fyp": 0.0,
"fyc": 0.0,
"count": 0
}
]
}
]
},
{
"deptId": 1,
"deptName": "张扬路寿险部",
"statisticInfo": {
"fyc": 0.0,
"fyp": 0.0,
"count": 0
},
"subordinateSystemDataInfos": [
{
"subordinateSystemId": 36,
"subordinateSystemName": "如乔体系",
"statisticInfo": {
"fyc": 0.0,
"fyp": 0.0,
"count": 0,
"completionRate": null
},
"memberInfoList": [
{
"practitionerId": 4,
"name": "林如乔",
"levelCode": "S2",
"levelName": "业务合伙人",
"fyp": 0.0,
"fyc": 0.0,
"count": 0
}
]
},
{
"subordinateSystemId": 1,
"subordinateSystemName": "菁英",
"statisticInfo": {
"fyc": 0.0,
"fyp": 0.0,
"count": 0,
"completionRate": null
},
"memberInfoList": [
{
"practitionerId": 118,
"name": "傻逼",
"levelCode": "S2",
"levelName": "业务合伙人",
"fyp": 0.0,
"fyc": 0.0,
"count": 0
},
{
"practitionerId": 119,
"name": "傻逼吗",
"levelCode": "S2",
"levelName": "业务合伙人",
"fyp": 0.0,
"fyc": 0.0,
"count": 0
},
{
"practitionerId": 126,
"name": "复现",
"levelCode": "A3",
"levelName": "业务总监",
"fyp": 0.0,
"fyc": 0.0,
"count": 0
},
{
"practitionerId": 2,
"name": "吕子苹",
"levelCode": "A3",
"levelName": "业务总监",
"fyp": 0.0,
"fyc": 0.0,
"count": 0
},
{
"practitionerId": 122,
"name": "新增增员",
"levelCode": "A1",
"levelName": "业务主任",
"fyp": 0.0,
"fyc": 0.0,
"count": 0
},
{
"practitionerId": 117,
"name": "喵喵",
"levelCode": "S1-A",
"levelName": "业务高级总监",
"fyp": 0.0,
"fyc": 0.0,
"count": 0
},
{
"practitionerId": 77,
"name": "张嘉欣",
"levelCode": null,
"levelName": null,
"fyp": 0.0,
"fyc": 0.0,
"count": 0
},
{
"practitionerId": 123,
"name": "张佳南",
"levelCode": "A3",
"levelName": "业务总监",
"fyp": 0.0,
"fyc": 0.0,
"count": 0
},
{
"practitionerId": 1,
"name": "郑志弘",
"levelCode": "A1",
"levelName": "业务主任",
"fyp": 0.0,
"fyc": 0.0,
"count": 0
},
{
"practitionerId": 82,
"name": "瓦特",
"levelCode": "A1",
"levelName": "业务主任",
"fyp": 0.0,
"fyc": 0.0,
"count": 0
},
{
"practitionerId": 5,
"name": "宁琳",
"levelCode": "A3",
"levelName": "业务总监",
"fyp": 0.0,
"fyc": 0.0,
"count": 0
},
{
"practitionerId": 80,
"name": "Sweet",
"levelCode": "S2",
"levelName": "业务合伙人",
"fyp": 0.0,
"fyc": 0.0,
"count": 0
},
{
"practitionerId": 121,
"name": "孙孙",
"levelCode": "A2",
"levelName": "业务经理",
"fyp": 0.0,
"fyc": 0.0,
"count": 0
},
{
"practitionerId": 63,
"name": "唐纳德",
"levelCode": "S1-A",
"levelName": "业务高级总监",
"fyp": 0.0,
"fyc": 0.0,
"count": 0
},
{
"practitionerId": 120,
"name": "傻逼是",
"levelCode": "S2",
"levelName": "业务合伙人",
"fyp": 0.0,
"fyc": 0.0,
"count": 0
},
{
"practitionerId": 115,
"name": "测试一下",
"levelCode": "S2",
"levelName": "业务合伙人",
"fyp": 0.0,
"fyc": 0.0,
"count": 0
},
{
"practitionerId": 8,
"name": "徐昳雯",
"levelCode": "S1-B",
"levelName": "营销高级总监",
"fyp": 0.0,
"fyc": 0.0,
"count": 0
},
{
"practitionerId": 87,
"name": "丝丝",
"levelCode": "S1-A",
"levelName": "业务高级总监",
"fyp": 0.0,
"fyc": 0.0,
"count": 0
},
{
"practitionerId": 76,
"name": "二二",
"levelCode": "S1-B",
"levelName": "营销高级总监",
"fyp": 0.0,
"fyc": 0.0,
"count": 0
},
{
"practitionerId": 75,
"name": "一一",
"levelCode": "S1-B",
"levelName": "营销高级总监",
"fyp": 0.0,
"fyc": 0.0,
"count": 0
}
]
}
]
}
]
}
]
console.log(this.branchDataInfos)
}
}
...@@ -17,7 +17,6 @@ ...@@ -17,7 +17,6 @@
</ul> </ul>
</div> </div>
</div> </div>
<div class="salseContent"> <div class="salseContent">
<div class="num">¥{{statisticInfo?.fyp | number: "1.2-2"}}</div> <div class="num">¥{{statisticInfo?.fyp | number: "1.2-2"}}</div>
<div class="num">¥{{statisticInfo?.fyc | number: "1.2-2"}}</div> <div class="num">¥{{statisticInfo?.fyc | number: "1.2-2"}}</div>
...@@ -34,7 +33,7 @@ ...@@ -34,7 +33,7 @@
<div class="rankContent"> <div class="rankContent">
<div style="font-size: 18px;margin-bottom: 10px;">战队排名</div> <div style="font-size: 18px;margin-bottom: 10px;">战队排名</div>
<ul> <ul>
<!-- <li class="rank">排名</li> --> <li class="rank">排名</li>
<li class="name">姓名</li> <li class="name">姓名</li>
<li class="fyp">首年保费</li> <li class="fyp">首年保费</li>
<li class="fyc">首年佣金</li> <li class="fyc">首年佣金</li>
...@@ -44,9 +43,9 @@ ...@@ -44,9 +43,9 @@
暂无战队成员,努力去增员吧 暂无战队成员,努力去增员吧
</div> </div>
<ul *ngFor="let performanceItem of performanceListShow;index as i;"> <ul *ngFor="let performanceItem of performanceListShow;index as i;">
<!-- <li class="rank"> <li class="rank">
{{performanceItem.rank}} {{i+1}}
</li> --> </li>
<li class="name">{{performanceItem.name}}</li> <li class="name">{{performanceItem.name}}</li>
<li class="fyp remark">¥{{performanceItem.fyp | number: "1.0-2"}}</li> <li class="fyp remark">¥{{performanceItem.fyp | number: "1.0-2"}}</li>
<li class="fyc remark">¥{{performanceItem.fyc | number: "1.0-2"}}</li> <li class="fyc remark">¥{{performanceItem.fyc | number: "1.0-2"}}</li>
......
...@@ -108,21 +108,24 @@ ...@@ -108,21 +108,24 @@
padding: 5px; padding: 5px;
ul{ ul{
width: 100%; width: 100%;
height: 30px;
line-height: 30px;
li{ li{
float: left; float: left;
width: 28%; width: 24%;
text-align: right; text-align: right;
margin-right: 1%; margin-right: 1%;
position: relative; position: relative;
margin-bottom: 5px; margin-bottom: 5px;
overflow: hidden; overflow: hidden;
height: 30px; height: 32px;
line-height: 32px;
li.icon .iconfont{ li.icon .iconfont{
position: absolute; position: absolute;
} }
} }
li.rank{
width: 10%;
text-align: center;
}
li.name,li.count{ li.name,li.count{
width: 18%; width: 18%;
} }
......
...@@ -64,7 +64,11 @@ ...@@ -64,7 +64,11 @@
暂无战队成员,努力去增员吧 暂无战队成员,努力去增员吧
</div> </div>
<ul *ngFor="let forecastItem of salesPerformanceForecastInfos;index as i;"> <ul *ngFor="let forecastItem of salesPerformanceForecastInfos;index as i;">
<li class="name"><span>{{i+1}}</span>{{forecastItem.name}}</li> <li class="name">
<span>{{i+1}}</span>
<i>{{forecastItem.name}}</i>
</li>
<li>{{forecastItem.premium!=null?'¥'+lifeCommonService.transform(forecastItem.premium):'-'}}</li> <li>{{forecastItem.premium!=null?'¥'+lifeCommonService.transform(forecastItem.premium):'-'}}</li>
<li>{{forecastItem.commission!=null?'¥'+lifeCommonService.transform(forecastItem.commission):'-'}}</li> <li>{{forecastItem.commission!=null?'¥'+lifeCommonService.transform(forecastItem.commission):'-'}}</li>
<li class="count">{{forecastItem.pieces!=null?forecastItem.pieces:'-'}}</li> <li class="count">{{forecastItem.pieces!=null?forecastItem.pieces:'-'}}</li>
...@@ -92,7 +96,7 @@ ...@@ -92,7 +96,7 @@
暂无战队成员,努力去增员吧 暂无战队成员,努力去增员吧
</div> </div>
<ul *ngFor="let teamMemberItem of teamMemberList;index as i;" [routerLink]="['/member_detail',teamMemberItem.practitionerId]"> <ul *ngFor="let teamMemberItem of teamMemberList;index as i;" [routerLink]="['/member_detail',teamMemberItem.practitionerId]">
<li>{{teamMemberItem.name}}</li> <li>{{i+1}} {{teamMemberItem.name}}</li>
<li>{{teamMemberItem.practitionerLevel}}{{teamMemberItem.practitionerTitle}}</li> <li>{{teamMemberItem.practitionerLevel}}{{teamMemberItem.practitionerTitle}}</li>
<li class="sex">{{teamMemberItem.gender}}</li> <li class="sex">{{teamMemberItem.gender}}</li>
<li>{{teamMemberItem.mobileNo}}</li> <li>{{teamMemberItem.mobileNo}}</li>
......
...@@ -141,6 +141,10 @@ ...@@ -141,6 +141,10 @@
} }
ul li.name{ ul li.name{
width: 20%; width: 20%;
i{
font-style: normal;
margin-left: 15px;
}
} }
} }
.content_wrapper.memberList{ .content_wrapper.memberList{
......
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