Commit 76400ed3 by sunchao

新增日程

parent bfcac251
export class TrackQuery {
constructor(
public practitionerId?:string,
public notice?:string,
public taskType?:number,
//关联商机id
public referLeadsId?:string,
//关联增员id
public referPotentialId?:string,
public taskImportantTag?:any,
public isActive?:any,
public taskTimeFrom?:Array<any>[],
public taskTimeEnd?:Array<any>[],
//任务长期固定
public taskRoutineAtweek7?:number,
public taskRoutineAtweek6?:number,
public taskRoutineAtweek5?:number,
public taskRoutineAtweek4?:number,
public taskRoutineAtweek3?:number,
public taskRoutineAtweek2?:number,
public taskRoutineAtweek1?:number,
//经纪人商机对应的客户id
public customerId?:string,
public mdDropOptionId?:string,
public trackScore?:string,
//日程时间
public trackTime?:string
) {
}
}
......@@ -35,40 +35,69 @@
<div class="task_content_wrapper">
<div class="part_wrapper part1">
<ul class="part1_list">
<li *ngFor="let salesActivityItem of salesActivityList" [ngClass]="{'selected':mdDropOptionId==salesActivityItem.id}" (click)="selectTask(salesActivityItem.id);">
{{salesActivityItem.dropOptionName}}
</li>
<ng-container *ngFor="let salesActivityItem of salesActivityList">
<li [ngClass]="{'selected':addTrack.mdDropOptionId==salesActivityItem.id}" (click)="selectTask(salesActivityItem.id);"
*ngIf="(addTrack.taskType == 1 && salesActivityItem.id != '102') || (addTrack.taskType == 2 && salesActivityItem.id != '114') || (addTrack.taskType == 3)">
{{salesActivityItem.dropOptionName}}
</li>
</ng-container>
</ul>
<div class="important_mark"> <span [ngClass]="{'circle':taskImportantTag==true}" (click)="taskImportantTag=!taskImportantTag"></span> <div>重要标签</div> </div>
<div class="important_mark"> <span [ngClass]="{'circle':addTrack.taskImportantTag==true}" (click)="addTrack.taskImportantTag=!addTrack.taskImportantTag"></span> <div>重要标签</div> </div>
</div>
<div class="part_wrapper part2">
<div style="font-size: 18px;">选择任务需要的时间</div>
<div class="timeContent">
<div class="picker_list">
<PickerView [data]="seasons" [cascade]="false" [(ngModel)]="taskTimeFrom" (ngModelChange)="onChange($event,1)"></PickerView>
<PickerView [data]="seasons" [cascade]="false" [(ngModel)]="addTrack.taskTimeFrom" (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" [(ngModel)]="taskTimeEnd" (ngModelChange)="onChange($event,2)"></PickerView>
<PickerView [data]="seasons" [cascade]="false" [(ngModel)]="addTrack.taskTimeEnd" (ngModelChange)="onChange($event,2)"></PickerView>
</div>
</div>
</div>
<div class="part_wrapper part3">
<div class="part_wrapper part3" *ngIf="tabType == 'pep_schedule_task_others'">
<div style="margin-bottom: 10px;">任务长期固定在:</div>
<ul class="part3_list">
<li *ngFor="let longTermItem of longTermList" [ngClass]="{'selectedLongTerm':longTermItem.isLongTermTask == true}" (click)="longTermItem.isLongTermTask=!longTermItem.isLongTermTask">
<li [ngClass]="{'selectedLongTerm':addTrack.taskRoutineAtweek1 == 1}" (click)="selectIsLongTermTask(1);">
<span></span>
<div>周一</div>
</li>
<li [ngClass]="{'selectedLongTerm':addTrack.taskRoutineAtweek2 == 1}" (click)="selectIsLongTermTask(2);">
<span></span>
<div>周二</div>
</li>
<li [ngClass]="{'selectedLongTerm':addTrack.taskRoutineAtweek3 == 1}" (click)="selectIsLongTermTask(3);">
<span></span>
<div>周三</div>
</li>
<li [ngClass]="{'selectedLongTerm':addTrack.taskRoutineAtweek4 == 1}" (click)="selectIsLongTermTask(4);">
<span></span>
<div>周四</div>
</li>
<li [ngClass]="{'selectedLongTerm':addTrack.taskRoutineAtweek5 == 1}" (click)="selectIsLongTermTask(5);">
<span></span>
<div>周五</div>
</li>
<li [ngClass]="{'selectedLongTerm':addTrack.taskRoutineAtweek6 == 1}" (click)="selectIsLongTermTask(6);">
<span></span>
<div>周六</div>
</li>
<li [ngClass]="{'selectedLongTerm':addTrack.taskRoutineAtweek7 == 1}" (click)="selectIsLongTermTask(7);">
<span></span>
<div>{{longTermItem.name}}</div>
<div>周天</div>
</li>
</ul>
</div>
<div class="part_wrapper part4" style="margin-bottom: 60px;">
<div class="part_wrapper part4" >
<div style="font-size: 18px;margin-bottom: 10px;">添加备注</div>
<textarea style="border:0;border-radius:5px;background:#f6f6f6;width: 355px;height: 100px;padding: 10px;resize: none;" [(ngModel)]="notice"></textarea>
<textarea style="border:0;border-radius:5px;background:#f6f6f6;width: 100%;height: 100px;padding: 10px;resize: none;" [(ngModel)]="addTrack.notice"></textarea>
</div>
</div>
<div class="footer">添加任务</div>
</div>
<div class="footer" (click)="clickAddTask()">添加任务</div>
<!-- <div class="link_totast_wrapper" *ngIf="linkToastFlag">
<div class="link_mask"></div>
<div class="link_totast_content_wrapper">
......
......@@ -4,6 +4,7 @@ ul,ol{
.todo_wrapper{
background: #fff;
padding-bottom: 60px;
.top{
.head{
display: flex;
......@@ -44,7 +45,7 @@ ul,ol{
.part_wrapper{
margin-top: 20px;
position: relative;
padding: 0 2%;
padding: 0 4%;
ul{
display: flex;
flex-wrap: wrap;
......@@ -116,20 +117,23 @@ ul,ol{
}
}
}
.footer{
width: 100%;
height: 55px;
line-height: 55px;
background: #1b5b99;
color: #fff;
text-align: center;
position: fixed;
bottom: 0;
font-size: 20px;
font-weight: bold;
}
}
.footer{
width: 100%;
min-width: 320px;
max-width: 640px;
height: 55px;
line-height: 55px;
background: #1b5b99;
color: #fff;
text-align: center;
position: fixed;
bottom: 0;
font-size: 20px;
font-weight: bold;
}
.link_totast_wrapper{
.link_mask{
position: fixed;
......
......@@ -36,6 +36,7 @@ export class MyBusinessComponent implements OnInit {
this.showBusinessList = res['data']['ownOpportunityInfos'];
} else {
this.businessList = [];
this.showBusinessList = [];
}
})
}
......@@ -69,12 +70,12 @@ export class MyBusinessComponent implements OnInit {
this.router.navigate(['/addtask/'], { queryParams: { customerId:opportunityId , referLeadsId: leadsAssignedId },state:this.selectedBusiness});
}else{
this.toastDialog = true;
this.toastInfo = {
status: 1,
msg:'请选择您需要关联的商机!',
timeout: 3000,
align: 'center'
};
this.toastInfo = {
status: 1,
msg:'请选择您需要关联的商机!',
timeout: 3000,
align: 'center'
};
return;
}
}
......
......@@ -84,7 +84,7 @@
</div>
<div class="part2">
<div class="part2_item activity_score" routerLink="scoreDeatil">
<div>销售活动量分值</div>
<div>活动量分值</div>
<div style="width: 100%;">
<ul class="activities">
<li class="markPrice">{{this.activities_grade?.scoreDay}}</li>
......@@ -105,7 +105,7 @@
</div>
<div>
<span>数量</span>
<div style="width: 100%;font-size: 20px;font-weight: bold;">3</div>
<div style="width: 100%;font-size: 20px;font-weight: bold;">{{taskLen?.length }}</div>
</div>
</div>
</div>
......
......@@ -6,7 +6,7 @@ import { MyService } from "../my.service";
import { Plans } from '../../domain/plans';
import { User } from '../../domain/user';
import { LocalStorage } from '../../domain/local.storage';
import * as dayjs from 'dayjs';
declare var wx: any;
@Component({
selector: 'ydlife-my-center-home',
......@@ -34,7 +34,7 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
onlineInfo: any;
offlineInfo: any;
activities_grade: any;
taskLen:Array<any> = [];
constructor(
private router: Router,
public lifeCommonService: LifeCommonService,
......@@ -62,6 +62,7 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
//判断是否团队长
this.subordinateSystemMemberQuery();
this.opportunityStatistics();
this.queryScheduleTrackList();
}
ngAfterViewInit() {
......@@ -331,4 +332,15 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
return '第四季度';
}
}
//获取今日任务数量
queryScheduleTrackList(){
this.myService.queryScheduleTrackList({practitionerId:this.lifeCustomerInfo.practitionerId,trackDate:dayjs().format('YYYY-MM-DD')}).subscribe((res)=>{
if(res['success']){
this.taskLen = res['data']['dataList'];
}else{
this.taskLen =[];
}
})
}
}
......@@ -345,4 +345,12 @@ export class MyService {
return this.http
.post(url, JSON.stringify(param));
}
//新增日程
addScheduleTrack(param){
const url = this.ydapi + '/practitioner/addScheduleTrack';
return this.http
.post(url, JSON.stringify(param));
}
}
<div class="salesWrapper">
<ul class="tab">
<div class="search_wrapper" *ngIf="pageType=='linkrecruiting'">
<div class="am-demo-page">
<div class="am-demo-bd" >
<SearchBar [placeholder]="'搜索你的增员'" [maxLength]="8"
(onChange)="change($event)"
></SearchBar>
</div>
</div>
</div>
<ul class="tab" *ngIf="this.pageType == 'recruiting'">
<li *ngFor="let titleItem of titleList" (click)="selectTab(titleItem.id)"
[ngClass]="{selected:selectedId===titleItem.id}">
<div style="position: relative;">
......@@ -10,12 +19,15 @@
</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"
[routerLink]="['/recruiting',recruitingItem.potentialId]" [queryParams]="{status:selectedId}">
<div class="icon_bolck"><span class="iconfont icon-tuanduiguanlisvg"></span></div>
<div class="salesItem" *ngFor="let recruitingItem of showRecruitingList" (click)="isJumpToDetail(recruitingItem.potentialId,recruitingItem)">
<div class="icon_bolck" *ngIf="pageType=='recruiting'"><span class="iconfont icon-tuanduiguanlisvg"></span></div>
<div *ngIf="pageType=='linkrecruiting'" class="linkbusinessRadius">
<span class='circlebtn' *ngIf="selectedRecruiting?.potentialId != recruitingItem.potentialId"></span>
<img src="assets/images/gou_icon.png" *ngIf="selectedRecruiting?.potentialId == recruitingItem.potentialId" style="position: absolute;width: 100%;" >
</div>
<div class="line">
<div>姓名:{{recruitingItem.name}}</div>
<span class="iconfont icon-ar-r" style="font-size: 10px;position: relative; right: -2px;"></span>
<span class="iconfont icon-ar-r" style="font-size: 10px;position: relative; right: -2px;" *ngIf="pageType=='recruiting'"></span>
</div>
<div class="line">
......@@ -28,8 +40,11 @@
</div>
</div>
</div>
<div class="add">
<div class="footer" *ngIf="pageType=='linkrecruiting'" (click)="returnAddTask()">
确认
</div>
<div class="add" *ngIf="pageType=='recruiting'">
<i class="iconfont icon-jiahao" (click)="addMember()"></i>
</div>
</div>
\ No newline at end of file
</div>
<ydlife-toast *ngIf="toastDialog" [toastInfo]="toastInfo"></ydlife-toast>
\ No newline at end of file
......@@ -49,7 +49,20 @@
top: 1px;
}
}
.linkbusinessRadius{
position: absolute;
top: 35%;
left: 10px;
width: 25px;
height: 25px;
.circlebtn{
display: inline-block;
width: 25px;
height: 25px;
border: 1px #707070 solid;
border-radius: 50%;
}
}
.line{
display: flex;
justify-content: space-between;
......@@ -87,4 +100,15 @@
left: 42%;
}
}
.footer{
width: 100%;
height: 50px;
line-height: 50px;
background: #1b5b99;
color: #fff;
font-size: 18px;
position: fixed;
bottom: 0;
text-align: center;
}
}
\ No newline at end of file
import { Component, OnInit } from '@angular/core';
import { Router } from "@angular/router";
import { Router,ActivatedRoute } from "@angular/router";
import { MyService } from '../my.service';
@Component({
......@@ -11,15 +11,28 @@ export class RecruitingComponent implements OnInit {
recruitingList: Array<any>;
titleList: Array<any>;
selectedId: any;
constructor(private router: Router, private myService: MyService) { }
pageType:any;
showRecruitingList:Array<any>;
selectedRecruiting:any;
//控制弹框
toastDialog: boolean;
toastInfo: any;
constructor(private router: Router, private myService: MyService,private activatedRoute: ActivatedRoute) {
this.pageType = this.activatedRoute.snapshot.data[0]['type'];
}
ngOnInit() {
this.titleList = [
{ id: 1, name: '待跟进' },
{ id: 2, name: '跟进中' },
{ id: 3, name: '已报聘' },
]
this.selectTab(1)
//从日程进来的不显示tab
if(this.pageType == 'recruiting'){
this.titleList = [
{ id: 1, name: '待跟进' },
{ id: 2, name: '跟进中' },
{ id: 3, name: '已报聘' },
]
this.selectTab(1);
}else{
this.recruitListQuery(null);
}
}
addMember() {
......@@ -38,8 +51,47 @@ export class RecruitingComponent implements OnInit {
}
this.myService.recruitListQuery(listParam).subscribe((res) => {
if (res['success']) {
this.recruitingList = res['data']['practitionerPotentialInfoList']
this.recruitingList = res['data']['practitionerPotentialInfoList'];
this.showRecruitingList = res['data']['practitionerPotentialInfoList'];
}else{
this.recruitingList = [];
this.showRecruitingList = [];
}
})
}
change(event){
this.showRecruitingList = this.recruitingList.filter((item)=>{
return item.name.indexOf(event) !=-1;
})
}
isJumpToDetail(potentialId,recruitingItem?:any){
if(this.pageType == 'recruiting'){
this.router.navigate([`/recruiting/${potentialId}`], { queryParams: { status: this.selectedId} });
}else{
if(!this.selectedRecruiting){
this.selectedRecruiting = recruitingItem;
}else{
this.selectedRecruiting = undefined;
}
return;
}
}
returnAddTask(){
if(this.selectedRecruiting){
const {potentialId}=this.selectedRecruiting;
this.router.navigate(['/addtask/'], { queryParams: { referPotentialId: potentialId },state:this.selectedRecruiting});
}else{
this.toastDialog = true;
this.toastInfo = {
status: 1,
msg:'请选择您需要关联的增员对象!',
timeout: 3000,
align: 'center'
};
return;
}
}
}
......@@ -33,8 +33,8 @@
</ul>
</div>
<div class="task_wrapper">
<div class="noTask" *ngIf="taskList?.length==0">
<img src="assets/images/noListBg.png" >
<div class="noTask" >
<img src="assets/images/noListBg.png" *ngIf="!taskList?.length">
</div>
<div class="taskList" *ngIf="taskList?.length>0">
<div class="taskTime">
......@@ -44,19 +44,19 @@
</ul>
</div>
<div class="taskContent">
<div class="title">任务数量({{taskList.length}})</div>
<div class="title">任务数量({{taskList?.length}})</div>
<ul>
<li *ngFor="let taskItem of taskList">
<div class="content_wrapper">
<div class="content_card">
<span>{{taskItem.taskTimeFrom}} - {{taskItem.taskTimeEnd}}</span>
<div class="todo_title">
<span *ngIf="taskItem.taskImportantTag">(重要)</span>
<span *ngIf="taskItem.taskImportantTag==1">(重要)</span>
{{taskItem.mdDropOptionName}}
</div>
<div class="notice">{{taskItem.notice}}</div>
</div>
<div class="red" ></div>
<div class="red" *ngIf="taskItem.taskImportantTag==1"></div>
</div>
</li>
</ul>
......
......@@ -2,6 +2,7 @@ ul,ol{
list-style: none;
}
.todo_wrapper{
padding-bottom: 65px;
.top{
padding-bottom: 20px;
background: #fff;
......@@ -45,12 +46,10 @@ ul,ol{
position: relative;
.noTask{
margin-top: 15%;
font-size: 20px;
color: #9a9fb4;
display: flex;
justify-content: center;
width: 100%;
text-align: center;
img{
max-width: 70%;
max-width: 65%;
}
.addtips{
text-align: center;
......@@ -136,7 +135,7 @@ ul,ol{
border-radius: 50%;
color: #fff;
text-align: center;
line-height: 55px;
line-height: 50px;
bottom: -15%;
right: 8%;
.iconfont{
......
import { Component, OnInit } from '@angular/core';
import { LifeCommonService } from '../../common/life-common.service';
import {MyService} from '../my.service';
import * as dayjs from 'dayjs'
import * as dayjs from 'dayjs';
@Component({
selector: 'ydlife-todo-list',
......@@ -29,6 +29,7 @@ export class TodoListComponent implements OnInit {
maxDate: new Date(+new Date() + 31536000000),
onSelect: undefined,
}
practitionerId:number;
constructor(public lifeCommonService: LifeCommonService,private myService:MyService) {
this.taskTimeList = [
{id:1,time:'8:00'},
......@@ -47,10 +48,13 @@ export class TodoListComponent implements OnInit {
}
ngOnInit() {
//进页面清除上次缓存的时间
sessionStorage.removeItem("trackDate");
this.practitionerId = JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId'];
this.weekArr = this.lifeCommonService.makeDate();
//初始化追踪时间为今天
this.trackDate = dayjs().format('YYYY-MM-DD');
this.queryScheduleTrackList();
console.log(dayjs)
}
goBack(){
......@@ -58,13 +62,9 @@ export class TodoListComponent implements OnInit {
}
selectDay(weekItem){
for(let i=0;i<this.weekArr.length;i++){
this.weekArr[i].selected = false;
if(weekItem.day == this.weekArr[i]['day']){
this.weekArr[i].selected = true;
this.trackDate = this.weekArr[i]['date'];
}
}
this.trackDate = weekItem['date'];
//缓存任务时间
sessionStorage.setItem('trackDate',this.trackDate);
this.queryScheduleTrackList();
}
......@@ -90,7 +90,7 @@ export class TodoListComponent implements OnInit {
clickCalendar(){
this.initPara();
this.state.show = true;
this.state.date = new Date();
this.state.date = new Date();
}
triggerCancel() {
......@@ -102,21 +102,23 @@ export class TodoListComponent implements OnInit {
this.state = {
...this.state,
show: false,
startDate,
endDate
startDate,
endDate
};
this.triggerCancel();
this.trackDate =dayjs(startDate).format('YYYY-MM-DD');
console.log(this.trackDate)
//缓存任务时间
sessionStorage.setItem('trackDate',this.trackDate);
this.queryScheduleTrackList();
this.weekArr = this.lifeCommonService.makeDate(startDate);
console.log(this.weekArr)
}
queryScheduleTrackList(){
this.myService.queryScheduleTrackList({practitionerId:'1',trackDate:this.trackDate}).subscribe((res)=>{
this.myService.queryScheduleTrackList({practitionerId:this.practitionerId,trackDate:this.trackDate}).subscribe((res)=>{
if(res['success']){
this.taskList = res['data'];
this.taskList = res['data']['dataList'];
}else{
this.taskList = [];
}
})
}
......
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