Commit daeff3d6 by sunchao

辅导人查看被邀请人详情

parent f8897870
......@@ -474,7 +474,7 @@ export class LifeCommonService {
}
/**
* 姓名正则
* 姓名正则(包含公司名)
*/
nameValid(name) {
const NAME_REGEXP = /(^[\u4e00-\u9fa5]{1}[\u4e00-\u9fa5\.·()()。]{0,48}[\u4e00-\u9fa5]{1}$)|(^[a-zA-Z]{1}[a-zA-Z\s]{0,48}[a-zA-Z]{1}$)/;
......
......@@ -20,9 +20,13 @@
</div>
</div>
</div>
<footer class="fixed" (click)="next()">
<footer class="fixed" (click)="next()" *ngIf="!approvalIdentity">
保存并下一步
</footer>
<div id="page" *ngIf="approvalIdentity">
<div (click)="goBack()">上一页</div>
<div (click)="viewNext()">下一页</div>
</div>
</div>
<ydlife-toast *ngIf="toastDialog" [toastInfo]="toastInfo"></ydlife-toast>
<ydlife-alert *ngIf="isNeedAlert" [dialogInfo]="dialogInfo" (popInfo)="getPopInfo()"></ydlife-alert>
......@@ -9,14 +9,15 @@ import { LifeCommonService } from "../../../common/life-common.service";
styleUrls: ['./bank-card.component.scss']
})
export class BankCardComponent implements OnInit {
hiringBasicInfoId:any;
bankAccountOpening:string;
bankAccountId:string;
toastDialog:boolean;
toastInfo:any;
sureBankAccountId:string;
isNeedAlert: boolean;
dialogInfo: any;
hiringBasicInfoId:any;
bankAccountOpening:string;
bankAccountId:string;
toastDialog:boolean;
toastInfo:any;
sureBankAccountId:string;
isNeedAlert: boolean;
dialogInfo: any;
approvalIdentity:any;
constructor(private activatedRoute: ActivatedRoute,
private router: Router,public lifeCommonService:LifeCommonService,
public myService:MyService) { }
......@@ -25,6 +26,7 @@ export class BankCardComponent implements OnInit {
const title = this.activatedRoute.snapshot.data[0]['title'];
this.lifeCommonService.setTitle(title);
this.hiringBasicInfoId = this.activatedRoute.snapshot.queryParams.hiringBasicInfoId?this.activatedRoute.snapshot.queryParams.hiringBasicInfoId:null;
this.approvalIdentity = this.activatedRoute.snapshot.queryParams.approvalIdentity?this.activatedRoute.snapshot.queryParams.approvalIdentity:null;
this.queryWholeInfo(this.hiringBasicInfoId)
}
......@@ -97,4 +99,12 @@ export class BankCardComponent implements OnInit {
}
})
}
viewNext(){
this.router.navigate(['/personal_statement'],{ queryParams: { hiringBasicInfoId:this.hiringBasicInfoId,approvalIdentity:this.approvalIdentity} });
}
goBack(){
history.go(-1)
}
}
......@@ -7,11 +7,13 @@
<div class="contentDetail employ">
<div class="contentItem">
<span>姓名</span>
<input type="text" class="form-control" [(ngModel)]="editEmployBasicInfo.name" (blur)="bs(2)">
<input type="text" class="form-control" [(ngModel)]="editEmployBasicInfo.name" (blur)="bs(2)"
[disabled]="approvalIdentity">
</div>
<div class="contentItem">
<span>证件类型</span>
<select class="form-control" (ngModelChange)="idTypeChange($event);bs(null)" [ngModel]="editEmployBasicInfo.idTypeId">
<select class="form-control" (ngModelChange)="idTypeChange($event);bs(null)" [ngModel]="editEmployBasicInfo.idTypeId"
[disabled]="approvalIdentity">
<option value=null>请选择</option>
<option [value]="idType.id" *ngFor="let idType of this.idTypesList">
{{idType.name}}
......@@ -20,7 +22,8 @@
</div>
<div class="contentItem">
<span>证件号</span>
<input type="text" class="form-control" (blur)="bs(1)" [(ngModel)]="editEmployBasicInfo.idNo">
<input type="text" class="form-control" (blur)="bs(1)" [(ngModel)]="editEmployBasicInfo.idNo"
[disabled]="approvalIdentity">
</div>
<List [className]="'date-picker-list'">
<ListItem
......@@ -32,7 +35,7 @@
[maxDate] = "maxDate"
[(ngModel)]="showPractitionerBirthdate"
(onOk)="onOk($event)"
[disabled]="editEmployBasicInfo.idTypeId==1"
[disabled]="editEmployBasicInfo.idTypeId==1 || approvalIdentity"
>
出生日期
</ListItem>
......@@ -40,7 +43,8 @@
<div class="contentItem">
<span>性别</span>
<select class="form-control" [(ngModel)]="editEmployBasicInfo.gender" [disabled]="editEmployBasicInfo.idTypeId==1" (blur)="bs(null)">
<select class="form-control" [(ngModel)]="editEmployBasicInfo.gender" [disabled]="editEmployBasicInfo.idTypeId==1" (blur)="bs(null)"
[disabled]="approvalIdentity">
<option value=null>请选择</option>
<option value='1'></option>
<option value="2"></option>
......@@ -63,17 +67,23 @@
<div class="contentItem">
<span>居住地址</span>
<div>
<input type="text" class="form-control" [(ngModel)]="editEmployBasicInfo.residentAddress" (blur)="bs(3)">
<input type="text" class="form-control" [(ngModel)]="editEmployBasicInfo.residentAddress" (blur)="bs(3)"
[disabled]="approvalIdentity">
</div>
</div>
<div class="contentItem">
<span>E-mail</span>
<div><input type="text" class="form-control" [(ngModel)]="editEmployBasicInfo.email" (blur)="bs(4)"></div>
<div><input type="text" class="form-control" [(ngModel)]="editEmployBasicInfo.email" (blur)="bs(4)"
[disabled]="approvalIdentity"></div>
</div>
</div>
</div>
<footer class="fixed" (click)="next()">
<footer class="fixed" (click)="next()" *ngIf="!approvalIdentity">
保存并下一步
</footer>
<div id="page" *ngIf="approvalIdentity">
<div routerLink="/approval-list">上一页</div>
<div (click)="viewNext()">下一页</div>
</div>
</div>
<ydlife-alert *ngIf="isNeedAlert" [dialogInfo]="dialogInfo" (popInfo)="getPopInfo()"></ydlife-alert>
\ No newline at end of file
......@@ -91,10 +91,11 @@
.contentItem:last-child {
border-bottom: none;
}
select.form-control[disabled] {
background-color: transparent;
color: #999;
}
// select.form-control[disabled] {
// background-color: transparent;
// color: #999;
// }
}
.contentDetail.employ .contentItem{
padding: 10px 0;
......@@ -102,4 +103,11 @@
margin: 0 8px 0 8px;
}
}
.page{
position: fixed;
bottom: 0;
left: 0;
height: 56px;
line-height: 56px;
}
}
\ No newline at end of file
......@@ -21,6 +21,7 @@ export class EmployeeBasicInfoComponent implements OnInit {
provinces:Array<any>;
minDate:any = new Date('1900-01-01');
maxDate:any = new Date();
approvalIdentity:any;
constructor(private activatedRoute: ActivatedRoute,
private router: Router,public lifeCommonService:LifeCommonService,
public myService:MyService) { }
......@@ -29,11 +30,12 @@ export class EmployeeBasicInfoComponent implements OnInit {
const title = this.activatedRoute.snapshot.data[0]['title'];
this.lifeCommonService.setTitle(title);
this.hiringBasicInfoId = this.activatedRoute.snapshot.queryParams.hiringBasicInfoId?this.activatedRoute.snapshot.queryParams.hiringBasicInfoId:null;
this.approvalIdentity = this.activatedRoute.snapshot.queryParams.approvalIdentity?this.activatedRoute.snapshot.queryParams.approvalIdentity:null;
this.editEmployBasicInfo.mobileNo = this.activatedRoute.snapshot.queryParams.mobileNo?this.activatedRoute.snapshot.queryParams.mobileNo:null;
this.erpInitialize();
this.provCityQry();
this.editEmployBasicInfo = new EmployBasicQuery(this.hiringBasicInfoId,null,this.editEmployBasicInfo.mobileNo,null,null,null,null,null,null,null,null,null,null,null,null)
this.queryWholeInfo(this.hiringBasicInfoId)
this.queryWholeInfo(this.hiringBasicInfoId);
}
erpInitialize(){
......@@ -204,7 +206,7 @@ export class EmployeeBasicInfoComponent implements OnInit {
// 选择地址信息
selectedArea(type) {
// this.sendRemoveScrollContent.emit(1);
if (type === 1) {
if (type === 1 && !this.approvalIdentity ) {
// 户籍地址
this.houseFlag = true;
}
......@@ -255,4 +257,7 @@ export class EmployeeBasicInfoComponent implements OnInit {
})
}
viewNext(){
this.router.navigate(['/work_experience'],{ queryParams: { hiringBasicInfoId:this.hiringBasicInfoId,approvalIdentity:this.approvalIdentity} });
}
}
......@@ -7,7 +7,8 @@
<div class="contentDetail employ">
<div class="contentItem">
<span>最高学历:如本科、专科、硕士</span>
<select class="form-control" name="" id="" [(ngModel)]="lastGraduateCode" (ngModelChange)="selectEducationLevel($event)">
<select class="form-control" name="" id="" [(ngModel)]="lastGraduateCode" (ngModelChange)="selectEducationLevel($event)"
[disabled]="approvalIdentity">
<option value=null>请选择</option>
<option [value]="educationLevel.id" *ngFor="let educationLevel of educationLevelList">
{{educationLevel.name}}
......@@ -16,7 +17,7 @@
</div>
<div class="contentItem">
<span>毕业学校</span>
<input class="form-control" [(ngModel)]="lastGraduateSchool"/>
<input class="form-control" [(ngModel)]="lastGraduateSchool" [disabled]="approvalIdentity"/>
</div>
<div class="contentItem" style="border:none;">
<span>毕业证</span>
......@@ -27,14 +28,18 @@
<img src="assets/images/camera.png" alt="" />
<div style="margin-top: 10px;" (click)="selectPic()">点击添加毕业证照片</div>
</div>
<img src="{{certificationVxUrl}}" alt="毕业证照片" *ngIf="certificationVxUrl">
<img src="{{certificationVxUrl}}" alt="毕业证照片" (click)="selectPic()" *ngIf="certificationVxUrl">
<div class="tips">
<p>(jpg,png 文件大小不大于1mb)</p>
</div>
</div>
<footer class="fixed" (click)="next()">
<footer class="fixed" (click)="next()" *ngIf="!approvalIdentity">
保存并下一步
</footer>
<div id="page" *ngIf="approvalIdentity">
<div (click)="goBack()">上一页</div>
<div (click)="viewNext()">下一页</div>
</div>
</div>
<ydlife-toast *ngIf="toastDialog" [toastInfo]="toastInfo"></ydlife-toast>
<ydlife-alert *ngIf="isNeedAlert" [dialogInfo]="dialogInfo" (popInfo)="getPopInfo()"></ydlife-alert>
\ No newline at end of file
......@@ -56,10 +56,10 @@
.contentItem:last-child {
border-bottom: none;
}
select.form-control[disabled] {
background-color: transparent;
color: #999;
}
// select.form-control[disabled] {
// background-color: transparent;
// color: #999;
// }
}
.contentDetail.employ .contentItem{
padding: 10px 0;
......
......@@ -20,6 +20,7 @@ export class EmployeeEducationComponent implements OnInit {
toastInfo: any;
isNeedAlert: boolean;
dialogInfo: any;
approvalIdentity:any;
constructor(private activatedRoute: ActivatedRoute,
private router: Router,public lifeCommonService:LifeCommonService,
public myService:MyService,private changeDetectorRef: ChangeDetectorRef) {
......@@ -30,6 +31,7 @@ export class EmployeeEducationComponent implements OnInit {
const title = this.activatedRoute.snapshot.data[0]['title'];
this.lifeCommonService.setTitle(title);
this.hiringBasicInfoId = this.activatedRoute.snapshot.queryParams.hiringBasicInfoId?this.activatedRoute.snapshot.queryParams.hiringBasicInfoId:null;
this.approvalIdentity = this.activatedRoute.snapshot.queryParams.approvalIdentity?this.activatedRoute.snapshot.queryParams.approvalIdentity:null;
this.educationLevelQuery();
this.queryWholeInfo(this.hiringBasicInfoId)
}
......@@ -90,7 +92,8 @@ export class EmployeeEducationComponent implements OnInit {
}
selectPic(){
if(this.lifeCommonService.isWeiXin()){
if(!this.approvalIdentity){
if(this.lifeCommonService.isWeiXin()){
// 5.1 拍照、本地选图
const t = this;
wx.chooseImage({
......@@ -122,10 +125,12 @@ export class EmployeeEducationComponent implements OnInit {
});
}
});
}else{
this.openPopInfo('请在微信端操作!')
}else{
this.openPopInfo('请在微信端操作!')
}
}
}
// 打开弹窗
......@@ -153,4 +158,12 @@ export class EmployeeEducationComponent implements OnInit {
}
})
}
viewNext(){
this.router.navigate(['/bank_card'],{ queryParams: { hiringBasicInfoId:this.hiringBasicInfoId,approvalIdentity:this.approvalIdentity} });
}
goBack(){
history.go(-1)
}
}
......@@ -37,9 +37,13 @@
</div>
</div>
<footer class="fixed" (click)="next()">
<footer class="fixed" (click)="next()" *ngIf="!approvalIdentity">
保存并下一步
</footer>
<div id="page" *ngIf="approvalIdentity">
<div (click)="goBack()">上一页</div>
<div (click)="viewNext()">下一页</div>
</div>
</div>
<ydlife-toast *ngIf="toastDialog" [toastInfo]="toastInfo"></ydlife-toast>
<ydlife-alert *ngIf="isNeedAlert" [dialogInfo]="dialogInfo" (popInfo)="getPopInfo()"></ydlife-alert>
......@@ -40,9 +40,11 @@
margin-top: 10px;
overflow: hidden;
.tips{
width: 100%;
margin-top: 10px;
color: #999;
font-size: 10px;
text-align: center;
}
.photo{
text-align: center;
......
......@@ -21,6 +21,7 @@ export class EmployeeIdCardComponent implements OnInit {
toastInfo: any;
isNeedAlert: boolean;
dialogInfo: any;
approvalIdentity:any;
constructor(private activatedRoute: ActivatedRoute,
private router: Router,public lifeCommonService:LifeCommonService,
public myService:MyService,private changeDetectorRef: ChangeDetectorRef) {
......@@ -31,6 +32,7 @@ export class EmployeeIdCardComponent implements OnInit {
const title = this.activatedRoute.snapshot.data[0]['title'];
this.lifeCommonService.setTitle(title);
this.hiringBasicInfoId = this.activatedRoute.snapshot.queryParams.hiringBasicInfoId?this.activatedRoute.snapshot.queryParams.hiringBasicInfoId:null;
this.approvalIdentity = this.activatedRoute.snapshot.queryParams.approvalIdentity?this.activatedRoute.snapshot.queryParams.approvalIdentity:null;
this.queryWholeInfo(this.hiringBasicInfoId)
// setTimeout(() => {
// this.exampleWidth = this.elementView.nativeElement.offsetWidth;
......@@ -69,48 +71,51 @@ export class EmployeeIdCardComponent implements OnInit {
}
selectPic(type){
if(this.lifeCommonService.isWeiXin()){
// 5.1 拍照、本地选图
const t = this;
wx.chooseImage({
count: 1, // 默认9
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
success: function (res) {
this.localId = res.localIds[0]; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片
const THIS = t;
wx.uploadImage({
localId: this.localId, // 需要上传的图片的本地ID,由chooseImage接口获得
isShowProgressTips: 1, // 默认为1,显示进度提示
success: function (response) {
THIS.serverId = response.serverId; // 返回图片的服务器端ID
const m = {
mediaId: response.serverId,
origin: 'ydLife'
};
THIS.myService.mediaGet(m).subscribe(async e => {
if (e['success']) {
if(type=='front'){
THIS.frontVxUrl = e['data']['imgUrl'];
if(!this.approvalIdentity){
if(this.lifeCommonService.isWeiXin()){
// 5.1 拍照、本地选图
const t = this;
wx.chooseImage({
count: 1, // 默认9
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
success: function (res) {
this.localId = res.localIds[0]; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片
const THIS = t;
wx.uploadImage({
localId: this.localId, // 需要上传的图片的本地ID,由chooseImage接口获得
isShowProgressTips: 1, // 默认为1,显示进度提示
success: function (response) {
THIS.serverId = response.serverId; // 返回图片的服务器端ID
const m = {
mediaId: response.serverId,
origin: 'ydLife'
};
THIS.myService.mediaGet(m).subscribe(async e => {
if (e['success']) {
if(type=='front'){
THIS.frontVxUrl = e['data']['imgUrl'];
}
if(type=='back'){
THIS.backVxUrl = e['data']['imgUrl'];
}
THIS.changeDetectorRef.markForCheck();
THIS.changeDetectorRef.detectChanges();
// alert(THIS.frontVxUrl)
// alert(THIS.backVxUrl)
} else {
alert(e['message']);
}
if(type=='back'){
THIS.backVxUrl = e['data']['imgUrl'];
}
THIS.changeDetectorRef.markForCheck();
THIS.changeDetectorRef.detectChanges();
// alert(THIS.frontVxUrl)
// alert(THIS.backVxUrl)
} else {
alert(e['message']);
}
});
}
});
}
});
}else{
this.openPopInfo('请在微信端操作!')
});
}
});
}
});
}else{
this.openPopInfo('请在微信端操作!')
}
}
}
// 打开弹窗
......@@ -142,4 +147,12 @@ export class EmployeeIdCardComponent implements OnInit {
}
})
}
viewNext(){
this.router.navigate(['/employee_education'],{ queryParams: { hiringBasicInfoId:this.hiringBasicInfoId,approvalIdentity:this.approvalIdentity} });
}
goBack(){
history.go(-1)
}
}
......@@ -14,9 +14,13 @@
<p>(请勿使用生活照,大小小于1mb)</p>
</div>
</div>
<footer class="fixed" (click)="next()">
<footer class="fixed" (click)="next()" *ngIf="!approvalIdentity">
保存并下一步
</footer>
<div id="page" *ngIf="approvalIdentity">
<div (click)="goBack()">上一页</div>
<div (click)="viewNext()">下一页</div>
</div>
</div>
<ydlife-toast *ngIf="toastDialog" [toastInfo]="toastInfo"></ydlife-toast>
<ydlife-alert *ngIf="isNeedAlert" [dialogInfo]="dialogInfo" (popInfo)="getPopInfo()"></ydlife-alert>
......@@ -16,6 +16,7 @@ export class PersonalPhotosComponent implements OnInit {
toastInfo: any;
isNeedAlert: boolean;
dialogInfo: any;
approvalIdentity:any;
constructor(private activatedRoute: ActivatedRoute,
private router: Router,public lifeCommonService:LifeCommonService,
public myService:MyService,private changeDetectorRef: ChangeDetectorRef) { }
......@@ -24,45 +25,49 @@ export class PersonalPhotosComponent implements OnInit {
const title = this.activatedRoute.snapshot.data[0]['title'];
this.lifeCommonService.setTitle(title);
this.hiringBasicInfoId = this.activatedRoute.snapshot.queryParams.hiringBasicInfoId?this.activatedRoute.snapshot.queryParams.hiringBasicInfoId:null;
this.approvalIdentity = this.activatedRoute.snapshot.queryParams.approvalIdentity?this.activatedRoute.snapshot.queryParams.approvalIdentity:null;
this.queryWholeInfo(this.hiringBasicInfoId)
}
selectPic(){
if(this.lifeCommonService.isWeiXin()){
// 5.1 拍照、本地选图
const t = this;
wx.chooseImage({
count: 1, // 默认9
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
success: function (res) {
this.localId = res.localIds[0]; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片
const THIS = t;
wx.uploadImage({
localId: this.localId, // 需要上传的图片的本地ID,由chooseImage接口获得
isShowProgressTips: 1, // 默认为1,显示进度提示
success: function (response) {
THIS.serverId = response.serverId; // 返回图片的服务器端ID
const m = {
mediaId: response.serverId,
origin: 'ydLife'
};
THIS.myService.mediaGet(m).subscribe(async e => {
if (e['success']) {
THIS.vxUrl = e['data']['imgUrl'];
THIS.changeDetectorRef.markForCheck();
THIS.changeDetectorRef.detectChanges();
} else {
alert(e['message']);
}
});
}
});
}
});
}else{
this.openPopInfo('请在微信端操作!')
if(!this.approvalIdentity){
if(this.lifeCommonService.isWeiXin()){
// 5.1 拍照、本地选图
const t = this;
wx.chooseImage({
count: 1, // 默认9
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
success: function (res) {
this.localId = res.localIds[0]; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片
const THIS = t;
wx.uploadImage({
localId: this.localId, // 需要上传的图片的本地ID,由chooseImage接口获得
isShowProgressTips: 1, // 默认为1,显示进度提示
success: function (response) {
THIS.serverId = response.serverId; // 返回图片的服务器端ID
const m = {
mediaId: response.serverId,
origin: 'ydLife'
};
THIS.myService.mediaGet(m).subscribe(async e => {
if (e['success']) {
THIS.vxUrl = e['data']['imgUrl'];
THIS.changeDetectorRef.markForCheck();
THIS.changeDetectorRef.detectChanges();
} else {
alert(e['message']);
}
});
}
});
}
});
}else{
this.openPopInfo('请在微信端操作!')
}
}
}
next(){
......@@ -108,7 +113,6 @@ export class PersonalPhotosComponent implements OnInit {
queryWholeInfo(hiringBasicInfoId){
this.myService.queryWholeInfo({hiringBasicInfoId:hiringBasicInfoId}).subscribe((res)=>{
if(res['success']){
console.log(res)
if(res['success']){
this.vxUrl = res['data']['hiringBasicInfo']['personerPictureOssPath']
}else{
......@@ -117,4 +121,12 @@ export class PersonalPhotosComponent implements OnInit {
}
})
}
viewNext(){
this.router.navigate(['/employee_id_card'],{ queryParams: { hiringBasicInfoId:this.hiringBasicInfoId,approvalIdentity:this.approvalIdentity} });
}
goBack(){
history.go(-1)
}
}
......@@ -14,9 +14,13 @@
</ul>
<textarea placeholder="输入报聘" #autofocusFlag [(ngModel)]="everWork" *ngIf="everWorkFlag" class="form-control" cols="10" rows="5"></textarea>
</div>
<footer class="fixed" (click)="next()">
<footer class="fixed" (click)="next()" *ngIf="!approvalIdentity">
保存并下一步
</footer>
<div id="page" *ngIf="approvalIdentity">
<div (click)="goBack()">上一页</div>
<div (click)="viewNext()">下一页</div>
</div>
</div>
<div class="wrapper" *ngIf="type =='contract'">
......@@ -33,18 +37,23 @@
</li>
</ul>
</div>
<footer class="fixed" (click)="next()" [ngClass]="{default:isAllAgree == false}">
<footer class="fixed" (click)="next()" [ngClass]="{default:isAllAgree == false}"
*ngIf="!approvalIdentity">
我已全部阅读且同意,下一步
</footer>
<div id="page" *ngIf="approvalIdentity">
<div (click)="goBack()">上一页</div>
<div (click)="viewNext()">下一页</div>
</div>
</div>
<div class="toastWrapper toast" *ngIf="isShow">
</div>
<div id="toastContent" *ngIf="isShow">
<div id="toastContent" *ngIf="isShow" #contract (scroll)="onScroll($event)">
<div class="title">
{{curTitle}}
</div>
<div class="contract" [innerHtml]="curContract"></div>
<div class="contract" [innerHtml]="curContract" ></div>
<div class="agree" (click)="agree(curContractId)">同意</div>
<!--<div>{{curQues|json}}</div>-->
</div>
......
......@@ -92,7 +92,7 @@
z-index: 1;
}
#toastContent {
position: absolute;
position: fixed;
bottom: 0;
width: 100%;
height: 80%;
......
import { Component, OnInit,ViewChild,ElementRef } from '@angular/core';
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',
......@@ -9,6 +11,7 @@ import { LifeCommonService } from "../../../common/life-common.service";
})
export class PersonalStatementComponent implements OnInit {
@ViewChild('autofocusFlag') elementView: ElementRef;
@ViewChild('contract') toastContent:ElementRef;
//判断是个人声明还是合同确认
type:any;
hiringBasicInfoId:any;
......@@ -27,6 +30,7 @@ export class PersonalStatementComponent implements OnInit {
curContractId:number;
isAllAgree:boolean = false;
contractTermsConfirmsListParm:Array<any>;
approvalIdentity:any;
constructor(private myService: MyService,
private activatedRoute: ActivatedRoute,
public lifeCommonService: LifeCommonService,
......@@ -37,16 +41,18 @@ export class PersonalStatementComponent implements OnInit {
const title = this.activatedRoute.snapshot.data[0]['title'];
this.lifeCommonService.setTitle(title);
this.hiringBasicInfoId = this.activatedRoute.snapshot.queryParams.hiringBasicInfoId?this.activatedRoute.snapshot.queryParams.hiringBasicInfoId:null;
this.approvalIdentity = this.activatedRoute.snapshot.queryParams.approvalIdentity?this.activatedRoute.snapshot.queryParams.approvalIdentity:null;
if(this.type=="personal_statement"){
this.dropOptionsQuery();
}else{
this.queryContractTerms();
}
this.queryWholeInfo(this.hiringBasicInfoId);
}
ngOnChanges(){
}
next(){
......@@ -88,24 +94,26 @@ export class PersonalStatementComponent implements OnInit {
//选择个人声明
selectStatements(personalStatements){
if( personalStatements.status ==1){
personalStatements.status = 0;
}else{
personalStatements.status = 1;
}
if(personalStatements.id == '241'){
if(personalStatements.status == 1){
this.everWorkFlag = true;
//点击曾经报聘输入报聘自动获取焦点
setTimeout(() => {
this.elementView.nativeElement.focus();
}, 500);
if(!this.approvalIdentity){
if( personalStatements.status ==1){
personalStatements.status = 0;
}else{
this.everWork = null;
this.everWorkFlag = false;
personalStatements.status = 1;
}
if(personalStatements.id == '241'){
if(personalStatements.status == 1){
this.everWorkFlag = true;
//点击曾经报聘输入报聘自动获取焦点
setTimeout(() => {
this.elementView.nativeElement.focus();
}, 500);
}else{
this.everWork = null;
this.everWorkFlag = false;
}
}
}
}
savePersonalStatements(){
......@@ -160,17 +168,20 @@ export class PersonalStatementComponent implements OnInit {
}
readContract(contractItem){
if( contractItem.confirmStatus ==1){
contractItem.confirmStatus = 0;
}else{
this.isShow = true;
this.curContract = contractItem.termNote;
this.curTitle = contractItem.termName;
this.curContractId = contractItem.id;
if(!this.approvalIdentity){
if( contractItem.confirmStatus ==1){
contractItem.confirmStatus = 0;
}else{
this.isShow = true;
this.curContract = contractItem.termNote;
this.curTitle = contractItem.termName;
this.curContractId = contractItem.id;
}
this.isAllAgree = this.contractTermsList.every((item)=>{
return item.confirmStatus == 1;
});
}
this.isAllAgree = this.contractTermsList.every((item)=>{
return item.confirmStatus == 1;
});
}
//同意合同条款
......@@ -241,4 +252,22 @@ export class PersonalStatementComponent implements OnInit {
}
})
}
onScroll(event){
console.log(event)
console.log(this.toastContent)
}
viewNext(){
if(this.type == 'personal_statement'){
this.router.navigate(['/contract'],{ queryParams: { hiringBasicInfoId:this.hiringBasicInfoId,approvalIdentity:this.approvalIdentity} });
}
if(this.type == 'contract'){
this.router.navigate(['/signature'],{ queryParams: { hiringBasicInfoId:this.hiringBasicInfoId,approvalIdentity:this.approvalIdentity} });
}
}
goBack(){
history.go(-1)
}
}
......@@ -11,11 +11,11 @@
</signature-pad>
<img [src]="imgStr" alt="签名" *ngIf="isSignatureShow">
</div>
<div class="signature_action">
<div class="signature_action" *ngIf="!approvalIdentity">
<img src="assets/images/clear.png" alt="清除" (click)="clearSignature();"/>
<img src="assets/images/revoke.png" *ngIf="!isSignatureShow" alt="上一步" (click)="revokeSignature()"/>
</div>
<footer class="fixed" (click)="next()">
<footer class="fixed" (click)="next()" *ngIf="!approvalIdentity">
我自愿签订经纪人合同书
</footer>
</div>
......
......@@ -18,6 +18,7 @@ export class SignatureComponent implements OnInit {
isNeedAlert: boolean;
dialogInfo: any;
isSignatureShow:boolean;
approvalIdentity:any;
@ViewChild(SignaturePad) signaturePad : SignaturePad;
constructor(private activatedRoute: ActivatedRoute,
private router: Router,public lifeCommonService:LifeCommonService,
......@@ -28,6 +29,7 @@ export class SignatureComponent implements OnInit {
}
ngOnInit() {
this.approvalIdentity = this.activatedRoute.snapshot.queryParams.approvalIdentity?this.activatedRoute.snapshot.queryParams.approvalIdentity:null;
this.signaturePadOptions = {
minWidth: 2,
maxWidth: 5,
......
......@@ -3,7 +3,7 @@
<div><span class="line"></span>工作经历</div>
<span class="page_mark"> 2/8</span>
</div>
<div class="content">
<div class="content" *ngIf="!approvalIdentity">
<div class="contentDetail employ">
<div class="contentItem">
<span>工作单位</span>
......@@ -43,7 +43,7 @@
</div>
</div>
<div class="add_wrapper" >
<div class="add_wrapper" *ngIf="!approvalIdentity">
<i class="iconfont icon-jiahao" (click)="addExperienceList()"></i>
<span>确认并添加</span>
</div>
......@@ -69,9 +69,13 @@
</li>
</ul>
</div>
<footer class="fixed" (click)="next()">
<footer class="fixed" (click)="next()" *ngIf="!approvalIdentity">
保存并下一步
</footer>
<div id="page" *ngIf="approvalIdentity">
<div (click)="goBack()">上一页</div>
<div (click)="viewNext()">下一页</div>
</div>
</div>
<ydlife-toast *ngIf="toastDialog" [toastInfo]="toastInfo"></ydlife-toast>
<ydlife-alert *ngIf="isNeedAlert" [dialogInfo]="dialogInfo" (popInfo)="getPopInfo()"></ydlife-alert>
......
......@@ -97,6 +97,7 @@
background:#F8F8F8;
padding: 10px 13px;
padding-bottom: 65px;
margin-top: 10px;
ul{
margin-bottom: 10px;
li{
......
......@@ -23,6 +23,7 @@ export class WorkExperienceComponent implements OnInit {
toastInfo: any;
isNeedAlert: boolean;
dialogInfo: any;
approvalIdentity:any;
constructor(private activatedRoute: ActivatedRoute,
private router: Router,public lifeCommonService:LifeCommonService,
public myService:MyService) {
......@@ -33,6 +34,7 @@ export class WorkExperienceComponent implements OnInit {
const title = this.activatedRoute.snapshot.data[0]['title'];
this.lifeCommonService.setTitle(title);
this.hiringBasicInfoId = this.activatedRoute.snapshot.queryParams.hiringBasicInfoId?this.activatedRoute.snapshot.queryParams.hiringBasicInfoId:null;
this.approvalIdentity = this.activatedRoute.snapshot.queryParams.approvalIdentity?this.activatedRoute.snapshot.queryParams.approvalIdentity:null;
this.addExperience = new ExperienceQuery(null, null, null,null);
this.queryWholeInfo(this.hiringBasicInfoId)
}
......@@ -121,4 +123,12 @@ export class WorkExperienceComponent implements OnInit {
}
})
}
viewNext(){
this.router.navigate(['/personal_photos'],{ queryParams: { hiringBasicInfoId:this.hiringBasicInfoId,approvalIdentity:this.approvalIdentity} });
}
goBack(){
history.go(-1)
}
}
<div class="salesWrapper">
<ul class="tab">
<li *ngFor="let titleItem of titleList" (click)="selectTab(titleItem.id)"
[ngClass]="{selected:selectedId===titleItem.id}">
<div style="position: relative;">
<h3>{{titleItem.name}}
</h3>
</div>
</li>
</ul>
<div class="salesContent">
<div style="text-align: center;margin: 20px auto;font-size: 20px;" *ngIf="approvarList?.length==0">暂无数据</div>
<div class="salesItem" *ngFor="let approvarItem of approvarList" (click)="jumpToDetail(approvarItem)">
<div class="icon_bolck" ><span class="iconfont icon-ren4"></span></div>
<div class="line">
<div>姓名:{{approvarItem.name}}</div>
<span class="iconfont icon-ar-r" style="font-size: 10px;position: relative; right: -2px;"></span>
</div>
<div class="line">
<div> 手机号:{{approvarItem.mobileNo}}</div>
<div>{{approvarItem.practitionerLevel}}</div>
</div>
<div class="line">
<div>申请时间:{{approvarItem.applicationTime}}</div>
<!-- <div>{{recruitingItem.createdAt}}</div> -->
</div>
</div>
</div>
</div>
.salesWrapper{
width: 100%;
height: 100%;
overflow: auto;
background: #fff;
.tab {
display: flex;
list-style: none;
margin: 10px 0px;
padding-left: 1%;
li {
margin-right: 10px;
line-height: 30px;
height: 30px;
width: 25%;
text-align: center;
border: 1px #a9aabb solid;
border-radius: 20px;
h3 {
font-weight: normal;
font-size: 16px;
}
}
li.selected {
border: 1px #e10d0d solid;
}
}
.salesContent{
.salesItem{
border-bottom: 1px #dcdcdc solid;
padding: 10px;
padding-left: 45px;
position: relative;
.icon_bolck{
border: 1px #dcdcdc solid;
width: 35px;
height: 35px;
position: absolute;
left: 3px;
top: 20px;
line-height: 30px;
text-align: center;
border-radius: 50%;
.iconfont{
color: #ff3500;
font-size: 26px;
position: relative;
top: 1px;
}
}
.linkbusinessRadius{
position: absolute;
top: 35%;
left: 10px;
width: 25px;
height: 25px;
.circlebtn{
display: inline-block;
width: 25px;
height: 25px;
border: 1px #707070 solid;
border-radius: 50%;
}
}
.line{
display: flex;
justify-content: space-between;
align-items: center;
font-size: 13px;
flex: 1;
.price{
font-size: 16px;
color: #ff3500;
font-weight: bold;
}
}
}
.salesItem:last-child{
border-bottom: none;
}
}
}
\ No newline at end of file
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ApprovalListComponent } from './approval-list.component';
describe('ApprovalListComponent', () => {
let component: ApprovalListComponent;
let fixture: ComponentFixture<ApprovalListComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ ApprovalListComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(ApprovalListComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from '@angular/core';
import { MyService } from '../my.service';
import {Router,ActivatedRoute} from "@angular/router";
@Component({
selector: 'ydlife-approval-list',
templateUrl: './approval-list.component.html',
styleUrls: ['./approval-list.component.scss']
})
export class ApprovalListComponent implements OnInit {
titleList:Array<any>;
selectedId:number = 0;
practitionerId:any;
approvarList:Array<any>;
constructor(private myService:MyService,private router:Router) { }
ngOnInit() {
this.practitionerId = JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId']
this.titleList = [
{ id: 0, name: '待审批' },
{ id: 1, name: '通过' },
{ id: 2, name: '拒绝' }
]
this.listQuery();
}
selectTab(id) {
this.selectedId = id;
}
listQuery(){
this.myService.listQuery({practitionerId:this.practitionerId}).subscribe((res)=>{
console.log(res)
if(res['success']){
this.approvarList = res['data']['hiringListInfoList'];
}
})
}
jumpToDetail(item){
this.router.navigate([`/employee_basic_info`],{queryParams:{hiringBasicInfoId:item.hiringBasicInfoId,approvalIdentity:item.approvalIdentity}})
}
}
......@@ -21,15 +21,14 @@ export class MemberDetailComponent implements OnInit {
}
queryTeamMemberDetail(){
const practitionerId = JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId']
const practitionerId = JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId'];
this.myService.queryTeamMemberDetail({practitionerId:practitionerId}).subscribe((res)=>{
if(res['success']){
this.teamMemberList = res['data']['teamMemberDetail'];
console.log(this.teamMemberList)
this.practitionerDeatil = this.teamMemberList.filter((item)=>{
return item.practitionerId == this.practitionerId ;
})[0]
console.log(this.practitionerDeatil)
})[0];
}
})
}
......
......@@ -97,7 +97,7 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
// { no: 16, subtitle: '团队增员', icon: 'recruiting', path: '', routerLink: '' },
{ no: 16, subtitle: '团队增员', icon: 'recruiting', path: '', routerLink: 'recruiting' },
{ no: 18, subtitle: '招募海报', icon: 'poster_r', path: '', routerLink: '' },
{ no: '', subtitle: '', icon: 'default', path: '', routerLink: '' }
{ no: 22, subtitle: '审批', icon: 'recruiting', path: '', routerLink: 'approval-list' }
],
// isShow: this.isShow
isShow: true
......
......@@ -41,6 +41,7 @@ import { SignatureComponent } from './application-process/signature/signature.co
import { EmployeeSubmitComponent } from './application-process/employee-submit/employee-submit.component';
import { BankCardComponent } from './application-process/bank-card/bank-card.component';
import { MemberDetailComponent } from './member-detail/member-detail.component';
import { ApprovalListComponent } from './approval-list/approval-list.component';
const myRoutes: Routes = [
{ path: '', component: MyCenterHomeComponent, canActivate: [AuthGuard], data: [{ title: '银盾保险经纪 - 工作台' }] },
......@@ -88,7 +89,8 @@ const myRoutes: Routes = [
{ path: 'contract',component:PersonalStatementComponent,data: [{ type:'contract',title: '银盾经纪人报聘' }] },
{ path: 'signature',component:SignatureComponent,data: [{ title: '银盾经纪人报聘' }]},
{ path: 'employee_submit',component:EmployeeSubmitComponent,data: [{ title: '已提交' }]},
{ path: 'member_detail/:practitionerId',component:MemberDetailComponent, canActivate: [AuthGuard]}
{ path: 'member_detail/:practitionerId',component:MemberDetailComponent, canActivate: [AuthGuard]},
{ path: 'approval-list',component:ApprovalListComponent, canActivate: [AuthGuard]}
];
@NgModule({
......
......@@ -51,9 +51,10 @@ import { EmployeeSubmitComponent } from './application-process/employee-submit/e
import { BankCardComponent } from './application-process/bank-card/bank-card.component';
import { SignaturePadModule } from 'angular2-signaturepad';
import { MemberDetailComponent } from './member-detail/member-detail.component';
import { ApprovalListComponent } from './approval-list/approval-list.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],
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],
imports: [
CommonModule,
LifeCommonModule,
......
......@@ -503,4 +503,11 @@ export class MyService {
return this.http
.post(url, JSON.stringify(param));
}
//审批列表
listQuery(param){
const url = this.ydapi + '/practitionerHiring/listQuery';
return this.http
.post(url, JSON.stringify(param));
}
}
......@@ -163,9 +163,12 @@ footer{
margin-top: 15px;
}
footer.fixed{
min-width: 320px;
max-width: 640px;
position: fixed;
bottom: 0;
left: 0;
right: 0;
height: 56px;
line-height: 56px;
border-radius: 0;
......@@ -218,3 +221,23 @@ footer.fixed{
}
}
#page{
position: fixed;
bottom: 0;
left: 0;
height: 56px;
line-height: 56px;
display: flex;
width: 100%;
justify-content: space-evenly;
div{
width: 50%;
text-align: center;
background: #C81B1E;
color: #fff;
}
div:nth-child(1){
border-right: 1px #fff solid;
}
}
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