Commit 58254264 by zeyang

1.优化赢家平台 商机跟进的时间选择样式和校验

2.赢家平台嵌入SFP智能财策页面
parent ba982ef6
......@@ -21,31 +21,32 @@
<div class="contentItem">
<span>出生日期</span>
<div>
<ListItem
DatePicker
[mode]="'date'"
[disabled]="readonlyFlag"
[minDate]="minDate"
[maxDate] = "today"
[(ngModel)]="editBusiness.birthDate"
(onOk)="onOk($event)">
<Brief *ngIf="!readonlyFlag">{{editBusiness.birthDate ? (editBusiness.birthDate | date:'yyyy-MM-dd') : '请输入出生日期'}}</Brief>
<Brief *ngIf="readonlyFlag">{{editBusiness.birthDate ? (editBusiness.birthDate | date:'yyyy-MM-dd') : '暂无出生日期信息'}}</Brief>
<ListItem DatePicker [mode]="'date'" [disabled]="readonlyFlag" [minDate]="minDate"
[maxDate]="today" [(ngModel)]="editBusiness.birthDate" (onOk)="onOk($event)">
<Brief *ngIf="!readonlyFlag">
{{editBusiness.birthDate ? (editBusiness.birthDate | date:'yyyy-MM-dd') : '请输入出生日期'}}
</Brief>
<Brief *ngIf="readonlyFlag">
{{editBusiness.birthDate ? (editBusiness.birthDate | date:'yyyy-MM-dd') : '暂无出生日期信息'}}
</Brief>
</ListItem>
</div>
</div>
<div class="contentItem">
<span>年龄</span>
<input class="form-control" type="text" placeholder="{{readonlyFlag ?'暂无年龄信息':'请输入年龄'}}"
[(ngModel)]="editBusiness.age" [disabled]="readonlyFlag || editBusiness.birthDate" (blur)="inputBlur()" />
[(ngModel)]="editBusiness.age" [disabled]="readonlyFlag || editBusiness.birthDate"
(blur)="inputBlur()" />
</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':editBusiness?.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':editBusiness?.gender=='2' && maleFlag && femaleFlag}"
(click)="selectedGender('2')" [disabled]="readonlyFlag" *ngIf="sexFlag && femaleFlag">
</button>
</div>
......@@ -62,7 +63,8 @@
[(ngModel)]="editBusiness.bloodTypeId" (blur)="inputBlur()">
<option value="">{{readonlyFlag ?'暂无血型信息':'请选择血型'}}</option>
<option *ngFor="let businessBloodItem of businessBloodList" [value]="businessBloodItem.id">
{{businessBloodItem.dropOptionName}}</option>
{{businessBloodItem.dropOptionName}}
</option>
</select>
<!--<input class="form-control" type="text" placeholder="{{readonlyFlag ?'暂无血型信息':'请选择血型'}}"-->
<!--[disabled]="readonlyFlag" [(ngModel)]="editBusiness.bloodTypeId" (blur)="inputBlur()" />-->
......@@ -73,7 +75,8 @@
[(ngModel)]="editBusiness.zodiacTypeId" (blur)="inputBlur()">
<option value="">{{readonlyFlag ?'暂无星座信息':'请选择星座'}}</option>
<option *ngFor="let businessZodiacItem of businessZodiacList" [value]="businessZodiacItem.id">
{{businessZodiacItem.dropOptionName}}</option>
{{businessZodiacItem.dropOptionName}}
</option>
</select>
<!--<input class="form-control" type="text" placeholder="{{readonlyFlag ?'暂无星座信息':'请选择星座'}}"-->
<!--[disabled]="readonlyFlag" [(ngModel)]="editBusiness.zodiacTypeId" (blur)="inputBlur()" />-->
......@@ -131,20 +134,23 @@
[(ngModel)]="editBusiness.sourceFrom" [disabled]="readonlyFlag" (blur)="inputBlur()">
<option value="">{{readonlyFlag ?'暂无商机来源':'请选择商机来源'}}</option>
<option *ngFor="let businessSourceItem of businessSourceList" [value]="businessSourceItem.id">
{{businessSourceItem.dropOptionName}}</option>
{{businessSourceItem.dropOptionName}}
</option>
</select>
<input *ngIf="opportunityId!=0" class="form-control" type="text" [(ngModel)]="editBusiness.sourceChannel"
disabled placeholder="{{editBusiness.sourceChannel ?editBusiness.sourceChannel:'暂无商机来源'}}" />
<input *ngIf="opportunityId!=0" class="form-control" type="text"
[(ngModel)]="editBusiness.sourceChannel" disabled
placeholder="{{editBusiness.sourceChannel ?editBusiness.sourceChannel:'暂无商机来源'}}" />
</div>
<div class="contentItem">
<span>商机时间</span>
<input class="form-control" type="text" placeholder="商机时间" [(ngModel)]="editBusiness.opportunityDate"
disabled />
<input class="form-control" type="text" placeholder="商机时间"
[(ngModel)]="editBusiness.opportunityDate" disabled />
</div>
<div class="contentItem">
<span>商机状态</span>
<div style="padding: 6px 12px;color: #e10d0d;font-weight: bold;">
{{editBusiness.mdDropOptionName?editBusiness.mdDropOptionName:'待跟进'}}</div>
{{editBusiness.mdDropOptionName?editBusiness.mdDropOptionName:'待跟进'}}
</div>
</div>
</div>
<div class="wrapper_item" style="border: none;margin-bottom: 0;">
......@@ -201,11 +207,9 @@
</div>
<!-- SFP咨询问卷 -->
<div class="content" *ngIf="selectedId===2 && isSfpShow == true">
<iframe src="http://localhost:4200/salesDetail" style="height: 100%; width: 100%;flex-grow: 1;">
<iframe class="content" *ngIf="selectedId===2 && isSfpShow == true" [src]="transform(iframeUrl)"
style="width: 100%;flex-grow: 1;border: medium none;">
</iframe>
</div>
<!-- 客户告知书 -->
<div class="content" *ngIf="selectedId===5">
<ydlife-e-notice [agreeFlag]="false"></ydlife-e-notice>
......@@ -220,8 +224,11 @@
<div style="display: flex;justify-content: space-between;height: 25px;">
<div class="updatedAt">{{opportunityRecordItem.noticeDate}}</div>
<div class="opportunityRecordItem">
<a *ngIf="opportunityRecordItem.informedOssPath" href="{{opportunityRecordItem.informedOssPath}}" target="_blank"><i class="iconfont icon-pdf" style="color: #C81B1E;margin-right:5px"></i></a>
<span [ngStyle]="setBackgroundColor(opportunityRecordItem)">{{opportunityRecordItem.mdDropOptionName?opportunityRecordItem.mdDropOptionName:'待跟进'}}</span>
<a *ngIf="opportunityRecordItem.informedOssPath"
href="{{opportunityRecordItem.informedOssPath}}" target="_blank"><i
class="iconfont icon-pdf" style="color: #C81B1E;margin-right:5px"></i></a>
<span
[ngStyle]="setBackgroundColor(opportunityRecordItem)">{{opportunityRecordItem.mdDropOptionName?opportunityRecordItem.mdDropOptionName:'待跟进'}}</span>
</div>
</div>
<div class="salesNotice">
......@@ -278,11 +285,25 @@
[(ngModel)]="opportunityRecordNoticeDate" (blur)="inputBlur()"></div>
</div>
<div *ngIf="isSfpShow">
<div>日程开始时间</div>
<div><input type="text" id="remark" class="form-control" placeholder="输入开始时间" [(ngModel)]="taskTimeFrom" (blur)="inputBlur()"></div>
<div>日程结束时间</div>
<div><input type="text" id="remark" class="form-control" placeholder="输入结束时间" [(ngModel)]="taskTimeEnd" (blur)="inputBlur()"></div>
<div *ngIf="isSfpShow" style="display:flex;font-size: 15px;">
<!-- <div>日程开始/结束时间</div>
<div class="timeContent">
<div class="picker_list">
<PickerView [data]="seasons" [cols]='3' [cascade]="false" [ngModel]="taskTimeFrom" [indicatorStyle]="{'background':'#f6f6f6','border-radius':'50px','z-index':'0'}" (ngModelChange)="onChange($event,1)"></PickerView>
</div>
<div style="color: #d9dadc;width: 10%;text-align: center;">到</div>
<div class="picker_list">
<PickerView [data]="seasons" [cascade]="false" [cols]='3' [ngModel]="taskTimeEnd" [indicatorStyle]="{'background':'#f6f6f6','border-radius':'50px','z-index':'0'}" (ngModelChange)="onChange($event,2)"></PickerView>
</div>
</div> -->
<div>添加日程时间</div>
<div style="display:flex;">
<div style="width:50%"><input type="Time" id="remark" class="form-control" placeholder="输入开始时间" [(ngModel)]="taskTimeFrom"
(blur)="inputBlur()"></div>
<div style="width:50%"><input type="Time" id="remark" class="form-control" placeholder="输入结束时间" [(ngModel)]="taskTimeEnd"
(blur)="inputBlur()"></div>
</div>
</div>
<ul class="footer">
......@@ -298,13 +319,11 @@
<div [ngStyle]="{ height: 300, overflow: 'scroll' }">
<div class="am-list" style="margin:0;">
<div class="am-list-item">
<InputItem [clear]="true"
[value]="editBusiness.name"
<InputItem [clear]="true" [value]="editBusiness.name"
(onChange)="editBusiness.name = $event">姓名:</InputItem>
</div>
<div class="am-list-item">
<InputItem [type]="'phone'"
[value]="editBusiness.mobileNo"
<InputItem [type]="'phone'" [value]="editBusiness.mobileNo"
(onChange)="editBusiness.mobileNo = $event">手机号码:</InputItem>
</div>
<div class="am-list-line" style="color: #999;font-size:12px">
......@@ -315,8 +334,7 @@
<div class="am-list-line">
<div class="am-list-content"
style="width:100%;color:#fff;text-align:center;background-color: #2179AD;border-radius: 20px;margin:18px auto"
(click)="sendENotice()"
>发送</div>
(click)="sendENotice()">发送</div>
</div>
</div>
</div>
......
.wrapper {
padding-bottom: 40px;
font-size: 16px;
background-color: #fff;
min-height: 90vh;
display: flex;
flex-direction: column;
select {
-webkit-appearance: none;
border: none;
box-shadow: none;
}
.tab {
display: flex;
list-style: none;
margin: 10px 0px;
padding-left: 1%;
li {
margin-right: 10px;
line-height: 30px;
......@@ -20,21 +26,25 @@
text-align: center;
border: 1px #a9aabb solid;
border-radius: 20px;
h3 {
font-weight: normal;
font-size: 15px;
}
}
li.selected {
// background-color: #ff5a32;
// color: #fff;
border: 1px #e10d0d solid;
}
}
.content {
padding: 10px 5px;
position: relative;
> .iconfont {
>.iconfont {
width: 55px;
height: 55px;
line-height: 55px;
......@@ -47,20 +57,25 @@
text-align: center;
bottom: 76px;
}
.contentDetail {
margin-top: 15px;
.wrapper_item {
border-bottom: 1px #ddd solid;
margin-bottom: 10px;
.contentItem {
display: flex;
justify-content: space-between;
align-items: center;
// border-bottom: 1px #ddd solid;
margin: 0 8px 5px 8px;
> span:first-child {
>span:first-child {
white-space: nowrap;
}
input.form-control {
// width: 60%;
// margin: 0 5px;
......@@ -73,14 +88,17 @@
flex-wrap: wrap;
font-size: 16px;
}
input::-webkit-input-placeholder{
input::-webkit-input-placeholder {
font-size: 16px;
// color: #0767bf;
}
.sexWrapper {
display: flex;
width: 60%;
justify-content: flex-end;
.form-control.sex {
width: 20%;
margin-left: 5px;
......@@ -88,33 +106,40 @@
box-shadow: none;
font-size: 16px;
}
.form-control.sex.sexBtn {
border: 1px #0767bf solid;
}
.form-control[disabled] {
background-color: transparent;
opacity: 1;
}
}
select.form-control {
direction: rtl;
font-size: 16px;
}
select.form-control[disabled] {
background-color: transparent;
// color: #0767bf;
}
}
.contentItem:last-child {
border-bottom: none;
}
}
}
.tagWrapper {
display: flex;
flex-wrap: wrap;
padding-left: 8px;
div.tagContent {
margin: 10px 3px 0 3px;
height: 28px;
......@@ -125,19 +150,22 @@
font-size: 13px;
padding: 0 15px;
}
div.selected {
border: 1px #0767bf solid;
}
}
.add {
position: absolute;
.iconfont {
width: 55px;
height: 55px;
line-height: 55px;
border-radius: 50%;
position: fixed;
right:42%;
right: 42%;
font-size: 24px;
color: #fff;
background: #0767bf;
......@@ -149,25 +177,31 @@
}
}
.answerContent {
border-bottom: 1px #ddd solid;
margin-bottom: 5px;
padding: 5px 0;
.questionTitle {
font-weight: 700;
font-size: 13px;
}
.questionContent {
font-size: 16px;
}
}
.answerContent:last-child {
border-bottom: 0;
}
.record {
display: flex;
list-style: none;
justify-content: space-between;
li {
width: 30%;
text-align: center;
......@@ -175,7 +209,8 @@
line-height: 30px;
}
}
.viewReportBtn{
.viewReportBtn {
position: fixed;
bottom: 70px;
left: 0;
......@@ -186,11 +221,13 @@
color: #fff;
line-height: 44px;
}
.send{
.send {
position: fixed;
bottom: 80px;
width: 100%;
div{
div {
margin: 0 40px;
height: 40px;
line-height: 40px;
......@@ -218,32 +255,39 @@
min-width: 320px;
max-width: 640px;
margin: 0 auto;
> div {
>div {
height: 50px;
border-bottom: 1px solid #dbdbdb;
display: flex;
align-items: center;
justify-content: space-between;
> div:first-child {
>div:first-child {
width: 100px;
font-size: 15px;
}
> div:last-child {
>div:last-child {
flex: 1;
}
.form-control {
border: none;
box-shadow: none;
}
}
> div:last-child {
>div:last-child {
border: none;
}
ul.footer {
display: flex;
list-style: none;
justify-content: center;
margin-top: 15%;
li {
width: 30%;
height: 35px;
......@@ -256,18 +300,22 @@
}
}
}
.recordLists {
li {
border-bottom: 1px solid #f0f0f0;
padding: 5px 10px;
background: rgb(251, 251, 251);
}
li:last-child {
border: none;
}
.opportunityRecordItem {
font-size: 15px;
}
.salesNotice {
font-size: 14px;
color: #8a8a8a;
......@@ -276,9 +324,13 @@
display: flex;
justify-content: space-between;
align-items: center;
span{
span {
width: 85%;
.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control {
.form-control[disabled],
.form-control[readonly],
fieldset[disabled] .form-control {
background-color: #eee;
opacity: .5;
border: none;
......@@ -287,16 +339,19 @@
padding-left: 0;
}
}
.iconfont{
.iconfont {
font-size: 18px;
}
}
.updatedAt {
// font-size: 12px;
// color: #8a8a8a;
// text-align: right;
}
}
.toast {
position: fixed;
left: 0;
......@@ -307,12 +362,14 @@
margin: 0 auto;
z-index: 1;
}
.toastWrapper {
height: 100%;
background-color: rgba(0, 0, 0, .5);
top: 0;
}
.am-list-item.am-input-item{
.am-list-item.am-input-item {
padding-left: 0;
}
}
\ No newline at end of file
......@@ -3,7 +3,8 @@ import { MyService } from '../my.service';
import { ActivatedRoute, Router } from "@angular/router";
import { BusinessQuery } from '../../domain/businessQuery';
import { LifeCommonService } from '../../common/life-common.service';
import {environment} from '../../../environments/environment';
import { environment } from '../../../environments/environment';
import { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';
@Component({
selector: 'ydlife-my-business-detail',
templateUrl: './my-business-detail.component.html',
......@@ -12,94 +13,131 @@ import {environment} from '../../../environments/environment';
export class MyBusinessDetailComponent implements OnInit {
titleList: Array<any>;
selectedId: number;
surveyAnswersList: Array<any>;
readonlyFlag: boolean = true;
orderId: number;
sfpMainId:number;
opportunityId: number;
opportunitySurveyAnswersList: Array<any>;
tagList: Array<any>;
editBusiness: BusinessQuery = new BusinessQuery();
titleList : Array<any>;
selectedId : number;
surveyAnswersList : Array<any>;
readonlyFlag : boolean = true;
orderId : number;
sfpMainId : number;
opportunityId : number;
opportunitySurveyAnswersList : Array<any>;
tagList : Array<any>;
editBusiness : BusinessQuery = new BusinessQuery();
//商机状态
businessStatusList: Array<any>;
businessStatusList : Array<any>;
//经纪人输入商机来源类型
businessSourceList: Array<any>;
businessSourceList : Array<any>;
//商机星座类型
businessZodiacList: Array<any>;
businessZodiacList : Array<any>;
//商机血型类型
businessBloodList: Array<any>;
cityFlag: boolean;
provinceList: Array<any>;
provinces: Array<any>;
businessBloodList : Array<any>;
cityFlag : boolean;
provinceList : Array<any>;
provinces : Array<any>;
//返回的标签列表
opportunityCustomerTags: Array<any>;
opportunityRecordInfos: Array<any>;
opportunityCustomerTags : Array<any>;
opportunityRecordInfos : Array<any>;
//是否可以跳转预览方案
isCompletedQuestionnaire: any;
isCompletedQuestionnaire : any;
//控制弹框
toastDialog: boolean;
toastInfo: any;
toastDialog : boolean;
toastInfo : any;
// 增加还是保存
addStatus: boolean;
addStatus : boolean;
// 备注信息
salesNotice: string;
salesNotice : string;
// 跟进时间
opportunityRecordNoticeDate: Date;
opportunityRecordNoticeDate : Date;
//跟进开始时间
taskTimeFrom: string;
taskTimeFrom : string;
//跟进结束时间
taskTimeEnd:string;
taskTimeEnd : string;
// 跟进状态
opportunityRecordId: number;
opportunityRecordId : number;
//性别显示
sexFlag: boolean;
sexFlag : boolean;
//显示女
femaleFlag: boolean;
femaleFlag : boolean;
//显示男
maleFlag: boolean;
isShow: boolean;
isSfpShow: boolean;
maleFlag : boolean;
isShow : boolean;
isSfpShow : boolean;
//线索id
leadsAssignedId: any;
leadsAssignedId : any;
//控制tab可不可点
clickFlag: boolean;
remarkId: any;
status: any;
isNeedAlert: boolean;
dialogInfo: any;
practitionerId:any;
clickFlag : boolean;
remarkId : any;
status : any;
isNeedAlert : boolean;
dialogInfo : any;
practitionerId : any;
// 电子告知书弹窗显示
eNoticeState:boolean = false;
deviceType:number;
eNoticeState : boolean = false;
deviceType : number;
// 获取经纪人信息
lifeCustomerInfo:any;
today:Date = new Date();
minDate:Date = new Date('1930-01-01')
constructor(private activateRoute: ActivatedRoute, private myService: MyService,
public lifeCommonService: LifeCommonService, private router: Router, ) {
lifeCustomerInfo : any;
today : Date = new Date();
minDate : Date = new Date('1930-01-01');
iframeUrl : string;
seasons:Array<any>;
constructor(private activateRoute : ActivatedRoute, private myService : MyService,
public lifeCommonService : LifeCommonService, private router : Router, private sanitizer : DomSanitizer,) {
this.titleList = [
{ id: 1, name: '基本信息' },
{ id: 3, name: '商机跟进' },
{ id: 2, name: '咨询问卷' },
// { id: 4, name: '咨询报告' },
{ id: 5, name: '客户告知书' }
]
];
this.seasons = [
{label: '06:00',value:1},{label: '06:30',value:2},
{label: '07:00',value:3},{label: '07:30',value:4},
{label: '08:00',value:5},{label: '08:30',value:6},
{label: '09:00',value:7},{label: '09:30', value:8},
{label: '10:00',value:9},{label: '10:30',value:10},
{label: '11:00',value:11},{label: '11:30',value:12},
{label: '12:00',value:13},{label: '12:30',value:14},
{label: '13:00',value:15},{label: '13:30',value:16},
{label: '14:00',value:17},{label: '14:30',value:18},
{label: '15:00',value:19},{label: '15:30',value:20},
{label: '16:00',value:21},{label: '16:30',value:22},
{label: '17:00',value:23},{label: '17:30',value:24},
{label: '18:00',value:25},{label: '18:30',value:26},
{label: '19:00',value:27},{label: '19:30',value:28},
{label: '20:00',value:29},{label: '20:30',value:30},
{label: '21:00',value:31},{label: '21:30',value:32},
{label: '22:00',value:33},{label: '22:30',value:34},
{label: '23:00',value:35},{label: '23:30',value:36},
{label: '00:00',value:37}
];
}
transform(url : string) : SafeResourceUrl {
return this.sanitizer.bypassSecurityTrustResourceUrl(url);
}
onChange(result,type) {
if(type===1){
this.taskTimeFrom = result;
}
if(type===2){
this.taskTimeEnd = result;
}
}
ngOnInit() {
// 获取设备
this.deviceType = this.lifeCommonService.checkDeviceType();
this.orderId = this.activateRoute.snapshot.queryParams['orderId'];
this.sfpMainId = this.activateRoute.snapshot.queryParams['sfpMainId'];
if(this.sfpMainId){
if (this.sfpMainId) {
this.isSfpShow = true;
}else{
} else {
this.isSfpShow = false;
}
//商机对应的客户id
this.opportunityId = +this.activateRoute.snapshot.paramMap.get('id');
//商机id
this.leadsAssignedId = this.activateRoute.snapshot.queryParams['leadsAssignedId'];
this.opportunityRecordId = null;
......@@ -122,16 +160,16 @@ export class MyBusinessDetailComponent implements OnInit {
this.femaleFlag = true;
this.clickFlag = false;
let myCustomerInfo = JSON.parse(localStorage.getItem('myCustomerInfo'))
if(myCustomerInfo){
let birthDate,age;
if(myCustomerInfo.birthDate){
if (myCustomerInfo) {
let birthDate, age;
if (myCustomerInfo.birthDate) {
birthDate = myCustomerInfo.birthDate.split('-');
age=this.lifeCommonService.ages(birthDate[0],birthDate[1],birthDate[2]).age;
}else{
age = this.lifeCommonService.ages(birthDate[0], birthDate[1], birthDate[2]).age;
} else {
age = null;
}
this.editBusiness = new BusinessQuery("",age, myCustomerInfo.name, myCustomerInfo.gender=='女'?2:1, myCustomerInfo.mobileNo, "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", null);
}else{
this.editBusiness = new BusinessQuery("", age, myCustomerInfo.name, myCustomerInfo.gender == '女' ? 2 : 1, myCustomerInfo.mobileNo, "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", null);
} else {
//初始化新增
this.editBusiness = new BusinessQuery("", "", "", 1, "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", null);
}
......@@ -148,9 +186,9 @@ export class MyBusinessDetailComponent implements OnInit {
}
// 日期选择
onOk(e){
onOk(e) {
console.log(e)
this.editBusiness.age = this.lifeCommonService.ages(e.getFullYear(),e.getMonth() +1,e.getDate()).age;
this.editBusiness.age = this.lifeCommonService.ages(e.getFullYear(), e.getMonth() + 1, e.getDate()).age;
}
//改为编辑状态出现男女选项
......@@ -168,8 +206,8 @@ export class MyBusinessDetailComponent implements OnInit {
this.selectedId = 1;
}
}
// 查看报告
viewReport(){
// 查看报告
viewReport() {
window.location.href = `https://${window.location.host}/customizedPlanList/3?orderId=${this.orderId}&customerId=${this.opportunityId}`
}
......@@ -178,10 +216,12 @@ export class MyBusinessDetailComponent implements OnInit {
opportunityId: this.opportunityId ? Number(this.opportunityId) : null,
orderId: this.orderId ? Number(this.orderId) : null,
practitionerId: this.practitionerId,
sfpMainId:this.sfpMainId ? Number(this.sfpMainId) : null
sfpMainId: this.sfpMainId ? Number(this.sfpMainId) : null
}
this.myService.ownOpportunityDetailQuery(detailParam).subscribe((res) => {
if (res['success']) {
//拼接iframe url
this.iframeUrl = `${environment.SFPPROJECTURL}/SFP/surveyPages/clientSurvey/clientSurveyInfo?sfpMainId=${this.sfpMainId}&userId=${res['data']['opportunityBasicInformationInfo']['sfpUserId']}`
this.opportunitySurveyAnswersList = res['data']['opportunityConsultationInfo']['opportunitySurveyAnswersList']
this.editBusiness = res['data']['opportunityBasicInformationInfo'];
this.opportunityCustomerTags = res['data']['opportunityBasicInformationInfo']['opportunityCustomerTags']
......@@ -441,7 +481,7 @@ export class MyBusinessDetailComponent implements OnInit {
fyp: this.editBusiness.fyp ? Number(this.editBusiness.fyp) : null,
fyc: this.editBusiness.fyc ? Number(this.editBusiness.fyc) : null,
sourceFrom: this.editBusiness.sourceFrom ? Number(this.editBusiness.sourceFrom) : null,
birthDate:this.editBusiness.birthDate ? this.lifeCommonService.dateFormat(this.editBusiness.birthDate,'yyyy-MM-dd') : null
birthDate: this.editBusiness.birthDate ? this.lifeCommonService.dateFormat(this.editBusiness.birthDate, 'yyyy-MM-dd') : null
}
this.myService.ownOpportunityBasicInformationSave(this.editBusiness).subscribe((res) => {
if (res['success']) {
......@@ -475,7 +515,7 @@ export class MyBusinessDetailComponent implements OnInit {
}
}
this.ownOpportunityDetailQuery();
}else{
} else {
this.toastDialog = true;
this.toastInfo = {
status: 1,
......@@ -487,7 +527,7 @@ export class MyBusinessDetailComponent implements OnInit {
})
}
ownOpportunityRecordSave(opportunityRecordItem?: any) {
ownOpportunityRecordSave(opportunityRecordItem ?: any) {
let param;
if (!opportunityRecordItem) {
const oppDate = new Date(this.opportunityRecordNoticeDate + ' 23:59:59').getTime();
......@@ -543,6 +583,41 @@ export class MyBusinessDetailComponent implements OnInit {
};
return;
}
//如果日程时间选择了一个则两个时间都是必填
if(this.taskTimeFrom || this.taskTimeEnd){
if(!this.taskTimeFrom){
this.toastDialog = true;
this.toastInfo = {
status: 1,
msg: '日程开始时间不能为空!',
timeout: 3000,
align: 'center'
};
return;
}
if(!this.taskTimeEnd){
this.toastDialog = true;
this.toastInfo = {
status: 1,
msg: '日程结束时间不能为空!',
timeout: 3000,
align: 'center'
};
return;
}
if(this.taskTimeEnd<this.taskTimeFrom){
this.toastDialog = true;
this.toastInfo = {
status: 1,
msg: '日程结束时间不能早于开始时间!',
timeout: 3000,
align: 'center'
};
return;
}
}
param = {
id: '',
salesNotice: this.salesNotice,
......@@ -552,9 +627,9 @@ export class MyBusinessDetailComponent implements OnInit {
mdDropOptionId: this.opportunityRecordId ? Number(this.opportunityRecordId) : null,
noticeDate: this.opportunityRecordNoticeDate,
leadsAssignedId: this.leadsAssignedId ? Number(this.leadsAssignedId) : null,
sfpMainId:this.sfpMainId ? Number(this.sfpMainId) : null,
taskTimeFrom:this.taskTimeFrom,//跟进开始时间
taskTimeEnd:this.taskTimeEnd//跟进结束时间
sfpMainId: this.sfpMainId ? Number(this.sfpMainId) : null,
taskTimeFrom: this.taskTimeFrom,//跟进开始时间
taskTimeEnd: this.taskTimeEnd//跟进结束时间
}
} else {
......@@ -605,8 +680,8 @@ export class MyBusinessDetailComponent implements OnInit {
}
openPopInfo(message) {
this.myService.applyForExpertSupport({leadsAssignedId:this.leadsAssignedId,practitionerId:this.practitionerId,opportunityId:this.opportunityId}).subscribe((res)=>{
if(res['success']){
this.myService.applyForExpertSupport({ leadsAssignedId: this.leadsAssignedId, practitionerId: this.practitionerId, opportunityId: this.opportunityId }).subscribe((res) => {
if (res['success']) {
this.ownOpportunityDetailQuery();
this.isNeedAlert = true;
this.dialogInfo = {
......@@ -614,7 +689,7 @@ export class MyBusinessDetailComponent implements OnInit {
content: { value: message, align: 'center' },
footer: [{ value: '确认离开', routerLink: '', className: 'weui-dialog__btn_primary' }],
};
}else{
} else {
this.toastDialog = true;
this.toastInfo = {
status: 1,
......@@ -639,23 +714,23 @@ export class MyBusinessDetailComponent implements OnInit {
// 发送电子客户告知书,opportunityIdID = CustomerId
sendENotice(){
sendENotice() {
this.eNoticeState = false;
if(this.deviceType != 3){
if (this.deviceType != 3) {
alert('请在微信公众号中发送邀请');
return;
}
const param = {
 practitionerId:this.lifeCustomerInfo['practitionerId'],
     leadsAssignedId:this.leadsAssignedId,
     customerName: this.editBusiness.name,
     customerId:this.editBusiness.opportunityId,
     customerMobile: this.editBusiness.mobileNo.replace(/\s/g, ''),
loginId:this.lifeCustomerInfo['customerId']
}
this.myService.saveInformedSheet(param).subscribe(res=>{
if(res['success']){
setTimeout(()=>{
practitionerId: this.lifeCustomerInfo['practitionerId'],
leadsAssignedId: this.leadsAssignedId,
customerName: this.editBusiness.name,
customerId: this.editBusiness.opportunityId,
customerMobile: this.editBusiness.mobileNo.replace(/\s/g, ''),
loginId: this.lifeCustomerInfo['customerId']
}
this.myService.saveInformedSheet(param).subscribe(res => {
if (res['success']) {
setTimeout(() => {
const imgUrl = this.lifeCustomerInfo.practitionerBasicInfo.headImagePath ? this.lifeCustomerInfo.practitionerBasicInfo.headImagePath : `${environment.DOMAINNAME}/ydLife/assets/images/icons/meng.png`;
console.log(imgUrl);
this.lifeCommonService.shareStatusPublish(1);
......@@ -664,9 +739,9 @@ export class MyBusinessDetailComponent implements OnInit {
`您的客户告知书和服务委托协议已准备好,请查收并签署,感谢信任和支持。`,
`https://${window.location.host}/ydLife/identify?eNoticeId=${res['data']['id']}`,
imgUrl);
},500)
}, 500)
}else{
} else {
this.toastDialog = true;
this.toastInfo = {
status: 1,
......@@ -680,27 +755,25 @@ export class MyBusinessDetailComponent implements OnInit {
}
// 设置样式
setBackgroundColor(e){
setBackgroundColor(e) {
let bgColor = 'transparent';
let fontColor = '#666';
if(e.informedOssPath && e.status==0){
if (e.informedOssPath && e.status == 0) {
bgColor = '#999999';
fontColor = '#fff';
}else if(e.informedOssPath && e.status==1){
} else if (e.informedOssPath && e.status == 1) {
bgColor = '#C81B1E';
fontColor = '#fff';
}else{
} else {
bgColor = 'transparent';
fontColor = '#666';
}
let style = {
'background-color':bgColor,
'color':fontColor,
'padding':"1px 3px",
'border-radius':"3px"
'background-color': bgColor,
'color': fontColor,
'padding': "1px 3px",
'border-radius': "3px"
};
return style;
}
}
\ No newline at end of file
......@@ -3,5 +3,6 @@ export const environment = {
BACKEND_URL_CONFIG_VALUE: 'https://m.zuihuibi.cn/api',
ORIGINNAME: 'https://m.zuihuibi.cn/ydapi',
DOMAINNAME: 'https://m.zuihuibi.cn/',
BAIDU_TONGJI_CODE: '36b1eb7eec3b5dac9f97d887092b5b27'
BAIDU_TONGJI_CODE: '36b1eb7eec3b5dac9f97d887092b5b27',
SFPPROJECTURL:'https://m.cffp.org.cn'
};
......@@ -6,5 +6,6 @@ export const environment = {
BACKEND_URL_CONFIG_VALUE: 'https://mstage.zuihuibi.cn/api',
ORIGINNAME: 'https://mstage.zuihuibi.cn/ydapi',
DOMAINNAME: 'https://mstage.zuihuibi.cn/',
BAIDU_TONGJI_CODE: '84be9b9eaaca51048f32bb160ccad2e6'
BAIDU_TONGJI_CODE: '84be9b9eaaca51048f32bb160ccad2e6',
SFPPROJECTURL:'https://mstage.zuihuibi.cn'
};
......@@ -8,5 +8,7 @@ export const environment = {
BACKEND_URL_CONFIG_VALUE: 'https://mdev.zuihuibi.cn/api',
ORIGINNAME: 'https://mdev.zuihuibi.cn/ydapi',
DOMAINNAME: 'https://mdev.zuihuibi.cn/',
BAIDU_TONGJI_CODE: 'e8fa107d82e0471d097d545225aeed64'
BAIDU_TONGJI_CODE: 'e8fa107d82e0471d097d545225aeed64',
// SFPPROJECTURL:'http://localhost:5173'
SFPPROJECTURL:'https://mdev.zuihuibi.cn'
};
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