Commit 09355e9a by sunchao

保单历史记录&我的团队&电子报聘优化&控制薪资单显示&薪资单跳转判断

parent 9d611023
......@@ -613,6 +613,24 @@
"integrity": "sha1-x/9jA99xCA7HpPW4wAPFjxz1EDc=",
"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": {
"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",
......@@ -780,6 +798,12 @@
"integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=",
"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": {
"version": "3.0.17",
"resolved": "https://registry.npm.taobao.org/@types/selenium-webdriver/download/@types/selenium-webdriver-3.0.17.tgz",
......@@ -1388,8 +1412,7 @@
"atob": {
"version": "2.1.2",
"resolved": "https://registry.npm.taobao.org/atob/download/atob-2.1.2.tgz",
"integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=",
"dev": true
"integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k="
},
"autoprefixer": {
"version": "9.4.6",
......@@ -1924,6 +1947,11 @@
"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": {
"version": "5.6.0",
"resolved": "https://registry.npm.taobao.org/buffer/download/buffer-5.6.0.tgz",
......@@ -2113,6 +2141,20 @@
"integrity": "sha1-/LRwwjlY3vhQgYVr56hukE8YDR0=",
"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": {
"version": "0.12.0",
"resolved": "https://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz",
......@@ -2568,6 +2610,12 @@
"resolved": "https://registry.npm.taobao.org/core-js/download/core-js-2.6.11.tgz",
"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": {
"version": "1.0.2",
"resolved": "https://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz",
......@@ -3068,6 +3116,12 @@
"integrity": "sha1-PTH1AZGmdJ3RN1p/Ui6CPULlTto=",
"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": {
"version": "0.1.2",
"resolved": "https://registry.npm.taobao.org/duplexer/download/duplexer-0.1.2.tgz",
......@@ -3738,6 +3792,11 @@
"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": {
"version": "3.5.2",
"resolved": "https://registry.npm.taobao.org/figgy-pudding/download/figgy-pudding-3.5.2.tgz",
......@@ -5384,6 +5443,28 @@
"integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=",
"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": {
"version": "1.4.1",
"resolved": "https://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz",
......@@ -7058,8 +7139,7 @@
"performance-now": {
"version": "2.1.0",
"resolved": "https://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz",
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
"dev": true
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
},
"picomatch": {
"version": "2.2.2",
......@@ -7642,6 +7722,15 @@
"integrity": "sha1-M0WUG0FTy50ILY7uTNogFqmu9/Y=",
"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": {
"version": "2.1.0",
"resolved": "https://registry.npm.taobao.org/randombytes/download/randombytes-2.1.0.tgz",
......@@ -7990,6 +8079,12 @@
"integrity": "sha1-unLME2egzNnPgahws7WL060H+MI=",
"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": {
"version": "2.7.1",
"resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz",
......@@ -8954,6 +9049,12 @@
"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": {
"version": "0.1.2",
"resolved": "https://registry.npm.taobao.org/static-extend/download/static-extend-0.1.2.tgz",
......@@ -9222,6 +9323,12 @@
"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": {
"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",
......
......@@ -26,8 +26,9 @@
"core-js": "^2.5.4",
"dayjs": "^1.8.35",
"echarts": "^4.9.0",
"html2canvas": "^1.0.0-rc.5",
"html2canvas": "^1.0.0-rc.7",
"jquery": "^3.5.1",
"jspdf": "^2.3.0",
"ng-zorro-antd-mobile": "^0.12.5",
"ngx-echarts": "^3.2.0",
"rxjs": "~6.3.3",
......
......@@ -30,6 +30,14 @@ export class BankCardComponent implements OnInit {
}
next(){
if(!this.bankAccountOpening){
this.openPopInfo('开户行不能为空!');
return;
}
if(!this.bankAccountId){
this.openPopInfo('银行卡号不能为空!');
return;
}
if(this.bankAccountId != this.sureBankAccountId){
this.openPopInfo('两次银行卡号不一致!');
return;
......@@ -40,6 +48,7 @@ export class BankCardComponent implements OnInit {
return;
}
const param = {
hiringBasicInfoId:this.hiringBasicInfoId,
bankAccountOpening:this.bankAccountOpening,
bankAccountId:this.bankAccountId
......@@ -48,7 +57,6 @@ export class BankCardComponent implements OnInit {
if(res['success']){
// this.router.navigate(['/personal_statement'],{ queryParams: { hiringBasicInfoId:this.hiringBasicInfoId} });
this.router.navigate(['/employee_salary'],{ queryParams: { hiringBasicInfoId:this.hiringBasicInfoId} });
}else{
this.toastDialog = true;
this.toastInfo = {
......
......@@ -26,12 +26,12 @@
<div class="photo" *ngIf="!backVxUrl" (click)="selectPic('back')">
<img src="assets/images/back.png" alt="身份证反面面">
<img class="camera" src="assets/images/camera.png" alt="身份证" />
<div class="choseBtn" >点击添加身份证</div>
<div class="choseBtn" >点击添加身份证</div>
</div>
<img class="showImg" src="{{backVxUrl}}" alt="身份证反面" *ngIf="backVxUrl"
(click)="selectPic('back')">
<div class="tips">
<p>(正确示例:身份证面,字体清晰)</p>
<p>(正确示例:身份证面,字体清晰)</p>
<p>(jpg,png 文件大小不大于1mb)</p>
</div>
......
import { Component, OnInit,ViewChild,ElementRef ,HostListener} from '@angular/core';
import { ActivatedRoute,Router } from "@angular/router";
import { MyService } from '../../my.service';
import {
Component,
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";
@Component({
selector: 'ydlife-personal-statement',
templateUrl: './personal-statement.component.html',
styleUrls: ['./personal-statement.component.scss']
selector: "ydlife-personal-statement",
templateUrl: "./personal-statement.component.html",
styleUrls: ["./personal-statement.component.scss"],
})
export class PersonalStatementComponent implements OnInit {
@ViewChild('autofocusFlag') elementView: ElementRef;
@ViewChild('contract') toastContent:ElementRef;
@ViewChild("autofocusFlag") elementView: ElementRef;
@ViewChild("contract") toastContent: ElementRef;
//判断是个人声明还是合同确认
type:any;
hiringBasicInfoId:any;
dropOptionsInfoList:Array<any>;
type: any;
hiringBasicInfoId: any;
dropOptionsInfoList: Array<any>;
isNeedAlert: boolean;
dialogInfo: any;
autofocusFlag:boolean;
dropOptionsInfoListParam:Array<any> = [];
contractTermsList:Array<any>;
everWork:string;
autofocusFlag: boolean;
dropOptionsInfoListParam: Array<any> = [];
contractTermsList: Array<any>;
everWork: string;
//判断曾经报聘是否可点
everWorkFlag:boolean = false;
everWorkFlag: boolean = false;
isShow: boolean;
curTitle:any;
curContract:any;
curContractId:number;
isAllAgree:boolean = false;
contractTermsConfirmsListParm:Array<any>;
approveStatus:any;
agreeBtnShow:boolean = false;
timeCount:number = 5;
constructor(private myService: MyService,
curTitle: any;
curContract: any;
curContractId: number;
isAllAgree: boolean = false;
contractTermsConfirmsListParm: Array<any>;
approveStatus: any;
agreeBtnShow: boolean = false;
timeCount: number = 5;
constructor(
private myService: MyService,
private activatedRoute: ActivatedRoute,
public lifeCommonService: LifeCommonService,
private router: Router) { }
private router: Router
) {}
ngOnInit() {
this.type = this.activatedRoute.snapshot.data[0]['type'];
const title = this.activatedRoute.snapshot.data[0]['title'];
this.type = this.activatedRoute.snapshot.data[0]["type"];
const title = this.activatedRoute.snapshot.data[0]["title"];
this.lifeCommonService.setTitle(title);
this.hiringBasicInfoId = this.activatedRoute.snapshot.queryParams.hiringBasicInfoId?this.activatedRoute.snapshot.queryParams.hiringBasicInfoId:null;
if(this.type=="personal_statement"){
this.hiringBasicInfoId = this.activatedRoute.snapshot.queryParams
.hiringBasicInfoId
? this.activatedRoute.snapshot.queryParams.hiringBasicInfoId
: null;
if (this.type == "personal_statement") {
this.dropOptionsQuery();
}
if(this.type=="contract"){
if (this.type == "contract") {
this.queryContractTerms();
}
}
ngOnChanges(){
}
ngOnChanges() {}
next(){
if(this.type == 'personal_statement'){
next() {
if (this.type == "personal_statement") {
this.savePersonalStatements();
}else if(this.type == 'contract'){
if(!this.isAllAgree){
this.openPopInfo('请详细阅读全部条款!')
} else if (this.type == "contract") {
if (!this.isAllAgree) {
this.openPopInfo("请详细阅读全部条款!");
return;
}
this.saveContractTermsConfirms();
this.router.navigate(['/signature'],{ queryParams: { hiringBasicInfoId:this.hiringBasicInfoId} });
this.router.navigate(["/signature"], {
queryParams: { hiringBasicInfoId: this.hiringBasicInfoId },
});
}
}
dropOptionsQuery(){
this.myService.dropOptionsQuery({code:'EHiring_Personal_Statements'}).subscribe((res)=>{
if(res['success']){
this.dropOptionsInfoList = res['data']['dropMasterInfoList'][0]['dropOptionsInfoList'];
this.dropOptionsInfoList.forEach((item)=>{
dropOptionsQuery() {
this.myService
.dropOptionsQuery({ code: "EHiring_Personal_Statements" })
.subscribe((res) => {
if (res["success"]) {
this.dropOptionsInfoList =
res["data"]["dropMasterInfoList"][0]["dropOptionsInfoList"];
this.dropOptionsInfoList.forEach((item) => {
item.status = 0;
item.userInput = null;
});
this.queryWholeInfo(this.hiringBasicInfoId);
}else{
this.openPopInfo(res['message']);
} else {
this.openPopInfo(res["message"]);
}
})
});
}
// 打开弹窗
......@@ -90,88 +101,117 @@ export class PersonalStatementComponent implements OnInit {
this.isNeedAlert = true;
this.dialogInfo = {
title: null,
content: { value: message, align: 'center' },
footer: [{ value: '我知道了', routerLink: '', className: 'weui-dialog__btn_primary' }],
content: { value: message, align: "center" },
footer: [
{
value: "我知道了",
routerLink: "",
className: "weui-dialog__btn_primary",
},
],
};
}
//选择个人声明
selectStatements(personalStatements){
if(this.approveStatus==null || this.approveStatus == '-1'){
if( personalStatements.status ==1){
selectStatements(personalStatements) {
if (this.approveStatus == null || this.approveStatus == "-1") {
if (personalStatements.status == 1) {
personalStatements.status = 0;
}else{
} else {
personalStatements.status = 1;
}
if(personalStatements.dropOptionCode == 'NO_REGISTER_SAME_TRADE'){
if(personalStatements.status == 1){
if (personalStatements.dropOptionCode == "NO_REGISTER_SAME_TRADE") {
if (personalStatements.status == 1) {
this.everWorkFlag = true;
//点击曾经报聘输入报聘自动获取焦点
setTimeout(() => {
this.elementView.nativeElement.focus();
}, 500);
}else{
} else {
this.everWork = null;
this.everWorkFlag = false;
}
}
}
}
savePersonalStatements(){
savePersonalStatements() {
this.dropOptionsInfoListParam = [];
for(let i=0;i<this.dropOptionsInfoList.length;i++){
this.dropOptionsInfoList[i]['mdDropOptionName'] = this.dropOptionsInfoList[i]['dropOptionName'];
this.dropOptionsInfoList[i]['mdDropOptionId'] = this.dropOptionsInfoList[i]['id'];
if(this.dropOptionsInfoList[i]['dropOptionCode'] =='NO_REGISTER_SAME_TRADE'){
for (let i = 0; i < this.dropOptionsInfoList.length; i++) {
this.dropOptionsInfoList[i][
"mdDropOptionName"
] = this.dropOptionsInfoList[i]["dropOptionName"];
this.dropOptionsInfoList[i]["mdDropOptionId"] = this.dropOptionsInfoList[
i
]["id"];
if (
this.dropOptionsInfoList[i]["dropOptionCode"] ==
"NO_REGISTER_SAME_TRADE"
) {
this.dropOptionsInfoListParam.push({
mdDropOptionName:this.dropOptionsInfoList[i]['dropOptionName'],
mdDropOptionId:this.dropOptionsInfoList[i]['id'],
status:this.dropOptionsInfoList[i]['status'],
userInput:this.everWork?this.everWork:null
})
}else{
mdDropOptionName: this.dropOptionsInfoList[i]["dropOptionName"],
mdDropOptionId: this.dropOptionsInfoList[i]["id"],
status: this.dropOptionsInfoList[i]["status"],
userInput: this.everWork ? this.everWork : null,
});
} else {
this.dropOptionsInfoListParam.push({
mdDropOptionName:this.dropOptionsInfoList[i]['dropOptionName'],
mdDropOptionId:this.dropOptionsInfoList[i]['id'],
status:this.dropOptionsInfoList[i]['status'],
userInput:null
})
mdDropOptionName: this.dropOptionsInfoList[i]["dropOptionName"],
mdDropOptionId: this.dropOptionsInfoList[i]["id"],
status: this.dropOptionsInfoList[i]["status"],
userInput: null,
});
}
}
for(let m=0;m<this.dropOptionsInfoListParam.length;m++){
if(this.dropOptionsInfoList[m]['dropOptionCode'] == 'NO_REGISTER_SAME_TRADE' && this.dropOptionsInfoList[m]['status'] == '1'){
if(!this.everWork){
this.openPopInfo('勾选曾经报聘后,您曾经报聘过的保险机构名称不可为空!');
for (let m = 0; m < this.dropOptionsInfoListParam.length; m++) {
if (
this.dropOptionsInfoList[m]["dropOptionCode"] ==
"NO_REGISTER_SAME_TRADE" &&
this.dropOptionsInfoList[m]["status"] == "1"
) {
if (!this.everWork) {
this.openPopInfo(
"勾选曾经报聘后,您曾经报聘过的保险机构名称不可为空!"
);
return;
}
}
}
const param = {
hiringBasicInfoId:this.hiringBasicInfoId,
personalStatementList:this.dropOptionsInfoListParam
const isselectedPersonalStatement = this.dropOptionsInfoListParam.some(
(item) => {
return item.status == 1;
}
this.myService.savePersonalStatements(param).subscribe((res)=>{
if(res['success']){
this.router.navigate(['/contract'],{ queryParams: { hiringBasicInfoId:this.hiringBasicInfoId} });
}else{
this.openPopInfo(res['message']);
);
if (isselectedPersonalStatement == false) {
this.openPopInfo("请选择至少一项个人声明!");
return;
}
const param = {
hiringBasicInfoId: this.hiringBasicInfoId,
personalStatementList: this.dropOptionsInfoListParam,
};
this.myService.savePersonalStatements(param).subscribe((res) => {
if (res["success"]) {
this.router.navigate(["/contract"], {
queryParams: { hiringBasicInfoId: this.hiringBasicInfoId },
});
} else {
this.openPopInfo(res["message"]);
}
})
});
}
queryContractTerms(){
this.myService.queryContractTerms().subscribe((res)=>{
if(res['success']){
this.contractTermsList = res['data']['contractTermsList'];
this.contractTermsList.forEach((item)=>{
queryContractTerms() {
this.myService.queryContractTerms().subscribe((res) => {
if (res["success"]) {
this.contractTermsList = res["data"]["contractTermsList"];
this.contractTermsList.forEach((item) => {
item.confirmStatus = 0;
});
this.queryWholeInfo(this.hiringBasicInfoId);
}else{
this.openPopInfo(res['message']);
} else {
this.openPopInfo(res["message"]);
}
});
}
......@@ -181,16 +221,16 @@ export class PersonalStatementComponent implements OnInit {
this.isNeedAlert = false;
}
readContract(contractItem){
if(this.approveStatus==null || this.approveStatus == '-1'){
readContract(contractItem) {
if (this.approveStatus == null || this.approveStatus == "-1") {
this.agreeBtnShow = false;
if( contractItem.confirmStatus ==1){
if (contractItem.confirmStatus == 1) {
contractItem.confirmStatus = 0;
}else{
} else {
this.isShow = true;
setTimeout(() => {
let scrollTop = this.toastContent.nativeElement.scrollTop;
if(scrollTop>=0){
if (scrollTop >= 0) {
// setTimeout(() => {
this.agreeBtnShow = true;
// }, 1000);
......@@ -200,84 +240,97 @@ export class PersonalStatementComponent implements OnInit {
this.curTitle = contractItem.termName;
this.curContractId = contractItem.id;
}
this.isAllAgree = this.contractTermsList.every((item)=>{
this.isAllAgree = this.contractTermsList.every((item) => {
return item.confirmStatus == 1;
});
}
}
//同意合同条款
agree() {
if(this.agreeBtnShow == true){
if (this.agreeBtnShow == true) {
this.isShow = false;
for(let i=0;i<this.contractTermsList.length;i++){
if(this.curContractId == this.contractTermsList[i]['id']){
this.contractTermsList[i]['confirmStatus'] = 1;
for (let i = 0; i < this.contractTermsList.length; i++) {
if (this.curContractId == this.contractTermsList[i]["id"]) {
this.contractTermsList[i]["confirmStatus"] = 1;
}
}
this.isAllAgree = this.contractTermsList.every((item)=>{
this.isAllAgree = this.contractTermsList.every((item) => {
return item.confirmStatus == 1;
})
});
}
}
saveContractTermsConfirms(){
saveContractTermsConfirms() {
this.contractTermsConfirmsListParm = [];
for(let i=0;i<this.contractTermsList.length;i++){
for (let i = 0; i < this.contractTermsList.length; i++) {
this.contractTermsConfirmsListParm.push({
contractTermId:this.contractTermsList[i]['id'],
confirmStatus:this.contractTermsList[i]['confirmStatus']
})
contractTermId: this.contractTermsList[i]["id"],
confirmStatus: this.contractTermsList[i]["confirmStatus"],
});
}
const param = {
hiringBasicInfoId:this.hiringBasicInfoId,
contractTermsConfirmsList:this.contractTermsConfirmsListParm
}
this.myService.saveContractTermsConfirms(param).subscribe((res)=>{
if(res['success']){
}else{
this.openPopInfo(res['message']);
hiringBasicInfoId: this.hiringBasicInfoId,
contractTermsConfirmsList: this.contractTermsConfirmsListParm,
};
this.myService.saveContractTermsConfirms(param).subscribe((res) => {
if (res["success"]) {
} else {
this.openPopInfo(res["message"]);
}
})
});
}
queryWholeInfo(hiringBasicInfoId){
this.myService.queryWholeInfo({hiringBasicInfoId:hiringBasicInfoId}).subscribe( (res)=>{
if(res['success']){
this.approveStatus = res['data']['hiringBasicInfo']['approveStatus'];
if(this.type=="personal_statement"){
if(res['data']['hiringPersonalStatementsList'].length >0){
this.dropOptionsInfoList = res['data']['hiringPersonalStatementsList'];
for(let i=0;i<this.dropOptionsInfoList.length;i++){
this.dropOptionsInfoList[i]['dropOptionName'] = this.dropOptionsInfoList[i]['mdDropOptionName'];
this.dropOptionsInfoList[i]['id'] = this.dropOptionsInfoList[i]['mdDropOptionId'];
if(this.dropOptionsInfoList[i]['status'] == 1 && this.dropOptionsInfoList[i]['dropOptionCode']== 'NO_REGISTER_SAME_TRADE'){
queryWholeInfo(hiringBasicInfoId) {
this.myService
.queryWholeInfo({ hiringBasicInfoId: hiringBasicInfoId })
.subscribe((res) => {
if (res["success"]) {
this.approveStatus = res["data"]["hiringBasicInfo"]["approveStatus"];
if (this.type == "personal_statement") {
if (res["data"]["hiringPersonalStatementsList"].length > 0) {
this.dropOptionsInfoList =
res["data"]["hiringPersonalStatementsList"];
for (let i = 0; i < this.dropOptionsInfoList.length; i++) {
this.dropOptionsInfoList[i][
"dropOptionName"
] = this.dropOptionsInfoList[i]["mdDropOptionName"];
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.everWork = this.dropOptionsInfoList[i]["userInput"];
} else {
this.everWorkFlag = false;
}
}
}
}
if(this.type == 'contract'){
let hiringContractTermsConfirmsList = res['data']['hiringContractTermsConfirmsList'];
for(let i=0;i<hiringContractTermsConfirmsList.length;i++){
for(let j=0;j<this.contractTermsList.length;j++){
if(hiringContractTermsConfirmsList[i]['contractTermId'] == this.contractTermsList[j]['id']){
this.contractTermsList[j]['confirmStatus'] = hiringContractTermsConfirmsList[i]['confirmStatus'];
if (this.type == "contract") {
let hiringContractTermsConfirmsList =
res["data"]["hiringContractTermsConfirmsList"];
for (let i = 0; i < hiringContractTermsConfirmsList.length; i++) {
for (let j = 0; j < this.contractTermsList.length; j++) {
if (
hiringContractTermsConfirmsList[i]["contractTermId"] ==
this.contractTermsList[j]["id"]
) {
this.contractTermsList[j]["confirmStatus"] =
hiringContractTermsConfirmsList[i]["confirmStatus"];
}
}
}
this.isAllAgree = this.contractTermsList.every((item)=>{
this.isAllAgree = this.contractTermsList.every((item) => {
return item.confirmStatus == 1;
})
});
}
}
})
});
}
// onScroll(event){
......@@ -291,20 +344,24 @@ export class PersonalStatementComponent implements OnInit {
// }
// }
viewNext(){
if(this.type == 'personal_statement'){
this.router.navigate(['/contract'],{ queryParams: { hiringBasicInfoId:this.hiringBasicInfoId} });
viewNext() {
if (this.type == "personal_statement") {
this.router.navigate(["/contract"], {
queryParams: { hiringBasicInfoId: this.hiringBasicInfoId },
});
}
if(this.type == 'contract'){
this.router.navigate(['/signature'],{ queryParams: { hiringBasicInfoId:this.hiringBasicInfoId} });
if (this.type == "contract") {
this.router.navigate(["/signature"], {
queryParams: { hiringBasicInfoId: this.hiringBasicInfoId },
});
}
}
goBack(){
history.go(-1)
goBack() {
history.go(-1);
}
startCount(){
startCount() {
// if(!this.timer){
// this.count = TIME_COUNT;
// this.timer = setInterval(()=>{
......@@ -317,5 +374,4 @@ export class PersonalStatementComponent implements OnInit {
// },1000)
// }
}
}
......@@ -141,7 +141,7 @@ export class SignatureComponent implements OnInit {
}
goBack(){
history.go(-1)
history.go(-1);
}
returnResult(){
......
<div class="businessCardContainer">
<div class="brokerCardPositive">
<div class="brokerCardPositive" id="brokerCardPositive" *ngIf="showFlag==false">
<div class="qrcodeBox">
<div>
<div style="margin-bottom: 20%;"><img src="assets/images/ydShield.png" alt="银盾保险经纪" class="img-responsive">
......@@ -40,7 +40,10 @@
</div>
</div>
</div>
<img src="{{canvasImg}}" *ngIf="showFlag==true">
<div class="brokerCardOpposite">
<img src="assets/images/card_opposite.jpg" alt="" class="img-responsive">
</div>
</div>
<!--
<div (click) = "downLoadJspdfs()">导出pdf</div> -->
......@@ -5,7 +5,7 @@
display: flex;
padding-top: 7%;
padding-left: 5%;
margin-bottom: 10%;
padding-bottom: 10%;
.qrcodeBox {
width: 15%;
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({
selector: 'ydlife-business-card',
......@@ -6,13 +8,67 @@ import {Component, OnInit} from '@angular/core';
styleUrls: ['./business-card.component.scss']
})
export class BusinessCardComponent implements OnInit {
element:any;
lifeCustomerInfo: any;
canvasImg:any;
showFlag:boolean = false;
constructor() {
}
ngOnInit() {
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 @@
<div style="letter-spacing: 5px;margin-left: 5%;margin-top: 2%;">往期历史</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>
\ No newline at end of file
......@@ -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 @@
<div class="tool_item" *ngIf="menuItem.isShow">
<h3>{{menuItem.title}}</h3>
<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)">
<!-- <span class="iconfont" [ngClass]="menuItemContent.icon"></span> -->
<span *ngIf="menuItemContent.dot"></span>
<img [src]="getImgUrl(menuItemContent.icon)" alt="">
<div style="font-size: 13px;">{{menuItemContent.subtitle}}</div>
</div>
</ng-container>
</div>
</div>
</div>
......
......@@ -39,6 +39,7 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
showFlag:boolean = false;
approvarList:Array<any>;
dotFlag:boolean = false;
isShowSalay:boolean;
constructor(
private router: Router,
public lifeCommonService: LifeCommonService,
......@@ -53,6 +54,7 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
this.lifeCommonService.setTitle(title);
this.deviceType = this.lifeCommonService.checkDeviceType();
this.lifeCustomerInfo = JSON.parse(localStorage.getItem('lifeCustomerInfo')) ? JSON.parse(localStorage.getItem('lifeCustomerInfo')) : null;
this.isShowSalay = this.lifeCustomerInfo.canSeeSalaryList==1?true:false;
this.announcementQuery();
this.performanceList = [
{ name: `${this.lifeCommonService.dateFormat(new Date, ('M'))}月`, time: 1 },
......@@ -71,6 +73,7 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
//活动量得分查询
this.queryPEPScore();
this.listQuery();
this.canSeeSalaryList();
}
ngAfterViewInit() {
......@@ -84,25 +87,25 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
{
title: '营销工具',
content: [
{ no: 2, subtitle: 'AI保险医生', icon: 'ai', path: `https://${window.location.host}/questionnaire/#/index?campaign=AIRobot&task=AItask1&customerId=${this.lifeCustomerInfo.customerId}`, routerLink: '' },
{ no: 1, subtitle: '獴哥保险诊所', icon: 'clinic', path: `https://${window.location.host}/consulting`, routerLink: '' },
{ no: 4, subtitle: '线上投保', icon: 'online', path: `https://${window.location.host}/index?source=dyd`, routerLink: '' },
{ no: 13, subtitle: '我的商机', icon: 'line', path: '', routerLink: 'business' },
{ no: 9, subtitle: '执业证书', icon: 'card', path: `https://${window.location.host}/brokerQry/#/brokerDetail/${this.lifeCustomerInfo.practitionerId}?source=0`, routerLink: '' },
{ no: 10, subtitle: '职业类别', icon: 'job', path: 'https://www.ydinsurance.cn/occupationQry/', routerLink: '' },
{ no: 7, subtitle: '文章分享', icon: 'article', path: `https://${window.location.host}/discovery`, routerLink: '' },
{ no: 3, subtitle: '产品海报', icon: 'poster_p', path: '/salesDetail', routerLink: 'material' },
{ 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: '' ,showSubMenu:true},
{ no: 4, subtitle: '线上投保', icon: 'online', path: `https://${window.location.host}/index?source=dyd`, routerLink: '' ,showSubMenu:true},
{ 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: '',showSubMenu:true },
{ 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: '' ,showSubMenu:true},
{ no: 3, subtitle: '产品海报', icon: 'poster_p', path: '/salesDetail', routerLink: 'material',showSubMenu:true },
],
isShow: true
},
{
title: '我的团队',
content: [
{ no: 15, subtitle: '我的团队', icon: 'team', path: '', routerLink: '' },
// { no: 16, subtitle: '团队增员', icon: 'recruiting', path: '', routerLink: '' },
{ no: 16, subtitle: '团队增员', icon: 'recruiting', path: '', routerLink: 'recruiting' },
{ no: 18, subtitle: '招募海报', icon: 'poster_r', path: '', routerLink: '' },
{ no: 22, subtitle: '报聘审批', icon: 'approval', path: '', routerLink: 'approval_list',dot: this.dotFlag}
{ no: 15, subtitle: '我的团队', icon: 'team', path: '', routerLink: '',showSubMenu:true },
// { no: 16, subtitle: '团队增员', icon: 'recruiting', path: '', routerLink: '',showSubMenu:true },
{ no: 16, subtitle: '团队增员', icon: 'recruiting', path: '', routerLink: 'recruiting' ,showSubMenu:true},
{ no: 18, subtitle: '招募海报', icon: 'poster_r', path: '', routerLink: '',showSubMenu:true },
{ no: 22, subtitle: '报聘审批', icon: 'approval', path: '', routerLink: 'approval_list',dot: this.dotFlag,showSubMenu:true}
],
// isShow: this.isShow
isShow: true
......@@ -110,25 +113,26 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
{
title: '我的展业',
content: [
{ no: 12, subtitle: '我的保单', icon: 'policy', path: '', routerLink: '' },
{ no: 20, subtitle: '我的客户', icon: 'customer', path: '', routerLink: '' },
// { no: 14, subtitle: '我的佣金', icon: 'commission', path: '', routerLink: '' },
{ no: 19, subtitle: '薪资单', icon: 'salary', path: '', routerLink: 'salary' },
{ no: 21, subtitle: '公司制度', icon: 'management', path: '', routerLink: '' },
{ no: 23, subtitle: '我的报聘', icon: 'pin', path: '', routerLink: 'my_application' },
{ no: 24, subtitle: '目标设置', icon: 'set', path: '', routerLink: 'target' },
{ no: 25, 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}
],
isShow: true
},
{
title: '教育培训',
content: [
{ no: 5, subtitle: '保险ABC', icon: 'abc', path: `https://${window.location.host}/issue`, routerLink: '' },
{ no: 6, subtitle: '培训课件', icon: 'train', path: '', routerLink: 'training' },
{ no: 11, subtitle: '文件下载', icon: 'download', path: 'https://www.ydinsurance.cn/?page_id=13957', routerLink: 'fileUpload' },
{ no: 17, subtitle: '产品库', icon: 'product', path: 'https://www.ydinsurance.cn/?page_id=14331', routerLink: '' }
{ no: 5, subtitle: '保险ABC', icon: 'abc', path: `https://${window.location.host}/issue`, routerLink: '' ,showSubMenu:true},
{ 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',showSubMenu:true },
{ no: 17, subtitle: '产品库', icon: 'product', path: 'https://www.ydinsurance.cn/?page_id=14331', routerLink: '' ,showSubMenu:true}
],
isShow: true
......@@ -156,6 +160,7 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
this.router.navigate(['/salesDetail'], { queryParams: { searchType: this.performanceSelectedFlag, showType: 'sales' } });
} else if (item.no === 15) {
this.router.navigate(['/teamPanel'])
// this.router.navigate(['/team_area'])
} else if (!item.subtitle) {
return;
} else if (item.no === 18) {
......@@ -313,11 +318,9 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
this.isShow = true;
sessionStorage.setItem('isTeamleader', '1');
sessionStorage.setItem('subordinateSystemName', res['data']['subordinateSystemName'])
this.getMenuList();
} else {
this.isShow = false;
sessionStorage.setItem('isTeamleader', '0')
this.getMenuList();
}
})
}
......@@ -390,4 +393,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
import { SuggestionComponent } from './suggestion/suggestion.component';
import { EmployeeSalaryComponent } from './application-process/employee-salary/employee-salary.component';
import { HistoricalRankComponent } from './historical-rank/historical-rank.component';
import { TeamAreaPanelComponent } from './team-area-panel/team-area-panel.component';
const myRoutes: Routes = [
{ path: '', component: MyCenterHomeComponent, canActivate: [AuthGuard], data: [{ title: '银盾保险经纪 - 工作台' }] },
......@@ -102,8 +103,8 @@ const myRoutes: Routes = [
{ path: 'approval_result_list',component:ApprovalResultListComponent,data: [{ title: '审批流程' }],canActivate:[AuthGuard]},
{ path: 'my_application',component:MyApplicationComponent,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({
......
......@@ -58,9 +58,10 @@ import { MyApplicationComponent } from './my-application/my-application.componen
import { SuggestionComponent } from './suggestion/suggestion.component';
import { EmployeeSalaryComponent } from './application-process/employee-salary/employee-salary.component';
import { HistoricalRankComponent } from './historical-rank/historical-rank.component';
import { TeamAreaPanelComponent } from './team-area-panel/team-area-panel.component';
@NgModule({
declarations: [MyCenterHomeComponent, MkMaterialComponent, MkMaterialDetailComponent, FileUploadComponent, ImportantAnnouncementComponent, SalesDetailComponent, AnnouncementDetailComponent, MyBusinessComponent, MyBusinessDetailComponent, PickerComponent, MyToastComponent, SalesRankComponent, TeamRankComponent, RecruitingComponent, RecruitingDetailComponent, ThanksComponent, MySettingComponent, MySettingDetailComponent, MyNewsComponent, MyTargetComponent, TeamPanelComponent, SwitchNumberPipe, TeamSalesScoreComponent, ScoreDetailsComponent, BusinessCardComponent, OrderDetailComponent, SalaryComponent, TodoListComponent, AddTaskComponent, MedicalServiceComponent, InvitationComponent, RegisterComponent, EmployeeInfoComponent, EmployeeBasicInfoComponent, WorkExperienceComponent, PersonalPhotosComponent, EmployeeIdCardComponent, EmployeeEducationComponent, PersonalStatementComponent, SignatureComponent, EmployeeSubmitComponent, BankCardComponent, MemberDetailComponent, ApprovalListComponent, ApprovalCommentsComponent, ApprovalResultListComponent, MyApplicationComponent, SuggestionComponent, EmployeeSalaryComponent, HistoricalRankComponent],
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: [
CommonModule,
LifeCommonModule,
......
......@@ -569,4 +569,33 @@ export class MyService {
return this.http
.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 @@
display: flex;
flex-wrap: wrap;
font-size: 16px;
}
select.form-control {
direction: rtl;
}
input[type="date"]{
......
......@@ -478,6 +478,13 @@ export class RecruitingDetailComponent implements OnInit {
this.openPopInfo('S2级别以下,辅导人不可以为空!')
return;
}
if(this.employQuery.mentorPractitionerId || this.employQuery.mentor){
if(!this.employQuery.subsystemId || !this.employQuery.subsystem){
this.openPopInfo('该辅导人在系统里还没有归属到某一个体系,请重新选择辅导人!')
return;
}
}
}else{
if(!this.employQuery.branch || !this.employQuery.branchId){
this.openPopInfo('报聘职级为S2级别时,请您自己选择分公司!')
......
<div class="salesWrapper">
<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="line">
<div>薪资日期</div>
......@@ -12,19 +12,22 @@
</div>
<div class="line">
<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 class="line">
<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 class="line">
<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 class="line">
<div></div>
<div (click)="getPdf(payScaleItem.monShId)">
<div>
薪资单明细
<span class="iconfont icon-xiazai" style="color:#ff3500;margin-left: 5px;"></span>
</div>
......
......@@ -23,7 +23,7 @@ export class SalaryComponent implements OnInit {
}
payScaleListQuery() {
this.myService.payScaleListQuery({ practitionerIdEG: this.practitionerIdEG }).subscribe((res) => {
this.myService.payScaleListQuery({ practitionerIdEG: this.practitionerIdEG,practitionerId:this.practitionerId }).subscribe((res) => {
if (res['success']) {
this.payScaleInfos = res['data']['payScaleInfos'];
} else {
......@@ -33,11 +33,16 @@ export class SalaryComponent implements OnInit {
}
//下载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) => {
if (res['success']) {
if (res['data']['url']) {
location.href = res['data']['url'];
window.open(res['data']['url'])
// location.href = res['data']['url'];
} else {
this.toastDialog = true;
this.toastInfo = {
......@@ -51,4 +56,6 @@ export class SalaryComponent implements OnInit {
}
})
}
}
}
......@@ -19,7 +19,7 @@ export class SalesDetailComponent implements OnInit {
{ time: 1, name: '本月' },
{ time: 3, 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 @@
</ul>
</div>
</div>
<div class="salseContent">
<div class="num">¥{{statisticInfo?.fyp | number: "1.2-2"}}</div>
<div class="num">¥{{statisticInfo?.fyc | number: "1.2-2"}}</div>
......@@ -34,7 +33,7 @@
<div class="rankContent">
<div style="font-size: 18px;margin-bottom: 10px;">战队排名</div>
<ul>
<!-- <li class="rank">排名</li> -->
<li class="rank">排名</li>
<li class="name">姓名</li>
<li class="fyp">首年保费</li>
<li class="fyc">首年佣金</li>
......@@ -44,9 +43,9 @@
暂无战队成员,努力去增员吧
</div>
<ul *ngFor="let performanceItem of performanceListShow;index as i;">
<!-- <li class="rank">
{{performanceItem.rank}}
</li> -->
<li class="rank">
{{i+1}}
</li>
<li class="name">{{performanceItem.name}}</li>
<li class="fyp remark">¥{{performanceItem.fyp | number: "1.0-2"}}</li>
<li class="fyc remark">¥{{performanceItem.fyc | number: "1.0-2"}}</li>
......
......@@ -108,21 +108,24 @@
padding: 5px;
ul{
width: 100%;
height: 30px;
line-height: 30px;
li{
float: left;
width: 28%;
width: 24%;
text-align: right;
margin-right: 1%;
position: relative;
margin-bottom: 5px;
overflow: hidden;
height: 30px;
height: 32px;
line-height: 32px;
li.icon .iconfont{
position: absolute;
}
}
li.rank{
width: 10%;
text-align: center;
}
li.name,li.count{
width: 18%;
}
......
......@@ -64,7 +64,11 @@
暂无战队成员,努力去增员吧
</div>
<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.commission!=null?'¥'+lifeCommonService.transform(forecastItem.commission):'-'}}</li>
<li class="count">{{forecastItem.pieces!=null?forecastItem.pieces:'-'}}</li>
......@@ -92,7 +96,7 @@
暂无战队成员,努力去增员吧
</div>
<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 class="sex">{{teamMemberItem.gender}}</li>
<li>{{teamMemberItem.mobileNo}}</li>
......
......@@ -141,6 +141,10 @@
}
ul li.name{
width: 20%;
i{
font-style: normal;
margin-left: 15px;
}
}
}
.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