Commit 92b442f8 by Chao Sun

我的增员

parent 07cdf86e
......@@ -3,7 +3,7 @@
"version": "0.0.0",
"scripts": {
"ng": "ng",
"start": "ng serve --host 192.168.1.169",
"start": "ng serve --host 192.168.1.25",
"build": "ng build -c=dev --prod",
"test": "ng test",
"lint": "ng lint",
......@@ -48,4 +48,4 @@
"tslint": "~5.11.0",
"typescript": "~3.2.2"
}
}
}
\ No newline at end of file
......@@ -153,39 +153,4 @@ export class LifeCommonService {
return str.replace(/<[^>]+>/g, "");//去掉所有的html标记
}
checkStr(str) {
if (str == '0') {
return '待跟进';
}
if (str == '95') {
return '打电话';
}
if (str == '96') {
return '加微信沟通';
}
if (str == '97') {
return '约好见面';
}
if (str == '98') {
return '邀请参加活动';
}
if (str == '99') {
return '提交建议书';
}
if (str == '100') {
return '方案解读';
}
if (str == '101') {
return '成交';
}
if (str == '102') {
return '拒绝';
}
if (str == '103') {
return '客户还在考虑';
}
if (str == '104') {
return '客户买了其他';
}
}
}
export class RecruitingQuery {
constructor(
public name?: string,
public gender?: any,
public age?: string,
public mobileNo?: string,
public wechatId?: string,
public qqId?: string,
public otherContacts?: string,
public educationLevel?: string,
public resourceDropMasterId?: string,
public introducer?: string,
public tag?: string,
public remark?: string,
public ossPathResume?: string,
public assignedId?: string,
public operateUserId?: string,
public potentialId?: string
) {
}
}
\ No newline at end of file
import {Component, ElementRef, OnInit, ViewChild} from '@angular/core';
import {ActivatedRoute} from '@angular/router';
import {environment} from '../../../environments/environment';
import {LifeCommonService} from '../../common/life-common.service';
import {MyService} from '../my.service';
import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { environment } from '../../../environments/environment';
import { LifeCommonService } from '../../common/life-common.service';
import { MyService } from '../my.service';
declare var QRCode: any;
......@@ -35,8 +35,8 @@ export class MkMaterialDetailComponent implements OnInit {
isNameShow: number;
constructor(private activateRoute: ActivatedRoute,
private lifeCommonService: LifeCommonService,
private myService: MyService) {
private lifeCommonService: LifeCommonService,
private myService: MyService) {
}
ngOnInit() {
......@@ -71,7 +71,7 @@ export class MkMaterialDetailComponent implements OnInit {
if (this.lifeCustomerInfo.practitionerBasicInfo.headImagePath) {
avatarImg.src = this.lifeCustomerInfo.practitionerBasicInfo.headImagePath + '?v=' + new Date().getTime();
} else {
avatarImg.src = `${environment.ORIGINNAME}/assets/img/meng.png?v=${new Date().getTime()}`;
avatarImg.src = `${environment.DOMAINNAME}/assets/img/meng.png?v=${new Date().getTime()}`;
}
// 这里的第一张图片就是可以是你们的海报 这里注意绘制的顺序 我们要手动控制
img.src = this.productPosterPath;
......@@ -226,7 +226,7 @@ export class MkMaterialDetailComponent implements OnInit {
shareCode: shareCodeUuid,
customerId: this.lifeCustomerInfo.customerId,
productId: this.materialItemId,
url: `${environment.ORIGINNAME}/life/${this.materialItemId}?shareCode=${shareCodeUuid}`
url: `${environment.DOMAINNAME}/life/${this.materialItemId}?shareCode=${shareCodeUuid}`
};
if (itemType == '2') {
this.shareInfo.productId = null;
......@@ -235,9 +235,9 @@ export class MkMaterialDetailComponent implements OnInit {
// 0是有plan,1是无plan
if (posterInfo.isPlan == '0') {
if (posterInfo.productCategoryId == '2') {
this.shareInfo.url = `${environment.ORIGINNAME}/hProductDetail/${this.materialItemId}?shareCode=${shareCodeUuid}&type=7`;
this.shareInfo.url = `${environment.DOMAINNAME}/hProductDetail/${this.materialItemId}?shareCode=${shareCodeUuid}&type=7`;
} else if (posterInfo.productCategoryId == '5') {
this.shareInfo.url = `${environment.ORIGINNAME}/hProductDetail/${this.materialItemId}?shareCode=${shareCodeUuid}&type=9`;
this.shareInfo.url = `${environment.DOMAINNAME}/hProductDetail/${this.materialItemId}?shareCode=${shareCodeUuid}&type=9`;
}
}
// 发送请求保存分享码
......
......@@ -12,7 +12,7 @@
<i class="iconfont icon-bianji" *ngIf="readonlyFlag" (click)="editInfo()"></i>
<i class="iconfont icon-save" *ngIf="!readonlyFlag" (click)="saveInfo()"></i>
<div class="contentDetail">
<div class="first">
<div class="wrapper_item">
<div class="contentItem">
<span>姓名</span>
<input class="form-control" type="text" placeholder="{{readonlyFlag ?'暂无姓名':'请输入姓名'}}"
......@@ -34,9 +34,25 @@
</button>
</div>
<input class="form-control" type="text" placeholder="暂无性别信息" *ngIf="!sexFlag" disabled />
</div>
<div class="contentItem">
<span>城市</span>
<input class="form-control" type="text" placeholder="{{readonlyFlag ?'暂无城市信息':'请输入城市'}}"
[(ngModel)]="editBusiness.address" [disabled]="readonlyFlag" (blur)="inputBlur()" />
</div>
<div class="contentItem">
<span>血型</span>
<input class="form-control" type="text" placeholder="{{readonlyFlag ?'暂无血型信息':'请选择血型'}}"
[disabled]="readonlyFlag" (blur)="inputBlur()" />
</div>
<div class="contentItem">
<span>星座</span>
<input class="form-control" type="text" placeholder="{{readonlyFlag ?'暂无星座信息':'请选择星座'}}"
[disabled]="readonlyFlag" (blur)="inputBlur()" />
</div>
</div>
<div class="wrapper_item">
<div class="contentItem">
<span>手机</span>
<a style="text-decoration:none;color: #333;margin-right: 16px;" href="tel:{{editBusiness.mobileNo}}">
<i class="iconfont icon-dianhua" style="color: #e10d0d;"></i>
......@@ -54,39 +70,59 @@
<input class="form-control" type="text" placeholder="{{readonlyFlag ?'暂无其他联系方式':'请输入其他联系方式'}}"
[(ngModel)]="editBusiness.otherContacts" [disabled]="readonlyFlag" (blur)="inputBlur()" />
</div>
</div>
<div class="wrapper_item">
<div class="contentItem">
<span>城市</span>
<input class="form-control" type="text" placeholder="{{readonlyFlag ?'暂无城市信息':'请输入城市'}}"
[(ngModel)]="editBusiness.address" [disabled]="readonlyFlag" (blur)="inputBlur()" />
<span>预计FYP</span>
<input class="form-control" type="text" placeholder="{{readonlyFlag ?'暂无预计FYP':'请输入预计FYP'}}"
[disabled]="readonlyFlag" />
</div>
</div>
<div class="second">
<div class="contentItem">
<span>城市</span>
<input class="form-control" type="text" placeholder="{{readonlyFlag ?'暂无城市信息':'请输入城市'}}"
[(ngModel)]="editBusiness.address" [disabled]="readonlyFlag" (blur)="inputBlur()" />
<span>预计FYC</span>
<input class="form-control" type="text" placeholder="{{readonlyFlag ?'暂无预计FYC':'请输入预计FYP'}}"
[disabled]="readonlyFlag" />
</div>
<div class="contentItem">
<span>预计成交件数</span>
<input class="form-control" type="text" placeholder="{{readonlyFlag ?'暂无预计件数':'请输入预计件数'}}"
[disabled]="readonlyFlag" />
</div>
<div class="contentItem">
<span>预计成交时间</span>
<input class="form-control" type="text" placeholder="{{readonlyFlag ?'暂无预计成交时间':'请输入预计成交时间'}}"
[disabled]="readonlyFlag" />
</div>
</div>
<div class="contentItem">
<span>商机来源</span>
<input class="form-control" type="text" [(ngModel)]="editBusiness.sourceChannel" disabled />
</div>
<div class="contentItem">
<span>商机时间</span>
<input class="form-control" type="text" placeholder="商机时间" [(ngModel)]="editBusiness.opportunityDate"
disabled />
</div>
<div class="contentItem">
<span>商机状态</span>
<div style="padding: 6px 15px;padding: 6px 15px;color: #e10d0d;font-weight: bold;">
{{lifeCommonService.checkStr(editBusiness.mdDropOptionId)}}</div>
<div class="wrapper_item">
<div class="contentItem">
<span>商机来源</span>
<input class="form-control" type="text" [(ngModel)]="editBusiness.sourceChannel" disabled />
</div>
<div class="contentItem">
<span>商机时间</span>
<input class="form-control" type="text" placeholder="商机时间" [(ngModel)]="editBusiness.opportunityDate"
disabled />
</div>
<div class="contentItem">
<span>商机状态</span>
<div style="padding: 6px 15px;padding: 6px 15px;color: #e10d0d;font-weight: bold;">
{{editBusiness.mdDropOptionName?editBusiness.mdDropOptionName:'待跟进'}}</div>
</div>
</div>
<!-- <div class="contentItem">
<span>标签</span>
<input class="form-control" type="text" placeholder="标签" [(ngModel)]="editBusiness.name"
[disabled]="readonlyFlag" />
</div> -->
<div class="wrapper_item" style="border: none;margin-bottom: 0;">
<div class="contentItem">
<span>备注</span>
<div style="padding: 6px 15px;padding: 6px 15px;color: #e10d0d;font-weight: bold;">
{{editBusiness.mdDropOptionName?editBusiness.mdDropOptionName:'待跟进'}}</div>
</div>
</div>
</div>
<div class="tagWrapper">
<div style="width: 100%;height: 34px;line-height: 34px;">标签</div>
......@@ -118,18 +154,11 @@
<li *ngFor="let opportunityRecordItem of opportunityRecordInfos">
<div style="display: flex;justify-content: space-between;">
<div class="updatedAt">{{opportunityRecordItem.noticeDate}}</div>
<div class="opportunityRecordItem">{{lifeCommonService.checkStr(opportunityRecordItem.mdDropOptionId)}}</div>
<div class="opportunityRecordItem">
{{opportunityRecordItem.mdDropOptionName?opportunityRecordItem.mdDropOptionName:'待跟进'}}</div>
</div>
<div class="salesNotice">{{opportunityRecordItem.salesNotice}}</div>
</li>
<!-- 待跟进状态永远显示在列表最下面 -->
<!-- <li>
<div style="display: flex;justify-content: space-between;">
<div>{{(editBusiness.opportunityDate).substr(0,10)}}</div>
<div>{{lifeCommonService.checkStr(editBusiness.mdDropOptionId)}}</div>
</div>
<div class="salesNotice">商机状态</div>
</li> -->
<li>
<div class="salesNotice">{{(editBusiness.opportunityDate).substr(0,10)}}</div>
<div style="display: flex;justify-content: space-between;">
......
......@@ -41,55 +41,61 @@
background: #0767bf;
text-align: center;
bottom: 30px;
left: 42%;
}
.contentDetail {
margin-top: 15px;
.contentItem {
display: flex;
.wrapper_item{
border-bottom: 1px #ddd solid;
margin-bottom: 10px;
justify-content: space-between;
align-items: center;
// border-bottom: 1px #ddd solid;
margin: 0 8px 5px 8px;
> span:first-child{
white-space: nowrap;
}
input.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;
}
.sexWrapper {
.contentItem {
display: flex;
width: 60%;
justify-content: flex-end;
padding-right: 3px;
.form-control.sex {
width: 20%;
margin-left: 5px;
margin-bottom: 10px;
justify-content: space-between;
align-items: center;
// border-bottom: 1px #ddd solid;
margin: 0 8px 5px 8px;
> span:first-child{
white-space: nowrap;
}
input.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;
}
.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;
}
.form-control.sex.sexBtn {
border: 1px #0767bf solid;
}
.form-control[disabled] {
background-color: transparent;
opacity: 1;
}
.contentItem:last-child {
border-bottom: none;
}
}
.contentItem:last-child {
border-bottom: none;
}
}
.tagWrapper {
display: flex;
......@@ -126,6 +132,7 @@
font-size: 28px;
// color: #ff5933;
font-weight: bold;
}
}
.answerContent {
......
......@@ -4,6 +4,7 @@ import { ActivatedRoute } from "@angular/router";
import { BusinessQuery } from '../../domain/businessQuery';
import { LifeCommonService } from '../../common/life-common.service';
@Component({
selector: 'ydlife-my-business-detail',
templateUrl: './my-business-detail.component.html',
......@@ -50,6 +51,8 @@ export class MyBusinessDetailComponent implements OnInit {
isShow: boolean;
//线索id
leadsAssignedId: string;
//控制tab可不可点
clickFlag: boolean;
constructor(private activateRoute: ActivatedRoute, private myService: MyService,
public lifeCommonService: LifeCommonService) {
this.titleList = [
......@@ -66,11 +69,24 @@ export class MyBusinessDetailComponent implements OnInit {
this.leadsAssignedId = this.activateRoute.snapshot.queryParams['leadsAssignedId'];
this.opportunityRecordId = null;
this.tagQuery();
this.selectTab(1);
this.dropOptionsQuery();
setTimeout(() => {
this.ownOpportunityDetailQuery();
}, 300)
//新增商机
if (Number(this.opportunityId) === 0) {
this.readonlyFlag = false;
this.sexFlag = true;
this.maleFlag = true;
this.femaleFlag = true;
this.clickFlag = false;
this.selectTab(1);
} else {
this.clickFlag = true;
this.selectTab(1);
//查询商机
setTimeout(() => {
this.ownOpportunityDetailQuery();
}, 300)
}
}
//改为编辑状态出现男女选项
......@@ -82,12 +98,17 @@ export class MyBusinessDetailComponent implements OnInit {
}
selectTab(id) {
this.selectedId = id;
if (id === 4) {
if (this.isCompletedQuestionnaire == 3) {
window.location.href = `https://${window.location.host}/customizedPlanList/3?orderId=${this.orderId}&customerId=${this.opportunityId}`
if (this.clickFlag == true) {
this.selectedId = id;
if (id === 4) {
if (this.isCompletedQuestionnaire == 3) {
window.location.href = `https://${window.location.host}/customizedPlanList/3?orderId=${this.orderId}&customerId=${this.opportunityId}`
}
}
} else {
this.selectedId = 1;
}
}
ownOpportunityDetailQuery() {
......
......@@ -18,7 +18,7 @@
</div>
<div class="line">
<div> 手机号:{{businessItem.mobileNo}}</div>
<div>{{this.lifeCommonService.checkStr(businessItem.mdDropOptionId)}}</div>
<div>{{businessItem.mdDropOptionName ? businessItem.mdDropOptionName:'待跟进'}}</div>
</div>
<div class="line">
<div>商机来源:{{businessItem.opportunityFrom}}</div>
......@@ -26,4 +26,7 @@
</div>
</div>
</div>
<div class="add">
<i class="iconfont icon-jiahao" (click)="addBussiness()"></i>
</div>
</div>
\ No newline at end of file
......@@ -45,4 +45,24 @@
border-bottom: none;
}
}
.add {
position: absolute;
.iconfont {
width: 55px;
height: 55px;
line-height: 55px;
border-radius: 50%;
position: fixed;
right: 10px;
font-size: 24px;
color: #fff;
background: #0767bf;
text-align: center;
bottom: 50px;
font-size: 28px;
// color: #ff5933;
font-weight: bold;
left: 42%;
}
}
}
\ No newline at end of file
import { Component, OnInit } from '@angular/core';
import { MyService } from '../my.service';
import { LifeCommonService } from '../../common/life-common.service';
import { Router } from "@angular/router";
@Component({
selector: 'ydlife-my-business',
templateUrl: './my-business.component.html',
......@@ -8,7 +9,7 @@ import { LifeCommonService } from '../../common/life-common.service';
})
export class MyBusinessComponent implements OnInit {
businessList: Array<any>;
constructor(private myService: MyService, public lifeCommonService: LifeCommonService) { }
constructor(private myService: MyService, public lifeCommonService: LifeCommonService, private router: Router) { }
ngOnInit() {
this.ownOpportunityQuery()
......@@ -27,5 +28,7 @@ export class MyBusinessComponent implements OnInit {
})
}
addBussiness() {
this.router.navigate(['/business/0']);
}
}
import { Component, OnInit, ViewChild, ElementRef, AfterViewInit } from '@angular/core';
import { Router } from "@angular/router";
import { Router, ActivatedRoute } from "@angular/router";
import { LifeCommonService } from "../../common/life-common.service";
import { environment } from "../../../environments/environment";
import { MyService } from "../my.service";
......@@ -37,14 +37,26 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
private router: Router,
private lifeCommonService: LifeCommonService,
private myService: MyService,
private ls: LocalStorage
private ls: LocalStorage,
private activatedRoute: ActivatedRoute,
) {
}
ngOnInit() {
const title = this.activatedRoute.snapshot.data[0]['title'];
this.lifeCommonService.setTitle(title);
this.deviceType = this.lifeCommonService.checkDeviceType();
this.lifeCustomerInfo = JSON.parse(localStorage.getItem('lifeCustomerInfo')) ? JSON.parse(localStorage.getItem('lifeCustomerInfo')) : null;
this.announcementQuery();
this.performanceList = [
{ name: '本月', time: 1 },
{ name: '季度', time: 3 },
{ name: '本年度', time: 2 }
]
//初始化调本月线上 保费+ 本月线下保费
this.rank(1, 1, 1)
this.rank(1, 2, 1)
this.recommendPlanQuery();
this.subordinateSystemMemberQuery();
setTimeout(() => {
this.menuLists = [
......@@ -96,17 +108,6 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
];
}, 300)
this.performanceList = [
{ name: '本月', time: 1 },
{ name: '季度', time: 3 },
{ name: '本年度', time: 2 }
]
//初始化调本月线上 保费+ 本月线下保费
this.rank(1, 1, 1)
this.rank(1, 2, 1)
this.recommendPlanQuery();
}
ngAfterViewInit() {
......
......@@ -20,7 +20,7 @@ import { MySettingDetailComponent } from './my-setting-detail/my-setting-detail.
import { MyNewsComponent } from './my-news/my-news.component';
const myRoutes: Routes = [
{ path: '', component: MyCenterHomeComponent, canActivate: [AuthGuard] },
{ path: '', component: MyCenterHomeComponent, canActivate: [AuthGuard], data: [{ title: '银盾保险经纪 - 工作台' }] },
{ path: 'material', component: MkMaterialComponent, canActivate: [AuthGuard] },
{ path: 'material/:itemId', component: MkMaterialDetailComponent, canActivate: [AuthGuard] },
{ path: 'fileUpload', component: FileUploadComponent, canActivate: [AuthGuard], data: [{ type: 'fileUpload' }] },
......
......@@ -27,14 +27,14 @@ export class MyService {
// 重要公告
announcementQuery(id, announcementTypeId) {
const url = this.API + '/announcementQuery';
const url = this.ydapi + '/market/announcementQuery';
return this.http
.post(url, JSON.stringify({ id: id, announcementTypeId: announcementTypeId }));
}
// 产品海报
posterQuery(paginationInfo) {
const url = this.API + '/posterQuery';
const url = this.ydapi + '/market/posterQuery';
return this.http
.post(url, JSON.stringify(paginationInfo));
}
......@@ -157,7 +157,6 @@ export class MyService {
return this.http.post(url, JSON.stringify(param));
}
//排行榜
rank(param) {
const url = this.ydapi + '/practitioner/rank';
......@@ -165,4 +164,29 @@ export class MyService {
.post(url, JSON.stringify(param));
}
//新增增员接口
recruit(param) {
const url = this.ydapi + '/practitioner/recruitTrackQuery';
return this.http
.post(url, JSON.stringify(param));
}
//创建增员跟进记录
addRecruitTrack(param) {
const url = this.ydapi + '/practitioner/recruitTrackQuery';
return this.http
.post(url, JSON.stringify(param));
}
//增员查询跟进接口
recruitTrackQuery(param) {
const url = this.ydapi + '/practitioner/recruitTrackQuery';
return this.http
.post(url, JSON.stringify(param));
}
// 教育等级查询
educationLevelQuery() {
const url = this.API + '/metadata/educationLevelQuery';
return this.http.get(url);
}
}
......@@ -15,20 +15,20 @@
<div class="contentItem">
<span>姓名</span>
<input class="form-control" type="text" placeholder="{{readonlyFlag ?'暂无姓名':'请输入姓名'}}"
[(ngModel)]="editBusiness.name" [disabled]="readonlyFlag" />
[(ngModel)]="editRecruiting.name" [disabled]="readonlyFlag" />
</div>
<div class="contentItem">
<span>年龄</span>
<input class="form-control" type="text" placeholder="{{readonlyFlag ?'暂无年龄信息':'请输入年龄'}}"
[(ngModel)]="editBusiness.age" [disabled]="readonlyFlag" />
[(ngModel)]="editRecruiting.age" [disabled]="readonlyFlag" />
</div>
<div class="contentItem">
<span>性别</span>
<div class="sexWrapper">
<button class="form-control sex" [ngClass]="{'sexBtn':editBusiness?.gender=='1' && maleFlag && femaleFlag}"
<button class="form-control sex" [ngClass]="{'sexBtn':editRecruiting?.gender=='1' && maleFlag && femaleFlag}"
(click)="selectedGender('1')" [disabled]="readonlyFlag" *ngIf="sexFlag && maleFlag">
</button>
<button class="form-control sex" [ngClass]="{'sexBtn':editBusiness?.gender=='2' && maleFlag && femaleFlag}"
<button class="form-control sex" [ngClass]="{'sexBtn':editRecruiting?.gender=='2' && maleFlag && femaleFlag}"
(click)="selectedGender('2')" [disabled]="readonlyFlag" *ngIf="sexFlag && femaleFlag">
</button>
</div>
......@@ -37,46 +37,48 @@
</div>
<div class="contentItem">
<span>手机</span>
<a style="text-decoration:none;color: #333;margin-right: 16px;" href="tel:{{editBusiness.mobileNo}}">
<a style="text-decoration:none;color: #333;margin-right: 16px;" href="tel:{{editRecruiting.mobileNo}}">
<i class="iconfont icon-dianhua" style="color: #e10d0d;"></i>
{{editBusiness.mobileNo}}</a>
<!-- <input class="form-control" type="text" [(ngModel)]="editBusiness.mobileNo" disabled /> -->
{{editRecruiting.mobileNo}}</a>
<!-- <input class="form-control" type="text" [(ngModel)]="editRecruiting.mobileNo" disabled /> -->
</div>
<div class="contentItem">
<span>微信</span>
<input class="form-control" type="text" placeholder="{{readonlyFlag ?'暂无微信':'请输入微信'}}"
[(ngModel)]="editBusiness.weChat" [disabled]="readonlyFlag" (blur)="inputBlur()" />
[(ngModel)]="editRecruiting.weChat" [disabled]="readonlyFlag" (blur)="inputBlur()" />
</div>
<div class="contentItem">
<span>其他联系</span>
<input class="form-control" type="text" placeholder="{{readonlyFlag ?'暂无其他联系方式':'请输入其他联系方式'}}"
[(ngModel)]="editBusiness.otherContacts" [disabled]="readonlyFlag" (blur)="inputBlur()" />
[(ngModel)]="editRecruiting.otherContacts" [disabled]="readonlyFlag" (blur)="inputBlur()" />
</div>
<div class="contentItem">
<span>学历</span>
<input class="form-control" type="text" [(ngModel)]="editBusiness.sourceChannel"
placeholder="{{readonlyFlag ?'暂无学历信息':'请选择学历'}}" [disabled]="readonlyFlag" />
<select class="form-control" [(ngModel)]="editRecruiting.educationLevel" [disabled]="readonlyFlag"
style=" direction: rtl;">
<option value=''>请选择学历</option>
<option *ngFor="let educationLevelItem of educationLevelList" [value]="educationLevelItem.id">
{{educationLevelItem.name}}
</option>
</select>
</div>
<div class="contentItem">
<span>招募来源</span>
<input class="form-control" type="text" [(ngModel)]="editBusiness.sourceChannel" disabled />
<input class="form-control" type="text" [(ngModel)]="editRecruiting.sourceChannel" disabled />
</div>
<div class="contentItem">
<span>时间</span>
<input class="form-control" type="text" placeholder="商机时间" [(ngModel)]="editBusiness.opportunityDate"
<input class="form-control" type="text" placeholder="增员创建时间" [(ngModel)]="editRecruiting.opportunityDate"
disabled />
</div>
<div class="contentItem">
<span>商机状态</span>
<span>增员状态</span>
<div style="padding: 6px 15px;padding: 6px 15px;color: #e10d0d;font-weight: bold;">
{{lifeCommonService.checkStr(editBusiness.mdDropOptionId)}}</div>
{{editRecruiting.mdDropOptionId}}</div>
</div>
</div>
</div>
<div class="content" *ngIf="selectedId===2">
<div style="text-align: center;font-size: 16px;margin-top: 10px;"
......@@ -101,9 +103,9 @@
<div class="salesNotice">{{opportunityRecordItem.salesNotice}}</div>
</li>
<li>
<div class="salesNotice">{{editBusiness.opportunityDate}}</div>
<div class="salesNotice">{{editRecruiting.opportunityDate}}</div>
<div style="display: flex;justify-content: space-between;">
<div>商机状态</div>
<div>增员状态</div>
<div>待跟进</div>
</div>
</li>
......@@ -118,13 +120,13 @@
<!--编辑框-->
<div class="editContainer" *ngIf="isShow">
<div>
<div>跟进状态</div>
<div>增员状态</div>
<div style="position:relative">
<select name="businessStatus" (onChange)="inputBlur()" id="businessStatus" class="form-control"
[(ngModel)]="opportunityRecordId">
[(ngModel)]="trackStatusId">
<option value="null">请选择</option>
<option *ngFor="let businessStatusItem of businessStatusList" value="{{businessStatusItem.id}}">
{{businessStatusItem.dropOptionName}}
<option *ngFor="let recruitingStatusItem of recruitingStatusList" value="{{recruitingStatusItem.id}}">
{{recruitingStatusItem.dropOptionName}}
</option>
</select>
<i class="iconfont icon-xiangxia" style="position: absolute;right: 50px;top: 5px;"></i>
......@@ -132,7 +134,7 @@
</div>
<div>
<div>备注</div>
<div><input type="text" id="remark" class="form-control" placeholder="输入备注信息" [(ngModel)]="salesNotice"
<div><input type="text" id="remark" class="form-control" placeholder="输入备注信息" [(ngModel)]="notice"
(blur)="inputBlur()"></div>
</div>
<div>
......@@ -141,7 +143,7 @@
[(ngModel)]="opportunityRecordNoticeDate" (blur)="inputBlur()"></div>
</div>
<ul class="footer">
<li (click)="ownOpportunityRecordSave()">确定</li>
<li (click)="addRecruitTrack()">确定</li>
<li (click)="this.isShow = false;">取消</li>
</ul>
</div>
......
......@@ -54,7 +54,7 @@
> span:first-child{
white-space: nowrap;
}
input.form-control {
input.form-control,select.form-control {
display: inline-block;
// width: 60%;
margin: 0 5px;
......@@ -66,7 +66,6 @@
display: flex;
flex-wrap: wrap;
}
.sexWrapper {
display: flex;
width: 60%;
......
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from "@angular/router";
import { BusinessQuery } from '../../domain/businessQuery';
import { LifeCommonService } from '../../common/life-common.service';
import { MyService } from '../my.service';
import { RecruitingQuery } from '../../domain/recruitingQuery';
@Component({
selector: 'ydlife-recruiting-detail',
......@@ -9,11 +10,12 @@ import { LifeCommonService } from '../../common/life-common.service';
styleUrls: ['./recruiting-detail.component.scss']
})
export class RecruitingDetailComponent implements OnInit {
editRecruiting: RecruitingQuery = new RecruitingQuery();
//潜在增员的id
id: string;
titleList: Array<any>;
selectedId: number;
editBusiness: BusinessQuery = new BusinessQuery();
readonlyFlag: boolean = true;
//性别显示
sexFlag: boolean;
......@@ -22,10 +24,17 @@ export class RecruitingDetailComponent implements OnInit {
//显示男
maleFlag: boolean;
isShow: boolean;
recruitingStatusList: Array<any>;
//控制tab可不可点
clickFlag: boolean;
educationLevelList: Array<any>;
//新增增员记录的备注
notice: any;
trackStatusId: any;
constructor(
private activateRoute: ActivatedRoute,
public lifeCommonService: LifeCommonService) {
public lifeCommonService: LifeCommonService,
private myService: MyService) {
this.titleList = [
{ id: 1, name: '基本信息' },
{ id: 2, name: '简历' },
......@@ -36,11 +45,29 @@ export class RecruitingDetailComponent implements OnInit {
ngOnInit() {
this.id = this.activateRoute.snapshot.paramMap.get('id');
console.log(this.id)
this.selectTab(1);
this.dropOptionsQuery();
this.educationLevelQuery();
if (Number(this.id) === 0) {
this.readonlyFlag = false;
this.sexFlag = true;
this.maleFlag = true;
this.femaleFlag = true;
this.clickFlag = false;
this.editRecruiting = new RecruitingQuery('', 1, '', '', '', '', '', '', '', null, '', '', '', '', '');
this.selectTab(1);
} else {
this.clickFlag = true;
this.selectTab(1);
}
}
selectTab(id) {
this.selectedId = id;
if (this.clickFlag == true) {
this.selectedId = id;
} else {
this.selectedId = 1;
}
}
//改为编辑状态出现男女选项
......@@ -53,7 +80,59 @@ export class RecruitingDetailComponent implements OnInit {
//选男女
selectedGender(e) {
this.editBusiness.gender = e;
this.editRecruiting.gender = e;
}
//查询跟进记录
recruitTrackQuery() {
const param = {
potentialId: null,
practitionerId: JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId']
}
this.myService.recruitTrackQuery(param).subscribe((res) => {
console.log(res)
})
}
//跟进状态列表
dropOptionsQuery() {
this.myService.dropOptionsQuery({ code: 'team_biulding_track' }).subscribe((res) => {
if (res['success']) {
this.recruitingStatusList = res['data']['dropMasterInfoList']['0']['dropOptionsInfoList'];
}
})
}
// 教育等级查询
educationLevelQuery() {
this.myService.educationLevelQuery().subscribe(res => {
if (res['success']) {
this.educationLevelList = res['data']['educationLevelList']
}
})
}
inputBlur() {
window.scrollTo(0, 0)
}
//创建增员跟进记录
addRecruitTrack() {
const RecruitTrackParam = {
potentialId: 26,//测试先写死小小仙女
practitionerId: JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId'],
notice: this.notice,
trackStatusId: this.trackStatusId
}
this.myService.addRecruitTrack(RecruitTrackParam).subscribe((res) => {
console.log(res)
if (res['success']) {
} else {
}
})
}
}
<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="businessList?.length==0">暂无商机</div>
<div class="salesItem" *ngFor="let recruitingItem of recruitingList"
......
......@@ -3,6 +3,28 @@
height: 100%;
overflow: auto;
// background:#f7f7f2;
.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;
......
import { Component, OnInit } from '@angular/core';
import { Router } from "@angular/router";
import { MyService } from '../my.service';
@Component({
selector: 'ydlife-recruiting',
templateUrl: './recruiting.component.html',
......@@ -7,14 +9,20 @@ import { Router } from "@angular/router";
})
export class RecruitingComponent implements OnInit {
recruitingList: Array<any>;
constructor(private router: Router) { }
titleList: Array<any>;
selectedId: any;
constructor(private router: Router, private myService: MyService) { }
ngOnInit() {
this.titleList = [
{ id: 1, name: '待跟进' },
{ id: 2, name: '跟进中' },
{ id: 4, name: '已报聘' },
]
this.recruitingList = [
{ id: 1, name: '月亮', mobileNo: '18100000000', sources: 'boss直聘', status: '有意向', date: '2020-01-12' },
{ id: 2, name: '太阳', mobileNo: '18100000001', sources: '拉钩网', status: '有意向', date: '2020-01-12' },
{ id: 3, name: '星星', mobileNo: '18100000002', sources: '拉钩网', status: '考虑加入', date: '2020-01-12' },
]
}
......@@ -22,5 +30,10 @@ export class RecruitingComponent implements OnInit {
this.router.navigate(['/recruiting/0']);
}
selectTab(id) {
console.log(id)
}
}
......@@ -2,5 +2,6 @@ export const environment = {
production: true,
BACKEND_URL_CONFIG_VALUE: 'https://m.zuihuibi.cn/api',
ORIGINNAME: 'https://m.zuihuibi.cn/ydapi',
DOMAINNAME: 'https://m.zuihuibi.cn/',
BAIDU_TONGJI_CODE: '36b1eb7eec3b5dac9f97d887092b5b27'
};
......@@ -5,5 +5,6 @@ export const environment = {
production: true,
BACKEND_URL_CONFIG_VALUE: 'https://mstage.zuihuibi.cn/api',
ORIGINNAME: 'https://mstage.zuihuibi.cn/ydapi',
DOMAINNAME: 'https://mstage.zuihuibi.cn/',
BAIDU_TONGJI_CODE: '84be9b9eaaca51048f32bb160ccad2e6'
};
......@@ -7,5 +7,6 @@ export const environment = {
production: false,
BACKEND_URL_CONFIG_VALUE: 'https://mdev.zuihuibi.cn/api',
ORIGINNAME: 'https://mdev.zuihuibi.cn/ydapi',
DOMAINNAME: 'https://mdev.zuihuibi.cn/',
BAIDU_TONGJI_CODE: 'e8fa107d82e0471d097d545225aeed64'
};
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