Commit d5d2e571 by Chao Sun

我的设置&页面样式优化

parent 04b79b16
...@@ -25,7 +25,7 @@ export class AppComponent implements OnInit, OnDestroy { ...@@ -25,7 +25,7 @@ export class AppComponent implements OnInit, OnDestroy {
this.authService.obtainToken().subscribe(res => { this.authService.obtainToken().subscribe(res => {
if (res['success']) { if (res['success']) {
localStorage.setItem('lifeToken', res['data']['token']); localStorage.setItem('lifeToken', res['data']['token']);
this.getWxConfig(); this.ydWxConfig();
} }
}); });
...@@ -36,10 +36,11 @@ export class AppComponent implements OnInit, OnDestroy { ...@@ -36,10 +36,11 @@ export class AppComponent implements OnInit, OnDestroy {
this.subscription.unsubscribe(); this.subscription.unsubscribe();
} }
// 微信JS-SDK注册
getWxConfig() { // 微信JS-SDK注册
ydWxConfig() {
const url = encodeURIComponent(location.href.split('#')[0]); const url = encodeURIComponent(location.href.split('#')[0]);
this.authService.wxConfig(url).subscribe(res => { this.authService.ydWxConfig(url).subscribe(res => {
const data = res['data']; const data = res['data'];
wx.config({ wx.config({
debug: false, debug: false,
......
...@@ -13,12 +13,13 @@ export class AuthService { ...@@ -13,12 +13,13 @@ export class AuthService {
} }
private API = environment.BACKEND_URL_CONFIG_VALUE; private API = environment.BACKEND_URL_CONFIG_VALUE;
private ydapi = environment.ORIGINNAME;
isLoggedIn = false; isLoggedIn = false;
// store the URL so we can redirect after logging in // store the URL so we can redirect after logging in
redirectUrl: string; redirectUrl: string;
// 经纪人登陆 // 经纪人登陆
login(loginInfo): Observable<any> { login(loginInfo): Observable<any> {
const api = this.API + '/practitioner/practitionerLogin'; const api = this.ydapi + '/ydapi/practitioner/login';
return this.http.post(api, JSON.stringify(loginInfo)); return this.http.post(api, JSON.stringify(loginInfo));
} }
...@@ -49,15 +50,18 @@ export class AuthService { ...@@ -49,15 +50,18 @@ export class AuthService {
}; };
return this.http.post(url, JSON.stringify(ticketObj)); return this.http.post(url, JSON.stringify(ticketObj));
} }
// 获取微信配置
wxConfig(Currenturl) { //获取微信配置ydLife公众号
const url = this.API + '/wxConfig'; ydWxConfig(Currenturl) {
const url = this.ydapi + '/ydapi/wxConfig';
const postUrl = { const postUrl = {
url: Currenturl url: Currenturl
}; };
return this.http.post(url, JSON.stringify(postUrl)); return this.http.post(url, JSON.stringify(postUrl));
} }
// 获取错误详情 // 获取错误详情
private handleError(error: HttpErrorResponse) { private handleError(error: HttpErrorResponse) {
if (error.error instanceof ErrorEvent) { if (error.error instanceof ErrorEvent) {
......
...@@ -31,6 +31,8 @@ export class MkMaterialDetailComponent implements OnInit { ...@@ -31,6 +31,8 @@ export class MkMaterialDetailComponent implements OnInit {
rightWidth = 5; rightWidth = 5;
bottomHeight = 5; bottomHeight = 5;
posterType: number; posterType: number;
isMobileShow: number;
isNameShow: number;
constructor(private activateRoute: ActivatedRoute, constructor(private activateRoute: ActivatedRoute,
private lifeCommonService: LifeCommonService, private lifeCommonService: LifeCommonService,
private myService: MyService) { private myService: MyService) {
...@@ -111,11 +113,15 @@ export class MkMaterialDetailComponent implements OnInit { ...@@ -111,11 +113,15 @@ export class MkMaterialDetailComponent implements OnInit {
// 绘制字体 // 绘制字体
ctx.fillStyle = '#fff'; ctx.fillStyle = '#fff';
ctx.font = `${12 * ratio}px 微软雅黑`; ctx.font = `${12 * ratio}px 微软雅黑`;
ctx.fillText(`${this.lifeCustomerInfo.practitionerBasicInfo.name}`, 75 * ratio, avatarurlY + 15 * ratio); // Y指的是文字底部的位置
if (this.isNameShow == 1) {
ctx.fillText(`${this.lifeCustomerInfo.practitionerBasicInfo.name}`, 75 * ratio, avatarurlY + 15 * ratio); // Y指的是文字底部的位置
}
ctx.fillText(`银盾保险经纪`, 75 * ratio, avatarurlY + 30 * ratio); // Y指的是文字底部的位置 ctx.fillText(`银盾保险经纪`, 75 * ratio, avatarurlY + 30 * ratio); // Y指的是文字底部的位置
ctx.fillText(`${this.lifeCustomerInfo.mobileNo}`, 75 * ratio, avatarurlY + 45 * ratio); if (this.isMobileShow == 1) {
ctx.fillText(`${this.lifeCustomerInfo.mobileNo}`, 75 * ratio, avatarurlY + 45 * ratio);
}
ctx.scale(ratio, ratio); ctx.scale(ratio, ratio);
}; };
} }
...@@ -199,11 +205,14 @@ export class MkMaterialDetailComponent implements OnInit { ...@@ -199,11 +205,14 @@ export class MkMaterialDetailComponent implements OnInit {
posterQuery(itemId, itemType) { posterQuery(itemId, itemType) {
this.myService.posterQuery({ this.myService.posterQuery({
id: this.posterType, id: this.posterType,
practitionerId: JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId'],
paginationInfo: { paginationInfo: {
noLimitFlag: 'CONFIRM' noLimitFlag: 'CONFIRM'
} }
}).subscribe(res => { }).subscribe(res => {
if (res['success']) { if (res['success']) {
this.isMobileShow = res['data']['isMobileShow'];
this.isNameShow = res['data']['isNameShow'];
const posterInfos = res['data']['posterInfos']; const posterInfos = res['data']['posterInfos'];
const posterInfo = posterInfos.filter(item => item.id == itemId && item.itemType == itemType).pop(); const posterInfo = posterInfos.filter(item => item.id == itemId && item.itemType == itemType).pop();
this.productPosterPath = posterInfo.productPosterPath + '?v=' + new Date().getTime(); this.productPosterPath = posterInfo.productPosterPath + '?v=' + new Date().getTime();
......
...@@ -21,6 +21,7 @@ export class MkMaterialComponent implements OnInit { ...@@ -21,6 +21,7 @@ export class MkMaterialComponent implements OnInit {
posterQuery() { posterQuery() {
const param = { const param = {
practitionerId: JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId'],
mdDropOptionId: this.selectedCategoryId, mdDropOptionId: this.selectedCategoryId,
paginationInfo: { noLimitFlag: 'CONFIRM' } paginationInfo: { noLimitFlag: 'CONFIRM' }
} }
......
...@@ -143,7 +143,8 @@ ...@@ -143,7 +143,8 @@
<div> <div>
<div>跟进状态</div> <div>跟进状态</div>
<div style="position:relative"> <div style="position:relative">
<select name="businessStatus" id="businessStatus" class="form-control" [(ngModel)]="opportunityRecordId"> <select name="businessStatus" (onChange)="inputBlur()" id="businessStatus" class="form-control"
[(ngModel)]="opportunityRecordId">
<option value="null">请选择</option> <option value="null">请选择</option>
<option *ngFor="let businessStatusItem of businessStatusList" value="{{businessStatusItem.id}}"> <option *ngFor="let businessStatusItem of businessStatusList" value="{{businessStatusItem.id}}">
{{businessStatusItem.dropOptionName}} {{businessStatusItem.dropOptionName}}
...@@ -160,7 +161,7 @@ ...@@ -160,7 +161,7 @@
<div> <div>
<div>跟进时间</div> <div>跟进时间</div>
<div><input style="-webkit-appearance: none;" id="time" class="form-control" type="date" <div><input style="-webkit-appearance: none;" id="time" class="form-control" type="date"
[(ngModel)]="opportunityRecordNoticeDate"></div> [(ngModel)]="opportunityRecordNoticeDate" (blur)="inputBlur()"></div>
</div> </div>
<ul class="footer"> <ul class="footer">
<li (click)="ownOpportunityRecordSave()">确定</li> <li (click)="ownOpportunityRecordSave()">确定</li>
......
...@@ -9,12 +9,7 @@ ...@@ -9,12 +9,7 @@
<div class="brokerInfo"> <div class="brokerInfo">
<div class="brokerName"> <div class="brokerName">
<div style="letter-spacing: 2px"><span>{{lifeCustomerInfo?.practitionerBasicInfo?.name}}</span></div> <div style="letter-spacing: 2px"><span>{{lifeCustomerInfo?.practitionerBasicInfo?.name}}</span></div>
<div style="color: #333;font-weight: normal;font-weight: normal;position: relative;top: -5px;" <span i class="iconfont icon-ar-r" style="font-size:18px;" routerLink="setting"></span>
(click)="getOut()">
<i class="iconfont icon-tuichu" style="font-size: 12px;"></i>
<span style="margin-left: 5px;font-size: 12px;">退出</span>
</div>
<!-- <div class="shareSelfInfoBtn" *ngIf="deviceType=='3'" (click)="shareIdCard()"><span>分享名片</span></div> -->
</div> </div>
<div class="brokerTag"> <div class="brokerTag">
...@@ -35,11 +30,11 @@ ...@@ -35,11 +30,11 @@
<span class="detail" (click)="jumpToDetail()">龙虎榜<i class="iconfont icon-ar-r" <span class="detail" (click)="jumpToDetail()">龙虎榜<i class="iconfont icon-ar-r"
style="font-size:12px;"></i></span> style="font-size:12px;"></i></span>
<ul class="tab"> <ul class="tab">
<li *ngFor="let item of performanceList" (click)="selectRang(item.type,'fyp')" <li *ngFor="let item of performanceList" (click)="rank(item.time,1,2);rank(item.time,2,2)"
[ngClass]="{selected:performanceSelectedFlag==item.type}"> [ngClass]="{selected:performanceSelectedFlag==item.time}">
<div style="position: relative;"> <div style="position: relative;">
<h3>{{item.name}} <h3>{{item.name}}
<i class="line" *ngIf="performanceSelectedFlag==item.type" [ngStyle]="{'left':leftWidth}"></i> <i class="line" *ngIf="performanceSelectedFlag==item.time" [ngStyle]="{'left':leftWidth}"></i>
</h3> </h3>
</div> </div>
</li> </li>
...@@ -47,30 +42,38 @@ ...@@ -47,30 +42,38 @@
<div> <div>
<ul class="performance_list title"> <ul class="performance_list title">
<li></li> <li></li>
<li>保费<span class="iconfont icon-xiangxia" style="font-size: 10px;margin-left: 3px;" <li>首年保费
(click)="selectRang(performanceSelectedFlag,'fyp')"></span></li> <!-- <span class="iconfont icon-xiangxia" style="font-size: 10px;margin-left: 3px;"></span> -->
<li>佣金<span class="iconfont icon-xiangxia" style="font-size: 10px;margin-left: 3px;" </li>
(click)="selectRang(performanceSelectedFlag,'fyc')"></span></li> <li>首年佣金</li>
<li>件数<span class="iconfont icon-xiangxia" style="font-size: 10px;margin-left: 3px;" <li>件数</li>
(click)="selectRang(performanceSelectedFlag,'count')"></span></li>
<li>排名</li> <li>排名</li>
</ul> </ul>
<ul class="performance_list"> <ul class="performance_list">
<li>线上</li> <li>线上</li>
<li class="markPrice" style="margin-left: 7px;"> <li class="markPrice" style="margin-left: 7px;">
¥{{performanceInfo?.fyp | number: "1.0-0"}} ¥{{onlineInfo?.fyp | number: "1.0-0"}}
</li> </li>
<li class="markPrice"> <li class="markPrice">
¥{{performanceInfo?.fyc | number: "1.0-0"}} ¥{{onlineInfo?.fyc | number: "1.0-0"}}
</li> </li>
<li class="markPrice">{{performanceInfo?.count?performanceInfo.count:'-'}}</li> <li class="markPrice">{{onlineInfo?.count?onlineInfo.count:'-'}}</li>
<li class="markPrice"> <li class="markPrice">
{{performanceInfo?.ranking?performanceInfo.ranking:'-'}} {{onlineInfo?.rank?onlineInfo.rank:'-'}}
</li> </li>
</ul> </ul>
<ul class="performance_list"> <ul class="performance_list">
<li>线下</li> <li>线下</li>
<li class="markPrice" style="margin-left: 7px;">
¥{{offlineInfo?.fyp | number: "1.0-0"}}
</li>
<li class="markPrice">
¥{{offlineInfo?.fyc | number: "1.0-0"}}
</li>
<li class="markPrice">{{offlineInfo?.count?offlineInfo.count:'-'}}</li>
<li class="markPrice">
{{offlineInfo?.rank?offlineInfo.rank:'-'}}
</li>
</ul> </ul>
</div> </div>
</div> </div>
...@@ -148,6 +151,17 @@ ...@@ -148,6 +151,17 @@
</div> </div>
<div class="health_wrapper" style="padding: 12px 10px 12px 10px;">
<h3 style="margin-bottom: 0;">我的设置
<span i class="iconfont icon-ar-r" style="font-size:18px;float: right;" routerLink="setting"></span>
</h3>
</div>
<div class="health_wrapper" style="padding: 12px 10px 12px 10px;">
<h3 style="margin-bottom: 0;">我的消息
<span i class="iconfont icon-ar-r" style="font-size:18px;float: right;" routerLink="news"></span></h3>
</div>
</div> </div>
...@@ -160,4 +174,5 @@ ...@@ -160,4 +174,5 @@
</div> </div>
<ydlife-alert *ngIf="isNeedAlert" [dialogInfo]="dialogInfo" (popInfo)="getPopInfo()"></ydlife-alert> <ydlife-alert *ngIf="isNeedAlert" [dialogInfo]="dialogInfo" (popInfo)="getPopInfo()"></ydlife-alert>
\ No newline at end of file
...@@ -350,3 +350,4 @@ ...@@ -350,3 +350,4 @@
text-align: center; text-align: center;
} }
} }
...@@ -22,9 +22,7 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit { ...@@ -22,9 +22,7 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
deviceType: number; deviceType: number;
announcementLists: Array<any>; announcementLists: Array<any>;
firstAnnouncement: string; firstAnnouncement: string;
allPerformanceInfo: any;
performanceList: Array<any>; performanceList: Array<any>;
performanceInfo: any;
performanceSelectedFlag: string; performanceSelectedFlag: string;
leftWidth: any; leftWidth: any;
products: Plans[]; products: Plans[];
...@@ -33,7 +31,9 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit { ...@@ -33,7 +31,9 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
firstAnnouncementTitle: string; firstAnnouncementTitle: string;
//判断是否显示我的团队 //判断是否显示我的团队
isShow: boolean; isShow: boolean;
onlineInfo: any;
offlineInfo: any;
advFlag: boolean = false;
constructor( constructor(
private router: Router, private router: Router,
private lifeCommonService: LifeCommonService, private lifeCommonService: LifeCommonService,
...@@ -98,10 +98,13 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit { ...@@ -98,10 +98,13 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
}, 300) }, 300)
this.performanceList = [ this.performanceList = [
{ type: 'month', name: '本月' }, { type: 'month', name: '本月', time: 1 },
{ type: 'year', name: '本年度' } { type: 'year', name: '本年度', time: 2 }
] ]
this.brokerInfoQuery();
//初始化调本月线上 保费+ 本月线下保费
this.rank(1, 1, 1)
this.rank(1, 2, 1)
this.recommendPlanQuery(); this.recommendPlanQuery();
} }
...@@ -109,6 +112,12 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit { ...@@ -109,6 +112,12 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
setTimeout(() => { setTimeout(() => {
this.firstAnnouncementTitle = this.getStr(this.hide.nativeElement.innerText, '32') this.firstAnnouncementTitle = this.getStr(this.hide.nativeElement.innerText, '32')
}, 400); }, 400);
// setTimeout(() => {
// if (this.firstAnnouncementTitle) {
// this.advFlag = false;
// }
// }, 1000)
} }
// 菜单导航 // 菜单导航
...@@ -167,19 +176,37 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit { ...@@ -167,19 +176,37 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
this.router.navigate(['/login']); this.router.navigate(['/login']);
} }
//查询排行 /**
brokerInfoQuery() { * time 1-month,2-year
const practitionerId = JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId']; * type 1-保费,2-佣金 3-件数
this.myService.brokerInfoQuery({ practitionerId: practitionerId }).subscribe((res) => { * platform //1-online,2-offline
*/
rank(time, platform, type) {
this.performanceSelectedFlag = time;
const param = {
mobileNo: JSON.parse(localStorage.getItem('lifeCustomerInfo'))['mobileNo'],
time: time,
platform: platform,
type: type
}
if (time == 1) {
this.leftWidth = '15%';
} else {
this.leftWidth = '30%';
}
this.myService.rank(param).subscribe((res) => {
if (res['success']) { if (res['success']) {
this.allPerformanceInfo = res['data']['commissionInfo']; if (platform == 1) {
// sessionStorage.setItem('allPerformanceInfo', JSON.stringify((this.allPerformanceInfo))); this.onlineInfo = res['data']['practitionerInfo'];
//初始化查本月业绩 }
this.selectRang('month', 'fyp'); if (platform == 2) {
this.offlineInfo = res['data']['practitionerInfo'];
}
} }
}) })
} }
//截取字符串 //截取字符串
getStr(str, len) { getStr(str, len) {
if (!str) return ""; if (!str) return "";
...@@ -200,33 +227,6 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit { ...@@ -200,33 +227,6 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
return str; return str;
} }
selectRang(e, rankType) {
if (e == 'year') {
if (rankType == 'fyp') {
this.performanceInfo = this.allPerformanceInfo['thisYearInfo']['onlineInfo']['rankByFYP']['practitionerInfo'];
} else if (rankType == 'fyc') {
this.performanceInfo = this.allPerformanceInfo['thisYearInfo']['onlineInfo']['rankByFYC']['practitionerInfo'];
} else if (rankType == 'count') {
this.performanceInfo = this.allPerformanceInfo['thisYearInfo']['onlineInfo']['rankByCount']['practitionerInfo'];
} else {
return;
}
this.leftWidth = '30%';
}
if (e == 'month') {
if (rankType == 'fyp') {
this.performanceInfo = this.allPerformanceInfo['thisMonthInfo']['onlineInfo']['rankByFYP']['practitionerInfo'];
} else if (rankType == 'fyc') {
this.performanceInfo = this.allPerformanceInfo['thisMonthInfo']['onlineInfo']['rankByFYC']['practitionerInfo'];
} else if (rankType == 'count') {
this.performanceInfo = this.allPerformanceInfo['thisMonthInfo']['onlineInfo']['rankByCount']['practitionerInfo'];
} else {
return;
}
this.leftWidth = '15%';
}
this.performanceSelectedFlag = e;
}
// 大家都在买产品查询列表 // 大家都在买产品查询列表
recommendPlanQuery() { recommendPlanQuery() {
...@@ -275,7 +275,7 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit { ...@@ -275,7 +275,7 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
} }
jumpToDetail() { jumpToDetail() {
this.router.navigate(['/rank'], { queryParams: { searchType: this.performanceSelectedFlag } }); this.router.navigate(['/rank'], { queryParams: { time: this.performanceSelectedFlag } });
} }
//查询是否团队长 //查询是否团队长
......
<div class="wrapper">
<div class="item" [routerLink]="['/thanks']">
<span>银盾保险经纪董事长欢迎信</span>
<div class="content">
<span class="iconfont icon-ar-r"></span>
</div>
</div>
</div>
\ No newline at end of file
.wrapper{
position: relative;
width: 100%;
height: 100%;
padding: 10px 5px;
background: #efefef;
.item{
height: 60px;
display: flex;
justify-content: space-between;
align-items: center;
padding: 10px;
width: 95%;
margin: 10px auto;
background: #fff;
box-shadow:0 0px 3.5px #eceaea;
border-radius: 6px;
.switch{
.iconfont{
color: #ff002a;
font-size: 18px;
}
}
img{
width: 35px;
height: 35px;
margin-right: 10px;
}
}
.lifeList{
display: flex;
>div{
width: 50%;
background-color: #ddd;
flex: 1;
border-right: 3px solid #fff;
img{
display: block;
max-width: 100%;
height: auto;
}
}
>div:last-child{
border: none;
}
}
}
\ No newline at end of file
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { MyNewsComponent } from './my-news.component';
describe('MyNewsComponent', () => {
let component: MyNewsComponent;
let fixture: ComponentFixture<MyNewsComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ MyNewsComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(MyNewsComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'ydlife-my-news',
templateUrl: './my-news.component.html',
styleUrls: ['./my-news.component.scss']
})
export class MyNewsComponent implements OnInit {
constructor() { }
ngOnInit() {
}
}
...@@ -17,6 +17,7 @@ import { RecruitingDetailComponent } from './recruiting-detail/recruiting-detail ...@@ -17,6 +17,7 @@ import { RecruitingDetailComponent } from './recruiting-detail/recruiting-detail
import { ThanksComponent } from './thanks/thanks.component'; import { ThanksComponent } from './thanks/thanks.component';
import { MySettingComponent } from './my-setting/my-setting.component'; import { MySettingComponent } from './my-setting/my-setting.component';
import { MySettingDetailComponent } from './my-setting-detail/my-setting-detail.component'; import { MySettingDetailComponent } from './my-setting-detail/my-setting-detail.component';
import { MyNewsComponent } from './my-news/my-news.component';
const myRoutes: Routes = [ const myRoutes: Routes = [
{ path: '', component: MyCenterHomeComponent, canActivate: [AuthGuard] }, { path: '', component: MyCenterHomeComponent, canActivate: [AuthGuard] },
...@@ -36,6 +37,7 @@ const myRoutes: Routes = [ ...@@ -36,6 +37,7 @@ const myRoutes: Routes = [
{ path: 'thanks', component: ThanksComponent, canActivate: [AuthGuard] }, { path: 'thanks', component: ThanksComponent, canActivate: [AuthGuard] },
{ path: 'setting', component: MySettingComponent, canActivate: [AuthGuard] }, { path: 'setting', component: MySettingComponent, canActivate: [AuthGuard] },
{ path: 'setting/:uploadType', component: MySettingDetailComponent, canActivate: [AuthGuard] }, { path: 'setting/:uploadType', component: MySettingDetailComponent, canActivate: [AuthGuard] },
{ path: 'news', component: MyNewsComponent, canActivate: [AuthGuard] },
]; ];
......
<div class="wrapper_pic"> <div class="wrapper_pic">
<div style="color:#ff3500;" *ngIf="this.uploadType =='headUrl'">上传头像时图片比例必须1:1</div> <div class="picItem headPic" *ngIf="this.uploadType =='headUrl'">
<div style="color:#ff3500;" *ngIf="this.uploadType =='wxUrl'">上传微信二维码时图片比例必须1:1</div>
<div style="color:#ff3500;" *ngIf="this.uploadType =='lifeUrl'">上传生活照时图片比例必须4:3</div>
<div class="headPic" *ngIf="this.uploadType =='headUrl'">
<div class="pic"> <div class="pic">
<img *ngIf="settingInfo.headImgUrl" src="{{settingInfo.headImgUrl}}" /> <img *ngIf="settingInfo.headImgUrl" src="{{settingInfo.headImgUrl}}" />
</div> </div>
<div *ngIf="settingInfo.headImgUrl" (click)="chooseImg('headImgUrl')">点此重新选择头像</div> <div *ngIf="settingInfo.headImgUrl" (click)="chooseImg('headImgUrl','','','change')">更换头像</div>
<div *ngIf="!settingInfo.headImgUrl" (click)="chooseImg('headImgUrl')">点此选择头像</div> </div>
<div style="margin-top: 10px;" *ngIf="this.uploadType =='headUrl'">上传头像时图片比例必须1:1</div>
<!--上传头像-->
<div class="saveBtn" *ngIf="uploadType=='headUrl' && settingInfo.headImgUrl" (click)="mySettingSave()">确定</div>
<div *ngIf="uploadType =='headUrl' && !settingInfo.headImgUrl" class="add"
(click)="chooseImg('headImgUrl','','','add')">
<i class="iconfont icon-jiahao"></i>
</div> </div>
<div class="wxPic" *ngIf="this.uploadType =='wxUrl'">
<div class="picItem wxPic" *ngIf="this.uploadType =='wxUrl'">
<div class="pic"> <div class="pic">
<img *ngIf="settingInfo.wxQRImgUrl" src="{{settingInfo.wxQRImgUrl}}" alt="" /> <img *ngIf="settingInfo.wxQRImgUrl" src="{{settingInfo.wxQRImgUrl}}" />
</div> </div>
<div *ngIf="settingInfo.wxQRImgUrl" (click)="chooseImg('wxQRImgUrl')">点此重新选择微信二维码</div> <div *ngIf="settingInfo.wxQRImgUrl" (click)="chooseImg('wxQRImgUrl','','','change')">更换微信二维码</div>
<div *ngIf="!settingInfo.wxQRImgUrl" (click)="chooseImg('wxQRImgUrl')">点此选择微信二维码</div> </div>
<div style="margin-top: 10px;" *ngIf="this.uploadType =='wxUrl'">上传微信二维码时图片比例必须1:1</div>
<!-- 上传二维码 -->
<div class="saveBtn" *ngIf="uploadType=='wxUrl' && settingInfo.wxQRImgUrl" (click)="mySettingSave()">确定</div>
<div *ngIf="this.uploadType =='wxUrl' && !settingInfo.wxQRImgUrl" class="add"
(click)="chooseImg('wxQRImgUrl','','','add')">
<i class="iconfont icon-jiahao"></i>
</div> </div>
<div class="lifePic" *ngIf="this.uploadType =='lifeUrl'"> <div class="picItem lifePic" *ngIf="this.uploadType =='lifeUrl'">
<div class="lifePicItem" *ngFor="let lifeImgUrlItem of settingInfo.lifeImgUrls"> <div class="lifePicItem" *ngFor="let lifeImgUrlItem of settingInfo.lifeImgUrls;index as i;">
<div class="pic"> <div class="pic">
<img src="{{lifeImgUrlItem.lifeImgUrl}}" /> <img src="{{lifeImgUrlItem.lifeImgUrl}}" />
</div> </div>
<div *ngIf="lifeImgUrlItem.lifeImgUrl" (click)="chooseImg('lifeImgUrl','rechose',lifeImgUrlItem.id)">点此重新选择生活照 <div class="delete">
<div *ngIf="lifeImgUrlItem.lifeImgUrl" (click)="chooseImg('lifeImgUrl',i,lifeImgUrlItem.id)">更新
</div>
<div *ngIf="lifeImgUrlItem.lifeImgUrl" (click)="myImgDelete(lifeImgUrlItem.id,i,'deletePic')">
<span class="iconfont icon-shanchu1" style="font-size: 28px;color: #a5a2a2;"></span>
</div>
</div> </div>
</div> </div>
</div> </div>
<div *ngIf="this.uploadType =='lifeUrl'" (click)="chooseImg('lifeImgUrl')">点此添加生活照</div> <div *ngIf="this.uploadType =='lifeUrl'" class="add" (click)="chooseImg('lifeImgUrl')">
<div class="saveBtn" *ngIf="uploadType=='lifeUrl' || uploadType=='wxUrl' || uploadType=='headUrl'" <i class="iconfont icon-jiahao"></i>
(click)="mySettingSave()">确定上传</div> </div>
<div style="margin-top: 10px;" *ngIf="this.uploadType =='lifeUrl'">
上传生活照时图片比例必须4:3</div>
<!-- 上传生活照 -->
<div class="saveBtn" *ngIf="uploadType=='lifeUrl' && settingInfo.lifeImgUrls?.length>0" (click)="mySettingSave()">确定
</div>
<div class="introduction" *ngIf="this.uploadType=='introduction'"> <div class="picItem introduction" *ngIf="this.uploadType=='introduction'">
<div style="height: 30px;font-size: 20px;margin-bottom: 20px;">自我介绍</div> <div style="height: 30px;font-size: 20px;margin-bottom: 20px;">自我介绍</div>
<textarea class="form-control" rows="10" [(ngModel)]="settingInfo.bioIntro"></textarea> <textarea class="form-control" rows="10" [(ngModel)]="settingInfo.bioIntro" placeholder="赶紧介绍一下你自己吧!"
<div class="saveBtn" (click)="mySettingSave()">保存</div> maxlength="200" style="border: none;" (keydown)="controlWord($event)"></textarea>
<span class="maxWord">{{ 200- (settingInfo.bioIntro)?.length}}</span>
<div class="saveBtn" (click)="mySettingSave()">确定</div>
</div> </div>
<div class="switch" *ngIf="this.uploadType =='switch'"> <div class="picItem switch" *ngIf="this.uploadType =='switch'">
<div> <div class="switchItem">
<span>显示手机号</span> <div class="title">
<span class="iconfont icon-ar-r"></span> <span>显示手机号</span>
<span class="tips">在海报和名片上显示手机号</span>
</div>
<div class="iconfont icon-kaiguanswitch-jibenzhuangtai-dianliangzhuangtai-copy" *ngIf="settingInfo.isMobileShow"
(click)="settingInfo.isMobileShow =0" style="color: #ff002a;">
</div>
<div class="iconfont icon-kaiguanswitch-jibenzhuangtai-dianliangzhuangtai" *ngIf="!settingInfo.isMobileShow"
(click)="settingInfo.isMobileShow =1" style="color: #e9e9eb"></div>
</div> </div>
<div> <div class="switchItem">
<span>显示手机号</span> <div class="title">
<span class="iconfont icon-ar-r"></span> <span> 显示姓名</span>
<span class="tips">在海报和名片上显示姓名</span>
</div>
<div class="iconfont icon-kaiguanswitch-jibenzhuangtai-dianliangzhuangtai-copy" *ngIf="settingInfo.isNameShow"
(click)="settingInfo.isNameShow =0" style="color: #ff002a;"></div>
<div class="iconfont icon-kaiguanswitch-jibenzhuangtai-dianliangzhuangtai" *ngIf="!settingInfo.isNameShow"
(click)="settingInfo.isNameShow =1" style="color: #e9e9eb"></div>
</div> </div>
<div class="saveBtn" (click)="mySettingSave()">确定</div>
</div> </div>
</div> </div>
<ydlife-alert *ngIf="isNeedAlert" [dialogInfo]="dialogInfo" (popInfo)="getPopInfo()"></ydlife-alert> <ydlife-alert *ngIf="isNeedAlert" [dialogInfo]="dialogInfo" (popInfo)="getPopInfo()"></ydlife-alert>
<ydlife-toast *ngIf="toastDialog" [toastInfo]="toastInfo"></ydlife-toast> <ydlife-toast *ngIf="toastDialog" [toastInfo]="toastInfo"></ydlife-toast>
\ No newline at end of file
...@@ -2,27 +2,94 @@ ...@@ -2,27 +2,94 @@
width: 100%; width: 100%;
padding: 20px 5px; padding: 20px 5px;
text-align: center; text-align: center;
.pic{ // background: #efefef;
.picItem{
.pic{
width: 100%;
margin: 10px auto;
img{
width: 90%;
margin: 0 auto;
max-width: 90%;
}
}
}
.lifePic{
.lifePicItem{
margin:0px auto 15px auto;
.delete{
display: flex;
justify-content: space-evenly;
height: 30px;
align-items: center;
}
}
}
.introduction{
position: relative;
padding: 0 5px;
.maxWord{
position: absolute;
right: 0;
}
}
.switch{
width: 100%; width: 100%;
margin: 10px auto; padding: 5px 10px;
img{ .switchItem{
width: 90%; display: flex;
margin: 0 auto; justify-content: space-between;
max-width: 90%; align-items: center;
border-bottom: 1px #eceaea solid;
.title{
height: 60px;
font-size: 18px;
span{
width: 100%;
float: left;
text-align: left;
}
span.tips{
color: #a5a4a4;
font-size: 14px;
}
}
.iconfont{
font-weight: bold;
font-size: 24px;
}
} }
} }
.lifePicItem{ .saveBtn{
margin: 8px auto; padding: 8px 10px;
background: #ff002a;
color: #fff;
width: 40%;
border-radius: 20px;
text-align: center;
margin: 20px auto;
}
.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: 30px;
font-size: 28px;
// color: #ff5933;
font-weight: bold;
}
} }
.saveBtn{
padding: 8px 10px;
background: #ff002a;
color: #fff;
width: 50%;
border-radius: 10px;
text-align: center;
margin: 20px auto;
}
} }
\ No newline at end of file
...@@ -25,10 +25,11 @@ ...@@ -25,10 +25,11 @@
<span class="iconfont icon-ar-r"></span> <span class="iconfont icon-ar-r"></span>
</div> </div>
</div> </div>
<div class="item"> <div class="item" [routerLink]="['/setting','switch']">
<span>个性设置</span> <span>个性设置</span>
<div class="content"> <div class="content">
<span class="iconfont icon-ar-r" [routerLink]="['/setting','switch']"></span> <span class="iconfont icon-ar-r"></span>
</div> </div>
</div> </div>
<div class="saveBtn" (click)="getOut()">退出</div>
</div> </div>
\ No newline at end of file
...@@ -60,4 +60,13 @@ ...@@ -60,4 +60,13 @@
margin-top: 45%; margin-top: 45%;
} }
} }
.saveBtn{
padding: 8px 10px;
border:1px solid #ff002a;
color: #ff002a;
width: 40%;
border-radius: 20px;
text-align: center;
margin: 20px auto;
}
} }
\ No newline at end of file
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
import { MyService } from '../my.service'; import { MyService } from '../my.service';
import { SettingInfo } from '../../domain/settinginfo'; import { SettingInfo } from '../../domain/settinginfo';
import { Router } from "@angular/router";
@Component({ @Component({
selector: 'ydlife-my-setting', selector: 'ydlife-my-setting',
templateUrl: './my-setting.component.html', templateUrl: './my-setting.component.html',
...@@ -11,7 +13,7 @@ export class MySettingComponent implements OnInit { ...@@ -11,7 +13,7 @@ export class MySettingComponent implements OnInit {
settingInfo: SettingInfo = new SettingInfo(); settingInfo: SettingInfo = new SettingInfo();
constructor( constructor(
private myService: MyService) { } private myService: MyService, private router: Router) { }
ngOnInit() { ngOnInit() {
this.mySettingQuery(); this.mySettingQuery();
...@@ -26,4 +28,9 @@ export class MySettingComponent implements OnInit { ...@@ -26,4 +28,9 @@ export class MySettingComponent implements OnInit {
}) })
} }
getOut() {
localStorage.removeItem('lifeCustomerInfo');
this.router.navigate(['/login']);
}
} }
...@@ -21,10 +21,11 @@ import { RecruitingDetailComponent } from './recruiting-detail/recruiting-detail ...@@ -21,10 +21,11 @@ import { RecruitingDetailComponent } from './recruiting-detail/recruiting-detail
import { ThanksComponent } from './thanks/thanks.component'; import { ThanksComponent } from './thanks/thanks.component';
import { MySettingComponent } from './my-setting/my-setting.component'; import { MySettingComponent } from './my-setting/my-setting.component';
import { MySettingDetailComponent } from './my-setting-detail/my-setting-detail.component'; import { MySettingDetailComponent } from './my-setting-detail/my-setting-detail.component';
import { MyNewsComponent } from './my-news/my-news.component';
@NgModule({ @NgModule({
declarations: [MyCenterHomeComponent, MkMaterialComponent, MkMaterialDetailComponent, FileUploadComponent, ImportantAnnouncementComponent, SalesDetailComponent, AnnouncementDetailComponent, MyBusinessComponent, MyBusinessDetailComponent, PickerComponent, ToastComponent, SalesRankComponent, TeamRankComponent, RecruitingComponent, RecruitingDetailComponent, ThanksComponent, MySettingComponent, MySettingDetailComponent], declarations: [MyCenterHomeComponent, MkMaterialComponent, MkMaterialDetailComponent, FileUploadComponent, ImportantAnnouncementComponent, SalesDetailComponent, AnnouncementDetailComponent, MyBusinessComponent, MyBusinessDetailComponent, PickerComponent, ToastComponent, SalesRankComponent, TeamRankComponent, RecruitingComponent, RecruitingDetailComponent, ThanksComponent, MySettingComponent, MySettingDetailComponent, MyNewsComponent],
imports: [ imports: [
CommonModule, CommonModule,
LifeCommonModule, LifeCommonModule,
......
...@@ -10,7 +10,7 @@ export class MyService { ...@@ -10,7 +10,7 @@ export class MyService {
} }
private API = environment.BACKEND_URL_CONFIG_VALUE; private API = environment.BACKEND_URL_CONFIG_VALUE;
private ydapi = environment.ORIGINNAME;
// 保存分享码 // 保存分享码
shareCallBack(shareInfo) { shareCallBack(shareInfo) {
const url = this.API + '/shareCallBack'; const url = this.API + '/shareCallBack';
...@@ -119,13 +119,6 @@ export class MyService { ...@@ -119,13 +119,6 @@ export class MyService {
}); });
} }
//查业绩排行
brokerInfoQuery(practitionerId) {
const url = this.API + '/practitioner/practitionerInfoQuery';
return this.http
.post(url, JSON.stringify(practitionerId));
}
//查保单明细 //查保单明细
practitionerPolicyListQuery(practitionerId) { practitionerPolicyListQuery(practitionerId) {
const url = this.API + '/practitioner/practitionerPolicyListQuery'; const url = this.API + '/practitioner/practitionerPolicyListQuery';
...@@ -142,25 +135,34 @@ export class MyService { ...@@ -142,25 +135,34 @@ export class MyService {
//下载多媒体文件接口 //下载多媒体文件接口
mediaGet(mediaId) { mediaGet(mediaId) {
const url = this.API + '/mediaGet'; const url = this.ydapi + '/ydapi/practitioner/mediaGet';
return this.http.post(url, JSON.stringify(mediaId)); return this.http.post(url, JSON.stringify(mediaId));
} }
//设置查询 //设置查询
mySettingQuery(practitionerId) { mySettingQuery(practitionerId) {
const url = this.API + '/practitioner/mySettingQuery'; const url = this.ydapi + '/ydapi/practitioner/settingQuery';
return this.http.post(url, JSON.stringify(practitionerId)); return this.http.post(url, JSON.stringify(practitionerId));
} }
//我的设置保存 //我的设置保存
mySettingSave(param) { mySettingSave(param) {
const url = this.API + '/practitioner/mySettingSave'; const url = this.ydapi + '/ydapi/practitioner/settingSave';
return this.http.post(url, JSON.stringify(param)); return this.http.post(url, JSON.stringify(param));
} }
//删除生活照 //删除生活照
myImgDelete(param) { myImgDelete(param) {
const url = this.API + '/practitioner/myImgDelete'; const url = this.ydapi + '/ydapi/practitioner/imgDelete';
return this.http.post(url, JSON.stringify(param)); return this.http.post(url, JSON.stringify(param));
} }
//排行榜
rank(param) {
const url = this.ydapi + '/ydapi/practitioner/rank';
return this.http
.post(url, JSON.stringify(param));
}
} }
...@@ -5,20 +5,20 @@ ...@@ -5,20 +5,20 @@
</div> </div>
<div class="title"> <div class="title">
<ul class="tab"> <ul class="tab">
<li *ngFor="let item of performanceList" (click)="selectRang(item.type,lineType,rankType)" <li *ngFor="let item of performanceList" (click)="rank(item.type,isOnlineType,searchType)"
[ngClass]="{selected:dateType==item.type}"> [ngClass]="{selected:timeType==item.type}">
{{item.name}} {{item.name}}
</li> </li>
</ul> </ul>
<ul class="tab"> <ul class="tab">
<li *ngFor="let listItem of list" (click)="selectRang(dateType,listItem.type,rankType)" <li *ngFor="let listItem of typelist" (click)="rank(timeType,listItem.type,searchType)"
[ngClass]="{selected:lineType==listItem.type}"> [ngClass]="{selected:isOnlineType==listItem.type}">
{{listItem.name}} {{listItem.name}}
</li> </li>
</ul> </ul>
<ul class="tab"> <ul class="tab">
<li *ngFor="let searchListItem of searchList" (click)="selectRang(dateType,lineType,searchListItem.type)" <li *ngFor="let searchListItem of searchList" (click)="rank(timeType,isOnlineType,searchListItem.type)"
[ngClass]="{selected:rankType==searchListItem.type}"> [ngClass]="{selected:searchType==searchListItem.type}">
{{searchListItem.name}} {{searchListItem.name}}
</li> </li>
</ul> </ul>
...@@ -28,12 +28,12 @@ ...@@ -28,12 +28,12 @@
<li>排名</li> <li>排名</li>
<li>姓名</li> <li>姓名</li>
<li>团队</li> <li>团队</li>
<li *ngIf="rankType=='fyp'">保费</li> <li *ngIf="searchType=='1'" style="color: #333;font-weight: normal;">首年保费</li>
<li *ngIf="rankType=='fyc'">佣金</li> <li *ngIf="searchType=='2'" style="color: #333;font-weight: normal;">首年佣金</li>
<li *ngIf="rankType=='count'">件数</li> <li *ngIf="searchType=='3'" style="color: #333;font-weight: normal;margin-right: 0;">件数</li>
</ul> </ul>
<div style="width: 100%;text-align: center;float: left;" *ngIf="performanceListShow?.length <=0">暂无数据</div> <div style="width: 100%;text-align: center;float: left;" *ngIf="rankList?.length <=0">暂无数据</div>
<ul *ngFor="let performanceItem of performanceListShow;index as i;"> <ul *ngFor="let rankItem of rankList;index as i;">
<li class="icon"> <li class="icon">
<ng-container *ngIf="i<=2"> <ng-container *ngIf="i<=2">
<div [ngSwitch]="i+1"> <div [ngSwitch]="i+1">
...@@ -47,13 +47,13 @@ ...@@ -47,13 +47,13 @@
[ngStyle]="{'color':'#fdb941','position': 'absolute','left':'0','font-size':'35px','top':'0','right':'0','bottom':'0','margin':'-3px auto'}"></i> [ngStyle]="{'color':'#fdb941','position': 'absolute','left':'0','font-size':'35px','top':'0','right':'0','bottom':'0','margin':'-3px auto'}"></i>
</div> </div>
</ng-container> </ng-container>
{{performanceItem.rank}} {{rankItem.rank}}
</li> </li>
<li>{{performanceItem.name}}</li> <li>{{rankItem.name}}</li>
<li>{{performanceItem.subordinateSystemName}}</li> <li>{{rankItem.subordinateSystemName}}</li>
<li *ngIf="rankType=='fyp'">¥{{performanceItem.fyp | number: "1.2-2"}}</li> <li *ngIf="searchType==1">¥{{rankItem.fyp | number: "1.2-2"}}</li>
<li *ngIf="rankType=='fyc'">¥{{performanceItem.fyc | number: "1.2-2"}}</li> <li *ngIf="searchType==2">¥{{rankItem.fyc | number: "1.2-2"}}</li>
<li *ngIf="rankType=='count'">{{performanceItem.count}}</li> <li *ngIf="searchType==3">{{rankItem.count}}</li>
</ul> </ul>
</div> </div>
</div> </div>
\ No newline at end of file
...@@ -10,10 +10,10 @@ ...@@ -10,10 +10,10 @@
width: 100%; width: 100%;
float: left; float: left;
margin-bottom: 10px; margin-bottom: 10px;
padding: 10px 5%; padding: 10px 0;
ul.tab{ ul.tab{
float: left; float: left;
width: 29%; width: 21%;
margin-right: 1%; margin-right: 1%;
li{ li{
float: left; float: left;
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
text-align: left; text-align: left;
height: 30px; height: 30px;
line-height: 30px; line-height: 30px;
margin-right: 10%; margin-right: 5%;
color: #fff; color: #fff;
} }
li.selected{ li.selected{
...@@ -34,11 +34,18 @@ ...@@ -34,11 +34,18 @@
} }
} }
ul.tab:nth-child(3){ ul.tab:nth-child(3){
width: 37%; width: 55%;
float: right; float: right;
margin-right: 0;
li{
width: 38%;
margin-right: 2%;
text-align: center;
}
li:nth-child(3){ li:nth-child(3){
float: right; float: right;
margin-right: 5%; width: 20%;
margin-right: 0;
} }
} }
} }
......
...@@ -7,77 +7,58 @@ import { MyService } from "../my.service"; ...@@ -7,77 +7,58 @@ import { MyService } from "../my.service";
styleUrls: ['./sales-rank.component.scss'] styleUrls: ['./sales-rank.component.scss']
}) })
export class SalesRankComponent implements OnInit { export class SalesRankComponent implements OnInit {
time: any;
performanceList: Array<any>; performanceList: Array<any>;
dateType: any; typelist: Array<any>;
lineType: any;
allPerformanceInfo: any;
list: Array<any>;
performanceListShow: Array<any>;
rankType: any;
searchList: Array<any>; searchList: Array<any>;
timeType: any;
searchType: any;
isOnlineType: any;
rankList: Array<any>;
constructor(private activatedRoute: ActivatedRoute, private myService: MyService) { constructor(private activatedRoute: ActivatedRoute, private myService: MyService) {
this.performanceList = [ this.performanceList = [
{ type: 'month', name: '本月' }, { type: 1, name: '本月' },
{ type: 'year', name: '本年' } { type: 2, name: '本年' }
] ]
this.list = [ this.typelist = [
{ type: 'online', name: '线上' }, { type: 1, name: '线上' },
{ type: 'underLine', name: '寿险' }, { type: 2, name: '寿险' },
] ]
this.searchList = [ this.searchList = [
{ type: 'fyp', name: 'FYP' }, { type: 1, name: '首年保费' },
{ type: 'fyc', name: 'FYC' }, { type: 2, name: '首年佣金' },
{ type: 'count', name: '件数' } { type: 3, name: '件数' }
] ]
} }
ngOnInit() { ngOnInit() {
this.dateType = this.activatedRoute.snapshot.queryParams.searchType; this.time = this.activatedRoute.snapshot.queryParams.time ? Number(this.activatedRoute.snapshot.queryParams.time) : null;
this.allPerformanceInfo = JSON.parse(sessionStorage.getItem('allPerformanceInfo')); //初始化查线上保费
this.brokerInfoQuery(); this.rank(this.time, 1, 1)
} }
brokerInfoQuery() { /**
const practitionerId = JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId']; * time 1-month,2-year
this.myService.brokerInfoQuery({ practitionerId: practitionerId }).subscribe((res) => { * type 1-fyc,2-fyp 3-件数
* platform //1-online,2-offline
*/
rank(time, platform, type) {
this.timeType = time;
this.isOnlineType = platform;
this.searchType = type;
const param = {
mobileNo: JSON.parse(localStorage.getItem('lifeCustomerInfo'))['mobileNo'],
time: time,
platform: platform,
type: type
}
this.myService.rank(param).subscribe((res) => {
if (res['success']) { if (res['success']) {
this.allPerformanceInfo = res['data']['commissionInfo']; this.rankList = res['data']['rank'];
// sessionStorage.setItem('allPerformanceInfo', JSON.stringify((this.allPerformanceInfo))); } else {
//初始化查询本月+线上+fyp this.rankList = [];
this.selectRang('month', 'online', 'fyp')
} }
}) })
} }
selectRang(dateType, lineType, rankType) {
this.dateType = dateType;
this.lineType = lineType;
this.rankType = rankType;
if (lineType == 'online') {
if (dateType == 'year') {
if (rankType == 'fyp') {
this.performanceListShow = this.allPerformanceInfo['thisYearInfo']['onlineInfo']['rankByFYP']['rank'];
} else if (rankType == 'fyc') {
this.performanceListShow = this.allPerformanceInfo['thisYearInfo']['onlineInfo']['rankByFYC']['rank'];
} else if (rankType == 'count') {
this.performanceListShow = this.allPerformanceInfo['thisYearInfo']['onlineInfo']['rankByCount']['rank'];
} else {
return;
}
}
if (dateType == 'month') {
if (rankType == 'fyp') {
this.performanceListShow = this.allPerformanceInfo['thisMonthInfo']['onlineInfo']['rankByFYP']['rank'];
} else if (rankType == 'fyc') {
this.performanceListShow = this.allPerformanceInfo['thisMonthInfo']['onlineInfo']['rankByFYC']['rank'];
} else if (rankType == 'count') {
this.performanceListShow = this.allPerformanceInfo['thisMonthInfo']['onlineInfo']['rankByCount']['rank'];
} else {
return;
}
}
} else {
this.performanceListShow = [];
}
}
} }
<div class="salesWrapper"> <div class="salesWrapper">
<div class="teamHeader"> <div class="teamHeader">
<div class="teamInfo"> <div class="teamItem teamInfo">
{{subordinateSystemName}}战队 <span class="icon-tuandui iconfont"
style="position: absolute;width:45px;height:45px;line-height:35px;font-size: 30px;left:0;border: 1px #dcdcdc solid; padding: 5px;border-radius: 50%;"></span>
<div style="float: left;">{{subordinateSystemName}}战队</div>
</div> </div>
<div class="totalSales"> <div class="teamItem totalSales">
<div><span>{{statisticInfo?.fyp | number: "1.2-2"}} </span><i class="text">保费</i></div> <div class="teamTotal">
<div><span>{{statisticInfo?.fyc | number: "1.2-2"}}</span><i class="text">佣金</i></div> <div style="padding-left: 5px;color: #fff;"> 战队业绩</div>
<div><span>{{statisticInfo?.count | number: "1.2-2"}}</span><i class="text">件数</i></div> <div class="title">
<ul class="tab">
<li *ngFor="let item of performanceList" (click)="subordinateSystemMemberQuery(item.time, online)"
[ngClass]="{selected:time==item.time}">
{{item.name}}
</li>
</ul>
</div>
</div>
<div class="salseContent">
<div class="num">¥{{statisticInfo?.fyp | number: "1.2-2"}}</div>
<div class="num">¥{{statisticInfo?.fyc | number: "1.2-2"}}</div>
<div class="num count">{{statisticInfo?.count}}</div>
</div>
<div class="salseContent">
<div>首年保费</div>
<div>首年佣金</div>
<div class="count">件数</div>
</div>
</div> </div>
</div> </div>
<div class="rankInfoWrapper"> <div class="rankInfoWrapper">
<div class="title">
<ul class="tab">
<li *ngFor="let item of performanceList" (click)="subordinateSystemMemberQuery(item.time, online)"
[ngClass]="{selected:time==item.time}">
{{item.name}}
</li>
</ul>
<!-- <ul class="tab">
<li *ngFor="let listItem of list" (click)="subordinateSystemMemberQuery(time, listItem.type)"
[ngClass]="{selected:lineType==lis
tItem.type}">
{{listItem.name}}
</li>
</ul> -->
</div>
<div class="rankContent"> <div class="rankContent">
<div style="font-size: 18px;margin-bottom: 10px;">战队排名</div>
<ul> <ul>
<!-- <li class="rank">排名</li> --> <!-- <li class="rank">排名</li> -->
<li class="name">姓名</li> <li class="name">姓名</li>
<li class="fyp">FYP</li> <li class="fyp">首年保费</li>
<li class="fyc">FYC</li> <li class="fyc">首年佣金</li>
<li class="count">件数</li> <li class="count">件数</li>
</ul> </ul>
<div style="width: 100%;text-align: center;float: left;height: 35px;" *ngIf="performanceListShow?.length <=0"> <div style="width: 100%;text-align: center;float: left;height: 35px;" *ngIf="performanceListShow?.length <=0">
...@@ -42,9 +48,9 @@ ...@@ -42,9 +48,9 @@
{{performanceItem.rank}} {{performanceItem.rank}}
</li> --> </li> -->
<li class="name">{{performanceItem.name}}</li> <li class="name">{{performanceItem.name}}</li>
<li class="fyp">¥{{performanceItem.fyp | number: "1.2-2"}}</li> <li class="fyp remark">¥{{performanceItem.fyp | number: "1.2-2"}}</li>
<li class="fyc">¥{{performanceItem.fyc | number: "1.2-2"}}</li> <li class="fyc remark">¥{{performanceItem.fyc | number: "1.2-2"}}</li>
<li class="count">{{performanceItem.count}}</li> <li class="count remark">{{performanceItem.count}}</li>
</ul> </ul>
</div> </div>
</div> </div>
......
.salesWrapper{ .salesWrapper{
padding: 10px 10px 20px 10px; padding: 0 10px 20px 10px;
// background: #f6f7f2; // background: #0664a4;
background: #0664a4; background: #f7f7f2;
// background: -webkit-linear-gradient(to bottom right, #7cb8d4, #0664a4);
// background: -o-linear-gradient(to bottom right, #7cb8d4, #0664a4);
// background: -moz-linear-gradient(to bottom right, #7cb8d4, #0664a4);
// background: -ms-linear-gradient(to bottom right, #7cb8d4, #0664a4);
// background: linear-gradient(to bottom right, #7cb8d4, #0664a4);
min-height: 100%; min-height: 100%;
height: auto;
ul,ol{ ul,ol{
list-style: none; list-style: none;
} }
.teamHeader{ .teamHeader{
color: #ea2a37; color: #ff002a;
div{ .teamItem {
height: 30px; text-align: center;
overflow: hidden;
border-radius: 6px;
}
.teamItem.teamInfo{
font-size: 24px;
position: relative;
display: flex; display: flex;
justify-content: space-around;
align-items: center; align-items: center;
// text-shadow:#fff 1px 0 0,#fff 0 1px 0,#fff -1px 0 0,#fff 0 -1px 0; justify-content: center;
// -webkit-text-shadow:#fff 1px 0 0,#fff 0 1px 0,#fff -1px 0 0,#fff 0 -1px 0; padding:15px 0 10px 0;
// -moz-text-shadow:#fff 1px 0 0,#fff 0 1px 0,#fff -1px 0 0,#fff 0 -1px 0;
// *filter: Glow(color=#fff, strength=1);
} }
div.teamInfo{ .teamItem.totalSales{
font-size: 24px; margin: 8px 0px;
height: 45px; padding: 10px 0;
line-height: 45px; background: url('../../../assets/images/bg_02.jpg') no-repeat ;
// text-shadow: 0px 2px 3px #080808; box-shadow: 0 0px 2.5px #eceaea;
background-size: cover;
font-weight: bold; .teamTotal{
letter-spacing: 5px; width: 100%;
} font-size: 18px;
div.totalSales{ color: #333;
font-size: 16px; display: flex;
font-weight: bold; margin-bottom: 10px;
div{ justify-content: space-between;
span{ .title{
font-size: 18px; color: #333;
margin-right: 5px; width: 60%;
ul.tab{
float: right;
width: 50%;
font-size: 16px;
color: #fff;
li{
float: left;
margin-right: 5px;
text-align: left;
height: 30px;
line-height: 30px;
margin-right: 12%;
}
li.selected{
font-size: 18px;
font-weight: bold;
border-bottom: 2px #ff002a solid;
}
li:nth-child(3){
margin-right: 0;
}
} }
i.text{ ul.tab:nth-child(3){
font-size: 10px; width: 37%;
font-style: normal; float: right;
margin-top: 2px; li:nth-child(3){
float: right;
margin-right: 5%;
}
} }
} }
}
} .salseContent{
} width: 100%;
.rankInfoWrapper{
overflow: auto;
.title{
width: 100%;
float: left;
margin-bottom: 10px;
padding: 5px 5%;
ul.tab{
float: left; float: left;
width: 50%; padding: 5px 6.5%;
margin-right: 1%; div{
li{
float: left; float: left;
margin-right: 5px; width: 40%;
text-align: left; text-align: center;
height: 30px; color: #dcdcdc;
line-height: 30px; font-size: 12px;
margin-right: 12%;
color: #fff;
} }
li.selected{ div.num{
font-size: 18px;
font-weight: bold; font-weight: bold;
border-bottom: 2px #ff002a solid; font-size: 20px;
} color: #fff;
li:nth-child(3){
margin-right: 0;
} }
} div.count{
ul.tab:nth-child(3){ width: 18%;
width: 37%;
float: right;
li:nth-child(3){
float: right;
margin-right: 5%;
} }
} }
} }
}
.rankInfoWrapper{
overflow: auto;
width: 100%;
float: left;
.rankContent{ .rankContent{
float: left; float: left;
width: 100%; width: 100%;
overflow: auto; overflow: auto;
background: #fff; background: #fff;
box-shadow: 0 0px 2.5px #969696; box-shadow: 0 0px 2.5px #eceaea;
border-radius: 6px; border-radius: 6px;
padding: 5px; padding: 5px;
ul{ ul{
...@@ -102,7 +112,6 @@ ...@@ -102,7 +112,6 @@
li{ li{
float: left; float: left;
width: 28%; width: 28%;
text-align: right; text-align: right;
margin-right: 1%; margin-right: 1%;
position: relative; position: relative;
...@@ -117,7 +126,10 @@ ...@@ -117,7 +126,10 @@
li.name{ li.name{
text-align: center; text-align: center;
} }
li.remark{
font-weight: bold;
color: #ff002a;
}
} }
} }
} }
......
...@@ -2,7 +2,8 @@ ...@@ -2,7 +2,8 @@
<div #letter_src id="letter_src"> <div #letter_src id="letter_src">
<div class="chinese"> <div class="chinese">
亲爱的 <span style="font-weight: bold;">{{brokerInfo?.name}}</span><br /> 亲爱的 <span style="font-weight: bold;">{{brokerInfo?.name}}</span>
<br /><br />
我谨代表股东,管理团队和员工,欢迎您来到上海银盾保险经纪有限公司! 我谨代表股东,管理团队和员工,欢迎您来到上海银盾保险经纪有限公司!
<br /><br />今天是非常特殊的一天,因为这是您来银盾的第一天,也是我们有幸获得了与您合作的第一天。我们将在共同信任的基础上,度过您在公司工作的岁月。这种理解和信任是愉快奋斗的主轴与纽带。 <br /><br />今天是非常特殊的一天,因为这是您来银盾的第一天,也是我们有幸获得了与您合作的第一天。我们将在共同信任的基础上,度过您在公司工作的岁月。这种理解和信任是愉快奋斗的主轴与纽带。
<br /><br /> <br /><br />
...@@ -15,9 +16,12 @@ ...@@ -15,9 +16,12 @@
<br /><br />希望您也能与我们一起学习和成长,共同带领公司迈向新高度。<br /><br />(签名)<img style="max-width: 45%;margin-left: 5%;" <br /><br />希望您也能与我们一起学习和成长,共同带领公司迈向新高度。<br /><br />(签名)<img style="max-width: 45%;margin-left: 5%;"
src="assets/images/sign.png" alt=""><br /> src="assets/images/sign.png" alt=""><br />
<br /> <br />
万双莲<br /><br />
银盾保险经纪董事长
<br />
<br /> <br />
</div> </div>
<div class="english"> <div class="english" style="letter-spacing: 1px;">
Dear <span style="font-weight: bold;">{{brokerInfo?.name}}</span>,<br /><br /> Dear <span style="font-weight: bold;">{{brokerInfo?.name}}</span>,<br /><br />
On behalf the shareholders, the management team and staff, I would like to personally On behalf the shareholders, the management team and staff, I would like to personally
welcome you on board with Yin Dun Insurance Brokers Co Ltd!<br /><br /> welcome you on board with Yin Dun Insurance Brokers Co Ltd!<br /><br />
...@@ -51,6 +55,8 @@ ...@@ -51,6 +55,8 @@
company to greater heights.<br /><br /> company to greater heights.<br /><br />
With Regards<br /><br /> With Regards<br /><br />
(Signature)<img style="max-width: 45%;margin-left: 5%;" src="assets/images/sign.png" alt=""><br /><br /> (Signature)<img style="max-width: 45%;margin-left: 5%;" src="assets/images/sign.png" alt=""><br /><br />
Sharon Wan <br /><br />
Chairman, Yindun Insurance Brokerage
</div> </div>
......
...@@ -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">&#xe674;</span>
<div class="name">开关 switch-基本状态-关闭状态</div>
<div class="code-name">&amp;#xe674;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe676;</span>
<div class="name">开关 switch-基本状态-点亮状态</div>
<div class="code-name">&amp;#xe676;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe671;</span> <span class="icon iconfont">&#xe671;</span>
<div class="name">精选产品库</div> <div class="name">精选产品库</div>
<div class="code-name">&amp;#xe671;</div> <div class="code-name">&amp;#xe671;</div>
...@@ -1035,6 +1047,24 @@ ...@@ -1035,6 +1047,24 @@
<ul class="icon_lists dib-box"> <ul class="icon_lists dib-box">
<li class="dib"> <li class="dib">
<span class="icon iconfont icon-kaiguanswitch-jibenzhuangtai-dianliangzhuangtai"></span>
<div class="name">
开关 switch-基本状态-关闭状态
</div>
<div class="code-name">.icon-kaiguanswitch-jibenzhuangtai-dianliangzhuangtai
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-kaiguanswitch-jibenzhuangtai-dianliangzhuangtai-copy"></span>
<div class="name">
开关 switch-基本状态-点亮状态
</div>
<div class="code-name">.icon-kaiguanswitch-jibenzhuangtai-dianliangzhuangtai-copy
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-jingxuanchanpinku"></span> <span class="icon iconfont icon-jingxuanchanpinku"></span>
<div class="name"> <div class="name">
精选产品库 精选产品库
...@@ -2496,6 +2526,22 @@ ...@@ -2496,6 +2526,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-kaiguanswitch-jibenzhuangtai-dianliangzhuangtai"></use>
</svg>
<div class="name">开关 switch-基本状态-关闭状态</div>
<div class="code-name">#icon-kaiguanswitch-jibenzhuangtai-dianliangzhuangtai</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-kaiguanswitch-jibenzhuangtai-dianliangzhuangtai-copy"></use>
</svg>
<div class="name">开关 switch-基本状态-点亮状态</div>
<div class="code-name">#icon-kaiguanswitch-jibenzhuangtai-dianliangzhuangtai-copy</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-jingxuanchanpinku"></use> <use xlink:href="#icon-jingxuanchanpinku"></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": "8897231",
"name": "开关 switch-基本状态-关闭状态",
"font_class": "kaiguanswitch-jibenzhuangtai-dianliangzhuangtai",
"unicode": "e674",
"unicode_decimal": 58996
},
{
"icon_id": "12636275",
"name": "开关 switch-基本状态-点亮状态",
"font_class": "kaiguanswitch-jibenzhuangtai-dianliangzhuangtai-copy",
"unicode": "e676",
"unicode_decimal": 58998
},
{
"icon_id": "4989831", "icon_id": "4989831",
"name": "精选产品库", "name": "精选产品库",
"font_class": "jingxuanchanpinku", "font_class": "jingxuanchanpinku",
......
...@@ -20,6 +20,12 @@ Created by iconfont ...@@ -20,6 +20,12 @@ Created by iconfont
/> />
<missing-glyph /> <missing-glyph />
<glyph glyph-name="kaiguanswitch-jibenzhuangtai-dianliangzhuangtai" unicode="&#58996;" d="M0 384C0 666.763636 229.003636 896 512.186182 896h1023.627636C1818.670545 896 2048 666.810182 2048 384c0-282.763636-229.003636-512-512.186182-512H512.186182C229.329455-128 0 101.003636 0 384zM512-34.909091a418.909091 418.909091 0 1 1 0 837.818182 418.909091 418.909091 0 0 1 0-837.818182z" horiz-adv-x="2048" />
<glyph glyph-name="kaiguanswitch-jibenzhuangtai-dianliangzhuangtai-copy" unicode="&#58998;" d="M0 384C0 666.763636 229.003636 896 512.186182 896h1023.627636C1818.670545 896 2048 666.8101819999999 2048 384c0-282.763636-229.003636-512-512.186182-512H512.186182C229.329455-128 0 101.00363600000003 0 384zM1536-34.90909099999999a418.909091 418.909091 0 1 1 0 837.818182 418.909091 418.909091 0 0 1 0-837.818182z" horiz-adv-x="2048" />
<glyph glyph-name="jingxuanchanpinku" unicode="&#58993;" d="M412.64378987 340.29309120000005L89.51916693 340.29309120000005c-29.74300907 0-53.85373973-24.11182293-53.85373973-53.85373973l0-323.12353174c0-29.74300907 24.11182293-53.85373973 53.85373973-53.85373973L412.64378987-90.53791999999999c29.74300907 0 53.85373973 24.11182293 53.85373973 53.85373973L466.49753067 286.43935147C466.49753067 316.18236053 442.38570773 340.29309120000005 412.64378987 340.29309120000005zM421.61941333-9.757309869999972c0-19.828672-16.074912-35.9024928-35.9024928-35.9024928L116.44603733-45.659802669999976c-19.828672 0-35.9024928 16.074912-35.9024928 35.9024928L80.54354453 259.51248107000004c0 19.828672 16.074912 35.9024928 35.9024928 35.9024928l269.26979094 0c19.828672 0 35.9024928-16.074912 35.9024928-35.9024928L421.61832213-9.757309869999972zM933.23212587 340.29309120000005L610.1085952 340.29309120000005c-29.74300907 0-53.85373973-24.11182293-53.85373973-53.85373973l0-323.12353174c0-29.74300907 24.11182293-53.85373973 53.85373973-53.85373973l323.12353173 0c29.74300907 0 53.85373973 24.11182293 53.85373974 53.85373973L987.08586667 286.43935147C987.08586667 316.18236053 962.97513493 340.29309120000005 933.23212587 340.29309120000005zM942.20774933-9.757309869999972c0-19.828672-16.074912-35.9024928-35.9024928-35.9024928L637.03546453-45.659802669999976c-19.828672 0-35.9024928 16.074912-35.9024928 35.9024928L601.13297173 259.51248107000004c0 19.828672 16.074912 35.9024928 35.9024928 35.9024928l269.26979094 0c19.8275808 0 35.9024928-16.074912 35.9024928-35.9024928L942.20774933-9.757309869999972zM742.5064064 442.17400213c16.04762453-16.04762453 42.06634453-16.04762453 58.113968 0l174.34190507 174.34190507c16.04762453 16.04762453 16.04762453 42.06634453 0 58.113968L800.62037547 848.97178027c-16.04762453 16.04762453-42.06634453 16.04762453-58.113968 0L568.16341013 674.6298752c-16.04762453-16.04762453-16.04762453-42.06634453 0-58.113968L742.5064064 442.17400213zM617.6052 663.67968107l135.8514016 135.8514016c10.00384107 10.00384107 26.2228352 10.00384107 36.22667627 0l135.8514016-135.8514016c10.00384107-10.00384107 10.00384107-26.2228352 0-36.22667627l-135.8514016-135.8514016c-10.00384107-10.00384107-26.2228352-10.00384107-36.22667627 0l-135.8514016 135.8514016C607.60245013 637.4557536 607.60245013 653.67583893 617.6052 663.67968107zM412.64378987 860.88251947L89.51916693 860.88251947c-29.74300907 0-53.85373973-24.11182293-53.85373973-53.85373974l0-323.12353173c0-29.74300907 24.11182293-53.85373973 53.85373973-53.85373973L412.64378987 430.05150827c29.74300907 0 53.85373973 24.11182293 53.85373973 53.85373973L466.49753067 807.02768747C466.49753067 836.77069653 442.38570773 860.88251947 412.64378987 860.88251947zM421.61941333 510.83102613c0-19.828672-16.074912-35.9024928-35.9024928-35.9024928L116.44603733 474.92853333c-19.828672 0-35.9024928 16.074912-35.9024928 35.9024928L80.54354453 780.10081707c0 19.828672 16.074912 35.9024928 35.9024928 35.9024928l269.26979094 0c19.828672 0 35.9024928-16.074912 35.9024928-35.9024928L421.61832213 510.83102613z" horiz-adv-x="1024" /> <glyph glyph-name="jingxuanchanpinku" unicode="&#58993;" d="M412.64378987 340.29309120000005L89.51916693 340.29309120000005c-29.74300907 0-53.85373973-24.11182293-53.85373973-53.85373973l0-323.12353174c0-29.74300907 24.11182293-53.85373973 53.85373973-53.85373973L412.64378987-90.53791999999999c29.74300907 0 53.85373973 24.11182293 53.85373973 53.85373973L466.49753067 286.43935147C466.49753067 316.18236053 442.38570773 340.29309120000005 412.64378987 340.29309120000005zM421.61941333-9.757309869999972c0-19.828672-16.074912-35.9024928-35.9024928-35.9024928L116.44603733-45.659802669999976c-19.828672 0-35.9024928 16.074912-35.9024928 35.9024928L80.54354453 259.51248107000004c0 19.828672 16.074912 35.9024928 35.9024928 35.9024928l269.26979094 0c19.828672 0 35.9024928-16.074912 35.9024928-35.9024928L421.61832213-9.757309869999972zM933.23212587 340.29309120000005L610.1085952 340.29309120000005c-29.74300907 0-53.85373973-24.11182293-53.85373973-53.85373973l0-323.12353174c0-29.74300907 24.11182293-53.85373973 53.85373973-53.85373973l323.12353173 0c29.74300907 0 53.85373973 24.11182293 53.85373974 53.85373973L987.08586667 286.43935147C987.08586667 316.18236053 962.97513493 340.29309120000005 933.23212587 340.29309120000005zM942.20774933-9.757309869999972c0-19.828672-16.074912-35.9024928-35.9024928-35.9024928L637.03546453-45.659802669999976c-19.828672 0-35.9024928 16.074912-35.9024928 35.9024928L601.13297173 259.51248107000004c0 19.828672 16.074912 35.9024928 35.9024928 35.9024928l269.26979094 0c19.8275808 0 35.9024928-16.074912 35.9024928-35.9024928L942.20774933-9.757309869999972zM742.5064064 442.17400213c16.04762453-16.04762453 42.06634453-16.04762453 58.113968 0l174.34190507 174.34190507c16.04762453 16.04762453 16.04762453 42.06634453 0 58.113968L800.62037547 848.97178027c-16.04762453 16.04762453-42.06634453 16.04762453-58.113968 0L568.16341013 674.6298752c-16.04762453-16.04762453-16.04762453-42.06634453 0-58.113968L742.5064064 442.17400213zM617.6052 663.67968107l135.8514016 135.8514016c10.00384107 10.00384107 26.2228352 10.00384107 36.22667627 0l135.8514016-135.8514016c10.00384107-10.00384107 10.00384107-26.2228352 0-36.22667627l-135.8514016-135.8514016c-10.00384107-10.00384107-26.2228352-10.00384107-36.22667627 0l-135.8514016 135.8514016C607.60245013 637.4557536 607.60245013 653.67583893 617.6052 663.67968107zM412.64378987 860.88251947L89.51916693 860.88251947c-29.74300907 0-53.85373973-24.11182293-53.85373973-53.85373974l0-323.12353173c0-29.74300907 24.11182293-53.85373973 53.85373973-53.85373973L412.64378987 430.05150827c29.74300907 0 53.85373973 24.11182293 53.85373973 53.85373973L466.49753067 807.02768747C466.49753067 836.77069653 442.38570773 860.88251947 412.64378987 860.88251947zM421.61941333 510.83102613c0-19.828672-16.074912-35.9024928-35.9024928-35.9024928L116.44603733 474.92853333c-19.828672 0-35.9024928 16.074912-35.9024928 35.9024928L80.54354453 780.10081707c0 19.828672 16.074912 35.9024928 35.9024928 35.9024928l269.26979094 0c19.828672 0 35.9024928-16.074912 35.9024928-35.9024928L421.61832213 510.83102613z" horiz-adv-x="1024" />
......
...@@ -22,27 +22,58 @@ ...@@ -22,27 +22,58 @@
<body> <body>
<app-root></app-root> <app-root></app-root>
<!-- <div class="loading-box" id="loading"> <!-- <div class="loadingBox" id="loading"
<div class="mark"></div>
<img width="20" height="20" src="assets/images/loading.gif">
</div> -->
<div class="loadingBox" id="loading"
style="display: flex;justify-content: center;align-items: center;position: fixed;left:40%;top:40%;width:100%;height: 100%;"> style="display: flex;justify-content: center;align-items: center;position: fixed;left:40%;top:40%;width:100%;height: 100%;">
<img src="assets/images/loading.gif" alt="loading" class="img-responsive" style="width: 68px;height: 68px;"> <img src="assets/images/loading.gif" alt="loading" class="img-responsive" style="width: 68px;height: 68px;">
</div> -->
<div id="adv"
style="width: 100%;min-width: 320px;
max-width: 640px;overflow: hidden;position: fixed;top: 0;right: 0; bottom: 0;left: 0;background: #fff;margin: auto;">
<div class="content" style="text-align: center;width: 60%;margin: 45% auto 0 auto;">
<img style="width:100%;margin-bottom: 15px;" src="assets/images/login_logo.png">
<div class="loadingContent">
<span style="letter-spacing: 12px;">海纳百川</span>
<span style="letter-spacing: 12px;">·</span>
<span style="letter-spacing: 12px;">赢家后</span>
</div>
</div>
</div>
<div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
const initialize = function () { const initialize = function () {
let loading = document.getElementById("loading"); let loading = document.getElementById("adv");
loading.style.display = 'block'; loading.style.display = 'block';
document.onreadystatechange = function () { document.onreadystatechange = function () {
if (document.readyState == "complete") { if (document.readyState == "complete") {
loading.style.display = 'none'; setTimeout(() => {
loading.style.display = 'none';
}, 4000)
} }
} }
} }
initialize(); if (window.name == "") {
window.name = "isReload"; // 在首次进入页面时我们可以给window.name设置一个固定值
initialize();
} else if (window.name == "isReload") {
let loading = document.getElementById("adv");
loading.style.display = 'none';
}
//用于去除alert的url
window.alert = function (name) {
var iframe = document.createElement("IFRAME");
iframe.style.display = "none";
iframe.setAttribute("src", 'data:text/plain,');
document.documentElement.appendChild(iframe);
window.frames[0].window.alert(name);
iframe.parentNode.removeChild(iframe);
}
</script> </script>
<script src="./assets/js/jquery.min.js"></script> <script src="./assets/js/jquery.min.js"></script>
<script src="./assets/js/qrcode.js"></script> <script src="./assets/js/qrcode.js"></script>
......
...@@ -86,6 +86,23 @@ input::placeholder { ...@@ -86,6 +86,23 @@ input::placeholder {
transform: scaleY(.5); transform: scaleY(.5);
background-color: #dcdcdc; background-color: #dcdcdc;
} }
.loadingContent{
font-size:14px;
font-family: '微软雅黑';
position: relative;
}
.loadingContent:before {
content: " ";
position: absolute;
left: 3px;
top: -5px;
width: 98%;
height: 1px;
border-top: 1px solid #000000 !important;
transform: scaleY(0.5);
}
@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