LI WENHAO

Merge remote-tracking branch 'remotes/origin/master' into dev-admin

Showing 126 changed files with 5216 additions and 25 deletions
# **Running Football**
# Running Football Blog
## contents
![](https://pic.51yuansu.com/backgd/cover/00/53/30/5c176880767a5.jpg!/fw/780/quality/90/unsharp/true/compress/true)
## Table of Contents
* About the Project
* Getting Started
* Usage
......@@ -9,41 +11,219 @@
* License
* Contact
---
***
---
## **About the Project**
## About the Project
​ A minimalistic version of PC football blog. The front-end project is mainly built using Vue2 and Element-UI; it is built and packaged using Webpack5. The back-end project is mainly designed using the Node framework Koa2 and the MongoDB database.
A minimalistic version of PC football blog. The front-end project is mainly built using Vue2 and Element-UI; it is built and packaged using Webpack5. The back-end project is mainly designed using the Node framework Koa2 and the MongoDB database.
###The main function
### The main function
#### Client
1. Article function: the content of the article supports `Markdown` syntax and the code is highlighted;
2. Tag function: retrieve article data by tag classification;
3. Sidebar function: click ranking, webmaster recommendation, tag classification, etc.;
4. Search function: search the title and abstract of the article by keywords, and support search highlighting;
5. Message function: you can like, reply to comments, count comments and the total number of replies, support `Emoji` emoticons;
6. Other functions: image lazy loading, paging, sidebar top and one-click top, etc.;
1. Article function: the content of the article supports `Markdown` syntax and the code is highlighted;
2. Tag function: retrieve article data by tag classification;
3. Sidebar function: click ranking, webmaster recommendation, tag classification, etc.;
4. Search function: search the title and abstract of the article by keywords, and support search highlighting;
5. Message function: you can like, reply to comments, count comments and the total number of replies, support `Emoji` emoticons;
6. Other functions: image lazy loading, paging, sidebar top and one-click top, etc.
#### Management
1. Authority management: CRUD administrator, who can assign authority;
2. Article management: CRUD articles, article covers support local upload, article content supports `Markdown` syntax editing;
3. Label management: CRUD label, label background color supports custom selection with `Vue-Color` plug-in;
4. Message management: RD comments and replies
#### Built With
[Node.js](https://nodejs.org/zh-cn/)
[Element-UI](https://element.eleme.cn/#/zh-CN)
[Webpack5](https://webpack.docschina.org/)
[MongoDB](https://www.mongodb.com/)
[Koa2](https://www.koajs.com.cn/)
[Vue2](https://cn.vuejs.org/)
## Getting Started
1. Install and configure the git environment, use the git clone command to download the project
2. Install and configure node, vue, mongodb environment
3. View the project structure, import related dependencies, load the project configuration
4. Configure the database environment and initialize user information
5. Start the project
### Installation
#### Environmental preparation
`node.js` Environment configuration installation
`vue``vue-cli` Environment configuration installation
`mongodb``mongodb Compass` Environment configuration installation
## Usage
> `Vue` project configuration start
```shell
-- `yarn` Instruction to install
npm install -g yarn
npm install yarn --save
-- `Vue` project dependency introduction
npm install
cnpm install
-- Extension component dependency introduction
`vue-lazyload` Plugin:yarn add vue-lazyload -S
`vue-color` plugin:yarn add vue-color -S
`style-resources-loader` plugin:yarn add style-resources-loader -D
`mdrkdown` syntax support related plugins:marked、highlightJs yarn add marked highlightJs -S
```
>`mongodb` configuration:
`Mongodb` configuration information correspondence:`code/server/config.js`File configuration database information
```powershell
// Enter the `mongodb` installation directory and execute the command to start the ‘mongo’ service
> mongo
// Display database list
> show dbs
// Create a new `rfBlog` database
> use rfBlog
// Create an rf user in the `rfBlog` database with a password of 123456
> db.createUser({user:"rf",pwd:"123456",roles:[{role:"readWrite",db:'rfBlog'}]})
// Show who the library has users
> show users
// The database authenticates the user and password, and the result returns 1 to indicate successful authentication
> db.auth("rf", "123456");
```
> Initialize system user information
```powershell
// Start `mongo` service
> mongo
// Display database list
> show dbs
// Access to the `wallBlog` database
> use rfBlog
// Insert a piece of data into the `users` collection of the library, account number: admin password: 123456
> db.users.insert({
"pwd" : "e10adc3949ba59abbe56e057f20f883e",
"username" : "admin",
"roles" : [
"admin"
]
})
// Query the collection under the library (similar to a relational data table)
> show collections
// Query all data in the ‘users’ collection
> db.users.find()
```
> Project start (the concept of front-end and back-end separation, the front-end interface and back-end interface services need to be started respectively)
```powershell
// Local development management page
yarn dev:admin
// Local development of the client page
yarn dev:client
// Start the background interface service
yarn server
```
> Project packaging
```powershell
// Project packaging-management side
yarn build:admin
// Project packaging-client
yarn build:client
// View packaging information
yarn analyz
```
## Roadmap
## Contributing
## License
## Contact
### 项目展示
## 后台管理
#### 前台展示
####Management
1. Authority management: CRUD administrator, who can assign authority;
2. Article management: CRUD articles, article covers support local upload, article content supports `Markdown` syntax editing;
3. Label management: CRUD label, label background color supports custom selection with `Vue-Color` plug-in;
4. Message management: RD comments and replies;
####Built With
* ![Node.js](https://nodejs.org/zh-cn/)
* ![Element-UI](https://element.eleme.cn/#/zh-CN)
* ![Webpack5](https://webpack.docschina.org/)
* ![MongoDB](https://www.mongodb.com/)
* ![Koa2](https://www.koajs.com.cn/)
* ![Vue2](https://cn.vuejs.org/)
## **Getting Started**
### **Prerequisites**
......
File mode changed
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta
name="viewport"
content="width=device-width, initial-scale=1.0, minimum-scale=0.5, maximum-scale=2.0, user-scalable=0"
/>
<link rel="shortcut icon" href="./src/images/favicon.ico" />
<title>rfBlog</title>
</head>
<body>
<div id="app"></div>
</body>
</html>
<script></script>
<template>
<div id="app">
<Nav></Nav>
<router-view></router-view>
<CopyRight></CopyRight>
<Top></Top>
</div>
</template>
<script>
import CopyRight from "components/copyRight";
import Top from "components/top";
import Nav from "components/nav";
import { mapActions } from "vuex";
export default {
name: "app",
components: {
CopyRight,
Top,
Nav,
},
created() {
this.getLabelList();
},
methods: {
...mapActions({
getLabelList: "label/getLabelList",
}),
},
};
</script>
\ No newline at end of file
import axios from "utils/request";
/**
* 获取博客列表
* @param data
* @returns {AxiosPromise}
*/
export function apiGetBlogList(params) {
return axios.get("/blog/list", params);
}
/**
* 获取博客详情
* @param data
* @returns {AxiosPromise}
*/
export function apiGetBlogDetail(params) {
return axios.get("/blog/info", params);
}
/**
* 点赞
* @param data
* @returns {AxiosPromise}
*/
export function apiUpdateLikes(params) {
return axios.post("/blog/updateLikes", params);
}
/**
* 浏览量
* @param data
* @returns {AxiosPromise}
*/
export function apiUpdatePV(params) {
return axios.post("/blog/updatePV", params);
}
import axios from "utils/request";
/**
* 获取标签列表
* @param data
* @returns {AxiosPromise}
*/
export function apiGetLabelList(params) {
return axios.get("/label/list", params);
}
import axios from "utils/request";
/**
* 获取留言列表
* @param data
* @returns {AxiosPromise}
*/
export function apiGetMessageList(params) {
return axios.get("/message/list", params);
}
/**
* 获取回复数量
* @param data
* @returns {AxiosPromise}
*/
export function apiGetReplyCount(params) {
return axios.get("/message/replyCount", params);
}
/**
* 添加留言
* @param data
* @returns {AxiosPromise}
*/
export function apiAddMessage(params) {
return axios.post("/message/add", params);
}
/**
* 点赞
* @param data
* @returns {AxiosPromise}
*/
export function apiUpdateLikes(params) {
return axios.post("/message/updateLikes", params);
}
/**
* 回复
* @param data
* @returns {AxiosPromise}
*/
export function apiUpdateReplys(params) {
return axios.post("/message/updateReplys", params);
}
<template>
<div class="bread-crumbs">{{ title }}</div>
</template>
<script>
export default {
name: "breadCrumbs",
components: {},
props: {},
computed: {},
data() {
return {
title: "首页",
};
},
watch: {},
created() {
let matched = this.$route.matched;
if (matched && matched.length) {
this.title = matched[matched.length - 1].meta["title"];
}
},
mounted() {},
beforeDestroy() {},
methods: {},
};
</script>
<style lang="less" scoped>
.bread-crumbs {
background-color: #f7f7f7;
padding: 10px 24px;
color: @mainColor;
}
</style>
/**
* 注入公共组件
*/
import Vue from "vue";
// 检索当前目录的vue文件,便检索子文件夹
const componentsContext = require.context("./", true, /.vue$/);
componentsContext.keys().forEach((component) => {
// 获取文件中的 default 模块
const componentConfig = componentsContext(component).default;
componentConfig.name && Vue.component(componentConfig.name, componentConfig);
});
<!-- PCloading -->
<template>
<div class="spinner">
<div class="circle"></div>
</div>
</template>
<script>
export default {
name: "Loading",
components: {},
props: {},
computed: {},
data() {
return {};
},
watch: {},
created() {},
mounted() {},
beforeDestroy() {},
methods: {},
};
</script>
<style lang="less" scoped>
.circle {
margin: 20px auto;
width: 100px;
height: 100px;
border: 5px white solid;
border-left-color: #ff5500;
border-right-color: #0c80fe;
border-radius: 100%;
animation: loading 1s infinite linear;
}
@keyframes loading {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
</style>
\ No newline at end of file
<template>
<div class="none-data-wrapper">
<img src="../../images/none-data.jpg" alt="" />
</div>
</template>
<script>
export default {
name: "NoneData",
};
</script>
<style lang="less" scoped>
.none-data-wrapper {
text-align: center;
margin-top: 160px;
.none-data-icon {
font-size: 100px;
}
}
</style>
\ No newline at end of file
<template>
<div class="paging-container" v-if="total > 0">
<ul class="mo-paging">
<li
:class="[
'paging-item',
'paging-item--defalut',
{ 'paging-item--disabled': index === 1 },
]"
@click="prev"
>
< Previous
</li>
<li
:class="[
'paging-item',
'paging-item--defalut',
{ 'paging-item--disabled': index === 1 },
]"
@click="first"
>
first
</li>
<li :class="['paging-item', 'paging-item--more']" v-if="showPrevMore">
...
</li>
<li
v-for="pager in pagers"
:key="pager"
:class="[
'paging-item',
{ 'paging-item--current': pageIndex === pager },
]"
@click="go(pager)"
>
{{ pager }}
</li>
<li :class="['paging-item', 'paging-item--more']" v-if="showNextMore">
...
</li>
<li
:class="[
'paging-item',
'paging-item--defalut',
{ 'paging-item--disabled': index === pages },
]"
@click="last"
>
last
</li>
<li
:class="[
'paging-item',
'paging-item--defalut',
{ 'paging-item--disabled': index === pages },
]"
@click="next"
>
Next >
</li>
</ul>
</div>
</template>
<script>
export default {
name: "Paging",
props: {
//页面中的可见页码,其他的以...替代, 必须是奇数
perPages: {
type: Number,
default: 5,
},
pageIndex: {
type: Number,
default: 1,
},
pageSize: {
type: Number,
default: 10,
},
total: {
type: Number,
default: 0,
},
},
computed: {
//计算总页码
pages() {
return Math.ceil(this.size / this.limit);
},
//计算页码,当count等变化时自动计算
pagers() {
const array = [];
const perPages = this.perPages;
const pageCount = this.pages;
let current = this.index;
const _offset = (perPages - 1) / 2;
const offset = {
start: current - _offset,
end: current + _offset,
};
//-1, 3
if (offset.start < 1) {
offset.end = offset.end + (1 - offset.start);
offset.start = 1;
}
if (offset.end > pageCount) {
offset.start = offset.start - (offset.end - pageCount);
offset.end = pageCount;
}
if (offset.start < 1) offset.start = 1;
this.showPrevMore = offset.start > 1;
this.showNextMore = offset.end < pageCount;
for (let i = offset.start; i <= offset.end; i++) {
array.push(i);
}
return array;
},
},
watch: {
pageIndex(val) {
this.index = val || 1;
},
pageSize(val) {
this.limit = val || 10;
},
total(val) {
this.size = val || 1;
},
},
data() {
return {
index: this.pageIndex, //当前页码
limit: this.pageSize, //每页显示条数
size: this.total || 1, //总记录数
showPrevMore: false,
showNextMore: false,
};
},
methods: {
prev() {
if (this.index > 1) {
this.go(this.index - 1);
}
},
next() {
if (this.index < this.pages) {
this.go(this.index + 1);
}
},
first() {
if (this.index !== 1) {
this.go(1);
}
},
last() {
if (this.index !== this.pages) {
this.go(this.pages);
}
},
go(page) {
if (this.index !== page) {
this.index = page;
this.$emit("change", this.index);
}
},
},
};
</script>
<style lang="less" scoped>
.paging-container {
display: flex;
justify-content: center;
.mo-paging {
display: flex;
align-items: center;
.paging-item {
font-size: 14px;
padding: 6px 16px;
margin-left: 4px;
cursor: pointer;
color: #24292e;
border: none;
border-radius: 3px;
box-sizing: border-box;
&:first-child {
margin-left: 0;
}
&:hover {
box-sizing: border-box;
color: #fff !important;
background: @thinHighlightColor;
border-color: transparent;
}
&.paging-item--defalut {
color: @thinHighlightColor;
}
&.paging-item--disabled,
&.paging-item--more {
color: #959da5;
pointer-events: none;
}
//选中
&.paging-item--current {
background: @thinHighlightColor;
color: #fff;
border-color: transparent;
position: relative;
z-index: 1;
border: none;
}
}
}
}
</style>
<template>
<svg class="icon" aria-hidden="true">
<use :xlink:href="iconName"></use>
</svg>
</template>
<script>
export default {
name: "Icon",
props: {
name: {
type: String,
required: true,
},
},
computed: {
iconName() {
return `#${this.name}`;
},
},
};
</script>
<template>
<router-link :to="path" :style="{ display: 'inline-block' }">
<div class="tag-wrapper" :style="{ backgroundColor: color }">
<i :style="{ borderRightColor: color }"></i>
{{ text }}
</div>
</router-link>
</template>
<script>
export default {
name: "Tag",
props: {
path: {
type: String,
required: true,
},
text: {
type: String,
required: true,
},
color: {
type: String,
default: "@mainColor",
},
},
};
</script>
<style lang="less" scoped>
.tag-wrapper {
font-size: 12px;
display: inline-block;
text-decoration: none;
font-weight: normal;
font-size: 10px;
color: #fff;
height: 18px;
line-height: 18px;
// float: left;
padding: 0 5px 0px 10px;
position: relative;
border-radius: 0 5px 5px 0;
margin: 5px 9px 5px 8px;
i {
position: absolute;
right: 100%;
font-size: 0;
line-height: 0;
border: 9px solid transparent;
}
&:after {
content: " ";
width: 4px;
height: 4px;
background-color: #fff;
border-radius: 4px;
-webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.3);
box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.3);
position: absolute;
top: 7px;
left: 2px;
}
}
</style>
\ No newline at end of file
<template>
<div class="copyright-wrapper">
<span
>Copyright © www.rasblog.com All rights reserved.<br />
备案号:<a href="https://beian.miit.gov.cn/" target="_blank"
>粤ICP备2021121326号</a
></span
>
</div>
</template>
<style lang="less" scoped>
.copyright-wrapper {
height: 80px;
background-color: @mainColor;
color: #fff;
display: flex;
justify-content: center;
align-items: center;
span {
text-align: center;
line-height: 22px;
font-size: 14px;
a {
color: @thinHighlightColor;
text-decoration: underline;
}
}
}
</style>
\ No newline at end of file
<template>
<a
:href="githubLink"
target="_blank"
class="github-corner"
aria-label="View source on Github"
>
<svg
width="80"
height="80"
viewBox="0 0 250 250"
style=""
aria-hidden="true"
>
<path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path>
<path
d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2"
fill="currentColor"
style="transform-origin: 130px 106px"
class="octo-arm"
></path>
<path
d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z"
fill="currentColor"
class="octo-body"
></path>
</svg>
</a>
</template>
<script>
export default {
name: "Github",
props: {
githubLink: {
type: String,
default: null,
},
},
};
</script>
<style lang="less" scoped>
.github-corner {
fill: #4ab7bd;
color: #fff;
position: absolute;
top: 50px;
border: 0;
right: 0;
&:hover .octo-arm {
animation: octocat-wave 560ms ease-in-out;
}
}
@keyframes octocat-wave {
0%,
100% {
transform: rotate(0);
}
20%,
60% {
transform: rotate(-25deg);
}
40%,
80% {
transform: rotate(10deg);
}
}
</style>
<template>
<div class="label-container">
<div class="side-title">
<Icon name="icon-label"></Icon>
标签分类
</div>
<div class="label-content">
<div
class="label-item"
v-for="item in labelList"
:key="item.label"
:style="{ backgroundColor: item.bgColor }"
>
<router-link :to="`/label/${item.label}`">
{{ item.label }}
</router-link>
</div>
</div>
</div>
</template>
<script>
import { mapGetters } from "vuex";
export default {
name: "labelClassify",
components: {},
props: {},
computed: {
...mapGetters({ labelList: "label/labelList" }),
},
data() {
return {};
},
watch: {},
created() { },
mounted() { },
beforeDestroy() { },
methods: {},
};
</script>
<style lang="less" scoped>
.label-container {
background-color: #fff;
margin-top: 20px;
border-radius: 4px;
.label-content {
display: flex;
align-items: center;
flex-wrap: wrap;
padding: 20px;
.label-item {
height: 30px;
display: flex;
justify-content: center;
align-items: center;
padding: 12px;
color: #fff;
margin: 4px;
border-radius: 12px;
transition: 1s ease all;
position: relative;
&:hover {
border-radius: 0;
cursor: pointer;
}
a {
color: #fff;
}
}
}
}
</style>
<template>
<div class="myself-container">
<div class="header-bg">
<img class="img-avatar" src="../images/avatar.png" />
<img class="img-bg" src="../images/bg4.jpg" />
</div>
<div class="my-body">
<div class="my-name">RF</div>
<div class="my-job">Running | Football</div>
<div class="my-desc">
个人博客
</div>
</div>
</div>
</template>
<script>
export default {
name: "myself",
components: {},
props: {},
computed: {},
data() {
return {};
},
watch: {},
created() { },
mounted() { },
beforeDestroy() { },
methods: {},
};
</script>
<style lang="less" scoped>
.myself-container {
background-color: #fff;
margin-top: 20px;
border-radius: 4px;
.header-bg {
height: 150px;
border-radius: 4px;
position: relative;
.img-avatar {
width: 100px;
height: 100px;
position: absolute;
bottom: -50px;
left: calc(~"50% - 50px");
border-radius: 50%;
z-index: 99;
&:hover {
animation: btnGroups 1s linear;
}
}
.img-bg {
position: absolute;
width: 100%;
height: 100%;
object-fit: cover;
}
}
.my-body {
margin-top: 74px;
display: flex;
flex-direction: column;
align-items: center;
.my-name {
font-size: 16px;
font-weight: bold;
margin-bottom: 10px;
}
.my-job {
font-size: 14px;
color: @thinHighlightColor;
}
.my-desc {
font-size: 14px;
color: @assistColor;
padding: 20px 40px;
line-height: 26px;
}
}
}
</style>
<template>
<div class="nav-wrapper" :class="{ 'not-nav': showNav }" ref="header">
<nav>
<img src="../images/logo.png" alt="RF" />
<ul>
<li
v-for="(item, index) in navList"
:key="item.title"
:class="{ active: currentIndex === index }"
@click="goto(index, item.path)"
>
{{ item.title }}
</li>
</ul>
</nav>
</div>
</template>
<script>
export default {
name: "navComponent",
components: {},
props: {},
computed: {},
data() {
return {
currentIndex: -1,
showNav: false,
navList: [
{ title: "首页", path: "/index" },
{ title: "文章分类", path: "/label/all" },
{ title: "留言板", path: "/message" },
{ title: "关于我们", path: "/myself" },
],
};
},
watch: {},
created() { },
mounted() {
document.addEventListener("scroll", this.onScroll);
},
beforeDestroy() {
document.removeEventListener("scroll", this.onScroll);
},
methods: {
goto(index, path) {
this.currentIndex = index;
this.$router.push(path);
},
onScroll() {
const scrollTop =
document.documentElement.scrollTop + document.body.scrollTop;
this.showNav = scrollTop >= 120;
},
},
};
</script>
<style lang="less" scoped>
.nav-wrapper {
height: 50px;
width: 100%;
position: fixed;
top: 0;
left: 0;
background-color: #fff;
z-index: 100;
transition: all 1.2s ease;
transform: translate3d(0, 0, 0);
box-shadow: 0 1px 1px @cuttingLineColor;
&.not-nav {
transform: translate3d(0, -50px, 0);
opacity: 0;
}
nav {
width: 1200px;
height: 100%;
margin: 0 auto;
display: flex;
justify-content: space-between;
align-items: center;
img {
height: 98%;
object-fit: contain;
}
ul {
height: 100%;
display: flex;
justify-content: flex-end;
align-items: center;
color: #fff;
li {
padding: 0 22px;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
color: @mainColor;
&:hover {
cursor: pointer;
color: @highlightColor;
}
}
.active {
color: @highlightColor;
position: relative;
&::before {
content: "";
width: 67%;
height: 4px;
background-color: @highlightColor;
position: absolute;
top: 0;
}
}
}
}
}
</style>
\ No newline at end of file
<template>
<div class="search-container">
<input type="text" placeholder="请输入关键词" v-model="keyword" />
<button
:class="{ 'btn-disabled': !keyword }"
:disabled="!keyword"
@click="goto"
>
搜索
</button>
</div>
</template>
<script>
import { mapGetters, mapMutations } from 'vuex';
export default {
name: "search",
components: {},
props: {
// 是否存储在vuex
isCache: {
type: Boolean,
default: false,
}
},
computed: {
...mapGetters({
cacheKeyword: 'search/keyword'
})
},
data() {
return {
keyword: "",
};
},
watch: {},
created() {
if (!this.isCache) {
this.keyword = this.cacheKeyword;
}
},
mounted() { },
beforeDestroy() {
if (!this.isCache) {
this.setKeyword('');
}
},
methods: {
...mapMutations({
setKeyword: 'search/setKeyword'
}),
goto() {
if (this.isCache) {
this.setKeyword(this.keyword);
}
this.$router.push({
path: `/label/${this.keyword}`,
query: {
search: 'search'
},
});
},
},
};
</script>
<style lang="less" scoped>
.search-container {
background-color: #fff;
margin-top: 20px;
padding: 20px;
border-radius: 4px;
display: flex;
align-items: center;
input {
padding: 0 6px;
border: 1px solid @borderColor;
width: 80%;
height: 26px;
line-height: 26px;
background-color: #f2f2f2;
height: 28px;
font-size: 14px;
border-radius: 2px;
&::placeholder {
color: @assistColor;
}
&:focus {
outline: none;
color: #24292e;
}
}
button {
border-radius: 2px;
background-color: #24292e;
color: #fff;
width: 20%;
border: none;
cursor: pointer;
height: 28px;
line-height: 28px;
margin-left: 12px;
a {
color: #fff;
}
&.btn-disabled {
cursor: not-allowed;
opacity: 0.75;
}
}
}
</style>
<template>
<div class="side-article" v-loading="loading">
<div class="side-title">
<Icon
:name="sideClassify === BROWSE_STATUS ? 'icon-hot' : 'icon-recommend'"
></Icon>
{{ sideType[sideClassify] }}
</div>
<div class="side-list">
<div class="list-item" v-for="(item, index) in blogList" :key="item._id">
<div class="item-title" @click="goto(item._id)">
<div
:style="{ backgroundColor: getActiveColor(index) }"
class="index"
v-show="sideClassify === BROWSE_STATUS"
>
{{ index + 1 }}
</div>
<div class="title">{{ item.title }}</div>
</div>
<div class="item-content">
<div class="item-img">
<img v-lazy="item.fileCoverImgUrl" />
</div>
<div class="item-right">
<div class="item-desc">
{{ item.desc }}
</div>
<div class="item-func">
<div class="func-box">
<Icon name="icon-date02"></Icon>
<div class="box-text">
{{ item.releaseTime | formatTime("yyyy-MM-dd") }}
</div>
</div>
<div class="func-box">
<Icon name="icon-browse02"></Icon>
<div class="box-text">{{ item.pv | formatNumber() }}</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import { apiGetBlogList } from "api/blog";
import { sortType, sideType, BROWSE_STATUS } from "src/constant/side";
export default {
name: "sideArticle",
components: {},
props: {
sideClassify: {
type: Number,
default: 1,
},
},
computed: {
getActiveColor() {
return (index) => (index < 3 ? "#FF6701" : "#b1b1b1");
},
},
data() {
return {
sideType,
BROWSE_STATUS,
loading: false,
blogList: [],
pageindex: 1,
pagesize: 5,
total: 0,
};
},
watch: {},
created() {
this.getBlogList();
},
mounted() { },
beforeDestroy() { },
methods: {
goto(id) {
this.$router.push({
path: `/article/detail/${id}`,
query: {
sortBy: sortType[this.sideClassify],
pageindex: this.pageindex,
pagesize: this.pagesize,
},
});
},
getBlogList() {
let params = {
sortBy: sortType[this.sideClassify],
pageindex: this.pageindex,
pagesize: this.pagesize,
};
this.loading = true;
return apiGetBlogList(params)
.then((res) => {
let { list, total } = res.data;
this.blogList = list;
this.total = total;
})
.catch((err) => {
console.log(err);
})
.finally(() => {
this.loading = false;
});
},
},
};
</script>
<style lang="less" scoped>
.side-article {
background-color: #fff;
margin-top: 20px;
border-radius: 6px;
.side-list {
padding: 10px;
.list-item {
border-bottom: solid 1px @borderColor;
font-size: 14px;
margin-bottom: 10px;
padding-bottom: 10px;
&:hover .item-title .title {
color: @mainColor;
}
&:hover .item-content .item-right .item-desc {
color: @mainColor;
}
&:hover .item-content .item-right .item-func .func-box {
color: @mainColor;
}
&:hover img {
transform: scale(1.2);
}
.item-title {
display: flex;
align-items: center;
margin-bottom: 10px;
cursor: pointer;
.index {
color: #fff;
font-size: 12px;
margin-right: 4px;
font-weight: normal;
width: 16px;
height: 16px;
display: flex;
justify-content: center;
align-items: center;
}
.title {
font-size: 14px;
color: @thinColor;
font-weight: bold;
.ellipsis-line-clamp();
}
}
.item-content {
display: flex;
align-items: flex-start;
.item-img {
width: 100px;
height: 70px;
margin-right: 10px;
overflow: hidden;
img {
width: 100%;
height: 100%;
border-radius: 4px;
transition: 0.4s ease all;
object-fit: cover;
}
}
.item-right {
flex: 1;
height: 70px;
display: flex;
flex-direction: column;
justify-content: space-between;
.item-desc {
color: @assistColor;
line-height: 24px;
.ellipsis-line-clamp(2);
}
.item-func {
margin-top: 10px;
display: flex;
justify-content: center;
align-items: center;
.func-box {
display: flex;
align-items: center;
padding-left: 24px;
color: @assistColor;
.box-text {
padding-left: 4px;
}
}
}
}
}
}
}
}
</style>
<template>
<div class="top-wrapper" v-show="showTop" @click="goTop">
<img src="../images/back-top.png" alt="Top" />
</div>
</template>
<script>
export default {
name: "top",
components: {},
props: {},
computed: {
showTop() {
return this.scrollTop > 300;
},
},
data() {
return {
scrollTop: 0,
};
},
watch: {},
created() { },
mounted() {
window.addEventListener("scroll", () => {
this.scrollTop =
document.documentElement.scrollTop ||
document.body.scrollTop;
});
},
beforeDestroy() { },
methods: {
goTop() {
let back = setInterval(() => {
if (document.documentElement.scrollTop || document.body.scrollTop) {
document.documentElement.scrollTop -= 80;
document.body.scrollTop -= 80;
} else {
clearInterval(back);
}
}, 20);
},
},
};
</script>
<style lang="less" scoped>
.top-wrapper {
img {
position: fixed;
bottom: 120px;
right: 120px;
width: 80px;
object-fit: contain;
border-radius: 50%;
cursor: pointer;
}
}
</style>
export const colorList = [
"#EB6841",
"#3FB8AF",
"#464646",
"#FC9D9A",
"#EDC951",
"#C8C8A9",
"#83AF9B",
"#036564",
];
// 侧边栏文章类别
const BROWSE_STATUS = 1; // 点击排行
const RECOMMEND_STATUS = 2; // 站长推荐
const sideType = {
[BROWSE_STATUS]: "点击排行",
[RECOMMEND_STATUS]: "站长推荐",
};
const sortType = {
[BROWSE_STATUS]: "pv",
[RECOMMEND_STATUS]: "level",
};
export { BROWSE_STATUS, RECOMMEND_STATUS, sideType, sortType };
/**
* 时间日期格式化
* 用法 formatTime(new Date(), 'yyyy-MM-dd hh:mm:ss')
* @param time
* @param fmt
*/
export function formatTime(time, fmt) {
time = parseInt(time);
if (!time) {
return "";
}
const date = new Date(time);
let o = {
"M+": date.getMonth() + 1, // 月份
"d+": date.getDate(), // 日
"h+": date.getHours(), // 小时
"m+": date.getMinutes(), // 分
"s+": date.getSeconds(), // 秒
"q+": Math.floor((date.getMonth() + 3) / 3), // 季度
S: date.getMilliseconds(), // 毫秒
};
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(
RegExp.$1,
(date.getFullYear() + "").substr(4 - RegExp.$1.length)
);
}
for (let k in o) {
if (new RegExp("(" + k + ")").test(fmt)) {
fmt = fmt.replace(
RegExp.$1,
RegExp.$1.length === 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length)
);
}
}
return fmt;
}
/**
* 数字转成 k、w 方式
* @param num
*/
export function formatNumber(num) {
return num >= 1e3 && num < 1e4
? (num / 1e3).toFixed(1) + "k"
: num >= 1e4
? (num / 1e4).toFixed(1) + "w"
: num;
}
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFDC5D" d="M5 21c0 2.209-1.119 4-2.5 4S0 23.209 0 21s1.119-4 2.5-4S5 18.791 5 21z"/><path fill="#FFDC5D" d="M3 18.562C3 10.037 8.373 3.125 15 3.125s12 6.912 12 15.438C27 27.088 21.627 34 15 34S3 27.088 3 18.562z"/><path fill="#DD2E44" d="M20 0c-.249 0-.478.007-.713.012C19.19.01 19.097 0 19 0 9 0 2 4.582 2 9s6.373 4 13 4c4.442 0 7.648 0 9.966-.086L25 13l6 15h2s.343-3.055 1-7c1-6 .533-21-14-21z"/><path fill="#FFDC5D" d="M30 21c0 2.209-1.119 4-2.5 4S25 23.209 25 21s1.119-4 2.5-4 2.5 1.791 2.5 4z"/><path fill="#662113" d="M10 21c-.552 0-1-.447-1-1v-2c0-.552.448-1 1-1s1 .448 1 1v2c0 .553-.448 1-1 1zm10 0c-.553 0-1-.447-1-1v-2c0-.552.447-1 1-1s1 .448 1 1v2c0 .553-.447 1-1 1z"/><path fill="#B7755E" d="M16 26h-2c-.552 0-1-.447-1-1s.448-1 1-1h2c.552 0 1 .447 1 1s-.448 1-1 1z"/><path fill="#E6E7E8" d="M27 25c0-2-2.293-.707-3 0-1 1-3 3-5 2-2.828-1.414-4-1-4-1s-1.171-.414-4 1c-2 1-4-1-5-2-.707-.707-3-2-3 0s1 2 1 2c-1 2 1 3 1 3 0 3 3 3 3 3 0 3 4 2 4 2 1 1 3 1 3 1s2 0 3-1c0 0 4 1 4-2 0 0 3 0 3-3 0 0 2-1 1-3 0 0 1 0 1-2z"/><path fill="#FFDC5D" d="M15 28c7 0 4 2 0 2s-7-2 0-2z"/><ellipse fill="#D1D3D4" cx="3" cy="14" rx="2" ry="4"/><ellipse fill="#D1D3D4" cx="26" cy="14" rx="2" ry="4"/><circle fill="#F1F2F2" cx="32" cy="29" r="4"/><path fill="#F1F2F2" d="M29 12c0 1.104-.896 2-2 2H2c-1.104 0-2-.896-2-2v-1c0-1.104.896-2 2-2h25c1.104 0 2 .896 2 2v1z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCB4E" d="M33 17c1.072-6.084 1.262-15.048 0-15.864C31.738.322 22.928 3.353 21.086 7.4 20.081 7.132 18 7 18 7s-2.013.132-3.017.399C13.14 3.352 4.261.321 3 1.136 1.738 1.952 1.926 10.916 3 17c0 0-.967 1.979-.967 8.95l16-3.967 16 4C34.033 18.979 33 17 33 17z"/><path fill="#FFD882" d="M23.946 19.282c-2.085 0-4.273.477-5.913 1.281-1.639-.805-3.827-1.281-5.912-1.281-9.932 0-10.088 5.1-10.088 6.664C2.033 27.505 4 35.979 18 35.979s16.033-8.441 16.033-10c0-1.564-.156-6.697-10.087-6.697z"/><path fill="#F28F20" d="M23.406 8.054c2.17-2.383 6.681-4.172 7.607-3.945.752.182.635 6.387.031 9.938-2.562-4.251-7.638-5.993-7.638-5.993zm-10.746 0c-2.168-2.383-6.68-4.172-7.606-3.945-.754.182-.637 6.387-.031 9.938 2.563-4.251 7.637-5.993 7.637-5.993z"/><path fill="#FAAA35" d="M22.04 20c0-4.693-1.809-13-4.04-13s-4.04 8.307-4.04 13c0 4.695 1.809 2 4.04 2s4.04 2.695 4.04-2z"/><path fill="#2A2F33" d="M15.019 16.999c0 1.105-.904 2-2.019 2s-2.019-.895-2.019-2c0-1.104.904-1.998 2.019-1.998s2.019.895 2.019 1.998zm10.02.001c0 1.105-.904 2-2.02 2C21.904 19 21 18.105 21 17c0-1.104.904-1.998 2.02-1.998 1.115 0 2.019.894 2.019 1.998z"/><path fill="#F28F20" d="M23.804 28.895c-3.488.696-4.55-.785-4.784-1.229V25c0-.553-.447-1-1-1-.553 0-1 .447-1 1v2.659c-.246.452-1.338 1.931-4.823 1.236-.548-.113-1.069.243-1.177.784-.108.542.243 1.068.784 1.177.79.158 1.495.227 2.127.227 2.078 0 3.339-.741 4.081-1.473.735.733 1.986 1.473 4.058 1.473.631 0 1.337-.068 2.126-.227.541-.108.893-.635.784-1.177-.107-.541-.629-.897-1.176-.784z"/><path fill="#292F33" d="M22.02 21.592c0 1.758-3.216 3.978-4.02 3.978-.803 0-4.019-2.221-4.019-3.978C13.981 19.832 16.225 20 18 20s4.02-.168 4.02 1.592z"/><path fill="#F39120" d="M34.021 31.935c-.277 0-.553-.115-.751-.339-.03-.035-3.181-3.502-10.41-4.624-.546-.085-.92-.596-.835-1.142.085-.546.597-.915 1.142-.835.366.057.724.119 1.072.187 7.242 1.404 10.399 4.939 10.536 5.096.362.416.319 1.048-.097 1.411-.189.165-.423.246-.657.246z"/><path fill="#F39120" d="M23.014 26.983c-.406 0-.789-.25-.939-.653-.191-.519.074-1.094.592-1.285 5.477-2.023 12.161-.189 12.45-.108.532.148.843.699.695 1.23-.146.532-.697.843-1.229.697-.064-.018-6.358-1.739-11.223.058-.114.042-.231.061-.346.061zM1.988 31.935c.277 0 .553-.115.751-.339.03-.035 3.181-3.502 10.41-4.624.546-.085.92-.596.835-1.142-.085-.546-.597-.915-1.142-.835-.366.057-.724.119-1.072.187-7.242 1.404-10.399 4.939-10.536 5.096-.362.416-.319 1.048.097 1.411.19.165.424.246.657.246z"/><path fill="#F39120" d="M12.996 26.983c.406 0 .789-.25.938-.653.191-.519-.074-1.094-.592-1.285-5.477-2.023-12.161-.189-12.45-.108-.532.148-.843.699-.695 1.23.146.532.697.843 1.229.697.064-.018 6.358-1.739 11.223.058.115.042.232.061.347.061z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#DD2E44" d="M15 30v3s0 3 3 3 3-3 3-3v-3h-6z"/><path fill="#272B2B" d="M14 2c.041-3-14-2-14 8 0 4 0 14 3 14C7 24 13.945 6 14 2zm8 0c-.041-3 14-2 14 8 0 4 0 14-3 14-4 0-10.945-18-11-22z"/><path fill="#CCD6DD" d="M31 22c0 7-4 7-4 7H9s-4 0-4-7C5 22 6 0 18 0s13 22 13 22z"/><path fill="#8899A6" d="M23 22.025V22H13v.025c-2.803.253-5 2.606-5 5.475 0 3.037 2.462 5.5 5.5 5.5 1.862 0 3.505-.928 4.5-2.344.995 1.416 2.638 2.344 4.5 2.344 3.038 0 5.5-2.463 5.5-5.5 0-2.868-2.196-5.222-5-5.475z"/><path fill="#272B2B" d="M11 16s0-2 2-2 2 2 2 2v2s0 2-2 2-2-2-2-2v-2zm10 0s0-2 2-2 2 2 2 2v2s0 2-2 2-2-2-2-2v-2zm-6 8c-1 1 2 4 3 4s4-3 3-4-5-1-6 0z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFDC5D" d="M30 20.145s.094-2.362-1.791-3.068c-1.667-.625-2.309.622-2.309.622s.059-1.913-1.941-2.622c-1.885-.667-2.75.959-2.75.959s-.307-1.872-2.292-2.417C17.246 13.159 16 14.785 16 14.785V2.576C16 1.618 15.458.001 13.458 0S11 1.66 11 2.576v20.5c0 1-1 1-1 0V20.41c0-3.792-2.037-6.142-2.75-6.792-.713-.65-1.667-.98-2.82-.734-1.956.416-1.529 1.92-.974 3.197 1.336 3.078 2.253 7.464 2.533 9.538.79 5.858 5.808 10.375 11.883 10.381 6.626.004 12.123-5.298 12.128-11.924v-3.931z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFDC5D" d="M4 15.894s-.093 2.362 1.792 3.068c1.667.625 2.309-.622 2.309-.622s-.059 1.914 1.941 2.622c1.885.668 2.75-.958 2.75-.958s.307 1.871 2.292 2.417C16.755 22.88 18 21.254 18 21.254v12.208c0 .959.542 2.575 2.543 2.576 2 .002 2.457-1.659 2.457-2.576v-20.5c0-1 1-1 1 0v2.666c0 3.792 2.038 6.143 2.751 6.792.713.65 1.667.979 2.82.734 1.956-.415 1.529-1.92.975-3.197-1.337-3.078-2.254-7.464-2.533-9.538C27.222 4.562 22.204.044 16.129.038 9.503.034 4.005 5.336 4 11.962v3.932z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFDC5D" d="M20.145 31s-2.436-.167-3.068-1.792c-.646-1.659.622-2.309.622-2.309s-1.914.059-2.622-1.941c-.668-1.885.958-2.75.958-2.75s-1.871-.307-2.417-2.292C13.158 18.245 14.784 17 14.784 17H2.576C1.617 17 .001 16.458 0 14.457-.002 12.457 1.659 12 2.576 12h20.5c1 0 1-1 0-1H20.41c-3.792 0-6.143-2.038-6.792-2.751-.65-.713-.98-1.667-.734-2.82.415-1.956 1.92-1.529 3.197-.975 3.078 1.337 7.464 2.254 9.538 2.533 5.858.791 10.375 5.809 10.381 11.884.004 6.626-5.298 12.124-11.924 12.129h-3.931z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFDC5D" d="M15.856 31s2.394-.208 3.068-1.792c.697-1.639-.622-2.309-.622-2.309s1.914.059 2.622-1.941c.668-1.885-.958-2.75-.958-2.75s1.871-.307 2.417-2.292C22.842 18.245 21.216 17 21.216 17h12.208c.959 0 2.575-.542 2.576-2.543.002-2-1.659-2.457-2.576-2.457h-20.5c-1 0-1-1 0-1h2.666c3.792 0 6.143-2.038 6.792-2.751.65-.713.979-1.667.734-2.82-.415-1.956-1.92-1.529-3.197-.975-3.078 1.337-7.464 2.254-9.538 2.533C4.523 7.778.006 12.796 0 18.871-.004 25.497 5.298 30.995 11.924 31h3.932z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFDC5D" d="M32.942 11.244c-.041-.609-.284-1.18-.674-1.644l-.357-2.057c-.376-2.006-2.232-3.386-4.262-3.169L4.259 8.11C2.377 8.312.909 9.833.774 11.721l1.761 11.147c.305 2.169 2.151 3.788 4.341 3.813.677.008 1.238.017 1.463.027l9.483.463c-.363.483-.822 1.08-.822 1.718v.052c0 1.581 1.771 3.06 3.353 3.06h7.282c.76 0 1.488-.4 2.025-.938l4.424-4.472c.583-.584.887-1.416.832-2.24l-1.974-13.107z"/><path fill="#EF9645" d="M8.217 26.623c-.474 0-.895-.338-.983-.821L5.174 14.47c-.099-.543.262-1.064.805-1.163.546-.097 1.064.262 1.163.805l2.06 11.332c.099.543-.262 1.063-.805 1.162-.061.012-.121.017-.18.017zm6.181 0c-.517 0-.955-.398-.996-.923l-1.03-13.393c-.043-.551.37-1.031.92-1.074.549-.044 1.031.371 1.074.92l1.03 13.392c.043.551-.37 1.032-.92 1.074-.026.003-.053.004-.078.004zm7.207 1.106c-.508 0-.757-.001-.951-1.062l-.044-.003c.001-.055.007-.108.017-.161-.174-1.068-.309-3.069-.561-6.817-.235-3.49-.486-7.552-.486-8.485 0-.552.447-1 1-1 .553 0 1 .448 1 1 0 1.533.795 13.324.981 15.145.032.097.049.2.049.308 0 .266-.108.557-.295.744s-.444.331-.71.331z"/><path fill="#EF9645" d="M25.178 28.684H18.52c-.552 0-1-.447-1-1s.448-1 1-1h6.658c1.458 0 2.644-1.186 2.644-2.644V11.201c0-.552.447-1 1-1s1 .448 1 1V24.04c-.001 2.561-2.084 4.644-4.644 4.644z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#EF9645" d="M24.997 28.5c-1.185 0-2.237-.846-2.457-2.053l-4-22c-.247-1.358.654-2.66 2.012-2.907 1.358-.251 2.66.654 2.907 2.012l4 22c.247 1.358-.654 2.66-2.013 2.907-.15.028-.3.041-.449.041z"/><path fill="#FFDC5D" d="M28.375 24.765c.239-.745.13-1.591-.375-2.265-.059-.078-.44-.585-1.017-1.34.005-.052.017-.112.017-.16 0-.458-1.913-2.623-3.74-4.586-1.587-1.965-3.261-3.951-4.492-5.182l-1.274-1.274-1.612.806c-5.718 2.859-8.647 3.855-8.672 3.864-1.31.437-2.018 1.852-1.581 3.162.437 1.31 1.852 2.015 3.162 1.582.117-.039 2.666-.899 7.65-3.311 1.094 1.23 2.378 2.795 3.574 4.296l.704 1.174c.169.282.146.639-.061.896l-3.513 4.392c-.095.119-.222.207-.365.255l-2.531.844c-.161.054-.336.054-.497 0l-4.73-1.576c-.676-2.082-.533-4.102-.531-4.124.12-1.376-.899-2.588-2.274-2.707-1.372-.128-2.587.897-2.707 2.273-.022.261-.51 6.424 3.313 10.594 2.208 2.408 5.296 3.63 9.178 3.63.66 0 1.283.009 1.871.018.529.008 1.042.016 1.537.016 2.764 0 5.004-.231 6.738-1.941 1.649-1.626 2.354-4.195 2.354-8.592-.001-.263-.052-.508-.126-.744z"/><path fill="#EF9645" d="M27.001 21c-.384 0-.749-.221-.915-.594l-4-9c-.224-.505.003-1.096.508-1.32.506-.226 1.096.003 1.32.507l4 9c.224.505-.003 1.096-.508 1.32-.132.06-.269.087-.405.087z"/><path fill="#FFDC5D" d="M24.766 34.38l-1.531-4.76s-.066.011-.175.066c.017-.009 1.821-.995 2.461-6.003.775-6.075-.774-9.6-.79-9.634l-.093-.231-3.5-10.104c-.452-1.305.239-2.729 1.544-3.181 1.303-.451 2.729.24 3.181 1.544l3.469 10.013c.377.887 2.035 5.285 1.148 12.226-1.042 8.163-4.943 9.816-5.714 10.064z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFDB5E" d="M34.956 17.916c0-.503-.12-.975-.321-1.404-1.341-4.326-7.619-4.01-16.549-4.221-1.493-.035-.639-1.798-.115-5.668.341-2.517-1.282-6.382-4.01-6.382-4.498 0-.171 3.548-4.148 12.322-2.125 4.688-6.875 2.062-6.875 6.771v10.719c0 1.833.18 3.595 2.758 3.885C8.195 34.219 7.633 36 11.238 36h18.044c1.838 0 3.333-1.496 3.333-3.334 0-.762-.267-1.456-.698-2.018 1.02-.571 1.72-1.649 1.72-2.899 0-.76-.266-1.454-.696-2.015 1.023-.57 1.725-1.649 1.725-2.901 0-.909-.368-1.733-.961-2.336.757-.611 1.251-1.535 1.251-2.581z"/><path fill="#EE9547" d="M23.02 21.249h8.604c1.17 0 2.268-.626 2.866-1.633.246-.415.109-.952-.307-1.199-.415-.247-.952-.108-1.199.307-.283.479-.806.775-1.361.775h-8.81c-.873 0-1.583-.71-1.583-1.583s.71-1.583 1.583-1.583H28.7c.483 0 .875-.392.875-.875s-.392-.875-.875-.875h-5.888c-1.838 0-3.333 1.495-3.333 3.333 0 1.025.475 1.932 1.205 2.544-.615.605-.998 1.445-.998 2.373 0 1.028.478 1.938 1.212 2.549-.611.604-.99 1.441-.99 2.367 0 1.12.559 2.108 1.409 2.713-.524.589-.852 1.356-.852 2.204 0 1.838 1.495 3.333 3.333 3.333h5.484c1.17 0 2.269-.625 2.867-1.632.247-.415.11-.952-.305-1.199-.416-.245-.953-.11-1.199.305-.285.479-.808.776-1.363.776h-5.484c-.873 0-1.583-.71-1.583-1.583s.71-1.583 1.583-1.583h6.506c1.17 0 2.27-.626 2.867-1.633.247-.416.11-.953-.305-1.199-.419-.251-.954-.11-1.199.305-.289.487-.799.777-1.363.777h-7.063c-.873 0-1.583-.711-1.583-1.584s.71-1.583 1.583-1.583h8.091c1.17 0 2.269-.625 2.867-1.632.247-.415.11-.952-.305-1.199-.417-.246-.953-.11-1.199.305-.289.486-.799.776-1.363.776H23.02c-.873 0-1.583-.71-1.583-1.583s.709-1.584 1.583-1.584z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFDB5E" d="M34.956 18.084c0 .503-.12.975-.321 1.404-1.341 4.326-7.619 4.01-16.549 4.221-1.493.035-.639 1.798-.115 5.668.341 2.517-1.282 6.382-4.01 6.382-4.498 0-.171-3.548-4.148-12.322-2.125-4.688-6.875-2.062-6.875-6.771V5.948c0-1.833.18-3.595 2.758-3.885C8.195 1.781 7.633 0 11.238 0h18.044c1.838 0 3.333 1.496 3.333 3.334 0 .762-.267 1.456-.698 2.018 1.02.571 1.72 1.649 1.72 2.899 0 .76-.266 1.454-.696 2.015 1.023.57 1.725 1.649 1.725 2.901 0 .909-.368 1.733-.961 2.336.757.611 1.251 1.535 1.251 2.581z"/><path fill="#EE9547" d="M23.02 14.751h8.604c1.17 0 2.268.626 2.866 1.633.246.415.109.952-.307 1.199-.415.247-.952.108-1.199-.307-.283-.479-.806-.775-1.361-.775h-8.81c-.873 0-1.583.71-1.583 1.583s.71 1.583 1.583 1.583H28.7c.483 0 .875.392.875.875s-.392.875-.875.875h-5.888c-1.838 0-3.333-1.495-3.333-3.333 0-1.025.475-1.932 1.205-2.544-.615-.605-.998-1.445-.998-2.373 0-1.028.478-1.938 1.212-2.549-.611-.604-.99-1.441-.99-2.367 0-1.12.559-2.108 1.409-2.713-.524-.589-.852-1.356-.852-2.204 0-1.838 1.495-3.333 3.333-3.333h5.484c1.17 0 2.269.625 2.867 1.632.247.415.11.952-.305 1.199-.416.245-.953.11-1.199-.305-.285-.479-.808-.776-1.363-.776h-5.484c-.873 0-1.583.71-1.583 1.583s.71 1.583 1.583 1.583h6.506c1.17 0 2.27.626 2.867 1.633.247.416.11.953-.305 1.199-.419.251-.954.11-1.199-.305-.289-.487-.799-.777-1.363-.777h-7.063c-.873 0-1.583.711-1.583 1.584s.71 1.583 1.583 1.583h8.091c1.17 0 2.269.625 2.867 1.632.247.415.11.952-.305 1.199-.417.246-.953.11-1.199-.305-.289-.486-.799-.776-1.363-.776H23.02c-.873 0-1.583.71-1.583 1.583s.709 1.584 1.583 1.584z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#EF9645" d="M32.302 24.347c-.695-1.01-.307-2.47-.48-4.082-.178-2.63-1.308-5.178-3.5-7.216l-7.466-6.942s-1.471-1.369-2.841.103c-1.368 1.471.104 2.84.104 2.84l3.154 2.934 2.734 2.542s-.685.736-3.711-2.078l-10.22-9.506s-1.473-1.368-2.842.104c-1.368 1.471.103 2.84.103 2.84l9.664 8.989c-.021-.02-.731.692-.744.68L5.917 5.938s-1.472-1.369-2.841.103c-1.369 1.472.103 2.84.103 2.84L13.52 18.5c.012.012-.654.764-.634.783l-8.92-8.298s-1.472-1.369-2.841.103c-1.369 1.472.103 2.841.103 2.841l9.484 8.82c.087.081-.5.908-.391 1.009l-6.834-6.356s-1.472-1.369-2.841.104c-1.369 1.472.103 2.841.103 2.841L11.896 30.71c1.861 1.731 3.772 2.607 6.076 2.928.469.065 1.069.065 1.315.096.777.098 1.459.374 2.372.934 1.175.72 2.938 1.02 3.951-.063l3.454-3.695 3.189-3.412c1.012-1.082.831-2.016.049-3.151z"/><path d="M1.956 35.026c-.256 0-.512-.098-.707-.293-.391-.391-.391-1.023 0-1.414L4.8 29.77c.391-.391 1.023-.391 1.414 0s.391 1.023 0 1.414l-3.551 3.55c-.195.195-.451.292-.707.292zm6.746.922c-.109 0-.221-.018-.331-.056-.521-.182-.796-.752-.613-1.274l.971-2.773c.182-.521.753-.795 1.274-.614.521.183.796.753.613 1.274l-.971 2.773c-.144.412-.53.67-.943.67zm-7.667-7.667c-.412 0-.798-.257-.943-.667-.184-.521.089-1.092.61-1.276l2.495-.881c.523-.18 1.092.091 1.276.61.184.521-.089 1.092-.61 1.276l-2.495.881c-.111.039-.223.057-.333.057zm29.46-21.767c-.256 0-.512-.098-.707-.293-.391-.391-.391-1.024 0-1.415l3.552-3.55c.391-.39 1.023-.39 1.414 0s.391 1.024 0 1.415l-3.552 3.55c-.195.196-.451.293-.707.293zm-4.164-1.697c-.109 0-.221-.019-.33-.057-.521-.182-.796-.752-.614-1.274l.97-2.773c.183-.521.752-.796 1.274-.614.521.182.796.752.614 1.274l-.97 2.773c-.144.413-.531.671-.944.671zm6.143 5.774c-.412 0-.798-.257-.943-.667-.184-.521.09-1.092.61-1.276l2.494-.881c.522-.185 1.092.09 1.276.61.184.521-.09 1.092-.61 1.276l-2.494.881c-.111.039-.223.057-.333.057z" fill="#FA743E"/><path fill="#FFDB5E" d="M35.39 23.822c-.661-1.032-.224-2.479-.342-4.096-.09-2.634-1.133-5.219-3.255-7.33l-7.228-7.189s-1.424-1.417-2.843.008c-1.417 1.424.008 2.842.008 2.842l3.054 3.039 2.646 2.632s-.71.712-3.639-2.202c-2.931-2.915-9.894-9.845-9.894-9.845s-1.425-1.417-2.843.008c-1.418 1.424.007 2.841.007 2.841l9.356 9.31c-.02-.02-.754.667-.767.654L9.64 4.534s-1.425-1.418-2.843.007c-1.417 1.425.007 2.842.007 2.842l10.011 9.962c.012.012-.68.741-.66.761L7.52 9.513s-1.425-1.417-2.843.008.007 2.843.007 2.843l9.181 9.135c.084.083-.53.891-.425.996l-6.616-6.583s-1.425-1.417-2.843.008.007 2.843.007 2.843l10.79 10.732c1.802 1.793 3.682 2.732 5.974 3.131.467.081 1.067.101 1.311.14.773.124 1.445.423 2.34 1.014 1.15.759 2.902 1.118 3.951.07l3.577-3.576 3.302-3.302c1.049-1.05.9-1.99.157-3.15z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFDC5D" d="M6 20c0 2.209-1.119 4-2.5 4S1 22.209 1 20s1.119-4 2.5-4S6 17.791 6 20zm29 0c0 2.209-1.119 4-2.5 4S30 22.209 30 20s1.119-4 2.5-4 2.5 1.791 2.5 4z"/><path fill="#FFDC5D" d="M4 20.562c0-8.526 6.268-15.438 14-15.438s14 6.912 14 15.438S25.732 35 18 35 4 29.088 4 20.562z"/><path fill="#662113" d="M12 22c-.552 0-1-.447-1-1v-2c0-.552.448-1 1-1s1 .448 1 1v2c0 .553-.448 1-1 1zm12 0c-.553 0-1-.447-1-1v-2c0-.552.447-1 1-1s1 .448 1 1v2c0 .553-.447 1-1 1z"/><path fill="#C1694F" d="M18 30c-4.188 0-6.357-1.06-6.447-1.105-.494-.247-.694-.848-.447-1.342.247-.492.843-.692 1.337-.449.051.024 1.925.896 5.557.896 3.665 0 5.54-.888 5.559-.897.496-.241 1.094-.034 1.336.457.243.493.045 1.089-.447 1.335C24.356 28.94 22.188 30 18 30zm1-5h-2c-.552 0-1-.447-1-1s.448-1 1-1h2c.553 0 1 .447 1 1s-.447 1-1 1z"/><path fill="#FFAC33" d="M18 .354C8.77.354 3 6.816 3 12.2c0 5.385 1.154 7.539 2.308 5.385l2.308-4.308s3.791-.124 6.099-2.278c0 0-1.071 4 6.594.124 0 0-.166 3.876 5.191-.124 0 0 4.039 1.201 5.191 6.586.32 1.494 2.309 0 2.309-5.385C33 6.816 28.385.354 18 .354z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFAC33" d="M29.96 23.087C34 27 34.043 34.021 33.021 34.021s-4.115-1.852-6.068-3.937C25 28 25.203 23.306 25.203 23.306l1.586-4.319c0-.001-.869.187 3.171 4.1z"/><path fill="#FFAC33" d="M26.96 23.087C31 27 31.043 34.021 30.021 34.021s-4.115-1.852-6.068-3.937C22 28 22.203 23.306 22.203 23.306l1.586-4.319c0-.001-.869.187 3.171 4.1zM3 34c-1 0-1-7 3-11s3-4 3-4l2 4s0 5-2 7-5 4-6 4z"/><path fill="#FFAC33" d="M6 34c-1 0-1-7 3-11s3-4 3-4l2 4s0 5-2 7-5 4-6 4z"/><path fill="#FFDC5D" d="M6.914 18.353c-.571-2.134-2.116-3.575-3.45-3.217-1.334.358-1.95 2.378-1.379 4.511.571 2.135 2.116 3.574 3.45 3.217 1.334-.358 1.951-2.378 1.379-4.511zm27.001 1.294c.571-2.134-.046-4.154-1.38-4.512-1.333-.356-2.878 1.083-3.449 3.218-.572 2.134.045 4.153 1.379 4.511 1.334.358 2.879-1.083 3.45-3.217z"/><path fill="#FFDC5D" d="M31 19c0-9.389-5.82-16-13-16S5 9.611 5 19s5.82 15 13 15 13-5.611 13-15z"/><path fill="#DF1F32" d="M18 27.651c-2.42 0-4.274-.687-4.352-.715-.517-.194-.779-.771-.584-1.288.194-.517.769-.779 1.286-.585.016.006 1.61.588 3.65.588 2.041 0 3.635-.582 3.65-.588.516-.194 1.094.071 1.285.587.193.517-.067 1.092-.584 1.286-.077.029-1.93.715-4.351.715z"/><path fill="#C1694F" d="M19 23h-2c-.552 0-1-.447-1-1s.448-1 1-1h2c.553 0 1 .447 1 1s-.447 1-1 1z"/><path fill="#662113" d="M12 20c-.552 0-1-.447-1-1v-2c0-.552.448-1 1-1s1 .448 1 1v2c0 .553-.448 1-1 1zm12 0c-.553 0-1-.447-1-1v-2c0-.552.447-1 1-1s1 .448 1 1v2c0 .553-.447 1-1 1z"/><path fill="#FFAC33" d="M32 10c-2-7-7-9-10-9-2 0-4 2-4 2s-2-2-4-2c-3 0-8 2-10 9-1.648 5.769 1 11 1 11 0-3.001 2-9 7-9s6-4 6-4 .786 4 5.786 4S31 18 31 21c0 0 2.648-5.231 1-11z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFDC5D" d="M8 19c0 2.209-1.119 4-2.5 4S3 21.209 3 19s1.119-4 2.5-4S8 16.791 8 19zm25 0c0 2.209-1.119 4-2.5 4S28 21.209 28 19s1.119-4 2.5-4 2.5 1.791 2.5 4z"/><path fill="#FFDC5D" d="M5 20.562c0-8.526 5.82-15.438 13-15.438s13 6.912 13 15.438S25.18 36 18 36 5 29.088 5 20.562z"/><path fill="#662113" d="M13 20c-.552 0-1-.447-1-1v-2c0-.552.448-1 1-1s1 .448 1 1v2c0 .553-.448 1-1 1zm10 0c-.553 0-1-.447-1-1v-2c0-.552.447-1 1-1s1 .448 1 1v2c0 .553-.447 1-1 1z"/><path fill="#C1694F" d="M19 24h-2c-.552 0-1-.447-1-1s.448-1 1-1h2c.553 0 1 .447 1 1s-.447 1-1 1z"/><path fill="#FFAC33" d="M25.274 27.038l-3.294-.941c.003-.034.02-.063.02-.097 0-.553-.447-1-1-1h-6c-.552 0-1 .447-1 1 0 .034.016.063.019.097l-3.294.941c-.531.152-.838.706-.686 1.236.125.44.525.726.961.726.091 0 .184-.013.275-.038l1.931-.552c-.216.293-.274.688-.1 1.037.175.351.528.553.895.553.15 0 .303-.034.446-.105l1.577-.788c.036.326.213.631.529.788.143.071.296.105.446.105.367 0 .72-.202.896-.553l.105-.211.105.211c.176.351.529.553.896.553.15 0 .303-.034.446-.105.315-.157.493-.462.529-.788l1.576.788c.144.071.297.105.447.105.367 0 .72-.202.896-.553.174-.349.116-.744-.1-1.037l1.931.552c.091.025.183.038.275.038.434 0 .835-.286.961-.726.151-.53-.156-1.084-.688-1.236zM18 0c8.615 0 14 6.358 14 11.656 0 5.298-1.077 7.417-2.154 5.298l-2.153-4.238s-6.462 0-8.615-2.12c0 0 3.23 6.358-3.231 0 0 0 1.077 4.239-5.385-1.06 0 0-3.23 2.12-4.308 7.417C5.855 18.423 4 16.954 4 11.656 4 6.357 8.308 0 18 0z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFAC33" d="M18 3c6 0 16 3 16 16s0 16-3 16-7-3-13-3-9.915 3-13 3c-3.343 0-3-12-3-16C2 6 12 3 18 3z"/><path fill="#FFDC5D" d="M6 18.562c0-8.526 5.373-15.438 12-15.438s12 6.912 12 15.438S24.627 34 18 34 6 27.088 6 18.562z"/><path fill="#DF1F32" d="M18 30c-2.347 0-3.575-1.16-3.707-1.293-.391-.391-.391-1.023 0-1.414.387-.387 1.013-.39 1.404-.01.051.047.806.717 2.303.717 1.519 0 2.273-.69 2.305-.719.398-.373 1.027-.362 1.408.029.379.393.38 1.011-.006 1.397C21.575 28.84 20.347 30 18 30z"/><path fill="#C1694F" d="M19 25h-2c-.552 0-1-.447-1-1s.448-1 1-1h2c.553 0 1 .447 1 1s-.447 1-1 1z"/><path fill="#FFAC33" d="M3.064 24c-.03-.325-.064-.647-.064-1 0-5 3 .562 3-3 0-3.563 2-4 4-6l3-3s5 3 9 3 8 2 8 6 3-2 3 3c0 .355-.033.673-.058 1h1.049C34 22.523 34 20.868 34 19 34 6 24 1 18 1S2 6 2 19c0 1.158-.028 2.986.012 5h1.052z"/><path d="M13 22c-.552 0-1-.447-1-1v-2c0-.552.448-1 1-1s1 .448 1 1v2c0 .553-.448 1-1 1zm10 0c-.553 0-1-.447-1-1v-2c0-.552.447-1 1-1s1 .448 1 1v2c0 .553-.447 1-1 1z" fill="#662113"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#E1E8ED" d="M36 11c0-1.104-.896-2-2-2s-2 .896-2 2c0 0-.011 3.285-3 3.894V12c0-6.075-4.925-11-11-11S7 5.925 7 12v3.237C1.778 16.806 0 23.231 0 27c0 1.104.896 2 2 2s2-.896 2-2c0 0 .002-3.54 3.336-3.958C7.838 27.883 8.954 33 11 33h1c4 0 3 2 7 2s3-2 6-2 2.395 2 6 2c1.657 0 3-1.343 3-3 0-.675-2.274-4.994-3.755-9.268C35.981 21.348 36 14.58 36 11z"/><circle fill="#292F33" cx="13" cy="12" r="2"/><circle fill="#292F33" cx="23" cy="12" r="4"/><circle fill="#9AAAB4" cx="23" cy="13" r="2"/><path fill="#292F33" d="M22.192 19.491c2.65 1.987 3.591 5.211 2.1 7.199-1.491 1.988-4.849 1.988-7.5 0-2.65-1.987-3.591-5.211-2.1-7.199 1.492-1.989 4.849-1.988 7.5 0z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><g fill="#E75A70"><path d="M13.589 26.521c-.297-.495-.284-1.117.035-1.599l4.395-6.646-5.995-5.139c-.556-.476-.686-1.283-.31-1.911l4.304-7.172c-1.669-1.301-3.755-2.09-6.035-2.09-5.45 0-9.868 4.417-9.868 9.868 0 .772.098 1.52.266 2.241C1.751 22.587 11.216 31.568 18 34.034c.025-.009.052-.022.077-.032l-4.488-7.481z"/><path d="M26.018 1.966c-2.765 0-5.248 1.151-7.037 2.983l-4.042 6.737 6.039 5.176c.574.492.691 1.335.274 1.966l-4.604 6.962 4.161 6.935c6.338-3.529 13.621-11.263 14.809-18.649.17-.721.268-1.469.268-2.241-.001-5.452-4.419-9.869-9.868-9.869z"/></g></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#BF6952" d="M33.541 23.198c.364-1.578.243-3.266-.458-4.946-.678-1.625-1.847-2.91-3.271-3.773.318-1.192.234-2.475-.324-3.75-.841-1.92-2.66-3.201-4.712-3.562.249-.572.329-1.289.036-2.167-1-3-5-1-8-4.999-2.44 1.464-2.97 3.64-2.878 5.487-2.421.412-3.8.936-3.8.936v.002c-1.36.55-2.322 1.883-2.322 3.442 0 .879.318 1.676.828 2.312l-.692.258.001.003c-2.33.871-3.975 2.976-3.975 5.439 0 1.047.3 2.027.82 2.878C1.971 22.027 0 24.781 0 28c0 4.418 3.691 8 8.244 8 3.269 0 6.559-.703 9.531-1.665C20.018 35.375 23.47 36 28.667 36 32.717 36 36 32.717 36 28.667c0-2.176-.953-4.125-2.459-5.469z"/><ellipse fill="#F5F8FA" cx="13.5" cy="15.5" rx="3.5" ry="4.5"/><ellipse fill="#F5F8FA" cx="23.5" cy="15.5" rx="3.5" ry="4.5"/><ellipse fill="#292F33" cx="14" cy="15.5" rx="2" ry="2.5"/><ellipse fill="#292F33" cx="23" cy="15.5" rx="2" ry="2.5"/><path fill="#292F33" d="M9.447 24.895C9.201 24.402 9.45 24 10 24h18c.55 0 .799.402.553.895C28.553 24.895 26 30 19 30s-9.553-5.105-9.553-5.105z"/><path fill="#F2ABBA" d="M19 26c-2.771 0-5.157.922-6.292 2.256C14.2 29.211 16.253 30 19 30s4.801-.789 6.292-1.744C24.157 26.922 21.771 26 19 26z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFDC5D" d="M12.43 22s-.717-3.641.298-10.873c1.4.454 2.814.873 3.272.873 1 0 4-1 4-2s-1-2-1-2l2-1c1-1 0-7-4-7-7 0-9.57 7-9.57 7l.007.011H7.43s-6 10.989-6 20c.065 0-1 5 0 6s5 1 5 1C16.43 38 35 35 35 26c0-13-19.57-10-22.57-4z"/><path fill="#EF9645" d="M19.494 32.252c-3.178 0-5.793-1.283-5.941-1.357-.493-.247-.693-.846-.447-1.34.246-.494.845-.695 1.34-.45.042.021 4.241 2.061 7.957.641 2.055-.785 3.625-2.507 4.669-5.116.205-.515.791-.763 1.3-.558.513.205.763.787.558 1.3-1.263 3.155-3.223 5.258-5.827 6.248-1.216.461-2.451.632-3.609.632z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><path fill="#664500" d="M16 18c-.419 0-.809-.265-.949-.684C14.848 16.717 14.034 15 13 15c-1.062 0-1.888 1.827-2.051 2.316-.175.523-.738.808-1.265.632-.524-.174-.807-.741-.632-1.265C9.177 16.307 10.356 13 13 13s3.823 3.307 3.949 3.684c.175.524-.108 1.091-.632 1.265-.106.034-.213.051-.317.051zm10 0c-.419 0-.809-.265-.948-.684C24.849 16.717 24.033 15 23 15c-1.062 0-1.889 1.827-2.052 2.316-.175.523-.736.808-1.265.632-.523-.174-.807-.741-.632-1.265C19.177 16.307 20.355 13 23 13s3.823 3.307 3.948 3.684c.175.524-.108 1.091-.632 1.265-.105.034-.212.051-.316.051zm-8 4c-3.623 0-6.027-.422-9-1-.679-.131-2 0-2 2 0 4 4.595 9 11 9 6.404 0 11-5 11-9 0-2-1.321-2.132-2-2-2.973.578-5.377 1-9 1z"/><path fill="#FFF" d="M9 23s3 1 9 1 9-1 9-1-1.344 6.75-9 6.75S9 23 9 23z"/><path fill="#664500" d="M18 27.594c-3.596 0-6.272-.372-7.937-.745l-.825-1.871c.823.312 3.889.897 8.763.897 4.954 0 8.037-.616 8.864-.938l-.701 1.842c-1.634.38-4.419.815-8.164.815z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><path fill="#664500" d="M28.457 17.797c-.06-.135-1.499-3.297-4.457-3.297-2.957 0-4.397 3.162-4.457 3.297-.092.207-.032.449.145.591.175.142.426.147.61.014.012-.009 1.262-.902 3.702-.902 2.426 0 3.674.881 3.702.901.088.066.194.099.298.099.11 0 .221-.037.312-.109.177-.142.238-.386.145-.594zm-12 0c-.06-.135-1.499-3.297-4.457-3.297-2.957 0-4.397 3.162-4.457 3.297-.092.207-.032.449.144.591.176.142.427.147.61.014.013-.009 1.262-.902 3.703-.902 2.426 0 3.674.881 3.702.901.088.066.194.099.298.099.11 0 .221-.037.312-.109.178-.142.237-.386.145-.594zM31 16c-.396 0-.772-.238-.929-.629-1.778-4.445-6.223-5.381-6.268-5.391-.541-.108-.893-.635-.784-1.177.108-.542.635-.891 1.177-.784.226.045 5.556 1.168 7.732 6.608.205.513-.045 1.095-.558 1.3-.12.05-.246.073-.37.073zM5 16c-.124 0-.249-.023-.371-.072-.513-.205-.762-.787-.557-1.3 2.176-5.44 7.506-6.563 7.732-6.608.543-.106 1.068.243 1.177.784.108.54-.242 1.066-.781 1.176-.185.038-4.506.98-6.271 5.391-.157.391-.533.629-.929.629zm13 6c-3.623 0-6.027-.422-9-1-.679-.131-2 0-2 2 0 4 4.595 9 11 9 6.404 0 11-5 11-9 0-2-1.321-2.132-2-2-2.973.578-5.377 1-9 1z"/><path fill="#FFF" d="M9 23s3 1 9 1 9-1 9-1-2 4-9 4-9-4-9-4z"/><path fill="#5DADEC" d="M10.847 28.229c-.68 2.677-3.4 4.295-6.077 3.615-2.676-.679-4.295-3.399-3.616-6.076.679-2.677 6.337-8.708 7.307-8.462.97.247 3.065 8.247 2.386 10.923zm14.286 0c.68 2.677 3.4 4.295 6.077 3.615 2.677-.679 4.296-3.399 3.616-6.076-.68-2.677-6.338-8.708-7.308-8.462-.968.247-3.064 8.247-2.385 10.923z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><ellipse fill="#664500" cx="11.5" cy="12.5" rx="2.5" ry="5.5"/><ellipse fill="#664500" cx="24.5" cy="12.5" rx="2.5" ry="5.5"/><path fill="#664500" d="M18 22c-3.623 0-6.027-.422-9-1-.679-.131-2 0-2 2 0 4 4.595 9 11 9 6.404 0 11-5 11-9 0-2-1.321-2.132-2-2-2.973.578-5.377 1-9 1z"/><path fill="#FFF" d="M9 23s3 1 9 1 9-1 9-1-2 4-9 4-9-4-9-4z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><path fill="#664500" d="M28.457 17.797c-.06-.135-1.499-3.297-4.457-3.297-2.957 0-4.397 3.162-4.457 3.297-.092.207-.032.449.145.591.175.142.426.147.61.014.012-.009 1.262-.902 3.702-.902 2.426 0 3.674.881 3.702.901.088.066.194.099.298.099.11 0 .221-.037.312-.109.177-.142.238-.386.145-.594zm-12 0c-.06-.135-1.499-3.297-4.457-3.297-2.957 0-4.397 3.162-4.457 3.297-.092.207-.032.449.144.591.176.142.427.147.61.014.013-.009 1.262-.902 3.703-.902 2.426 0 3.674.881 3.702.901.088.066.194.099.298.099.11 0 .221-.037.312-.109.178-.142.237-.386.145-.594zM18 22c-3.623 0-6.027-.422-9-1-.679-.131-2 0-2 2 0 4 4.595 9 11 9 6.404 0 11-5 11-9 0-2-1.321-2.132-2-2-2.973.578-5.377 1-9 1z"/><path fill="#FFF" d="M9 23s3 1 9 1 9-1 9-1-2 4-9 4-9-4-9-4z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><ellipse fill="#664500" cx="11.5" cy="16.5" rx="2.5" ry="3.5"/><path fill="#664500" d="M28.457 17.797c-.06-.135-1.499-3.297-4.457-3.297-2.957 0-4.397 3.162-4.457 3.297-.092.207-.032.449.145.591.175.142.426.147.61.014.012-.009 1.262-.902 3.702-.902 2.426 0 3.674.881 3.702.901.088.066.194.099.298.099.11 0 .221-.037.312-.109.177-.142.238-.386.145-.594zM5.999 12.458c-.208 0-.419-.065-.599-.2-.442-.331-.531-.958-.2-1.4 3.262-4.35 7.616-4.4 7.8-4.4.552 0 1 .448 1 1 0 .551-.445.998-.996 1-.156.002-3.569.086-6.205 3.6-.195.262-.496.4-.8.4zm23.002 2.125c-.305 0-.604-.138-.801-.4-2.592-3.457-6.961-2.627-7.004-2.62-.547.108-1.068-.243-1.177-.784-.108-.542.243-1.068.784-1.177.231-.047 5.657-1.072 8.996 3.38.332.442.242 1.069-.2 1.4-.179.137-.389.201-.598.201zm-5.747 8.994c-.188-.11-.432-.087-.597.06-.01.008-1.013.863-4.657.863-3.641 0-4.646-.854-4.646-.854-.159-.16-.404-.19-.6-.082-.195.111-.293.339-.238.557.01.044 1.144 4.379 5.484 4.379s5.474-4.335 5.485-4.379c.053-.213-.044-.431-.231-.544z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18S0 27.941 0 18 8.059 0 18 0s18 8.059 18 18"/><circle fill="#FF7892" cx="7" cy="18" r="5"/><circle fill="#FF7892" cx="29" cy="18" r="5"/><path fill="#664500" d="M27.335 21.629c-.178-.161-.444-.171-.635-.029-.039.029-3.922 2.9-8.7 2.9-4.766 0-8.662-2.871-8.7-2.9-.191-.142-.457-.13-.635.029-.177.16-.217.424-.094.628C8.7 22.472 11.788 27.5 18 27.5s9.301-5.028 9.429-5.243c.123-.205.084-.468-.094-.628zM7.999 15c-.15 0-.303-.034-.446-.106-.494-.247-.694-.848-.447-1.342C7.158 13.448 8.424 11 12 11c3.577 0 4.842 2.449 4.894 2.553.247.494.047 1.095-.447 1.342-.492.245-1.085.049-1.336-.436C15.068 14.379 14.281 13 12 13c-2.317 0-3.099 1.433-3.106 1.447-.175.351-.528.553-.895.553zm20.002 0c-.367 0-.72-.202-.896-.553C27.08 14.401 26.299 13 24 13s-3.08 1.401-3.112 1.46c-.26.481-.859.67-1.345.42-.485-.252-.682-.839-.438-1.328C19.157 13.449 20.423 11 24 11s4.843 2.449 4.895 2.553c.247.494.047 1.095-.447 1.342-.144.071-.297.105-.447.105z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18S0 27.941 0 18 8.059 0 18 0s18 8.059 18 18"/><path fill="#664500" d="M28.312 15.612c-.175-.142-.426-.147-.61-.014-.012.009-1.261.902-3.702.902-2.44 0-3.69-.893-3.7-.9-.183-.137-.435-.133-.611.009-.178.142-.238.386-.146.594.06.135 1.5 3.297 4.457 3.297 2.958 0 4.397-3.162 4.457-3.297.092-.207.032-.449-.145-.591zm-12.61-.014c-.012.009-1.26.902-3.702.902-2.441 0-3.69-.893-3.7-.9-.183-.137-.434-.133-.611.009-.178.142-.238.386-.146.594.06.135 1.5 3.297 4.457 3.297 2.958 0 4.397-3.162 4.457-3.297.092-.207.032-.449-.145-.591-.176-.143-.428-.147-.61-.014zM29.001 13c-.305 0-.604-.138-.801-.4-2.592-3.456-6.961-2.628-7.004-2.62-.547.108-1.068-.243-1.177-.784-.108-.541.243-1.068.784-1.177.231-.047 5.657-1.072 8.996 3.38.332.442.242 1.069-.2 1.4-.179.136-.389.201-.598.201zM6.999 13c-.208 0-.419-.065-.599-.2-.442-.331-.531-.958-.2-1.4 3.339-4.454 8.766-3.426 8.996-3.38.542.108.893.635.784 1.177-.108.54-.634.891-1.174.785-.186-.035-4.436-.808-7.006 2.618-.196.262-.497.4-.801.4zm16.255 10.577c-.188-.111-.432-.086-.597.06-.01.008-1.013.863-4.657.863-3.641 0-4.646-.854-4.646-.854-.159-.16-.404-.19-.6-.082-.195.111-.293.339-.238.557.01.044 1.144 4.379 5.484 4.379s5.474-4.335 5.485-4.379c.053-.213-.044-.431-.231-.544z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18S0 27.941 0 18 8.059 0 18 0s18 8.059 18 18"/><path fill="#664500" d="M18 21.849c-2.966 0-4.935-.346-7.369-.819-.557-.106-1.638 0-1.638 1.638 0 3.275 3.763 7.369 9.007 7.369s9.007-4.094 9.007-7.369c0-1.638-1.082-1.745-1.638-1.638-2.434.473-4.402.819-7.369.819"/><path fill="#E75A70" d="M16.65 3.281C15.791.85 13.126-.426 10.694.431c-1.476.52-2.521 1.711-2.928 3.104-1.191-.829-2.751-1.1-4.225-.58C1.111 3.813-.167 6.48.692 8.911c.122.344.284.663.472.958 1.951 3.582 7.588 6.1 11.001 6.131 2.637-2.167 5.446-7.665 4.718-11.677-.038-.348-.113-.698-.233-1.042zm2.7 0C20.209.85 22.875-.426 25.306.431c1.476.52 2.521 1.711 2.929 3.104 1.191-.829 2.751-1.1 4.225-.58 2.43.858 3.707 3.525 2.85 5.956-.123.344-.284.663-.473.958-1.951 3.582-7.588 6.1-11.002 6.131-2.637-2.167-5.445-7.665-4.717-11.677.037-.348.112-.698.232-1.042z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18S0 27.941 0 18 8.059 0 18 0s18 8.059 18 18"/><path fill="#664500" d="M24.327 23.622c-.153-.132-.368-.159-.551-.069l-4 2c-1.871.935-6.727.947-6.776.947-.276 0-.5.224-.5.5 0 .185.101.347.25.433v.001h.001v.001c.071.04.153.063.24.065h7.008c2.658 0 4.089-2.185 4.475-3.342.064-.192.006-.403-.147-.536zM31.001 16c-.305 0-.604-.138-.801-.4-2.641-3.521-6.061-3.599-6.206-3.6-.55-.006-.994-.456-.991-1.005.003-.551.447-.995.997-.995.184 0 4.537.05 7.8 4.4.332.442.242 1.069-.2 1.4-.18.135-.39.2-.599.2zM4.999 16c-.208 0-.419-.065-.599-.2-.442-.331-.531-.958-.2-1.4C7.462 10.05 11.816 10 12 10c.552 0 1 .448 1 1 0 .551-.445.998-.996 1-.156.002-3.569.086-6.205 3.6-.195.262-.496.4-.8.4zm10.898 1.396c.023-.052.059-.096.073-.154.134-.536-.192-1.079-.727-1.213-.18-.045-4.467-1.08-7.797 1.138-.459.306-.583.927-.277 1.387.192.29.509.446.832.446.19 0 .383-.055.554-.168 1.092-.729 2.362-.995 3.468-1.061-.009.076-.023.151-.023.229 0 1.104.896 2 2 2s2-.896 2-2c0-.212-.042-.412-.103-.604zm11.999-.001c.023-.052.059-.095.073-.152.135-.536-.191-1.079-.727-1.213-.18-.045-4.466-1.08-7.797 1.138-.46.306-.584.927-.277 1.387.192.289.51.445.833.445.19 0 .383-.055.554-.168 1.092-.729 2.361-.994 3.469-1.06-.009.076-.024.15-.024.228 0 1.104.896 2 2 2s2-.896 2-2c0-.212-.042-.413-.104-.605z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><path fill="#664500" d="M25.485 27.879C25.44 27.7 24.317 23.5 18 23.5c-6.318 0-7.44 4.2-7.485 4.379-.055.217.043.442.237.554.195.111.439.078.6-.077.019-.019 1.954-1.856 6.648-1.856s6.63 1.837 6.648 1.855c.096.095.224.145.352.145.084 0 .169-.021.246-.064.196-.112.294-.339.239-.557zM29.001 14c-.305 0-.604-.138-.801-.4-2.432-3.244-6.514-.846-6.686-.743-.475.285-1.089.13-1.372-.343-.284-.474-.131-1.088.343-1.372 1.998-1.199 6.514-2.477 9.314 1.257.332.442.242 1.069-.2 1.4-.179.136-.389.201-.598.201zM6.999 14c-.208 0-.419-.065-.599-.2-.442-.331-.531-.958-.2-1.4 2.801-3.734 7.317-2.456 9.314-1.257.474.284.627.898.343 1.372-.284.473-.896.628-1.37.344-.179-.106-4.274-2.475-6.688.742-.195.261-.496.399-.8.399zM29 16c0-.552-.447-1-1-1h-7c-.553 0-1 .448-1 1s.447 1 1 1h5.092c.207.581.756 1 1.408 1 .828 0 1.5-.671 1.5-1.5 0-.11-.014-.217-.036-.321.012-.06.036-.116.036-.179zm-13 0c0-.552-.448-1-1-1H8c-.552 0-1 .448-1 1s.448 1 1 1h5.092c.207.581.756 1 1.408 1 .828 0 1.5-.671 1.5-1.5 0-.11-.014-.217-.036-.321.011-.06.036-.116.036-.179z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><path fill="#664500" d="M28.457 17.797c-.06-.135-1.499-3.297-4.457-3.297-2.957 0-4.397 3.162-4.457 3.297-.092.207-.032.449.145.591.175.142.426.147.61.014.012-.009 1.262-.902 3.702-.902 2.426 0 3.674.881 3.702.901.088.066.194.099.298.099.11 0 .221-.037.312-.109.177-.142.238-.386.145-.594zm-11 0c-.06-.135-1.499-3.297-4.457-3.297-2.957 0-4.397 3.162-4.457 3.297-.092.207-.032.449.144.591.176.142.427.147.61.014.013-.009 1.262-.902 3.703-.902 2.426 0 3.674.881 3.702.901.089.066.194.099.298.099.11 0 .221-.037.312-.109.178-.142.237-.386.145-.594zM13 28s1-4 5-4 5 4 5 4-1-1-5-1-5 1-5 1z"/><path fill="#5DADEC" d="M11 11c0 2.762-2.238 5-5 5-2.761 0-5-2.238-5-5S5 1 6 1s5 7.238 5 10z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><path fill="#664500" d="M17.312 17.612c-.176-.143-.427-.147-.61-.014-.012.009-1.26.902-3.702.902-2.441 0-3.69-.893-3.7-.9-.183-.137-.435-.133-.611.009-.178.142-.238.386-.146.594.06.135 1.5 3.297 4.457 3.297 2.958 0 4.397-3.162 4.457-3.297.092-.207.032-.449-.145-.591zm10 0c-.176-.143-.426-.148-.61-.014-.012.009-1.261.902-3.702.902-2.44 0-3.69-.893-3.7-.9-.183-.137-.434-.133-.611.009-.178.142-.238.386-.146.594.06.135 1.5 3.297 4.457 3.297 2.958 0 4.397-3.162 4.457-3.297.092-.207.032-.449-.145-.591zM22 28h-8c-.552 0-1-.447-1-1s.448-1 1-1h8c.553 0 1 .447 1 1s-.447 1-1 1zM6 14c-.552 0-1-.448-1-1 0-.551.445-.998.996-1 .156-.002 3.569-.086 6.205-3.6.331-.44.957-.532 1.4-.2.442.331.531.958.2 1.4C10.538 13.95 6.184 14 6 14zm24 0c-.184 0-4.537-.05-7.8-4.4-.332-.442-.242-1.069.2-1.4.441-.333 1.067-.242 1.399.2 2.641 3.521 6.061 3.599 6.206 3.6.55.006.994.456.991 1.005-.002.551-.446.995-.996.995z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><path fill="#664500" d="M6 13c-.552 0-1-.448-1-1 0-.551.445-.998.996-1 .156-.002 3.569-.086 6.205-3.6.331-.44.957-.532 1.4-.2.442.331.531.958.2 1.4C10.538 12.95 6.184 13 6 13zm24 0c-.184 0-4.537-.05-7.8-4.4-.332-.442-.242-1.069.2-1.4.441-.333 1.067-.242 1.399.2 2.641 3.521 6.061 3.599 6.206 3.6.55.006.994.456.991 1.005-.002.551-.446.995-.996.995zm.6 7.2c-.114-.086-1.931-1.426-4.646-2.344.026-.115.046-.233.046-.356 0-.369-.139-.703-.359-.964 1.802-.52 3.334-.536 3.361-.536.551-.002.998-.45.997-1.002-.001-.551-.447-.998-.999-.998-.221 0-5.451.038-8.707 3.293-.286.286-.372.716-.217 1.09.154.374.52.617.924.617 4.59 0 8.363 2.772 8.401 2.801.18.134.39.198.598.198.305 0 .605-.139.802-.4.33-.443.24-1.068-.201-1.399zm-14.893-2.907C12.452 14.038 7.221 14 7 14c-.552 0-.999.447-.999.998-.001.552.446 1 .998 1.002.026 0 1.558.016 3.361.536-.221.261-.36.595-.36.964 0 .123.019.241.047.356-2.716.918-4.533 2.258-4.647 2.344-.442.331-.531.958-.2 1.399.196.263.497.401.801.401.208 0 .419-.065.599-.2.037-.028 3.787-2.8 8.4-2.8.404 0 .769-.243.924-.617.155-.374.069-.804-.217-1.09zM18 30c-.304 0-.591-.138-.781-.375l-3.194-3.992L11.8 28.6c-.174.232-.44.377-.729.397-.29.021-.574-.085-.778-.29l-1-1c-.391-.391-.391-1.023 0-1.414s1.023-.391 1.414 0l.185.185L13.2 23.4c.186-.248.475-.396.784-.4.295-.01.603.133.796.375L18 27.399l3.219-4.024c.193-.241.484-.375.797-.375.31.005.599.152.784.4l2.309 3.077.185-.185c.391-.391 1.023-.391 1.414 0s.391 1.023 0 1.414l-1 1c-.205.205-.479.314-.778.29-.289-.021-.555-.165-.729-.397l-2.226-2.967-3.193 3.992c-.191.238-.478.376-.782.376z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><ellipse fill="#664500" cx="11.5" cy="15.5" rx="2.5" ry="3.5"/><path fill="#664500" d="M28.457 17.797c-.06-.135-1.499-3.297-4.457-3.297-2.957 0-4.397 3.162-4.457 3.297-.092.207-.032.449.145.591.175.142.426.147.61.014.012-.009 1.262-.902 3.702-.902 2.426 0 3.674.881 3.702.901.088.066.194.099.298.099.11 0 .221-.037.312-.109.177-.142.238-.386.145-.594zM5.999 11c-.208 0-.419-.065-.599-.2-.442-.331-.531-.958-.2-1.4C8.462 5.05 12.816 5 13 5c.552 0 1 .448 1 1 0 .551-.445.998-.996 1-.155.002-3.568.086-6.204 3.6-.196.262-.497.4-.801.4zm23.002 3c-.305 0-.604-.138-.801-.4-2.592-3.456-6.961-2.628-7.004-2.62-.547.11-1.068-.244-1.177-.784-.108-.541.243-1.068.784-1.177.231-.047 5.657-1.072 8.996 3.38.332.442.242 1.069-.2 1.4-.179.136-.389.201-.598.201zm-8.13 14c1.335-.412 2.629-1.156 2.629-2.5 0-2.619-4.912-2.968-5.472-2.999-.274-.026-.509.193-.527.468-.017.274.19.511.464.53.035.002 3.535.299 3.535 2.001s-3.5 1.999-3.535 2.001c-.014.001-.024.009-.037.011-.052.006-.101.018-.146.04l-.019.011c-.047.026-.088.057-.124.098-.014.015-.024.031-.036.048-.023.032-.044.063-.06.102-.012.029-.018.061-.024.092-.004.023-.016.044-.018.067 0 .011.004.021.004.031s-.005.021-.004.031c.001.024.013.045.018.068.006.031.011.061.023.09.013.03.031.057.049.084.017.024.032.05.052.071.023.023.05.041.078.061.024.017.046.034.074.047.032.015.066.021.101.027.024.006.044.018.069.02.035.001 3.535.298 3.535 2s-3.5 1.999-3.535 2.001c-.274.02-.481.257-.464.53.017.265.237.469.499.469l.028-.001c.56-.031 5.472-.38 5.472-2.999 0-1.344-1.294-2.088-2.629-2.5z"/><path fill="#E75A70" d="M35.404 27.222c.739-1.516.11-3.347-1.405-4.086-.922-.449-1.956-.391-2.793.06-.16-.936-.75-1.789-1.67-2.237-1.517-.74-3.348-.109-4.087 1.406-.105.215-.18.437-.23.659-.774 2.556.64 6.341 2.192 7.948 2.223.234 6.077-.979 7.615-3.161.145-.179.273-.374.378-.589z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18S0 27.941 0 18 8.059 0 18 0s18 8.059 18 18"/><circle fill="#FF7892" cx="7" cy="21" r="5"/><circle fill="#FF7892" cx="29" cy="21" r="5"/><path fill="#664500" d="M28.416 17.723C28.355 17.632 26.901 15.5 24 15.5c-2.9 0-4.355 2.132-4.416 2.223-.135.202-.104.47.071.638.174.167.446.185.643.042.012-.01 1.262-.903 3.702-.903 2.426 0 3.674.881 3.702.901.089.066.194.099.298.099.124 0 .248-.046.344-.137.177-.167.207-.438.072-.64zM12 15.5c-2.9 0-4.355 2.132-4.416 2.223-.134.202-.104.47.071.638.175.167.447.185.642.042.013-.01 1.262-.903 3.703-.903 2.426 0 3.674.881 3.702.901.089.066.194.099.298.099.124 0 .248-.046.344-.137.177-.167.208-.438.072-.641-.061-.09-1.515-2.222-4.416-2.222zM21.871 27c1.335-.412 2.629-1.156 2.629-2.5 0-2.619-4.912-2.968-5.473-2.999-.277-.036-.51.194-.526.468-.017.274.19.511.464.53.035.002 3.535.299 3.535 2.001s-3.5 1.999-3.535 2.001c-.01.001-.017.006-.026.007-.124.008-.23.065-.31.159l-.015.021c-.029.039-.055.078-.073.125-.011.027-.016.057-.021.086-.005.024-.017.046-.019.07-.001.01.004.02.004.031s-.005.021-.004.031c.002.025.013.046.019.07.006.029.011.059.022.087.013.032.032.06.051.088.017.023.03.047.05.067.023.024.052.043.081.062.024.017.045.033.071.046.031.015.065.021.101.027.023.006.044.018.069.02.035.003 3.535.3 3.535 2.002s-3.5 1.999-3.535 2.001c-.273.02-.481.257-.464.53.017.265.236.469.499.469l.027-.001c.561-.031 5.473-.38 5.473-2.999 0-1.344-1.294-2.088-2.629-2.5zm9.13-11c-.305 0-.604-.138-.801-.4-2.641-3.521-6.061-3.599-6.206-3.6-.55-.006-.994-.456-.991-1.005.003-.551.447-.995.997-.995.184 0 4.537.05 7.8 4.4.332.442.242 1.069-.2 1.4-.18.135-.39.2-.599.2zM4.999 16c-.208 0-.419-.065-.599-.2-.442-.331-.531-.958-.2-1.4C7.462 10.05 11.816 10 12 10c.552 0 1 .448 1 1 0 .551-.445.998-.996 1-.156.002-3.569.086-6.205 3.6-.195.262-.496.4-.8.4z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCB4C" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><path fill="#65471B" d="M15.457 15.815c-.06-.135-1.499-3.297-4.457-3.297-2.957 0-4.397 3.162-4.457 3.297-.092.207-.032.449.144.591.177.143.427.147.61.014.013-.009 1.262-.902 3.703-.902 2.426 0 3.674.881 3.702.901.088.066.193.099.298.099.11 0 .221-.037.311-.109.179-.142.238-.386.146-.594z"/><path fill="#F4F7F9" d="M31 13.5c0 3.59-2.91 6.5-6.5 6.5S18 17.09 18 13.5 20.91 7 24.5 7 31 9.91 31 13.5z"/><circle fill="#292F33" cx="24.5" cy="13.5" r="2.5"/><path fill="#65471B" d="M7 21.262c0 3.964 4.596 9 11 9s11-5 11-9c0 0-10.333 2.756-22 0z"/><path fill="#E8596E" d="M18.545 23.604l-1.091-.005c-3.216-.074-5.454-.596-5.454-.596v6.961c0 3 2 6 6 6s6-3 6-6v-6.92c-1.922.394-3.787.542-5.455.56z"/><path fill="#DD2F45" d="M18 31.843c.301 0 .545-.244.545-.545v-7.694l-1.091-.005v7.699c.001.301.245.545.546.545z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCB4C" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><path fill="#65471B" d="M30.6 18.2c-.114-.085-1.931-1.426-4.646-2.344.026-.115.046-.233.046-.356 0-.369-.139-.703-.359-.964 1.802-.52 3.334-.536 3.361-.536.551-.002.998-.45.997-1.002-.001-.551-.447-.998-.999-.998-.221 0-5.451.038-8.707 3.293-.286.286-.372.716-.217 1.09.154.373.52.617.924.617 4.59 0 8.363 2.773 8.401 2.801.18.134.39.199.598.199.305 0 .605-.139.802-.401.33-.443.24-1.068-.201-1.399zm-14.893-2.907C12.452 12.038 7.221 12 7 12c-.552 0-.999.447-.999.998-.001.552.446 1 .998 1.002.026 0 1.558.016 3.361.536-.221.261-.36.595-.36.964 0 .123.019.241.047.356-2.716.918-4.533 2.259-4.647 2.344-.442.331-.531.958-.2 1.4.196.262.497.4.801.4.208 0 .419-.065.599-.2.037-.028 3.787-2.8 8.4-2.8.404 0 .769-.244.924-.617.155-.374.069-.804-.217-1.09zM7 21.263c0 3.964 4.596 9 11 9s11-5 11-9c0 0-10.333 2.756-22 0z"/><path fill="#E8596E" d="M18.545 23.604l-1.091-.005c-3.216-.074-5.454-.596-5.454-.596v6.961c0 3 2 6 6 6s6-3 6-6v-6.92c-1.922.395-3.787.543-5.455.56z"/><path fill="#DD2F45" d="M18 31.844c.301 0 .545-.244.545-.545v-7.694l-1.091-.005v7.699c.001.301.245.545.546.545z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18S0 27.941 0 18 8.059 0 18 0s18 8.059 18 18"/><path fill="#664500" d="M23.485 28.879C23.474 28.835 22.34 24.5 18 24.5s-5.474 4.335-5.485 4.379c-.053.213.044.431.232.544.188.112.433.086.596-.06.009-.008 1.013-.863 4.657-.863 3.59 0 4.617.83 4.656.863.095.09.219.137.344.137.084 0 .169-.021.246-.064.196-.112.294-.339.239-.557zm2.295-13.238c-.341-.093-.692-.14-1.043-.14-2.345 0-4.053 2.06-4.125 2.147-.143.176-.148.425-.017.609.134.184.374.253.586.173.005-.002.572-.214 1.564-.214.714 0 1.469.107 2.244.319 2.342.638 3.313 1.818 3.334 1.844.098.124.243.191.394.191.066 0 .134-.014.197-.041.209-.09.331-.31.297-.534-.021-.146-.577-3.576-3.431-4.354zm-14.554-.129c-.317 0-.636.039-.947.116-2.87.707-3.513 4.121-3.539 4.267-.04.223.076.443.281.54.067.031.14.047.211.047.145 0 .287-.063.385-.18.01-.012 1.01-1.178 3.379-1.761.714-.176 1.412-.265 2.073-.265 1.104 0 1.732.253 1.735.254.067.028.131.04.207.04.272.012.509-.221.509-.5 0-.165-.08-.311-.203-.402-.367-.435-1.953-2.156-4.091-2.156z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><path fill="#664500" d="M25.485 29.879C25.44 29.7 24.317 25.5 18 25.5c-6.318 0-7.44 4.2-7.485 4.379-.055.217.043.442.237.554.195.109.439.079.6-.077.019-.019 1.954-1.856 6.648-1.856s6.63 1.837 6.648 1.855c.096.095.224.145.352.145.084 0 .169-.021.246-.064.196-.112.294-.339.239-.557zm-9.778-12.586C12.452 14.038 7.221 14 7 14c-.552 0-.999.447-.999.998-.001.552.446 1 .998 1.002.029 0 1.925.022 3.983.737-.593.64-.982 1.634-.982 2.763 0 1.934 1.119 3.5 2.5 3.5s2.5-1.566 2.5-3.5c0-.174-.019-.34-.037-.507.013 0 .025.007.037.007.256 0 .512-.098.707-.293.391-.391.391-1.023 0-1.414zM29 14c-.221 0-5.451.038-8.707 3.293-.391.391-.391 1.023 0 1.414.195.195.451.293.707.293.013 0 .024-.007.036-.007-.016.167-.036.333-.036.507 0 1.934 1.119 3.5 2.5 3.5s2.5-1.566 2.5-3.5c0-1.129-.389-2.123-.982-2.763 2.058-.715 3.954-.737 3.984-.737.551-.002.998-.45.997-1.002-.001-.551-.447-.998-.999-.998z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#DA2F47" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><path fill="#292F33" d="M25.485 29.879C25.44 29.7 24.317 25.5 18 25.5c-6.318 0-7.44 4.2-7.485 4.379-.055.217.043.442.237.554.195.109.439.079.6-.077.019-.019 1.954-1.856 6.648-1.856s6.63 1.837 6.648 1.855c.096.095.224.145.352.145.084 0 .169-.021.246-.064.196-.112.294-.339.239-.557zm-9.778-12.586C12.452 14.038 7.221 14 7 14c-.552 0-.999.447-.999.998-.001.552.446 1 .998 1.002.029 0 1.925.022 3.983.737-.593.64-.982 1.634-.982 2.763 0 1.934 1.119 3.5 2.5 3.5s2.5-1.566 2.5-3.5c0-.174-.019-.34-.037-.507.013 0 .025.007.037.007.256 0 .512-.098.707-.293.391-.391.391-1.023 0-1.414zM29 14c-.221 0-5.451.038-8.707 3.293-.391.391-.391 1.023 0 1.414.195.195.451.293.707.293.013 0 .024-.007.036-.007-.016.167-.036.333-.036.507 0 1.934 1.119 3.5 2.5 3.5s2.5-1.566 2.5-3.5c0-1.129-.389-2.123-.982-2.763 2.058-.715 3.954-.737 3.984-.737.551-.002.998-.45.997-1.002-.001-.551-.447-.998-.999-.998z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><ellipse fill="#664500" cx="11.5" cy="17" rx="2.5" ry="3.5"/><ellipse fill="#664500" cx="24.5" cy="17" rx="2.5" ry="3.5"/><path fill="#664500" d="M5.999 13.5c-.208 0-.419-.065-.599-.2-.442-.331-.531-.958-.2-1.4 3.262-4.35 7.616-4.4 7.8-4.4.552 0 1 .448 1 1 0 .551-.445.998-.996 1-.155.002-3.568.086-6.204 3.6-.196.262-.497.4-.801.4zm24.002 0c-.305 0-.604-.138-.801-.4-2.641-3.521-6.061-3.599-6.206-3.6-.55-.006-.994-.456-.991-1.005.003-.551.447-.995.997-.995.184 0 4.537.05 7.8 4.4.332.442.242 1.069-.2 1.4-.18.135-.39.2-.599.2zm-6.516 14.879C23.474 28.335 22.34 24 18 24s-5.474 4.335-5.485 4.379c-.053.213.044.431.232.544.188.112.433.086.596-.06C13.352 28.855 14.356 28 18 28c3.59 0 4.617.83 4.656.863.095.09.219.137.344.137.084 0 .169-.021.246-.064.196-.112.294-.339.239-.557z"/><path fill="#5DADEC" d="M16 31c0 2.762-2.238 5-5 5s-5-2.238-5-5 4-10 5-10 5 7.238 5 10z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18S0 27.941 0 18 8.059 0 18 0s18 8.059 18 18"/><path fill="#664500" d="M29 10c-5.554 0-7.802-4.367-7.895-4.553-.247-.494-.047-1.095.447-1.342.493-.246 1.092-.048 1.34.443C22.967 4.694 24.713 8 29 8c.553 0 1 .448 1 1s-.447 1-1 1zM7 10c-.552 0-1-.448-1-1s.448-1 1-1c5.083 0 5.996-3.12 6.033-3.253.145-.528.692-.848 1.219-.709.53.139.851.673.718 1.205C14.921 5.437 13.704 10 7 10zm-.999 13c-.304 0-.604-.138-.801-.4-.332-.441-.242-1.068.2-1.399.143-.107 2.951-2.183 6.856-2.933C9.781 17.027 7.034 17 6.999 17c-.552-.001-.999-.45-.998-1.002 0-.551.447-.998.999-.998.221 0 5.452.038 8.707 3.293.286.286.372.716.217 1.09-.155.374-.52.617-.924.617-4.613 0-8.363 2.772-8.4 2.8-.18.135-.391.2-.599.2zm23.998-.001c-.208 0-.418-.064-.598-.198C29.363 22.772 25.59 20 21 20c-.404 0-.77-.243-.924-.617-.155-.374-.069-.804.217-1.09C23.549 15.038 28.779 15 29 15c.552 0 .998.447.999.998.001.552-.446 1-.997 1.002-.036 0-2.783.027-5.258 1.268 3.905.75 6.713 2.825 6.855 2.933.441.331.531.956.201 1.398-.196.261-.496.4-.801.4zm-4.545 7.792c-.118-.257-2.938-6.291-7.21-6.291-4.249 0-7.546 6.007-7.684 6.262-.113.209-.063.469.119.621.093.078.207.117.321.117.11 0 .22-.036.311-.109.031-.024 3.163-2.479 6.933-2.479 3.743 0 6.388 2.43 6.414 2.454.175.162.442.18.634.04.194-.14.262-.397.162-.615z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><ellipse fill="#664500" cx="11.5" cy="16.5" rx="2.5" ry="3.5"/><ellipse fill="#664500" cx="24.5" cy="16.5" rx="2.5" ry="3.5"/><path fill="#664500" d="M23.485 27.879C23.474 27.835 22.34 23.5 18 23.5s-5.474 4.335-5.485 4.379c-.053.213.044.431.232.544.188.112.433.086.596-.06.009-.007 1.013-.863 4.657-.863 3.59 0 4.617.83 4.656.863.095.091.219.137.344.137.084 0 .169-.021.246-.064.196-.111.294-.339.239-.557z"/><path fill="#5DADEC" d="M10 30c0 2.762-2.238 5-5 5s-5-2.238-5-5 4-10 5-10 5 7.238 5 10z"/><path fill="#664500" d="M30 13c-5.554 0-7.802-4.367-7.895-4.553-.247-.494-.047-1.095.447-1.342.492-.247 1.092-.048 1.34.443C23.967 7.694 25.713 11 30 11c.553 0 1 .448 1 1 0 .553-.447 1-1 1zM6 13c-.552 0-1-.448-1-1s.448-1 1-1c5.083 0 5.996-3.12 6.033-3.253.145-.528.69-.848 1.219-.709.53.139.851.673.718 1.205C13.921 8.437 12.704 13 6 13z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><path fill="#BDDDF4" d="M18 11c8.749 0 16.033 4.509 17.656 10.484.222-1.128.344-2.292.344-3.484 0-9.94-8.059-18-18-18C8.06 0 0 8.06 0 18c0 1.192.123 2.356.344 3.484C1.967 15.509 9.252 11 18 11z"/><ellipse fill="#664500" cx="11.5" cy="16.5" rx="2.5" ry="3.5"/><ellipse fill="#664500" cx="24.5" cy="16.5" rx="2.5" ry="3.5"/><path fill="#664500" d="M5.999 12c-.208 0-.419-.065-.599-.2-.442-.331-.531-.958-.2-1.4C8.462 6.05 12.816 6 13 6c.552 0 1 .448 1 1 0 .551-.445.998-.996 1-.155.002-3.568.086-6.204 3.6-.196.262-.497.4-.801.4zm24.002 0c-.305 0-.604-.138-.801-.4-2.64-3.521-6.061-3.598-6.206-3.6-.55-.006-.994-.456-.991-1.005C22.006 6.444 22.45 6 23 6c.184 0 4.537.05 7.8 4.4.332.442.242 1.069-.2 1.4-.18.135-.39.2-.599.2zm-6.516 15.879C23.474 27.835 22.34 23.5 18 23.5s-5.474 4.335-5.485 4.379c-.053.213.043.431.231.544.187.112.433.086.596-.06.011-.008 1.015-.863 4.658-.863 3.589 0 4.617.83 4.656.863.095.09.219.137.344.137.084 0 .169-.021.246-.064.196-.112.294-.339.239-.557z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18S0 27.941 0 18 8.059 0 18 0s18 8.059 18 18"/><path fill="#664500" d="M23.485 28.879C23.474 28.835 22.34 24.5 18 24.5s-5.474 4.335-5.485 4.379c-.053.213.044.431.232.544.188.112.433.086.596-.06.009-.008 1.013-.863 4.657-.863 3.59 0 4.617.83 4.656.863.095.09.219.137.344.137.084 0 .169-.021.246-.064.196-.112.294-.339.239-.557zm-7.782-11.281c-.013.009-1.262.902-3.703.902-2.442 0-3.69-.893-3.7-.9-.194-.146-.466-.132-.644.037-.177.167-.208.438-.072.641.061.09 1.515 2.222 4.416 2.222 2.9 0 4.355-2.132 4.416-2.223.134-.202.104-.47-.071-.638-.176-.169-.449-.184-.642-.041zm12.642.042c-.175-.169-.447-.186-.643-.042-.012.009-1.262.902-3.702.902-2.441 0-3.69-.893-3.7-.9-.193-.146-.466-.132-.644.037-.177.167-.207.438-.072.641.061.09 1.515 2.222 4.416 2.222 2.9 0 4.355-2.132 4.416-2.223.135-.201.104-.469-.071-.637zM31.001 16c-.305 0-.604-.138-.801-.4-2.641-3.521-6.061-3.599-6.206-3.6-.55-.006-.994-.456-.991-1.005.003-.551.447-.995.997-.995.184 0 4.537.05 7.8 4.4.332.442.242 1.069-.2 1.4-.18.135-.39.2-.599.2zM4.999 16c-.208 0-.419-.065-.599-.2-.442-.331-.531-.958-.2-1.4C7.462 10.05 11.816 10 12 10c.552 0 1 .448 1 1 0 .551-.445.998-.996 1-.156.002-3.569.086-6.205 3.6-.195.262-.496.4-.8.4z"/><path fill="#5DADEC" d="M23 23c6.211 0 13 4 13 9 0 4-3 4-3 4-8 0-1-9-10-13z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18S0 27.941 0 18 8.059 0 18 0s18 8.059 18 18"/><path fill="#664500" d="M22 27c0 2.763-1.791 3-4 3-2.21 0-4-.237-4-3 0-2.761 1.79-6 4-6 2.209 0 4 3.239 4 6zm8-12c-.124 0-.25-.023-.371-.072-5.229-2.091-7.372-5.241-7.461-5.374-.307-.46-.183-1.081.277-1.387.459-.306 1.077-.184 1.385.274.019.027 1.93 2.785 6.541 4.629.513.206.763.787.558 1.3-.157.392-.533.63-.929.63zM6 15c-.397 0-.772-.238-.929-.629-.205-.513.044-1.095.557-1.3 4.612-1.844 6.523-4.602 6.542-4.629.308-.456.929-.577 1.387-.27.457.308.581.925.275 1.383-.089.133-2.232 3.283-7.46 5.374C6.25 14.977 6.124 15 6 15z"/><path fill="#5DADEC" d="M24 16h4v19l-4-.046V16zM8 35l4-.046V16H8v19z"/><path fill="#664500" d="M14.999 18c-.15 0-.303-.034-.446-.105-3.512-1.756-7.07-.018-7.105 0-.495.249-1.095.046-1.342-.447-.247-.494-.047-1.095.447-1.342.182-.09 4.498-2.197 8.895 0 .494.247.694.848.447 1.342-.176.35-.529.552-.896.552zm14 0c-.15 0-.303-.034-.446-.105-3.513-1.756-7.07-.018-7.105 0-.494.248-1.094.047-1.342-.447-.247-.494-.047-1.095.447-1.342.182-.09 4.501-2.196 8.895 0 .494.247.694.848.447 1.342-.176.35-.529.552-.896.552z"/><ellipse fill="#5DADEC" cx="18" cy="34" rx="18" ry="2"/><ellipse fill="#E75A70" cx="18" cy="27" rx="3" ry="2"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><ellipse fill="#664500" cx="11.5" cy="16.5" rx="2.5" ry="3.5"/><ellipse fill="#664500" cx="24.5" cy="16.5" rx="2.5" ry="3.5"/><path fill="#664500" d="M23.485 27.879C23.474 27.835 22.34 23.5 18 23.5s-5.474 4.335-5.484 4.379c-.053.213.043.431.231.544.187.112.433.086.596-.06.01-.008 1.014-.863 4.657-.863 3.59 0 4.617.83 4.656.863.095.09.219.137.344.137.084 0 .169-.021.246-.064.196-.112.294-.339.239-.557z"/><path fill="#5DADEC" d="M10 30c0 2.762-2.238 5-5 5s-5-2.238-5-5 4-10 5-10 5 7.238 5 10z"/><path fill="#BDDDF4" d="M18 11c8.749 0 16.033 4.509 17.656 10.484.222-1.128.344-2.292.344-3.484 0-9.94-8.059-18-18-18C8.06 0 0 8.06 0 18c0 1.192.123 2.356.344 3.484C1.967 15.509 9.252 11 18 11z"/><path fill="#664500" d="M30 12c-5.554 0-7.802-4.367-7.895-4.553-.247-.494-.047-1.095.447-1.342.492-.247 1.092-.048 1.34.443C23.967 6.694 25.713 10 30 10c.553 0 1 .448 1 1s-.447 1-1 1zM6 12c-.552 0-1-.448-1-1s.448-1 1-1c5.083 0 5.996-3.12 6.033-3.253.145-.528.69-.848 1.219-.709.53.139.851.673.718 1.205C13.921 7.437 12.704 12 6 12z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M18 0C8.06 0 0 8.06 0 18c0 6.051 2.996 11.392 7.574 14.655C7.678 26.217 5.337 19 1.404 19c-.464 0-.84.066-1.153.183C.554 18.426 1.211 18 2.44 18c4.27 0 6.666 8.506 6.092 15.288C11.286 34.997 14.522 36 18 36c3.479 0 6.716-1.004 9.47-2.713C26.893 26.48 29.288 18 33.561 18c1.233 0 1.892.426 2.192 1.183-.314-.117-.691-.183-1.157-.183-3.938 0-6.278 7.199-6.17 13.655C33.005 29.392 36 24.051 36 18c0-9.94-8.059-18-18-18z"/><path fill="#BDDDF4" d="M18 0C8.06 0 0 8.06 0 18c0 1.192.123 2.356.344 3.484.234-.863.6-1.691 1.058-2.484-.463 0-.838.066-1.15.183.264-.659.822-1.048 1.768-1.142C5.012 13.862 11.037 11 18 11c6.964 0 12.988 2.861 15.98 7.04.95.094 1.51.482 1.772 1.143-.312-.117-.689-.183-1.153-.183.458.793.823 1.621 1.058 2.484.221-1.128.343-2.292.343-3.484 0-9.94-8.059-18-18-18z"/><path fill="#F5F8FA" d="M7.347 11.91c-.946 3.176.107 6.293 2.353 6.962 2.246.67 4.834-1.362 5.779-4.538.946-3.175-.106-6.293-2.351-6.962-2.246-.669-4.834 1.363-5.781 4.538zm21.305 0c.946 3.176-.107 6.293-2.352 6.962-2.246.67-4.834-1.362-5.779-4.538-.946-3.175.107-6.293 2.351-6.962 2.245-.669 4.833 1.363 5.78 4.538z"/><path fill="#664500" d="M18 18c-2.757 0-5 2.243-5 5v6c0 2.757 2.243 5 5 5s5-2.243 5-5v-6c0-2.757-2.243-5-5-5z"/><path fill="#FCAB40" d="M1.404 19c-.464 0-.84.066-1.153.183.072-.179.167-.336.281-.476C-1.33 20.998 2.849 28.54.818 36h6.46c1.19-6.96-1.235-17-5.874-17zm34.349.183c-.314-.117-.691-.183-1.157-.183-4.641 0-7.065 10.002-5.873 17h6.46c-1.906-7.045 1.656-14.089.57-16.817z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><ellipse fill="#664500" cx="18" cy="27" rx="5" ry="6"/><path fill="#664500" d="M5.999 11c-.208 0-.419-.065-.599-.2-.442-.331-.531-.958-.2-1.4C8.462 5.05 12.816 5 13 5c.552 0 1 .448 1 1 0 .551-.445.998-.996 1-.155.002-3.568.086-6.204 3.6-.196.262-.497.4-.801.4zm24.002 0c-.305 0-.604-.138-.801-.4-2.64-3.521-6.061-3.598-6.206-3.6-.55-.006-.994-.456-.991-1.005C22.006 5.444 22.45 5 23 5c.184 0 4.537.05 7.8 4.4.332.442.242 1.069-.2 1.4-.18.135-.39.2-.599.2z"/><path fill="#F5F8FA" d="M18 23c-1.657 0-3 1.79-3 4h6c0-2.21-1.343-4-3-4z"/><ellipse fill="#664500" cx="12" cy="14.5" rx="2.5" ry="3.5"/><ellipse fill="#664500" cx="24" cy="14.5" rx="2.5" ry="3.5"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><circle fill="#FF7892" cx="29" cy="23" r="5"/><circle fill="#FF7892" cx="7" cy="23" r="5"/><circle fill="#F5F8FA" cx="24.5" cy="16.5" r="5.5"/><circle fill="#F5F8FA" cx="11.5" cy="16.5" r="5.5"/><circle fill="#664500" cx="11.5" cy="16.5" r="2.5"/><circle fill="#664500" cx="24.5" cy="16.5" r="2.5"/><path fill="#664500" d="M22 30h-8c-.552 0-1-.447-1-1s.448-1 1-1h8c.553 0 1 .447 1 1s-.447 1-1 1zm8.001-19c-.305 0-.604-.138-.801-.4-2.64-3.521-6.061-3.598-6.206-3.6-.55-.006-.994-.456-.991-1.005C22.006 5.444 22.45 5 23 5c.184 0 4.537.05 7.8 4.4.332.442.242 1.069-.2 1.4-.18.135-.39.2-.599.2zM5.999 11c-.208 0-.419-.065-.599-.2-.442-.331-.531-.958-.2-1.4C8.462 5.05 12.816 5 13 5c.552 0 1 .448 1 1 0 .551-.445.998-.996 1-.155.002-3.568.086-6.204 3.6-.196.262-.497.4-.801.4z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#FFCC4D" d="M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18"/><path fill="#664500" d="M7.001 15c-.323 0-.64-.156-.833-.445-.306-.46-.182-1.081.277-1.387C6.578 13.08 9.746 11 14 11c.552 0 1 .448 1 1s-.448 1-1 1c-3.655 0-6.418 1.814-6.445 1.832-.171.114-.364.168-.554.168zm21.998 0c-.189 0-.382-.054-.552-.167C28.419 14.815 25.628 13 22 13c-.553 0-1-.448-1-1s.447-1 1-1c4.254 0 7.422 2.08 7.555 2.168.46.306.584.927.277 1.387-.192.289-.51.445-.833.445z"/><path fill="#F5F8FA" d="M27 22.091L36 18c0-.66-.041-1.309-.109-1.95L27 20.091V19c0-1.104-.896-2-2-2H11c-1.104 0-2 .896-2 2v1.091L.11 16.05C.041 16.691 0 17.34 0 18l9 4.091v4.546l-7.453-1.355c.341.77.741 1.507 1.183 2.215L9 28.637V30c0 1.104.896 2 2 2h14c1.104 0 2-.896 2-2v-1.363l6.271-1.141c.441-.708.841-1.445 1.182-2.215L27 26.637v-4.546z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#EF9645" d="M18 10.087l5.007-.047h6.016c.973 0 2.265-.038 3.195.873-.81-1.187-2.172-1.967-3.718-1.967H28l-.243-.094H22.1l.016-4c0-.812.531-1.578.734-1.998-1.096.592-1.85 1.737-1.85 3.07l-.087.272v2.656L18 8.868c-1.201 0-2.182.427-2.915 1.266l-.016-1.375.016-4.828c0-.758.406-1.438.669-1.954C14.71 2.669 14 3.946 14 5.424v.522l-.181.978.031 8.022c0 .891-.414 1.576-1.031 2.125-.53.472-1.053.656-1.819.656-1.657 0-2.884-1.281-2.884-2.938L8.1 5.712c0-.816.453-1.391.756-1.861C7.757 4.441 7 5.588 7 6.924V8.81l-.072.214v6.058c0 1.989-1.891 2.786-2.828 2.786-1.719 0-3.1-1.203-3.1-2.786v2.645s.185.209.194.312c.881.882 2.156 1.016 2.984 1.016 1.594 0 2.684-.851 3.337-2.062.678 1.212 1.913 2.016 3.428 2.016s3.684-.738 4.056-3.344c.141.167.506.51.678.641.703.531 1.585.734 2.322.734l1.116-.031h1.734c-.535.27-.778.552-1.203.938-1.729 1.568-2.578 4.094-2.578 7.672 0 .276.317.562.594.562.276 0 .578-.317.578-.594 0-3.962.973-6.327 3.203-7.562 1.175-.651 2.626-.969 4.516-.969.059 0 .562-.031.562-.031.276 0 .594-.333.594-.609 0-.276-.271-.547-.547-.547H20.13L18 15.853c-1.657 0-2.915-1.281-2.915-2.938 0-1.657 1.258-2.828 2.915-2.828z"/><path fill="#FFDC5D" d="M4.124 18.946c1.474 0 2.738-.831 3.392-2.043.678 1.212 1.958 2.043 3.446 2.043h.076c1.153 0 2.169-.51 2.889-1.298.022-.025.051-.043.073-.068v-.014c.185-.212.343-.448.481-.695.04-.072.069-.151.105-.227.093-.194.176-.394.236-.606.052-.173.106-.344.134-.526.141.167.296.319.46.46.069.059.147.107.221.162.116.086.229.177.355.251.589.351 1.271.56 2.008.56h3.166c-.535.27-.999.614-1.424 1-1.729 1.568-2.579 4.085-2.579 7.663 0 .276.224.5.5.5s.5-.224.5-.5c0-3.962 1.01-6.427 3.24-7.663 1.175-.651 2.682-.967 4.571-.967.059 0 .526-.033.526-.033.276 0 .5-.224.5-.5s-.224-.5-.5-.5H18c-1.657 0-3-1.343-3-3s1.343-3 3-3h11c.973 0 2.288.056 3.218.967.325.318.604.736.803 1.297l1.659 5.472c.156.512.73 2.857.626 3.346 0 7.34-8.7 14.972-19.004 14.972C6.326 36 1 27.883 1 17.957v-.229c.01.01.021.016.031.026.881.882 1.799 1.192 2.845 1.192h.248z"/><path fill="#FFDC5D" d="M3.864 5.946h.271C5.718 5.946 7 7.229 7 8.81v6.273c0 1.582-1.282 2.864-2.864 2.864h-.272C2.282 17.946 1 16.664 1 15.082V8.81c0-1.581 1.282-2.864 2.864-2.864zM14 9.222v5.724c0 .891-.396 1.683-1.014 2.233-.53.472-1.221.767-1.986.767-1.657 0-3-1.343-3-3v-9c0-.816.328-1.554.857-2.095.544-.557 1.302-.905 2.143-.905 1.657 0 3 1.343 3 3v3.276zm4-.276c-1.201 0-2.267.541-3 1.38V3.947c0-.758.29-1.442.753-1.97C16.303 1.35 17.1.947 18 .947c1.657 0 3 1.343 3 3v5h-3zm4-4.007c0-.812.326-1.545.85-2.085.544-.559 1.301-.909 2.143-.909h.014C26.66 1.946 28 3.286 28 4.939v4.006h-6V4.939z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#EF9645" d="M8.916 23.891s1.737.109 1.94-1.808l.016-4.161.128-.005v-.96c0-.952.572-1.769 1.389-2.133-.242.331-.283 7.176-.283 7.176 0 1.104.789 1.891 1.894 1.891.755 0 1.265-.314 1.606-.932-.458-.526-.734-1.206-.734-1.959 0-1.312.781-2.141 1.128-2.222 0 0 .056-.07.082-.084.368-.306.804-.535 1.291-.634l.02.001.261-.155h6.928c1.306 0 1.558.486 1.538.475l.02.011c.591.305 1.076.773 1.404 1.35-.025-.031-.681-.633-1.543-.633s-8-.047-8-.047c-1.104 0-1.925.833-1.925 1.938s.82 1.922 1.925 1.922l5.5-.016c.276 0 .591.317.591.594 0 .276-.314.578-.591.578 0 0-1.558-.069-2.847 1.25-1.209 1.238-2.078 3.803-2.078 5.672 0 .276-.299.578-.575.578s-.582-.302-.582-.578c0-3.01.941-5.525 2.75-6.891H18c-1 0-1.273-.244-1.474-.359.001.001-.701 1.359-2.526 1.359-.237 0-1.628-.047-2.487-1.266-1.125 1.422-2.575 1.266-2.575 1.266-.733 0-1.566-.328-1.91-.833C7.015 24.185 7 24.095 7 24v-1.917c0 1.059.857 1.808 1.916 1.808z"/><path fill="#FFDC5D" d="M24.581 18H18c-.208 0-.411.021-.607.061l-.073-.278-3.273-12.464s-.416-1.957 1.54-2.372c1.956-.416 2.372 1.54 2.372 1.54l3.097 11.569c.446.024.878.063 1.305.107l2.061-10.512s.188-1.991 2.18-1.804c1.991.188 1.803 2.179 1.803 2.179L26.34 17.187l-.221 1.194c-.464-.235-.982-.381-1.538-.381zM8.916 16h.168c1.059 0 1.916.858 1.916 1.917v4.166C11 23.142 10.143 24 9.084 24h-.168C7.857 24 7 23.142 7 22.083v-4.166C7 16.858 7.857 16 8.916 16zM15 21c0 .753.287 1.433.745 1.959C15.404 23.576 14.755 24 14 24c-1.104 0-2-.896-2-2v-6c0-.441.147-.845.389-1.176.364-.497.947-.824 1.611-.824 1.104 0 2 .896 2 2v2.778c-.609.549-1 1.336-1 2.222z"/><path fill="#FFDC5D" d="M9.062 25c1.024 0 1.925-.526 2.45-1.322.123.183.271.346.431.497.049.046.102.085.155.128.119.099.243.189.377.269.066.039.132.074.201.108.14.069.285.125.435.172.067.021.131.046.2.062.223.052.452.086.689.086.236 0 .461-.036.681-.089.076-.018.148-.042.223-.066.137-.044.269-.099.396-.161.082-.04.163-.076.24-.124.164-.1.318-.213.46-.341.202-.184.384-.387.53-.618l-.003-.003c.2.115.473.402 1.473.402h2.537c-1.809 1.365-3.037 3.99-3.037 7 0 .276.224.5.5.5s.5-.224.5-.5c0-3.859 2.187-7 4.875-7h.125c.276 0 .5-.224.5-.5s-.224-.5-.5-.5H18c-1.104 0-2-.896-2-2s.896-2 2-2h8c.032 0 .062.008.094.01.073.003.145.01.216.022.062.01.122.021.182.037.064.017.125.035.187.058.062.022.122.047.181.075.057.027.111.058.165.09.056.033.109.067.161.107.052.038.102.08.15.124.046.041.09.084.132.13.027.029.051.06.075.091l.052.063c.038.051.073.102.106.156.034.056.064.112.093.171.03.062.056.125.08.19.012.031.029.06.039.093L29 24c.103.335.479 1.871.411 2.191C29.411 31 24.715 36 19 36c-6.537 0-11.844-5.231-11.986-11.734l.014.01c.515.445 1.176.724 1.91.724h.124z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#BE1931" d="M35.885 11.833c0-5.45-4.418-9.868-9.867-9.868-3.308 0-6.227 1.633-8.018 4.129-1.791-2.496-4.71-4.129-8.017-4.129-5.45 0-9.868 4.417-9.868 9.868 0 .772.098 1.52.266 2.241C1.751 22.587 11.216 31.568 18 34.034c6.783-2.466 16.249-11.447 17.617-19.959.17-.721.268-1.469.268-2.242z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 22 22">
<g fill="none" fill-rule="evenodd">
<path d="M1 1h20v20H1z"/>
<path fill="#027FFF" fill-rule="nonzero" d="M11 18.438a7.438 7.438 0 1 0 0-14.876 7.438 7.438 0 0 0 0 14.876zm0 1.062a8.5 8.5 0 1 1 0-17 8.5 8.5 0 0 1 0 17zM7.812 9.937a1.062 1.062 0 1 0 0-2.124 1.062 1.062 0 0 0 0 2.125zm6.375 0a1.063 1.063 0 1 0 0-2.125 1.063 1.063 0 0 0 0 2.125zM11 16.232a3.27 3.27 0 0 0 3.27-3.27H7.73a3.27 3.27 0 0 0 3.27 3.27z"/>
</g>
</svg>
No preview for this file type
import Vue from "vue";
import App from "./App.vue";
import router from "./router";
import store from "./store";
import "element-ui/lib/theme-chalk/index.css";
import "./style/index.less";
import * as filters from "./filters";
Object.keys(filters).forEach((key) => {
Vue.filter(key, filters[key]);
});
import "./utils/iconfont";
import "./components/common/index";
import { Loading } from "element-ui";
Vue.use(Loading.directive);
import VueLazyload from "vue-lazyload";
const loadimage = require("./images/loading.gif");
const errorimage = require("./images/load-error.jpeg");
Vue.use(VueLazyload, {
preLoad: 1.3, // 提前加载高度(1 表示 1 屏的高度)
error: errorimage,
loading: loadimage,
attempt: 1, // 加载错误后最大尝试次数
});
new Vue({
router,
store,
render: (h) => h(App),
created() {},
}).$mount("#app");
// 获取标签的背景色
import { mapGetters } from "vuex";
export default {
computed: {
...mapGetters({
labelList: "label/labelList",
}),
getLabelColor({ labelList }) {
return (labelName) => {
if (labelList && labelList.length) {
let labelIndex = 0;
labelList.forEach((item, index) => {
if (labelName === item.label) {
labelIndex = index;
}
});
return labelList[labelIndex].bgColor;
}
return "";
};
},
},
};
// 点赞操作
import { apiUpdateLikes } from "api/blog";
export default {
computed: {
getLikesNumber({ likeList }) {
return (id, likes) => (likeList.includes(id) ? likes + 1 : likes);
},
getLikesColor({ likeList }) {
return (id) => likeList.includes(id);
},
},
data() {
return {
currentId: "", // 当前id
isLike: false, // 是否点赞
likeList: [],
};
},
methods: {
// 点赞
handleLikes(id) {
if (this.likeList.includes(id)) {
this.isLike = true;
this.likeList.splice(this.likeList.indexOf(id), 1);
} else {
this.isLike = false;
this.likeList.push(id);
}
this.currentId = id;
return apiUpdateLikes({ _id: id, isLike: this.isLike })
.then((res) => {})
.catch((err) => {
console.log(err);
})
.finally(() => {});
},
},
};
import Vue from "vue";
import Router from "vue-router";
Vue.use(Router);
// 解决同一页面,参数不同的路由报错
const VueRouterPush = Router.prototype.push;
Router.prototype.push = function push(to) {
return VueRouterPush.call(this, to).catch((err) => err);
};
/**
* 加载模块
* @param {string | Component} component 路径或组件
* @param {boolean} lazy 是否懒加载
* @returns {Function | object} 懒加载方法或组件对象
*/
const loadComponent = (component, lazy = true) =>
lazy ? () => import(`views/${component}.vue`) : component;
const router = new Router({
// mode: 'history',
routes: [
{
path: "/index",
component: loadComponent("home/index"),
meta: {
title: "首页",
},
},
{
path: "/label",
component: loadComponent("home/label"),
children: [
{
path: ":keyword",
component: loadComponent("home/components/blogClassify"),
meta: {
title: "文章分类",
},
},
],
},
{
path: "/article/detail",
component: loadComponent("article/detail"),
children: [
{
path: ":id",
component: loadComponent("article/components/detailContent"),
meta: {
title: "文章详情",
},
},
],
},
{
path: "/message",
component: loadComponent("message/index"),
meta: {
title: "留言板",
},
},
{
path: "/myself",
component: loadComponent("myself/index"),
meta: {
title: "关于我们",
},
},
{
path: "*",
redirect: "/index",
},
],
});
router.beforeEach((to, from, next) => {
/* 路由发生变化修改页面title */
if (to.meta && to.meta.title) {
document.title = to.meta.title;
}
next();
});
export default router;
import Vue from "vue";
import Vuex from "vuex";
import label from "./modules/label";
import search from "./modules/search";
Vue.use(Vuex);
const store = new Vuex.Store({
state: {},
mutations: {},
actions: {},
modules: {
label,
search,
},
});
export default store;
import { apiGetLabelList } from "src/api/label";
export default {
namespaced: true,
state: {
labelList: null,
},
mutations: {
setLabelList(state, data) {
state.labelList = data;
},
},
actions: {
getLabelList(context) {
let params = {
pageindex: 1,
pagesize: 50,
};
return apiGetLabelList(params)
.then((res) => {
let { list } = res.data;
context.commit("setLabelList", list);
})
.catch((err) => {
console.log(err);
});
},
},
getters: {
labelList(state) {
return state.labelList;
},
},
};
export default {
namespaced: true,
state: {
keyword: "",
},
mutations: {
setKeyword(state, data) {
state.keyword = data;
},
},
actions: {},
getters: {
keyword(state) {
return state.keyword;
},
},
};
@import "./less/function.less";
@import "./less/animation.less";
@import "./less/markdown.less";
@import "./less/reset.less";
@import "./less/init.less";
@import "../../../../node_modules/highlight.js/styles/tomorrow-night-eighties.css";
@keyframes easeBarrageMove {
100% {left: -50%;}
}
@keyframes btnGroups {
0% {transform: scale(1.2, 0.8);}
1% {transform: scale(1.18, 0.82);}
2% {transform: scale(1.16, 0.84);}
3% {transform: scale(1.13, 0.87);}
4% {transform: scale(1.1, 0.9);}
5% {transform: scale(1.07, 0.93);}
6% {transform: scale(1.04, 0.96);}
7% {transform: scale(1.01, 0.99);}
8% {transform: scale(0.99, 1.01);}
9% {transform: scale(0.97, 1.03);}
10% {transform: scale(0.95, 1.05);}
11% {transform: scale(0.94, 1.06);}
12% {transform: scale(0.93, 1.07);}
13% {transform: scale(0.93, 1.07);}
14% {transform: scale(0.93, 1.07);}
15% {transform: scale(0.93, 1.07);}
16% {transform: scale(0.94, 1.06);}
17% {transform: scale(0.94, 1.06);}
18% {transform: scale(0.95, 1.05);}
19% {transform: scale(0.96, 1.04);}
20% {transform: scale(0.98, 1.02);}
21% {transform: scale(0.99, 1.01);}
22% {transform: scale(1, 1);}
23% {transform: scale(1, 1);}
24% {transform: scale(1.01, 0.99);}
25% {transform: scale(1.02, 0.98);}
26% {transform: scale(1.02, 0.98);}
27% {transform: scale(1.02, 0.98);}
28% {transform: scale(1.03, 0.97);}
29% {transform: scale(1.03, 0.97);}
30% {transform: scale(1.02, 0.98);}
31% {transform: scale(1.02, 0.98);}
32% {transform: scale(1.02, 0.98);}
33% {transform: scale(1.02, 0.98);}
34% {transform: scale(1.01, 0.99);}
35% {transform: scale(1.01, 0.99);}
36% {transform: scale(1.01, 0.99);}
37% {transform: scale(1, 1);}
38% {transform: scale(1, 1);}
39% {transform: scale(1, 1);}
40% {transform: scale(0.99, 1.01);}
41% {transform: scale(0.99, 1.01);}
42% {transform: scale(0.99, 1.01);}
43% {transform: scale(0.99, 1.01);}
44% {transform: scale(0.99, 1.01);}
45% {transform: scale(0.99, 1.01);}
46% {transform: scale(0.99, 1.01);}
47% {transform: scale(0.99, 1.01);}
48% {transform: scale(0.99, 1.01);}
49% {transform: scale(1, 1);}
}
\ No newline at end of file
.home-wrapper {
padding-top: 50px;
min-height: @min-body-height;
.home-body {
width: 1200px;
margin: 0 auto 20px;
display: flex;
}
}
.side-wrapper {
flex: 1;
margin-left: 24px;
}
.side-title {
padding: 0 10px;
line-height: 50px;
height: 50px;
font-size: 18px;
border-bottom: 1px solid #e5e5e5;
color: @mainColor;
font-weight: bold;
position: relative;
display: flex;
align-items: center;
svg {
margin-right: 6px;
}
&::after {
content: " ";
position: absolute;
height: 2px;
width: 10%;
left: 0;
bottom: -1px;
background: @mainColor;
transition: 2s ease all;
}
&:hover {
&::after {
width: 100%;
}
}
}
body {
background: @backgroundColor;
border-top: 1px solid transparent;
margin-top: -1px;
font-family: "Arial", "Microsoft YaHei", "黑体", "宋体", sans-serif;
}
button {
border: none;
background: none;
outline: none;
}
input,
textarea {
-webkit-appearance: none;
}
.icon {
width: 1em;
height: 1em;
vertical-align: -0.15em;
fill: currentColor;
overflow: hidden;
}
::-webkit-scrollbar {
width: 4px;
height: 4px;
}
::-webkit-scrollbar-thumb {
opacity: 0.8;
background: #ddd;
border-radius: 4px;
transition: all 0.5s;
}
/* nprogress styles */
/* Make clicks pass-through */
#nprogress {
pointer-events: none;
}
#nprogress .bar {
background: #dfa400;
position: fixed;
z-index: 1031;
top: 0;
left: 0;
width: 100%;
height: 2px;
}
/* Fancy blur effect */
#nprogress .peg {
display: block;
position: absolute;
right: 0px;
width: 100px;
height: 100%;
box-shadow: 0 0 10px #dfa400, 0 0 5px #dfa400;
opacity: 1;
transform: rotate(3deg) translate(0px, -4px);
}
/* Remove these to get rid of the spinner */
#nprogress .spinner {
display: block;
position: fixed;
z-index: 1031;
top: 15px;
right: 15px;
}
#nprogress .spinner-icon {
width: 18px;
height: 18px;
box-sizing: border-box;
border: solid 2px transparent;
border-top-color: #dfa400;
border-left-color: #dfa400;
border-radius: 50%;
animation: nprogress-spinner 400ms linear infinite;
}
.nprogress-custom-parent {
overflow: hidden;
position: relative;
}
.nprogress-custom-parent #nprogress .spinner,
.nprogress-custom-parent #nprogress .bar {
position: absolute;
}
@keyframes nprogress-spinner {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
.fmt {
line-height: 1.6;
word-wrap: break-word;
color: @mainColor;
}
.fmt a {
color: #009a61;
text-decoration: none;
}
.fmt h1 {
font-size: 2.25em;
}
.fmt h2 {
font-size: 1.75em;
}
.fmt h3 {
font-size: 1.5em;
}
.fmt h4 {
font-size: 1.25em;
}
.fmt h5 {
font-size: 1em;
}
.fmt h6 {
font-size: 0.86em;
}
.fmt p {
margin-top: 0.86em;
line-height: 1.8em;
}
.fmt h1,
.fmt h2,
.fmt h3,
.fmt h4,
.fmt h5,
.fmt h6 {
margin-top: 1.2em;
}
.fmt h1 + .widget-codetool + pre,
.fmt h2 + .widget-codetool + pre,
.fmt h3 + .widget-codetool + pre {
margin-top: 1.2em !important;
}
.fmt h1,
.fmt h2 {
border-bottom: 1px solid #eee;
padding-bottom: 10px;
}
.fmt > h1:first-child,
.fmt h2:first-child,
.fmt h3:first-child,
.fmt h4:first-child,
.fmt p:first-child,
.fmt ul:first-child,
.fmt ol:first-child,
.fmt blockquote:first-child {
margin-top: 0;
}
.fmt ul,
.fmt ol {
margin-left: 2em;
margin-top: 0.86em;
padding-left: 0;
}
.fmt ul li,
.fmt ol li {
margin: 0.3em 0;
list-style: unset;
}
.fmt ul ul,
.fmt ul ol,
.fmt ol ul,
.fmt ol ol {
margin-top: 0;
margin-bottom: 0;
}
.fmt ul p,
.fmt ol p {
margin: 0;
}
.fmt p:last-child {
margin-bottom: 0;
}
.fmt p > p:empty,
.fmt div > p:empty,
.fmt p > div:empty,
.fmt div > div:empty,
.fmt div > br:only-child,
.fmt p + br,
.fmt img + br {
display: none;
}
.fmt img,
.fmt video,
.fmt audio {
position: static !important;
max-width: 100%;
}
.fmt img {
padding: 3px;
border: 1px solid #ddd;
}
.fmt img.emoji {
padding: 0;
border: none;
}
.fmt blockquote {
border-left: 2px solid #009a61;
background: @thinBgColor;
color: @thinColor;
font-size: 1em;
}
.fmt pre,
.fmt code {
font-size: 0.93em;
margin-top: 0.86em;
}
.fmt pre {
font-family: "Source Code Pro", Consolas, Menlo, Monaco, "Courier New",
monospace;
padding: 1em;
margin-top: 0.86em;
border: none;
overflow: auto;
line-height: 1.45;
max-height: 35em;
position: relative;
background: url("../../images/blueprint.png") rgba(233, 234, 237, 0.5);
background-size: 30px, 30px;
font-size: 12px;
-webkit-overflow-scrolling: touch;
border-radius: 5px;
}
.fmt pre code {
background: none;
font-size: 1em;
overflow-wrap: normal;
white-space: inherit;
}
.fmt hr {
margin: 1.5em auto;
border-top: 2px dotted #eee;
}
.fmt kbd {
margin: 0 4px;
padding: 3px 4px;
background: #eee;
color: @thinColor;
}
.fmt .x-scroll {
overflow-x: auto;
}
.fmt table {
width: 100%;
}
.fmt table th,
.fmt table td {
border: 1px solid #e6e6e6;
padding: 5px 8px;
word-break: normal;
}
.fmt table th {
background: #f3f3f3;
}
.fmt a:not(.btn) {
border-bottom: 1px solid rgba(0, 154, 97, 0.25);
padding-bottom: 1px;
}
.fmt a:not(.btn):hover {
border-bottom: 1px solid #009a61;
text-decoration: none;
}
/*
github.com style (c) Vasily Polovnyov <vast@whiteants.net>
*/
.hljs {
display: block;
overflow-x: auto;
padding: 0.5em;
color: @mainColor;
background: #f8f8f8;
}
.hljs-comment,
.hljs-quote {
color: #998;
font-style: italic;
}
.hljs-keyword,
.hljs-selector-tag,
.hljs-subst {
color: @mainColor;
font-weight: bold;
}
.hljs-number,
.hljs-literal,
.hljs-variable,
.hljs-template-variable,
.hljs-tag .hljs-attr {
color: #008080;
}
.hljs-string,
.hljs-doctag {
color: #d14;
}
.hljs-title,
.hljs-section,
.hljs-selector-id {
color: #900;
font-weight: bold;
}
.hljs-subst {
font-weight: normal;
}
.hljs-type,
.hljs-class .hljs-title {
color: #458;
font-weight: bold;
}
.hljs-tag,
.hljs-name,
.hljs-attribute {
color: #000080;
font-weight: normal;
}
.hljs-regexp,
.hljs-link {
color: #009926;
}
.hljs-symbol,
.hljs-bullet {
color: #990073;
}
.hljs-built_in,
.hljs-builtin-name {
color: #0086b3;
}
.hljs-meta {
color: @assistColor;
font-weight: bold;
}
.hljs-deletion {
background: #fdd;
}
.hljs-addition {
background: #dfd;
}
.hljs-emphasis {
font-style: italic;
}
.hljs-strong {
font-weight: bold;
}
/* normalize.css */
html {
line-height: 1.15; /* 1 */
-ms-text-size-adjust: 100%; /* 2 */
-webkit-text-size-adjust: 100%; /* 2 */
}
body {
margin: 0;
}
article,
aside,
footer,
header,
nav,
section {
display: block;
}
h1 {
font-size: 2em;
margin: 0.67em 0;
}
figcaption,
figure,
main {
/* 1 */
display: block;
}
figure {
margin: 1em 40px;
}
hr {
box-sizing: content-box; /* 1 */
height: 0; /* 1 */
overflow: visible; /* 2 */
}
pre {
font-family: monospace, monospace; /* 1 */
font-size: 1em; /* 2 */
}
a {
background-color: transparent; /* 1 */
-webkit-text-decoration-skip: objects; /* 2 */
}
abbr[title] {
border-bottom: none; /* 1 */
text-decoration: underline; /* 2 */
text-decoration: underline dotted; /* 2 */
}
b,
strong {
font-weight: inherit;
}
b,
strong {
font-weight: bolder;
}
code,
kbd,
samp {
font-family: monospace, monospace; /* 1 */
font-size: 1em; /* 2 */
}
dfn {
font-style: italic;
}
mark {
background-color: #ff0;
color: @mainColor;
}
small {
font-size: 80%;
}
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sub {
bottom: -0.25em;
}
sup {
top: -0.5em;
}
audio,
video {
display: inline-block;
}
audio:not([controls]) {
display: none;
height: 0;
}
img {
border-style: none;
}
svg:not(:root) {
overflow: hidden;
}
button,
input,
optgroup,
select,
textarea {
font-family: sans-serif; /* 1 */
font-size: 100%; /* 1 */
line-height: 1.15; /* 1 */
margin: 0; /* 2 */
}
button,
input {
/* 1 */
overflow: visible;
}
button,
select {
/* 1 */
text-transform: none;
}
button,
html [type="button"], /* 1 */
[type="reset"],
[type="submit"] {
-webkit-appearance: button; /* 2 */
}
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
border-style: none;
padding: 0;
}
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
outline: 1px dotted ButtonText;
}
fieldset {
padding: 0.35em 0.75em 0.625em;
}
legend {
box-sizing: border-box; /* 1 */
color: inherit; /* 2 */
display: table; /* 1 */
max-width: 100%; /* 1 */
padding: 0; /* 3 */
white-space: normal; /* 1 */
}
progress {
display: inline-block; /* 1 */
vertical-align: baseline; /* 2 */
}
textarea {
overflow: auto;
}
[type="checkbox"],
[type="radio"] {
box-sizing: border-box; /* 1 */
padding: 0; /* 2 */
}
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
height: auto;
}
[type="search"] {
-webkit-appearance: textfield; /* 1 */
outline-offset: -2px; /* 2 */
}
[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
::-webkit-file-upload-button {
-webkit-appearance: button; /* 1 */
font: inherit; /* 2 */
}
details, /* 1 */
menu {
display: block;
}
summary {
display: list-item;
}
canvas {
display: inline-block;
}
template {
display: none;
}
[hidden] {
display: none;
}
/* reset */
* {
box-sizing: border-box;
}
html,
body {
font: Oswald, "Open Sans", Helvetica, Arial, sans-serif;
}
/* 禁止长按链接与图片弹出菜单 */
a,
img {
-webkit-touch-callout: none;
}
/*ios android去除自带阴影的样式*/
a,
input {
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
input[type="text"] {
-webkit-appearance: none;
}
html,
body,
h1,
h2,
h3,
h4,
h5,
h6,
div,
dl,
dt,
dd,
ul,
ol,
li,
p,
blockquote,
pre,
hr,
figure,
table,
caption,
th,
td,
form,
fieldset,
legend,
input,
button,
textarea,
menu {
margin: 0;
padding: 0;
}
header,
footer,
section,
article,
aside,
nav,
hgroup,
address,
figure,
figcaption,
menu,
details {
display: block;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
caption,
th {
text-align: left;
font-weight: normal;
}
html,
body,
fieldset,
img,
iframe,
abbr {
border: 0;
}
i,
cite,
em,
var,
address,
dfn {
font-style: normal;
}
[hidefocus],
summary {
outline: 0;
}
li {
list-style: none;
}
h1,
h2,
h3,
h4,
h5,
h6,
small {
font-size: 100%;
}
sup,
sub {
font-size: 83%;
}
pre,
code,
kbd,
samp {
font-family: inherit;
}
q:before,
q:after {
content: none;
}
textarea {
overflow: auto;
resize: none;
}
label,
summary {
cursor: default;
}
a,
button {
cursor: pointer;
}
h1,
h2,
h3,
h4,
h5,
h6,
em,
strong,
b {
font-weight: bold;
}
del,
ins,
u,
s,
a,
a:hover {
text-decoration: none;
}
!function(l){var a,h,t,c,p,F='<svg><symbol id="icon-laborer" viewBox="0 0 1024 1024"><path d="M208 976v-33.39C208 810.83 344.11 704 512 704s304 106.83 304 238.61V976z" fill="#00B9FF" ></path><path d="M824 984H200v-41.39c0-66.24 32.71-128.4 92.1-175C350.92 721.43 429 696 512 696s161.08 25.43 219.9 71.59c59.39 46.62 92.1 108.78 92.1 175z m-608-16h592v-25.39C808 815.45 675.21 712 512 712S216 815.45 216 942.61z" fill="#222222" ></path><path d="M560 624h-96v90s0 54 48 54 48-54 48-54z" fill="#FFCEBF" ></path><path d="M512 776c-29.09 0-42.87-17.27-49.31-31.75A82.54 82.54 0 0 1 456 714v-98h112v98a82.54 82.54 0 0 1-6.69 30.25C554.87 758.73 541.09 776 512 776z m-40-144v82c0 1.86 0.69 46 40 46 16.69 0 28-7.28 34.69-22.25A67.2 67.2 0 0 0 552 714v-82z" fill="#222222" ></path><path d="M284.71 411.81m-58.14 0a58.14 58.14 0 1 0 116.28 0 58.14 58.14 0 1 0-116.28 0Z" fill="#FFCEBF" ></path><path d="M284.71 478a66.15 66.15 0 1 1 66.15-66.14A66.21 66.21 0 0 1 284.71 478z m0-116.29a50.15 50.15 0 1 0 50.15 50.15 50.21 50.21 0 0 0-50.15-50.2z" fill="#222222" ></path><path d="M739.29 411.81m-58.14 0a58.14 58.14 0 1 0 116.28 0 58.14 58.14 0 1 0-116.28 0Z" fill="#FFCEBF" ></path><path d="M739.29 478a66.15 66.15 0 1 1 66.14-66.14A66.22 66.22 0 0 1 739.29 478z m0-116.29a50.15 50.15 0 1 0 50.14 50.15 50.21 50.21 0 0 0-50.14-50.2z" fill="#222222" ></path><path d="M743.73 312.57l0.84 111.69C744.57 561.08 640.45 672 512 672S279.43 561.08 279.43 424.26l0.84-111.69S320 96 512 96s231.73 216.57 231.73 216.57z" fill="#FFCEBF" ></path><path d="M512 680c-64.35 0-124.83-26.67-170.29-75.09s-70.28-112.43-70.28-180.65l0.85-112.45 0.12-0.68c0.42-2.27 10.61-56.28 45-111.09 20.31-32.41 44.88-58.28 73-76.88C425.69 99.83 466.61 88 512 88s86.31 11.83 121.62 35.16c28.14 18.6 52.71 44.47 73 76.88 34.35 54.81 44.54 108.82 45 111.09l0.12 0.68 0.85 112.39c0 68.28-25 132.43-70.28 180.71S576.35 680 512 680zM288.27 313.38l-0.84 110.94C287.43 556.45 388.17 664 512 664s224.57-107.55 224.57-239.74l-0.84-110.88c-1.25-6.21-12-56.13-42.9-105.26C649.37 139 588.53 104 512 104s-137.37 35-180.83 104.12c-30.9 49.13-41.65 99.05-42.9 105.26z" fill="#222222" ></path><path d="M300.57 469.95a37 21.14 0 1 0 74 0 37 21.14 0 1 0-74 0Z" fill="#FFA096" ></path><path d="M649.43 469.95a37 21.14 0 1 0 74 0 37 21.14 0 1 0-74 0Z" fill="#FFA096" ></path><path d="M681.14 378.57h-16.58a31.7 31.7 0 0 0-51.4 0h-16.59a8 8 0 0 0 0 16h10.69c-0.07 0.85-0.12 1.71-0.12 2.57a31.72 31.72 0 1 0 63.43 0c0-0.86 0-1.72-0.11-2.57h10.68a8 8 0 0 0 0-16zM427.43 378.57h-16.59a31.7 31.7 0 0 0-51.4 0h-16.58a8 8 0 0 0 0 16h10.68c-0.07 0.85-0.11 1.71-0.11 2.57a31.72 31.72 0 1 0 63.43 0c0-0.86-0.05-1.72-0.12-2.57h10.69a8 8 0 0 0 0-16z" fill="#222222" ></path><path d="M427.43 576.86s28.19 10.57 84.57 10.57 84.57-10.57 84.57-10.57" fill="#FFCEBF" ></path><path d="M512 595.43c-57.17 0-86.17-10.63-87.38-11.08a8 8 0 0 1 5.6-15c0.27 0.1 27.87 10.07 81.78 10.07 54.3 0 81.49-10 81.76-10.06a8 8 0 0 1 5.62 15c-1.21 0.44-30.21 11.07-87.38 11.07z" fill="#222222" ></path><path d="M448 816l-48-96 48-16 64 64-64 48z" fill="#00B9FF" ></path><path d="M448 824a8.24 8.24 0 0 1-1.84-0.21 8 8 0 0 1-5.32-4.21l-48-96a8 8 0 0 1 4.63-11.17l48-16a8 8 0 0 1 8.19 1.93l64 64a8 8 0 0 1-0.86 12.06l-64 48a8 8 0 0 1-4.8 1.6z m-36.72-99.33l39.59 79.18 48.95-36.72-54-54z" fill="#222222" ></path><path d="M576 816l48-96-48-16-64 64 64 48z" fill="#00B9FF" ></path><path d="M576 824a8 8 0 0 1-4.8-1.6l-64-48a8 8 0 0 1-0.86-12.06l64-64a8 8 0 0 1 8.19-1.93l48 16a8 8 0 0 1 4.63 11.17l-48 96a8 8 0 0 1-5.32 4.21 8.24 8.24 0 0 1-1.84 0.21z m-51.82-56.87l49 36.72 39.59-79.18-34.56-11.52z" fill="#222222" ></path><path d="M720 976H304V752l64-32v192h288V720l64 32v224z" fill="#FFA041" ></path><path d="M720 984H304a8 8 0 0 1-8-8V752a8 8 0 0 1 4.42-7.16l64-32A8 8 0 0 1 376 720v184h272V720a8 8 0 0 1 11.58-7.16l64 32A8 8 0 0 1 728 752v224a8 8 0 0 1-8 8z m-408-16h400V756.94l-48-24V912a8 8 0 0 1-8 8H368a8 8 0 0 1-8-8V732.94l-48 24z" fill="#222222" ></path><path d="M753.55 307.44c0-65.12-484.3-65.12-484.3 0 0-133.73 108.42-242.14 242.15-242.14s242.15 108.41 242.15 242.14z" fill="#FFC841" ></path><path d="M761.55 307.44h-16c0-7.55-18.09-19.61-69.08-28.75-43.47-7.8-102.09-12.09-165.07-12.09s-121.6 4.29-165.06 12.09c-51 9.14-69.09 21.2-69.09 28.75h-16a250.15 250.15 0 0 1 500.3 0zM511.4 73.3c-120.92 0-220.73 92.13-232.9 209.89 13.54-8.19 35.13-14.9 65-20.25 44.37-8 104-12.34 167.89-12.34s123.53 4.4 167.9 12.34c29.88 5.35 51.47 12.06 65 20.25C732.13 165.43 632.32 73.3 511.4 73.3z" fill="#222222" ></path><path d="M442.22 256V117.19C442.22 79 462.8 48 511.4 48s69.19 31 69.19 69.19V256c0 29.37-138.37 29.37-138.37 0z" fill="#FFB441" ></path><path d="M511.4 286c-12.89 0-77.18-1.45-77.18-30V117.18c0-22.05 6.36-40.82 18.41-54.26C466.07 47.93 486.39 40 511.4 40s45.33 7.93 58.78 22.92c12 13.44 18.41 32.21 18.41 54.26V256c0 28.58-64.3 30-77.19 30z m0-230c-55.22 0-61.18 42.79-61.18 61.18V256c0 1.13 2.9 5.17 15.79 8.83 11.69 3.3 28.23 5.2 45.39 5.2s33.7-1.9 45.39-5.2c12.89-3.66 15.8-7.7 15.8-8.83V117.18c0-18.39-5.97-61.18-61.19-61.18zM355.73 264a8 8 0 0 1-8-8V128a8 8 0 0 1 16 0v128a8 8 0 0 1-8 8zM665.84 264a8 8 0 0 1-8-8V128a8 8 0 0 1 16 0v128a8 8 0 0 1-8 8z" fill="#222222" ></path><path d="M273.84 352c46.36-23.26 135.63-39 238.16-39s191.8 15.75 238.16 39c21.55-10.82 33.84-23.26 33.84-36.49 0-41.7-121.78-75.51-272-75.51s-272 33.81-272 75.51c0 13.23 12.29 25.67 33.84 36.49z" fill="#FFC841" ></path><path d="M750.16 361l-3.59-1.8C699.66 335.61 609.78 321 512 321s-187.66 14.62-234.57 38.16l-3.59 1.8-3.58-1.8C244.87 346.41 232 331.73 232 315.51 232 261.27 376.26 232 512 232s280 29.27 280 83.51c0 16.22-12.87 30.9-38.26 43.64zM512 305c97.65 0 188.17 14.53 238 38.06 16.78-9 26-18.73 26-27.54 0-15.78-27.59-32.86-73.81-45.69C651.5 255.75 584 248 512 248s-139.5 7.75-190.19 21.82C275.59 282.65 248 299.73 248 315.51c0 8.81 9.18 18.51 26 27.54C323.83 319.52 414.35 305 512 305z" fill="#222222" ></path><path d="M912 560v48l-24.91 40h-46.18L816 608v-48a80 80 0 0 0 16 137.33V928h64V697.33A80 80 0 0 0 912 560z" fill="#646464" ></path><path d="M896 936h-64a8 8 0 0 1-8-8V702.39a88 88 0 0 1-12.81-148.79A8 8 0 0 1 824 560v45.71L845.35 640h37.3L904 605.71V560a8 8 0 0 1 12.81-6.4A88 88 0 0 1 904 702.39V928a8 8 0 0 1-8 8z m-56-16h48V697.33a8 8 0 0 1 4.8-7.33A72.07 72.07 0 0 0 920 578.69V608a8 8 0 0 1-1.21 4.23l-24.9 40a8 8 0 0 1-6.8 3.77h-46.18a8 8 0 0 1-6.79-3.77l-24.91-40A8 8 0 0 1 808 608v-29.31A72.07 72.07 0 0 0 835.2 690a8 8 0 0 1 4.8 7.33z m72-312z" fill="#222222" ></path><path d="M800 784h160v48H800z" fill="#FFCEBF" ></path><path d="M968 840H792v-64h176z m-160-16h144v-32H808z" fill="#222222" ></path><path d="M800 832h160v48H800z" fill="#FFCEBF" ></path><path d="M968 888H792v-64h176z m-160-16h144v-32H808z" fill="#222222" ></path><path d="M800 880h160v48H800z" fill="#FFCEBF" ></path><path d="M968 936H792v-64h176z m-160-16h144v-32H808z" fill="#222222" ></path><path d="M800 928h160v48H800z" fill="#FFCEBF" ></path><path d="M968 984H792v-64h176z m-160-16h144v-32H808z" fill="#222222" ></path><path d="M864 784h96v192h-96" fill="#FFCEBF" ></path><path d="M968 984H864v-16h88V792h-88v-16h104v208z" fill="#222222" ></path><path d="M800 784v96h-48v-96z" fill="#FFCEBF" ></path><path d="M808 888h-64V776h64z m-48-16h32v-80h-32zM512 920a8 8 0 0 1-8-8V784a8 8 0 0 1 16 0v128a8 8 0 0 1-8 8z" fill="#222222" ></path></symbol><symbol id="icon-lakers" viewBox="0 0 1024 1024"><path d="M841.728 423.936V141.312l-161.28-43.008h-0.512c-13.312 36.352-83.456 64.512-167.936 64.512s-154.624-27.648-167.936-64l-163.328 43.52v281.6a199.68 199.68 0 0 1-29.184 103.936v422.912h720.384v-420.864a201.6256 201.6256 0 0 1-30.208-105.984z" fill="#FC9A0D" ></path><path d="M510.464 184.32c100.352 0 181.76-33.28 181.76-74.24a28.9792 28.9792 0 0 0-1.536-9.216l-10.24-2.56h-0.512c-13.312 36.352-83.456 64.512-167.936 64.512s-154.624-27.648-167.936-64l-14.336 3.584a39.5264 39.5264 0 0 0-1.024 7.68c0 40.96 81.408 74.24 181.76 74.24zM782.336 459.776V125.952l60.928 16.384v281.6a199.68 199.68 0 0 0 29.184 103.936v99.328a201.472 201.472 0 0 1-90.112-167.424z" fill="#FFFFFF" ></path><path d="M872.704 627.6608l-0.4096-0.256a201.7792 201.7792 0 0 1-90.2144-167.6288V125.5936h0.3072l61.1328 16.4352v281.6a199.168 199.168 0 0 0 29.1328 103.7824z m-90.112-501.4016V459.776a201.2672 201.2672 0 0 0 89.6 166.9632v-98.816a199.68 199.68 0 0 1-29.184-103.9872v-281.6z" ></path><path d="M827.904 138.24v315.904c3.072 25.088 15.872 82.432 44.544 110.592v37.888c-61.44-32.768-74.24-140.8-74.752-145.92V129.536z" fill="#2A1A5B" ></path><path d="M241.664 459.776V125.952l-60.928 16.384v281.6a199.68 199.68 0 0 1-29.184 103.936v99.328a200.2432 200.2432 0 0 0 90.112-167.424z" fill="#FFFFFF" ></path><path d="M151.296 627.6608v-99.84a199.2192 199.2192 0 0 0 29.184-103.8848v-281.6l61.44-16.4864V459.776a200.8576 200.8576 0 0 1-90.2144 167.6288z m0.512-99.7376v98.7648a200.3456 200.3456 0 0 0 89.6-166.912V126.3104l-60.416 16.2304v281.6a199.68 199.68 0 0 1-29.184 103.7824z" ></path><path d="M196.608 138.24v315.904c-3.072 25.088-15.872 82.432-44.544 110.592v37.888c61.44-32.768 74.24-140.8 74.752-145.92V129.536z" fill="#2A1A5B" ></path><path d="M512 285.696a196.352 196.352 0 0 0 195.584-180.224l-27.136-7.168h-0.512c-4.096 11.776-14.336 22.528-28.672 31.744a145.0496 145.0496 0 0 1-278.528 0c-14.336-9.216-24.576-19.968-28.672-31.744l-27.648 7.168A197.0688 197.0688 0 0 0 512 285.696z" fill="#FFFFFF" ></path><path d="M512 285.952a195.328 195.328 0 0 1-133.12-52.3776 197.5296 197.5296 0 0 1-62.72-128l27.904-7.2192c3.9424 11.3152 13.568 21.9648 28.5696 31.5904a144.7936 144.7936 0 0 0 278.016 0c15.0016-9.6768 24.6272-20.48 28.5696-31.5904h0.768l27.3408 7.2192A196.608 196.608 0 0 1 512 285.952zM316.672 105.6768a195.9936 195.9936 0 0 0 390.6048 0l-26.88-7.1168h-0.3072c-3.9936 11.3664-13.6192 21.9648-28.6208 31.6416a145.6128 145.6128 0 0 1-51.2 74.9056 145.2544 145.2544 0 0 1-176.0768 0 146.3296 146.3296 0 0 1-51.6608-74.9056c-14.9504-9.6256-24.576-20.48-28.6208-31.5904z" fill="#333333" ></path><path d="M512 270.336a180.8384 180.8384 0 0 0 180.224-168.96l-11.776-3.072h-0.512a47.5648 47.5648 0 0 1-9.728 15.872 160 160 0 0 1-316.416 0 47.2576 47.2576 0 0 1-9.216-15.36l-12.288 3.584A179.8656 179.8656 0 0 0 512 270.336z" fill="#2A1A5B" ></path><path d="M152.064 902.144h719.872v49.152H152.064z" fill="#C17111" ></path><path d="M501.1456 775.8848v40.96h-132.096v-34.3552q58.7264-96 69.7856-118.8352t11.0592-35.84a25.6 25.6 0 0 0-3.328-14.6432 11.5712 11.5712 0 0 0-10.24-4.8128 11.2128 11.2128 0 0 0-10.24 5.12 44.9536 44.9536 0 0 0-3.328 21.248v22.8864H369.0496v-8.7552a190.8224 190.8224 0 0 1 2.0992-31.8976 55.9616 55.9616 0 0 1 10.24-22.9376 51.2 51.2 0 0 1 21.248-17.1008 76.8 76.8 0 0 1 31.3344-5.7856q35.84 0 54.1696 17.7664a59.904 59.904 0 0 1 18.3296 44.9536 106.9568 106.9568 0 0 1-10.24 43.6736q-10.24 23.04-60.8768 97.792zM640.8704 576.3072v157.2352h17.1008v40.96h-17.1008v42.3424h-60.0576v-42.3424H509.4912v-40.96l51.8656-157.2352z m-60.0576 157.2352v-102.4l-26.5216 102.4z" fill="#FFFFFF" ></path><path d="M306.3296 465.3056H322.56a27.5456 27.5456 0 0 0 4.5056-0.3072 10.9056 10.9056 0 0 0 3.072-0.9728 7.936 7.936 0 0 0 2.304-1.792 13.9264 13.9264 0 0 0 1.9456-3.0208 29.5424 29.5424 0 0 0 1.792-4.7104q0.8192-2.8672 2.0992-8.5504h6.2976l-1.024 25.088h-56.32v-3.072a12.9024 12.9024 0 0 0 5.12-2.2016 6.0416 6.0416 0 0 0 1.7408-3.4816 42.3936 42.3936 0 0 0 0.4096-6.8608V401.3568a45.312 45.312 0 0 0-0.3072-6.2976 7.8848 7.8848 0 0 0-1.024-3.072 5.12 5.12 0 0 0-1.8944-1.7408 20.7872 20.7872 0 0 0-4.0448-1.4848v-3.072h26.3168v3.072a22.2208 22.2208 0 0 0-3.8912 1.3312 5.4272 5.4272 0 0 0-1.8944 1.5872 7.3728 7.3728 0 0 0-1.1264 3.072 40.96 40.96 0 0 0-0.3584 6.5536zM402.688 471.04v-3.072a20.48 20.48 0 0 0 4.6592-1.3824 5.12 5.12 0 0 0 2.304-2.0992 7.3728 7.3728 0 0 0 0.768-3.584 23.552 23.552 0 0 0-0.512-4.608q-0.512-2.4576-1.4336-5.5296l-2.304-8.0384h-29.184l-2.1504 6.144A60.7744 60.7744 0 0 0 372.736 455.68a21.0432 21.0432 0 0 0-0.512 4.3008 7.1168 7.1168 0 0 0 1.9456 5.9392 10.8032 10.8032 0 0 0 5.8368 2.304V471.04H353.28v-3.072a9.472 9.472 0 0 0 6.0928-4.0448 41.6768 41.6768 0 0 0 5.12-10.24l26.0608-69.1712h9.8304l21.248 69.6832a67.1744 67.1744 0 0 0 2.6624 7.424 11.5712 11.5712 0 0 0 2.7648 3.9936 10.24 10.24 0 0 0 4.4544 2.1504V471.04zM378.88 437.2992h26.112l-11.8784-40.2944zM461.6704 424.2944h1.8944a12.1344 12.1344 0 0 0 4.352-0.768 16.0768 16.0768 0 0 0 4.4032-2.816 87.552 87.552 0 0 0 7.424-7.68q5.9904-6.7072 8.192-9.6768a25.6 25.6 0 0 0 3.584-5.9904 9.1136 9.1136 0 0 0 0.768-3.4816 4.4032 4.4032 0 0 0-1.4336-3.6352 7.3216 7.3216 0 0 0-3.9424-1.3824v-3.072h27.2384v3.072a14.1824 14.1824 0 0 0-3.9424 1.536 20.9408 20.9408 0 0 0-3.9936 3.0208q-2.048 1.8944-5.9904 6.2976l-20.992 23.6544 22.7328 33.0752a59.5968 59.5968 0 0 0 5.6832 7.3216 16.0768 16.0768 0 0 0 3.9424 3.072 12.6464 12.6464 0 0 0 3.9936 1.28V471.04h-27.392v-3.072a7.5776 7.5776 0 0 0 3.3792-0.8704 2.304 2.304 0 0 0 1.0752-2.048 6.912 6.912 0 0 0-0.7168-2.7136 25.6 25.6 0 0 0-2.304-3.84l-14.5408-21.7088a43.8272 43.8272 0 0 0-3.7376-5.12 7.936 7.936 0 0 0-2.56-1.8432 9.472 9.472 0 0 0-3.6864-0.6144h-3.328v26.1632a46.7456 46.7456 0 0 0 0.3072 6.144 8.6016 8.6016 0 0 0 0.9216 3.072 5.12 5.12 0 0 0 1.9456 1.8944 17.4592 17.4592 0 0 0 4.1472 1.4848v3.072h-26.368v-3.072a12.9024 12.9024 0 0 0 5.12-2.2016 6.0928 6.0928 0 0 0 1.7408-3.4816 42.3936 42.3936 0 0 0 0.4096-6.8608V401.3568a44.3392 44.3392 0 0 0-0.3072-6.2976 7.8848 7.8848 0 0 0-1.024-3.072 5.12 5.12 0 0 0-1.8944-1.7408 20.992 20.992 0 0 0-4.0448-1.4848v-3.072h26.3168v3.072a17.152 17.152 0 0 0-3.9936 1.3824 5.7344 5.7344 0 0 0-1.9456 1.7408 7.68 7.68 0 0 0-1.0752 3.072 42.3936 42.3936 0 0 0-0.3584 6.3488zM584.8576 385.7408V404.48H578.56a52.2752 52.2752 0 0 0-1.9456-5.12 23.7568 23.7568 0 0 0-2.048-3.8912 10.24 10.24 0 0 0-2.3552-2.5088 7.5776 7.5776 0 0 0-3.0208-1.28 22.3744 22.3744 0 0 0-4.1984-0.3584h-19.7632v32.768h13.3632a9.728 9.728 0 0 0 4.3008-0.768 6.144 6.144 0 0 0 2.6112-2.6624 24.7296 24.7296 0 0 0 1.9456-5.888H573.44v24.0128h-5.888a22.6816 22.6816 0 0 0-1.9456-5.632 6.7072 6.7072 0 0 0-2.4064-3.072 9.3696 9.3696 0 0 0-4.4032-0.8192h-13.3632v35.84h19.456a18.9952 18.9952 0 0 0 5.12-0.512 7.7824 7.7824 0 0 0 3.2768-1.792 12.032 12.032 0 0 0 2.4576-3.328 28.672 28.672 0 0 0 1.792-4.3008q0.7168-2.2016 1.9456-6.4512h6.1952l-1.3824 22.3232h-57.856v-3.072a12.9024 12.9024 0 0 0 5.12-2.2016 6.0416 6.0416 0 0 0 1.7408-3.4816 42.3936 42.3936 0 0 0 0.4096-6.8608V401.3568a45.312 45.312 0 0 0-0.3072-6.2976 7.8848 7.8848 0 0 0-1.024-3.072 5.12 5.12 0 0 0-1.8944-1.7408 20.7872 20.7872 0 0 0-4.0448-1.4848v-3.072zM618.2912 433.9712v21.248a43.52 43.52 0 0 0 0.3584 6.5536 7.9872 7.9872 0 0 0 1.024 3.072 5.12 5.12 0 0 0 1.8944 1.6896 21.4016 21.4016 0 0 0 4.0448 1.4848V471.04H599.04v-3.072a12.9024 12.9024 0 0 0 5.12-2.2016 6.0416 6.0416 0 0 0 1.7408-3.4816 42.3936 42.3936 0 0 0 0.4096-6.8608V401.3568a45.312 45.312 0 0 0-0.3072-6.2976 7.8848 7.8848 0 0 0-1.024-3.072 5.12 5.12 0 0 0-1.8944-1.7408 20.7872 20.7872 0 0 0-4.0448-1.4848v-3.072h30.72a36.9664 36.9664 0 0 1 21.8624 5.12 19.0976 19.0976 0 0 1 7.2704 16.4864 22.784 22.784 0 0 1-4.7104 14.5408 30.72 30.72 0 0 1-14.1312 9.3696v0.512a18.3296 18.3296 0 0 1 6.5536 4.4544 44.9024 44.9024 0 0 1 6.4 9.2672l5.632 10.24a61.44 61.44 0 0 0 4.1984 6.8608 15.36 15.36 0 0 0 3.584 3.6352 11.9296 11.9296 0 0 0 4.8128 1.7408V471.04h-17.3056a74.0352 74.0352 0 0 1-4.5056-7.1168q-2.1504-3.7888-4.1984-7.7312l-5.4784-10.24a65.6896 65.6896 0 0 0-4.096-7.0144 12.544 12.544 0 0 0-2.9184-3.1744 8.4992 8.4992 0 0 0-2.8672-1.2288 23.04 23.04 0 0 0-4.608-0.3584z m0-42.496v37.12h7.0656a40.0896 40.0896 0 0 0 8.8064-0.768 16.2816 16.2816 0 0 0 6.2464-2.9696 15.0528 15.0528 0 0 0 4.608-6.0928 23.808 23.808 0 0 0 1.7408-9.5744 21.4016 21.4016 0 0 0-2.048-9.8816 13.5168 13.5168 0 0 0-6.144-5.9904 25.1392 25.1392 0 0 0-11.1104-2.048q-5.6832-0.0512-9.1648 0.2048zM687.872 451.584a26.2656 26.2656 0 0 0 3.3792 8.704 12.9024 12.9024 0 0 0 5.4784 4.7104 21.1456 21.1456 0 0 0 8.704 1.536 15.36 15.36 0 0 0 11.2128-3.7888 14.848 14.848 0 0 0 3.8912-11.1104 17.2544 17.2544 0 0 0-1.6384-7.8848 17.9712 17.9712 0 0 0-5.12-5.9904 72.4992 72.4992 0 0 0-11.264-6.5536 61.8496 61.8496 0 0 1-11.5712-7.1168 23.9616 23.9616 0 0 1-6.3488-7.5264 19.0976 19.0976 0 0 1-2.0992-8.8576 22.1696 22.1696 0 0 1 3.2768-12.1344 21.248 21.248 0 0 1 9.6256-7.9872 35.5328 35.5328 0 0 1 14.5408-2.816 73.5232 73.5232 0 0 1 20.48 2.7648V404.48h-6.1952a26.2656 26.2656 0 0 0-3.6352-8.5504 11.9808 11.9808 0 0 0-5.12-4.3008 20.0704 20.0704 0 0 0-7.6288-1.2288 17.0496 17.0496 0 0 0-7.2704 1.4848 11.6736 11.6736 0 0 0-5.12 4.5056 13.4656 13.4656 0 0 0-1.8944 7.2192 16.0768 16.0768 0 0 0 1.5872 7.4752 17.664 17.664 0 0 0 5.12 5.6832 59.5456 59.5456 0 0 0 10.24 5.888 76.3392 76.3392 0 0 1 12.0832 7.424 26.1632 26.1632 0 0 1 6.8608 7.8336 20.48 20.48 0 0 1 2.4576 10.24 26.7264 26.7264 0 0 1-2.048 11.1104 19.2512 19.2512 0 0 1-5.7344 7.3728 23.296 23.296 0 0 1-8.7552 4.1472 46.08 46.08 0 0 1-11.1616 1.28 92.16 92.16 0 0 1-22.6304-3.328V451.584z" fill="#2A1A5B" ></path><path d="M872.448 950.528v-420.864a201.6256 201.6256 0 0 1-30.208-105.984v-282.624l-161.28-43.008h-0.512c-13.312 36.352-83.456 64.512-167.936 64.512h-6.144v787.968z" opacity=".15" ></path></symbol><symbol id="icon-like02" viewBox="0 0 1024 1024"><path d="M604.2 184.56666667c16.2 8.4 30.4 22.7 42.8 41.5 20.1 31.1 32.4 75.8 35 126.3 1.9 40.8-2.6 82.9-13 119.8h154.2c36.3 0 67.4 9.1 90.7 25.9 24 17.5 37.6 42.8 38.2 70.6v0.6c0 21.4-8.4 47.3-20.7 64.1 13.6 15.5 20.7 36.3 20.7 61.5 0 29.8-20.7 57.7-41.5 72.5 5.2 11.7 7.1 25.3 7.1 34.3 0 33.7-20.1 60.2-55.1 74.5 3.2 7.8 4.5 16.2 4.5 26.6 0 31.7-13 57.7-37.6 74.5-24 16.8-58.3 25.3-101.7 25.3h-246c-27.2 0-57.7-5.8-80.3-14.9-9.1-3.9-17.5-7.8-23.3-11-1.3-0.6-3.2-1.3-4.5-1.9-1.3 0.6-1.9 1.9-3.2 2.6-1.9 1.3-3.9 3.2-5.8 4.5-14.3 10.4-29.8 20.1-48.6 20.7h-66.7c-28.5 0-51.8-9.1-68-26.6-14.9-16.2-24-39.5-25.9-68.7l-30.4-324.5v-1.3c0-30.4 9.1-57.6 25.9-77.7 17.5-20.7 42.1-31.7 69.3-31.7H338c16.2 0 42.8-5.2 77.1-30.4 24-18.1 38.9-36.3 42.1-42.1 11-26.6 21.4-55.7 21.4-125 0-8.4 0-34.3 11-57 9.1-20.1 29.8-43.4 72.6-43.4 14.8 0 28.4 3.9 42 10.4z" fill="#FF9D00" ></path><path d="M616.7 122.86666667a12.2 2.3 90 1 0 4.6 0 12.2 2.3 90 1 0-4.6 0Z" fill="#F07FFD" ></path><path d="M627.571704 121.32267867a12.2 2.3 60 1 0 3.983717-2.3 12.2 2.3 60 1 0-3.983717 2.3Z" fill="#F07FFD" ></path><path d="M636.311797 114.58635567a12.2 2.3 30 1 0 2.3-3.983717 12.2 2.3 30 1 0-2.3 3.983717Z" fill="#F07FFD" ></path><path d="M628.3 102.06666667a12.2 2.3 0 1 0 24.4 0 12.2 2.3 0 1 0-24.4 0Z" fill="#F07FFD" ></path><path d="M627.328131 97.54693467a2.3 12.2 60 1 0 21.13102-12.2 2.3 12.2 60 1 0-21.13102 12.2Z" fill="#F07FFD" ></path><path d="M624.189866 94.11262367a2.3 12.2 30 1 0 12.2-21.131019 2.3 12.2 30 1 0-12.2 21.131019Z" fill="#F07FFD" ></path><path d="M617.4 80.56666667a12.2 2.3 90 1 0 4.6 0 12.2 2.3 90 1 0-4.6 0Z" fill="#F07FFD" ></path><path d="M607.088802 84.31648967a12.2 2.3 60 1 0 3.983717-2.3 12.2 2.3 60 1 0-3.983717 2.3Z" fill="#F07FFD" ></path><path d="M600.042483 92.79750567a12.2 2.3 30 1 0 2.3-3.983717 12.2 2.3 30 1 0-2.3 3.983717Z" fill="#F07FFD" ></path><path d="M586 101.26666667a12.2 2.3 0 1 0 24.4 0 12.2 2.3 0 1 0-24.4 0Z" fill="#F07FFD" ></path><path d="M590.235205 118.07933667a2.3 12.2 60 1 0 21.13102-12.2 2.3 12.2 60 1 0-21.13102 12.2Z" fill="#F07FFD" ></path><path d="M602.351017 130.46853967a2.3 12.2 30 1 0 12.2-21.131019 2.3 12.2 30 1 0-12.2 21.131019Z" fill="#F07FFD" ></path><path d="M367.4 166.26666667m-14.8 0a14.8 14.8 0 1 0 29.6 0 14.8 14.8 0 1 0-29.6 0Z" fill="#2C65AF" ></path><path d="M737.5 143.46666667c2.3 0 4.2 1.9 4.2 4.2v45.5c0 2.3-1.9 4.2-4.2 4.2s-4.2-1.9-4.2-4.2V147.66666667c0-2.4 1.9-4.2 4.2-4.2z" fill="#EF8218" ></path><path d="M714.7 166.16666667h45.5c2.3 0 4.2 1.9 4.2 4.2 0 2.3-1.9 4.2-4.2 4.2h-45.5c-2.3 0-4.2-1.9-4.2-4.2 0.1-2.4 1.9-4.2 4.2-4.2z" fill="#EF8218" ></path><path d="M270.2 201.26666667c5.9-3 8.8-9 6.6-13.3l-43.4-84.1c-2.2-4.3-8.8-5.3-14.7-2.3-5.9 3-8.8 9-6.6 13.3l43.4 84.1c2.2 4.3 8.8 5.3 14.7 2.3z" fill="#7CCBE2" ></path><path d="M294.3 125.66666667c-3-5.9-9-8.8-13.3-6.6l-84.1 43.4c-4.3 2.2-5.3 8.8-2.3 14.7s9 8.8 13.3 6.6l84.1-43.4c4.3-2.2 5.3-8.8 2.3-14.7z" fill="#7CCBE2" ></path><path d="M442.8-13.13333333c20.8 0 37.7 16.8 37.7 37.4S463.6 61.66666667 442.8 61.66666667c-20.8 0-37.7-16.8-37.7-37.4S422-13.13333333 442.8-13.13333333z m0 64.8c15.3 0 27.8-12.3 27.8-27.5S458.1-3.33333333 442.8-3.33333333 415 8.96666667 415 24.16666667 427.5 51.66666667 442.8 51.66666667z" fill="#E62A52" ></path><path d="M674 984.76666667h-81.3c-8.3 0-15-6.7-15-15s6.7-15 15-15H674c40.5 0 71.8-7.6 93.1-22.5l0.2-0.1c20.3-13.9 31-35.4 31-62.1 0-8.8-1-15.2-3.4-20.8l-5.8-14 14-5.7c29.5-12 45.7-33.5 45.7-60.6 0-7-1.5-18.6-5.8-28.2l-5-11.2 9.9-7.1c17.5-12.6 35.2-36.1 35.2-60.4 0-21.4-5.7-38.8-17-51.7l-7.9-9 7.1-9.7c10.5-14.4 17.8-37.1 17.8-55.3v-0.5c-0.6-23.2-12-44-32.1-58.7-20.8-15.1-49.2-23-81.8-23h-174l5.3-19.1c9.9-35.1 14.3-76 12.4-115.1-2.5-47.9-14-90.1-32.6-118.9-11.1-17-23.5-29.2-36.8-36.2-12.7-6-23.9-8.8-35.4-8.8-35.8 0-51.8 18.8-58.9 34.6l-0.2 0.4c-9.5 19.6-9.5 42.8-9.5 50.5 0 70.6-10.7 102.1-22.5 130.8l-0.3 0.8-0.4 0.7c-4.4 7.9-20.8 27.6-46.2 46.8l-0.2 0.1c-37.5 27.6-67.4 33.4-86 33.4H166.2c-22.9 0-43.5 9.4-57.8 26.4C93.8 497.96666667 86 521.56666667 86 548.66666667v0.6l3.5 37.7c0.8 8.2-5.3 15.6-13.5 16.3-8.2 0.8-15.6-5.3-16.3-13.5L56 550.66666667v-2c0-34.2 10.2-64.4 29.4-87.4 20.2-23.9 48.9-37.1 80.8-37.1h117.9c14 0 37.2-4.8 68.1-27.5 21.4-16.2 34.6-32.1 37.6-36.8 10.9-26.4 19.8-53.9 19.8-118.3 0-9.3 0-37.6 12.4-63.4 6.5-14.2 16.3-26.3 28.5-35.1 15.7-11.3 35.1-17 57.6-17 16 0 31.8 3.9 48.6 11.8l0.5 0.2c18 9.4 34.3 25 48.4 46.5 21.4 33.5 34.7 81 37.4 134.1 1.7 35.4-1.4 72.2-8.7 105.6h135c39 0 73.4 9.9 99.5 28.8 27.9 20.4 43.7 49.6 44.4 82.4v1c0 20.6-6.8 44.7-17.4 63.4 11.6 17.1 17.4 38 17.4 62.3 0 32.2-19.3 60.3-38.7 77.5 4 13.5 4.4 25.4 4.4 29.4 0 35.3-18.8 64.9-52.1 82.6 1.1 5.6 1.6 11.7 1.6 18.4 0 36.5-15.6 67.4-44 86.8-26.6 18.5-63.7 27.9-110.4 27.9z" fill="" ></path><path d="M91.7 786.76666667c-7.7 0-14.2-5.8-14.9-13.6l-12-128.4c-0.8-8.2 5.3-15.6 13.5-16.3 8.3-0.8 15.6 5.3 16.3 13.5l12 128.4c0.8 8.2-5.3 15.6-13.5 16.3-0.4 0.1-0.9 0.1-1.4 0.1z" fill="" ></path><path d="M502.1 984.76666667h-74.2c-28.8 0-60.9-6-85.9-16l-0.3-0.1c-8-3.4-14.7-6.5-19.9-9.2-0.7 0.6-1.6 1.2-2.5 1.8-16.2 11.7-34.2 22.7-56.7 23.4h-67.2c-32.7 0-60-10.8-79-31.4-17.4-18.9-27.7-45.7-29.9-77.7L82.7 835.66666667c-0.8-8.2 5.3-15.6 13.5-16.3 8.2-0.8 15.6 5.3 16.3 13.5l3.8 40.7c1.7 25.1 9.3 45.7 22 59.5 13.3 14.4 32.5 21.7 57 21.7h66.4c13.6-0.5 25.8-7.5 40-17.9l0.5-0.4c0.3-0.2 1.1-0.8 1.6-1.3 1.1-0.9 2.4-2 3.9-3 1-1 2.7-2.5 5.1-3.7l6.7-3.4 6.7 3.4c0.3 0.1 0.7 0.3 1.1 0.5 1 0.4 2.2 0.9 3.4 1.5l0.6 0.3c4.8 2.7 12.3 6.2 21.8 10.3 21.3 8.5 49.9 13.8 74.6 13.8h74.2c8.3 0 15 6.7 15 15s-6.5 14.9-14.8 14.9z" fill="" ></path><path d="M320.7 948.66666667c-7.9 0-14.5-6.2-15-14.2l-26.5-495c-0.4-8.3 5.9-15.3 14.2-15.8 8.3-0.4 15.3 5.9 15.8 14.2l26.5 495c0.4 8.3-5.9 15.3-14.2 15.8h-0.8z" fill="" ></path><path d="M188.4 607.36666667c-7.9 0-14.5-6.2-15-14.2l-2.8-49.5c-0.5-8.3 5.9-15.3 14.1-15.8 8.3-0.5 15.3 5.9 15.8 14.1l2.8 49.5c0.5 8.3-5.9 15.3-14.1 15.8-0.3 0.1-0.5 0.1-0.8 0.1zM200.2 820.96666667c-7.9 0-14.5-6.2-15-14.2l-8.1-145.7c-0.5-8.3 5.9-15.3 14.1-15.8 8.3-0.5 15.3 5.9 15.8 14.1l8.1 145.7c0.5 8.3-5.9 15.3-14.1 15.8-0.2 0-0.5 0.1-0.8 0.1z" fill="#FFFFFF" ></path></symbol><symbol id="icon-date02" viewBox="0 0 1024 1024"><path d="M698.368 0m60.643556 0l0.113777 0q60.643556 0 60.643556 60.643556l0 64.512q0 60.643556-60.643556 60.643555l-0.113777 0q-60.643556 0-60.643556-60.643555l0-64.512q0-60.643556 60.643556-60.643556Z" fill="#3A77D9" ></path><path d="M204.344889 0m60.643555 0l0.113778 0q60.643556 0 60.643556 60.643556l0 64.512q0 60.643556-60.643556 60.643555l-0.113778 0q-60.643556 0-60.643555-60.643555l0-64.512q0-60.643556 60.643555-60.643556Z" fill="#3A77D9" ></path><path d="M885.76 56.888889h-35.726222v84.423111a91.022222 91.022222 0 0 1-91.022222 91.022222 91.022222 91.022222 0 0 1-91.022223-91.022222V56.888889H356.010667v84.423111a91.022222 91.022222 0 0 1-182.044445 0V56.888889H138.24A136.533333 136.533333 0 0 0 1.706667 193.422222v694.044445a136.533333 136.533333 0 0 0 136.533333 136.533333h747.52a136.533333 136.533333 0 0 0 136.533333-136.533333V193.422222a136.533333 136.533333 0 0 0-136.533333-136.533333z m98.986667 838.200889a86.471111 86.471111 0 0 1-86.243556 86.243555h-773.688889a86.471111 86.471111 0 0 1-85.560889-86.243555V380.131556a86.471111 86.471111 0 0 1 86.243556-86.243556h773.688889a86.471111 86.471111 0 0 1 86.243555 86.243556z" fill="#3A77D9" ></path><path d="M161.905778 392.305778h115.256889v115.256889H161.905778zM454.428444 392.305778h115.256889v115.256889H454.428444zM746.837333 392.305778h115.256889v115.256889H746.837333zM161.905778 576.512h115.256889V691.768889H161.905778zM454.428444 576.512h115.256889V691.768889H454.428444zM746.837333 576.512h115.256889V691.768889H746.837333zM161.905778 760.718222h115.256889v115.256889H161.905778zM454.428444 760.718222h115.256889v115.256889H454.428444zM746.837333 760.718222h115.256889v115.256889H746.837333z" fill="#3A77D9" ></path></symbol><symbol id="icon-reply02" viewBox="0 0 1024 1024"><path d="M170.666667 136.533333m136.533333 0l512 0q136.533333 0 136.533333 136.533334l0 307.2q0 136.533333-136.533333 136.533333l-512 0q-136.533333 0-136.533333-136.533333l0-307.2q0-136.533333 136.533333-136.533334Z" fill="#FC7300" ></path><path d="M170.666667 170.666667m136.533333 0l512 0q136.533333 0 136.533333 136.533333l0 307.2q0 136.533333-136.533333 136.533333l-512 0q-136.533333 0-136.533333-136.533333l0-307.2q0-136.533333 136.533333-136.533333Z" fill="#FA8511" ></path><path d="M170.666667 273.066667h512a136.533333 136.533333 0 0 1 136.533333 136.533333v307.2a136.533333 136.533333 0 0 1-136.533333 136.533333h-188.757334l-67.242666 67.4816L359.1168 853.333333H170.666667a136.533333 136.533333 0 0 1-136.533334-136.533333v-307.2a136.533333 136.533333 0 0 1 136.533334-136.533333z" fill="#FBC476" ></path><path d="M170.666667 307.2h512a136.533333 136.533333 0 0 1 136.533333 136.533333v307.2a136.533333 136.533333 0 0 1-136.533333 136.533334h-188.757334l-67.242666 67.4816L359.1168 887.466667H170.666667a136.533333 136.533333 0 0 1-136.533334-136.533334v-307.2a136.533333 136.533333 0 0 1 136.533334-136.533333z" fill="#FAB85F" ></path><path d="M204.8 477.866667m34.133333 0l375.466667 0q34.133333 0 34.133333 34.133333l0 0q0 34.133333-34.133333 34.133333l-375.466667 0q-34.133333 0-34.133333-34.133333l0 0q0-34.133333 34.133333-34.133333Z" fill="#FFFFFF" ></path><path d="M204.8 648.533333m34.133333 0l273.066667 0q34.133333 0 34.133333 34.133334l0 0q0 34.133333-34.133333 34.133333l-273.066667 0q-34.133333 0-34.133333-34.133333l0 0q0-34.133333 34.133333-34.133334Z" fill="#FFFFFF" ></path></symbol><symbol id="icon-browse02" viewBox="0 0 1024 1024"><path d="M414.5 75.1h196.1C579 68 546.2 64.3 512.5 64.3c-33.7 0.1-66.5 3.8-98 10.8z" fill="#00D995" ></path><path d="M363.4 89.8l298.3 0.1c-16.6-5.9-33.6-10.8-51.1-14.7H414.5c-17.4 3.8-34.5 8.7-51.1 14.6z" fill="#01D996" ></path><path d="M327.1 104.4l370.9 0.1c-11.8-5.4-24-10.3-36.3-14.7l-298.3-0.1c-12.3 4.4-24.5 9.3-36.3 14.7z" fill="#01D997" ></path><path d="M297.8 119.1l429.4 0.1c-9.5-5.2-19.3-10.1-29.3-14.7l-370.9-0.1c-9.9 4.6-19.6 9.4-29.2 14.7z" fill="#01D898" ></path><path d="M273 133.7l479.1 0.1c-8.1-5.1-16.4-10-24.8-14.7l-429.4-0.1c-8.5 4.7-16.8 9.6-24.9 14.7z" fill="#01D899" ></path><path d="M251.3 148.4l522.5 0.1c-7.1-5.1-14.3-10-21.7-14.7l-479.1-0.1c-7.4 4.7-14.6 9.6-21.7 14.7z" fill="#01D89A" ></path><path d="M232 163l561 0.1c-6.3-5.1-12.7-9.9-19.3-14.7l-522.5-0.1c-6.4 4.8-12.9 9.7-19.2 14.7z" fill="#01D79B" ></path><path d="M214.7 177.7l595.6 0.1c-5.6-5-11.4-9.9-17.3-14.7l-561-0.1c-5.8 4.8-11.6 9.6-17.3 14.7z" fill="#01D79C" ></path><path d="M199.1 192.3l627 0.1c-5.1-5-10.3-9.9-15.7-14.7l-595.6-0.1c-5.4 4.8-10.6 9.7-15.7 14.7z" fill="#02D79D" ></path><path d="M184.8 207l655.5 0.1c-4.7-5-9.4-9.9-14.3-14.7l-627-0.1c-4.8 4.8-9.6 9.7-14.2 14.7z" fill="#02D79E" ></path><path d="M171.7 221.6l681.6 0.1c-4.2-5-8.6-9.9-13-14.7H184.8c-4.5 4.8-8.8 9.6-13.1 14.6z" fill="#02D69F" ></path><path d="M159.7 236.3l705.6 0.1c-3.9-5-7.9-9.9-12-14.7l-681.6-0.1c-4.1 4.8-8.1 9.7-12 14.7z" fill="#02D6A0" ></path><path d="M148.7 250.9l727.6 0.1c-3.6-5-7.2-9.9-11-14.7l-705.6-0.1c-3.7 4.9-7.4 9.8-11 14.7z" fill="#02D6A1" ></path><path d="M138.6 265.6l747.8 0.1c-3.3-5-6.7-9.8-10.1-14.7l-727.6-0.1c-3.4 4.8-6.8 9.7-10.1 14.7z" fill="#02D5A2" ></path><path d="M129.3 280.2l766.4 0.2c-3-5-6.1-9.8-9.3-14.7l-747.8-0.1c-3.2 4.8-6.3 9.7-9.3 14.6z" fill="#02D5A3" ></path><path d="M120.8 294.9l783.4 0.2c-2.8-4.9-5.6-9.8-8.5-14.7l-766.4-0.2c-2.9 4.9-5.7 9.7-8.5 14.7z" fill="#02D5A4" ></path><path d="M113 309.5l799 0.2c-2.5-4.9-5.1-9.8-7.8-14.7l-783.4-0.2c-2.7 4.9-5.3 9.8-7.8 14.7z" fill="#03D4A5" ></path><path d="M105.9 324.2l813.2 0.2c-2.3-4.9-4.7-9.8-7.1-14.7l-799-0.2c-2.4 4.9-4.8 9.8-7.1 14.7z" fill="#03D4A6" ></path><path d="M99.4 338.8l826.2 0.2c-2.1-4.9-4.2-9.8-6.5-14.7l-813.2-0.2c-2.2 4.9-4.4 9.8-6.5 14.7z" fill="#03D4A7" ></path><path d="M93.6 353.5l837.9 0.2c-1.9-4.9-3.8-9.8-5.8-14.7l-826.2-0.2c-2.1 4.9-4.1 9.8-5.9 14.7z" fill="#03D4A8" ></path><path d="M88.3 368.2l848.4 0.2c-1.7-4.9-3.4-9.8-5.3-14.7l-837.9-0.2c-1.8 4.8-3.5 9.7-5.2 14.7z" fill="#03D3A9" ></path><path d="M83.6 382.8l857.8 0.2c-1.5-4.9-3-9.8-4.7-14.7l-848.4-0.2c-1.6 4.9-3.2 9.8-4.7 14.7z" fill="#03D3AA" ></path><path d="M79.5 397.5l866 0.2c-1.3-4.9-2.7-9.8-4.1-14.7l-857.8-0.2c-1.4 4.9-2.8 9.7-4.1 14.7z" fill="#03D3AB" ></path><path d="M75.9 412.1l873.2 0.2c-1.1-4.9-2.3-9.8-3.6-14.7l-866-0.2c-1.3 4.9-2.5 9.8-3.6 14.7z" fill="#04D2AC" ></path><path d="M72.8 426.8l879.4 0.2c-1-4.9-2-9.8-3.1-14.7l-873.2-0.2c-1.1 4.9-2.2 9.8-3.1 14.7z" fill="#04D2AD" ></path><path d="M70.2 441.4l884.6 0.2c-0.8-4.9-1.6-9.8-2.6-14.7l-879.4-0.2c-1 4.9-1.8 9.8-2.6 14.7z" fill="#04D2AE" ></path><path d="M68.1 456.1l888.7 0.2c-0.6-4.9-1.3-9.8-2.1-14.7l-884.6-0.2c-0.7 4.9-1.4 9.8-2 14.7z" fill="#04D1AF" ></path><path d="M66.5 470.7l891.9 0.2c-0.5-4.9-1-9.8-1.6-14.7L68.1 456c-0.6 4.9-1.1 9.8-1.6 14.7z" fill="#04D1B0" ></path><path d="M65.4 485.4l894.1 0.2c-0.3-4.9-0.7-9.8-1.1-14.6l-891.9-0.3c-0.4 4.9-0.8 9.8-1.1 14.7z" fill="#04D1B1" ></path><path d="M64.8 500l895.3 0.2c-0.1-4.9-0.3-9.8-0.6-14.6l-894.1-0.2c-0.3 4.9-0.5 9.7-0.6 14.6z" fill="#04D1B2" ></path><path d="M64.8 500c-0.1 4-0.2 8.1-0.2 12.2v2.5l895.6 0.2v-2.7c0-4-0.1-8-0.2-12" fill="#05D0B3" ></path><path d="M65 529.4l895 0.2c0.2-4.9 0.3-9.8 0.3-14.7l-895.6-0.2c0 4.9 0.1 9.8 0.3 14.7z" fill="#05D0B4" ></path><path d="M65.8 544l893.4 0.2c0.3-4.9 0.6-9.8 0.8-14.7l-895-0.2c0.1 5 0.4 9.8 0.8 14.7z" fill="#05D0B5" ></path><path d="M67 558.7l890.9 0.2c0.5-4.9 0.9-9.8 1.3-14.7L65.8 544c0.3 4.9 0.7 9.8 1.2 14.7z" fill="#05CFB6" ></path><path d="M68.8 573.3l887.4 0.2c0.7-4.9 1.2-9.8 1.8-14.7l-890.9-0.2c0.4 5 1 9.9 1.7 14.7z" fill="#05CFB7" ></path><path d="M71 588l882.9 0.2c0.8-4.9 1.6-9.7 2.3-14.7l-887.4-0.2c0.6 4.9 1.4 9.8 2.2 14.7z" fill="#05CFB8" ></path><path d="M73.8 602.6l877.4 0.2c1-4.9 1.9-9.7 2.8-14.7L71 588c0.9 4.9 1.8 9.8 2.8 14.6z" fill="#05CEB9" ></path><path d="M77 617.3l870.8 0.2c1.2-4.8 2.3-9.7 3.3-14.7l-877.4-0.2 3.3 14.7z" fill="#06CEBA" ></path><path d="M80.8 631.9l863.2 0.2c1.3-4.8 2.6-9.7 3.8-14.7L77 617.2c1.2 5 2.5 9.9 3.8 14.7z" fill="#06CEBB" ></path><path d="M85.1 646.6l854.6 0.2c1.5-4.8 3-9.7 4.3-14.7l-863.2-0.2c1.4 5 2.8 9.8 4.3 14.7z" fill="#06CEBD" ></path><path d="M90 661.2l844.8 0.2c1.7-4.8 3.3-9.7 4.9-14.7l-854.6-0.2c1.6 5 3.2 9.9 4.9 14.7z" fill="#06CDBE" ></path><path d="M95.5 675.9l833.9 0.2c1.9-4.8 3.7-9.7 5.5-14.7l-844.8-0.2c1.7 5 3.5 9.9 5.4 14.7z" fill="#06CDBF" ></path><path d="M101.6 690.6l821.8 0.2c2.1-4.8 4.1-9.7 6.1-14.7l-834-0.2c1.9 4.9 4 9.8 6.1 14.7z" fill="#06CDC0" ></path><path d="M108.2 705.2l808.4 0.2c2.3-4.8 4.5-9.7 6.7-14.7l-821.8-0.2c2.2 5 4.4 9.9 6.7 14.7z" fill="#06CCC1" ></path><path d="M115.6 719.9l793.7 0.2c2.5-4.8 5-9.7 7.3-14.7l-808.4-0.2c2.4 5 4.9 9.8 7.4 14.7z" fill="#07CCC2" ></path><path d="M123.6 734.5l777.6 0.2c2.8-4.8 5.5-9.7 8-14.7l-793.7-0.2c2.7 5 5.4 9.9 8.1 14.7z" fill="#07CCC3" ></path><path d="M132.4 749.2l760.1 0.2c3-4.8 5.9-9.7 8.8-14.7l-777.6-0.2c2.8 5 5.7 9.9 8.7 14.7z" fill="#07CBC4" ></path><path d="M142 763.8l740.9 0.2c3.3-4.8 6.5-9.7 9.6-14.7l-760.1-0.2c3.1 5 6.3 9.9 9.6 14.7z" fill="#07CBC5" ></path><path d="M152.4 778.5l720.1 0.2c3.6-4.8 7-9.7 10.4-14.7l-740.9-0.2c3.3 5 6.8 9.9 10.4 14.7z" fill="#07CBC6" ></path><path d="M163.7 793.2l697.4 0.1c3.9-4.8 7.7-9.7 11.3-14.7l-720.1-0.2c3.7 5.1 7.5 10 11.4 14.8z" fill="#07CBC7" ></path><path d="M176 807.8l672.7 0.1c4.2-4.8 8.3-9.7 12.4-14.7l-697.4-0.1c4 5 8.1 9.9 12.3 14.7z" fill="#07CAC8" ></path><path d="M189.5 822.5l645.8 0.1c4.6-4.8 9.1-9.7 13.5-14.7l-672.7-0.1c4.3 5 8.8 9.9 13.4 14.7z" fill="#08CAC9" ></path><path d="M204.3 837.1l616.3 0.1c5-4.8 10-9.7 14.8-14.7H189.5c4.8 5 9.7 9.9 14.8 14.6z" fill="#08CACA" ></path><path d="M220.5 851.8l583.8 0.1c5.5-4.8 10.9-9.6 16.2-14.7l-616.3-0.1c5.3 5 10.8 9.9 16.3 14.7z" fill="#08C9CB" ></path><path d="M238.4 866.4l547.9 0.1c6.1-4.7 12.1-9.6 18-14.7H220.5c5.8 5 11.8 9.9 17.9 14.6z" fill="#08C9CC" ></path><path d="M248.8 874.2l527.2 0.1c3.5-2.5 7-5.2 10.4-7.8l-547.9-0.1c3.3 2.7 6.8 5.3 10.3 7.8zM512.5 960.1c98.5 0 189.6-31.8 263.5-85.7l-527.2-0.1c74 53.9 165.1 85.8 263.7 85.8z" fill="#08C9CC" ></path><path d="M790.3 504.5C756.1 415.8 620.8 332 511.8 332c-115.8 0-238 75.6-278.3 172.1l-2.9 6.9 2.9 6.9C273.8 614.4 396 690 511.8 690c109 0 244.3-83.9 278.5-172.5l2.5-6.4-2.5-6.6zM511.8 622.1c-61.3 0-111.2-49.9-111.2-111.2 0-61.3 49.9-111.2 111.2-111.2S623 449.6 623 510.9c0 61.3-49.9 111.2-111.2 111.2z" fill="#FFFFFF" ></path><path d="M511.7 427.6c-45.9 0-83.2 37.4-83.2 83.3s37.3 83.3 83.2 83.3c45.9 0 83.3-37.3 83.3-83.3 0-45.9-37.4-83.3-83.3-83.3z m53.4 83.3c-6.6 0-11.9-5.3-11.9-11.9 0-13-10.6-23.7-23.7-23.7-6.6 0-11.9-5.3-11.9-11.9 0-6.6 5.3-11.9 11.9-11.9 26.2 0 47.5 21.3 47.5 47.5 0 6.5-5.3 11.9-11.9 11.9z" fill="#FFFFFF" ></path><path d="M517.6 502.7v-51.3h52.3c-15-14.7-35.6-23.8-58.2-23.8-14.9 0-28.8 3.9-40.9 10.8l46.8 64.3zM577 498.9v11.9h-53.5l44.6 61.2c16.5-15.2 26.9-37 26.9-61.2 0-19.4-6.7-37.3-17.9-51.5v39.6z" fill="#FFFFFF" ></path><path d="M577 498.9v-39.6c-2.2-2.8-4.6-5.5-7.1-7.9h-40.4c26.2 0 47.5 21.3 47.5 47.5zM565.1 510.9H577V499c0 6.5-5.3 11.9-11.9 11.9z" fill="#FFFFFF" ></path><path d="M553.2 498.9c0-13-10.6-23.7-23.7-23.7-6.6 0-11.9-5.3-11.9-11.9v39.4l4.1 5.6 1.9 2.5h41.6c-6.7 0.1-12-5.3-12-11.9zM529.5 451.4h-11.9v11.9c0-6.5 5.3-11.9 11.9-11.9zM517.6 502.7l4.1 5.6zM517.6 504.3v-1.6l-46.8-64.3c-0.3 0.2-0.6 0.3-0.8 0.5l47.6 65.4zM523.5 510.9h-1.2l45.1 61.9c0.2-0.2 0.5-0.4 0.7-0.7l-44.6-61.2zM523.5 510.9l-1.8-2.6z" fill="#FFFFFF" ></path><path d="M517.6 502.7v1.6l4.8 6.6h1.1l-1.8-2.6zM517.6 504.3l4.8 6.6-4.8-6.6z" fill="#FFFFFF" ></path><path d="M521.2 510.9l45.5 62.5c0.2-0.2 0.5-0.4 0.7-0.6l-45.1-61.9h-1.1zM517.6 504.3L470 438.9c-0.3 0.2-0.6 0.3-0.8 0.5l48.5 66.6v-1.7z" fill="#FDFFFF" ></path><path d="M517.6 506l3.6 4.9h1.2l-4.8-6.6z" fill="#FDFFFF" ></path><path d="M517.6 507.6V506l-48.5-66.6c-0.3 0.2-0.6 0.3-0.8 0.5l49.3 67.7zM521.2 510.9H520l46 63.1c0.2-0.2 0.5-0.4 0.7-0.6l-45.5-62.5zM517.6 506l3.6 4.9-3.6-4.9z" fill="#FCFFFE" ></path><path d="M517.6 507.6l0.6 0.8 1.8 2.5h1.2l-3.6-4.9zM517.6 507.6l0.6 0.8z" fill="#FCFFFE" ></path><path d="M520 510.9h-1.2l46.4 63.8c0.2-0.2 0.5-0.4 0.7-0.6L520 510.9zM517.6 507.6l-49.3-67.7c-0.3 0.2-0.5 0.3-0.8 0.5l50.1 68.8v-1.6zM520 510.9l-1.8-2.5z" fill="#FAFFFE" ></path><path d="M517.6 507.6v1.6l1.2 1.7h1.2l-1.8-2.5z" fill="#FAFFFE" ></path><path d="M518.8 510.9h-1.2l46.9 64.4c0.2-0.2 0.5-0.4 0.7-0.6l-46.4-63.8zM517.6 509.2l-50.1-68.8c-0.3 0.2-0.5 0.3-0.8 0.5l50.9 69.9v-1.6zM517.6 509.2l1.2 1.7-1.2-1.7z" fill="#F8FFFE" ></path><path d="M517.6 510.8v0.1h1.2l-1.2-1.7zM517.6 510.9v-0.1z" fill="#F8FFFE" ></path><path d="M517.6 510.9L466.7 441c-0.3 0.2-0.5 0.3-0.8 0.5l97.9 134.4c0.2-0.2 0.5-0.4 0.8-0.6l-47-64.4zM517.6 510.8zM517.6 510.8v0.1-0.1z" fill="#F6FEFD" ></path><path d="M465.1 442L563 576.4c0.3-0.2 0.5-0.4 0.8-0.6l-97.9-134.4c-0.3 0.2-0.6 0.4-0.8 0.6z" fill="#F5FEFD" ></path><path d="M464.3 442.5l98 134.5c0.3-0.2 0.5-0.4 0.8-0.6l-98-134.4c-0.3 0.1-0.5 0.3-0.8 0.5z" fill="#F3FEFD" ></path><path d="M463.5 443.1l98 134.5c0.3-0.2 0.5-0.4 0.8-0.6l-98-134.5c-0.3 0.2-0.5 0.4-0.8 0.6z" fill="#F1FEFC" ></path><path d="M462.7 443.6l98 134.5c0.3-0.2 0.5-0.4 0.8-0.6l-98-134.5c-0.2 0.3-0.5 0.4-0.8 0.6z" fill="#F0FEFC" ></path><path d="M462 444.2l98 134.5c0.3-0.2 0.5-0.4 0.8-0.6l-98-134.5c-0.3 0.2-0.6 0.4-0.8 0.6z" fill="#EEFEFC" ></path><path d="M461.2 444.8l98 134.5c0.3-0.2 0.5-0.4 0.8-0.6l-98-134.5c-0.3 0.2-0.5 0.4-0.8 0.6z" fill="#ECFEFB" ></path><path d="M460.4 445.4l97.9 134.5c0.3-0.2 0.5-0.4 0.8-0.6l-98-134.5c-0.2 0.2-0.4 0.4-0.7 0.6z" fill="#EAFEFB" ></path><path d="M459.7 446l97.9 134.4c0.3-0.2 0.5-0.3 0.8-0.5l-97.9-134.5c-0.3 0.2-0.6 0.4-0.8 0.6z" fill="#E9FEFB" ></path><path d="M458.9 446.5l97.8 134.3c0.3-0.2 0.5-0.3 0.8-0.5L459.7 446c-0.3 0.2-0.5 0.3-0.8 0.5z" fill="#E7FEFA" ></path><path d="M458.2 447.2L556 581.4c0.3-0.2 0.5-0.3 0.8-0.5L459 446.6c-0.3 0.2-0.5 0.4-0.8 0.6z" fill="#E5FDFA" ></path><path d="M457.5 447.8l97.7 134.1c0.3-0.2 0.5-0.3 0.8-0.5l-97.7-134.2c-0.3 0.2-0.6 0.4-0.8 0.6z" fill="#E4FDFA" ></path><path d="M456.8 448.4l97.6 134c0.3-0.2 0.6-0.3 0.8-0.5l-97.7-134.1c-0.3 0.2-0.5 0.4-0.7 0.6z" fill="#E2FDF9" ></path><path d="M456 449.1l97.5 133.8c0.3-0.2 0.6-0.3 0.8-0.5l-97.6-134-0.7 0.7z" fill="#E0FDF9" ></path><path d="M455.3 449.7l97.3 133.6c0.3-0.2 0.6-0.3 0.8-0.5L456 449.1c-0.2 0.2-0.4 0.4-0.7 0.6z" fill="#DEFDF9" ></path><path d="M454.6 450.4l97.2 133.5c0.3-0.2 0.6-0.3 0.8-0.5l-97.3-133.6c-0.2 0.1-0.4 0.4-0.7 0.6z" fill="#DDFDF8" ></path><path d="M453.9 451l97 133.3c0.3-0.2 0.6-0.3 0.8-0.5l-97.2-133.5c-0.1 0.3-0.3 0.5-0.6 0.7z" fill="#DBFDF8" ></path><path d="M453.2 451.7l96.9 133c0.3-0.1 0.6-0.3 0.9-0.4L454 451c-0.3 0.3-0.5 0.5-0.8 0.7z" fill="#D9FDF8" ></path><path d="M452.5 452.4l96.7 132.8c0.3-0.1 0.6-0.3 0.9-0.4l-96.9-133c-0.2 0.1-0.4 0.4-0.7 0.6z" fill="#D8FDF7" ></path><path d="M451.9 453.1l96.5 132.5c0.3-0.1 0.6-0.3 0.9-0.4l-96.7-132.8c-0.3 0.2-0.5 0.5-0.7 0.7z" fill="#D6FCF7" ></path><path d="M451.2 453.8l96.3 132.3c0.3-0.1 0.6-0.3 0.9-0.4l-96.5-132.5c-0.2 0.1-0.5 0.4-0.7 0.6z" fill="#D4FCF7" ></path><path d="M450.5 454.5l96.1 132c0.3-0.1 0.6-0.3 0.9-0.4l-96.3-132.3c-0.2 0.2-0.4 0.5-0.7 0.7z" fill="#D2FCF6" ></path><path d="M449.9 455.2l95.9 131.6c0.3-0.1 0.6-0.3 0.9-0.4l-96.1-132c-0.3 0.3-0.5 0.6-0.7 0.8z" fill="#D1FCF6" ></path><path d="M449.2 456l95.6 131.3c0.3-0.1 0.6-0.3 0.9-0.4l-95.9-131.6c-0.1 0.2-0.4 0.4-0.6 0.7z" fill="#CFFCF6" ></path><path d="M448.6 456.7l95.4 131c0.3-0.1 0.6-0.3 0.9-0.4L449.2 456c-0.2 0.2-0.4 0.5-0.6 0.7z" fill="#CDFCF5" ></path><path d="M447.9 457.5L543 588c0.3-0.1 0.6-0.2 0.9-0.4l-95.4-131c-0.1 0.4-0.3 0.6-0.6 0.9z" fill="#CCFCF5" ></path><path d="M447.3 458.2l94.8 130.2c0.3-0.1 0.6-0.2 0.9-0.4l-95.1-130.6c-0.2 0.3-0.4 0.6-0.6 0.8z" fill="#CAFCF5" ></path><path d="M446.7 459l94.5 129.8c0.3-0.1 0.6-0.2 0.9-0.4l-94.8-130.2c-0.2 0.3-0.4 0.5-0.6 0.8z" fill="#C8FCF4" ></path><path d="M446.1 459.8l94.2 129.3c0.3-0.1 0.6-0.2 0.9-0.4L446.7 459c-0.2 0.2-0.4 0.5-0.6 0.8z" fill="#C6FCF4" ></path><path d="M445.5 460.6l93.9 128.9 0.9-0.3-94.2-129.3c-0.2 0.1-0.4 0.4-0.6 0.7z" fill="#C5FBF4" ></path><path d="M444.9 461.3l93.5 128.4 0.9-0.3-93.9-128.9c-0.1 0.3-0.3 0.6-0.5 0.8z" fill="#C3FBF3" ></path><path d="M444.3 462.2l93.2 127.9 0.9-0.3-93.5-128.4c-0.2 0.2-0.4 0.5-0.6 0.8z" fill="#C1FBF3" ></path><path d="M443.7 463l92.8 127.4 0.9-0.3-93.2-127.9c-0.1 0.2-0.3 0.5-0.5 0.8z" fill="#C0FBF3" ></path><path d="M443.1 463.8l92.4 126.9c0.3-0.1 0.7-0.2 1-0.3L443.7 463c-0.2 0.3-0.4 0.5-0.6 0.8z" fill="#BEFBF2" ></path><path d="M442.5 464.6l92 126.3c0.3-0.1 0.7-0.2 1-0.3l-92.4-126.9c-0.2 0.4-0.4 0.7-0.6 0.9z" fill="#BCFBF2" ></path><path d="M442 465.5l91.6 125.7c0.3-0.1 0.7-0.2 1-0.3l-92-126.3c-0.3 0.3-0.4 0.6-0.6 0.9z" fill="#BAFBF2" ></path><path d="M441.4 466.4l91.1 125.1c0.3-0.1 0.7-0.2 1-0.3L442 465.5l-0.6 0.9z" fill="#B9FBF2" ></path><path d="M440.9 467.2l90.7 124.5c0.3-0.1 0.7-0.2 1-0.2l-91.1-125.1c-0.3 0.3-0.5 0.5-0.6 0.8z" fill="#B7FBF1" ></path><path d="M440.3 468.1L530.5 592c0.3-0.1 0.7-0.2 1-0.2l-90.7-124.5c-0.1 0.2-0.3 0.5-0.5 0.8z" fill="#B5FAF1" ></path><path d="M439.8 469l89.7 123.2c0.3-0.1 0.7-0.2 1-0.2l-90.2-123.9c-0.2 0.3-0.3 0.6-0.5 0.9z" fill="#B3FAF1" ></path><path d="M439.3 469.9l89.2 122.5c0.3-0.1 0.7-0.2 1-0.2L439.8 469c-0.2 0.3-0.3 0.6-0.5 0.9z" fill="#B2FAF0" ></path><path d="M438.8 470.8l88.7 121.8c0.3-0.1 0.7-0.1 1-0.2l-89.2-122.5c-0.2 0.3-0.4 0.6-0.5 0.9z" fill="#B0FAF0" ></path><path d="M438.3 471.8l88.2 121.1c0.3-0.1 0.7-0.1 1-0.2l-88.7-121.8c-0.2 0.3-0.4 0.6-0.5 0.9z" fill="#AEFAF0" ></path><path d="M437.8 472.7L525.4 593c0.4-0.1 0.7-0.1 1-0.2l-88.2-121.1c-0.1 0.4-0.3 0.7-0.4 1z" fill="#ADFAEF" ></path><path d="M437.3 473.7l87 119.5c0.4-0.1 0.7-0.1 1-0.2l-87.6-120.3c-0.1 0.4-0.3 0.7-0.4 1z" fill="#ABFAEF" ></path><path d="M436.8 474.6l86.4 118.7c0.4-0.1 0.7-0.1 1.1-0.1l-87-119.5c-0.2 0.3-0.4 0.6-0.5 0.9z" fill="#A9FAEF" ></path><path d="M436.3 475.6l85.8 117.8c0.4 0 0.7-0.1 1.1-0.1l-86.4-118.7c-0.2 0.4-0.3 0.7-0.5 1z" fill="#A7FAEE" ></path><path d="M435.9 476.6l85.2 117c0.4 0 0.7-0.1 1.1-0.1l-85.8-117.8c-0.2 0.3-0.4 0.6-0.5 0.9z" fill="#A6F9EE" ></path><path d="M435.4 477.6L520 593.7c0.4 0 0.7-0.1 1.1-0.1l-85.2-117c-0.2 0.4-0.3 0.7-0.5 1z" fill="#A4F9EE" ></path><path d="M435 478.6l83.9 115.2c0.4 0 0.7 0 1.1-0.1l-84.6-116.1c-0.1 0.4-0.3 0.7-0.4 1z" fill="#A2F9ED" ></path><path d="M434.6 479.7l83.2 114.2c0.4 0 0.7-0.1 1.1-0.1L435 478.6c-0.2 0.4-0.3 0.8-0.4 1.1z" fill="#A1F9ED" ></path><path d="M434.1 480.8L516.6 594c0.4 0 0.7-0.1 1.1-0.1l-83.2-114.2c-0.1 0.4-0.2 0.7-0.4 1.1z" fill="#9FF9ED" ></path><path d="M433.7 481.8l81.8 112.3c0.4 0 0.8 0 1.1-0.1l-82.5-113.2c-0.1 0.3-0.2 0.7-0.4 1z" fill="#9DF9EC" ></path><path d="M433.3 482.9l81 111.2h1.2l-81.8-112.3c-0.1 0.4-0.2 0.7-0.4 1.1z" fill="#9BF9EC" ></path><path d="M433 484l80.2 110.1h1.2l-81-111.2c-0.2 0.4-0.3 0.7-0.4 1.1z" fill="#9AF9EC" ></path><path d="M432.6 485.1l79.4 109h1.2L433 484c-0.2 0.4-0.3 0.7-0.4 1.1z" fill="#98F9EB" ></path><path d="M432.2 486.2l78.6 107.9h1.2l-79.4-109c-0.1 0.4-0.3 0.7-0.4 1.1z" fill="#96F9EB" ></path><path d="M431.9 487.4l77.7 106.7h1.2l-78.6-107.9-0.3 1.2z" fill="#95F8EB" ></path><path d="M431.5 488.6l76.8 105.5h1.2l-77.7-106.7c0 0.4-0.2 0.8-0.3 1.2z" fill="#93F8EA" ></path><path d="M431.2 489.7l76 104.3h1.2l-76.8-105.5c-0.2 0.4-0.3 0.8-0.4 1.2z" fill="#91F8EA" ></path><path d="M430.9 490.9l75 103c0.4 0 0.8 0.1 1.3 0.1l-76-104.3-0.3 1.2z" fill="#8FF8EA" ></path><path d="M430.6 492.2l74 101.7c0.4 0 0.8 0.1 1.3 0.1l-75-103c-0.1 0.3-0.2 0.8-0.3 1.2z" fill="#8EF8E9" ></path><path d="M430.3 493.4l73.1 100.3c0.4 0 0.8 0.1 1.3 0.1l-74-101.7c-0.2 0.5-0.3 0.9-0.4 1.3z" fill="#8CF8E9" ></path><path d="M430.1 494.7l72 98.9c0.4 0 0.9 0.1 1.3 0.2l-73.1-100.3c-0.1 0.3-0.1 0.7-0.2 1.2z" fill="#8AF8E9" ></path><path d="M429.8 496l71 97.4c0.4 0.1 0.9 0.1 1.3 0.2l-72-98.9c-0.1 0.4-0.2 0.8-0.3 1.3z" fill="#89F8E8" ></path><path d="M429.6 497.3l69.9 96c0.4 0.1 0.9 0.1 1.3 0.2l-71-97.4c0 0.3-0.1 0.7-0.2 1.2z" fill="#87F8E8" ></path><path d="M429.4 498.6l68.8 94.4c0.4 0.1 0.9 0.2 1.3 0.2l-69.9-96c-0.1 0.5-0.2 1-0.2 1.4z" fill="#85F7E8" ></path><path d="M429.2 500l67.6 92.8c0.5 0.1 0.9 0.2 1.4 0.2l-68.8-94.4c-0.1 0.5-0.1 0.9-0.2 1.4z" fill="#83F7E7" ></path><path d="M429 501.4l66.4 91.2c0.5 0.1 0.9 0.2 1.4 0.2L429.2 500c-0.1 0.4-0.1 0.9-0.2 1.4z" fill="#82F7E7" ></path><path d="M428.9 502.8l65.2 89.5c0.5 0.1 0.9 0.2 1.4 0.3L429 501.4c0 0.4-0.1 0.9-0.1 1.4z" fill="#80F7E7" ></path><path d="M428.8 504.2l63.9 87.7c0.5 0.1 0.9 0.2 1.4 0.3l-65.2-89.5c-0.1 0.6-0.1 1.1-0.1 1.5z" fill="#7EF7E6" ></path><path d="M428.6 505.7l62.5 85.9c0.5 0.1 0.9 0.2 1.4 0.3l-63.9-87.7c0.1 0.5 0.1 1 0 1.5z" fill="#7CF7E6" ></path><path d="M428.6 507.2l61.1 84c0.5 0.1 1 0.3 1.5 0.4l-62.5-85.9c-0.1 0.5-0.1 1-0.1 1.5z" fill="#7BF7E6" ></path><path d="M428.5 508.8l59.7 82c0.5 0.1 1 0.3 1.5 0.4l-61.1-84c-0.1 0.5-0.1 1.1-0.1 1.6z" fill="#79F7E5" ></path><path d="M428.5 510.4l58.2 79.9c0.5 0.2 1 0.3 1.5 0.4l-59.7-82v1.7z" fill="#77F7E5" ></path><path d="M428.5 510.9v1.1l56.6 77.8c0.5 0.2 1 0.4 1.6 0.5l-58.2-79.9v0.5z" fill="#76F7E5" ></path><path d="M428.5 513.7l55 75.6c0.5 0.2 1 0.4 1.6 0.5L428.5 512v1.7z" fill="#74F6E4" ></path><path d="M428.6 515.4l53.3 73.2c0.5 0.2 1.1 0.4 1.6 0.6l-55-75.6c0.1 0.7 0.1 1.2 0.1 1.8z" fill="#72F6E4" ></path><path d="M428.7 517.2l51.5 70.8c0.6 0.2 1.1 0.4 1.7 0.7l-53.3-73.2c0 0.5 0.1 1.1 0.1 1.7z" fill="#70F6E4" ></path><path d="M428.9 519l49.7 68.2c0.6 0.2 1.1 0.5 1.7 0.7l-51.5-70.8c0 0.7 0 1.3 0.1 1.9z" fill="#6FF6E3" ></path><path d="M429.1 521l47.7 65.5c0.6 0.3 1.2 0.5 1.8 0.8L428.9 519c0 0.7 0.1 1.3 0.2 2z" fill="#6DF6E3" ></path><path d="M476.8 586.5L429.1 521c3.5 29.1 22.1 53.6 47.7 65.5z" fill="#6DF6E3" ></path></symbol><symbol id="icon-reply" viewBox="0 0 1024 1024"><path d="M512 0C229.259636 0 0 229.236364 0 512s229.236364 512 512 512c109.381818 0 210.501818-34.536727 293.701818-92.974545l167.121455 41.774545-41.774546-167.121455A509.137455 509.137455 0 0 0 1024 512C1024 229.236364 794.786909 0 512 0m0 947.2C271.662545 947.2 76.8 752.337455 76.8 512S271.662545 76.8 512 76.8c240.384 0 435.223273 194.862545 435.223273 435.2a433.338182 433.338182 0 0 1-103.424 281.297455l25.041454 77.91709-76.8-26.274909A433.221818 433.221818 0 0 1 512 947.2" ></path><path d="M308.363636 525.568m-60.113454 0a60.113455 60.113455 0 1 0 120.226909 0 60.113455 60.113455 0 1 0-120.226909 0Z" ></path><path d="M517.818182 525.568m-60.113455 0a60.113455 60.113455 0 1 0 120.226909 0 60.113455 60.113455 0 1 0-120.226909 0Z" ></path><path d="M727.272727 525.568m-60.113454 0a60.113455 60.113455 0 1 0 120.226909 0 60.113455 60.113455 0 1 0-120.226909 0Z" ></path></symbol><symbol id="icon-comment" viewBox="0 0 1024 1024"><path d="M113.834667 291.84v449.194667a29.013333 29.013333 0 0 0 28.842666 29.013333h252.928v90.453333l160.597334-90.453333h252.928a29.013333 29.013333 0 0 0 29.013333-29.013333V291.84a29.013333 29.013333 0 0 0-29.013333-29.013333h-665.6a29.013333 29.013333 0 0 0-29.696 29.013333z" fill="#FFDEAD" ></path><path d="M809.130667 262.826667h-665.6a29.013333 29.013333 0 0 0-28.842667 29.013333v40.106667a29.013333 29.013333 0 0 1 28.842667-29.013334h665.6a29.013333 29.013333 0 0 1 29.013333 29.013334V291.84a29.013333 29.013333 0 0 0-29.013333-29.013333z" fill="#FFF3DB" ></path><path d="M556.202667 770.048h252.928a29.013333 29.013333 0 0 0 29.013333-29.013333V362.837333s-59.733333 392.533333-724.309333 314.709334v63.488a29.013333 29.013333 0 0 0 28.842666 29.013333h253.098667v90.453333z" fill="#F2C182" ></path><path d="M619.008 632.32l101.888-35.157333-131.754667-76.117334 29.866667 111.274667zM891.904 148.992a61.44 61.44 0 0 0-84.138667 22.528l-19.968 34.133333 106.666667 61.610667 19.968-34.133333a61.781333 61.781333 0 0 0-22.528-84.138667z" fill="#69BAF9" ></path><path d="M775.338667 198.775467l131.669333 76.032-186.026667 322.218666-131.6864-76.032z" fill="#F7FBFF" ></path><path d="M775.168 198.826667l-5.290667 9.216 59.221334 34.133333a34.133333 34.133333 0 0 1 12.458666 46.592l-139.946666 242.346667a34.133333 34.133333 0 0 1-46.762667 12.629333l-59.050667-34.133333-6.656 11.434666 88.746667 51.2L720.896 597.333333l186.026667-322.56z" fill="#D8E3F0" ></path><path d="M616.448 622.592l2.56 9.728 101.888-35.157333-44.885333-25.941334-59.562667 51.370667zM891.904 148.992c-1.024 0-2.218667-0.853333-3.242667-1.536A61.610667 61.610667 0 0 1 887.466667 204.8l-19.968 34.133333-73.728-42.496-5.12 8.704 106.666666 61.610667 19.968-34.133333a61.781333 61.781333 0 0 0-23.381333-83.626667z" fill="#599ED4" ></path><path d="M265.898667 417.621333H494.933333a17.066667 17.066667 0 1 0 0-34.133333H265.898667a17.066667 17.066667 0 1 0 0 34.133333zM265.898667 533.504H494.933333a17.066667 17.066667 0 0 0 0-34.133333H265.898667a17.066667 17.066667 0 0 0 0 34.133333z" fill="#3D3D63" ></path><path d="M959.488 354.645333a99.84 99.84 0 0 0-23.722667-127.488 78.677333 78.677333 0 0 0-142.848-64.170666l-11.605333 20.138666a17.066667 17.066667 0 0 0-20.821333 7.168l-32.085334 55.466667H142.677333a46.250667 46.250667 0 0 0-45.909333 46.08v449.194667a46.08 46.08 0 0 0 45.909333 46.08h236.032v73.386666a17.066667 17.066667 0 0 0 8.362667 14.848 17.066667 17.066667 0 0 0 8.704 2.218667 17.066667 17.066667 0 0 0 8.362667-2.218667l156.672-88.234666h248.32a46.08 46.08 0 0 0 46.08-46.08V398.677333L921.6 283.306667a17.066667 17.066667 0 0 0-4.266667-21.504l1.877334-3.413334a65.365333 65.365333 0 0 1 10.410666 79.189334l-53.077333 91.989333a56.832 56.832 0 0 0 20.821333 77.653333 17.066667 17.066667 0 0 0 24.234667-6.314666 17.066667 17.066667 0 0 0-6.997333-23.04 23.04 23.04 0 0 1-8.362667-31.061334z m-138.410667 386.389334a11.946667 11.946667 0 0 1-11.946666 11.946666H556.202667a17.066667 17.066667 0 0 0-8.362667 2.218667l-134.997333 76.117333v-61.269333a17.066667 17.066667 0 0 0-17.066667-17.066667H142.677333a11.946667 11.946667 0 0 1-11.776-11.946666V291.84a11.946667 11.946667 0 0 1 11.776-11.946667h565.930667L574.464 512a17.066667 17.066667 0 0 0-1.706667 12.970667L597.333333 615.253333H265.898667a17.066667 17.066667 0 1 0 0 34.133334h352.938666a17.066667 17.066667 0 0 0 5.802667 0l102.4-35.328a17.066667 17.066667 0 0 0 9.216-7.509334l85.333333-147.968z m-204.8-184.661334l63.829334 36.864-49.322667 17.066667z m206.848-170.666666v1.365333l-108.373333 186.709333-102.4-59.050666L781.482667 221.866667l102.4 59.050666z m76.458667-161.28L887.466667 244.224l-76.970667-44.373333 11.264-19.797334a44.544 44.544 0 1 1 77.141333 44.544z" fill="#3D3D63" ></path></symbol><symbol id="icon-wetchat" viewBox="0 0 1024 1024"><path d="M650.9 443.59c108.15 0 195.82 80.32 195.82 179.41 0 38.51-13.25 74.17-35.79 103.4l40.92 80.6-100.17-30.22a208.34 208.34 0 0 1-100.78 25.64c-108.15 0-195.82-80.33-195.82-179.42s87.67-179.41 195.82-179.41z" fill="#FDD668" ></path><path d="M598.8 590.15c0.08-19.87-14.7-35.26-33.92-35.32-19-0.07-34.67 15.76-34.7 35s15.5 35.41 34.27 35.49c19.03 0.05 34.27-15.54 34.35-35.17z m109.36 0.62c0.37 19.56 16 35 35 34.51 18.73-0.45 34.08-16.94 33.61-36.11s-16.32-34.82-35.2-34.42-33.77 16.25-33.41 36.02zM356.31 392.79c0.08-19.88-14.7-35.27-33.93-35.33-18.95-0.06-34.66 15.76-34.69 35s15.49 35.41 34.27 35.49c19.04 0.05 34.27-15.54 34.35-35.16z m109.36 0.61c0.36 19.56 16 35 35 34.51 18.73-0.45 34.08-16.94 33.61-36.11s-16.33-34.82-35.2-34.42c-19.08 0.4-33.77 16.28-33.41 36.02z" ></path><path d="M894.64 785.26l-28.26-55.69A214 214 0 0 0 894.72 623c0-107.34-80.25-197.34-187.67-221.09-3.41-25.37-16.85-57.18-19-62.1C653.83 261.53 533.7 177.7 409.48 177.7c-174.18 0-315.87 130.75-315.87 291.46 0 55.89 17 109.65 49.28 156.37L63.14 782.61l193.59-58.39c59.8 30.49 129.41 42.18 197.88 33.11 44.42 56.32 115.75 93.09 196.3 93.09a258.38 258.38 0 0 0 105-22.21L838 853l107.47 32.4zM270.86 677.37L262 672.5l-105.23 31.73 42.43-83.61-9.25-12c-31.62-41-48.34-89.26-48.34-139.46 0-134.24 120.16-243.46 267.87-243.46 100.91 0 207.07 70.41 234.6 133.35 2.62 6 8.26 23 12.26 36.79-1.82 0-3.61-0.25-5.43-0.25-134.46 0-243.83 102-243.83 227.41a213.23 213.23 0 0 0 19.37 88.79c-54.59 3.13-108.98-8.74-155.59-34.42z m480.81 99.41a208.29 208.29 0 0 1-100.76 25.64c-108.16 0-195.83-80.33-195.83-179.42s87.67-179.41 195.83-179.41S846.72 523.91 846.72 623c0 38.51-13.25 74.17-35.78 103.4l40.9 80.6z" ></path></symbol><symbol id="icon-message" viewBox="0 0 1024 1024"><path d="M914.23744 216.27904c0 75.74528-61.39904 137.14432-137.14432 137.14432H685.6704c-42.88512 0-80.68096-20.09088-105.8304-50.92352-41.60512 12.58496-91.68896 12.4416-153.21088-10.02496 68.4544 5.74464 94.43328 2.26304 130.65216-29.37856-5.35552-14.67392-8.74496-30.30016-8.74496-46.81728 0-75.74528 61.39904-137.14432 137.14432-137.14432h91.42272c75.73504 0 137.13408 61.39904 137.13408 137.14432zM304.72192 109.60896a91.42272 91.42272 0 1 1 0 182.85568 91.42272 91.42272 0 0 1 0-182.85568z m60.94848 213.32992a538.4704 538.4704 0 0 1-36.608 133.41696c0.95232-52.31616-9.10336-102.94272-9.10336-102.94272s15.23712-16.15872 15.23712-30.47424h-60.94848c0 14.31552 15.23712 30.47424 15.23712 30.47424s-10.0864 50.71872-9.10336 103.09632a540.08832 540.08832 0 0 1-36.608-133.57056c-30.47424 0-121.89696 0-121.89696 91.42272V536.2688c0 91.42272 60.94848 91.42272 60.94848 91.42272v274.2784a60.94848 60.94848 0 0 0 121.89696 0 60.94848 60.94848 0 0 0 121.89696 0V627.69152s60.94848 0 60.94848-91.42272V414.3616c0.01024-91.42272-91.41248-91.42272-121.89696-91.42272z m441.89696-152.3712h-152.3712c-8.42752 0-15.23712 6.8096-15.23712 15.23712s6.8096 15.23712 15.23712 15.23712h152.38144a15.22688 15.22688 0 1 0-0.01024-30.47424z m0 60.94848h-152.3712c-8.42752 0-15.23712 6.8096-15.23712 15.23712s6.8096 15.23712 15.23712 15.23712h152.38144a15.23712 15.23712 0 1 0-0.01024-30.47424z" fill="#333333" ></path></symbol><symbol id="icon-me" viewBox="0 0 1024 1024"><path d="M690.49344 296.66304c-4.83328-0.74752-9.65632 0-14.29504 1.50528 1.56672-29.48096 2.31424-61.02016 0.24576-84.41856-3.51232-37.87776-26.83904-78.01856-48.97792-94.19776-35.24608-25.58976-89.74336-37.376-110.31552-37.376-20.44928 0-75.06944 11.78624-110.25408 37.376-22.20032 16.1792-45.4656 56.32-48.91648 94.19776-2.12992 23.3984-1.3824 54.9376 0.18432 84.41856-4.63872-1.50528-9.46176-2.26304-14.35648-1.50528-14.17216 2.12992-23.9616 16.25088-16.9984 50.61632 6.90176 34.42688 16.93696 57.26208 33.87392 55.94112 1.00352-0.06144 1.56672-0.44032 2.5088-0.62464 5.59104 43.71456 48.7936 112.88576 86.23104 137.59488 9.53344 13.35296 36.31104 24.5248 67.7376 23.58272 31.42656 0.94208 58.32704-10.21952 67.7376-23.58272 37.56032-24.70912 80.65024-93.88032 86.23104-137.59488 0.94208 0.18432 1.50528 0.5632 2.5088 0.62464 16.9984 1.32096 27.0336-21.51424 33.87392-55.94112 7.00416-34.37568-2.77504-48.4864-17.01888-50.61632zM806.144 660.16256c-64.1536-32.11264-160.55296-64.21504-160.55296-64.21504-11.47904 70.99392-42.1376 153.40544-84.92032 225.14688a1344.64512 1344.64512 0 0 0-11.34592-122.4192c10.84416-17.05984 17.94048-31.10912 22.51776-42.27072 5.38624-13.60896-4.25984-28.34432-18.56512-28.34432h-72.12032c-14.42816 0-23.90016 14.92992-18.56512 28.34432 4.57728 11.1616 11.66336 25.21088 22.51776 42.27072-6.27712 44.40064-9.59488 86.29248-11.4176 122.4192-42.77248-71.61856-73.50272-154.15296-84.97152-225.14688 0 0-96.32768 32.11264-160.55296 64.21504-64.1536 32.11264-96.32768 75.25376-96.32768 160.55296v48.16896a80.2816 80.2816 0 0 0 80.34304 80.27136h609.95584a80.2816 80.2816 0 0 0 80.34304-80.27136v-48.16896c-0.01024-85.2992-32.18432-128.45056-96.33792-160.55296z" fill="#333333" ></path></symbol><symbol id="icon-user03" viewBox="0 0 1024 1024"><path d="M512 0c281.6 0 512 230.4 512 512s-230.4 512-512 512-512-230.4-512-512 230.4-512 512-512z m115.2 505.6c44.8-38.4 76.8-89.6 76.8-153.6 0-108.8-83.2-192-192-192s-192 83.2-192 192c0 64 32 115.2 76.8 153.6-102.4 44.8-172.8 147.2-172.8 262.4 0 19.2 12.8 32 32 32s32-12.8 32-32c0-121.6 102.4-224 224-224s224 102.4 224 224c0 19.2 12.8 32 32 32s32-12.8 32-32c0-115.2-70.4-217.6-172.8-262.4zM512 480c-70.4 0-128-57.6-128-128s57.6-128 128-128 128 57.6 128 128-57.6 128-128 128z" ></path></symbol><symbol id="icon-user02" viewBox="0 0 1024 1024"><path d="M956.696128 512.75827c0 245.270123-199.054545 444.137403-444.615287 444.137403-245.538229 0-444.522166-198.868303-444.522166-444.137403 0-188.264804 117.181863-349.108073 282.675034-413.747255 50.002834-20.171412 104.631012-31.311123 161.858388-31.311123 57.297984 0 111.87909 11.128455 161.928996 31.311123C839.504032 163.650197 956.696128 324.494489 956.696128 512.75827L956.696128 512.75827M341.214289 419.091984c0 74.846662 38.349423 139.64855 94.097098 171.367973 23.119557 13.155624 49.151443 20.742417 76.769454 20.742417 26.64894 0 51.773154-7.096628 74.286913-19.355837 57.06467-31.113625 96.650247-96.707552 96.650247-172.742273 0-105.867166-76.664054-192.039781-170.936137-192.039781C417.867086 227.053226 341.214289 313.226864 341.214289 419.091984L341.214289 419.091984M513.886977 928.114163c129.883139 0 245.746984-59.732429 321.688583-153.211451-8.971325-73.739445-80.824817-136.51314-182.517917-167.825286-38.407752 34.55091-87.478354 55.340399-140.989081 55.340399-54.698786 0-104.770182-21.907962-143.55144-57.96211-98.921987 28.234041-171.379229 85.823668-188.368158 154.831344C255.507278 861.657588 376.965537 928.114163 513.886977 928.114163L513.886977 928.114163M513.886977 928.114163 513.886977 928.114163z" ></path></symbol><symbol id="icon-label01" viewBox="0 0 1024 1024"><path d="M719.36 131.072l11.264 122.368c1.536 14.336 14.336 25.088 28.672 24.064 14.336-1.536 25.088-14.336 24.064-28.672l-11.264-122.368-52.736 4.608z" fill="#425768" ></path><path d="M930.816 219.648l-329.728 0.512L532.48 365.568V965.12h467.456V365.568z" fill="#87C596" ></path><path d="M761.344 647.168c-3.584-1.024-7.168-2.56-10.752-4.608-3.584-1.536-10.24-5.12-19.968-10.752s-17.408-11.776-23.04-18.944c-5.632-7.168-10.24-14.336-13.312-22.016-3.072-7.68-4.096-15.872-3.584-25.088 0.512-15.36 4.608-26.624 12.288-34.816 7.68-8.192 14.848-14.336 22.528-18.432 7.68-4.096 14.848-7.168 22.528-8.704l13.312-3.072V488.448h16.896v12.8c4.608 0 8.192 0.512 10.752 0.512 3.072 0 6.144 1.024 10.24 1.536 4.096 1.024 11.264 2.56 20.992 5.632 9.728 2.56 17.92 8.192 24.576 15.872s9.728 14.848 9.728 20.992c0 6.656-3.072 12.8-8.704 17.408-5.632 5.12-12.288 7.168-19.456 7.68-7.68 0-13.824-2.048-18.944-7.168-5.12-4.608-7.68-10.24-7.168-16.384 0-5.12 2.048-9.728 5.632-14.336 3.584-4.096 5.632-6.656 5.632-7.68 0-2.048-3.072-4.096-8.704-6.656s-10.752-4.096-14.848-4.608l-10.24-1.024v94.208c8.192 3.072 17.408 6.656 27.136 10.24s18.944 7.168 27.136 11.264c8.192 4.096 15.872 10.24 22.528 18.944 6.656 8.704 10.24 17.92 10.24 27.648 0 9.728-1.536 18.944-4.096 27.136-3.072 8.192-7.168 15.36-12.8 21.504-5.632 6.144-11.776 10.752-18.944 14.336-6.656 3.072-13.824 6.144-20.992 7.68s-14.336 3.584-21.504 4.096l-9.216 1.024v14.336h-16.896v-14.336c-5.632-1.024-10.752-1.536-14.336-2.56-4.096-1.024-8.704-2.048-13.824-4.096-5.12-2.048-10.24-4.096-14.336-6.144s-8.704-5.12-13.312-8.192c-4.608-3.584-9.216-7.68-13.312-13.824s-6.656-11.264-6.656-17.408c0-6.144 1.024-11.264 2.56-15.36 2.048-4.608 5.12-8.192 9.216-10.752s8.704-3.584 14.848-3.584c6.656 0 11.776 2.048 15.872 5.12 4.096 3.072 6.656 7.168 6.656 11.264 0.512 4.096 0 7.68-1.024 9.728-1.024 2.048-2.56 3.584-4.096 5.12l-8.192 5.12c-2.048 1.536-3.584 3.072-4.608 5.12-1.024 2.048 1.536 6.144 7.168 11.776 4.096 4.096 8.704 7.68 13.312 9.728s8.704 4.096 11.776 4.096l11.776 2.048V647.168z m0-132.608c-4.096 1.024-7.68 2.048-11.264 3.072-3.584 1.024-7.68 3.072-11.264 6.144-4.096 3.072-7.68 7.168-10.752 13.312-3.072 5.632-4.608 12.288-4.096 18.944 0 9.728 2.56 17.408 7.68 23.552s11.776 11.264 19.968 15.36l9.728 5.12V514.56z m16.384 225.28c5.632-1.024 12.288-2.048 20.48-4.096 7.68-2.048 14.336-6.656 19.456-13.824 5.12-7.168 7.68-14.848 7.68-23.552 0-8.704-1.536-15.36-5.12-19.968s-8.192-8.704-14.848-12.288c-6.144-3.584-12.8-6.144-18.944-8.704l-9.216-3.584v86.016z" fill="#FFFFFF" ></path><path d="M830.464 296.448l-253.952-210.432-145.92 68.096-382.976 461.824 359.936 298.496 382.976-461.824z" fill="#87C596" ></path><path d="M644.096 263.168m-30.208 0a30.208 30.208 0 1 0 60.416 0 30.208 30.208 0 1 0-60.416 0Z" fill="#528963" ></path><path d="M719.36 131.072l-78.848 94.72c-9.216 11.264-7.68 27.648 3.584 37.376 11.264 9.216 27.648 7.68 37.376-3.584l78.848-94.72-40.96-33.792z" fill="#425768" ></path><path d="M427.008 517.12c-2.048-3.072-3.584-6.656-5.632-10.24-2.048-3.584-4.608-10.752-8.192-20.992-3.584-10.24-5.632-19.968-5.632-29.184 0-9.216 1.536-17.408 4.096-25.088 2.56-7.68 7.168-14.848 13.312-21.504 10.24-11.264 20.992-17.408 31.744-18.944 10.752-1.536 20.48-1.536 29.184 0 8.192 1.536 15.872 4.096 22.528 7.68l12.288 6.144 7.68-9.728 12.8 10.752-8.192 9.728c3.584 3.072 6.144 5.12 8.192 7.168 2.048 2.048 4.608 4.608 7.168 7.68 2.56 3.072 6.656 9.216 12.8 17.408s8.704 17.92 8.704 28.16-2.048 17.92-5.632 22.528c-4.608 5.12-10.24 7.68-17.92 8.192-7.168 0.512-13.824-2.048-19.968-6.656-6.144-4.608-9.216-10.752-10.24-17.408-1.024-6.656 1.024-12.8 5.12-17.408 3.584-4.096 7.68-6.656 13.312-7.168 5.632-1.024 8.704-1.536 9.216-2.56 1.024-1.536 0.512-5.12-2.56-10.24-2.56-5.632-5.632-9.728-8.704-13.312L525.312 424.96 465.408 496.64c4.096 7.68 9.216 15.872 14.336 25.088 5.12 9.216 9.728 17.92 13.824 26.112 3.584 8.192 5.632 17.92 5.12 29.184-0.512 11.264-3.584 20.48-9.728 28.16s-12.8 13.824-20.48 17.92c-7.68 4.608-15.36 7.168-23.552 8.704-8.192 1.024-16.384 0.512-23.552-1.024-7.168-2.048-14.336-4.096-21.504-7.168-6.656-3.072-13.312-6.656-18.944-10.752l-7.68-5.12-9.216 11.264-12.8-10.752 9.216-11.264c-4.096-4.096-7.168-8.192-9.728-11.264-2.56-3.072-5.12-7.168-7.68-12.288s-5.12-9.728-7.168-13.824c-2.048-4.608-3.584-9.728-4.608-14.848-1.536-5.632-2.048-11.776-1.536-18.944s2.048-13.312 5.632-17.92c3.584-4.608 7.68-8.192 11.776-10.24 4.608-2.048 9.216-3.072 13.824-2.56 4.608 0.512 9.216 2.56 13.824 6.656 5.12 4.096 8.192 9.216 9.216 14.336 1.024 5.12 0.512 9.728-2.048 13.312s-4.608 5.632-7.168 7.168c-2.048 1.024-4.096 1.536-6.656 1.024l-9.216-1.536c-2.56 0-4.608 0-7.168 1.024-2.048 1.024-3.072 5.632-2.048 13.824 0.512 5.632 2.048 11.264 4.096 16.384s4.096 8.704 6.656 10.752l7.68 9.216L427.008 517.12z m-46.592 81.92c5.12 3.072 11.264 6.144 18.432 9.728s15.36 4.096 24.064 2.048c8.704-2.048 15.36-6.656 20.992-12.8 5.632-6.656 8.704-12.8 8.704-18.944 0.512-6.144-1.024-12.288-3.584-18.944-2.56-6.656-5.632-12.8-8.704-18.944l-4.608-8.704-55.296 66.56z m131.072-184.32c-3.584-1.536-7.168-3.584-10.752-4.608-3.584-1.536-7.68-2.048-12.8-2.56-5.12 0-10.752 1.024-16.384 3.584-6.144 2.56-11.264 6.656-15.36 11.776-6.144 7.68-9.216 15.36-8.704 23.04 0 7.68 2.048 15.872 5.632 24.576l4.096 10.24L511.488 414.72z" fill="#FFFFFF" ></path></symbol><symbol id="icon-recommend" viewBox="0 0 1024 1024"><path d="M524.288 106.496C472.064 106.496 430.08 144.896 430.08 192.512c0 122.88 94.208 299.52 94.208 299.52s94.208-177.664 94.208-299.52c-0.512-47.104-42.496-86.016-94.208-86.016M201.728 389.12C296.448 464.896 491.52 502.272 491.52 502.272S412.672 321.024 317.952 245.248c-36.864-29.696-92.672-20.992-124.928 18.432-31.744 39.424-27.648 95.744 8.704 125.44m562.688-101.888c6.144-4.608 13.824-7.168 21.504-7.168 14.336 0 28.672 7.68 38.912 20.48 15.872 20.48 14.336 48.128-3.072 61.44-45.568 34.304-119.296 59.392-178.176 75.776 32.768-54.784 76.8-117.76 120.832-150.528m84.992 111.104c37.888-28.16 43.008-84.48 11.776-125.44-18.944-25.088-47.616-38.4-75.264-38.4-17.408 0-34.816 5.12-49.152 16.384-97.792 73.728-181.76 253.44-181.76 253.44S752.64 471.04 849.408 398.336m21.504 117.248c-117.248-27.136-307.2 22.528-307.2 22.528s149.504 128 265.728 155.136c45.568 10.752 91.648-20.48 103.424-69.632 10.752-49.152-16.384-97.28-61.952-108.032m-333.312 41.984s-5.632 202.24 48.64 312.32c20.992 43.008 76.288 59.392 123.904 36.352 47.104-23.04 67.584-76.288 46.592-119.296-55.296-110.592-219.136-229.376-219.136-229.376m-245.76 228.864c-20.48 43.008 0.512 96.256 47.616 118.784 47.104 22.528 101.888 5.632 123.392-37.376 53.76-111.104 46.08-312.32 46.08-312.32s-163.84 120.832-217.088 230.912M174.08 510.464c-47.616 10.752-76.8 60.928-65.024 112.64 11.776 51.2 59.904 83.968 108.032 73.728 122.88-28.16 278.528-160.768 278.528-160.768s-199.168-53.76-321.536-25.6" fill="#FF6A00" ></path></symbol><symbol id="icon-date" viewBox="0 0 1024 1024"><path d="M521.9 92c132.957 0 251.507 61.844 328.48 158.462l2.32 2.938 56.4-44.1c5.137-4.05 12.715-0.488 12.993 5.963l0.007 0.237-0.8 180.9c0 5.016-4.74 8.775-9.654 7.755l-0.246-0.055-175.6-43c-6.417-1.58-8.253-9.786-3.2-13.94l0.2-0.16 60.2-47c-8.6-11-17.9-21.5-27.8-31.4-31.6-31.7-68.4-56.5-109.3-73.8-42.3-17.9-87.3-27-133.8-27-46.4 0-91.5 9.1-133.8 27-40.9 17.4-77.7 42.2-109.3 73.8-31.6 31.6-56.4 68.4-73.7 109.4-17.9 42.4-27 87.4-27 133.9s9.1 91.5 27 133.9c17.3 41 42.1 77.8 73.7 109.4 31.6 31.7 68.4 56.5 109.3 73.8 42.3 17.9 87.3 27 133.8 27 46.4 0 91.5-9.1 133.8-27 40.9-17.4 77.7-42.2 109.3-73.8 31.6-31.6 56.4-68.4 73.7-109.4 2.1-4.9 4.1-9.9 5.9-14.9 0.108-0.296 0.232-0.581 0.37-0.856C849.385 613.353 864.5 601 882.5 601c21.263 0 38.5 17.237 38.5 38.5a38.32 38.32 0 0 1-6.188 20.94C854.787 819.158 701.492 932 521.9 932 289.8 932 101.7 743.7 102 511.5 102.3 279.5 290 92 521.9 92zM514 280c17.673 0 32 14.327 32 32v225.126l126.248 88.4c14.477 10.137 17.996 30.09 7.859 44.567-10.137 14.477-30.09 17.996-44.568 7.859l-127.787-89.478a32.114 32.114 0 0 1-5.258-4.605C490.506 579.249 482 567.618 482 554V312c0-17.673 14.327-32 32-32z" ></path></symbol><symbol id="icon-hot" viewBox="0 0 1024 1024"><path d="M236.8512 392.0384s-34.304 179.9168 93.1328 274.9952c62.7712-112.4352 164.7104-137.5232 164.7104-137.5232s60.1088 183.1936 162.0992 208.7424c88.8832-39.8336 198.656-137.0112 218.2656-212.6336 14.1824 107.52 71.936 237.9264-232.6528 397.5168-86.1184-70.0416-166.0416-185.7536-172.544-228.7616-13.5168 116.5824-9.1648 207.7184 31.3856 248.3712-87.6032 14.4896-276.7872-65.3312-332.544-221.4912s68.1472-329.216 68.1472-329.216z" fill="#ffa115" ></path><path d="M791.04 327.7824a30.68928 30.68928 0 0 0-23.1424-10.5472h-0.1024c-8.9088 0-17.3568 3.9424-23.1936 10.7008l-5.4272 6.2976c-11.3152 13.2096-20.7872 24.2176-29.5424 33.8944 4.0448-24.7296 4.7616-51.9168-1.024-80.9984-16.64-83.5584-80.7936-159.7952-196.1472-233.0624-8.0384-5.12-18.0224-6.1952-26.9312-2.9184-8.96 3.2256-15.872 10.4448-18.7904 19.5584-0.3584 1.024-36.6592 111.616-159.1296 214.4768-140.5952 118.1184-201.216 197.4784-188.672 355.3792 13.056 164.0448 158.5664 332.8512 379.6992 332.8512h2.7648c10.7008-0.0512 20.6336-5.7344 26.1632-14.9504s5.8368-20.6336 0.8192-30.1056c-27.4432-52.1728-39.936-88.0128-41.8304-125.5936 33.8432 61.184 79.9744 120.32 143.4112 148.3776 6.7584 3.0208 14.3872 3.4304 21.4528 1.28 40.1408-12.3392 212.2752-97.024 258.048-257.536 32.9728-115.5072-6.8608-239.0528-118.4256-367.104z m59.3408 350.3104c-34.9184 122.4192-162.2016 193.1776-206.336 211.6608-54.3232-29.2864-100.9152-95.5392-145.7152-206.848a30.67392 30.67392 0 0 0-30.8224-19.1488 30.6688 30.6688 0 0 0-27.5456 23.6544c-20.5824 88.064-22.8352 141.9776 10.9568 221.44-158.5664-21.6064-260.8128-148.992-270.6944-273.1008-10.3424-129.8944 34.7648-192.4096 166.912-303.4624 92.5696-77.824 140.9024-159.9488 162.8672-206.08 188.6208 132.4544 143.9744 238.1312 113.9712 309.1968-2.2016 5.1712-4.2496 10.0864-6.144 14.7456a30.76096 30.76096 0 0 0 8.96 35.2256c10.3424 8.5504 25.0368 9.3184 36.3008 2.048 49.2544-32.0512 71.2704-53.9648 104.3456-91.904 79.7184 101.12 107.6224 196.0448 82.944 282.5728z" fill="#474A54" ></path><path d="M429.4144 330.496c-0.5632 0.512-57.8048 53.4016-117.1968 107.6224-65.536 59.8016-105.8304 187.2896-58.9824 274.5856a30.63296 30.63296 0 0 0 27.0848 16.1792c4.9152 0 9.8816-1.1776 14.4896-3.6352 14.9504-8.0384 20.5312-26.6752 12.544-41.6256-29.2352-54.4768-6.7584-151.7056 46.2848-200.1408C413.1328 429.1584 470.528 376.1664 471.0912 375.6032a30.78656 30.78656 0 0 0 1.7408-43.4176 30.74048 30.74048 0 0 0-43.4176-1.6896z" fill="#474A54" ></path></symbol><symbol id="icon-label" viewBox="0 0 1024 1024"><path d="M943.45 208.26L815.74 80.55a56.508 56.508 0 0 0-44.89-16.33L560.48 82.68a56.478 56.478 0 0 0-35.01 16.33L80.55 543.93c-22.07 22.07-22.07 57.84 0 79.9l319.62 319.62c22.07 22.07 57.84 22.07 79.9 0l444.92-444.92a56.503 56.503 0 0 0 16.33-35.01l18.46-210.37a56.508 56.508 0 0 0-16.33-44.89z" fill="#8C9EFF" ></path><path d="M739.76 284.24m-84 0a84 84 0 1 0 168 0 84 84 0 1 0-168 0Z" fill="#FFFFFF" ></path><path d="M440.04 792m-28 0a28 28 0 1 0 56 0 28 28 0 1 0-56 0Z" fill="#FFD600" ></path></symbol><symbol id="icon-browse" viewBox="0 0 1024 1024"><path d="M997 435.6c-28.2-36.7-65.4-81.4-107.4-122.2-54.6-53.2-110.5-95.6-166.1-126.3-71.2-39.2-142-59.1-210.7-59.1s-139.6 19.9-210.7 59.1c-55.5 30.7-111.4 73.1-166.1 126.3-42 40.8-79.3 85.5-107.5 122.1-34.8 45.3-34.8 107.8 0 153.1 28.2 36.7 65.4 81.4 107.4 122.2C190.5 764 246.5 806.4 302 837.1c71.2 39.2 142.1 59.1 210.7 59.1 68.7 0 139.6-19.9 210.8-59 55.5-30.7 111.4-73.1 166.1-126.3 42-40.8 79.3-85.6 107.4-122.2 34.8-45.3 34.8-107.8 0-153.1z m-37.3 99c-66.2 89-243.8 299-446.8 299-57.5 0-117.7-17.1-179-50.8-50.5-27.7-101.7-66.6-152.2-115.6-51.1-49.5-91-99.5-115.7-132.6-10-13.5-10-31.6 0-44.9 66.1-89 243.7-299 446.8-299 57.5 0 117.6 17.1 179 50.8 50.5 27.7 101.7 66.6 152.2 115.6 51.1 49.5 91 99.5 115.7 132.6 9.9 13.4 9.9 31.6 0 44.9z" ></path><path d="M512 321.7c-105.7 0-191.6 86-191.6 191.6 0 105.7 86 191.6 191.6 191.6s191.6-86 191.6-191.6c0-105.7-86-191.6-191.6-191.6z m0 319.2c-70.3 0-127.6-57.2-127.6-127.6S441.7 385.7 512 385.7s127.6 57.2 127.6 127.6S582.3 640.9 512 640.9z" ></path></symbol><symbol id="icon-like" viewBox="0 0 1024 1024"><path d="M598.354747 67.542626c-48.148687 0-90.130101 32.905051-98.960808 79.437576 0 0-14.312727 72.882424-21.798787 99.090101-12.308687 43.196768-55.363232 90.944646-86.522829 106.188283-23.531313 11.636364-110.99798 11.765657-116.350707 11.765656H155.707475c-32.762828 0-59.384242 26.479192-59.384243 59.384243v475.022222c0 32.762828 26.479192 59.384242 59.384243 59.384242h548.033939c88.126061 0 163.025455-64.452525 176.135758-151.647676l45.873131-305.713132c10.834747-71.809293-44.8-136.274747-117.423838-136.274747H673.254141s20.066263-66.469495 30.228687-178.669899c5.081212-56.837172-35.167677-110.99798-94.280404-117.152323-3.620202-0.54303-7.227475-0.814545-10.847677-0.814546zM333.705051 898.288485V421.533737c38.917172-2.534141 66.999596-8.016162 83.574949-16.316767 43.726869-21.669495 99.633131-81.040808 117.281616-143.088485 7.899798-27.681616 21.39798-96.155152 23.001212-104.184243 3.47798-17.92 20.596364-31.159596 40.649697-31.159596 1.603232 0 3.206465 0.129293 4.822627 0.271516 28.211717 2.947879 43.326061 29.698586 41.32202 52.686868-9.360808 103.912727-27.823838 166.503434-28.082425 166.904243l-23.130505 76.489697h215.182223c17.519192 0 33.564444 7.356768 45.071515 20.596363 11.507071 13.239596 16.316768 30.228687 13.640404 47.618586L821.294545 797.052121c-8.830707 58.569697-58.181818 101.094141-117.423838 101.094142h-370.165656v0.142222z m-177.997576 0v-475.022222h118.626262v475.022222H155.707475z m0 0" ></path></symbol></svg>',i=(i=document.getElementsByTagName("script"))[i.length-1].getAttribute("data-injectcss"),d=function(l,a){a.parentNode.insertBefore(l,a)};if(i&&!l.__iconfont__svg__cssinject__){l.__iconfont__svg__cssinject__=!0;try{document.write("<style>.svgfont {display: inline-block;width: 1em;height: 1em;fill: currentColor;vertical-align: -0.1em;font-size:16px;}</style>")}catch(l){console&&console.log(l)}}function z(){p||(p=!0,t())}function M(){try{c.documentElement.doScroll("left")}catch(l){return void setTimeout(M,50)}z()}a=function(){var l,a;(a=document.createElement("div")).innerHTML=F,F=null,(l=a.getElementsByTagName("svg")[0])&&(l.setAttribute("aria-hidden","true"),l.style.position="absolute",l.style.width=0,l.style.height=0,l.style.overflow="hidden",a=l,(l=document.body).firstChild?d(a,l.firstChild):l.appendChild(a))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(a,0):(h=function(){document.removeEventListener("DOMContentLoaded",h,!1),a()},document.addEventListener("DOMContentLoaded",h,!1)):document.attachEvent&&(t=a,c=l.document,p=!1,M(),c.onreadystatechange=function(){"complete"==c.readyState&&(c.onreadystatechange=null,z())})}(window);
\ No newline at end of file
import axios from 'axios';
import qs from 'qs';
import { Message } from 'element-ui';
axios.defaults.withCredentials = true;
// 发送时
axios.interceptors.request.use(
(config) => config,
(err) => Promise.reject(err)
);
// 响应时
axios.interceptors.response.use(
(response) => response,
(err) => Promise.resolve(err.response)
);
// 检查状态码
function checkStatus(res) {
// console.log("log status =>", res);
if (res.status === 200 || res.status === 304) {
return res.data;
}
return {
code: 0,
msg: res.data.msg || res.statusText,
data: res.statusText,
};
}
// 检查CODE值
function checkCode(res) {
// console.log("log code =>", res);
if (res.code === 0) {
Message({
message: res.msg,
type: 'error',
duration: 2 * 1000,
});
throw new Error(res.msg);
}
return res;
}
const prefix = '/client_api';
export default {
get(url, params) {
if (!url) return;
return axios({
method: 'get',
url: prefix + url,
params,
timeout: 30000,
})
.then(checkStatus)
.then(checkCode);
},
post(url, data) {
if (!url) return;
return axios({
method: 'post',
url: prefix + url,
data: qs.stringify(data),
timeout: 30000,
})
.then(checkStatus)
.then(checkCode);
},
};
<template>
<div class="detail-content" v-loading="loading">
<div class="detail-body">
<div class="detail-title">{{ blogInfo.title }}</div>
<div class="detail-func">
<div class="func-icon">
<Icon name="icon-date02"></Icon>
<div class="box-text">
{{ blogInfo.releaseTime | formatTime("yyyy-MM-dd") }}
</div>
</div>
<div class="func-icon">
<Icon name="icon-browse02"></Icon>
<div class="box-text">{{ blogInfo.pv | formatNumber() }}</div>
</div>
<div class="func-icon" v-if="blogInfo.auth">
<Icon name="icon-laborer"></Icon>
<div class="box-text">
{{ blogInfo.auth }}
</div>
</div>
</div>
<div class="detail-main fmt" v-html="blogHtml"></div>
<div class="detail-label">
标签:
<div
class="box-text label-text"
:style="{ backgroundColor: getLabelColor(label) }"
v-for="label in blogInfo.type"
@click="$router.push(`/label/${label}`)"
:key="label"
>
{{ label }}
</div>
</div>
<div class="detail-page" v-if="count > 2">
<div class="page-common page-pre" @click="goto(preInfo._id)">
上一篇&nbsp;&nbsp;&nbsp;&nbsp;<span> {{ preInfo.title }}</span>
</div>
<div class="page-common page-next" @click="goto(nextInfo._id)">
<span>{{ nextInfo.title }}</span
>&nbsp;&nbsp;&nbsp;&nbsp;下一篇
</div>
</div>
</div>
</div>
</template>
<script>
import { apiGetBlogList, apiUpdatePV } from "api/blog";
import label from "src/mixins/label";
export default {
name: "detailContent",
mixins: [label],
components: {},
props: {},
computed: {},
data() {
return {
loading: false,
blogHtml: "",
id: "",
blogInfo: {},
preInfo: {},
nextInfo: {},
query: {},
pageindex: 1,
pagesize: 8,
currentIndex: 0,
count: 0,
};
},
watch: {
$route: {
handler(to, from) {
this.id = to.params.id;
this.query = to.query;
this.updatePV();
this.getBlogList();
},
deep: true,
immediate: true,
},
},
created() {},
mounted() {},
beforeDestroy() {},
methods: {
goto(id) {
this.$router.push({ path: `/article/detail/${id}`, query: this.query });
},
getBlogList() {
this.loading = true;
return apiGetBlogList(this.query)
.then((res) => {
let { list } = res.data;
this.count = list.length;
this.blogInfo = list.filter((item, index) => {
if (item._id === this.id) {
this.currentIndex = index;
return item;
}
})[0];
this.blogHtml = this.blogInfo.html.replace(
/<a /gi,
`<a target='_blank'`
);
let preIndex = !this.currentIndex
? list.length - 1
: this.currentIndex - 1;
let nextIndex =
this.currentIndex === list.length - 1 ? 0 : this.currentIndex + 1;
this.preInfo = list[preIndex];
this.nextInfo = list[nextIndex];
})
.catch((err) => {
console.log(err);
})
.finally(() => {
this.loading = false;
});
},
updatePV() {
return apiUpdatePV({ _id: this.id })
.then((res) => {})
.catch((err) => {
console.log(err);
})
.finally(() => {});
},
},
};
</script>
<style lang="less" scoped>
.detail-content {
width: 70%;
background-color: #fff;
margin-top: 20px;
padding: 24px;
.detail-body {
.detail-title {
display: block;
font-size: 24px;
font-weight: bold;
text-align: center;
color: rgb(51, 51, 51);
}
.detail-func {
display: flex;
justify-content: center;
align-items: center;
padding: 20px 0 30px;
position: relative;
&::after {
content: "";
height: 1px;
width: 100%;
background-color: @cuttingLineColor;
position: absolute;
bottom: 20px;
}
.func-icon {
color: @assistColor;
display: flex;
align-items: center;
margin-right: 24px;
.box-text {
padding-left: 6px;
position: relative;
top: 1px;
}
}
}
.detail-main {
margin-bottom: 50px;
}
.detail-label {
display: flex;
align-items: center;
margin-bottom: 24px;
color: @assistColor;
svg {
font-size: 18px;
}
.box-text {
padding-left: 6px;
position: relative;
top: 2px;
}
.label-text {
padding: 4px 10px;
color: #fff;
margin-left: 8px;
border-radius: 12px;
font-size: 14px;
top: 0;
cursor: pointer;
&:hover {
border-radius: 0;
transition: 1s ease all;
}
}
}
.detail-page {
display: flex;
align-items: center;
padding-top: 24px;
position: relative;
&::before {
content: "";
height: 1px;
width: 100%;
background-color: @cuttingLineColor;
position: absolute;
top: 0;
}
.page-common {
color: @assistColor;
position: relative;
cursor: pointer;
display: flex;
align-items: center;
span {
color: @mainColor;
font-weight: bold;
font-size: 20px;
max-width: 220px;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
}
}
.page-pre {
padding-left: 16px;
flex: 1;
&::before {
content: "";
width: 10px;
height: 10px;
border-left: 1px solid @assistColor;
border-bottom: 1px solid @assistColor;
transform: rotate(45deg);
position: absolute;
top: 3px;
left: 0;
}
}
.page-next {
text-align: right;
padding-right: 16px;
&::after {
content: "";
width: 10px;
height: 10px;
border-right: 1px solid @assistColor;
border-top: 1px solid @assistColor;
transform: rotate(45deg);
position: absolute;
top: 3px;
right: 0;
}
}
}
}
}
</style>
<template>
<div class="home-wrapper">
<div class="home-body">
<router-view></router-view>
<div class="side-wrapper">
<side-article :sideClassify="BROWSE_STATUS"></side-article>
<side-article
:sideClassify="RECOMMEND_STATUS"
:class="{ 'side-sticky': showSide && showSticky }"
></side-article>
<label-classify
:class="[showSide && showSticky ? 'label-sticky' : 'side-sticky']"
></label-classify>
</div>
</div>
</div>
</template>
<script>
import SideArticle from "components/sideArticle";
import { BROWSE_STATUS, RECOMMEND_STATUS } from "src/constant/side";
import DetailContent from "./components/detailContent";
import LabelClassify from "components/labelClassify";
export default {
name: "labelComponent",
components: {
SideArticle,
DetailContent,
LabelClassify,
},
props: {},
computed: {},
data() {
return {
BROWSE_STATUS,
RECOMMEND_STATUS,
scrollTop: 0,
showSticky: false,
showSide: true,
};
},
watch: {},
created() { },
mounted() {
const clientHeight = document.documentElement.clientHeight;
this.showSide = clientHeight > 840; // 840 = 665 + 170(label分类高度) + 之间间距
window.addEventListener("scroll", this.handleScroll);
},
beforeDestroy() {
window.removeEventListener("scroll", this.handleScroll);
},
methods: {
handleScroll() {
this.scrollTop =
document.documentElement.scrollTop || document.body.scrollTop;
this.showSticky = this.scrollTop > 665; // 665是一个side-article组件的高度
},
},
};
</script>
<style lang="less" scoped>
.side-sticky {
position: sticky;
top: 0;
}
.label-sticky {
position: sticky;
top: 665px;
}
</style>
<template>
<div class="blog-wrapper" v-loading="loading">
<div class="blog-list" v-if="total > 0">
<div v-for="item in blogList" :key="item._id" class="list-item">
<div class="item-content">
<div class="item-img">
<img v-lazy="item.fileCoverImgUrl" @click="goto(item._id)" />
</div>
<div class="content-box">
<div class="content-title" @click="goto(item._id)">
{{ item.title }}
</div>
<div class="content-desc">
{{ item.desc }}
</div>
</div>
</div>
<div class="item-footer">
<div class="item-func">
<div class="func-box">
<Icon name="icon-date02"></Icon>
<div class="box-text">
{{ item.releaseTime | formatTime("yyyy-MM-dd") }}
</div>
</div>
<div
class="func-box likes"
:class="{ 'icon-likes': getLikesColor(item._id) }"
@click="handleLikes(item._id)"
>
<Icon name="icon-like02"></Icon>
<div class="box-text">
{{ getLikesNumber(item._id, item.likes) | formatNumber() }}
</div>
</div>
<div class="func-box">
<Icon name="icon-browse02"></Icon>
<div class="box-text">{{ item.pv | formatNumber() }}</div>
</div>
<div class="func-box">
<Icon name="icon-label01"></Icon>
<div
class="box-text label-text"
:style="{ backgroundColor: getLabelColor(label) }"
v-for="label in item.type"
@click="$router.push(`/label/${label}`)"
:key="label"
>
{{ label }}
</div>
</div>
</div>
<div class="item-read" @click="goto(item._id)">阅读全文>></div>
</div>
</div>
</div>
<NoneData v-else-if="!total"></NoneData>
<Paging
:page-index="pageindex"
:total="total"
:page-size="pagesize"
@change="pageChange"
></Paging>
</div>
</template>
<script>
import { apiGetBlogList } from "api/blog";
import like from "src/mixins/like";
import label from "src/mixins/label";
export default {
mixins: [like, label],
data() {
return {
loading: false,
blogList: [],
pageindex: 1,
pagesize: 8,
total: -1,
};
},
computed: {},
watch: {},
created() {
this.getBlogList();
},
mounted() {
},
methods: {
goto(id) {
this.$router.push({
path: `/article/detail/${id}`,
query: {
pageindex: this.pageindex,
pagesize: this.pagesize,
},
});
},
pageChange(page) {
this.pageindex = page;
document.documentElement.scrollTop = document.body.scrollTop = 0;
this.getBlogList();
},
getBlogList() {
let params = {
pageindex: this.pageindex,
pagesize: this.pagesize,
};
this.loading = true;
return apiGetBlogList(params)
.then((res) => {
let { list, total } = res.data;
this.blogList = list;
this.total = total;
})
.catch((err) => {
console.log(err);
})
.finally(() => {
this.loading = false;
});
},
},
};
</script>
<style lang="less" scoped>
.blog-wrapper {
width: 70%;
margin-top: 20px;
.blog-list {
margin-bottom: 30px;
.list-item {
padding: 20px;
border-radius: 12px;
background-color: #fff;
margin-bottom: 16px;
position: relative;
transition: box-shadow 0.4s;
box-shadow: 0px 5px 15px 0px rgba(0, 0, 0, 0.08);
&:hover {
box-shadow: 5px 15px 30px 5px rgba(0, 0, 0, 0.15);
}
&:hover .item-content .content-box .content-title {
color: green;
}
&:hover img {
transform: scale(1.2);
}
.item-content {
display: flex;
align-items: flex-start;
.item-img {
width: 240px;
height: 160px;
margin-right: 16px;
overflow: hidden;
img {
width: 100%;
border-radius: 6px;
height: 100%;
object-fit: cover;
cursor: pointer;
transition: all 0.4s linear;
}
}
.content-box {
flex: 1;
.content-title {
color: @thinColor;
font-size: 24px;
font-weight: bold;
margin-bottom: 10px;
&:hover {
cursor: pointer;
}
.ellipsis-line-clamp();
}
.content-desc {
color: @assistColor;
line-height: 28px;
.ellipsis-line-clamp(4);
}
}
}
.item-footer {
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 24px;
.item-func {
display: flex;
align-items: center;
.func-box {
display: flex;
align-items: center;
padding-right: 24px;
color: @assistColor;
svg {
font-size: 18px;
}
.box-text {
padding-left: 6px;
position: relative;
top: 2px;
}
.label-text {
padding: 4px 10px;
color: #fff;
margin-left: 8px;
border-radius: 12px;
font-size: 14px;
top: 0;
cursor: pointer;
&:hover {
border-radius: 0;
transition: 1s ease all;
}
}
}
.likes {
&:hover {
cursor: pointer;
}
}
.icon-likes {
color: #dfa400;
}
}
.item-read {
color: @thinHighlightColor;
&:hover {
cursor: pointer;
}
}
}
}
}
}
</style>
\ No newline at end of file
<template>
<div class="blog-classify" v-loading="loading">
<div class="list-title">
<Icon name="icon-label01"></Icon>
<span v-html="getTitle"></span>
</div>
<div class="blog-list" v-if="total > 0">
<div class="list-item" v-for="item in blogList" :key="item._id">
<div class="item-img">
<img v-lazy="item.fileCoverImgUrl" @click="goto(item._id)" />
</div>
<div class="item-title" v-html="getKeywordHighlight(item.title)"></div>
<div class="item-desc" v-html="getKeywordHighlight(item.desc)"></div>
<div class="item-label">
<div class="label-title">标签:</div>
<div class="label-box">
<div
class="box-text label-text"
:style="{ backgroundColor: getLabelColor(label) }"
v-for="label in item.type"
@click="$router.push(`/label/${label}`)"
:key="label"
>
{{ label }}
</div>
</div>
</div>
<div class="item-footer">
<div class="footer-text" @click="goto(item._id)">+ 文章阅读</div>
<div class="footer-box">
<div
class="footer-icon likes"
@click="handleLikes(item._id)"
:class="{ 'icon-likes': getLikesColor(item._id) }"
>
<Icon name="icon-like02"></Icon>
<div class="box-text">
{{ getLikesNumber(item._id, item.likes) | formatNumber() }}
</div>
</div>
<div class="footer-icon">
<Icon name="icon-browse02"></Icon>
<div class="box-text">{{ item.pv | formatNumber() }}</div>
</div>
</div>
</div>
</div>
</div>
<NoneData v-else-if="!total"></NoneData>
<Paging
:page-index="pageindex"
:total="total"
:page-size="pagesize"
@change="pageChange"
></Paging>
</div>
</template>
<script>
import { apiGetBlogList } from "api/blog";
import like from "src/mixins/like";
import label from "src/mixins/label";
export default {
name: "blogClassify",
components: {},
props: {},
mixins: [like, label],
computed: {
getTitle({ isQuery, keyword, total }) {
return keyword
? `${isQuery ? "搜索关键词" : "标签分类"}
“<font color="#f75353"> ${keyword} </font>” 的结果,共${total}篇`
: `全部文章,共${total}篇`;
},
// 当选择标签分类时,不展示高亮
getKeywordHighlight({ isQuery, keyword }) {
return (value) =>
isQuery && value.includes(keyword)
? value.replace(
new RegExp(keyword, "g"),
`<font color="#f75353">${keyword}</font>`
)
: value;
},
},
data() {
return {
loading: false,
blogList: [],
pageindex: 1,
pagesize: 6,
total: -1,
isQuery: "", // 用来区分是搜索框、标签搜索场景
keyword: "",
};
},
watch: {
$route: {
handler(to, from) {
this.isQuery = to.query.search;
this.keyword = to.params.keyword;
this.keyword = this.keyword === "all" ? "" : this.keyword;
this.getBlogList();
},
deep: true,
immediate: true,
},
},
created() {
document.documentElement.scrollTop = document.body.scrollTop = 0;
},
mounted() { },
beforeDestroy() { },
methods: {
goto(id) {
this.$router.push({
path: `/article/detail/${id}`,
query: {
keyword: this.keyword,
pageindex: this.pageindex,
pagesize: this.pagesize,
},
});
},
pageChange(page) {
this.pageindex = page;
document.documentElement.scrollTop = document.body.scrollTop = 0;
this.getBlogList();
},
getBlogList() {
let params = {
keyword: this.keyword,
isQuery: this.isQuery,
pageindex: this.pageindex,
pagesize: this.pagesize,
};
this.loading = true;
return apiGetBlogList(params)
.then((res) => {
let { list, total } = res.data;
this.blogList = list;
this.total = total;
})
.catch((err) => {
console.log(err);
})
.finally(() => {
this.loading = false;
});
},
},
};
</script>
<style lang="less" scoped>
.blog-classify {
width: 70%;
background-color: #fff;
margin-top: 20px;
padding-bottom: 30px;
.list-title {
color: @mainColor;
border-bottom: 1px solid #e5e5e5;
padding: 20px 10px;
background-color: #f7f7f7;
font-size: 18px;
position: relative;
&::after {
content: " ";
position: absolute;
height: 2px;
width: 4%;
left: 0;
bottom: -1px;
background: @mainColor;
transition: 2s ease all;
}
&:hover {
&::after {
width: 100%;
}
}
span {
margin-left: 6px;
letter-spacing: 1px;
}
}
.blog-list {
display: flex;
flex-wrap: wrap;
padding: 20px 24px 40px;
.list-item {
width: 33.3%;
height: 384px;
padding: 20px;
border-bottom: 1px solid #eee;
border-left: 1px solid #eee;
position: relative;
transition: box-shadow 0.4s;
box-shadow: 0px 5px 15px 0px rgba(0, 0, 0, 0.08);
&:hover {
box-shadow: 5px 15px 30px 5px rgba(0, 0, 0, 0.15);
}
&:hover img {
transform: scale(1.2);
}
&:hover .item-footer .footer-text {
color: green;
}
.item-img {
height: 160px;
overflow: hidden;
cursor: pointer;
img {
width: 100%;
height: 100%;
object-fit: cover;
cursor: pointer;
border-radius: 4px;
transition: all 0.5s ease;
}
}
.item-title {
display: block;
width: 100%;
color: @thinColor;
line-height: 24px;
margin: 14px 0 6px;
font-weight: bold;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.item-desc {
color: @assistColor;
line-height: 22px;
font-size: 14px;
.ellipsis-line-clamp(3);
}
.item-label {
display: flex;
align-items: center;
position: absolute;
max-width: 220px;
bottom: 54px;
color: @assistColor;
.label-title {
min-width: 48px;
}
.label-box {
flex: 1;
display: flex;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
.box-text {
padding-left: 6px;
position: relative;
top: 2px;
}
.label-text {
padding: 4px 8px;
color: #fff;
margin-right: 8px;
border-radius: 12px;
font-size: 12px;
top: 0;
cursor: pointer;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
&:last-child {
margin-right: 0;
}
&:hover {
border-radius: 0;
transition: 1s ease all;
}
}
}
}
.item-footer {
display: flex;
justify-content: space-between;
align-items: center;
position: absolute;
left: 20px;
bottom: 20px;
width: 84%;
.footer-text {
color: @thinHighlightColor;
cursor: pointer;
}
.footer-box {
display: flex;
align-items: center;
.footer-icon {
color: @assistColor;
display: flex;
align-items: center;
margin-left: 24px;
.box-text {
padding-left: 6px;
position: relative;
top: 1px;
}
}
.likes {
cursor: pointer;
}
.icon-likes {
color: #dfa400;
}
}
}
}
}
}
</style>
<template>
<div class="intro-container">
<div class="intro-box">
<div class="intro-title">BLOG</div>
<div class="intro-desc">
个人博客 – 个人博客
</div>
</div>
<img src="../../../images/cloud-left.png" class="cloud-left" />
<img src="../../../images/cloud-right.png" class="cloud-right" />
<img src="../../../images/grass-confetti.png" class="grass-confetti" />
</div>
</template>
<script>
export default {
name: "bookCover",
components: {},
props: {},
computed: {},
data() {
return {};
},
watch: {},
created() { },
mounted() { },
beforeDestroy() { },
methods: {},
};
</script>
<style lang="less" scoped>
.intro-container {
background: linear-gradient(to bottom, #c6dde4, #fefeff);
position: relative;
width: 100%;
overflow: hidden;
min-height: 240px;
.intro-box {
margin: 0;
position: absolute;
top: 50%;
left: 50%;
margin-right: -50%;
transform: translate(-50%, -50%);
text-align: center;
z-index: 99;
.intro-title {
color: @thinColor;
font-family: lato, sans-serif;
font-size: 3.5em;
letter-spacing: 10px;
margin-top: 0;
margin-bottom: 0;
text-shadow: rgb(198, 221, 228) -1px -1px 1px,
rgb(254, 254, 255) 1px 1px 1px;
margin-bottom: 20px;
}
.intro-desc {
color: @mainColor;
font-size: 1em;
font-weight: 400;
padding: 0.2em 0;
letter-spacing: 5px;
text-transform: capitalize;
margin-top: 0;
margin-bottom: 0;
text-shadow: rgb(198, 221, 228) -1px -1px 1px,
rgb(254, 254, 255) 1px 1px 1px;
}
}
img {
position: absolute;
bottom: 0;
object-fit: contain;
&.cloud-left {
top: 0;
left: 300px;
}
&.cloud-right {
top: 0;
right: 300px;
}
}
}
</style>
<template>
<div class="home-wrapper">
<intro></intro>
<div class="home-body">
<blog></blog>
<div class="side-wrapper">
<myself></myself>
<search :isCache="true"></search>
<label-classify></label-classify>
<side-article :sideClassify="BROWSE_STATUS"></side-article>
<side-article :sideClassify="RECOMMEND_STATUS"></side-article>
</div>
</div>
</div>
</template>
<script>
import Intro from "./components/intro";
import Blog from "./components/blog";
import Myself from "components/myself";
import Search from "components/search";
import LabelClassify from "components/labelClassify";
import SideArticle from "components/sideArticle";
import { BROWSE_STATUS, RECOMMEND_STATUS } from "src/constant/side";
export default {
name: "indexComponent",
components: {
Intro,
Blog,
Myself,
Search,
LabelClassify,
SideArticle,
},
props: {},
computed: {},
data() {
return {
BROWSE_STATUS,
RECOMMEND_STATUS,
};
},
watch: {},
created() { },
mounted() { },
beforeDestroy() { },
methods: {},
};
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
<template>
<div class="home-wrapper">
<div class="home-body">
<router-view> </router-view>
<div class="side-wrapper">
<search></search>
<label-classify></label-classify>
<side-article :sideClassify="BROWSE_STATUS"></side-article>
</div>
</div>
</div>
</template>
<script>
import Search from "components/search";
import LabelClassify from "components/labelClassify";
import SideArticle from "components/sideArticle";
import { BROWSE_STATUS } from "src/constant/side";
export default {
name: "labelComponent",
components: {
Search,
LabelClassify,
SideArticle,
},
props: {},
computed: {},
data() {
return {
BROWSE_STATUS,
};
},
watch: {},
created() {},
mounted() {},
beforeDestroy() {},
methods: {},
};
</script>
<style lang="less" scoped>
</style>
<template>
<div class="comment-editor" ref="container">
<div class="input-wrapper">
<input-box
ref="inputBox"
@keyup.enter.ctrl.exact.native="handlerSubmit"
v-model="inputContent"
placeholder="说点什么吧......"
class="input-box"
>
</input-box>
</div>
<div class="footer-action">
<emoji-picker
trigger-pick="click"
@activated="$refs.inputBox.focus()"
@selected="handlerEmojiSelected"
></emoji-picker>
<input
type="text"
placeholder="你的昵称"
v-model="nickname"
maxlength="10"
/>
<span class="submit-tiptext">Ctrl + Enter</span>
<div
@click="handlerSubmit"
class="submit-button"
:disabled="!inputContent"
>
提交
</div>
</div>
</div>
</template>
<script>
import InputBox from "./inputBox";
import EmojiPicker from "./emojiPicker";
import { colorList } from "src/constant/headerColor";
export default {
name: "comment-editor",
components: { InputBox, EmojiPicker },
data() {
return {
inputContent: "",
nickname: "",
};
},
props: {},
computed: {},
destroyed() {},
mounted() {},
methods: {
handlerSubmit() {
let params = {
content: this.inputContent,
nickname: this.nickname,
createTime: new Date().getTime() + "",
headerColor: colorList[Math.floor(Math.random() * 7)],
};
this.$emit("submit", params);
},
handlerEmojiSelected(e) {
this.$refs.inputBox.focus();
const clonedNode = e.target.cloneNode(true);
clonedNode.style.verticalAlign = "text-top";
document.execCommand("insertHTML", false, clonedNode.outerHTML);
},
handleReset() {
this.$refs.inputBox.reset();
this.inputContent = "";
this.nickname = "";
},
},
};
</script>
<style scoped lang="less">
.comment-editor {
width: 100%;
padding: 24px 20px;
.input-wrapper {
&.inline {
display: flex;
.input-box {
flex: 1;
margin-right: 14px;
}
}
}
.footer-action {
margin-top: 10px;
display: flex;
align-items: center;
input {
margin-left: auto;
margin-right: 24px;
height: 32px;
border: none;
border: 1px solid @borderBoldColor;
border-radius: 20px;
padding-left: 12px;
outline: none;
&::placeholder {
color: @borderBoldColor;
}
}
.submit-tiptext {
margin-right: 4px;
font-size: 14px;
color: @borderBoldColor;
}
.submit-button {
align-self: flex-end;
transition: all 0.2s;
background: #409eff;
border-radius: 4px;
display: inline-block;
cursor: pointer;
padding: 6px 10px;
color: white;
user-select: none;
&.button-enter,
&.button-leave-to {
// zoom:0;
margin-left: -40px;
transform: scale(0, 0);
}
&[disabled] {
cursor: not-allowed;
background: #66b1ff;
}
&:hover {
background: #66b1ff;
}
&:not([disabled]):active {
background: #3a8ee6;
}
}
}
}
</style>
\ No newline at end of file
<template>
<div class="comment-main">
<div class="side-title">
<Icon name="icon-comment"></Icon>
<span>{{ total }}</span
>条评论, <span>{{ replyCount }}</span
>条回复
</div>
<div class="comment-item" v-for="item in commentList" :key="item._id">
<div class="comment-part">
<div class="item-img">
<Icon name="icon-user03" :style="{ color: item.headerColor }"></Icon>
</div>
<div class="item-box">
<div class="box-title">
{{ item.nickname }}
<span>{{ item.createTime | formatTime("yyyy-MM-dd hh:mm") }}</span>
</div>
<div class="box-content" v-html="item.content"></div>
<div class="item-icon">
<div
class="box-icon"
:class="{ 'icon-likes': getLikesColor(item._id) }"
@click="handleLikes(item._id)"
>
<Icon name="icon-like02"></Icon>
<span
>{{ getLikesNumber(item._id, item.likes) | formatNumber() }}
</span>
</div>
<div class="box-icon" @click="handleCilckReply(item)">
<Icon name="icon-reply02"></Icon>
<span>{{ getReplyBox(item._id) ? "取消" : "回复" }}</span>
</div>
</div>
<comment-editor
v-show="getReplyBox(item._id)"
ref="editor"
@submit="handleReply"
></comment-editor>
</div>
</div>
<template v-if="item.replyList && item.replyList.length">
<reply-item
v-for="(reply, index) in item.replyList"
:key="reply._id + index"
:byReplyUser="reply.byReplyUser"
:replyContent="reply.replyContent"
:replyTime="reply.replyTime"
:replyHeaderColor="reply.replyHeaderColor"
:replyUser="reply.replyUser"
></reply-item>
</template>
</div>
</div>
</template>
<script>
import { apiUpdateLikes, apiUpdateReplys } from "api/message";
import CommentEditor from "./commentEditor";
import ReplyItem from "./replyItem";
import { colorList } from "src/constant/headerColor";
export default {
name: "commentItem",
components: { CommentEditor, ReplyItem },
props: {
commentList: {
type: Array,
default: () => [],
},
total: {
type: Number,
default: 0,
},
replyCount: {
type: Number,
default: 0,
},
},
computed: {
getLikesNumber({ likeList }) {
return (id, likes) => (likeList.includes(id) ? likes + 1 : likes);
},
getLikesColor({ likeList }) {
return (id) => likeList.includes(id);
},
getReplyBox({ currentId, isReply }) {
return (id) => currentId === id && isReply;
},
},
data() {
return {
currentId: "", // 当前id
byReplyUser: "", // 当前被回复用户
isLike: false, // 是否点赞
isReply: false, // 是否回复
likeList: [],
};
},
watch: {},
created() {},
mounted() {},
beforeDestroy() {},
methods: {
// 点赞
handleLikes(id) {
if (this.likeList.includes(id)) {
this.isLike = true;
this.likeList.splice(this.likeList.indexOf(id), 1);
} else {
this.isLike = false;
this.likeList.push(id);
}
this.currentId = id;
return apiUpdateLikes({ _id: id, isLike: this.isLike })
.then((res) => {})
.catch((err) => {
console.log(err);
})
.finally(() => {});
},
handleCilckReply(item) {
this.currentId = item._id;
this.byReplyUser = item.nickname;
this.isReply = !this.isReply;
},
handleReply(reply) {
let params = {
_id: this.currentId,
replyTime: new Date().getTime() + "",
replyContent: reply.content,
replyUser: reply.nickname,
byReplyUser: this.byReplyUser,
byReplyUser: this.byReplyUser,
replyHeaderColor: colorList[Math.floor(Math.random() * 7)],
};
return apiUpdateReplys(params)
.then((res) => {
this.isReply = false;
this.likeList = [];
this.$emit("success");
})
.catch((err) => {
console.log(err);
})
.finally(() => {});
},
},
};
</script>
<style lang="less" scoped>
.comment-main {
padding: 20px;
width: 70%;
margin: 0 auto;
// border: 1px solid @borderColor;
// border-radius: 6px;
.side-title {
font-size: 14px;
margin-bottom: 30px;
svg {
font-size: 20px;
}
&::after {
background: @warningColor;
width: 19.5%;
}
&:hover {
&::after {
width: 100%;
}
}
span {
color: @warningColor;
margin-right: 4px;
font-weight: bold;
}
}
.comment-item {
position: relative;
padding-bottom: 10px;
&::after {
content: "";
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 1px;
background-color: @borderColor;
}
.comment-part {
display: flex;
align-items: flex-start;
padding: 20px 0 10px;
.item-img {
padding-right: 24px;
svg {
font-size: 32px;
}
img {
height: 42px;
width: 42px;
object-fit: cover;
border-radius: 50%;
}
}
.item-box {
flex: 1;
.box-title {
color: @mainColor;
font-size: 14px;
font-weight: bold;
span {
font-size: 12px;
color: @borderBoldColor;
font-weight: 500;
}
}
.box-content {
font-size: 14px;
color: @thinColor;
line-height: 24px;
margin-top: 10px;
}
.item-icon {
display: flex;
align-items: center;
justify-content: flex-end;
cursor: pointer;
.box-icon {
display: flex;
justify-content: flex-end;
color: @assistColor;
padding-left: 24px;
svg {
margin-right: 6px;
font-size: 18px;
}
span {
position: relative;
top: 1px;
}
}
.icon-likes {
color: #dfa400;
}
}
}
}
}
}
</style>
<template>
<div
@keyup.esc="hidePicker"
ref="container"
class="emoji-wrapper"
hidefocus="true"
v-on="handleMouse()"
>
<span class="emoji-button" @click.stop="togglePickerVisibility">
<img
:class="{ inactive: !pickerVisible }"
class="button-icon"
src="../../../images/emoji/icon.svg"
width="20"
height="20"
alt
/>
<span v-if="buttonTextVisible" class="button-text">表情</span>
</span>
<ul :class="['emoji-picker', pickerPosition]" v-if="pickerVisible">
<li v-for="(url, key) in files" :key="key" class="emoji-picker-item">
<img
class="emoji-icon"
@click="handlerSelect"
width="20"
height="20"
:src="url"
alt
/>
</li>
</ul>
</div>
</template>
<script>
const requireEmoji = require.context("../../../images/emoji");
let files = requireEmoji.keys();
export default {
data() {
return {
pickerVisible: false,
files: files.map((url) =>
require(`../../../images/emoji/${url.slice(2)}`)
),
};
},
props: {
buttonTextVisible: {
type: Boolean,
default: true,
},
triggerPick: {
tyep: String,
default: "hover",
validator(value) {
return ["hover", "click"].includes(value);
},
},
pickerPosition: {
type: String,
default: "right",
validator(value) {
return ["left", "middle", "right"].includes(value);
},
},
},
watch: {
pickerVisible(newValue) {
newValue ? this.$emit("activated") : this.$emit("inactivated");
},
},
mounted() {
const docHandleClick = (this.docHandleClick = (e) => {
if (!this.$refs.container.contains(e.target)) {
this.hidePicker();
}
});
const handleKeyup = (this.handleKeyup = (e) => {
if (e.key === "Escape") {
this.hidePicker();
}
});
document.addEventListener("click", docHandleClick);
document.addEventListener("keyup", handleKeyup);
},
destroyed() {
document.removeEventListener("click", this.docHandleClick);
document.removeEventListener("click", this.handleKeyup);
},
methods: {
handlerSelect(e) {
this.$emit("selected", e);
},
hidePicker() {
this.pickerVisible = false;
},
togglePickerVisibility() {
if (this.triggerPick === "click") {
this.pickerVisible = !this.pickerVisible;
}
},
handleMouse() {
const mouseenter = function () {
this.pickerVisible = true;
}.bind(this);
const mouseleave = function () {
this.pickerVisible = false;
}.bind(this);
if (this.triggerPick === "hover") {
return {
mouseenter,
mouseleave,
};
} else {
return {};
}
},
},
};
</script>
<style scoped lang="less">
.emoji-picker {
display: flex;
flex-wrap: wrap;
width: 300px;
}
.emoji-picker-item {
margin: 4px;
cursor: pointer;
img {
user-select: none;
}
}
.emoji-wrapper {
position: relative;
display: inline-block;
z-index: 1000;
}
.emoji-button {
font-size: 14px;
cursor: pointer;
user-select: none;
display: flex;
justify-content: center;
align-items: center;
.button-icon {
margin-right: 6px;
&.inactive {
filter: grayscale(100%);
}
}
&:hover {
color: #027fff;
}
.button-text {
vertical-align: super;
}
}
.emoji-picker {
background: #fff;
box-shadow: @borderBoldColor 1px 1px 7px;
border-radius: 5px;
padding: 10px;
display: flex;
position: absolute;
&.left {
right: 0;
}
&.middle {
left: 50%;
transform: translateX(-50%);
}
}
</style>
\ No newline at end of file
<template>
<div type="text" class="input-box-wrapper">
<div
class="content textarea"
ref="richText"
v-on="listeners"
v-bind="$attrs"
:contenteditable="true"
></div>
<div class="append-wrapper">
<slot name="append"></slot>
</div>
</div>
</template>
<script>
export default {
name: "input-box",
props: {},
data() {
return {};
},
computed: {
listeners() {
return Object.assign({}, this.$listeners, {
input: function (e) {
const inputContent = e.target.innerHTML;
this.$emit("input", inputContent);
}.bind(this),
});
},
},
mounted() {},
methods: {
focus() {
this.$refs.richText.focus();
},
reset() {
this.$refs.richText.innerHTML = "";
},
},
};
</script>
<style scoped lang="less">
.input-box-wrapper {
position: relative;
}
.content {
max-height: 200px;
overflow: auto;
&::-webkit-scrollbar {
width: 0;
}
&.textarea {
min-height: 100px;
}
&.text {
min-height: 80px;
}
&:empty:before {
content: attr(placeholder);
color: @borderBoldColor;
position: absolute;
left: 10px;
top: 7px;
}
&.focused {
border: #66b1ff 1px solid;
cursor: text;
}
&:focus {
outline: none;
}
border: 1px solid @borderBoldColor;
border-radius: 3px;
padding: 7px 10px;
padding-right: 30px;
position: relative;
}
.append-wrapper {
position: absolute;
right: 1px;
top: 1px;
bottom: 1px;
display: flex;
cursor: pointer;
align-items: center;
}
</style>
\ No newline at end of file
<template>
<div class="reply-item">
<Icon
name="icon-user02"
:style="{ color: replyHeaderColor }"
class="item-img"
></Icon>
<div class="reply-box">
<div class="box-content">
<div class="reply-user">
<span class="reply-name">{{ replyUser }}</span>
<span class="by-reply-name">@ {{ byReplyUser }}:</span>
</div>
<div v-html="replyContent" class="reply-content"></div>
</div>
<div class="reply-date">
{{ replyTime | formatTime("yyyy-MM-dd hh:mm:ss") }}
</div>
</div>
</div>
</template>
<script>
export default {
name: "replyItem",
components: {},
props: {
byReplyUser: {
type: String,
default: "",
},
replyContent: {
type: String,
default: "",
},
replyHeaderColor: {
type: String,
default: "",
},
replyTime: {
type: String,
default: "",
},
replyUser: {
type: String,
default: "",
},
},
computed: {},
data() {
return {};
},
watch: {},
created() {},
mounted() {},
beforeDestroy() {},
methods: {},
};
</script>
<style lang="less" scoped>
.reply-item {
background-color: @thinBgColor;
padding: 10px 20px;
margin-left: 42px;
margin-bottom: 10px;
border-radius: 10px;
display: flex;
align-items: flex-start;
.item-img {
font-size: 32px;
margin-right: 10px;
}
.reply-box {
flex: 1;
.box-content {
.reply-user {
font-size: 14px;
line-height: 24px;
.reply-name {
color: @mainColor;
}
.by-reply-name {
color: @warningColor;
}
}
.reply-content {
flex: 1;
font-size: 14px;
line-height: 24px;
color: @thinColor;
}
}
.reply-date {
font-size: 12px;
color: @borderBoldColor;
margin-top: 2px;
text-align: right;
}
}
}
</style>
<template>
<div class="home-wrapper" v-loading="loading">
<div class="side-title">
<Icon name="icon-message"></Icon>
留言板
</div>
<div class="home-body">
<comment-editor @submit="handleComment" ref="editor"></comment-editor>
<comment-item
v-if="total > 0"
:commentList="commentList"
:total="total"
:replyCount="replyCount"
@success="initData"
></comment-item>
<none-data v-else-if="!total"></none-data>
<Paging
:page-index="pageindex"
:total="total"
:page-size="pagesize"
@change="pageChange"
></Paging>
</div>
</div>
</template>
<script>
import CommentEditor from "./components/commentEditor";
import {
apiAddMessage,
apiGetMessageList,
apiGetReplyCount,
} from "api/message";
import CommentItem from "./components/commentItem";
export default {
name: "commentIndex",
components: { CommentEditor, CommentItem },
data() {
return {
loading: false,
commentList: [],
pageindex: 1,
pagesize: 8,
total: -1, // 评论数量
replyCount: 0, // 回复数量
};
},
props: {},
computed: {},
destroyed() { },
mounted() {
this.initData();
},
methods: {
pageChange(page) {
this.pageindex = page;
document.documentElement.scrollTop = document.body.scrollTop = 0;
this.getMessageList();
},
initData() {
this.loading = true;
Promise.all([this.getMessageList(), this.getReplyCount()])
.catch((err) => {
console.log(err);
})
.finally(() => {
this.loading = false;
});
},
handleComment(params) {
return apiAddMessage(params)
.then((res) => {
this.$refs.editor.handleReset();
this.getMessageList();
})
.catch((err) => {
console.log(err);
})
.finally(() => { });
},
getMessageList() {
let params = {
pageindex: this.pageindex,
pagesize: this.pagesize,
};
return apiGetMessageList(params)
.then((res) => {
let { list, total } = res.data;
this.commentList = list;
this.total = total;
})
.catch((err) => {
console.log(err);
})
.finally(() => { });
},
getReplyCount() {
return apiGetReplyCount()
.then((res) => {
let { data } = res;
this.replyCount = data[0].replyCount;
})
.catch((err) => {
console.log(err);
})
.finally(() => { });
},
},
};
</script>
<style scoped lang="less">
.home-body {
background-color: #fff;
flex-direction: column;
padding-bottom: 24px;
}
.side-title {
width: 1200px;
background-color: #fff;
margin: 20px auto 0;
padding-left: 20px;
&::after {
width: 8.5%;
}
&:hover {
&::after {
width: 100%;
}
}
}
.none-data-wrapper {
width: 100%;
}
.paging-container {
margin: 0 auto;
padding-top: 24px;
}
</style>
\ No newline at end of file
<template>
<div class="home-wrapper">
<div class="side-title">
<Icon name="icon-me"></Icon>
关于我们
</div>
<div class="home-body">
<div class="myself-main">
<div class="main-desc">
</div>
</div>
<div class="side-main">
<div class="side-wrapper">
<div class="side-img">
<img src="../../images/avatar.png" class="avatar" alt="" />
</div>
<div class="side-content">
<div class="content-item">RF</div>
<div class="content-item">Running Football</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
name: "myself",
components: {},
props: {},
computed: {},
data() {
return {};
},
watch: {},
created() {},
mounted() {},
beforeDestroy() {},
methods: {},
};
</script>
<style lang="less" scoped>
.home-body {
background-color: #fff;
}
.side-title {
width: 1200px;
background-color: #fff;
margin: 20px auto 0;
padding-left: 20px;
&::after {
width: 8.4%;
}
&:hover {
&::after {
width: 100%;
}
}
}
.myself-main {
width: 70%;
padding: 24px;
border-right: 1px solid @borderColor;
.main-desc {
font-size: 14px;
line-height: 32px;
color: @thinColor;
}
.main-img {
margin-top: 10px;
max-height: 300px;
object-fit: contain;
}
.main-footer {
background: @thinBgColor;
padding: 10px;
text-align: left;
line-height: 32px;
margin: 20px auto;
color: #0609308a;
a {
color: #0609308a;
text-decoration: underline;
}
}
}
.side-main {
flex: 1;
.side-wrapper {
margin-top: 24px;
.side-title {
width: 92%;
margin: 0;
padding-left: 0;
svg {
font-size: 24px;
}
&::after {
width: 10%;
}
&:hover {
&::after {
width: 100%;
}
}
}
.side-img {
display: flex;
justify-content: center;
margin-bottom: 24px;
.avatar {
width: 100px;
height: 100px;
border-radius: 50%;
}
.qrcode {
width: 80%;
height: 80%;
border-radius: 6px;
margin-top: 24px;
}
}
.side-content {
.content-item {
width: 92%;
padding: 5px 10px;
margin: 5px 0;
border-radius: 5px;
font-size: 14px;
color: @thinColor;
background-color: @thinBgColor;
}
}
}
}
</style>
import blogModel from "../../models/blog";
module.exports = {
async list(ctx, next) {
console.log(
"----------------获取博客列表 client_api/blog/list-----------------------"
);
let {
keyword = null,
isQuery = null,
pageindex = 1,
pagesize = 9,
sortBy = null,
} = ctx.request.query;
// 条件参数
let conditions = { isVisible: true };
if (keyword) {
let reg = new RegExp(keyword, "i");
// 区分搜索框、标签场景
let searchObj = isQuery
? [{ title: { $regex: reg } }, { desc: { $regex: reg } }]
: [{ type: { $regex: reg } }];
conditions["$or"] = [...searchObj];
}
// 排序参数
let sortParams = {};
if (sortBy) {
sortParams[sortBy] = -1;
sortParams["releaseTime"] = -1;
}
let options = {
limit: pagesize * 1,
skip: (pageindex - 1) * pagesize,
sort: sortParams,
};
try {
let data = await ctx.find(blogModel, conditions, null, options);
return ctx.send(data);
} catch (e) {
console.log(e);
return ctx.sendError(e);
}
},
async info(ctx, next) {
console.log(
"----------------获取博客信息 client_api/blog/info-----------------------"
);
let _id = ctx.request.query._id;
try {
let data = await ctx.findOne(blogModel, { _id });
return ctx.send(data);
} catch (e) {
return ctx.sendError(e);
}
},
async updateLikes(ctx, next) {
console.log(
"----------------点赞文章 client_api/blog/updateLikes------------------"
);
let paramsData = ctx.request.body;
let num = JSON.parse(paramsData.isLike) ? -1 : 1;
let options = { $inc: { likes: num } };
try {
let data = await ctx.update(blogModel, { _id: paramsData._id }, options);
ctx.send();
} catch (e) {
ctx.sendError(e);
}
},
async updatePV(ctx, next) {
console.log(
"----------------文章浏览量 client_api/blog/updatePV------------------"
);
let paramsData = ctx.request.body;
let options = { $inc: { pv: 1 } };
try {
let data = await ctx.update(blogModel, { _id: paramsData._id }, options);
ctx.send();
} catch (e) {
ctx.sendError(e);
}
},
};
import labelModel from "../../models/label";
module.exports = {
async list(ctx, next) {
console.log(
"----------------获取标签列表 label/list-----------------------"
);
let { keyword, pageindex = 1, pagesize = 50 } = ctx.request.query;
try {
let reg = new RegExp(keyword, "i");
let data = await ctx.findPage(
labelModel,
{
$or: [{ label: { $regex: reg } }, { bgColor: { $regex: reg } }],
},
null,
{ limit: pagesize * 1, skip: (pageindex - 1) * pagesize }
);
ctx.send(data);
} catch (e) {
console.log(e);
ctx.sendError(e);
}
},
};
import messageModel from '../../models/message';
module.exports = {
async add(ctx, next) {
console.log('----------------添加留言 message/add-----------------------');
let paramsData = ctx.request.body;
if (!paramsData.nickname) {
paramsData.nickname = '匿名网友';
}
try {
await ctx.add(messageModel, paramsData);
ctx.send(paramsData);
} catch (e) {
ctx.sendError(e);
}
},
async list(ctx, next) {
console.log(
'----------------获取评论列表 client_api/message/list-----------------------'
);
let { pageindex = 1, pagesize = 10 } = ctx.request.query;
// 排序参数
let sortParams = {
createTime: -1,
};
let options = {
limit: pagesize * 1,
skip: (pageindex - 1) * pagesize,
sort: sortParams,
};
try {
let data = await ctx.find(messageModel, null, null, options);
return ctx.send(data);
} catch (e) {
console.log(e);
return ctx.sendError(e);
}
},
async replyCount(ctx, next) {
console.log(
'----------------获取回复列表 client_api/message/replyCount-----------------------'
);
let conditions = [
{ $project: { replyCount: { $size: '$replyList' } } },
{ $group: { _id: null, replyCount: { $sum: '$replyCount' } } },
];
try {
let data = await ctx.aggregate(messageModel, conditions);
return ctx.send(data);
} catch (e) {
console.log(e);
return ctx.sendError(e);
}
},
async updateLikes(ctx, next) {
console.log(
'----------------点赞留言 client_api/message/updateLikes------------------'
);
let paramsData = ctx.request.body;
let num = JSON.parse(paramsData.isLike) ? -1 : 1;
let options = { $inc: { likes: num } };
try {
let data = await ctx.update(
messageModel,
{ _id: paramsData._id },
options
);
ctx.send();
} catch (e) {
ctx.sendError(e);
}
},
async updateReplys(ctx, next) {
console.log(
'----------------回复留言 client_api/message/updateReplys------------------'
);
let paramsData = ctx.request.body;
if (!paramsData.replyUser) {
paramsData.replyUser = '匿名网友';
}
let options = {
$push: { replyList: { $each: [paramsData], $position: 0 } },
};
try {
let data = await ctx.update(
messageModel,
{ _id: paramsData._id },
options
);
ctx.send();
} catch (e) {
ctx.sendError(e);
}
},
};