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,6 +50,8 @@ ...@@ -50,6 +50,8 @@
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
font-size: 18px; font-size: 18px;
}
select.form-control {
direction: rtl; 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;
......
...@@ -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']" >
<div class="content_item" *ngIf="menuItemContent.showSubMenu" href="javascript:;"
(click)="menuNavigation(menuItemContent)"> (click)="menuNavigation(menuItemContent)">
<!-- <span class="iconfont" [ngClass]="menuItemContent.icon"></span> --> <!-- <span class="iconfont" [ngClass]="menuItemContent.icon"></span> -->
<span *ngIf="menuItemContent.dot"></span> <span *ngIf="menuItemContent.dot"></span>
<img [src]="getImgUrl(menuItemContent.icon)" alt=""> <img [src]="getImgUrl(menuItemContent.icon)" alt="">
<div style="font-size: 13px;">{{menuItemContent.subtitle}}</div> <div style="font-size: 13px;">{{menuItemContent.subtitle}}</div>
</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,11 +33,16 @@ export class SalaryComponent implements OnInit { ...@@ -33,11 +33,16 @@ export class SalaryComponent implements OnInit {
} }
//下载pdf //下载pdf
getPdf(monShId) { getPdf(monShId,url) {
if(url){
window.open(url)
// location.href = url;
}else{
this.myService.payScalePdf({ monShId: monShId, practitionerId: Number(this.practitionerId) }).subscribe((res) => { this.myService.payScalePdf({ monShId: monShId, practitionerId: Number(this.practitionerId) }).subscribe((res) => {
if (res['success']) { if (res['success']) {
if (res['data']['url']) { if (res['data']['url']) {
location.href = res['data']['url']; window.open(res['data']['url'])
// location.href = res['data']['url'];
} else { } else {
this.toastDialog = true; this.toastDialog = true;
this.toastInfo = { this.toastInfo = {
...@@ -51,4 +56,6 @@ export class SalaryComponent implements OnInit { ...@@ -51,4 +56,6 @@ export class SalaryComponent implements OnInit {
} }
}) })
} }
}
} }
...@@ -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();
});
});
...@@ -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