Commit 2a3fac0f by sunchao

电子报聘所有新增页面

parent aa323631
export class EmployBasicQuery {
constructor(
public id?:number,
/**
* FK ag_acl_practitioner.id 邀请人
*/
public inviteePractitionerId?:number,
/**
* 報聘经纪人姓名
*/
public name?:string,
/**
* 報聘经纪人姓名电话
*/
public mobileNo?:number,
/**
* FK ag_md_id_type.id
*/
public idTypeId?:number,
/**
* 報聘经纪人姓名证件类型
*/
public idType?:string,
/**
* 報聘经纪人姓名证件号
*/
public idNo?:number,
/**
* 1=Male, 2=Female
*/
public gender?:string,
/**
* 報聘经纪人姓名生日
*/
public practitionerBirthdate?:string,
/**
* 户籍省份 FK ag_md_province.id
*/
public provinceId?:number,
/**
* 户籍省份名
*/
public provinceName?:string,
/**
* 户籍城市FK ag_md_city.id
*/
public cityId?:number,
/**
* 户籍城市名
*/
public cityName?:string,
/**
* 居住地址
*/
public residentAddress?:string,
/**
* 从业人员微信号
*/
public wechatId?:number,
/**
* email地址
*/
public email?:string
) {
}
}
\ No newline at end of file
<div class="wrapper">
<div class="title">
<div>申请人基本资料</div>
<span class="page_mark"> 1/8</span>
</div>
<div class="content">
<div class="contentDetail employ">
<div class="contentItem">
<span>姓名</span>
</div>
<div class="contentItem">
<span>证件类型</span>
<select class="form-control" name="" id="">
<option value="">请选择</option>
<option [value]="idType.id" *ngFor="let idType of this.idTypesList">
{{idType.name}}
</option>
</select>
</div>
<div class="contentItem">
<span>证件号</span>
</div>
<div class="contentItem">
<span>生日</span>
<div></div>
</div>
<div class="contentItem">
<span>性别</span>
<div></div>
</div>
<div class="contentItem">
<span>户籍</span>
<div></div>
</div>
<div class="contentItem">
<span>居住地址</span>
<div></div>
</div>
<div class="contentItem">
<span>E-mail</span>
<div></div>
</div>
</div>
</div>
<footer class="fixed" (click)="next()">
保存并下一步
</footer>
</div>
\ No newline at end of file
.wrapper {
font-size: 15px;
background: #fff;
min-height: 100%;
select{
-webkit-appearance: none;
}
.title{
padding: 10px 13px 0 13px;
display: flex;
justify-content: space-between;
font-weight: bold;
align-items: center;
}
.content {
padding: 10px 5px;
position: relative;
.contentDetail {
.contentItem {
display: flex;
justify-content: space-between;
align-items: center;
margin: 0 8px 5px 8px;
> span:first-child{
white-space: nowrap;
}
input.form-control,select.form-control {
display: inline-block;
// width: 60%;
margin: 0 5px;
background: none;
outline: none;
border: none;
text-align: right;
box-shadow: none;
display: flex;
flex-wrap: wrap;
font-size: 16px;
direction: rtl;
}
input[type="date"]{
margin-right: -4.5%;
direction: rtl;
}
.sexWrapper {
display: flex;
width: 60%;
justify-content: flex-end;
padding-right: 3px;
.form-control.sex {
width: 20%;
margin-left: 5px;
border: none;
box-shadow: none;
}
.form-control.sex.sexBtn {
border: 1px #0767bf solid;
}
.form-control[disabled] {
background-color: transparent;
opacity: 1;
}
}
span{
position: relative;
sub{
position: absolute;
margin-right: 5px;
font-weight: bold;
color: #e10d0d;
top: 13px;
left: -8px;
}
}
}
.contentItem:last-child {
border-bottom: none;
}
select.form-control[disabled] {
background-color: transparent;
color: #999;
}
}
.contentDetail.employ .contentItem{
padding: 10px 0;
border-bottom: 1px #e8e8e8 solid;
margin: 0 8px 0 8px;
}
}
}
\ No newline at end of file
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { EmployeeBasicInfoComponent } from './employee-basic-info.component';
describe('EmployeeBasicInfoComponent', () => {
let component: EmployeeBasicInfoComponent;
let fixture: ComponentFixture<EmployeeBasicInfoComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ EmployeeBasicInfoComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(EmployeeBasicInfoComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from '@angular/core';
import { MyService } from '../../my.service';
import { ActivatedRoute,Router } from "@angular/router";
import { LifeCommonService } from "../../../common/life-common.service";
@Component({
selector: 'ydlife-employee-basic-info',
templateUrl: './employee-basic-info.component.html',
styleUrls: ['./employee-basic-info.component.scss']
})
export class EmployeeBasicInfoComponent implements OnInit {
idTypesList:Array<any>;
hiringBasicInfoId:any;
constructor(private activatedRoute: ActivatedRoute,
private router: Router,public lifeCommonService:LifeCommonService,
public myService:MyService) { }
ngOnInit() {
const title = this.activatedRoute.snapshot.data[0]['title'];
this.lifeCommonService.setTitle(title);
this.hiringBasicInfoId = this.activatedRoute.snapshot.queryParams.hiringBasicInfoId?this.activatedRoute.snapshot.queryParams.hiringBasicInfoId:null;
this.erpInitialize();
}
erpInitialize(){
this.myService.erpInitialize().subscribe((res)=>{
if(res['success']){
this.idTypesList = res['data']['idTypes'];
}
})
}
next(){
this.router.navigate(['/work_experience'],{ queryParams: { hiringBasicInfoId:this.hiringBasicInfoId} });
}
}
<div class="wrapper">
<div class="title">
<div>学历信息</div>
<span class="page_mark"> 5/8</span>
</div>
<div class="content">
<div class="contentDetail employ">
<div class="contentItem">
<span>最高学历:如本科、专科、硕士</span>
<select class="form-control" name="" id="">
<option value="">请选择</option>
<option [value]="idType.id" *ngFor="let idType of this.idTypesList">
{{idType.name}}
</option>
</select>
</div>
<div class="contentItem">
<span>毕业学校</span>
</div>
<div class="contentItem" style="border:none;">
<span>毕业证</span>
<div></div>
</div>
</div>
<div class="photo_wrapper">
<img src="assets/images/camera.png" alt="" />
<div style="margin-top: 10px;">点击添加毕业证照片</div>
</div>
<div class="tips">
<p>(jpg,png 文件大小不大于1mb)</p>
</div>
</div>
<footer class="fixed" (click)="next()">
保存并下一步
</footer>
</div>
\ No newline at end of file
.wrapper {
font-size: 15px;
background: #fff;
min-height: 100%;
select{
-webkit-appearance: none;
}
.title{
padding: 10px 13px 0 13px;
display: flex;
justify-content: space-between;
font-weight: bold;
align-items: center;
}
.content{
padding: 10px 5px;
position: relative;
.contentDetail {
.contentItem {
display: flex;
justify-content: space-between;
align-items: center;
margin: 0 8px 5px 8px;
> span:first-child{
white-space: nowrap;
}
input.form-control,select.form-control {
display: inline-block;
// width: 60%;
margin: 0 5px;
background: none;
outline: none;
border: none;
text-align: right;
box-shadow: none;
display: flex;
flex-wrap: wrap;
font-size: 16px;
direction: rtl;
}
}
.contentItem:last-child {
border-bottom: none;
}
select.form-control[disabled] {
background-color: transparent;
color: #999;
}
}
.contentDetail.employ .contentItem{
padding: 10px 0;
border-bottom: 1px #e8e8e8 solid;
margin: 0 8px 0 8px;
}
.photo_wrapper{
width: 203px;
min-height: 125px;
margin: 20px auto 0 auto;
text-align: center;
background: #F8F8F8;
border: 1px #8D8D8D dashed;
border-radius: 4px;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
font-size: 12px;
color: #333;
img{
width: 42px;
height: 42px;
}
}
.tips{
text-align: center;
font-size: 11px;
margin: 20px auto;
color: #999;
}
}
}
\ No newline at end of file
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { EmployeeEducationComponent } from './employee-education.component';
describe('EmployeeEducationComponent', () => {
let component: EmployeeEducationComponent;
let fixture: ComponentFixture<EmployeeEducationComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ EmployeeEducationComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(EmployeeEducationComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from '@angular/core';
import { MyService } from '../../my.service';
import { ActivatedRoute,Router } from "@angular/router";
import { LifeCommonService } from "../../../common/life-common.service";
@Component({
selector: 'ydlife-employee-education',
templateUrl: './employee-education.component.html',
styleUrls: ['./employee-education.component.scss']
})
export class EmployeeEducationComponent implements OnInit {
hiringBasicInfoId:any;
constructor(private activatedRoute: ActivatedRoute,
private router: Router,public lifeCommonService:LifeCommonService,
public myService:MyService) {
}
ngOnInit() {
const title = this.activatedRoute.snapshot.data[0]['title'];
this.lifeCommonService.setTitle(title);
this.hiringBasicInfoId = this.activatedRoute.snapshot.queryParams.hiringBasicInfoId?this.activatedRoute.snapshot.queryParams.hiringBasicInfoId:null;
}
next(){
this.router.navigate(['/personal_statement'],{ queryParams: { hiringBasicInfoId:this.hiringBasicInfoId} });
}
}
<div class="wrapper">
<div class="title">
<div>个人证件资料</div>
<span class="page_mark"> 4/8</span>
</div>
<div class="sub_title">
<strong>身份证件</strong>
<span>(身份证复印件的姓名、证件号码、户籍地址务必清楚)</span>
</div>
<div class="content">
<div class="content_wrapper">
<div class="left">
<img src="assets/images/front.png" alt="身份证正面">
<span class="tips">(正确示例:身份证正面,字体清晰)</span>
</div>
<div class="right">
<div class="photo" [ngStyle]="{'width':this.exampleWidth + 'px','height':this.exampleHeight + 'px'}">
<img src="assets/images/camera.png" alt="身份证" />
<div>点击添加身份证正面</div>
</div>
<span class="tips">(jpg,png 文件大小不大于1mb)</span>
</div>
</div>
<div class="content_wrapper">
<div class="left">
<img src="assets/images/back.png" alt="身份证反面" #mainScreen>
<span class="tips">(正确示例:身份证正面,字体清晰)</span>
</div>
<div class="right">
<div class="photo" [ngStyle]="{'width':this.exampleWidth + 'px','height':this.exampleHeight + 'px'}">
<img src="assets/images/camera.png" alt="身份证" />
<div>点击添加身份证正面</div>
</div>
<span class="tips">(jpg,png 文件大小不大于1mb)</span>
</div>
</div>
</div>
<footer class="fixed" (click)="next()">
保存并下一步
</footer>
</div>
\ No newline at end of file
.wrapper {
padding: 10px 10px 0 10px;
font-size: 15px;
background: #fff;
min-height: 100%;
select{
-webkit-appearance: none;
}
.title{
display: flex;
justify-content: space-between;
font-weight: bold;
align-items: center;
}
.sub_title{
margin-top: 8px;
span{
font-size: 10px;
}
}
.content{
padding: 20px 0;
position: relative;
.content_wrapper{
display: flex;
justify-content: space-between;
.left,.right{
width: 48%;
min-height: 154px;
span{
color: #999;
font-size: 10px;
}
}
.photo{
text-align: center;
background: #F8F8F8;
border: 1px #8D8D8D dashed;
border-radius: 4px;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
font-size: 12px;
color: #333;
img{
max-width: 20%;
}
}
}
}
}
\ No newline at end of file
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { EmployeeIdCardComponent } from './employee-id-card.component';
describe('EmployeeIdCardComponent', () => {
let component: EmployeeIdCardComponent;
let fixture: ComponentFixture<EmployeeIdCardComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ EmployeeIdCardComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(EmployeeIdCardComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit,ViewChild,ElementRef } from '@angular/core';
import { MyService } from '../../my.service';
import { ActivatedRoute,Router } from "@angular/router";
import { LifeCommonService } from "../../../common/life-common.service";
@Component({
selector: 'ydlife-employee-id-card',
templateUrl: './employee-id-card.component.html',
styleUrls: ['./employee-id-card.component.scss']
})
export class EmployeeIdCardComponent implements OnInit {
@ViewChild('mainScreen') elementView: ElementRef;
exampleWidth:any;
exampleHeight:any;
hiringBasicInfoId:any;
constructor(private activatedRoute: ActivatedRoute,
private router: Router,public lifeCommonService:LifeCommonService,
public myService:MyService) {
}
ngOnInit() {
const title = this.activatedRoute.snapshot.data[0]['title'];
this.lifeCommonService.setTitle(title);
this.hiringBasicInfoId = this.activatedRoute.snapshot.queryParams.hiringBasicInfoId?this.activatedRoute.snapshot.queryParams.hiringBasicInfoId:null;
setTimeout(() => {
this.exampleWidth = this.elementView.nativeElement.offsetWidth;
this.exampleHeight =this.elementView.nativeElement.offsetHeight;
}, 300);
}
next(){
this.router.navigate(['/employee_education'],{ queryParams: { hiringBasicInfoId:this.hiringBasicInfoId} });
}
}
<div class="wrapper">
<div class="title">
欢迎加入银盾大家庭
</div>
<div class="content">
<div class="contentDetail employ">
<div class="contentItem">
<span>报聘职级</span>
</div>
<div class="contentItem">
<span>辅导人</span>
</div>
<div class="contentItem">
<span>介绍人</span>
</div>
<div class="contentItem">
<span>体系名</span>
<div></div>
</div>
<div class="contentItem">
<span>体系负责人</span>
<div></div>
</div>
<div class="contentItem">
<span>分公司</span>
<div></div>
</div>
</div>
</div>
<footer class="fixed" (click)="next()">
确认并下一步
</footer>
</div>
\ No newline at end of file
.wrapper {
font-size: 15px;
background: #fff;
min-height: 100%;
.title{
font-size: 15px;
font-weight: bold;
color: #333;
width: 100%;
text-align: center;
margin: 20px auto 0 auto;
}
.content {
padding: 10px 5px;
position: relative;
.contentDetail {
.contentItem {
display: flex;
justify-content: space-between;
align-items: center;
margin: 0 8px 5px 8px;
> span:first-child{
white-space: nowrap;
}
input.form-control,select.form-control {
display: inline-block;
// width: 60%;
margin: 0 5px;
background: none;
outline: none;
border: none;
text-align: right;
box-shadow: none;
display: flex;
flex-wrap: wrap;
font-size: 16px;
direction: rtl;
}
input[type="date"]{
margin-right: -4.5%;
direction: rtl;
}
.sexWrapper {
display: flex;
width: 60%;
justify-content: flex-end;
padding-right: 3px;
.form-control.sex {
width: 20%;
margin-left: 5px;
border: none;
box-shadow: none;
}
.form-control.sex.sexBtn {
border: 1px #0767bf solid;
}
.form-control[disabled] {
background-color: transparent;
opacity: 1;
}
}
span{
position: relative;
sub{
position: absolute;
margin-right: 5px;
font-weight: bold;
color: #e10d0d;
top: 13px;
left: -8px;
}
}
}
.contentItem:last-child {
border-bottom: none;
}
select.form-control[disabled] {
background-color: transparent;
color: #999;
}
}
.contentDetail.employ .contentItem{
padding: 10px 0;
border-bottom: 1px #e8e8e8 solid;
margin: 0 8px 0 8px;
}
}
}
\ No newline at end of file
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { EmployeeInfoComponent } from './employee-info.component';
describe('EmployeeInfoComponent', () => {
let component: EmployeeInfoComponent;
let fixture: ComponentFixture<EmployeeInfoComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ EmployeeInfoComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(EmployeeInfoComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute,Router } from "@angular/router";
import { LifeCommonService } from "../../../common/life-common.service";
import { MyService } from '../../my.service';
@Component({
selector: 'ydlife-employee-info',
templateUrl: './employee-info.component.html',
styleUrls: ['./employee-info.component.scss']
})
export class EmployeeInfoComponent implements OnInit {
hiringBasicInfoId:any;
membership:any;
constructor(private activatedRoute: ActivatedRoute,
private router: Router,public lifeCommonService:LifeCommonService,
public myService:MyService) { }
ngOnInit() {
const title = this.activatedRoute.snapshot.data[0]['title'];
this.lifeCommonService.setTitle(title);
this.hiringBasicInfoId = this.activatedRoute.snapshot.queryParams.hiringBasicInfoId?this.activatedRoute.snapshot.queryParams.hiringBasicInfoId:null;
this.queryMembershipByHiringBasicInfoId(this.hiringBasicInfoId);
}
queryMembershipByHiringBasicInfoId(hiringBasicInfoId){
this.myService.queryMembershipByHiringBasicInfoId({hiringBasicInfoId:hiringBasicInfoId}).subscribe((res)=>{
console.log(res)
this.membership = res['data']['membership'];
})
}
next(){
this.router.navigate(['/employee_basic_info'],{ queryParams: { hiringBasicInfoId:this.hiringBasicInfoId} });
}
}
<div class="wrapper">
<img src="assets/images/pass.png" alt="通过" />
<div style="font-size: 18px;font-weight: bold;margin: 15px auto;">您已提交成功</div>
<p>我们将会在3个工作日完成审核,</p>
<p>辅导人后续将会联系您,</p>
<p>请耐心等待!</p>
</div>
.wrapper{
width: 100%;
text-align: center;
margin: 0 auto;
img{
width: 30%;
margin-top: 30%;
}
p{
margin: 5px auto;
}
}
\ No newline at end of file
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { EmployeeSubmitComponent } from './employee-submit.component';
describe('EmployeeSubmitComponent', () => {
let component: EmployeeSubmitComponent;
let fixture: ComponentFixture<EmployeeSubmitComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ EmployeeSubmitComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(EmployeeSubmitComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute,Router } from "@angular/router";
import { LifeCommonService } from "../../../common/life-common.service";
@Component({
selector: 'ydlife-employee-submit',
templateUrl: './employee-submit.component.html',
styleUrls: ['./employee-submit.component.scss']
})
export class EmployeeSubmitComponent implements OnInit {
constructor(private activatedRoute: ActivatedRoute,
public lifeCommonService:LifeCommonService) { }
ngOnInit() {
const title = this.activatedRoute.snapshot.data[0]['title'];
this.lifeCommonService.setTitle(title);
}
}
...@@ -14,16 +14,18 @@ export class InvitationComponent implements OnInit { ...@@ -14,16 +14,18 @@ export class InvitationComponent implements OnInit {
invitatorName:string; invitatorName:string;
lifeCustomerInfo: any; lifeCustomerInfo: any;
deviceType:any; deviceType:any;
hiringBasicInfoId:any;
constructor(private myService: MyService, constructor(private myService: MyService,
private activatedRoute: ActivatedRoute, private activatedRoute: ActivatedRoute,
public lifeCommonService: LifeCommonService, public lifeCommonService: LifeCommonService,
private router: Router) { } private router: Router) { }
ngOnInit() { ngOnInit() {
const title = this.activatedRoute.snapshot.data[0]['title'];
this.lifeCommonService.setTitle(title);
this.lifeCustomerInfo = JSON.parse(localStorage.getItem('lifeCustomerInfo')) ? JSON.parse(localStorage.getItem('lifeCustomerInfo')) : null; this.lifeCustomerInfo = JSON.parse(localStorage.getItem('lifeCustomerInfo')) ? JSON.parse(localStorage.getItem('lifeCustomerInfo')) : null;
this.type = this.activatedRoute.snapshot.data[0]['type']; this.type = this.activatedRoute.snapshot.data[0]['type'];
console.log(this.type) this.hiringBasicInfoId = this.activatedRoute.snapshot.queryParams.hiringBasicInfoId?this.activatedRoute.snapshot.queryParams.hiringBasicInfoId:null;
this.invitatorName = this.activatedRoute.snapshot.queryParams.name?this.activatedRoute.snapshot.queryParams.name:null; this.invitatorName = this.activatedRoute.snapshot.queryParams.name?this.activatedRoute.snapshot.queryParams.name:null;
this.deviceType = this.lifeCommonService.checkDeviceType(); this.deviceType = this.lifeCommonService.checkDeviceType();
} }
...@@ -36,7 +38,7 @@ export class InvitationComponent implements OnInit { ...@@ -36,7 +38,7 @@ export class InvitationComponent implements OnInit {
this.lifeCommonService.wxShare( this.lifeCommonService.wxShare(
`${this.lifeCustomerInfo.practitionerBasicInfo.name}`, `${this.lifeCustomerInfo.practitionerBasicInfo.name}`,
'您的好友向你发出了邀请。加入靠谱的团队、一起做靠谱的事。', '您的好友向你发出了邀请。加入靠谱的团队、一起做靠谱的事。',
`https://${window.location.host}/ydLife/invitees?practitionerId=${this.lifeCustomerInfo.practitionerId}`, `https://${window.location.host}/ydLife/invitees?hiringBasicInfoId=${this.hiringBasicInfoId}`,
imgUrl); imgUrl);
}else{ }else{
alert('请在手机微信端发送邀请'); alert('请在手机微信端发送邀请');
...@@ -45,6 +47,6 @@ export class InvitationComponent implements OnInit { ...@@ -45,6 +47,6 @@ export class InvitationComponent implements OnInit {
register(){ register(){
this.router.navigate(['/register']); this.router.navigate(['/register'],{ queryParams: { hiringBasicInfoId:this.hiringBasicInfoId} });
} }
} }
<div class="wrapper">
<div class="title">
<div>个人照片资料</div>
<span class="page_mark"> 3/8</span>
</div>
<div class="content">
<div class="photo_wrapper">
<img src="assets/images/camera.png" alt="" />
<div>点击添加</div>
</div>
<div class="tips">
<p>2寸照片,一年之内近照</p>
<p>(请勿使用生活照,大小小于1mb)</p>
</div>
</div>
<footer class="fixed" (click)="next()">
保存并下一步
</footer>
</div>
\ No newline at end of file
.wrapper {
font-size: 15px;
background: #fff;
min-height: 100%;
padding: 10px 13px 0 13px;
select{
-webkit-appearance: none;
}
.title{
display: flex;
justify-content: space-between;
font-weight: bold;
align-items: center;
}
.content{
padding: 10px 5px;
position: relative;
.photo_wrapper{
width: 189px;
min-height: 222px;
margin: 20px auto 0 auto;
text-align: center;
background: #F8F8F8;
border: 1px #8D8D8D dashed;
border-radius: 4px;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
font-size: 12px;
color: #333;
}
.tips{
text-align: center;
font-size: 11px;
margin: 20px auto;
}
}
}
\ No newline at end of file
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { PersonalPhotosComponent } from './personal-photos.component';
describe('PersonalPhotosComponent', () => {
let component: PersonalPhotosComponent;
let fixture: ComponentFixture<PersonalPhotosComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ PersonalPhotosComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(PersonalPhotosComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from '@angular/core';
import { MyService } from '../../my.service';
import { ActivatedRoute,Router } from "@angular/router";
import { LifeCommonService } from "../../../common/life-common.service";
@Component({
selector: 'ydlife-personal-photos',
templateUrl: './personal-photos.component.html',
styleUrls: ['./personal-photos.component.scss']
})
export class PersonalPhotosComponent implements OnInit {
hiringBasicInfoId:any;
constructor(private activatedRoute: ActivatedRoute,
private router: Router,public lifeCommonService:LifeCommonService,
public myService:MyService) { }
ngOnInit() {
const title = this.activatedRoute.snapshot.data[0]['title'];
this.lifeCommonService.setTitle(title);
this.hiringBasicInfoId = this.activatedRoute.snapshot.queryParams.hiringBasicInfoId?this.activatedRoute.snapshot.queryParams.hiringBasicInfoId:null;
}
next(){
this.router.navigate(['/employee_id_card'],{ queryParams: { hiringBasicInfoId:this.hiringBasicInfoId} });
}
}
<div class="wrapper" *ngIf="type =='personal_statement'">
<div class="title">
<div>个人声明</div>
<span class="page_mark"> 6/8</span>
</div>
<div class="content">
<ul>
<li class="selected">
<span> 未有犯罪记录</span>
<span class="iconfont icon-ar-r" ></span>
</li>
<li>
<span>未有失信纪录</span>
<span class="iconfont icon-ar-r" ></span>
</li>
<li>
<span>未在公信平台存有纪录</span>
<span class="iconfont icon-ar-r" ></span>
</li>
<li>
<span>曾报聘于其他保险机构</span>
<span class="iconfont icon-ar-r" ></span>
</li>
</ul>
<textarea class="form-control" cols="10" rows="5" placeholder="输入报聘"></textarea>
</div>
<footer class="fixed" (click)="next()">
保存并下一步
</footer>
</div>
<div class="wrapper" *ngIf="type =='contract'">
<div class="title">
<div>合同文档确认</div>
<span class="page_mark"> 7/8</span>
</div>
<div class="content">
<ul>
<li class="selected">
<span>合同条款</span>
<span class="iconfont icon-gougou" ></span>
</li>
<li>
<span>工作电脑/网络使用规律</span>
<span class="iconfont icon-ar-r" ></span>
</li>
<li>
<span>保密协议</span>
<span class="iconfont icon-ar-r"></span>
</li>
<li>
<span>收集和利用个人信息协议书</span>
<span class="iconfont icon-ar-r"></span>
</li>
<li>
<span>员工说明书</span>
<span class="iconfont icon-ar-r"></span>
</li>
</ul>
</div>
<footer class="fixed" (click)="next()">
我已全部阅读且同意,下一步
</footer>
</div>
\ No newline at end of file
.wrapper {
font-size: 15px;
background: #fff;
min-height: 100%;
select{
-webkit-appearance: none;
}
.title{
padding: 10px 13px 0 13px;
display: flex;
justify-content: space-between;
font-weight: bold;
align-items: center;
}
.content{
padding: 10px 13px;
ul li{
height: 40px;
line-height: 40px;
background: #F8F8F8;
margin: 10px auto;
padding:0 15px;
display: flex;
justify-content: space-between;
}
ul li.selected{
background: #72B968;
color: #fff;
}
textarea{
background: #F8F8F8;
border: 0;
outline:none;
}
}
}
\ No newline at end of file
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { PersonalStatementComponent } from './personal-statement.component';
describe('PersonalStatementComponent', () => {
let component: PersonalStatementComponent;
let fixture: ComponentFixture<PersonalStatementComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ PersonalStatementComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(PersonalStatementComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } 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']
})
export class PersonalStatementComponent implements OnInit {
//判断是个人声明还是合同确认
type:any;
hiringBasicInfoId:any;
constructor(private myService: MyService,
private activatedRoute: ActivatedRoute,
public lifeCommonService: LifeCommonService,
private router: Router) { }
ngOnInit() {
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;
console.log(this.type)
}
next(){
if(this.type == 'personal_statement'){
this.router.navigate(['/contract'],{ queryParams: { hiringBasicInfoId:this.hiringBasicInfoId} });
}else if(this.type == 'contract'){
this.router.navigate(['/signature'],{ queryParams: { hiringBasicInfoId:this.hiringBasicInfoId} });
}
}
}
<div class="register_wrapper"> <div class="register_wrapper">
<img src="assets/images/register_logo.png" alt="" /> <img class="logo" src="assets/images/register_logo.png" alt="" />
<input type="tel" > <div class="weui-form__control-area">
<footer>注册</footer> <div class="weui-cells__group weui-cells__group_form">
<div class="weui-cells weui-cells_form">
<div class="weui-cell" style="padding:10px 0px">
<div class="weui-cell__bd">
<input autofocus="" class="weui-input" type="tel" maxlength="11" pattern="[0-9]*" placeholder="请输入您的真实手机"
name="mobileNo" [(ngModel)]="userInfo.mobileNo" (blur)="inputBlur()">
</div>
</div>
<div class="weui-cell weui-cell_vcode" style="padding:12px 0px">
<div class="weui-cell__bd">
<input class="weui-input" type="tel" pattern="[0-9]*" id="js_input" placeholder="请输入验证码" maxlength="4"
name="verificationCode" [(ngModel)]="userInfo.verificationCode" (blur)="inputBlur()">
</div>
<div class="weui-cell__ft">
<button class="weui-btn weui-btn_default weui-vcode-btn" (click)="verificationCode()">{{sendCodeHtml}}
</button>
</div>
</div>
</div>
</div>
</div>
<footer style="width: 80%;margin-top: 30px;" (click)="checkVerificationCode()">下一步</footer>
<img style="position: absolute;bottom: 0;left: 0;" src="assets/images/register_bg.png" alt="">
</div> </div>
<ydlife-alert *ngIf="isNeedAlert" [dialogInfo]="dialogInfo" (popInfo)="getPopInfo()"></ydlife-alert>
<ydlife-toast *ngIf="toastDialog" [toastInfo]="toastInfo"></ydlife-toast>
.register_wrapper{ .register_wrapper{
margin: 0 auto; margin: 0 auto;
text-align: center; text-align: center;
img{ img.logo{
width: 20%; width: 25%;
margin-top: 20%; margin-top: 20%;
} }
.weui-form__control-area{
width: 80%;
margin: 10% auto 0 auto;
.weui-cells__group_form .weui-cells:before{
border-top: none;
}
.weui-cells__group_form .weui-cells:after,.weui-cells__group_form .weui-cell:before{
left: 10px;
right: 0;
}
.weui-cells__group_form .weui-vcode-btn{
background: none;
background: none;
border:none;
color: #C81B1E;
font-weight: normal;
}
.weui-input {
caret-color: #C81B1E;
font-size: 20px;
padding-left: 10px;
}
}
} }
\ No newline at end of file
import { Component, OnInit } from "@angular/core"; import { Component, OnInit } from "@angular/core";
import { AuthService } from '../../../auth/auth.service';
import { ActivatedRoute,Router } from "@angular/router";
import { LifeCommonService } from "../../../common/life-common.service";
@Component({ @Component({
selector: "ydlife-register", selector: "ydlife-register",
templateUrl: "./register.component.html", templateUrl: "./register.component.html",
styleUrls: ["./register.component.scss"], styleUrls: ["./register.component.scss"],
}) })
export class RegisterComponent implements OnInit { export class RegisterComponent implements OnInit {
constructor() {} constructor(public authService: AuthService,
private activatedRoute: ActivatedRoute,
ngOnInit() {} private router: Router,
public lifeCommonService: LifeCommonService) {}
MOBILE_REGEXP = /^(1)\d{10}$/;
sendCodeHtml: string = '获取验证码';
timer: any;
remainTimes: number = 60;
disabledSendBtn: boolean = false;
userInfo: any = {
mobileNo: null,
verificationCode: null
};
isNeedAlert: boolean;
dialogInfo: any;
redirect: any;
//控制弹框
toastDialog: boolean;
toastInfo: any;
hiringBasicInfoId:any;
ngOnInit() {
const title = this.activatedRoute.snapshot.data[0]['title'];
this.lifeCommonService.setTitle(title);
this.hiringBasicInfoId = this.activatedRoute.snapshot.queryParams.hiringBasicInfoId?this.activatedRoute.snapshot.queryParams.hiringBasicInfoId:null;
console.log(this.hiringBasicInfoId)
}
scrollTo() { inputBlur() {
window.scrollTo(0, 0); window.scrollTo(0, 0);
} }
// 发送验证码
verificationCode() {
const verificationInfo = {
mobileNo: this.userInfo.mobileNo,
type: '1'
};
if (this.MOBILE_REGEXP.test(this.userInfo.mobileNo) && !this.disabledSendBtn) {
this.authService.verificationCode(verificationInfo).subscribe(res => {
if (res['success']) {
this.countDown();
} else {
this.openPopInfo(res['message']);
}
});
} else if (!this.MOBILE_REGEXP.test(this.userInfo.mobileNo)) {
this.openPopInfo('手机号不正确');
}
}
// 倒计时
countDown() {
this.disabledSendBtn = true;
this.timer = setInterval(() => {
this.remainTimes--;
this.sendCodeHtml = `${this.remainTimes}(S)`;
if (this.remainTimes <= 0) {
this.sendCodeHtml = '获取验证码';
this.remainTimes = 60;
this.disabledSendBtn = false;
clearInterval(this.timer);
}
}, 1000);
}
// 打开弹窗
openPopInfo(message) {
this.isNeedAlert = true;
this.dialogInfo = {
title: null,
content: { value: message, align: 'center' },
footer: [{ value: '我知道了', routerLink: '', className: 'weui-dialog__btn_primary' }],
};
}
// 关闭弹窗
getPopInfo() {
this.isNeedAlert = false;
}
checkVerificationCode(){
if(!this.userInfo.mobileNo){
this.toastDialog = true;
this.toastInfo = {
status: 1,
msg: '手机号不能为空!',
timeout: 3000,
align: 'center'
};
return;
}
if(!this.userInfo.verificationCode){
this.toastDialog = true;
this.toastInfo = {
status: 1,
msg: '验证码不能为空!',
timeout: 3000,
align: 'center'
};
return;
}
const compareCodeObj = {
mobileNo: this.userInfo.mobileNo,
verificationCode: this.userInfo.verificationCode,
expireTime: '3600'
};
this.authService.compare(compareCodeObj).subscribe((res)=>{
if(res['success']){
this.router.navigate(['/employee_info'],{ queryParams: { hiringBasicInfoId:this.hiringBasicInfoId} });
}else{
this.openPopInfo(res['message']);
}
})
}
} }
<div class="wrapper">
<div class="title">
<div>
电子签名<span style="font-size: 10px;font-weight: normal;">(请书写工整,字迹清晰)</span>
</div>
<span class="page_mark"> 8/8</span>
</div>
<footer class="fixed" (click)="next()">
我自愿签订经纪人合同书
</footer>
</div>
\ No newline at end of file
.wrapper {
font-size: 15px;
background: #fff;
min-height: 100%;
select{
-webkit-appearance: none;
}
.title{
padding: 10px 13px 0 13px;
display: flex;
justify-content: space-between;
font-weight: bold;
align-items: center;
}
}
\ No newline at end of file
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { SignatureComponent } from './signature.component';
describe('SignatureComponent', () => {
let component: SignatureComponent;
let fixture: ComponentFixture<SignatureComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ SignatureComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(SignatureComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from '@angular/core';
import { MyService } from '../../my.service';
import { ActivatedRoute,Router } from "@angular/router";
import { LifeCommonService } from "../../../common/life-common.service";
@Component({
selector: 'ydlife-signature',
templateUrl: './signature.component.html',
styleUrls: ['./signature.component.scss']
})
export class SignatureComponent implements OnInit {
constructor(private activatedRoute: ActivatedRoute,
private router: Router,public lifeCommonService:LifeCommonService,
public myService:MyService) { }
ngOnInit() {
const title = this.activatedRoute.snapshot.data[0]['title'];
this.lifeCommonService.setTitle(title);
}
next(){
this.router.navigate(['/employee_submit']);
}
}
<div class="wrapper">
<div class="title">
<div>工作经历</div>
<span class="page_mark"> 2/8</span>
</div>
<div class="content">
<div class="contentDetail employ">
<div class="contentItem">
<span>工作单位</span>
<input type="text" class="form-control" />
</div>
<div class="contentItem">
<span>职位</span>
<input type="text" class="form-control" />
</div>
<div class="contentItem">
<span>任职起始时间</span>
<input type="text" class="form-control" />
</div>
<div class="contentItem">
<span>任职结束时间</span>
<input type="text" class="form-control" />
</div>
</div>
</div>
<div class="add_wrapper">
<i class="iconfont icon-jiahao"></i>
<span>确认并添加</span>
</div>
<div class="experience_list">
<ul>
<li>
<span>工作单位</span>
<span>上海银盾保险经纪有限公司</span>
</li>
<li>
<span>职位</span>
<span>经纪人</span>
</li>
<li>
<span>任职起始时间</span>
<span>2018-5-23</span>
</li>
<li>
<span>任职结束时间</span>
<span>2019-5-23</span>
</li>
</ul>
</div>
<footer class="fixed" (click)="next()">
保存并下一步
</footer>
</div>
\ No newline at end of file
.wrapper {
font-size: 15px;
background: #fff;
min-height: 100%;
select{
-webkit-appearance: none;
}
.title{
padding: 10px 13px 0 13px;
display: flex;
justify-content: space-between;
font-weight: bold;
align-items: center;
}
.content {
padding: 10px 5px;
position: relative;
.contentDetail {
.contentItem {
display: flex;
justify-content: space-between;
align-items: center;
margin: 0 8px 5px 8px;
> span:first-child{
white-space: nowrap;
}
input.form-control,select.form-control {
display: inline-block;
// width: 60%;
margin: 0 5px;
background: none;
outline: none;
border: none;
text-align: right;
box-shadow: none;
display: flex;
flex-wrap: wrap;
font-size: 16px;
direction: rtl;
}
input[type="date"]{
margin-right: -4.5%;
direction: rtl;
}
}
.contentItem:last-child {
border-bottom: none;
}
select.form-control[disabled] {
background-color: transparent;
color: #999;
}
}
.contentDetail.employ .contentItem{
padding: 10px 0;
border-bottom: 1px #e8e8e8 solid;
margin: 0 8px 0 8px;
}
}
.add_wrapper {
display: flex;
justify-content: center;
margin-top: 10px;
flex-direction: column;
align-items: center;
.iconfont{
width: 55px;
height: 55px;
line-height: 55px;
border-radius: 50%;
color: #fff;
background: #C81B1E;
text-align: center;
font-size: 40px;
}
span{
color: #8D8D8D;
font-size: 13px;
margin: 10px auto;
}
}
.experience_list{
background:#F8F8F8;
padding: 10px 13px;
ul li{
display: flex;
justify-content: space-between;
height: 25px;
align-items: center;
}
}
}
\ No newline at end of file
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { WorkExperienceComponent } from './work-experience.component';
describe('WorkExperienceComponent', () => {
let component: WorkExperienceComponent;
let fixture: ComponentFixture<WorkExperienceComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ WorkExperienceComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(WorkExperienceComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from '@angular/core';
import { MyService } from '../../my.service';
import { ActivatedRoute,Router } from "@angular/router";
import { LifeCommonService } from "../../../common/life-common.service";
@Component({
selector: 'ydlife-work-experience',
templateUrl: './work-experience.component.html',
styleUrls: ['./work-experience.component.scss']
})
export class WorkExperienceComponent implements OnInit {
hiringBasicInfoId:any;
constructor(private activatedRoute: ActivatedRoute,
private router: Router,public lifeCommonService:LifeCommonService,
public myService:MyService) { }
ngOnInit() {
const title = this.activatedRoute.snapshot.data[0]['title'];
this.lifeCommonService.setTitle(title);
this.hiringBasicInfoId = this.activatedRoute.snapshot.queryParams.hiringBasicInfoId?this.activatedRoute.snapshot.queryParams.hiringBasicInfoId:null;
}
next(){
this.router.navigate(['/personal_photos'],{ queryParams: { hiringBasicInfoId:this.hiringBasicInfoId} });
}
}
...@@ -30,6 +30,15 @@ import { AddTaskComponent } from './add-task/add-task.component'; ...@@ -30,6 +30,15 @@ import { AddTaskComponent } from './add-task/add-task.component';
import { MedicalServiceComponent } from './medical-service/medical-service.component'; import { MedicalServiceComponent } from './medical-service/medical-service.component';
import { InvitationComponent } from './application-process/invitation/invitation.component'; import { InvitationComponent } from './application-process/invitation/invitation.component';
import { RegisterComponent } from './application-process/register/register.component'; import { RegisterComponent } from './application-process/register/register.component';
import { EmployeeInfoComponent } from './application-process/employee-info/employee-info.component';
import { EmployeeBasicInfoComponent } from './application-process/employee-basic-info/employee-basic-info.component';
import { WorkExperienceComponent } from './application-process/work-experience/work-experience.component';
import { PersonalPhotosComponent } from './application-process/personal-photos/personal-photos.component';
import { EmployeeIdCardComponent } from './application-process/employee-id-card/employee-id-card.component';
import { EmployeeEducationComponent } from './application-process/employee-education/employee-education.component';
import { PersonalStatementComponent } from './application-process/personal-statement/personal-statement.component';
import { SignatureComponent } from './application-process/signature/signature.component';
import { EmployeeSubmitComponent } from './application-process/employee-submit/employee-submit.component';
const myRoutes: Routes = [ const myRoutes: Routes = [
{ path: '', component: MyCenterHomeComponent, canActivate: [AuthGuard], data: [{ title: '银盾保险经纪 - 工作台' }] }, { path: '', component: MyCenterHomeComponent, canActivate: [AuthGuard], data: [{ title: '银盾保险经纪 - 工作台' }] },
...@@ -63,9 +72,19 @@ const myRoutes: Routes = [ ...@@ -63,9 +72,19 @@ const myRoutes: Routes = [
{ path: 'todo', component: TodoListComponent, canActivate: [AuthGuard] }, { path: 'todo', component: TodoListComponent, canActivate: [AuthGuard] },
{ path: 'addtask',component:AddTaskComponent,canActivate:[AuthGuard]}, { path: 'addtask',component:AddTaskComponent,canActivate:[AuthGuard]},
{ path: 'medical_service',component:MedicalServiceComponent,canActivate:[AuthGuard]}, { path: 'medical_service',component:MedicalServiceComponent,canActivate:[AuthGuard]},
{ path: 'inviter' ,component:InvitationComponent,canActivate:[AuthGuard],data:[{type:'inviter'}]}, { path: 'inviter' ,component:InvitationComponent,canActivate:[AuthGuard],data:[{type:'inviter',title: '邀请函'}]},
{ path: 'invitees' ,component:InvitationComponent,data:[{type:'invitees'}]}, { path: 'invitees' ,component:InvitationComponent,data:[{type:'invitees',title: '邀请函'}]},
{ path: 'register' ,component:RegisterComponent} { path: 'register' ,component:RegisterComponent,data: [{ title: '注册信息' }]},
{ path: 'employee_info',component:EmployeeInfoComponent,data: [{ title: '银盾经纪人报聘' }]},
{ path: 'employee_basic_info',component:EmployeeBasicInfoComponent,data: [{ title: '银盾经纪人报聘' }] },
{ path: 'work_experience',component:WorkExperienceComponent,data: [{ title: '银盾经纪人报聘' }] },
{ path: 'personal_photos',component:PersonalPhotosComponent,data: [{ title: '银盾经纪人报聘' }] },
{ path: 'employee_id_card',component:EmployeeIdCardComponent,data: [{ title: '银盾经纪人报聘' }] },
{ path: 'employee_education',component:EmployeeEducationComponent,data: [{ title: '银盾经纪人报聘' }] },
{ path: 'personal_statement',component:PersonalStatementComponent,data: [{ type:'personal_statement',title: '银盾经纪人报聘' }] },
{ path: 'contract',component:PersonalStatementComponent,data: [{ type:'contract',title: '银盾经纪人报聘' }] },
{ path: 'signature',component:SignatureComponent,data: [{ title: '银盾经纪人报聘' }]},
{ path: 'employee_submit',component:EmployeeSubmitComponent,data: [{ title: '已提交' }]}
]; ];
@NgModule({ @NgModule({
......
...@@ -38,9 +38,18 @@ import { NgZorroAntdMobileModule, ModalServiceComponent, ToastComponent } from ' ...@@ -38,9 +38,18 @@ import { NgZorroAntdMobileModule, ModalServiceComponent, ToastComponent } from '
import {NgxEchartsModule} from 'ngx-echarts'; import {NgxEchartsModule} from 'ngx-echarts';
import { MedicalServiceComponent } from './medical-service/medical-service.component'; import { MedicalServiceComponent } from './medical-service/medical-service.component';
import { InvitationComponent } from './application-process/invitation/invitation.component'; import { InvitationComponent } from './application-process/invitation/invitation.component';
import { RegisterComponent } from './application-process/register/register.component' import { RegisterComponent } from './application-process/register/register.component';
import { EmployeeInfoComponent } from './application-process/employee-info/employee-info.component';
import { EmployeeBasicInfoComponent } from './application-process/employee-basic-info/employee-basic-info.component';
import { WorkExperienceComponent } from './application-process/work-experience/work-experience.component';
import { PersonalPhotosComponent } from './application-process/personal-photos/personal-photos.component';
import { EmployeeIdCardComponent } from './application-process/employee-id-card/employee-id-card.component';
import { EmployeeEducationComponent } from './application-process/employee-education/employee-education.component';
import { PersonalStatementComponent } from './application-process/personal-statement/personal-statement.component';
import { SignatureComponent } from './application-process/signature/signature.component';
import { EmployeeSubmitComponent } from './application-process/employee-submit/employee-submit.component'
@NgModule({ @NgModule({
declarations: [MyCenterHomeComponent, MkMaterialComponent, MkMaterialDetailComponent, FileUploadComponent, ImportantAnnouncementComponent, SalesDetailComponent, AnnouncementDetailComponent, MyBusinessComponent, MyBusinessDetailComponent, PickerComponent, MyToastComponent, SalesRankComponent, TeamRankComponent, RecruitingComponent, RecruitingDetailComponent, ThanksComponent, MySettingComponent, MySettingDetailComponent, MyNewsComponent, MyTargetComponent, TeamPanelComponent, SwitchNumberPipe, TeamSalesScoreComponent, ScoreDetailsComponent, BusinessCardComponent, OrderDetailComponent, SalaryComponent, TodoListComponent, AddTaskComponent, MedicalServiceComponent, InvitationComponent, RegisterComponent], 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],
imports: [ imports: [
CommonModule, CommonModule,
LifeCommonModule, LifeCommonModule,
......
...@@ -399,4 +399,18 @@ export class MyService { ...@@ -399,4 +399,18 @@ export class MyService {
return this.http return this.http
.post(url, JSON.stringify(param)); .post(url, JSON.stringify(param));
} }
//查询报聘信息
queryMembershipByHiringBasicInfoId(param){
const url = this.ydapi + '/practitionerHiring/queryMembershipByHiringBasicInfoId';
return this.http
.post(url, JSON.stringify(param));
}
//证件类型&保险公司&产品险种查询接口
erpInitialize(){
const url = this.API + "/erp/erpInitialize";
return this.http
.post(url, JSON.stringify({}));
}
} }
...@@ -180,9 +180,6 @@ ...@@ -180,9 +180,6 @@
</div> </div>
</div> </div>
</div> </div>
<!-- <footer *ngIf="selectedId===4;" (click)="invite()">
确认
</footer> -->
<footer *ngIf="selectedId===4;" (click)="saveMembership()"> <footer *ngIf="selectedId===4;" (click)="saveMembership()">
确认 确认
</footer> </footer>
......
...@@ -44,7 +44,7 @@ export class RecruitingDetailComponent implements OnInit { ...@@ -44,7 +44,7 @@ export class RecruitingDetailComponent implements OnInit {
isPC: any; isPC: any;
practitionerLevelInfos:Array<any>; practitionerLevelInfos:Array<any>;
practitionerList:Array<any>; practitionerList:Array<any>;
hiringBasicInfoId:any;
constructor( constructor(
private activateRoute: ActivatedRoute, private activateRoute: ActivatedRoute,
public lifeCommonService: LifeCommonService, public lifeCommonService: LifeCommonService,
...@@ -437,14 +437,25 @@ export class RecruitingDetailComponent implements OnInit { ...@@ -437,14 +437,25 @@ export class RecruitingDetailComponent implements OnInit {
} }
saveMembership(){ saveMembership(){
console.log(this.employQuery) if(this.employQuery.mdDropOptionId != 30){
if(!this.employQuery.mentorPractitionerId || !this.employQuery.mentor){
this.toastDialog = true;
this.toastInfo = {
status: 1,
msg: 'S2级别一下,辅导人不可以为空!',
timeout: 3000,
align: 'center'
};
return;
}
}
this.employQuery = { this.employQuery = {
...this.employQuery, ...this.employQuery,
loginId: JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId'] loginId: JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId']
} }
this.myService.saveMembership(this.employQuery).subscribe((res)=>{ this.myService.saveMembership(this.employQuery).subscribe((res)=>{
console.log(res)
if(res['success']){ if(res['success']){
this.hiringBasicInfoId = res['data']['hiringBasicInfoId']
this.invite(); this.invite();
}else{ }else{
alert(res['message']); alert(res['message']);
...@@ -453,7 +464,7 @@ export class RecruitingDetailComponent implements OnInit { ...@@ -453,7 +464,7 @@ export class RecruitingDetailComponent implements OnInit {
} }
invite(){ invite(){
this.router.navigate(['/inviter'], { queryParams: { name: this.employQuery.name } }); this.router.navigate(['/inviter'], { queryParams: { name: this.employQuery.name ,hiringBasicInfoId:this.hiringBasicInfoId} });
} }
/** /**
......
...@@ -31,6 +31,18 @@ ...@@ -31,6 +31,18 @@
<ul class="icon_lists dib-box"> <ul class="icon_lists dib-box">
<li class="dib"> <li class="dib">
<span class="icon iconfont">&#xe67f;</span>
<div class="name">勾勾</div>
<div class="code-name">&amp;#xe67f;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe67e;</span>
<div class="name">复选项未选中</div>
<div class="code-name">&amp;#xe67e;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe72f;</span> <span class="icon iconfont">&#xe72f;</span>
<div class="name">专家</div> <div class="name">专家</div>
<div class="code-name">&amp;#xe72f;</div> <div class="code-name">&amp;#xe72f;</div>
...@@ -1095,6 +1107,24 @@ ...@@ -1095,6 +1107,24 @@
<ul class="icon_lists dib-box"> <ul class="icon_lists dib-box">
<li class="dib"> <li class="dib">
<span class="icon iconfont icon-gougou"></span>
<div class="name">
勾勾
</div>
<div class="code-name">.icon-gougou
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-fuxuanxiangweixuanzhong"></span>
<div class="name">
复选项未选中
</div>
<div class="code-name">.icon-fuxuanxiangweixuanzhong
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-zhuanjia"></span> <span class="icon iconfont icon-zhuanjia"></span>
<div class="name"> <div class="name">
专家 专家
...@@ -2646,6 +2676,22 @@ ...@@ -2646,6 +2676,22 @@
<li class="dib"> <li class="dib">
<svg class="icon svg-icon" aria-hidden="true"> <svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-gougou"></use>
</svg>
<div class="name">勾勾</div>
<div class="code-name">#icon-gougou</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-fuxuanxiangweixuanzhong"></use>
</svg>
<div class="name">复选项未选中</div>
<div class="code-name">#icon-fuxuanxiangweixuanzhong</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-zhuanjia"></use> <use xlink:href="#icon-zhuanjia"></use>
</svg> </svg>
<div class="name">专家</div> <div class="name">专家</div>
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -6,6 +6,20 @@ ...@@ -6,6 +6,20 @@
"description": "", "description": "",
"glyphs": [ "glyphs": [
{ {
"icon_id": "699358",
"name": "勾勾",
"font_class": "gougou",
"unicode": "e67f",
"unicode_decimal": 59007
},
{
"icon_id": "12316681",
"name": "复选项未选中",
"font_class": "fuxuanxiangweixuanzhong",
"unicode": "e67e",
"unicode_decimal": 59006
},
{
"icon_id": "9622768", "icon_id": "9622768",
"name": "专家", "name": "专家",
"font_class": "zhuanjia", "font_class": "zhuanjia",
......
...@@ -20,6 +20,12 @@ Created by iconfont ...@@ -20,6 +20,12 @@ Created by iconfont
/> />
<missing-glyph /> <missing-glyph />
<glyph glyph-name="gougou" unicode="&#59007;" d="M1476.470467 745.577209 688.633041-42.260217C685.780224-54.315666 679.867532-65.795951 670.45784-75.205644L637.926532-107.736952C610.985823-134.700667 567.273316-134.700667 540.332607-107.736952L533.03952-100.466872C533.016514-100.420859 532.9705-100.397852 532.924487-100.351839L500.393179-67.820531C500.347166-67.774518 500.324159-67.728504 500.278146-67.705498L19.739648 412.833C-7.20106 439.796715-7.20106 483.486216 19.739648 510.449931L52.270956 542.98124C79.234672 569.944955 122.924173 569.944955 149.887888 542.98124L581.744456 111.124671 1346.322227 875.725449C1373.285942 902.689164 1416.975443 902.689164 1443.939158 875.725449L1476.470467 843.194141C1503.434182 816.230425 1503.434182 772.540924 1476.470467 745.577209Z" horiz-adv-x="1497" />
<glyph glyph-name="fuxuanxiangweixuanzhong" unicode="&#59006;" d="M910.4-61.9H112.2c-25.7 0-46.6 20.9-46.6 46.6V782.9c0 25.7 20.9 46.6 46.6 46.6h798.2c25.7 0 46.6-20.9 46.6-46.6v-798.2c0-25.7-20.9-46.6-46.6-46.6zM112.2 789.5c-3.7 0-6.7-3-6.7-6.7v-798.2c0-3.7 3-6.7 6.7-6.7h798.2c3.7 0 6.7 3 6.7 6.7V782.9c0 3.7-3 6.7-6.7 6.7H112.2z" horiz-adv-x="1024" />
<glyph glyph-name="zhuanjia" unicode="&#59183;" d="M523.693 602.436c-0.577 0-1.154 0-1.73 0.082l-213.987 30.075c-5.685 0.824-9.97 5.356-10.464 11.041-0.495 5.686 3.049 10.96 8.404 12.69l213.987 68.307c2.307 0.742 4.696 0.742 7.003 0.165l219.26-61.304c5.52-1.565 9.228-6.674 8.899-12.36-0.33-5.685-4.532-10.464-10.135-11.37L525.67 602.6c-0.659-0.082-1.318-0.164-1.977-0.164zM364.336 649.32l159.192-22.33 163.641 27.686L523.94 700.24 364.336 649.32zM518.42 526.63c-80.668 0-132.578 24.225-135.792 25.708-4.202 2.06-6.921 6.345-6.921 11.041v68.39a12.167 12.167 0 0 0 12.195 12.195 12.167 12.167 0 0 0 12.195-12.195v-60.232c25.955-9.97 122.195-40.21 245.791 0.576V625.26c0 6.756 5.438 12.195 12.195 12.195s12.195-5.439 12.195-12.195v-61.88c0-5.192-3.296-9.806-8.157-11.536-53.641-18.87-102.42-25.214-143.702-25.214z m6.344-147.162c-64.764 0-117.499 52.735-117.499 117.499a12.167 12.167 0 0 0 12.195 12.195 12.167 12.167 0 0 0 12.195-12.195c0-51.334 41.775-93.027 93.027-93.027s93.026 41.776 93.026 93.027c0 6.757 5.439 12.195 12.195 12.195s12.195-5.438 12.195-12.195c0.165-64.847-52.487-117.499-117.334-117.499zM807.882 43.04a12.167 12.167 0 0 0-12.195 12.194c0 143.784-79.514 268.451-197.919 310.227-47.955 16.973-100.36 18.457-148.892 4.367-121.207-35.02-206.818-158.368-211.35-302.399h473.456c6.757 0 12.195-5.438 12.195-12.195s-5.438-12.195-12.195-12.195H225.084a12.167 12.167 0 0 0-12.194 12.195c0 160.016 94.262 299.103 229.23 338.077 53.393 15.408 111.071 13.76 163.805-4.862C734.054 343.296 820.16 209.317 820.16 55.234c0-6.756-5.52-12.195-12.277-12.195zM412.786 484.442c-16.48 0-28.757 4.531-36.585 13.595-11.123 12.854-7.91 28.84-7.498 30.57a12.183 12.183 0 0 0 14.585 9.228c6.509-1.483 10.629-7.91 9.228-14.42-0.082-0.33-0.989-5.932 2.225-9.475 3.625-4.038 12.03-5.686 23.813-4.78 6.921 0.495 12.606-4.531 13.1-11.205 0.495-6.757-4.531-12.607-11.205-13.102-2.637-0.33-5.191-0.411-7.663-0.411z m226.51 0c-2.471 0-5.026 0.082-7.662 0.33-6.757 0.493-11.7 6.426-11.207 13.1 0.495 6.674 6.18 11.783 13.102 11.206 11.782-0.906 20.187 0.824 23.813 4.78 3.295 3.707 2.224 9.475 2.224 9.558-1.236 6.509 2.967 13.018 9.476 14.337 6.51 1.318 12.936-2.637 14.337-9.146 0.412-1.813 3.626-17.716-7.498-30.57-7.828-8.981-20.105-13.595-36.585-13.595zM524.764 214.673c-4.614 0-8.734 2.555-10.876 6.674l-79.267 154.66c-3.049 6.015-0.741 13.349 5.274 16.398 5.932 3.13 13.348 0.741 16.397-5.274l68.472-133.484L591.012 382.6c3.048 5.933 10.382 8.322 16.397 5.274 6.015-3.049 8.322-10.465 5.273-16.397L535.64 221.347c-2.06-4.037-6.262-6.674-10.876-6.674zM309.707 462.854a6.084 6.084 0 0 0-6.098 6.098V644.706c0 3.378 2.72 6.097 6.098 6.097s6.097-2.72 6.097-6.097v-175.754a6.084 6.084 0 0 0-6.097-6.098zM297.512 442.502a12.195 12.195 0 1 1 24.39 0 12.195 12.195 0 1 1-24.39 0zM297.512 410.862a12.195 12.195 0 1 1 24.39 0 12.195 12.195 0 1 1-24.39 0z" horiz-adv-x="1024" /> <glyph glyph-name="zhuanjia" unicode="&#59183;" d="M523.693 602.436c-0.577 0-1.154 0-1.73 0.082l-213.987 30.075c-5.685 0.824-9.97 5.356-10.464 11.041-0.495 5.686 3.049 10.96 8.404 12.69l213.987 68.307c2.307 0.742 4.696 0.742 7.003 0.165l219.26-61.304c5.52-1.565 9.228-6.674 8.899-12.36-0.33-5.685-4.532-10.464-10.135-11.37L525.67 602.6c-0.659-0.082-1.318-0.164-1.977-0.164zM364.336 649.32l159.192-22.33 163.641 27.686L523.94 700.24 364.336 649.32zM518.42 526.63c-80.668 0-132.578 24.225-135.792 25.708-4.202 2.06-6.921 6.345-6.921 11.041v68.39a12.167 12.167 0 0 0 12.195 12.195 12.167 12.167 0 0 0 12.195-12.195v-60.232c25.955-9.97 122.195-40.21 245.791 0.576V625.26c0 6.756 5.438 12.195 12.195 12.195s12.195-5.439 12.195-12.195v-61.88c0-5.192-3.296-9.806-8.157-11.536-53.641-18.87-102.42-25.214-143.702-25.214z m6.344-147.162c-64.764 0-117.499 52.735-117.499 117.499a12.167 12.167 0 0 0 12.195 12.195 12.167 12.167 0 0 0 12.195-12.195c0-51.334 41.775-93.027 93.027-93.027s93.026 41.776 93.026 93.027c0 6.757 5.439 12.195 12.195 12.195s12.195-5.438 12.195-12.195c0.165-64.847-52.487-117.499-117.334-117.499zM807.882 43.04a12.167 12.167 0 0 0-12.195 12.194c0 143.784-79.514 268.451-197.919 310.227-47.955 16.973-100.36 18.457-148.892 4.367-121.207-35.02-206.818-158.368-211.35-302.399h473.456c6.757 0 12.195-5.438 12.195-12.195s-5.438-12.195-12.195-12.195H225.084a12.167 12.167 0 0 0-12.194 12.195c0 160.016 94.262 299.103 229.23 338.077 53.393 15.408 111.071 13.76 163.805-4.862C734.054 343.296 820.16 209.317 820.16 55.234c0-6.756-5.52-12.195-12.277-12.195zM412.786 484.442c-16.48 0-28.757 4.531-36.585 13.595-11.123 12.854-7.91 28.84-7.498 30.57a12.183 12.183 0 0 0 14.585 9.228c6.509-1.483 10.629-7.91 9.228-14.42-0.082-0.33-0.989-5.932 2.225-9.475 3.625-4.038 12.03-5.686 23.813-4.78 6.921 0.495 12.606-4.531 13.1-11.205 0.495-6.757-4.531-12.607-11.205-13.102-2.637-0.33-5.191-0.411-7.663-0.411z m226.51 0c-2.471 0-5.026 0.082-7.662 0.33-6.757 0.493-11.7 6.426-11.207 13.1 0.495 6.674 6.18 11.783 13.102 11.206 11.782-0.906 20.187 0.824 23.813 4.78 3.295 3.707 2.224 9.475 2.224 9.558-1.236 6.509 2.967 13.018 9.476 14.337 6.51 1.318 12.936-2.637 14.337-9.146 0.412-1.813 3.626-17.716-7.498-30.57-7.828-8.981-20.105-13.595-36.585-13.595zM524.764 214.673c-4.614 0-8.734 2.555-10.876 6.674l-79.267 154.66c-3.049 6.015-0.741 13.349 5.274 16.398 5.932 3.13 13.348 0.741 16.397-5.274l68.472-133.484L591.012 382.6c3.048 5.933 10.382 8.322 16.397 5.274 6.015-3.049 8.322-10.465 5.273-16.397L535.64 221.347c-2.06-4.037-6.262-6.674-10.876-6.674zM309.707 462.854a6.084 6.084 0 0 0-6.098 6.098V644.706c0 3.378 2.72 6.097 6.098 6.097s6.097-2.72 6.097-6.097v-175.754a6.084 6.084 0 0 0-6.097-6.098zM297.512 442.502a12.195 12.195 0 1 1 24.39 0 12.195 12.195 0 1 1-24.39 0zM297.512 410.862a12.195 12.195 0 1 1 24.39 0 12.195 12.195 0 1 1-24.39 0z" horiz-adv-x="1024" />
......
...@@ -151,7 +151,6 @@ input::placeholder { ...@@ -151,7 +151,6 @@ input::placeholder {
footer{ footer{
width: 100%; width: 100%;
margin-top: 15px;
background: #C81B1E; background: #C81B1E;
color: #fff; color: #fff;
font-size: 18px; font-size: 18px;
...@@ -160,6 +159,25 @@ footer{ ...@@ -160,6 +159,25 @@ footer{
height: 40px; height: 40px;
line-height: 40px; line-height: 40px;
text-align: center; text-align: center;
margin: 0 auto;
margin-top: 15px;
}
footer.fixed{
position: fixed;
bottom: 0;
left: 0;
height: 56px;
line-height: 56px;
border-radius: 0;
}
.page_mark{
width: 40px;
height: 20px;
background: #C81B1E;
color: #fff;
text-align: center;
line-height: 20px;
font-size: 14px;
} }
@keyframes slowUp { @keyframes slowUp {
0% { 0% {
......
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