Commit d0ddf23b by Sweet Zhang

缩略图替换

parent e301d530
<!--The content below is only a placeholder and can be replaced.--> <!--The content below is only a placeholder and can be replaced.-->
<router-outlet></router-outlet> <router-outlet></router-outlet>
<ydlife-guide-page *ngIf="shareGuidePageEnable"></ydlife-guide-page>
import {Component, OnInit} from '@angular/core'; import {Component, OnDestroy, OnInit} from '@angular/core';
import {AuthService} from "./auth/auth.service"; import {AuthService} from "./auth/auth.service";
import {LifeCommonService} from "./common/life-common.service";
import {Subscription} from "rxjs/index";
declare var wx: any;
@Component({ @Component({
selector: 'app-root', selector: 'app-root',
templateUrl: './app.component.html', templateUrl: './app.component.html',
styleUrls: ['./app.component.scss'] styleUrls: ['./app.component.scss']
}) })
export class AppComponent implements OnInit { export class AppComponent implements OnInit, OnDestroy {
shareGuidePageEnable: boolean;
constructor(private authService: AuthService) { subscription: Subscription;
constructor(private authService: AuthService, private lifeCommonService: LifeCommonService) {
this.subscription = lifeCommonService.shareStatus$.subscribe(status => {
this.shareGuidePageEnable = status == '1';
});
} }
ngOnInit() { ngOnInit() {
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();
} }
}); });
} }
ngOnDestroy() {
this.subscription.unsubscribe();
}
// 微信JS-SDK注册
getWxConfig() {
const url = encodeURIComponent(location.href.split('#')[0]);
this.authService.wxConfig(url).subscribe(res => {
const data = res['data'];
wx.config({
debug: false,
appId: data.appId,
timestamp: data.timestamp,
nonceStr: data.nonceStr,
signature: data.signature,
jsApiList: data.jsApiList,
beta: true
});
});
}
} }
...@@ -49,6 +49,14 @@ export class AuthService { ...@@ -49,6 +49,14 @@ export class AuthService {
}; };
return this.http.post(url, JSON.stringify(ticketObj)); return this.http.post(url, JSON.stringify(ticketObj));
} }
// 获取微信配置
wxConfig(Currenturl) {
const url = this.API + '/wxConfig';
const postUrl = {
url: Currenturl
};
return this.http.post(url, JSON.stringify(postUrl));
}
// 获取错误详情 // 获取错误详情
private handleError(error: HttpErrorResponse) { private handleError(error: HttpErrorResponse) {
......
<div class="guidePageContainer" (click)="closeGuidePage()">
<div class="guideTips">
<p>请点击右上角菜单</p>
<p>分享给朋友</p>
</div>
<i class="iconfont icon-yindaojiantou"></i>
</div>
.guidePageContainer {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.8);
color: #fff;
display: flex;
justify-content: center;
.guideTips {
margin-top: 35%;
letter-spacing: 3px;
text-align: center;
font-size: 22px;
}
.iconfont {
position: absolute;
right: 8%;
font-size: 40px;
top: 2px;
font-weight: 700;
}
}
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { GuidePageComponent } from './guide-page.component';
describe('GuidePageComponent', () => {
let component: GuidePageComponent;
let fixture: ComponentFixture<GuidePageComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ GuidePageComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(GuidePageComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import {Component, OnInit} from '@angular/core';
import {LifeCommonService} from "../life-common.service";
@Component({
selector: 'ydlife-guide-page',
templateUrl: './guide-page.component.html',
styleUrls: ['./guide-page.component.scss']
})
export class GuidePageComponent implements OnInit {
constructor(private lifeCommonService: LifeCommonService) {
}
ngOnInit() {
}
closeGuidePage() {
this.lifeCommonService.shareStatusPublish(0);
}
}
...@@ -2,16 +2,18 @@ import {NgModule} from '@angular/core'; ...@@ -2,16 +2,18 @@ import {NgModule} from '@angular/core';
import {CommonModule} from '@angular/common'; import {CommonModule} from '@angular/common';
import {AlertComponent} from './alert/alert.component'; import {AlertComponent} from './alert/alert.component';
import {FormsModule} from "@angular/forms"; import {FormsModule} from "@angular/forms";
import { GuidePageComponent } from './guide-page/guide-page.component';
@NgModule({ @NgModule({
declarations: [AlertComponent], declarations: [AlertComponent, GuidePageComponent],
imports: [ imports: [
CommonModule, CommonModule,
FormsModule FormsModule
], ],
exports: [ exports: [
FormsModule, FormsModule,
AlertComponent AlertComponent,
GuidePageComponent
] ]
}) })
export class LifeCommonModule { export class LifeCommonModule {
......
import {Injectable} from '@angular/core'; import {Injectable} from '@angular/core';
import {DatePipe} from '@angular/common'; import {DatePipe} from '@angular/common';
import {Meta, Title} from '@angular/platform-browser'; import {Meta, Title} from '@angular/platform-browser';
import {Subject} from "rxjs/index";
declare var wx: any;
@Injectable({ @Injectable({
providedIn: 'root' providedIn: 'root'
}) })
export class LifeCommonService { export class LifeCommonService {
private shareStatusSource = new Subject<string>();
shareStatus$ = this.shareStatusSource.asObservable();
constructor(private datePipe: DatePipe, constructor(private datePipe: DatePipe,
private titleService: Title, private titleService: Title,
private metaService: Meta) { private metaService: Meta) {
} }
// 向订阅者发布分享结果
// 0.关闭分享引导页
// 1.用户点击分享
// 2.已经分享过了
shareStatusPublish(type) {
this.shareStatusSource.next(type);
}
/** /**
* 检测操作系统 * 检测操作系统
*/ */
...@@ -66,4 +78,20 @@ export class LifeCommonService { ...@@ -66,4 +78,20 @@ export class LifeCommonService {
this.metaService.updateTag({content: keywords}, 'name=keywords'); this.metaService.updateTag({content: keywords}, 'name=keywords');
this.metaService.updateTag({content: description}, 'name=description'); this.metaService.updateTag({content: description}, 'name=description');
} }
wxShare(title: string, desc: string, link: string, imgUrl: string) {
const shareData = {
title: title, // 分享标题
desc: desc, // 分享描述
link: link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: imgUrl, // 分享图标
success: () => {
this.shareStatusPublish(0);
}
};
wx.ready(() => { // 需在用户可能点击分享按钮前就先调用
wx.updateAppMessageShareData(shareData);
wx.updateTimelineShareData(shareData);
});
}
} }
<p> <div>
important-announcement works! 重要公告
</p> </div>
import { Component, OnInit } from '@angular/core'; import {Component, OnInit} from '@angular/core';
@Component({ @Component({
selector: 'ydlife-important-announcement', selector: 'ydlife-important-announcement',
...@@ -7,7 +7,8 @@ import { Component, OnInit } from '@angular/core'; ...@@ -7,7 +7,8 @@ import { Component, OnInit } from '@angular/core';
}) })
export class ImportantAnnouncementComponent implements OnInit { export class ImportantAnnouncementComponent implements OnInit {
constructor() { } constructor() {
}
ngOnInit() { ngOnInit() {
} }
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<div class="materialItem" *ngFor="let materialItem of materialLists;index as i" <div class="materialItem" *ngFor="let materialItem of materialLists;index as i"
[routerLink]="['/material',materialItem.itemId]"> [routerLink]="['/material',materialItem.itemId]">
<div> <div>
<img src="{{'assets/images/mk-material/'+materialItem.itemId+'.png'}}" alt="" class="img-responsive"> <img src="{{'assets/images/mk-material/'+materialItem.itemId+'thumb.jpg'}}" alt="" class="img-responsive">
</div> </div>
<div class="title">{{materialItem.title}}</div> <div class="title">{{materialItem.title}}</div>
</div> </div>
......
<div class="weui-panel"> <div class="weui-panel">
<div class="weui-panel__hd"> <div class="weui-panel__hd">
<img src="https://www.zuihuibi.cn/wp-content/uploads/2013/03/关于我们2_01.jpg" alt=""> <div class="avatar">
<img src="assets/images/icons/meng.png" alt="头像">
</div>
<div class="brokerInfo">
<p class="brokerName">{{lifeCustomerInfo?.practitionerBasicInfo?.name}}</p>
<p class="brokerTag">
<span>机构名</span>
<span>级别</span>
</p>
</div>
<div class="shareSelfInfoBtn">
<span (click)="shareIdCard()">分享名片</span>
</div>
</div> </div>
<div class="weui-panel__bd"> <div class="weui-panel__bd">
<div class="weui-media-box weui-media-box_small-appmsg"> <div class="weui-media-box weui-media-box_small-appmsg">
<div class="weui-cells"> <div class="weui-cells">
<a class="weui-cell weui-cell_access weui-cell_example" *ngFor="let menuItem of menuLists;" href="javascript:;" (click)="menuNavigation(menuItem)"> <a class="weui-cell weui-cell_access weui-cell_example" *ngFor="let menuItem of menuLists;" href="javascript:;"
(click)="menuNavigation(menuItem)">
<div class="weui-cell__hd"> <div class="weui-cell__hd">
<i class="iconfont" [ngClass]="menuItem.icon"></i> <i class="iconfont" [ngClass]="menuItem.icon"></i>
</div> </div>
......
...@@ -14,14 +14,57 @@ ...@@ -14,14 +14,57 @@
} }
.weui-panel__hd { .weui-panel__hd {
padding: 0; display: flex;
-webkit-box-align: center;
align-items: center;
padding: 17px 0 30px 21px;
width: 100%; width: 100%;
height: 115px; color: #fff;
background: linear-gradient(90deg, #494949, #393939);
img { img {
max-width: 100%; max-width: 100%;
height: 100%; height: 100%;
display: block; display: block;
} }
> div {
margin-right: 30px;
}
> div:last-child {
margin-right: 0;
}
.avatar {
width: 60px;
height: 60px;
border-radius: 50%;
overflow: hidden;
}
.brokerInfo {
.brokerName {
background: linear-gradient(#fbe9ab, #e3c385);
-webkit-background-clip: text;
color: transparent;
margin-bottom: 10px;
}
.brokerTag {
> span {
display: inline-block;
padding: 0 10px;
border: 1px solid #e3c385;
border-radius: 20px;
margin-right: 15px;
}
> span:last-child {
margin-right: 0;
}
}
}
.shareSelfInfoBtn {
padding: 5px 15px;
color: #fff;
background-color: #ff4100;
border-radius: 20px;
}
} }
@media(min-width: 768px) { @media(min-width: 768px) {
......
import {Component, OnInit} from '@angular/core'; import {Component, OnInit} from '@angular/core';
import {Router} from "@angular/router"; import {Router} from "@angular/router";
import {LifeCommonService} from "../../common/life-common.service";
declare var wx: any;
@Component({ @Component({
selector: 'ydlife-my-center-home', selector: 'ydlife-my-center-home',
templateUrl: './my-center-home.component.html', templateUrl: './my-center-home.component.html',
...@@ -10,19 +11,33 @@ export class MyCenterHomeComponent implements OnInit { ...@@ -10,19 +11,33 @@ export class MyCenterHomeComponent implements OnInit {
menuLists: Array<any>; menuLists: Array<any>;
isNeedAlert: boolean; isNeedAlert: boolean;
dialogInfo: any; dialogInfo: any;
lifeCustomerInfo: any;
constructor(private router: Router) { constructor(private router: Router, private lifeCommonService: LifeCommonService) {
} }
ngOnInit() { ngOnInit() {
this.lifeCustomerInfo = JSON.parse(localStorage.getItem('lifeCustomerInfo')) ? JSON.parse(localStorage.getItem('lifeCustomerInfo')) : null;
// fileUpload // fileUpload
this.menuLists = [ this.menuLists = [
{no: 1, title: '重要公告', path: 'https://www.ydinsurance.cn/?page_id=13763', icon: 'icon-gonggao', routerLink: ''}, {
no: 1,
title: '重要公告',
path: 'https://www.ydinsurance.cn/?page_id=13763',
icon: 'icon-gonggao',
routerLink: 'importantAnnouncement'
},
{no: 2, title: '业绩资讯', path: '', icon: 'icon-icon-test', routerLink: ''}, {no: 2, title: '业绩资讯', path: '', icon: 'icon-icon-test', routerLink: ''},
{no: 3, title: '我的客户', path: '', icon: 'icon-kehu', routerLink: ''}, {no: 3, title: '我的客户', path: '', icon: 'icon-kehu', routerLink: ''},
{no: 4, title: '保单查询', path: '', icon: 'icon-baodanyangben', routerLink: ''}, {no: 4, title: '保单查询', path: '', icon: 'icon-baodanyangben', routerLink: ''},
{no: 5, title: '教育训练', path: '', icon: 'icon-jiaoyu', routerLink: ''}, {no: 5, title: '教育训练', path: '', icon: 'icon-jiaoyu', routerLink: ''},
{no: 6, title: '文件下载', path: 'https://www.ydinsurance.cn/?page_id=13957', icon: 'icon-xiazai', routerLink: 'fileUpload'}, {
no: 6,
title: '文件下载',
path: 'https://www.ydinsurance.cn/?page_id=13957',
icon: 'icon-xiazai',
routerLink: 'fileUpload'
},
{no: 7, title: '产品海报', path: '', icon: 'icon-sucai', routerLink: 'material'}, {no: 7, title: '产品海报', path: '', icon: 'icon-sucai', routerLink: 'material'},
{no: 0, title: '退出登录', path: '', icon: 'icon-tuichu', routerLink: ''}, {no: 0, title: '退出登录', path: '', icon: 'icon-tuichu', routerLink: ''},
]; ];
...@@ -51,4 +66,15 @@ export class MyCenterHomeComponent implements OnInit { ...@@ -51,4 +66,15 @@ export class MyCenterHomeComponent implements OnInit {
getPopInfo() { getPopInfo() {
this.isNeedAlert = false; this.isNeedAlert = false;
} }
// 分享名片
shareIdCard() {
this.lifeCommonService.shareStatusPublish(1);
this.lifeCommonService.wxShare(
`银盾保险经纪 ${this.lifeCustomerInfo.practitionerBasicInfo.name}`,
'银盾保险经纪,家庭健康保险专家',
`https://m.zuihuibi.cn/brokerQry/#/brokerDetail/${this.lifeCustomerInfo.practitionerId}`,
'imgUrl');
}
} }
...@@ -5,11 +5,13 @@ import {AuthGuard} from '../auth/auth.guard'; ...@@ -5,11 +5,13 @@ import {AuthGuard} from '../auth/auth.guard';
import {MkMaterialComponent} from './mk-material/mk-material.component'; import {MkMaterialComponent} from './mk-material/mk-material.component';
import {MkMaterialDetailComponent} from './mk-material-detail/mk-material-detail.component'; import {MkMaterialDetailComponent} from './mk-material-detail/mk-material-detail.component';
import {FileUploadComponent} from './file-upload/file-upload.component'; import {FileUploadComponent} from './file-upload/file-upload.component';
import {ImportantAnnouncementComponent} from "./important-announcement/important-announcement.component";
const myRoutes: Routes = [ const myRoutes: Routes = [
{path: '', component: MyCenterHomeComponent, canActivate: [AuthGuard]}, {path: '', component: MyCenterHomeComponent, canActivate: [AuthGuard]},
{path: 'material', component: MkMaterialComponent}, {path: 'material', component: MkMaterialComponent},
{path: 'material/:itemId', component: MkMaterialDetailComponent}, {path: 'material/:itemId', component: MkMaterialDetailComponent},
{path: 'fileUpload', component: FileUploadComponent} {path: 'fileUpload', component: FileUploadComponent},
{path: 'importantAnnouncement', component: ImportantAnnouncementComponent},
]; ];
@NgModule({ @NgModule({
......
...@@ -79,6 +79,12 @@ ...@@ -79,6 +79,12 @@
</li> </li>
<li class="dib"> <li class="dib">
<span class="icon iconfont">&#xe601;</span>
<div class="name">引导箭头</div>
<div class="code-name">&amp;#xe601;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe622;</span> <span class="icon iconfont">&#xe622;</span>
<div class="name">客户</div> <div class="name">客户</div>
<div class="code-name">&amp;#xe622;</div> <div class="code-name">&amp;#xe622;</div>
...@@ -207,6 +213,15 @@ ...@@ -207,6 +213,15 @@
</li> </li>
<li class="dib"> <li class="dib">
<span class="icon iconfont icon-yindaojiantou"></span>
<div class="name">
引导箭头
</div>
<div class="code-name">.icon-yindaojiantou
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-kehu"></span> <span class="icon iconfont icon-kehu"></span>
<div class="name"> <div class="name">
客户 客户
...@@ -310,6 +325,14 @@ ...@@ -310,6 +325,14 @@
<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-yindaojiantou"></use>
</svg>
<div class="name">引导箭头</div>
<div class="code-name">#icon-yindaojiantou</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-kehu"></use> <use xlink:href="#icon-kehu"></use>
</svg> </svg>
<div class="name">客户</div> <div class="name">客户</div>
......
@font-face {font-family: "iconfont"; @font-face {font-family: "iconfont";
src: url('iconfont.eot?t=1577240168428'); /* IE9 */ src: url('iconfont.eot?t=1577692378549'); /* IE9 */
src: url('iconfont.eot?t=1577240168428#iefix') format('embedded-opentype'), /* IE6-IE8 */ src: url('iconfont.eot?t=1577692378549#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'), url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'),
url('iconfont.woff?t=1577240168428') format('woff'), url('iconfont.woff?t=1577692378549') format('woff'),
url('iconfont.ttf?t=1577240168428') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */ url('iconfont.ttf?t=1577692378549') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */
url('iconfont.svg?t=1577240168428#iconfont') format('svg'); /* iOS 4.1- */ url('iconfont.svg?t=1577692378549#iconfont') format('svg'); /* iOS 4.1- */
} }
.iconfont { .iconfont {
...@@ -47,6 +47,10 @@ ...@@ -47,6 +47,10 @@
content: "\e64a"; content: "\e64a";
} }
.icon-yindaojiantou:before {
content: "\e601";
}
.icon-kehu:before { .icon-kehu:before {
content: "\e622"; content: "\e622";
} }
......
...@@ -62,6 +62,13 @@ ...@@ -62,6 +62,13 @@
"unicode_decimal": 58954 "unicode_decimal": 58954
}, },
{ {
"icon_id": "11580097",
"name": "引导箭头",
"font_class": "yindaojiantou",
"unicode": "e601",
"unicode_decimal": 58881
},
{
"icon_id": "11641888", "icon_id": "11641888",
"name": "客户", "name": "客户",
"font_class": "kehu", "font_class": "kehu",
......
...@@ -44,6 +44,9 @@ Created by iconfont ...@@ -44,6 +44,9 @@ Created by iconfont
<glyph glyph-name="xiazai" unicode="&#58954;" d="M959.5 366.5c-2 84-59.4 161.2-144.4 192-46 126.4-165.9 211.5-300 213-132.5 1.4-253.2-79.2-303-202.5-87.4-32.2-146-112.6-147-199.5-1.2-104.1 80.7-199.5 193.9-216h12.8v0.1h0.5c23.5 0 42.5 19 42.5 42.5s-19 42.5-42.5 42.5H264v0.4c-65.5 5.3-117 60.2-117 127 0 70.2 56.7 127.1 126.8 127.5 23.4 110.2 121.3 192.9 238.5 192.9s215.1-82.7 238.5-192.9c70.1-0.4 126.8-57.3 126.8-127.5 0-67.9-53-123.3-119.9-127.2v-0.2h-6.6c-23.5 0-42.5-19-42.5-42.5s19-42.5 42.5-42.5h0.8v-0.1h19.3c111.2 17 190.7 111.4 188.3 213zM663.9 214.2c-17.6 15.6-44.7 13.9-60.3-3.7l-49.2-55.7V366.5c0 23.2-18.9 42.1-42.1 42.1-23.2 0-42.1-18.9-42.1-42.1v-211.6L421 210.5c-15.6 17.6-42.7 19.3-60.3 3.7-17.6-15.6-19.3-42.7-3.7-60.3l123.3-139.4c4.1-4.7 9-8.2 14.4-10.6 0.1 0 0.2-0.1 0.3-0.1l1.5-0.6c0.2-0.1 0.4-0.2 0.6-0.2 0.4-0.2 0.8-0.3 1.2-0.4 0.3-0.1 0.6-0.2 0.8-0.3 0.3-0.1 0.7-0.2 1-0.3 0.3-0.1 0.7-0.2 1-0.3 0.3-0.1 0.6-0.2 0.9-0.2 0.4-0.1 0.8-0.2 1.1-0.3 0.3-0.1 0.6-0.1 0.8-0.2 0.4-0.1 0.8-0.2 1.2-0.2 0.3 0 0.5-0.1 0.8-0.1 0.4-0.1 0.8-0.1 1.2-0.2 0.3 0 0.6-0.1 0.8-0.1 0.4 0 0.8-0.1 1.2-0.1 0.3 0 0.6 0 0.9-0.1h4.2c0.3 0 0.6 0 0.9 0.1 0.4 0 0.8 0.1 1.2 0.1 0.3 0 0.6 0.1 0.8 0.1 0.4 0 0.8 0.1 1.2 0.2 0.3 0 0.5 0.1 0.8 0.1 0.4 0.1 0.8 0.1 1.2 0.2 0.3 0.1 0.6 0.1 0.8 0.2 0.4 0.1 0.8 0.2 1.1 0.3 0.3 0.1 0.6 0.1 0.9 0.2 0.3 0.1 0.7 0.2 1 0.3 0.3 0.1 0.7 0.2 1 0.3 0.3 0.1 0.6 0.2 0.8 0.3 0.4 0.1 0.8 0.3 1.2 0.4 0.2 0.1 0.4 0.2 0.6 0.2l1.5 0.6c0.1 0 0.2 0.1 0.3 0.1 5.3 2.4 10.3 5.9 14.4 10.6l123.3 139.4c16 17.6 14.3 44.8-3.3 60.3z" horiz-adv-x="1024" /> <glyph glyph-name="xiazai" unicode="&#58954;" d="M959.5 366.5c-2 84-59.4 161.2-144.4 192-46 126.4-165.9 211.5-300 213-132.5 1.4-253.2-79.2-303-202.5-87.4-32.2-146-112.6-147-199.5-1.2-104.1 80.7-199.5 193.9-216h12.8v0.1h0.5c23.5 0 42.5 19 42.5 42.5s-19 42.5-42.5 42.5H264v0.4c-65.5 5.3-117 60.2-117 127 0 70.2 56.7 127.1 126.8 127.5 23.4 110.2 121.3 192.9 238.5 192.9s215.1-82.7 238.5-192.9c70.1-0.4 126.8-57.3 126.8-127.5 0-67.9-53-123.3-119.9-127.2v-0.2h-6.6c-23.5 0-42.5-19-42.5-42.5s19-42.5 42.5-42.5h0.8v-0.1h19.3c111.2 17 190.7 111.4 188.3 213zM663.9 214.2c-17.6 15.6-44.7 13.9-60.3-3.7l-49.2-55.7V366.5c0 23.2-18.9 42.1-42.1 42.1-23.2 0-42.1-18.9-42.1-42.1v-211.6L421 210.5c-15.6 17.6-42.7 19.3-60.3 3.7-17.6-15.6-19.3-42.7-3.7-60.3l123.3-139.4c4.1-4.7 9-8.2 14.4-10.6 0.1 0 0.2-0.1 0.3-0.1l1.5-0.6c0.2-0.1 0.4-0.2 0.6-0.2 0.4-0.2 0.8-0.3 1.2-0.4 0.3-0.1 0.6-0.2 0.8-0.3 0.3-0.1 0.7-0.2 1-0.3 0.3-0.1 0.7-0.2 1-0.3 0.3-0.1 0.6-0.2 0.9-0.2 0.4-0.1 0.8-0.2 1.1-0.3 0.3-0.1 0.6-0.1 0.8-0.2 0.4-0.1 0.8-0.2 1.2-0.2 0.3 0 0.5-0.1 0.8-0.1 0.4-0.1 0.8-0.1 1.2-0.2 0.3 0 0.6-0.1 0.8-0.1 0.4 0 0.8-0.1 1.2-0.1 0.3 0 0.6 0 0.9-0.1h4.2c0.3 0 0.6 0 0.9 0.1 0.4 0 0.8 0.1 1.2 0.1 0.3 0 0.6 0.1 0.8 0.1 0.4 0 0.8 0.1 1.2 0.2 0.3 0 0.5 0.1 0.8 0.1 0.4 0.1 0.8 0.1 1.2 0.2 0.3 0.1 0.6 0.1 0.8 0.2 0.4 0.1 0.8 0.2 1.1 0.3 0.3 0.1 0.6 0.1 0.9 0.2 0.3 0.1 0.7 0.2 1 0.3 0.3 0.1 0.7 0.2 1 0.3 0.3 0.1 0.6 0.2 0.8 0.3 0.4 0.1 0.8 0.3 1.2 0.4 0.2 0.1 0.4 0.2 0.6 0.2l1.5 0.6c0.1 0 0.2 0.1 0.3 0.1 5.3 2.4 10.3 5.9 14.4 10.6l123.3 139.4c16 17.6 14.3 44.8-3.3 60.3z" horiz-adv-x="1024" />
<glyph glyph-name="yindaojiantou" unicode="&#58881;" d="M24.65951733-124.339745l-0.479319 21.787234c6.419972 0.145248 643.878128 17.880057 828.960681 339.36522 0.18156 0.384908 9.266837 18.904057 19.884482 47.663206-133.432284-37.118184-234.721135-0.384908-239.724936 1.496057-21.329702 8.860142-72.725787 44.351546-88.870127 93.024227l-0.21061 0.726241c-21.075518 82.188709-12.237163 149.039206 26.289929 198.685049 45.077787 58.092028 114.208681 71.164369 134.877503 71.164369 34.837787 0 52.071489-0.60278 95.515234-14.931518 54.017816-17.814695 91.411972-50.829617 111.114894-98.115177 28.599376-68.608 14.582922-153.83966-4.299348-217.596369a452.549901 452.549901 0 0 1 34.249532 14.75722c166.403631 79.930099 297.257759 261.032851 388.923915 538.282667l20.683348-6.833929c-93.685106-283.386553-228.504511-468.883064-400.696284-551.340482a479.68227 479.68227 0 0 0-51.570383-21.148142c-12.927092-37.626553-25.585475-63.364539-26.965333-66.116993-100.577135-174.726355-326.111319-260.691518-497.656738-302.1381-184.763007-44.642043-348.392397-48.694468-350.02644-48.73078z m540.570327 509.843064c13.021504-38.657816 56.625021-71.186156 76.081021-79.276482 0.878752-0.319546 106.336227-38.28017 240.531064 3.711092 19.935319 61.67966 38.301957 150.484426 10.043915 218.242723-17.161078 41.163348-50.081589 70.02417-97.810156 85.769078-39.914213 13.166752-53.959716 13.834894-88.688568 13.834894-14.568397 0-77.25027-10.646695-117.658326-62.732709-34.133333-43.988426-41.700766-104.389901-22.49895-179.548596zM1391.40175933 679.48573l-54.213901 174.595632-147.652085-128.392171-14.292426 16.434837 172.84539 150.310128 64.127092-206.484879z" horiz-adv-x="1394" />
<glyph glyph-name="kehu" unicode="&#58914;" d="M593.92 265.671s-34.133 9.102-43.236 13.653c-18.204 11.378-29.582 34.134-29.582 56.89 0 25.03 20.48 45.51 34.134 61.44 34.133 40.96 52.337 95.573 52.337 157.013 0 127.43-91.022 229.83-202.524 229.83S202.524 679.823 202.524 552.392c0-61.44 20.48-116.053 52.338-157.013 20.48-11.378 34.134-36.41 34.134-61.44 0-22.756-11.378-43.236-29.583-56.89v-2.275c-2.275 0-4.55-2.275-4.55-2.275-11.379-6.827-22.756-11.378-36.41-11.378-86.47-29.582-159.289-75.093-202.524-131.982h2.275C6.827 113.208 2.276 95.004 2.276 76.8c0-54.613 45.51-100.124 102.4-100.124h600.746c59.165 0 104.676 43.235 104.676 100.124 0 22.756-9.102 43.236-20.48 61.44-43.236 56.889-111.502 100.124-195.698 127.431z m407.324-100.124c-38.684 47.786-97.848 88.746-172.942 111.502 0 0-29.582 6.827-38.684 11.378-15.93 11.377-25.031 29.582-25.031 50.062 0 22.755 18.204 40.96 29.582 52.338 29.582 36.409 47.787 84.195 47.787 138.809 0 111.502-79.645 204.8-179.77 204.8-15.928 0-31.857-2.276-45.51-6.827 34.133-50.062 52.337-109.227 52.337-175.218 0-70.542-25.03-138.809-68.266-195.698l-4.551-4.55v-2.276c-4.552-4.551-11.378-11.378-13.654-18.205 0-2.275 0-2.275 2.276-2.275 4.55-2.276 11.378-4.551 18.204-4.551h2.276l9.102-4.552c93.298-29.582 172.942-81.92 225.28-147.91 22.756-29.583 36.409-63.716 36.409-100.125 0-20.48-4.551-36.409-11.378-54.613h65.991c52.338 0 93.298 38.684 93.298 88.746-2.276 25.031-9.102 43.236-22.756 59.165z m0 0" horiz-adv-x="1024" /> <glyph glyph-name="kehu" unicode="&#58914;" d="M593.92 265.671s-34.133 9.102-43.236 13.653c-18.204 11.378-29.582 34.134-29.582 56.89 0 25.03 20.48 45.51 34.134 61.44 34.133 40.96 52.337 95.573 52.337 157.013 0 127.43-91.022 229.83-202.524 229.83S202.524 679.823 202.524 552.392c0-61.44 20.48-116.053 52.338-157.013 20.48-11.378 34.134-36.41 34.134-61.44 0-22.756-11.378-43.236-29.583-56.89v-2.275c-2.275 0-4.55-2.275-4.55-2.275-11.379-6.827-22.756-11.378-36.41-11.378-86.47-29.582-159.289-75.093-202.524-131.982h2.275C6.827 113.208 2.276 95.004 2.276 76.8c0-54.613 45.51-100.124 102.4-100.124h600.746c59.165 0 104.676 43.235 104.676 100.124 0 22.756-9.102 43.236-20.48 61.44-43.236 56.889-111.502 100.124-195.698 127.431z m407.324-100.124c-38.684 47.786-97.848 88.746-172.942 111.502 0 0-29.582 6.827-38.684 11.378-15.93 11.377-25.031 29.582-25.031 50.062 0 22.755 18.204 40.96 29.582 52.338 29.582 36.409 47.787 84.195 47.787 138.809 0 111.502-79.645 204.8-179.77 204.8-15.928 0-31.857-2.276-45.51-6.827 34.133-50.062 52.337-109.227 52.337-175.218 0-70.542-25.03-138.809-68.266-195.698l-4.551-4.55v-2.276c-4.552-4.551-11.378-11.378-13.654-18.205 0-2.275 0-2.275 2.276-2.275 4.55-2.276 11.378-4.551 18.204-4.551h2.276l9.102-4.552c93.298-29.582 172.942-81.92 225.28-147.91 22.756-29.583 36.409-63.716 36.409-100.125 0-20.48-4.551-36.409-11.378-54.613h65.991c52.338 0 93.298 38.684 93.298 88.746-2.276 25.031-9.102 43.236-22.756 59.165z m0 0" horiz-adv-x="1024" />
......

405 KB | W: | H:

387 KB | W: | H:

src/assets/images/mk-material/117.jpg
src/assets/images/mk-material/117.jpg
src/assets/images/mk-material/117.jpg
src/assets/images/mk-material/117.jpg
  • 2-up
  • Swipe
  • Onion skin

497 KB | W: | H:

347 KB | W: | H:

src/assets/images/mk-material/133.jpg
src/assets/images/mk-material/133.jpg
src/assets/images/mk-material/133.jpg
src/assets/images/mk-material/133.jpg
  • 2-up
  • Swipe
  • Onion skin

646 KB | W: | H:

351 KB | W: | H:

src/assets/images/mk-material/136.jpg
src/assets/images/mk-material/136.jpg
src/assets/images/mk-material/136.jpg
src/assets/images/mk-material/136.jpg
  • 2-up
  • Swipe
  • Onion skin

553 KB | W: | H:

364 KB | W: | H:

src/assets/images/mk-material/137.jpg
src/assets/images/mk-material/137.jpg
src/assets/images/mk-material/137.jpg
src/assets/images/mk-material/137.jpg
  • 2-up
  • Swipe
  • Onion skin
...@@ -18,5 +18,6 @@ ...@@ -18,5 +18,6 @@
<app-root></app-root> <app-root></app-root>
<script src="assets/js/jquery.min.js"></script> <script src="assets/js/jquery.min.js"></script>
<script src="assets/js/qrcode.min.js"></script> <script src="assets/js/qrcode.min.js"></script>
<script src="https://res2.wx.qq.com/open/js/jweixin-1.4.0.js"></script>
</body> </body>
</html> </html>
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