Commit d5d2e571 by Chao Sun

我的设置&页面样式优化

parent 04b79b16
......@@ -25,7 +25,7 @@ export class AppComponent implements OnInit, OnDestroy {
this.authService.obtainToken().subscribe(res => {
if (res['success']) {
localStorage.setItem('lifeToken', res['data']['token']);
this.getWxConfig();
this.ydWxConfig();
}
});
......@@ -36,10 +36,11 @@ export class AppComponent implements OnInit, OnDestroy {
this.subscription.unsubscribe();
}
// 微信JS-SDK注册
getWxConfig() {
// 微信JS-SDK注册
ydWxConfig() {
const url = encodeURIComponent(location.href.split('#')[0]);
this.authService.wxConfig(url).subscribe(res => {
this.authService.ydWxConfig(url).subscribe(res => {
const data = res['data'];
wx.config({
debug: false,
......
......@@ -13,12 +13,13 @@ export class AuthService {
}
private API = environment.BACKEND_URL_CONFIG_VALUE;
private ydapi = environment.ORIGINNAME;
isLoggedIn = false;
// store the URL so we can redirect after logging in
redirectUrl: string;
// 经纪人登陆
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));
}
......@@ -49,15 +50,18 @@ export class AuthService {
};
return this.http.post(url, JSON.stringify(ticketObj));
}
// 获取微信配置
wxConfig(Currenturl) {
const url = this.API + '/wxConfig';
//获取微信配置ydLife公众号
ydWxConfig(Currenturl) {
const url = this.ydapi + '/ydapi/wxConfig';
const postUrl = {
url: Currenturl
};
return this.http.post(url, JSON.stringify(postUrl));
}
// 获取错误详情
private handleError(error: HttpErrorResponse) {
if (error.error instanceof ErrorEvent) {
......
......@@ -31,6 +31,8 @@ export class MkMaterialDetailComponent implements OnInit {
rightWidth = 5;
bottomHeight = 5;
posterType: number;
isMobileShow: number;
isNameShow: number;
constructor(private activateRoute: ActivatedRoute,
private lifeCommonService: LifeCommonService,
private myService: MyService) {
......@@ -111,11 +113,15 @@ export class MkMaterialDetailComponent implements OnInit {
// 绘制字体
ctx.fillStyle = '#fff';
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(`${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);
};
}
......@@ -199,11 +205,14 @@ export class MkMaterialDetailComponent implements OnInit {
posterQuery(itemId, itemType) {
this.myService.posterQuery({
id: this.posterType,
practitionerId: JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId'],
paginationInfo: {
noLimitFlag: 'CONFIRM'
}
}).subscribe(res => {
if (res['success']) {
this.isMobileShow = res['data']['isMobileShow'];
this.isNameShow = res['data']['isNameShow'];
const posterInfos = res['data']['posterInfos'];
const posterInfo = posterInfos.filter(item => item.id == itemId && item.itemType == itemType).pop();
this.productPosterPath = posterInfo.productPosterPath + '?v=' + new Date().getTime();
......
......@@ -21,6 +21,7 @@ export class MkMaterialComponent implements OnInit {
posterQuery() {
const param = {
practitionerId: JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId'],
mdDropOptionId: this.selectedCategoryId,
paginationInfo: { noLimitFlag: 'CONFIRM' }
}
......
......@@ -143,7 +143,8 @@
<div>
<div>跟进状态</div>
<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 *ngFor="let businessStatusItem of businessStatusList" value="{{businessStatusItem.id}}">
{{businessStatusItem.dropOptionName}}
......@@ -160,7 +161,7 @@
<div>
<div>跟进时间</div>
<div><input style="-webkit-appearance: none;" id="time" class="form-control" type="date"
[(ngModel)]="opportunityRecordNoticeDate"></div>
[(ngModel)]="opportunityRecordNoticeDate" (blur)="inputBlur()"></div>
</div>
<ul class="footer">
<li (click)="ownOpportunityRecordSave()">确定</li>
......
......@@ -9,12 +9,7 @@
<div class="brokerInfo">
<div class="brokerName">
<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;"
(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> -->
<span i class="iconfont icon-ar-r" style="font-size:18px;" routerLink="setting"></span>
</div>
<div class="brokerTag">
......@@ -35,11 +30,11 @@
<span class="detail" (click)="jumpToDetail()">龙虎榜<i class="iconfont icon-ar-r"
style="font-size:12px;"></i></span>
<ul class="tab">
<li *ngFor="let item of performanceList" (click)="selectRang(item.type,'fyp')"
[ngClass]="{selected:performanceSelectedFlag==item.type}">
<li *ngFor="let item of performanceList" (click)="rank(item.time,1,2);rank(item.time,2,2)"
[ngClass]="{selected:performanceSelectedFlag==item.time}">
<div style="position: relative;">
<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>
</div>
</li>
......@@ -47,30 +42,38 @@
<div>
<ul class="performance_list title">
<li></li>
<li>保费<span class="iconfont icon-xiangxia" style="font-size: 10px;margin-left: 3px;"
(click)="selectRang(performanceSelectedFlag,'fyp')"></span></li>
<li>佣金<span class="iconfont icon-xiangxia" style="font-size: 10px;margin-left: 3px;"
(click)="selectRang(performanceSelectedFlag,'fyc')"></span></li>
<li>件数<span class="iconfont icon-xiangxia" style="font-size: 10px;margin-left: 3px;"
(click)="selectRang(performanceSelectedFlag,'count')"></span></li>
<li>首年保费
<!-- <span class="iconfont icon-xiangxia" style="font-size: 10px;margin-left: 3px;"></span> -->
</li>
<li>首年佣金</li>
<li>件数</li>
<li>排名</li>
</ul>
<ul class="performance_list">
<li>线上</li>
<li class="markPrice" style="margin-left: 7px;">
¥{{performanceInfo?.fyp | number: "1.0-0"}}
¥{{onlineInfo?.fyp | number: "1.0-0"}}
</li>
<li class="markPrice">
¥{{performanceInfo?.fyc | number: "1.0-0"}}
¥{{onlineInfo?.fyc | number: "1.0-0"}}
</li>
<li class="markPrice">{{performanceInfo?.count?performanceInfo.count:'-'}}</li>
<li class="markPrice">{{onlineInfo?.count?onlineInfo.count:'-'}}</li>
<li class="markPrice">
{{performanceInfo?.ranking?performanceInfo.ranking:'-'}}
{{onlineInfo?.rank?onlineInfo.rank:'-'}}
</li>
</ul>
<ul class="performance_list">
<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>
</div>
</div>
......@@ -148,6 +151,17 @@
</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>
......@@ -160,4 +174,5 @@
</div>
<ydlife-alert *ngIf="isNeedAlert" [dialogInfo]="dialogInfo" (popInfo)="getPopInfo()"></ydlife-alert>
\ No newline at end of file
......@@ -22,9 +22,7 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
deviceType: number;
announcementLists: Array<any>;
firstAnnouncement: string;
allPerformanceInfo: any;
performanceList: Array<any>;
performanceInfo: any;
performanceSelectedFlag: string;
leftWidth: any;
products: Plans[];
......@@ -33,7 +31,9 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
firstAnnouncementTitle: string;
//判断是否显示我的团队
isShow: boolean;
onlineInfo: any;
offlineInfo: any;
advFlag: boolean = false;
constructor(
private router: Router,
private lifeCommonService: LifeCommonService,
......@@ -98,10 +98,13 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
}, 300)
this.performanceList = [
{ type: 'month', name: '本月' },
{ type: 'year', name: '本年度' }
{ type: 'month', name: '本月', time: 1 },
{ type: 'year', name: '本年度', time: 2 }
]
this.brokerInfoQuery();
//初始化调本月线上 保费+ 本月线下保费
this.rank(1, 1, 1)
this.rank(1, 2, 1)
this.recommendPlanQuery();
}
......@@ -109,6 +112,12 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
setTimeout(() => {
this.firstAnnouncementTitle = this.getStr(this.hide.nativeElement.innerText, '32')
}, 400);
// setTimeout(() => {
// if (this.firstAnnouncementTitle) {
// this.advFlag = false;
// }
// }, 1000)
}
// 菜单导航
......@@ -167,19 +176,37 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
this.router.navigate(['/login']);
}
//查询排行
brokerInfoQuery() {
const practitionerId = JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId'];
this.myService.brokerInfoQuery({ practitionerId: practitionerId }).subscribe((res) => {
/**
* time 1-month,2-year
* type 1-保费,2-佣金 3-件数
* 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']) {
this.allPerformanceInfo = res['data']['commissionInfo'];
// sessionStorage.setItem('allPerformanceInfo', JSON.stringify((this.allPerformanceInfo)));
//初始化查本月业绩
this.selectRang('month', 'fyp');
if (platform == 1) {
this.onlineInfo = res['data']['practitionerInfo'];
}
if (platform == 2) {
this.offlineInfo = res['data']['practitionerInfo'];
}
}
})
}
//截取字符串
getStr(str, len) {
if (!str) return "";
......@@ -200,33 +227,6 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
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() {
......@@ -275,7 +275,7 @@ export class MyCenterHomeComponent implements OnInit, AfterViewInit {
}
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
import { ThanksComponent } from './thanks/thanks.component';
import { MySettingComponent } from './my-setting/my-setting.component';
import { MySettingDetailComponent } from './my-setting-detail/my-setting-detail.component';
import { MyNewsComponent } from './my-news/my-news.component';
const myRoutes: Routes = [
{ path: '', component: MyCenterHomeComponent, canActivate: [AuthGuard] },
......@@ -36,6 +37,7 @@ const myRoutes: Routes = [
{ path: 'thanks', component: ThanksComponent, canActivate: [AuthGuard] },
{ path: 'setting', component: MySettingComponent, canActivate: [AuthGuard] },
{ path: 'setting/:uploadType', component: MySettingDetailComponent, canActivate: [AuthGuard] },
{ path: 'news', component: MyNewsComponent, canActivate: [AuthGuard] },
];
......
<div class="wrapper_pic">
<div style="color:#ff3500;" *ngIf="this.uploadType =='headUrl'">上传头像时图片比例必须1:1</div>
<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="picItem headPic" *ngIf="this.uploadType =='headUrl'">
<div class="pic">
<img *ngIf="settingInfo.headImgUrl" src="{{settingInfo.headImgUrl}}" />
</div>
<div *ngIf="settingInfo.headImgUrl" (click)="chooseImg('headImgUrl')">点此重新选择头像</div>
<div *ngIf="!settingInfo.headImgUrl" (click)="chooseImg('headImgUrl')">点此选择头像</div>
<div *ngIf="settingInfo.headImgUrl" (click)="chooseImg('headImgUrl','','','change')">更换头像</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 class="wxPic" *ngIf="this.uploadType =='wxUrl'">
<div class="picItem wxPic" *ngIf="this.uploadType =='wxUrl'">
<div class="pic">
<img *ngIf="settingInfo.wxQRImgUrl" src="{{settingInfo.wxQRImgUrl}}" alt="" />
<img *ngIf="settingInfo.wxQRImgUrl" src="{{settingInfo.wxQRImgUrl}}" />
</div>
<div *ngIf="settingInfo.wxQRImgUrl" (click)="chooseImg('wxQRImgUrl')">点此重新选择微信二维码</div>
<div *ngIf="!settingInfo.wxQRImgUrl" (click)="chooseImg('wxQRImgUrl')">点此选择微信二维码</div>
<div *ngIf="settingInfo.wxQRImgUrl" (click)="chooseImg('wxQRImgUrl','','','change')">更换微信二维码</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 class="lifePic" *ngIf="this.uploadType =='lifeUrl'">
<div class="lifePicItem" *ngFor="let lifeImgUrlItem of settingInfo.lifeImgUrls">
<div class="picItem lifePic" *ngIf="this.uploadType =='lifeUrl'">
<div class="lifePicItem" *ngFor="let lifeImgUrlItem of settingInfo.lifeImgUrls;index as i;">
<div class="pic">
<img src="{{lifeImgUrlItem.lifeImgUrl}}" />
</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 *ngIf="this.uploadType =='lifeUrl'" (click)="chooseImg('lifeImgUrl')">点此添加生活照</div>
<div class="saveBtn" *ngIf="uploadType=='lifeUrl' || uploadType=='wxUrl' || uploadType=='headUrl'"
(click)="mySettingSave()">确定上传</div>
<div *ngIf="this.uploadType =='lifeUrl'" class="add" (click)="chooseImg('lifeImgUrl')">
<i class="iconfont icon-jiahao"></i>
</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>
<textarea class="form-control" rows="10" [(ngModel)]="settingInfo.bioIntro"></textarea>
<div class="saveBtn" (click)="mySettingSave()">保存</div>
<textarea class="form-control" rows="10" [(ngModel)]="settingInfo.bioIntro" placeholder="赶紧介绍一下你自己吧!"
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 class="switch" *ngIf="this.uploadType =='switch'">
<div>
<span>显示手机号</span>
<span class="iconfont icon-ar-r"></span>
<div class="picItem switch" *ngIf="this.uploadType =='switch'">
<div class="switchItem">
<div class="title">
<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>
<span>显示手机号</span>
<span class="iconfont icon-ar-r"></span>
<div class="switchItem">
<div class="title">
<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 class="saveBtn" (click)="mySettingSave()">确定</div>
</div>
</div>
<ydlife-alert *ngIf="isNeedAlert" [dialogInfo]="dialogInfo" (popInfo)="getPopInfo()"></ydlife-alert>
<ydlife-toast *ngIf="toastDialog" [toastInfo]="toastInfo"></ydlife-toast>
\ No newline at end of file
......@@ -2,27 +2,94 @@
width: 100%;
padding: 20px 5px;
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%;
margin: 10px auto;
img{
width: 90%;
margin: 0 auto;
max-width: 90%;
padding: 5px 10px;
.switchItem{
display: flex;
justify-content: space-between;
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{
margin: 8px auto;
.saveBtn{
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 @@
<span class="iconfont icon-ar-r"></span>
</div>
</div>
<div class="item">
<div class="item" [routerLink]="['/setting','switch']">
<span>个性设置</span>
<div class="content">
<span class="iconfont icon-ar-r" [routerLink]="['/setting','switch']"></span>
<span class="iconfont icon-ar-r"></span>
</div>
</div>
<div class="saveBtn" (click)="getOut()">退出</div>
</div>
\ No newline at end of file
......@@ -60,4 +60,13 @@
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 { MyService } from '../my.service';
import { SettingInfo } from '../../domain/settinginfo';
import { Router } from "@angular/router";
@Component({
selector: 'ydlife-my-setting',
templateUrl: './my-setting.component.html',
......@@ -11,7 +13,7 @@ export class MySettingComponent implements OnInit {
settingInfo: SettingInfo = new SettingInfo();
constructor(
private myService: MyService) { }
private myService: MyService, private router: Router) { }
ngOnInit() {
this.mySettingQuery();
......@@ -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
import { ThanksComponent } from './thanks/thanks.component';
import { MySettingComponent } from './my-setting/my-setting.component';
import { MySettingDetailComponent } from './my-setting-detail/my-setting-detail.component';
import { MyNewsComponent } from './my-news/my-news.component';
@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: [
CommonModule,
LifeCommonModule,
......
......@@ -10,7 +10,7 @@ export class MyService {
}
private API = environment.BACKEND_URL_CONFIG_VALUE;
private ydapi = environment.ORIGINNAME;
// 保存分享码
shareCallBack(shareInfo) {
const url = this.API + '/shareCallBack';
......@@ -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) {
const url = this.API + '/practitioner/practitionerPolicyListQuery';
......@@ -142,25 +135,34 @@ export class MyService {
//下载多媒体文件接口
mediaGet(mediaId) {
const url = this.API + '/mediaGet';
const url = this.ydapi + '/ydapi/practitioner/mediaGet';
return this.http.post(url, JSON.stringify(mediaId));
}
//设置查询
mySettingQuery(practitionerId) {
const url = this.API + '/practitioner/mySettingQuery';
const url = this.ydapi + '/ydapi/practitioner/settingQuery';
return this.http.post(url, JSON.stringify(practitionerId));
}
//我的设置保存
mySettingSave(param) {
const url = this.API + '/practitioner/mySettingSave';
const url = this.ydapi + '/ydapi/practitioner/settingSave';
return this.http.post(url, JSON.stringify(param));
}
//删除生活照
myImgDelete(param) {
const url = this.API + '/practitioner/myImgDelete';
const url = this.ydapi + '/ydapi/practitioner/imgDelete';
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 @@
</div>
<div class="title">
<ul class="tab">
<li *ngFor="let item of performanceList" (click)="selectRang(item.type,lineType,rankType)"
[ngClass]="{selected:dateType==item.type}">
<li *ngFor="let item of performanceList" (click)="rank(item.type,isOnlineType,searchType)"
[ngClass]="{selected:timeType==item.type}">
{{item.name}}
</li>
</ul>
<ul class="tab">
<li *ngFor="let listItem of list" (click)="selectRang(dateType,listItem.type,rankType)"
[ngClass]="{selected:lineType==listItem.type}">
<li *ngFor="let listItem of typelist" (click)="rank(timeType,listItem.type,searchType)"
[ngClass]="{selected:isOnlineType==listItem.type}">
{{listItem.name}}
</li>
</ul>
<ul class="tab">
<li *ngFor="let searchListItem of searchList" (click)="selectRang(dateType,lineType,searchListItem.type)"
[ngClass]="{selected:rankType==searchListItem.type}">
<li *ngFor="let searchListItem of searchList" (click)="rank(timeType,isOnlineType,searchListItem.type)"
[ngClass]="{selected:searchType==searchListItem.type}">
{{searchListItem.name}}
</li>
</ul>
......@@ -28,12 +28,12 @@
<li>排名</li>
<li>姓名</li>
<li>团队</li>
<li *ngIf="rankType=='fyp'">保费</li>
<li *ngIf="rankType=='fyc'">佣金</li>
<li *ngIf="rankType=='count'">件数</li>
<li *ngIf="searchType=='1'" style="color: #333;font-weight: normal;">首年保费</li>
<li *ngIf="searchType=='2'" style="color: #333;font-weight: normal;">首年佣金</li>
<li *ngIf="searchType=='3'" style="color: #333;font-weight: normal;margin-right: 0;">件数</li>
</ul>
<div style="width: 100%;text-align: center;float: left;" *ngIf="performanceListShow?.length <=0">暂无数据</div>
<ul *ngFor="let performanceItem of performanceListShow;index as i;">
<div style="width: 100%;text-align: center;float: left;" *ngIf="rankList?.length <=0">暂无数据</div>
<ul *ngFor="let rankItem of rankList;index as i;">
<li class="icon">
<ng-container *ngIf="i<=2">
<div [ngSwitch]="i+1">
......@@ -47,13 +47,13 @@
[ngStyle]="{'color':'#fdb941','position': 'absolute','left':'0','font-size':'35px','top':'0','right':'0','bottom':'0','margin':'-3px auto'}"></i>
</div>
</ng-container>
{{performanceItem.rank}}
{{rankItem.rank}}
</li>
<li>{{performanceItem.name}}</li>
<li>{{performanceItem.subordinateSystemName}}</li>
<li *ngIf="rankType=='fyp'">¥{{performanceItem.fyp | number: "1.2-2"}}</li>
<li *ngIf="rankType=='fyc'">¥{{performanceItem.fyc | number: "1.2-2"}}</li>
<li *ngIf="rankType=='count'">{{performanceItem.count}}</li>
<li>{{rankItem.name}}</li>
<li>{{rankItem.subordinateSystemName}}</li>
<li *ngIf="searchType==1">¥{{rankItem.fyp | number: "1.2-2"}}</li>
<li *ngIf="searchType==2">¥{{rankItem.fyc | number: "1.2-2"}}</li>
<li *ngIf="searchType==3">{{rankItem.count}}</li>
</ul>
</div>
</div>
\ No newline at end of file
......@@ -10,10 +10,10 @@
width: 100%;
float: left;
margin-bottom: 10px;
padding: 10px 5%;
padding: 10px 0;
ul.tab{
float: left;
width: 29%;
width: 21%;
margin-right: 1%;
li{
float: left;
......@@ -21,7 +21,7 @@
text-align: left;
height: 30px;
line-height: 30px;
margin-right: 10%;
margin-right: 5%;
color: #fff;
}
li.selected{
......@@ -34,11 +34,18 @@
}
}
ul.tab:nth-child(3){
width: 37%;
width: 55%;
float: right;
margin-right: 0;
li{
width: 38%;
margin-right: 2%;
text-align: center;
}
li:nth-child(3){
float: right;
margin-right: 5%;
width: 20%;
margin-right: 0;
}
}
}
......
......@@ -7,77 +7,58 @@ import { MyService } from "../my.service";
styleUrls: ['./sales-rank.component.scss']
})
export class SalesRankComponent implements OnInit {
time: any;
performanceList: Array<any>;
dateType: any;
lineType: any;
allPerformanceInfo: any;
list: Array<any>;
performanceListShow: Array<any>;
rankType: any;
typelist: Array<any>;
searchList: Array<any>;
timeType: any;
searchType: any;
isOnlineType: any;
rankList: Array<any>;
constructor(private activatedRoute: ActivatedRoute, private myService: MyService) {
this.performanceList = [
{ type: 'month', name: '本月' },
{ type: 'year', name: '本年' }
{ type: 1, name: '本月' },
{ type: 2, name: '本年' }
]
this.list = [
{ type: 'online', name: '线上' },
{ type: 'underLine', name: '寿险' },
this.typelist = [
{ type: 1, name: '线上' },
{ type: 2, name: '寿险' },
]
this.searchList = [
{ type: 'fyp', name: 'FYP' },
{ type: 'fyc', name: 'FYC' },
{ type: 'count', name: '件数' }
{ type: 1, name: '首年保费' },
{ type: 2, name: '首年佣金' },
{ type: 3, name: '件数' }
]
}
ngOnInit() {
this.dateType = this.activatedRoute.snapshot.queryParams.searchType;
this.allPerformanceInfo = JSON.parse(sessionStorage.getItem('allPerformanceInfo'));
this.brokerInfoQuery();
this.time = this.activatedRoute.snapshot.queryParams.time ? Number(this.activatedRoute.snapshot.queryParams.time) : null;
//初始化查线上保费
this.rank(this.time, 1, 1)
}
brokerInfoQuery() {
const practitionerId = JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId'];
this.myService.brokerInfoQuery({ practitionerId: practitionerId }).subscribe((res) => {
/**
* time 1-month,2-year
* 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']) {
this.allPerformanceInfo = res['data']['commissionInfo'];
// sessionStorage.setItem('allPerformanceInfo', JSON.stringify((this.allPerformanceInfo)));
//初始化查询本月+线上+fyp
this.selectRang('month', 'online', 'fyp')
this.rankList = res['data']['rank'];
} else {
this.rankList = [];
}
})
}
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="teamHeader">
<div class="teamInfo">
{{subordinateSystemName}}战队
<div class="teamItem teamInfo">
<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 class="totalSales">
<div><span>{{statisticInfo?.fyp | number: "1.2-2"}} </span><i class="text">保费</i></div>
<div><span>{{statisticInfo?.fyc | number: "1.2-2"}}</span><i class="text">佣金</i></div>
<div><span>{{statisticInfo?.count | number: "1.2-2"}}</span><i class="text">件数</i></div>
<div class="teamItem totalSales">
<div class="teamTotal">
<div style="padding-left: 5px;color: #fff;"> 战队业绩</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 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 style="font-size: 18px;margin-bottom: 10px;">战队排名</div>
<ul>
<!-- <li class="rank">排名</li> -->
<li class="name">姓名</li>
<li class="fyp">FYP</li>
<li class="fyc">FYC</li>
<li class="fyp">首年保费</li>
<li class="fyc">首年佣金</li>
<li class="count">件数</li>
</ul>
<div style="width: 100%;text-align: center;float: left;height: 35px;" *ngIf="performanceListShow?.length <=0">
......@@ -42,9 +48,9 @@
{{performanceItem.rank}}
</li> -->
<li class="name">{{performanceItem.name}}</li>
<li class="fyp">¥{{performanceItem.fyp | number: "1.2-2"}}</li>
<li class="fyc">¥{{performanceItem.fyc | number: "1.2-2"}}</li>
<li class="count">{{performanceItem.count}}</li>
<li class="fyp remark">¥{{performanceItem.fyp | number: "1.2-2"}}</li>
<li class="fyc remark">¥{{performanceItem.fyc | number: "1.2-2"}}</li>
<li class="count remark">{{performanceItem.count}}</li>
</ul>
</div>
</div>
......
.salesWrapper{
padding: 10px 10px 20px 10px;
// background: #f6f7f2;
background: #0664a4;
// 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);
padding: 0 10px 20px 10px;
// background: #0664a4;
background: #f7f7f2;
min-height: 100%;
height: auto;
ul,ol{
list-style: none;
}
.teamHeader{
color: #ea2a37;
div{
height: 30px;
color: #ff002a;
.teamItem {
text-align: center;
overflow: hidden;
border-radius: 6px;
}
.teamItem.teamInfo{
font-size: 24px;
position: relative;
display: flex;
justify-content: space-around;
align-items: center;
// text-shadow:#fff 1px 0 0,#fff 0 1px 0,#fff -1px 0 0,#fff 0 -1px 0;
// -webkit-text-shadow:#fff 1px 0 0,#fff 0 1px 0,#fff -1px 0 0,#fff 0 -1px 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);
justify-content: center;
padding:15px 0 10px 0;
}
div.teamInfo{
font-size: 24px;
height: 45px;
line-height: 45px;
// text-shadow: 0px 2px 3px #080808;
font-weight: bold;
letter-spacing: 5px;
}
div.totalSales{
font-size: 16px;
font-weight: bold;
div{
span{
font-size: 18px;
margin-right: 5px;
.teamItem.totalSales{
margin: 8px 0px;
padding: 10px 0;
background: url('../../../assets/images/bg_02.jpg') no-repeat ;
box-shadow: 0 0px 2.5px #eceaea;
background-size: cover;
.teamTotal{
width: 100%;
font-size: 18px;
color: #333;
display: flex;
margin-bottom: 10px;
justify-content: space-between;
.title{
color: #333;
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{
font-size: 10px;
font-style: normal;
margin-top: 2px;
ul.tab:nth-child(3){
width: 37%;
float: right;
li:nth-child(3){
float: right;
margin-right: 5%;
}
}
}
}
}
}
.rankInfoWrapper{
overflow: auto;
.title{
width: 100%;
float: left;
margin-bottom: 10px;
padding: 5px 5%;
ul.tab{
.salseContent{
width: 100%;
float: left;
width: 50%;
margin-right: 1%;
li{
padding: 5px 6.5%;
div{
float: left;
margin-right: 5px;
text-align: left;
height: 30px;
line-height: 30px;
margin-right: 12%;
color: #fff;
width: 40%;
text-align: center;
color: #dcdcdc;
font-size: 12px;
}
li.selected{
font-size: 18px;
div.num{
font-weight: bold;
border-bottom: 2px #ff002a solid;
}
li:nth-child(3){
margin-right: 0;
font-size: 20px;
color: #fff;
}
}
ul.tab:nth-child(3){
width: 37%;
float: right;
li:nth-child(3){
float: right;
margin-right: 5%;
div.count{
width: 18%;
}
}
}
}
.rankInfoWrapper{
overflow: auto;
width: 100%;
float: left;
.rankContent{
float: left;
width: 100%;
overflow: auto;
background: #fff;
box-shadow: 0 0px 2.5px #969696;
box-shadow: 0 0px 2.5px #eceaea;
border-radius: 6px;
padding: 5px;
ul{
......@@ -102,7 +112,6 @@
li{
float: left;
width: 28%;
text-align: right;
margin-right: 1%;
position: relative;
......@@ -117,7 +126,10 @@
li.name{
text-align: center;
}
li.remark{
font-weight: bold;
color: #ff002a;
}
}
}
}
......
......@@ -2,7 +2,8 @@
<div #letter_src id="letter_src">
<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 />
......@@ -15,9 +16,12 @@
<br /><br />希望您也能与我们一起学习和成长,共同带领公司迈向新高度。<br /><br />(签名)<img style="max-width: 45%;margin-left: 5%;"
src="assets/images/sign.png" alt=""><br />
<br />
万双莲<br /><br />
银盾保险经纪董事长
<br />
<br />
</div>
<div class="english">
<div class="english" style="letter-spacing: 1px;">
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
welcome you on board with Yin Dun Insurance Brokers Co Ltd!<br /><br />
......@@ -51,6 +55,8 @@
company to greater heights.<br /><br />
With Regards<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>
......
......@@ -31,6 +31,18 @@
<ul class="icon_lists dib-box">
<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>
<div class="name">精选产品库</div>
<div class="code-name">&amp;#xe671;</div>
......@@ -1035,6 +1047,24 @@
<ul class="icon_lists dib-box">
<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>
<div class="name">
精选产品库
......@@ -2496,6 +2526,22 @@
<li class="dib">
<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>
</svg>
<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 @@
"description": "",
"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",
"name": "精选产品库",
"font_class": "jingxuanchanpinku",
......
......@@ -20,6 +20,12 @@ Created by iconfont
/>
<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" />
......
......@@ -22,27 +22,58 @@
<body>
<app-root></app-root>
<!-- <div class="loading-box" id="loading">
<div class="mark"></div>
<img width="20" height="20" src="assets/images/loading.gif">
</div> -->
<div class="loadingBox" id="loading"
<!-- <div class="loadingBox" id="loading"
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;">
</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>
<script type="text/javascript">
const initialize = function () {
let loading = document.getElementById("loading");
let loading = document.getElementById("adv");
loading.style.display = 'block';
document.onreadystatechange = function () {
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 src="./assets/js/jquery.min.js"></script>
<script src="./assets/js/qrcode.js"></script>
......
......@@ -86,6 +86,23 @@ input::placeholder {
transform: scaleY(.5);
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 {
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