tt
7
hotgo-uniapp/.gitignore
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
/unpackage/dist/*
|
||||
/unpackage/cache/*
|
||||
/unpackage/release/*
|
||||
/node_modules/*
|
||||
/.hbuilderx/*
|
||||
/.idea/*
|
||||
deploy.sh
|
||||
5
hotgo-uniapp/.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"i18n-ally.localesPaths": [
|
||||
"common/locales"
|
||||
]
|
||||
}
|
||||
26
hotgo-uniapp/App.vue
Normal file
@@ -0,0 +1,26 @@
|
||||
<script>
|
||||
/**
|
||||
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
|
||||
*/
|
||||
export default {
|
||||
onLaunch() {
|
||||
// 国际化,设置当前语言
|
||||
if (this.vuex_locale){
|
||||
this.$i18n.locale = this.vuex_locale;
|
||||
this.$u.api.lang({lang: this.vuex_locale});
|
||||
}
|
||||
// 设置底部导航栏角标
|
||||
uni.setTabBarBadge({
|
||||
index: 0,
|
||||
text: '3'
|
||||
});
|
||||
// uni.removeTabBarBadge({
|
||||
// index: 0
|
||||
// });
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss">
|
||||
@import "uview-ui/index.scss";
|
||||
@import "pages/common/jeesite.scss";
|
||||
</style>
|
||||
223
hotgo-uniapp/LICENSE
Normal file
@@ -0,0 +1,223 @@
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright (C) 2013-Now, http://jeesite.com (thinkgem@163.com).
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
============================================================================
|
||||
|
||||
授权许可补充协议条款:
|
||||
|
||||
1. 基于 Apache License Version 2.0 协议发布,可用于商业项目,但必须遵守以下补充条款。
|
||||
2. 不得将本软件应用于危害国家安全、荣誉和利益的行为,不能以任何形式用于非法为目的的行为。
|
||||
3. 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议、版权声明和其他原作者
|
||||
规定需要包含的说明(请尊重原作者的著作权,不要删除或修改文件中的`Copyright`和`@author`信息)
|
||||
更不要,全局替换源代码中的 jeesite 或 ThinkGem 等字样,否则你将违反本协议条款承担责任。
|
||||
4. 基于本软件完成的软件作品,只能使用 JeeSite 作为后台服务,除外情况不允许二次分发或开源。
|
||||
5. 您若套用本软件的一些代码或功能参考,请保留源文件中的版权和作者,需要在您的软件介绍明显位置
|
||||
说明出处,举例:本软件基于 JeeSite 快速开发平台-手机端,并附带链接:http://jeesite.com
|
||||
6. 任何基于本软件而产生的一切法律纠纷和责任,均于我司无关。
|
||||
7. 如果你对本软件有改进,希望可以贡献给我们,共同进步。
|
||||
8. 本项目已申请软件著作权,请尊重开源,感谢阅读。
|
||||
|
||||
版权所有:济南卓源软件有限公司
|
||||
|
||||
官方网址:http://jeesite.com
|
||||
|
||||
技术服务:http://s.jeesite.com
|
||||
151
hotgo-uniapp/README.md
Normal file
@@ -0,0 +1,151 @@
|
||||
<p align="center">
|
||||
<img alt="JeeSite" src="https://jeesite.com/assets/images/logo.png" width="120" height="120" style="margin-bottom: 10px;">
|
||||
</p>
|
||||
<h3 align="center" style="margin:30px 0 30px;font-weight:bold;font-size:30px;">快速开发平台 - 手机端</h3>
|
||||
|
||||
## 引言
|
||||
|
||||
JeeSite Mobile Uni-App 是 JeeSite 手机端框架/移动端框架,基于 uni-app、uView UI 实现。
|
||||
|
||||
uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、Web、
|
||||
以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉/淘宝)、快应用等多个平台。
|
||||
|
||||
uView UI,是 uni-app 生态最优秀的 UI 框架,全面的组件和便捷的工具会让您信手拈来,如鱼得水。
|
||||
|
||||
## 特性
|
||||
|
||||
* 支持 Android,iOS,H5,微信小程序,等其它小程序平台。
|
||||
* 移动端是无 Cookie 环境的,该项目对移动端进行会话环境封装,
|
||||
* 让你像 Cookie 一样使用 token,无需特别处理,有框架帮你完成。
|
||||
* 化繁为简,封装 vuex 的繁琐,简单通过 api 即可进行 state 存取。
|
||||
* 贴心的表单组件封装,下拉框、复选框、文件上传,完美与后端 JeeSite 结合。
|
||||
* uView 提供 60+ 精选组件,功能丰富,多端兼容,让您快速集成,开箱即用。
|
||||
* 众多贴心的 JS 利器,让您飞镖在手,召之即来,百步穿杨。
|
||||
* 众多的常用页面和布局,让您专注逻辑,事半功倍。
|
||||
* 合理使用 style 的 scoped 减少包体积大小。
|
||||
* 详尽的文档支持,现代化的演示效果。
|
||||
* 按需引入,精简打包体积。
|
||||
* 移动端完整开源。
|
||||
|
||||
## 功能列表
|
||||
|
||||
* 账号登录、记住我(下次免登录)
|
||||
* 自助服务:找回密码功能、账号注册功能
|
||||
* 我的主页:修改个人信息、修改头像和裁剪、修改密码
|
||||
* 辅助功能:关于我们、意见反馈、检查更新、帮助中心
|
||||
* 工作台功能列表主页、消息列表页面
|
||||
* 增删改查示例
|
||||
* 工作流引擎
|
||||
|
||||
## 快速体验
|
||||
|
||||
1、H5 APP 端访问地址:<a href="https://demo.jeesite.com/app" target="blank">https://demo.jeesite.com/app</a> (最新演示)
|
||||
<br> 获得H5最佳体验,操作方法:Chrome 为例,在浏览器上按 F12 打开“开发者工具”,点击该工具左上角第二个按钮
|
||||
“Toggle device toolbar”,显示“切换设备工具栏”,然后在该工具栏上点击“Responsive”下拉选择“iPhone6/7/8”,再按“F5”刷新页面,即可。
|
||||
|
||||
2、微信小程序端:通过**微信**扫码(最佳体验,但不是最新演示,更新延迟)<br><br>
|
||||
<img src="https://jeesite.com/assets/images/wx_app.jpg" width="220" height="220" >
|
||||
|
||||
3、安卓 Android 安装包,点击下载:[JeeSite4.3.1.apk](https://gitee.com/thinkgem/jeesite4/attach_files/925161/download)
|
||||
|
||||
## 快速运行
|
||||
|
||||
1、下载并安装:<a href="https://www.dcloud.io/hbuilderx.html" target="blank">集成开发环境 HBuilderX</a>
|
||||
(推荐,也可以使用 VSCode 或 WebStorm)
|
||||
|
||||
2、菜单:文件 -> 导入 -> 从本地目录导入,选择 “jeesite4-uniapp” 文件夹。
|
||||
|
||||
3、菜单:运行 -> 运行到内置浏览器(或运行到浏览器 -> Chrome 浏览器)。
|
||||
|
||||
4、等待 HBuliderX 控制台编译完成后,会自动弹出手机登录页面。
|
||||
|
||||
## 安装服务端
|
||||
|
||||
本项目后台服务默认连接的是 demo.jeesite.com 官网演示环境,你需要替换为你的 JeeSite 后台,步骤如下:
|
||||
|
||||
1、安装 JeeSite 最新版:<a href="https://gitee.com/thinkgem/jeesite4#%E6%9C%AC%E5%9C%B0%E8%BF%90%E8%A1%8C" target="blank">https://gitee.com/thinkgem/jeesite4#本地运行</a>
|
||||
(本项目支持 v4.2.3 或以上版本,若已安装,请执行 `bin/package.bat` 更新依赖)
|
||||
|
||||
2、打开 application.yml 修改如下配置(Ajax跨域设置和与后台基础交互的请求头名):
|
||||
|
||||
```yml
|
||||
# Shiro 相关
|
||||
shiro:
|
||||
|
||||
# 是否允许跨域访问 CORS,如果允许,设置允许的域名。v4.2.3 开始支持多个域名和模糊匹配,例如:http://*.jeesite.com,http://*.jeesite.net
|
||||
accessControlAllowOrigin: '*'
|
||||
|
||||
# 允许跨域访问时 CORS,可以获取和返回的方法和请求头
|
||||
accessControlAllowMethods: GET, POST, OPTIONS
|
||||
accessControlAllowHeaders: content-type, x-requested-with, x-ajax, x-token, x-remember
|
||||
accessControlExposeHeaders: x-remember
|
||||
|
||||
# Session 相关
|
||||
session:
|
||||
|
||||
# 设置接收 SessionId 请求参数和请求头名称
|
||||
sessionIdHeaderName: x-token
|
||||
|
||||
# 记住我的请求参数和请求头的名称
|
||||
rememberMeHeaderName: x-remember
|
||||
|
||||
# Web 相关
|
||||
web:
|
||||
|
||||
# AJAX 接受参数名和请求头名
|
||||
ajaxHeaderName: x-ajax
|
||||
|
||||
```
|
||||
|
||||
3、打开手机端项目的 `/common/config.js` 修改 `config.baseUrl` 后端服务地址为你安装的 JeeSite 服务地址。
|
||||
|
||||
## 生态系统
|
||||
|
||||
* 分布式微服务系统(Spring Cloud):<https://gitee.com/thinkgem/jeesite4-cloud>
|
||||
* JFlow工作流引擎:<https://gitee.com/thinkgem/jeesite4-jflow> :<http://ccflow.org>
|
||||
* Flowable业务流程模块(BPM):<http://jeesite.com/docs/bpm/>
|
||||
* 内容管理模块(CMS):<https://gitee.com/thinkgem/jeesite4-cms>
|
||||
* 手机端移动端:<https://gitee.com/thinkgem/jeesite4-uniapp>
|
||||
|
||||
## 学习路线
|
||||
|
||||
1. <a href="https://uniapp.dcloud.io/README" target="blank">什么是 uni-app、为什么选择 uni-app</a>
|
||||
2. <a href="https://www.dcloud.io/hbuilderx.html" target="blank">集成开发环境 HBuilderX 下载</a>
|
||||
3. <a href="https://ke.qq.com/course/3169971" target="blank">uni-app 官方视频教程</a>
|
||||
4. <a href="http://ask.dcloud.net.cn/article/35657" target="blank">如果你熟悉 h5,但不熟悉 Vue 和小程序,请看这篇白话 uni-app</a>
|
||||
5. <a href="https://uniapp.dcloud.io/vue-basics" target="blank">Vue.js 视频 + 文档教程</a>
|
||||
|
||||
## 学习文档
|
||||
|
||||
* <a href="https://uniapp.dcloud.io/collocation/pages" target="blank">uni-app 框架文档</a>
|
||||
* <a href="https://uniapp.dcloud.io/component/README" target="blank">uni-app 组件文档</a>
|
||||
* <a href="https://uviewui.com/components/intro.html" target="blank">uView 组件文档</a>
|
||||
* <a href="https://uviewui.com/js/intro.html" target="blank">uView JS 文档</a>
|
||||
|
||||
## 打包发布
|
||||
|
||||
* 打开 `/common/config.js` 找到 `config.baseUrl` 修改为正式的手机端后台服务地址
|
||||
* 阅读这篇文章:<a href="https://uniapp.dcloud.io/quickstart-hx?id=%e5%8f%91%e5%b8%83uni-app" target="blank">如何发布 uni-app 软件</a>
|
||||
* <a href="https://ask.dcloud.net.cn/article/34972" target="blank">uni-app 整包升级、冷更新</a>
|
||||
* <a href="https://ask.dcloud.net.cn/article/35667" target="blank">uni-app 资源升级、热更新</a>
|
||||
|
||||
## 授权许可协议条款
|
||||
|
||||
1. 基于 Apache License Version 2.0 协议发布,可用于商业项目,但必须遵守以下补充条款。
|
||||
2. 不得将本软件应用于危害国家安全、荣誉和利益的行为,不能以任何形式用于非法为目的的行为。
|
||||
3. 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议、版权声明和其他原作者
|
||||
规定需要包含的说明(请尊重原作者的著作权,不要删除或修改文件中的`Copyright`和`@author`信息)
|
||||
更不要,全局替换源代码中的 jeesite 或 ThinkGem 等字样,否则你将违反本协议条款承担责任。
|
||||
4. 基于本软件完成的软件作品,只能使用 JeeSite 作为后台服务,除外情况不允许二次分发或开源。
|
||||
5. 您若套用本软件的一些代码或功能参考,请保留源文件中的版权和作者,需要在您的软件介绍明显位置
|
||||
说明出处,举例:本软件基于 JeeSite 快速开发平台-手机端,并附带链接:http://jeesite.com
|
||||
6. 任何基于本软件而产生的一切法律纠纷和责任,均于我司无关。
|
||||
7. 如果你对本软件有改进,希望可以贡献给我们,共同进步。
|
||||
8. 本项目已申请软件著作权,请尊重开源,感谢阅读。
|
||||
|
||||
## 技术服务与支持
|
||||
|
||||
* 本软件免费,我们也提供了相应的收费服务,因为:
|
||||
* 没有资金的支撑就很难得到发展,特别是一个好的产品,如果 JeeSite 帮助了您,请为我们点赞(本软件Git仓库首页,右上角点击 star 按钮,关注我们)。支持我们,您可以得到一些回报,有了这些我们会把公益事业做的更好,回报社区和社会,请给我们一些动力吧,在此非常感谢已支持我们的朋友!
|
||||
* **联系方式(官方商务)QQ:[1766571055](http://wpa.qq.com/msgrd?v=3&uin=1766571055&site=qq&menu=yes)**
|
||||
* 技术服务支持网页:<http://s.jeesite.com>
|
||||
74
hotgo-uniapp/common/base64.js
Normal file
@@ -0,0 +1,74 @@
|
||||
(function (root, factory) {
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module.
|
||||
define([], function() {factory(root);});
|
||||
} else factory(root);
|
||||
// node.js has always supported base64 conversions, while browsers that support
|
||||
// web workers support base64 too, but you may never know.
|
||||
})(typeof exports !== "undefined" ? exports : this, function(root) {
|
||||
if (root.atob) {
|
||||
// Some browsers' implementation of atob doesn't support whitespaces
|
||||
// in the encoded string (notably, IE). This wraps the native atob
|
||||
// in a function that strips the whitespaces.
|
||||
// The original function can be retrieved in atob.original
|
||||
try {
|
||||
root.atob(" ");
|
||||
} catch(e) {
|
||||
root.atob = (function(atob) {
|
||||
var func = function(string) {
|
||||
return atob(String(string).replace(/[\t\n\f\r ]+/g, ""));
|
||||
};
|
||||
func.original = atob;
|
||||
return func;
|
||||
})(root.atob);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
// base64 character set, plus padding character (=)
|
||||
var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
|
||||
// Regular expression to check formal correctness of base64 encoded strings
|
||||
b64re = /^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/;
|
||||
|
||||
root.btoa = function(string) {
|
||||
string = String(string);
|
||||
var bitmap, a, b, c,
|
||||
result = "", i = 0,
|
||||
rest = string.length % 3; // To determine the final padding
|
||||
|
||||
for (; i < string.length;) {
|
||||
if ((a = string.charCodeAt(i++)) > 255
|
||||
|| (b = string.charCodeAt(i++)) > 255
|
||||
|| (c = string.charCodeAt(i++)) > 255)
|
||||
throw new TypeError("Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range.");
|
||||
|
||||
bitmap = (a << 16) | (b << 8) | c;
|
||||
result += b64.charAt(bitmap >> 18 & 63) + b64.charAt(bitmap >> 12 & 63)
|
||||
+ b64.charAt(bitmap >> 6 & 63) + b64.charAt(bitmap & 63);
|
||||
}
|
||||
|
||||
// If there's need of padding, replace the last 'A's with equal signs
|
||||
return rest ? result.slice(0, rest - 3) + "===".substring(rest) : result;
|
||||
};
|
||||
|
||||
root.atob = function(string) {
|
||||
// atob can work with strings with whitespaces, even inside the encoded part,
|
||||
// but only \t, \n, \f, \r and ' ', which can be stripped.
|
||||
string = String(string).replace(/[\t\n\f\r ]+/g, "");
|
||||
if (!b64re.test(string))
|
||||
throw new TypeError("Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.");
|
||||
|
||||
// Adding the padding if missing, for semplicity
|
||||
string += "==".slice(2 - (string.length & 3));
|
||||
var bitmap, result = "", r1, r2, i = 0;
|
||||
for (; i < string.length;) {
|
||||
bitmap = b64.indexOf(string.charAt(i++)) << 18 | b64.indexOf(string.charAt(i++)) << 12
|
||||
| (r1 = b64.indexOf(string.charAt(i++))) << 6 | (r2 = b64.indexOf(string.charAt(i++)));
|
||||
|
||||
result += r1 === 64 ? String.fromCharCode(bitmap >> 16 & 255)
|
||||
: r2 === 64 ? String.fromCharCode(bitmap >> 16 & 255, bitmap >> 8 & 255)
|
||||
: String.fromCharCode(bitmap >> 16 & 255, bitmap >> 8 & 255, bitmap & 255);
|
||||
}
|
||||
return result;
|
||||
};
|
||||
});
|
||||
35
hotgo-uniapp/common/config.js
Normal file
@@ -0,0 +1,35 @@
|
||||
/**
|
||||
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
|
||||
*/
|
||||
const config = {
|
||||
|
||||
// 产品名称
|
||||
productName: 'JeeSite Mobile',
|
||||
|
||||
// 公司名称
|
||||
companyName: 'ThinkGem',
|
||||
|
||||
// 产品版本号
|
||||
productVersion: 'V4.3.2',
|
||||
|
||||
// 版本检查标识
|
||||
appCode: 'android',
|
||||
|
||||
// 内部版本号码
|
||||
appVersion: 1,
|
||||
|
||||
// 管理基础路径
|
||||
adminPath: ''
|
||||
|
||||
}
|
||||
|
||||
// 设置后台接口服务的基础地址
|
||||
config.baseUrl = 'http://localhost:8299/api';
|
||||
|
||||
// 建议:打开下面注释,方便根据环境,自动设定服务地址
|
||||
if (process.env.NODE_ENV === 'development'){
|
||||
// config.baseUrl = '/../js'; // 代理模式 vue.config.js 中找到 devServer 设置的地址
|
||||
// config.baseUrl = 'http://127.0.0.1:8980/js';
|
||||
}
|
||||
|
||||
export default config;
|
||||
72
hotgo-uniapp/common/http.api.js
Normal file
@@ -0,0 +1,72 @@
|
||||
/**
|
||||
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
|
||||
*/
|
||||
// 此处第二个参数vm,就是我们在页面使用的this,你可以通过vm获取vuex等操作
|
||||
const install = (Vue, vm) => {
|
||||
|
||||
// 参数配置对象
|
||||
const config = vm.vuex_config;
|
||||
|
||||
// 将各个定义的接口名称,统一放进对象挂载到vm.$u.api(因为vm就是this,也即this.$u.api)下
|
||||
vm.$u.api = {
|
||||
/** 登录 */
|
||||
loginCheck: (params = {}) => vm.$u.get(config.adminPath + '/login/check', params),
|
||||
login: (params = {}) => vm.$u.post(config.adminPath + '/login/sign', params),
|
||||
logout: (params = {}) => vm.$u.get(config.adminPath + '/login/logout', params),
|
||||
|
||||
/** 会员 */
|
||||
memberProfile: (params = {}) => vm.$u.get(config.adminPath + '/member/profile', params),
|
||||
|
||||
// 基础服务:登录登出、身份信息、菜单授权、切换系统、字典数据等
|
||||
lang: (params = {}) => vm.$u.get('/base/lang', {'l': params.lang}),
|
||||
index: (params = {}) => vm.$u.get(config.adminPath + '/index', params),
|
||||
authInfo: (params = {}) => vm.$u.get(config.adminPath + '/authInfo', params),
|
||||
menuTree: (params = {}) => vm.$u.get(config.adminPath + '/menuTree', params),
|
||||
switchSys: (params = {}) => vm.$u.get(config.adminPath + '/switch/' + params.sysCode),
|
||||
dictData: (params = {}) => vm.$u.get(config.adminPath + '/dict/attribute', params),
|
||||
|
||||
// 账号服务:验证码接口、忘记密码接口、注册账号接口等
|
||||
validCode: (params = {}) => vm.$u.getText('/validCode', params),
|
||||
getFpValidCode: (params = {}) => vm.$u.post('/account/getFpValidCode', params),
|
||||
savePwdByValidCode: (params = {}) => vm.$u.post('/account/savePwdByValidCode', params),
|
||||
getRegValidCode: (params = {}) => vm.$u.post('/account/getRegValidCode', params),
|
||||
saveRegByValidCode: (params = {}) => vm.$u.post('/account/saveRegByValidCode', params),
|
||||
|
||||
// APP公共服务
|
||||
upgradeCheck: () => vm.$u.post('/app/upgrade/check', {appCode: config.appCode, appVersion: config.appVersion}),
|
||||
commentSave: (params = {}) => vm.$u.post('/app/comment/save', params),
|
||||
|
||||
// 个人信息修改
|
||||
user: {
|
||||
infoSaveBase: (params = {}) => vm.$u.post(config.adminPath + '/sys/user/infoSaveBase', params),
|
||||
infoSavePwd: (params = {}) => vm.$u.post(config.adminPath + '/sys/user/infoSavePwd', params),
|
||||
infoSavePqa: (params = {}) => vm.$u.post(config.adminPath + '/sys/user/infoSavePqa', params),
|
||||
},
|
||||
|
||||
// 员工用户查询
|
||||
empUser: {
|
||||
listData: (params = {}) => vm.$u.get(config.adminPath + '/sys/empUser/listData', params),
|
||||
},
|
||||
|
||||
// 组织机构查询
|
||||
office: {
|
||||
treeData: (params = {}) => vm.$u.get(config.adminPath + '/sys/office/treeData', params),
|
||||
},
|
||||
|
||||
// 增删改查例子
|
||||
testData: {
|
||||
form: (params = {}) => vm.$u.post(config.adminPath + '/test/testData/form', params),
|
||||
list: (params = {}) => vm.$u.get(config.adminPath + '/log/list', params),
|
||||
save: (params = {}) => vm.$u.postJson(config.adminPath + '/test/testData/save', params),
|
||||
disable: (params = {}) => vm.$u.post(config.adminPath + '/test/testData/disable', params),
|
||||
enable: (params = {}) => vm.$u.post(config.adminPath + '/test/testData/enable', params),
|
||||
delete: (params = {}) => vm.$u.post(config.adminPath + '/test/testData/delete', params),
|
||||
},
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
export default {
|
||||
install
|
||||
}
|
||||
139
hotgo-uniapp/common/http.interceptor.js
Normal file
@@ -0,0 +1,139 @@
|
||||
/**
|
||||
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
|
||||
*/
|
||||
// 此处第二个参数vm,就是我们在页面使用的this,你可以通过vm获取vuex等操作
|
||||
const install = (Vue, vm) => {
|
||||
|
||||
// 通用请求头设定
|
||||
const ajaxHeader = 'x-ajax';
|
||||
const sessionIdHeader = 'Authorization';
|
||||
const rememberMeHeader = 'x-remember';
|
||||
|
||||
// 请求参数默认配置
|
||||
Vue.prototype.$u.http.setConfig({
|
||||
baseUrl: vm.vuex_config.baseUrl,
|
||||
originalData: true,
|
||||
// 默认头部,http2约定header名称统一小写 ThinkGem
|
||||
header: {
|
||||
'content-type': 'application/x-www-form-urlencoded',
|
||||
'x-requested-with': 'XMLHttpRequest'
|
||||
}
|
||||
});
|
||||
|
||||
// 请求拦截,配置Token等参数
|
||||
Vue.prototype.$u.http.interceptor.request = (req) => {
|
||||
|
||||
if (!req.header) {
|
||||
req.header = [];
|
||||
}
|
||||
|
||||
// 默认指定返回 JSON 数据
|
||||
if (!req.header[ajaxHeader]) {
|
||||
req.header[ajaxHeader] = 'json';
|
||||
}
|
||||
|
||||
// 设定传递 Token 认证参数 ThinkGem
|
||||
if (!req.header[sessionIdHeader] && vm.vuex_token) {
|
||||
req.header[sessionIdHeader] = 'Bearer ' + vm.vuex_token;
|
||||
}
|
||||
|
||||
// 为节省流量,记住我数据不是每次都发送的,当会话失效后,尝试重试登录 ThinkGem
|
||||
if (!req.header[rememberMeHeader] && vm.vuex_remember && req.remember) {
|
||||
req.header[rememberMeHeader] = vm.vuex_remember;
|
||||
req.remember = false;
|
||||
}
|
||||
|
||||
// console.log('request', req);
|
||||
return req;
|
||||
}
|
||||
|
||||
// 响应拦截,判断状态码是否通过
|
||||
Vue.prototype.$u.http.interceptor.response = async (res, req) => {
|
||||
|
||||
// console.log('拦截器response:' + JSON.stringify(res))
|
||||
// console.log('options:' + JSON.stringify(req))
|
||||
let data = res.data;
|
||||
if (!(data)) {
|
||||
vm.$u.toast('未连接到服务器');
|
||||
return false;
|
||||
}
|
||||
|
||||
if (typeof data === 'object') {
|
||||
// 异常接管
|
||||
if (data.code === 61) {
|
||||
this.$u.toast('请重新登录');
|
||||
setTimeout(() => {
|
||||
uni.reLaunch({
|
||||
url: '/pages/sys/login/index'
|
||||
});
|
||||
}, 500);
|
||||
return
|
||||
}
|
||||
if (data.code === -1 || data.code >= 50 && data.code <= 70) {
|
||||
this.$u.toast(data.message);
|
||||
return
|
||||
}
|
||||
// 登录
|
||||
if (req.url.indexOf("/api/login/sign") !== -1) {
|
||||
vm.$u.vuex('vuex_token', data.data.token);
|
||||
vm.$u.vuex('vuex_user', data.data);
|
||||
}
|
||||
|
||||
if (data.result === 'login') {
|
||||
vm.$u.vuex('vuex_token', '');
|
||||
vm.$u.vuex('vuex_user', {});
|
||||
if (req.tryagain === undefined || req.tryagain) {
|
||||
req.tryagain = false;
|
||||
req.remember = true;
|
||||
await vm.$u.http.request(req).then(res => {
|
||||
data = res;
|
||||
});
|
||||
}
|
||||
if (data.result === 'login') {
|
||||
if (!req.data.loginCheck) {
|
||||
vm.$u.toast(data.message);
|
||||
}
|
||||
req.tryagain = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (res.header && res.header[rememberMeHeader]) {
|
||||
let remember = res.header[rememberMeHeader];
|
||||
if (remember && remember !== 'deleteMe') {
|
||||
vm.$u.vuex('vuex_remember', remember);
|
||||
} else {
|
||||
vm.$u.vuex('vuex_remember', '');
|
||||
}
|
||||
}
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
// 封装 get text 请求
|
||||
vm.$u.getText = (url, data = {}, header = {}) => {
|
||||
return vm.$u.http.request({
|
||||
dataType: 'text',
|
||||
method: 'GET',
|
||||
url,
|
||||
header,
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 封装 post json 请求
|
||||
vm.$u.postJson = (url, data = {}, header = {}) => {
|
||||
header['content-type'] = 'application/json';
|
||||
return vm.$u.http.request({
|
||||
url,
|
||||
method: 'POST',
|
||||
header,
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export default {
|
||||
install
|
||||
}
|
||||
33
hotgo-uniapp/common/locales/en.js
Normal file
@@ -0,0 +1,33 @@
|
||||
/**
|
||||
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
|
||||
*/
|
||||
export default {
|
||||
common: {
|
||||
title: 'JeeSite',
|
||||
},
|
||||
nav: {
|
||||
home: 'Home',
|
||||
user: 'User',
|
||||
msg: 'Msg'
|
||||
},
|
||||
login: {
|
||||
title: 'Login',
|
||||
placeholderAccount: 'Enter Account',
|
||||
placeholderPassword: 'Enter Password',
|
||||
autoLogin: 'Auto Login',
|
||||
loginButton: 'Login',
|
||||
logoutButton: 'Logout',
|
||||
forget: 'Forget Password',
|
||||
reg: 'Resister Account',
|
||||
noLogin: 'No Login'
|
||||
},
|
||||
home: {
|
||||
title: 'Home'
|
||||
},
|
||||
user: {
|
||||
title: 'User'
|
||||
},
|
||||
msg: {
|
||||
title: 'Message'
|
||||
}
|
||||
}
|
||||
33
hotgo-uniapp/common/locales/zh_CN.js
Normal file
@@ -0,0 +1,33 @@
|
||||
/**
|
||||
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
|
||||
*/
|
||||
export default {
|
||||
common: {
|
||||
title: 'JeeSite',
|
||||
},
|
||||
nav: {
|
||||
home: '工作台',
|
||||
user: '用户',
|
||||
msg: '消息'
|
||||
},
|
||||
login: {
|
||||
title: '登录',
|
||||
placeholderAccount: '请输入账号',
|
||||
placeholderPassword: '请输入密码',
|
||||
autoLogin: '自动登录',
|
||||
loginButton: '登录',
|
||||
logoutButton: '退出登录',
|
||||
forget: '忘记密码',
|
||||
reg: '注册账号',
|
||||
noLogin: '未登录'
|
||||
},
|
||||
home: {
|
||||
title: '工作台'
|
||||
},
|
||||
user: {
|
||||
title: '用户中心'
|
||||
},
|
||||
msg: {
|
||||
title: '消息提醒'
|
||||
}
|
||||
}
|
||||
751
hotgo-uniapp/common/spark-md5.js
Normal file
@@ -0,0 +1,751 @@
|
||||
(function (factory) {
|
||||
if (typeof exports === 'object') {
|
||||
// Node/CommonJS
|
||||
module.exports = factory();
|
||||
} else if (typeof define === 'function' && define.amd) {
|
||||
// AMD
|
||||
define(factory);
|
||||
} else {
|
||||
// Browser globals (with support for web workers)
|
||||
var glob;
|
||||
|
||||
try {
|
||||
glob = window;
|
||||
} catch (e) {
|
||||
glob = self;
|
||||
}
|
||||
|
||||
glob.SparkMD5 = factory();
|
||||
}
|
||||
}(function (undefined) {
|
||||
|
||||
'use strict';
|
||||
|
||||
/*
|
||||
* Fastest md5 implementation around (JKM md5).
|
||||
* Credits: Joseph Myers
|
||||
*
|
||||
* @see http://www.myersdaily.org/joseph/javascript/md5-text.html
|
||||
* @see http://jsperf.com/md5-shootout/7
|
||||
*/
|
||||
|
||||
/* this function is much faster,
|
||||
so if possible we use it. Some IEs
|
||||
are the only ones I know of that
|
||||
need the idiotic second function,
|
||||
generated by an if clause. */
|
||||
var add32 = function (a, b) {
|
||||
return (a + b) & 0xFFFFFFFF;
|
||||
},
|
||||
hex_chr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];
|
||||
|
||||
|
||||
function cmn(q, a, b, x, s, t) {
|
||||
a = add32(add32(a, q), add32(x, t));
|
||||
return add32((a << s) | (a >>> (32 - s)), b);
|
||||
}
|
||||
|
||||
function md5cycle(x, k) {
|
||||
var a = x[0],
|
||||
b = x[1],
|
||||
c = x[2],
|
||||
d = x[3];
|
||||
|
||||
a += (b & c | ~b & d) + k[0] - 680876936 | 0;
|
||||
a = (a << 7 | a >>> 25) + b | 0;
|
||||
d += (a & b | ~a & c) + k[1] - 389564586 | 0;
|
||||
d = (d << 12 | d >>> 20) + a | 0;
|
||||
c += (d & a | ~d & b) + k[2] + 606105819 | 0;
|
||||
c = (c << 17 | c >>> 15) + d | 0;
|
||||
b += (c & d | ~c & a) + k[3] - 1044525330 | 0;
|
||||
b = (b << 22 | b >>> 10) + c | 0;
|
||||
a += (b & c | ~b & d) + k[4] - 176418897 | 0;
|
||||
a = (a << 7 | a >>> 25) + b | 0;
|
||||
d += (a & b | ~a & c) + k[5] + 1200080426 | 0;
|
||||
d = (d << 12 | d >>> 20) + a | 0;
|
||||
c += (d & a | ~d & b) + k[6] - 1473231341 | 0;
|
||||
c = (c << 17 | c >>> 15) + d | 0;
|
||||
b += (c & d | ~c & a) + k[7] - 45705983 | 0;
|
||||
b = (b << 22 | b >>> 10) + c | 0;
|
||||
a += (b & c | ~b & d) + k[8] + 1770035416 | 0;
|
||||
a = (a << 7 | a >>> 25) + b | 0;
|
||||
d += (a & b | ~a & c) + k[9] - 1958414417 | 0;
|
||||
d = (d << 12 | d >>> 20) + a | 0;
|
||||
c += (d & a | ~d & b) + k[10] - 42063 | 0;
|
||||
c = (c << 17 | c >>> 15) + d | 0;
|
||||
b += (c & d | ~c & a) + k[11] - 1990404162 | 0;
|
||||
b = (b << 22 | b >>> 10) + c | 0;
|
||||
a += (b & c | ~b & d) + k[12] + 1804603682 | 0;
|
||||
a = (a << 7 | a >>> 25) + b | 0;
|
||||
d += (a & b | ~a & c) + k[13] - 40341101 | 0;
|
||||
d = (d << 12 | d >>> 20) + a | 0;
|
||||
c += (d & a | ~d & b) + k[14] - 1502002290 | 0;
|
||||
c = (c << 17 | c >>> 15) + d | 0;
|
||||
b += (c & d | ~c & a) + k[15] + 1236535329 | 0;
|
||||
b = (b << 22 | b >>> 10) + c | 0;
|
||||
|
||||
a += (b & d | c & ~d) + k[1] - 165796510 | 0;
|
||||
a = (a << 5 | a >>> 27) + b | 0;
|
||||
d += (a & c | b & ~c) + k[6] - 1069501632 | 0;
|
||||
d = (d << 9 | d >>> 23) + a | 0;
|
||||
c += (d & b | a & ~b) + k[11] + 643717713 | 0;
|
||||
c = (c << 14 | c >>> 18) + d | 0;
|
||||
b += (c & a | d & ~a) + k[0] - 373897302 | 0;
|
||||
b = (b << 20 | b >>> 12) + c | 0;
|
||||
a += (b & d | c & ~d) + k[5] - 701558691 | 0;
|
||||
a = (a << 5 | a >>> 27) + b | 0;
|
||||
d += (a & c | b & ~c) + k[10] + 38016083 | 0;
|
||||
d = (d << 9 | d >>> 23) + a | 0;
|
||||
c += (d & b | a & ~b) + k[15] - 660478335 | 0;
|
||||
c = (c << 14 | c >>> 18) + d | 0;
|
||||
b += (c & a | d & ~a) + k[4] - 405537848 | 0;
|
||||
b = (b << 20 | b >>> 12) + c | 0;
|
||||
a += (b & d | c & ~d) + k[9] + 568446438 | 0;
|
||||
a = (a << 5 | a >>> 27) + b | 0;
|
||||
d += (a & c | b & ~c) + k[14] - 1019803690 | 0;
|
||||
d = (d << 9 | d >>> 23) + a | 0;
|
||||
c += (d & b | a & ~b) + k[3] - 187363961 | 0;
|
||||
c = (c << 14 | c >>> 18) + d | 0;
|
||||
b += (c & a | d & ~a) + k[8] + 1163531501 | 0;
|
||||
b = (b << 20 | b >>> 12) + c | 0;
|
||||
a += (b & d | c & ~d) + k[13] - 1444681467 | 0;
|
||||
a = (a << 5 | a >>> 27) + b | 0;
|
||||
d += (a & c | b & ~c) + k[2] - 51403784 | 0;
|
||||
d = (d << 9 | d >>> 23) + a | 0;
|
||||
c += (d & b | a & ~b) + k[7] + 1735328473 | 0;
|
||||
c = (c << 14 | c >>> 18) + d | 0;
|
||||
b += (c & a | d & ~a) + k[12] - 1926607734 | 0;
|
||||
b = (b << 20 | b >>> 12) + c | 0;
|
||||
|
||||
a += (b ^ c ^ d) + k[5] - 378558 | 0;
|
||||
a = (a << 4 | a >>> 28) + b | 0;
|
||||
d += (a ^ b ^ c) + k[8] - 2022574463 | 0;
|
||||
d = (d << 11 | d >>> 21) + a | 0;
|
||||
c += (d ^ a ^ b) + k[11] + 1839030562 | 0;
|
||||
c = (c << 16 | c >>> 16) + d | 0;
|
||||
b += (c ^ d ^ a) + k[14] - 35309556 | 0;
|
||||
b = (b << 23 | b >>> 9) + c | 0;
|
||||
a += (b ^ c ^ d) + k[1] - 1530992060 | 0;
|
||||
a = (a << 4 | a >>> 28) + b | 0;
|
||||
d += (a ^ b ^ c) + k[4] + 1272893353 | 0;
|
||||
d = (d << 11 | d >>> 21) + a | 0;
|
||||
c += (d ^ a ^ b) + k[7] - 155497632 | 0;
|
||||
c = (c << 16 | c >>> 16) + d | 0;
|
||||
b += (c ^ d ^ a) + k[10] - 1094730640 | 0;
|
||||
b = (b << 23 | b >>> 9) + c | 0;
|
||||
a += (b ^ c ^ d) + k[13] + 681279174 | 0;
|
||||
a = (a << 4 | a >>> 28) + b | 0;
|
||||
d += (a ^ b ^ c) + k[0] - 358537222 | 0;
|
||||
d = (d << 11 | d >>> 21) + a | 0;
|
||||
c += (d ^ a ^ b) + k[3] - 722521979 | 0;
|
||||
c = (c << 16 | c >>> 16) + d | 0;
|
||||
b += (c ^ d ^ a) + k[6] + 76029189 | 0;
|
||||
b = (b << 23 | b >>> 9) + c | 0;
|
||||
a += (b ^ c ^ d) + k[9] - 640364487 | 0;
|
||||
a = (a << 4 | a >>> 28) + b | 0;
|
||||
d += (a ^ b ^ c) + k[12] - 421815835 | 0;
|
||||
d = (d << 11 | d >>> 21) + a | 0;
|
||||
c += (d ^ a ^ b) + k[15] + 530742520 | 0;
|
||||
c = (c << 16 | c >>> 16) + d | 0;
|
||||
b += (c ^ d ^ a) + k[2] - 995338651 | 0;
|
||||
b = (b << 23 | b >>> 9) + c | 0;
|
||||
|
||||
a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;
|
||||
a = (a << 6 | a >>> 26) + b | 0;
|
||||
d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;
|
||||
d = (d << 10 | d >>> 22) + a | 0;
|
||||
c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;
|
||||
c = (c << 15 | c >>> 17) + d | 0;
|
||||
b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;
|
||||
b = (b << 21 |b >>> 11) + c | 0;
|
||||
a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;
|
||||
a = (a << 6 | a >>> 26) + b | 0;
|
||||
d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;
|
||||
d = (d << 10 | d >>> 22) + a | 0;
|
||||
c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;
|
||||
c = (c << 15 | c >>> 17) + d | 0;
|
||||
b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;
|
||||
b = (b << 21 |b >>> 11) + c | 0;
|
||||
a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;
|
||||
a = (a << 6 | a >>> 26) + b | 0;
|
||||
d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;
|
||||
d = (d << 10 | d >>> 22) + a | 0;
|
||||
c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;
|
||||
c = (c << 15 | c >>> 17) + d | 0;
|
||||
b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;
|
||||
b = (b << 21 |b >>> 11) + c | 0;
|
||||
a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;
|
||||
a = (a << 6 | a >>> 26) + b | 0;
|
||||
d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;
|
||||
d = (d << 10 | d >>> 22) + a | 0;
|
||||
c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;
|
||||
c = (c << 15 | c >>> 17) + d | 0;
|
||||
b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;
|
||||
b = (b << 21 | b >>> 11) + c | 0;
|
||||
|
||||
x[0] = a + x[0] | 0;
|
||||
x[1] = b + x[1] | 0;
|
||||
x[2] = c + x[2] | 0;
|
||||
x[3] = d + x[3] | 0;
|
||||
}
|
||||
|
||||
function md5blk(s) {
|
||||
var md5blks = [],
|
||||
i; /* Andy King said do it this way. */
|
||||
|
||||
for (i = 0; i < 64; i += 4) {
|
||||
md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);
|
||||
}
|
||||
return md5blks;
|
||||
}
|
||||
|
||||
function md5blk_array(a) {
|
||||
var md5blks = [],
|
||||
i; /* Andy King said do it this way. */
|
||||
|
||||
for (i = 0; i < 64; i += 4) {
|
||||
md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);
|
||||
}
|
||||
return md5blks;
|
||||
}
|
||||
|
||||
function md51(s) {
|
||||
var n = s.length,
|
||||
state = [1732584193, -271733879, -1732584194, 271733878],
|
||||
i,
|
||||
length,
|
||||
tail,
|
||||
tmp,
|
||||
lo,
|
||||
hi;
|
||||
|
||||
for (i = 64; i <= n; i += 64) {
|
||||
md5cycle(state, md5blk(s.substring(i - 64, i)));
|
||||
}
|
||||
s = s.substring(i - 64);
|
||||
length = s.length;
|
||||
tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
|
||||
for (i = 0; i < length; i += 1) {
|
||||
tail[i >> 2] |= s.charCodeAt(i) << ((i % 4) << 3);
|
||||
}
|
||||
tail[i >> 2] |= 0x80 << ((i % 4) << 3);
|
||||
if (i > 55) {
|
||||
md5cycle(state, tail);
|
||||
for (i = 0; i < 16; i += 1) {
|
||||
tail[i] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Beware that the final length might not fit in 32 bits so we take care of that
|
||||
tmp = n * 8;
|
||||
tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);
|
||||
lo = parseInt(tmp[2], 16);
|
||||
hi = parseInt(tmp[1], 16) || 0;
|
||||
|
||||
tail[14] = lo;
|
||||
tail[15] = hi;
|
||||
|
||||
md5cycle(state, tail);
|
||||
return state;
|
||||
}
|
||||
|
||||
function md51_array(a) {
|
||||
var n = a.length,
|
||||
state = [1732584193, -271733879, -1732584194, 271733878],
|
||||
i,
|
||||
length,
|
||||
tail,
|
||||
tmp,
|
||||
lo,
|
||||
hi;
|
||||
|
||||
for (i = 64; i <= n; i += 64) {
|
||||
md5cycle(state, md5blk_array(a.subarray(i - 64, i)));
|
||||
}
|
||||
|
||||
// Not sure if it is a bug, however IE10 will always produce a sub array of length 1
|
||||
// containing the last element of the parent array if the sub array specified starts
|
||||
// beyond the length of the parent array - weird.
|
||||
// https://connect.microsoft.com/IE/feedback/details/771452/typed-array-subarray-issue
|
||||
a = (i - 64) < n ? a.subarray(i - 64) : new Uint8Array(0);
|
||||
|
||||
length = a.length;
|
||||
tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
|
||||
for (i = 0; i < length; i += 1) {
|
||||
tail[i >> 2] |= a[i] << ((i % 4) << 3);
|
||||
}
|
||||
|
||||
tail[i >> 2] |= 0x80 << ((i % 4) << 3);
|
||||
if (i > 55) {
|
||||
md5cycle(state, tail);
|
||||
for (i = 0; i < 16; i += 1) {
|
||||
tail[i] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Beware that the final length might not fit in 32 bits so we take care of that
|
||||
tmp = n * 8;
|
||||
tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);
|
||||
lo = parseInt(tmp[2], 16);
|
||||
hi = parseInt(tmp[1], 16) || 0;
|
||||
|
||||
tail[14] = lo;
|
||||
tail[15] = hi;
|
||||
|
||||
md5cycle(state, tail);
|
||||
|
||||
return state;
|
||||
}
|
||||
|
||||
function rhex(n) {
|
||||
var s = '',
|
||||
j;
|
||||
for (j = 0; j < 4; j += 1) {
|
||||
s += hex_chr[(n >> (j * 8 + 4)) & 0x0F] + hex_chr[(n >> (j * 8)) & 0x0F];
|
||||
}
|
||||
return s;
|
||||
}
|
||||
|
||||
function hex(x) {
|
||||
var i;
|
||||
for (i = 0; i < x.length; i += 1) {
|
||||
x[i] = rhex(x[i]);
|
||||
}
|
||||
return x.join('');
|
||||
}
|
||||
|
||||
// In some cases the fast add32 function cannot be used..
|
||||
if (hex(md51('hello')) !== '5d41402abc4b2a76b9719d911017c592') {
|
||||
add32 = function (x, y) {
|
||||
var lsw = (x & 0xFFFF) + (y & 0xFFFF),
|
||||
msw = (x >> 16) + (y >> 16) + (lsw >> 16);
|
||||
return (msw << 16) | (lsw & 0xFFFF);
|
||||
};
|
||||
}
|
||||
|
||||
// ---------------------------------------------------
|
||||
|
||||
/**
|
||||
* ArrayBuffer slice polyfill.
|
||||
*
|
||||
* @see https://github.com/ttaubert/node-arraybuffer-slice
|
||||
*/
|
||||
|
||||
if (typeof ArrayBuffer !== 'undefined' && !ArrayBuffer.prototype.slice) {
|
||||
(function () {
|
||||
function clamp(val, length) {
|
||||
val = (val | 0) || 0;
|
||||
|
||||
if (val < 0) {
|
||||
return Math.max(val + length, 0);
|
||||
}
|
||||
|
||||
return Math.min(val, length);
|
||||
}
|
||||
|
||||
ArrayBuffer.prototype.slice = function (from, to) {
|
||||
var length = this.byteLength,
|
||||
begin = clamp(from, length),
|
||||
end = length,
|
||||
num,
|
||||
target,
|
||||
targetArray,
|
||||
sourceArray;
|
||||
|
||||
if (to !== undefined) {
|
||||
end = clamp(to, length);
|
||||
}
|
||||
|
||||
if (begin > end) {
|
||||
return new ArrayBuffer(0);
|
||||
}
|
||||
|
||||
num = end - begin;
|
||||
target = new ArrayBuffer(num);
|
||||
targetArray = new Uint8Array(target);
|
||||
|
||||
sourceArray = new Uint8Array(this, begin, num);
|
||||
targetArray.set(sourceArray);
|
||||
|
||||
return target;
|
||||
};
|
||||
})();
|
||||
}
|
||||
|
||||
// ---------------------------------------------------
|
||||
|
||||
/**
|
||||
* Helpers.
|
||||
*/
|
||||
|
||||
function toUtf8(str) {
|
||||
if (/[\u0080-\uFFFF]/.test(str)) {
|
||||
str = unescape(encodeURIComponent(str));
|
||||
}
|
||||
|
||||
return str;
|
||||
}
|
||||
|
||||
function utf8Str2ArrayBuffer(str, returnUInt8Array) {
|
||||
var length = str.length,
|
||||
buff = new ArrayBuffer(length),
|
||||
arr = new Uint8Array(buff),
|
||||
i;
|
||||
|
||||
for (i = 0; i < length; i += 1) {
|
||||
arr[i] = str.charCodeAt(i);
|
||||
}
|
||||
|
||||
return returnUInt8Array ? arr : buff;
|
||||
}
|
||||
|
||||
function arrayBuffer2Utf8Str(buff) {
|
||||
return String.fromCharCode.apply(null, new Uint8Array(buff));
|
||||
}
|
||||
|
||||
function concatenateArrayBuffers(first, second, returnUInt8Array) {
|
||||
var result = new Uint8Array(first.byteLength + second.byteLength);
|
||||
|
||||
result.set(new Uint8Array(first));
|
||||
result.set(new Uint8Array(second), first.byteLength);
|
||||
|
||||
return returnUInt8Array ? result : result.buffer;
|
||||
}
|
||||
|
||||
function hexToBinaryString(hex) {
|
||||
var bytes = [],
|
||||
length = hex.length,
|
||||
x;
|
||||
|
||||
for (x = 0; x < length - 1; x += 2) {
|
||||
bytes.push(parseInt(hex.substr(x, 2), 16));
|
||||
}
|
||||
|
||||
return String.fromCharCode.apply(String, bytes);
|
||||
}
|
||||
|
||||
// ---------------------------------------------------
|
||||
|
||||
/**
|
||||
* SparkMD5 OOP implementation.
|
||||
*
|
||||
* Use this class to perform an incremental md5, otherwise use the
|
||||
* static methods instead.
|
||||
*/
|
||||
|
||||
function SparkMD5() {
|
||||
// call reset to init the instance
|
||||
this.reset();
|
||||
}
|
||||
|
||||
/**
|
||||
* Appends a string.
|
||||
* A conversion will be applied if an utf8 string is detected.
|
||||
*
|
||||
* @param {String} str The string to be appended
|
||||
*
|
||||
* @return {SparkMD5} The instance itself
|
||||
*/
|
||||
SparkMD5.prototype.append = function (str) {
|
||||
// Converts the string to utf8 bytes if necessary
|
||||
// Then append as binary
|
||||
this.appendBinary(toUtf8(str));
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
/**
|
||||
* Appends a binary string.
|
||||
*
|
||||
* @param {String} contents The binary string to be appended
|
||||
*
|
||||
* @return {SparkMD5} The instance itself
|
||||
*/
|
||||
SparkMD5.prototype.appendBinary = function (contents) {
|
||||
this._buff += contents;
|
||||
this._length += contents.length;
|
||||
|
||||
var length = this._buff.length,
|
||||
i;
|
||||
|
||||
for (i = 64; i <= length; i += 64) {
|
||||
md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));
|
||||
}
|
||||
|
||||
this._buff = this._buff.substring(i - 64);
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
/**
|
||||
* Finishes the incremental computation, reseting the internal state and
|
||||
* returning the result.
|
||||
*
|
||||
* @param {Boolean} raw True to get the raw string, false to get the hex string
|
||||
*
|
||||
* @return {String} The result
|
||||
*/
|
||||
SparkMD5.prototype.end = function (raw) {
|
||||
var buff = this._buff,
|
||||
length = buff.length,
|
||||
i,
|
||||
tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
ret;
|
||||
|
||||
for (i = 0; i < length; i += 1) {
|
||||
tail[i >> 2] |= buff.charCodeAt(i) << ((i % 4) << 3);
|
||||
}
|
||||
|
||||
this._finish(tail, length);
|
||||
ret = hex(this._hash);
|
||||
|
||||
if (raw) {
|
||||
ret = hexToBinaryString(ret);
|
||||
}
|
||||
|
||||
this.reset();
|
||||
|
||||
return ret;
|
||||
};
|
||||
|
||||
/**
|
||||
* Resets the internal state of the computation.
|
||||
*
|
||||
* @return {SparkMD5} The instance itself
|
||||
*/
|
||||
SparkMD5.prototype.reset = function () {
|
||||
this._buff = '';
|
||||
this._length = 0;
|
||||
this._hash = [1732584193, -271733879, -1732584194, 271733878];
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
/**
|
||||
* Gets the internal state of the computation.
|
||||
*
|
||||
* @return {Object} The state
|
||||
*/
|
||||
SparkMD5.prototype.getState = function () {
|
||||
return {
|
||||
buff: this._buff,
|
||||
length: this._length,
|
||||
hash: this._hash.slice()
|
||||
};
|
||||
};
|
||||
|
||||
/**
|
||||
* Gets the internal state of the computation.
|
||||
*
|
||||
* @param {Object} state The state
|
||||
*
|
||||
* @return {SparkMD5} The instance itself
|
||||
*/
|
||||
SparkMD5.prototype.setState = function (state) {
|
||||
this._buff = state.buff;
|
||||
this._length = state.length;
|
||||
this._hash = state.hash;
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
/**
|
||||
* Releases memory used by the incremental buffer and other additional
|
||||
* resources. If you plan to use the instance again, use reset instead.
|
||||
*/
|
||||
SparkMD5.prototype.destroy = function () {
|
||||
delete this._hash;
|
||||
delete this._buff;
|
||||
delete this._length;
|
||||
};
|
||||
|
||||
/**
|
||||
* Finish the final calculation based on the tail.
|
||||
*
|
||||
* @param {Array} tail The tail (will be modified)
|
||||
* @param {Number} length The length of the remaining buffer
|
||||
*/
|
||||
SparkMD5.prototype._finish = function (tail, length) {
|
||||
var i = length,
|
||||
tmp,
|
||||
lo,
|
||||
hi;
|
||||
|
||||
tail[i >> 2] |= 0x80 << ((i % 4) << 3);
|
||||
if (i > 55) {
|
||||
md5cycle(this._hash, tail);
|
||||
for (i = 0; i < 16; i += 1) {
|
||||
tail[i] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Do the final computation based on the tail and length
|
||||
// Beware that the final length may not fit in 32 bits so we take care of that
|
||||
tmp = this._length * 8;
|
||||
tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);
|
||||
lo = parseInt(tmp[2], 16);
|
||||
hi = parseInt(tmp[1], 16) || 0;
|
||||
|
||||
tail[14] = lo;
|
||||
tail[15] = hi;
|
||||
md5cycle(this._hash, tail);
|
||||
};
|
||||
|
||||
/**
|
||||
* Performs the md5 hash on a string.
|
||||
* A conversion will be applied if utf8 string is detected.
|
||||
*
|
||||
* @param {String} str The string
|
||||
* @param {Boolean} [raw] True to get the raw string, false to get the hex string
|
||||
*
|
||||
* @return {String} The result
|
||||
*/
|
||||
SparkMD5.hash = function (str, raw) {
|
||||
// Converts the string to utf8 bytes if necessary
|
||||
// Then compute it using the binary function
|
||||
return SparkMD5.hashBinary(toUtf8(str), raw);
|
||||
};
|
||||
|
||||
/**
|
||||
* Performs the md5 hash on a binary string.
|
||||
*
|
||||
* @param {String} content The binary string
|
||||
* @param {Boolean} [raw] True to get the raw string, false to get the hex string
|
||||
*
|
||||
* @return {String} The result
|
||||
*/
|
||||
SparkMD5.hashBinary = function (content, raw) {
|
||||
var hash = md51(content),
|
||||
ret = hex(hash);
|
||||
|
||||
return raw ? hexToBinaryString(ret) : ret;
|
||||
};
|
||||
|
||||
// ---------------------------------------------------
|
||||
|
||||
/**
|
||||
* SparkMD5 OOP implementation for array buffers.
|
||||
*
|
||||
* Use this class to perform an incremental md5 ONLY for array buffers.
|
||||
*/
|
||||
SparkMD5.ArrayBuffer = function () {
|
||||
// call reset to init the instance
|
||||
this.reset();
|
||||
};
|
||||
|
||||
/**
|
||||
* Appends an array buffer.
|
||||
*
|
||||
* @param {ArrayBuffer} arr The array to be appended
|
||||
*
|
||||
* @return {SparkMD5.ArrayBuffer} The instance itself
|
||||
*/
|
||||
SparkMD5.ArrayBuffer.prototype.append = function (arr) {
|
||||
var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),
|
||||
length = buff.length,
|
||||
i;
|
||||
|
||||
this._length += arr.byteLength;
|
||||
|
||||
for (i = 64; i <= length; i += 64) {
|
||||
md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));
|
||||
}
|
||||
|
||||
this._buff = (i - 64) < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
/**
|
||||
* Finishes the incremental computation, reseting the internal state and
|
||||
* returning the result.
|
||||
*
|
||||
* @param {Boolean} raw True to get the raw string, false to get the hex string
|
||||
*
|
||||
* @return {String} The result
|
||||
*/
|
||||
SparkMD5.ArrayBuffer.prototype.end = function (raw) {
|
||||
var buff = this._buff,
|
||||
length = buff.length,
|
||||
tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
i,
|
||||
ret;
|
||||
|
||||
for (i = 0; i < length; i += 1) {
|
||||
tail[i >> 2] |= buff[i] << ((i % 4) << 3);
|
||||
}
|
||||
|
||||
this._finish(tail, length);
|
||||
ret = hex(this._hash);
|
||||
|
||||
if (raw) {
|
||||
ret = hexToBinaryString(ret);
|
||||
}
|
||||
|
||||
this.reset();
|
||||
|
||||
return ret;
|
||||
};
|
||||
|
||||
/**
|
||||
* Resets the internal state of the computation.
|
||||
*
|
||||
* @return {SparkMD5.ArrayBuffer} The instance itself
|
||||
*/
|
||||
SparkMD5.ArrayBuffer.prototype.reset = function () {
|
||||
this._buff = new Uint8Array(0);
|
||||
this._length = 0;
|
||||
this._hash = [1732584193, -271733879, -1732584194, 271733878];
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
/**
|
||||
* Gets the internal state of the computation.
|
||||
*
|
||||
* @return {Object} The state
|
||||
*/
|
||||
SparkMD5.ArrayBuffer.prototype.getState = function () {
|
||||
var state = SparkMD5.prototype.getState.call(this);
|
||||
|
||||
// Convert buffer to a string
|
||||
state.buff = arrayBuffer2Utf8Str(state.buff);
|
||||
|
||||
return state;
|
||||
};
|
||||
|
||||
/**
|
||||
* Gets the internal state of the computation.
|
||||
*
|
||||
* @param {Object} state The state
|
||||
*
|
||||
* @return {SparkMD5.ArrayBuffer} The instance itself
|
||||
*/
|
||||
SparkMD5.ArrayBuffer.prototype.setState = function (state) {
|
||||
// Convert string to buffer
|
||||
state.buff = utf8Str2ArrayBuffer(state.buff, true);
|
||||
|
||||
return SparkMD5.prototype.setState.call(this, state);
|
||||
};
|
||||
|
||||
SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;
|
||||
|
||||
SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;
|
||||
|
||||
/**
|
||||
* Performs the md5 hash on an array buffer.
|
||||
*
|
||||
* @param {ArrayBuffer} arr The array buffer
|
||||
* @param {Boolean} [raw] True to get the raw string, false to get the hex one
|
||||
*
|
||||
* @return {String} The result
|
||||
*/
|
||||
SparkMD5.ArrayBuffer.hash = function (arr, raw) {
|
||||
var hash = md51_array(new Uint8Array(arr)),
|
||||
ret = hex(hash);
|
||||
|
||||
return raw ? hexToBinaryString(ret) : ret;
|
||||
};
|
||||
|
||||
return SparkMD5;
|
||||
}));
|
||||
6
hotgo-uniapp/common/vue-i18n.min.js
vendored
Normal file
102
hotgo-uniapp/components/js-checkbox/js-checkbox.vue
Normal file
@@ -0,0 +1,102 @@
|
||||
<template>
|
||||
<view class="u-flex-1">
|
||||
<u-checkbox-group :disabled="disabled" @change="change">
|
||||
<u-checkbox v-model="item.checked" v-for="(item, index) in options.items" :key="index"
|
||||
:name="item.value">{{item.label}}</u-checkbox>
|
||||
</u-checkbox-group>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
/**
|
||||
* 复选框组件
|
||||
* @property {Object} value 用于双向绑定选择框的值,返回选择框的 Value
|
||||
* @property {Boolean} disabled 是否禁用模式,是否只读模式
|
||||
* @property {String} dictType 字典类型,从字典里获取,自动设置 items、itemLabel、itemValue
|
||||
* @property {String} items 列表数据,可接受对象集合,如:[{name: '是', value: '否'}]
|
||||
* @property {String} itemLabel 指定列表数据中的什么属性名作为 option 的标签名,如 name
|
||||
* @property {String} itemValue 指定列表数据中的什么属性名作为 option 的 value 值,如 value
|
||||
* @example <js-select v-model="model.type" dict-type="sys_yes_no"></js-select>
|
||||
* @description Copyright (c) 2013-Now http://jeesite.com All rights reserved.
|
||||
* @author ThinkGem
|
||||
* @version 2021-3-11
|
||||
*/
|
||||
export default {
|
||||
props: {
|
||||
value: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
dictType: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
items: {
|
||||
type: Array,
|
||||
default() {
|
||||
return [];
|
||||
}
|
||||
},
|
||||
itemLabel: {
|
||||
type: String,
|
||||
default: 'name'
|
||||
},
|
||||
itemValue: {
|
||||
type: String,
|
||||
default: 'value'
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
options: {
|
||||
value: (this.value && this.value.split(',')) || [],
|
||||
items: this.items
|
||||
}
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
value(val, oldVal) {
|
||||
this.options.value = (val && val.split(',')) || [];
|
||||
},
|
||||
items(val, oldVal){
|
||||
this.options.items = val;
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.loadData();
|
||||
},
|
||||
methods: {
|
||||
loadData(){
|
||||
if (this.dictType != ''){
|
||||
this.$u.api.dictData({type: this.dictType}).then(res => {
|
||||
// this.options.items = res;
|
||||
this.selectValue(res.data);
|
||||
});
|
||||
}else{
|
||||
// this.options.items = this.items;
|
||||
this.selectValue(this.items);
|
||||
}
|
||||
},
|
||||
selectValue(items){
|
||||
// 微信小程序,需要延迟下,否则获取不 value 导致无法回显数据
|
||||
this.$nextTick(() => {
|
||||
let vals = this.options.value;
|
||||
for (let i in items){
|
||||
let item = items[i];
|
||||
item.checked = vals.includes(item[this.itemValue]);
|
||||
}
|
||||
this.options.items = items;
|
||||
});
|
||||
},
|
||||
change(val, name){
|
||||
this.$emit('input', (val && val.join(',')) || '');
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
|
||||
</style>
|
||||
69
hotgo-uniapp/components/js-lang/js-lang.vue
Normal file
@@ -0,0 +1,69 @@
|
||||
<template>
|
||||
<view v-if="showBtn" class="js-lang" @tap="switchLang">
|
||||
<u-icon size="46" color="warning" :name="lang"></u-icon>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
/**
|
||||
* 语言切换组件
|
||||
* @property {String} title 顶部导航的标题 i18n 编码
|
||||
* @property {Boolean} showBtn 是否显示语言切换按钮
|
||||
* @example <js-lang title="login.title" :showBtn="true"></js-lang>
|
||||
* @description Copyright (c) 2013-Now http://jeesite.com All rights reserved.
|
||||
* @author ThinkGem
|
||||
* @version 2021-3-11
|
||||
*/
|
||||
export default {
|
||||
props: {
|
||||
title: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
showBtn: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
lang() {
|
||||
return this.$i18n.locale == 'zh_CN' ? 'zh' : 'en';
|
||||
}
|
||||
},
|
||||
created(){
|
||||
this.setBarTitle();
|
||||
},
|
||||
methods: {
|
||||
switchLang() {
|
||||
this.$i18n.locale = this.$i18n.locale == 'zh_CN' ? 'en' : 'zh_CN';
|
||||
this.$u.vuex('vuex_locale', this.$i18n.locale);
|
||||
this.$u.api.lang({lang: this.vuex_locale});
|
||||
this.setBarTitle();
|
||||
},
|
||||
setBarTitle (){
|
||||
uni.setNavigationBarTitle({
|
||||
title: this.$t(this.title)
|
||||
});
|
||||
uni.setTabBarItem({
|
||||
index: 0,
|
||||
text: this.$t('nav.msg')
|
||||
});
|
||||
uni.setTabBarItem({
|
||||
index: 1,
|
||||
text: this.$t('nav.home')
|
||||
});
|
||||
uni.setTabBarItem({
|
||||
index: 2,
|
||||
text: this.$t('nav.user')
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.js-lang {
|
||||
position: absolute;
|
||||
z-index: 10000;
|
||||
top: 15px;
|
||||
right: 15px;
|
||||
}
|
||||
</style>
|
||||
93
hotgo-uniapp/components/js-radio/js-radio.vue
Normal file
@@ -0,0 +1,93 @@
|
||||
<template>
|
||||
<view class="u-flex-1">
|
||||
<u-radio-group v-model="options.value" :disabled="disabled" @change="change">
|
||||
<u-radio v-for="(item, index) in options.items" :key="index"
|
||||
:name="item.value"> {{item.label}}</u-radio>
|
||||
</u-radio-group>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
/**
|
||||
* 单选框组件
|
||||
* @property {Object} value 用于双向绑定选择框的值,返回选择框的 Value
|
||||
* @property {Boolean} disabled 是否禁用模式,是否只读模式
|
||||
* @property {String} dictType 字典类型,从字典里获取,自动设置 items、itemLabel、itemValue
|
||||
* @property {String} items 列表数据,可接受对象集合,如:[{name: '是', value: '否'}]
|
||||
* @property {String} itemLabel 指定列表数据中的什么属性名作为 option 的标签名,如 name
|
||||
* @property {String} itemValue 指定列表数据中的什么属性名作为 option 的 value 值,如 value
|
||||
* @example <js-radio v-model="model.type" dict-type="sys_yes_no"></js-radio>
|
||||
* @description Copyright (c) 2013-Now http://jeesite.com All rights reserved.
|
||||
* @author ThinkGem
|
||||
* @version 2021-3-11
|
||||
*/
|
||||
export default {
|
||||
props: {
|
||||
value: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
dictType: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
items: {
|
||||
type: Array,
|
||||
default() {
|
||||
return [];
|
||||
}
|
||||
},
|
||||
itemLabel: {
|
||||
type: String,
|
||||
default: 'name'
|
||||
},
|
||||
itemValue: {
|
||||
type: String,
|
||||
default: 'value'
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
options: {
|
||||
value: this.value,
|
||||
items: this.items
|
||||
}
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
value(val, oldVal) {
|
||||
this.options.value = val;
|
||||
},
|
||||
items(val, oldVal){
|
||||
this.options.items = val;
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.loadData();
|
||||
},
|
||||
methods: {
|
||||
loadData(){
|
||||
if (this.dictType !== ''){
|
||||
this.$u.api.dictData({type: this.dictType}).then(res => {
|
||||
if (typeof res === 'object' && res.result === 'login'){
|
||||
return;
|
||||
}
|
||||
this.options.items = res.data;
|
||||
});
|
||||
}else{
|
||||
this.options.items = this.items;
|
||||
}
|
||||
},
|
||||
change(val){
|
||||
// console.log(val);
|
||||
this.$emit('input', val);
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
|
||||
</style>
|
||||
215
hotgo-uniapp/components/js-select/js-select.vue
Normal file
@@ -0,0 +1,215 @@
|
||||
<template>
|
||||
<view class="u-flex-1">
|
||||
<u-input :type="disabled?'input':'select'"
|
||||
v-model="options.label"
|
||||
:disabled="disabled"
|
||||
:placeholder="placeholder"
|
||||
:select-open="options.open"
|
||||
@click="inputClick"
|
||||
></u-input>
|
||||
<u-select :mode="options.mode"
|
||||
v-model="options.open"
|
||||
:list="options.items"
|
||||
:label-name="options.itemLabel"
|
||||
:value-name="options.itemValue"
|
||||
:default-value="options.currentIndex"
|
||||
@confirm="selectConfirm"
|
||||
style="width: 100%"
|
||||
></u-select>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
/**
|
||||
* 下拉选择组件
|
||||
* @property {Object} value 用于双向绑定选择框的值,返回选择框的 Value
|
||||
* @property {Boolean} disabled 是否禁用模式,是否只读模式
|
||||
* @property {String} tree 是否为树结构(默认 false)
|
||||
* @property {String} placeholder 选择框的占位符,提示文字
|
||||
* @property {String} dictType 字典类型,从字典里获取,自动设置 items、itemLabel、itemValue
|
||||
* @property {String} items 列表数据,可接受对象集合,如:[{name: '是', value: '否'}]
|
||||
* @property {String} itemLabel 指定列表数据中的什么属性名作为 option 的标签名,如 name
|
||||
* @property {String} itemValue 指定列表数据中的什么属性名作为 option 的 value 值,如 value
|
||||
* @example <js-select v-model="model.type" dict-type="sys_yes_no"></js-select>
|
||||
* @description Copyright (c) 2013-Now http://jeesite.com All rights reserved.
|
||||
* @author ThinkGem
|
||||
* @version 2021-3-11
|
||||
*/
|
||||
export default {
|
||||
props: {
|
||||
value: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
labelValue: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
placeholder: {
|
||||
type: String,
|
||||
default: '请选择选项'
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
tree: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
dictType: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
multiple: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
items: {
|
||||
type: Array,
|
||||
default() {
|
||||
return [];
|
||||
}
|
||||
},
|
||||
itemLabel: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
itemValue: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
returnFullName: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
returnFullNameSplit: {
|
||||
type: String,
|
||||
default: '/'
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
options: {
|
||||
value: this.value,
|
||||
label: this.labelValue,
|
||||
open: false,
|
||||
mode: 'single-column',
|
||||
items: this.items,
|
||||
itemLabel: this.itemLabel || 'name',
|
||||
itemValue: this.itemValue || (this.tree ? 'id' : 'value'),
|
||||
currentIndex: [],
|
||||
indexMap: {}
|
||||
}
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
value(val, oldVal) {
|
||||
this.options.value = val;
|
||||
},
|
||||
labelValue(val, oldVal) {
|
||||
this.options.label = val;
|
||||
},
|
||||
items(val, oldVal){
|
||||
this.setItems(val);
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.loadData();
|
||||
},
|
||||
methods: {
|
||||
loadData() {
|
||||
if (this.dictType != ''){
|
||||
this.$u.api.dictData({type: this.dictType}).then(res => {
|
||||
if (typeof res === 'object' && res.result === 'login'){
|
||||
return;
|
||||
}
|
||||
this.setItems(res.data);
|
||||
});
|
||||
}else{
|
||||
this.setItems(this.items);
|
||||
}
|
||||
},
|
||||
setItems(res){
|
||||
if (this.tree){
|
||||
this.options.mode = 'mutil-column-auto';
|
||||
res = this.convertTree(res);
|
||||
}
|
||||
this.options.items = res;
|
||||
this.selectValue();
|
||||
},
|
||||
selectValue() {
|
||||
// 微信小程序,需要延迟下,否则获取不 value 导致无法回显数据
|
||||
this.$nextTick(() => {
|
||||
if (!this.options.value) {
|
||||
return;
|
||||
}
|
||||
for (let i in this.options.items){
|
||||
let item = this.options.items[i];
|
||||
this.options.indexMap[item[this.options.itemValue]] = Number(i);
|
||||
if (item[this.options.itemValue] == this.options.value){
|
||||
// this.options.value = item[this.options.itemValue];
|
||||
this.options.label = item[this.options.itemLabel];
|
||||
if (!this.tree){
|
||||
this.options.currentIndex = [this.options.indexMap[this.options.value]];
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
convertTree(data) {
|
||||
let i, l, key = "id", parentKey = "pId", childKey = "children";
|
||||
if (Object.prototype.toString.apply(data) === "[object Array]") {
|
||||
let treeData = [], map = [];
|
||||
for (i=0, l=data.length; i<l; i++) {
|
||||
map[data[i][key]] = data[i];
|
||||
}
|
||||
for (i=0, l=data.length; i<l; i++) {
|
||||
if (map[data[i][parentKey]] && data[i][key] != data[i][parentKey]) {
|
||||
if (!map[data[i][parentKey]][childKey]){
|
||||
map[data[i][parentKey]][childKey] = [];
|
||||
}
|
||||
map[data[i][parentKey]][childKey].push(data[i]);
|
||||
} else {
|
||||
treeData.push(data[i]);
|
||||
}
|
||||
}
|
||||
return treeData;
|
||||
}else {
|
||||
return [data];
|
||||
}
|
||||
},
|
||||
inputClick() {
|
||||
if (!this.disabled){
|
||||
this.options.open = true;
|
||||
}
|
||||
},
|
||||
selectConfirm(items) {
|
||||
let values = [], labels = [], currentIndexes = [];
|
||||
for (let i in items){
|
||||
let item = items[i];
|
||||
values.push(String(item.value).replace(/^u_/g,''));
|
||||
labels.push(String(item.label));
|
||||
if (!this.tree){
|
||||
currentIndexes.push(this.options.indexMap[item.value])
|
||||
}
|
||||
}
|
||||
this.options.value = values.length > 0 ? values[values.length-1] : '';
|
||||
if (this.returnFullName){
|
||||
this.options.label = labels.join(this.returnFullNameSplit);
|
||||
}else{
|
||||
this.options.label = labels.length > 0 ? labels[labels.length-1] : '';
|
||||
}
|
||||
if (!this.tree){
|
||||
this.options.currentIndex = currentIndexes;
|
||||
}
|
||||
//console.log(this.options.value, this.options.label)
|
||||
this.$emit('input', this.options.value);
|
||||
this.$emit('label-input', this.options.label);
|
||||
this.$emit('confirm', this.options.value, this.options.label);
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
|
||||
</style>
|
||||
278
hotgo-uniapp/components/js-uploadfile/js-uploadfile.vue
Normal file
@@ -0,0 +1,278 @@
|
||||
<template>
|
||||
<view class="u-flex-1">
|
||||
<u-upload width="160" height="160" ref="uUpload"
|
||||
:action="options.action"
|
||||
:header="options.header"
|
||||
:form-data="options.formData"
|
||||
:name="options.name"
|
||||
:max-count="maxCount"
|
||||
:auto-upload="true"
|
||||
:deletable="deletable"
|
||||
:before-upload="beforeUpload"
|
||||
@on-success="uploadSuccess"
|
||||
@on-uploaded="uploadUploaded"
|
||||
:before-remove="beforeRemove"
|
||||
@on-remove="uploadRemove"
|
||||
></u-upload>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
import SparkMD5 from '@/common/spark-md5.js';
|
||||
/**
|
||||
* 文件上传组件组件
|
||||
* @property {Object} value 使用 v-model="this.model" 指定表单的 model 对象(存放文件上传编号信息)
|
||||
* @property {String} bizKey 业务表的主键值(与附件关联的业务数据)【可选】如果不设置,则获取 value.id 作为主键
|
||||
* @property {String} bizType 业务表的上传类型(全网唯一,推荐格式:实体名_上传类型,例如,意见反馈图片:appComment_image)
|
||||
* @property {String} uploadType 上传文件类型:image,目前移动端仅支持上传图片
|
||||
* @property {String} imageMaxWidth 图片压缩,最大宽度(uploadType为image生效),设置-1代表不做任何处理
|
||||
* @property {String} imageMaxHeight 图片压缩,最大宽度(uploadType为image生效),设置-1代表不做任何处理
|
||||
* @property {String} maxCount 最大上传个数,默认 52 个,如果设置为 0 可以当做【只读模式】使用
|
||||
* @example <js-uploadfile v-model="model.otherData" :biz-key="model.id" biz-type="testData_image"></js-uploadfile>
|
||||
* @description Copyright (c) 2013-Now http://jeesite.com All rights reserved.
|
||||
* @author ThinkGem
|
||||
* @version 2021-3-11
|
||||
*/
|
||||
export default {
|
||||
props: {
|
||||
value: {
|
||||
type: Object,
|
||||
default() {
|
||||
return {}
|
||||
}
|
||||
},
|
||||
bizKey: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
bizType: {
|
||||
type: String,
|
||||
default: 'images'
|
||||
},
|
||||
uploadType: {
|
||||
type: String,
|
||||
default: 'image'
|
||||
},
|
||||
imageMaxWidth: {
|
||||
type: [String, Number],
|
||||
default: 1024
|
||||
},
|
||||
imageMaxHeight: {
|
||||
type: [String, Number],
|
||||
default: 768
|
||||
},
|
||||
maxCount: {
|
||||
type: [String, Number],
|
||||
default: 52
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
options: {
|
||||
value: {},
|
||||
action: '',
|
||||
header: {},
|
||||
formData: {
|
||||
fileMd5: '',
|
||||
fileName: '',
|
||||
bizKey: this.bizKey || (this.value && this.value.id) || '',
|
||||
bizType: this.bizType,
|
||||
uploadType: this.uploadType,
|
||||
imageMaxWidth: this.imageMaxWidth,
|
||||
imageMaxHeight: this.imageMaxHeight
|
||||
},
|
||||
name: 'file',
|
||||
// 文件上传的 id 数组
|
||||
fileUploadIds: [],
|
||||
// 文件删除的 id 数组
|
||||
fileUploadDelIds: []
|
||||
},
|
||||
deletable: true
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
value(val, oldVal) {
|
||||
this.options.value = val;
|
||||
},
|
||||
maxCount(val, oldVal) {
|
||||
this.refreshStatus();
|
||||
},
|
||||
bizKey(val, oldVal) {
|
||||
this.options.formData.bizKey = val;
|
||||
this.loadData();
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.refreshStatus();
|
||||
this.options.action = this.vuex_config.baseUrl + this.vuex_config.adminPath + '/file/upload';
|
||||
this.options.formData = Object.assign(this.options.formData, this.formData);
|
||||
this.loadData();
|
||||
},
|
||||
methods: {
|
||||
// 刷新是否只读状态
|
||||
refreshStatus(){
|
||||
if (this.maxCount <= 0){
|
||||
this.deletable = false;
|
||||
}
|
||||
},
|
||||
// 已上传的文件回显到上传组件
|
||||
loadData(){
|
||||
if (this.options.formData.bizKey != ''){
|
||||
let baseUrl = this.vuex_config.baseUrl;
|
||||
let adminPath = this.vuex_config.adminPath;
|
||||
this.$u.post(adminPath + '/file/fileList', {
|
||||
bizKey: this.options.formData.bizKey,
|
||||
bizType: this.options.formData.bizType,
|
||||
}).then(res => {
|
||||
let lists = [];
|
||||
if (!(typeof res === 'object' && (res.result === 'login' || res.result === 'false'))){
|
||||
for (let i in res){
|
||||
let f = res[i];
|
||||
lists.push({
|
||||
url: baseUrl + f.fileUrl,
|
||||
fileUploadId: f.id,
|
||||
progress: 100,
|
||||
error: false
|
||||
});
|
||||
}
|
||||
}
|
||||
// console.log(lists)
|
||||
this.$refs.uUpload.lists = lists;
|
||||
this.uploadRefreshIds(lists);
|
||||
});
|
||||
}
|
||||
},
|
||||
// 上传之前,验证秒传、是否继续上传等
|
||||
beforeUpload(index, lists) {
|
||||
let self = this;
|
||||
let item = lists[index];
|
||||
let upload = this.upload;
|
||||
let formData = this.options.formData;
|
||||
let baseUrl = this.vuex_config.baseUrl;
|
||||
let adminPath = this.vuex_config.adminPath;
|
||||
self.$u.http.interceptor.request(this.options);
|
||||
return new Promise((resolve, reject) => {
|
||||
try{
|
||||
function uploadFile(arrayBuffer){
|
||||
let buffer = arrayBuffer;
|
||||
let size = 10 * 1024 * 1024;
|
||||
let spark = new SparkMD5.ArrayBuffer();
|
||||
if (buffer.byteLength > size){
|
||||
spark.append(buffer.slice(0, size));;
|
||||
}else{
|
||||
spark.append(buffer);
|
||||
}
|
||||
formData.fileEntityId = '';
|
||||
formData.fileUploadId = '';
|
||||
formData.fileMd5 = spark.end();
|
||||
formData.fileName = item.file.name;
|
||||
// console.log('formData' + JSON.stringify(formData));
|
||||
self.$u.post(adminPath + '/file/upload', formData).then(res => {
|
||||
// console.log(res)
|
||||
// 文件已经上传,启用秒传
|
||||
if (res.result == 'true' && res.fileUpload){
|
||||
item.fileUploadId = res.fileUpload.id;
|
||||
item.progress = 100;
|
||||
item.error = false;
|
||||
reject(res);
|
||||
}
|
||||
// 文件未上传过,继续上传文件
|
||||
else if (res.fileUploadId && res.fileEntityId){
|
||||
formData.fileUploadId = res.fileUploadId;
|
||||
formData.fileEntityId = res.fileEntityId;
|
||||
item.fileUploadId = res.fileUploadId;
|
||||
resolve();
|
||||
}
|
||||
// 未知错误,提示服务端返回的信息
|
||||
else {
|
||||
uni.showModal({title: '提示', content: res.message });
|
||||
reject(res);
|
||||
}
|
||||
}).catch(err => {
|
||||
console.error(err);
|
||||
reject(err);
|
||||
})
|
||||
}
|
||||
// #ifdef APP-PLUS
|
||||
plus.io.requestFileSystem(plus.io.PRIVATE_WWW, function(fs){
|
||||
fs.root.getFile(item.url, {create: false}, function(fileEntry){
|
||||
fileEntry.file(function(file){
|
||||
// console.log("getFile:" + JSON.stringify(file))
|
||||
item.file.name = file.name;
|
||||
var fileReader = new plus.io.FileReader();
|
||||
fileReader.readAsText(file, 'utf-8');
|
||||
fileReader.onloadend = function(evt) {
|
||||
uploadFile(evt.target.result);
|
||||
}
|
||||
fileReader.onerror = function(error) {
|
||||
reject(error);
|
||||
}
|
||||
}, reject);
|
||||
}, reject);
|
||||
} );
|
||||
// #endif
|
||||
// #ifndef APP-PLUS
|
||||
uni.request({
|
||||
url: item.url,
|
||||
responseType: 'arraybuffer',
|
||||
complete: res => {
|
||||
// console.log(res)
|
||||
if (res.statusCode == 200) {
|
||||
uploadFile(res.data);
|
||||
}else{
|
||||
reject(res);
|
||||
}
|
||||
}
|
||||
})
|
||||
// #endif
|
||||
}catch(err){
|
||||
console.error(err);
|
||||
reject(err);
|
||||
}
|
||||
})
|
||||
},
|
||||
// 上传成功一个,就写进 fileUploadIds
|
||||
uploadSuccess(data, index, lists, name){
|
||||
let item = lists[index];
|
||||
this.options.fileUploadIds.push(item.fileUploadId);
|
||||
},
|
||||
// 全部上传后,刷新 fileUploadIds、fileUploadDelIds
|
||||
uploadUploaded(lists, name) {
|
||||
this.uploadRefreshIds(lists);
|
||||
},
|
||||
// 移除之前获取删除的 fileUploadId,写进 fileUploadDelIds
|
||||
beforeRemove(index, lists){
|
||||
let item = lists[index];
|
||||
if (item.fileUploadId){
|
||||
this.options.fileUploadDelIds.push(item.fileUploadId);
|
||||
}
|
||||
return true;
|
||||
},
|
||||
// 移除之后,刷新 fileUploadIds、fileUploadDelIds
|
||||
uploadRemove(index, lists){
|
||||
this.uploadRefreshIds(lists);
|
||||
},
|
||||
// 刷新 fileUploadIds、fileUploadDelIds
|
||||
uploadRefreshIds(lists, name) {
|
||||
let fileUploadIds = [];
|
||||
lists.forEach(item => {
|
||||
if (item.fileUploadId && item.progress == 100){
|
||||
fileUploadIds.push(item.fileUploadId);
|
||||
}
|
||||
});
|
||||
this.options.fileUploadIds = fileUploadIds;
|
||||
// console.log('fileUploadIds', this.options.fileUploadIds)
|
||||
// console.log('fileUploadDelIds', this.options.fileUploadDelIds)
|
||||
// 将上传和删除的 id 回传给 model
|
||||
let formData = this.options.formData;
|
||||
let fileParams = this.options.value || {};
|
||||
fileParams[formData.bizType] = this.options.fileUploadIds.join(',');
|
||||
fileParams[formData.bizType+'__del'] = this.options.fileUploadDelIds.join(',');
|
||||
this.options.value = fileParams;
|
||||
this.$emit('input', Object.assign(this.options.value, this.value));
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
|
||||
</style>
|
||||
50
hotgo-uniapp/h5.html
Normal file
@@ -0,0 +1,50 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="keywords" content="PoweredByJeeSiteV4.0"/>
|
||||
<meta name="description" content="PoweredByJeeSiteV4.0"/>
|
||||
<link rel="shortcut icon" type="image/x-icon" href="<%= BASE_URL %>static/jeesite/favicon.png">
|
||||
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
|
||||
<title><%= htmlWebpackPlugin.options.title %></title>
|
||||
<script>
|
||||
window.onresize = function () {
|
||||
if (document.documentElement.clientWidth >= 768) {
|
||||
window.location.href = '<%= BASE_URL %>static/#/';
|
||||
}
|
||||
};
|
||||
window.onresize();
|
||||
</script>
|
||||
<!-- 正式发布的时候使用,开发期间不启用。↓ -->
|
||||
<script src="<%= BASE_URL %>static/common/js/touch-emulator.js"></script>
|
||||
<script>
|
||||
TouchEmulator();
|
||||
</script>
|
||||
<style>
|
||||
::-webkit-scrollbar{
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
<!-- 正式发布的时候使用,开发期间不启用。↑ -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
document.documentElement.style.fontSize = document.documentElement.clientWidth / 20 + 'px'
|
||||
})
|
||||
</script>
|
||||
<link rel="stylesheet" href="<%= BASE_URL %>static/index.css" />
|
||||
</head>
|
||||
<body>
|
||||
<!-- 该文件为 H5 平台的模板 HTML,并非应用入口。 -->
|
||||
<!-- 请勿在此文件编写页面代码或直接运行此文件。 -->
|
||||
<!-- 详见文档:https://uniapp.dcloud.io/collocation/manifest?id=h5-template -->
|
||||
<noscript>
|
||||
<strong>本站点必须要开启JavaScript才能运行</strong>
|
||||
</noscript>
|
||||
<div id="app"></div>
|
||||
<!-- built files will be auto injected -->
|
||||
<script>
|
||||
/*BAIDU_STAT*/
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
60
hotgo-uniapp/main.js
Normal file
@@ -0,0 +1,60 @@
|
||||
/**
|
||||
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
|
||||
*/
|
||||
import Vue from 'vue';
|
||||
import App from './App';
|
||||
|
||||
Vue.config.productionTip = false;
|
||||
|
||||
App.mpType = 'app';
|
||||
|
||||
// 引入全局 uView 框架
|
||||
import uView from 'uview-ui';
|
||||
Vue.use(uView);
|
||||
|
||||
// 全局存储 vuex 的封装
|
||||
import store from '@/store';
|
||||
|
||||
// 引入 uView 提供的对 vuex 的简写法文件
|
||||
let vuexStore = require('@/store/$u.mixin.js');
|
||||
Vue.mixin(vuexStore);
|
||||
|
||||
// 引入 uView 对小程序分享的 mixin 封装
|
||||
let mpShare = require('uview-ui/libs/mixin/mpShare.js');
|
||||
Vue.mixin(mpShare);
|
||||
|
||||
// Vue i18n 国际化
|
||||
import VueI18n from '@/common/vue-i18n.min.js';
|
||||
Vue.use(VueI18n);
|
||||
|
||||
// i18n 部分的配置,引入语言包,注意路径
|
||||
import lang_zh_CN from '@/common/locales/zh_CN.js';
|
||||
import lang_en from '@/common/locales/en.js';
|
||||
|
||||
const i18n = new VueI18n({
|
||||
// 默认语言
|
||||
locale: 'zh_CN',
|
||||
// 引入语言文件
|
||||
messages: {
|
||||
'zh_CN': lang_zh_CN,
|
||||
'en': lang_en,
|
||||
}
|
||||
});
|
||||
|
||||
// 由于微信小程序的运行机制问题,需声明如下一行,H5和APP非必填
|
||||
Vue.prototype._i18n = i18n;
|
||||
const app = new Vue({
|
||||
i18n,
|
||||
store,
|
||||
...App
|
||||
});
|
||||
|
||||
// http 拦截器,将此部分放在 new Vue() 和 app.$mount() 之间,才能 App.vue 中正常使用
|
||||
import httpInterceptor from '@/common/http.interceptor.js';
|
||||
Vue.use(httpInterceptor, app);
|
||||
|
||||
// http 接口 API 抽离,免于写 url 或者一些固定的参数
|
||||
import httpApi from '@/common/http.api.js';
|
||||
Vue.use(httpApi, app);
|
||||
|
||||
app.$mount();
|
||||
158
hotgo-uniapp/manifest.json
Normal file
@@ -0,0 +1,158 @@
|
||||
/**
|
||||
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
|
||||
*/
|
||||
{
|
||||
"name": "JeeSite",
|
||||
"appid": "__UNI__841DCAE",
|
||||
"description": "JeeSite快速开发平台",
|
||||
"versionName": "4.3.2",
|
||||
"versionCode": "100",
|
||||
"transformPx": false,
|
||||
"app-plus": {
|
||||
// APP-VUE分包,可提APP升启动速度,2.7.12开始支持,兼容微信小程序分包方案,默认关闭
|
||||
"optimization": {
|
||||
"subPackages": true
|
||||
},
|
||||
"safearea": {
|
||||
"bottom": {
|
||||
"offset": "none"
|
||||
}
|
||||
},
|
||||
"splashscreen": {
|
||||
"alwaysShowBeforeRender": true,
|
||||
"waiting": true,
|
||||
"autoclose": true,
|
||||
"delay": 0
|
||||
},
|
||||
"usingComponents": true,
|
||||
"nvueCompiler": "uni-app",
|
||||
"compilerVersion": 3,
|
||||
"modules": {},
|
||||
"distribute": {
|
||||
"android": {
|
||||
"permissions": [
|
||||
"<uses-feature android:name=\"android.hardware.camera\"/>",
|
||||
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
|
||||
"<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
|
||||
"<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
|
||||
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
|
||||
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
|
||||
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
|
||||
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
|
||||
"<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
|
||||
],
|
||||
"abiFilters": ["armeabi-v7a", "arm64-v8a"]
|
||||
},
|
||||
"ios": {},
|
||||
"sdkConfigs": {
|
||||
"ad": {},
|
||||
"oauth": {}
|
||||
},
|
||||
"icons": {
|
||||
"android": {
|
||||
"hdpi": "unpackage/res/icons/72x72.png",
|
||||
"xhdpi": "unpackage/res/icons/96x96.png",
|
||||
"xxhdpi": "unpackage/res/icons/144x144.png",
|
||||
"xxxhdpi": "unpackage/res/icons/192x192.png"
|
||||
},
|
||||
"ios": {
|
||||
"appstore": "unpackage/res/icons/1024x1024.png",
|
||||
"ipad": {
|
||||
"app": "unpackage/res/icons/76x76.png",
|
||||
"app@2x": "unpackage/res/icons/152x152.png",
|
||||
"notification": "unpackage/res/icons/20x20.png",
|
||||
"notification@2x": "unpackage/res/icons/40x40.png",
|
||||
"proapp@2x": "unpackage/res/icons/167x167.png",
|
||||
"settings": "unpackage/res/icons/29x29.png",
|
||||
"settings@2x": "unpackage/res/icons/58x58.png",
|
||||
"spotlight": "unpackage/res/icons/40x40.png",
|
||||
"spotlight@2x": "unpackage/res/icons/80x80.png"
|
||||
},
|
||||
"iphone": {
|
||||
"app@2x": "unpackage/res/icons/120x120.png",
|
||||
"app@3x": "unpackage/res/icons/180x180.png",
|
||||
"notification@2x": "unpackage/res/icons/40x40.png",
|
||||
"notification@3x": "unpackage/res/icons/60x60.png",
|
||||
"settings@2x": "unpackage/res/icons/58x58.png",
|
||||
"settings@3x": "unpackage/res/icons/87x87.png",
|
||||
"spotlight@2x": "unpackage/res/icons/80x80.png",
|
||||
"spotlight@3x": "unpackage/res/icons/120x120.png"
|
||||
}
|
||||
}
|
||||
},
|
||||
"splashscreen": {
|
||||
"androidStyle": "common"
|
||||
}
|
||||
}
|
||||
},
|
||||
"quickapp": {},
|
||||
"mp-weixin": {
|
||||
"appid": "wx335f34af8ccb4131",
|
||||
"setting": {
|
||||
"urlCheck": true,
|
||||
"es6": false,
|
||||
"minified": true,
|
||||
"postcss": true
|
||||
},
|
||||
"optimization": {
|
||||
"subPackages": true
|
||||
},
|
||||
"usingComponents": true
|
||||
},
|
||||
"mp-alipay": {
|
||||
"usingComponents": true,
|
||||
"component2": true
|
||||
},
|
||||
"mp-qq": {
|
||||
"optimization": {
|
||||
"subPackages": true
|
||||
},
|
||||
"appid": ""
|
||||
},
|
||||
"mp-baidu": {
|
||||
"usingComponents": true,
|
||||
"appid": ""
|
||||
},
|
||||
"mp-toutiao": {
|
||||
"usingComponents": true,
|
||||
"appid": ""
|
||||
},
|
||||
"h5": {
|
||||
"devServer": {
|
||||
"port": 8080, //这边填当前项目的编译端口,编译时直接使用此端口,也是代理端口
|
||||
"disableHostCheck": true, //vue关闭主机检查
|
||||
"proxy": {
|
||||
"/api": { //代理API域名的路径
|
||||
"target": "http://localhost:8299/api", //代理API域名地址+端口+路径
|
||||
"changeOrigin": true, //是否跨域
|
||||
"secure": false, //ssl,如果是https要更改为:true
|
||||
"pathRewrite":{"^/api":""} //代理请求时的重写路径,和"/api2"、"/api2".target保持一致即可
|
||||
}
|
||||
}
|
||||
},
|
||||
"template": "h5.html",
|
||||
"router": {
|
||||
"mode": "hash",
|
||||
"base": "/app"
|
||||
},
|
||||
"optimization": {
|
||||
"treeShaking": {
|
||||
"enable": false
|
||||
}
|
||||
},
|
||||
"title": "JeeSite",
|
||||
"domain": "/app"
|
||||
}
|
||||
}
|
||||
13
hotgo-uniapp/package-lock.json
generated
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"name": "JeeSite4",
|
||||
"version": "4.3.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"vue-i18n": {
|
||||
"version": "8.20.0",
|
||||
"resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.20.0.tgz",
|
||||
"integrity": "sha512-ZiAOoeR4d/JtKpbjipx3I80ey7cYG1ki5gQ7HwzWm4YFio9brA15BEYHjalEoBaEfzF5OBEZP+Y2MvAaWnyXXg=="
|
||||
}
|
||||
}
|
||||
}
|
||||
26
hotgo-uniapp/package.json
Normal file
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"name": "JeeSite4",
|
||||
"version": "4.3.0",
|
||||
"description": "JeeSite4 移动端快速开发框架",
|
||||
"main": "main.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://gitee.com/thinkgem/jeesite4-uniapp.git"
|
||||
},
|
||||
"keywords": [
|
||||
"JeeSite",
|
||||
"快速开发平台"
|
||||
],
|
||||
"author": "ThinkGem",
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://github.com/thinkgem/jeesite4-uniapp/issues"
|
||||
},
|
||||
"homepage": "https://github.com/thinkgem/jeesite4-uniapp#readme",
|
||||
"dependencies": {
|
||||
"vue-i18n": "^8.20.0"
|
||||
}
|
||||
}
|
||||
160
hotgo-uniapp/pages.json
Normal file
@@ -0,0 +1,160 @@
|
||||
{
|
||||
"easycom": {
|
||||
"^u-(.*)": "@/uview-ui/components/u-$1/u-$1.vue"
|
||||
},
|
||||
"pages": [
|
||||
|
||||
/* 登录 */
|
||||
{
|
||||
"path": "pages/sys/login/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "登录"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/sys/login/forget",
|
||||
"style": {
|
||||
"navigationBarTitleText": "忘记密码"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/sys/login/reg",
|
||||
"style": {
|
||||
"navigationBarTitleText": "注册账号"
|
||||
}
|
||||
},
|
||||
|
||||
/* 主页 */
|
||||
{
|
||||
"path": "pages/sys/home/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "工作台"
|
||||
}
|
||||
},
|
||||
|
||||
/* 用户 */
|
||||
{
|
||||
"path": "pages/sys/user/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "用户中心",
|
||||
"backgroundColor": "#f8f8f8",
|
||||
"navigationBarBackgroundColor":"#f8f8f8"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/sys/user/info",
|
||||
"style": {
|
||||
"navigationBarTitleText": "个人信息"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "uview-ui/components/u-avatar-cropper/u-avatar-cropper",
|
||||
"style": {
|
||||
"navigationBarTitleText": "头像裁剪",
|
||||
"navigationBarBackgroundColor": "#000000"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/sys/user/help",
|
||||
"style": {
|
||||
"navigationBarTitleText": "帮助中心"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/sys/user/pwd",
|
||||
"style": {
|
||||
"navigationBarTitleText": "修改密码"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/sys/user/setting",
|
||||
"style": {
|
||||
"navigationBarTitleText": "系统设置"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/sys/user/comment",
|
||||
"style": {
|
||||
"navigationBarTitleText": "意见反馈"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/sys/user/about",
|
||||
"style": {
|
||||
"navigationBarTitleText": "关于我们"
|
||||
}
|
||||
},
|
||||
|
||||
/* 消息 */
|
||||
{
|
||||
"path": "pages/sys/msg/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "消息提醒"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/sys/msg/form",
|
||||
"style": {
|
||||
"navigationBarTitleText": "查看详情"
|
||||
}
|
||||
},
|
||||
|
||||
/* 增删改查例子 */
|
||||
{
|
||||
"path": "pages/testData/form",
|
||||
"style": {
|
||||
"navigationBarTitleText": "新增编辑"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/testData/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "增删改查"
|
||||
}
|
||||
},
|
||||
|
||||
/* Common */
|
||||
{
|
||||
"path": "pages/common/webview",
|
||||
"style": {
|
||||
"navigationBarTitleText": "浏览网页"
|
||||
}
|
||||
}
|
||||
],
|
||||
"subPackages": [
|
||||
|
||||
],
|
||||
"preloadRule": {
|
||||
|
||||
},
|
||||
"globalStyle": {
|
||||
"navigationBarTextStyle": "black",
|
||||
"navigationBarTitleText": "JeeSite",
|
||||
"navigationBarBackgroundColor": "#f8f8f8"
|
||||
},
|
||||
"tabBar": {
|
||||
"color": "#909399",
|
||||
"selectedColor": "#303133",
|
||||
"backgroundColor": "#ffffff",
|
||||
"borderStyle": "white",
|
||||
"list": [{
|
||||
"pagePath": "pages/sys/msg/index",
|
||||
"iconPath": "static/jeesite/tabbar/msg_1.png",
|
||||
"selectedIconPath": "static/jeesite/tabbar/msg_2.png",
|
||||
"text": "消息"
|
||||
},
|
||||
{
|
||||
"pagePath": "pages/sys/home/index",
|
||||
"iconPath": "static/jeesite/tabbar/home_1.png",
|
||||
"selectedIconPath": "static/jeesite/tabbar/home_2.png",
|
||||
"text": "工作台"
|
||||
},
|
||||
{
|
||||
"pagePath": "pages/sys/user/index",
|
||||
"iconPath": "static/jeesite/tabbar/my_1.png",
|
||||
"selectedIconPath": "static/jeesite/tabbar/my_2.png",
|
||||
"text": "我的"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
121
hotgo-uniapp/pages/common/jeesite.scss
Normal file
@@ -0,0 +1,121 @@
|
||||
/*!
|
||||
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
|
||||
* @author ThinkGem
|
||||
* @version 2020-9-1
|
||||
*/
|
||||
.u-btn {
|
||||
&--info {
|
||||
color: #ffffff;
|
||||
border-color: #01abb4;
|
||||
background-color: #01abb4;
|
||||
}
|
||||
&--purple {
|
||||
color: #ffffff;
|
||||
border-color: #5d5fe7;
|
||||
background-color: #5d5fe7;
|
||||
}
|
||||
}
|
||||
|
||||
.u-cell-box {
|
||||
|
||||
.u-cell {
|
||||
font-size: 30rpx;
|
||||
}
|
||||
|
||||
.u-cell_title {
|
||||
font-size: 30rpx;
|
||||
}
|
||||
|
||||
.u-cell__left-icon-wrap {
|
||||
margin-right: 18rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.search{
|
||||
padding: 20rpx 20rpx 0;
|
||||
background: #f8f8f8;
|
||||
height: 105rpx;
|
||||
}
|
||||
|
||||
.scroll-list {
|
||||
height: calc(100vh - var(--window-top) - var(--window-bottom) - 105rpx); // 105rpx 为 .search 的高度
|
||||
width: 100%;
|
||||
|
||||
.loadmore {
|
||||
padding: 30rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.box {
|
||||
padding-bottom: 10rpx;
|
||||
|
||||
.item {
|
||||
margin: 0 20rpx 20rpx;
|
||||
padding: 8rpx 20rpx;
|
||||
border-radius: 20rpx;
|
||||
box-sizing: border-box;
|
||||
background-color: #fff;
|
||||
font-size: 28rpx;
|
||||
|
||||
.title {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
background-color: #fff;
|
||||
padding-left: 15rpx;
|
||||
align-items: center;
|
||||
|
||||
.text {
|
||||
margin: 0 20rpx;
|
||||
font-size: 35rpx;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.list {
|
||||
|
||||
.u-cell-item-box {
|
||||
|
||||
.u-swipe-content {
|
||||
width: 750rpx;
|
||||
}
|
||||
|
||||
.u-cell_title {
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
min-width: 655rpx;
|
||||
}
|
||||
|
||||
.u-border-bottom:after {
|
||||
border-bottom-width: 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.form {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: 20rpx 30rpx;
|
||||
|
||||
.u-cell-item-box {
|
||||
border-radius: 20rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.form-footer {
|
||||
display: flex;
|
||||
margin: 10rpx;
|
||||
padding-bottom: 30rpx;
|
||||
|
||||
.btn {
|
||||
flex: 1;
|
||||
margin: 20rpx;
|
||||
margin-bottom: 10rpx;
|
||||
}
|
||||
}
|
||||
33
hotgo-uniapp/pages/common/webview.vue
Normal file
@@ -0,0 +1,33 @@
|
||||
<template>
|
||||
<view>
|
||||
<web-view :webview-styles="webviewStyles" :src="webviewUrl"></web-view>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
/**
|
||||
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
|
||||
*/
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
webviewUrl: '',
|
||||
webviewStyles: {
|
||||
progress: {
|
||||
color: '#FF7200'
|
||||
}
|
||||
}
|
||||
};
|
||||
},
|
||||
onLoad(params) {
|
||||
this.webviewUrl = decodeURIComponent(params.url);
|
||||
if (params.title != ''){
|
||||
uni.setNavigationBarTitle({
|
||||
title: params.title
|
||||
})
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss">
|
||||
|
||||
</style>
|
||||
22
hotgo-uniapp/pages/sys/home/index.scss
Normal file
@@ -0,0 +1,22 @@
|
||||
/*!
|
||||
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
|
||||
* @author ThinkGem
|
||||
* @version 2020-9-1
|
||||
*/
|
||||
|
||||
.toolbar {
|
||||
padding-top: 5px;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.grid {
|
||||
|
||||
.grid-icon {
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.grid-text {
|
||||
font-size: 32rpx;
|
||||
padding: 15rpx;
|
||||
}
|
||||
}
|
||||
225
hotgo-uniapp/pages/sys/home/index.vue
Normal file
@@ -0,0 +1,225 @@
|
||||
<template>
|
||||
<view class="wrap">
|
||||
<js-lang title="home.title" :showBtn="true"></js-lang>
|
||||
<u-swiper :height="300" :list="imgList" :title="false" @click="imgListClick"></u-swiper>
|
||||
<view class="toolbar u-m-b-20">
|
||||
<u-grid class="grid" :col="3" :border="false">
|
||||
<u-grid-item :index="0" @click="navTo('/pages/bpm/myTaskTodo')">
|
||||
<u-badge :count="todoCount"></u-badge>
|
||||
<u-icon class="grid-icon" name="clock" :size="80" :style="{ color: '#ea9a44' }"></u-icon>
|
||||
<view class="grid-text">待办任务</view>
|
||||
</u-grid-item>
|
||||
<u-grid-item :index="1" @click="navTo('/pages/bpm/myTaskHistory')">
|
||||
<u-icon class="grid-icon" name="checkmark-circle" :size="80" :style="{ color: '#47cb66' }"></u-icon>
|
||||
<view class="grid-text">已办任务</view>
|
||||
</u-grid-item>
|
||||
<u-grid-item :index="2" @click="navTo('/pages/bpm/myRuntime')">
|
||||
<u-icon class="grid-icon" name="order" :size="80" :style="{ color: '#5a98ea' }"></u-icon>
|
||||
<view class="grid-text">我相关的</view>
|
||||
</u-grid-item>
|
||||
</u-grid>
|
||||
</view>
|
||||
<u-collapse class="box u-p-b-5" :accordion="false" :arrow="true">
|
||||
<view class="item" v-for="(menu, index) in menuList" :key="menu.menuCode">
|
||||
<u-collapse-item :open="true">
|
||||
<view class="title" slot="title">
|
||||
<u-icon :name="menu.menuIcon != '' ? menu.menuIcon : 'home'" :size="40"
|
||||
:style="{ color: menu.menuColor != '' ? menu.menuColor : '#666' }"></u-icon>
|
||||
<view class="text" :style="{ color: menu.menuColor != '' ? menu.menuColor : '#666' }"
|
||||
>{{menu.menuName}}</view>
|
||||
</view>
|
||||
<u-grid class="grid u-m-t-20" :col="3" :border="false">
|
||||
<u-grid-item v-for="(child, index2) in menu.childList" :key="child.menuCode" @click="navTo(child.url)">
|
||||
<u-icon class="grid-icon" :name="child.menuIcon != '' ? child.menuIcon : 'order'" :size="80"
|
||||
:style="{ color: child.menuColor != '' ? child.menuColor : '#666' }"></u-icon>
|
||||
<view class="grid-text" :style="{ color: child.menuColor != '' ? child.menuColor : '#666' }"
|
||||
>{{child.menuName}}</view>
|
||||
</u-grid-item>
|
||||
</u-grid>
|
||||
</u-collapse-item>
|
||||
</view>
|
||||
</u-collapse>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
/**
|
||||
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
|
||||
*/
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
|
||||
imgList: [
|
||||
{image: '/static/jeesite/banner/1.svg'},
|
||||
{image: '/static/jeesite/banner/2.svg'},
|
||||
{image: '/static/jeesite/banner/3.svg'}
|
||||
],
|
||||
|
||||
todoCount: 0,
|
||||
|
||||
menuList: [
|
||||
{
|
||||
menuCode: 'a-1',
|
||||
menuName: '增删改查',
|
||||
menuIcon: 'file-text',
|
||||
menuColor: '',
|
||||
url: '',
|
||||
childList: [
|
||||
{
|
||||
menuCode: 'a13',
|
||||
menuName: '列表',
|
||||
menuIcon: 'thumb-up',
|
||||
menuColor: '',
|
||||
url: '/pages/testData/index',
|
||||
},
|
||||
{
|
||||
menuCode: 'a11',
|
||||
menuName: '新增',
|
||||
menuIcon: 'plus-circle',
|
||||
menuColor: '',
|
||||
url: '/pages/testData/form',
|
||||
},
|
||||
{
|
||||
menuCode: 'a10',
|
||||
menuName: '请假',
|
||||
menuIcon: 'calendar',
|
||||
menuColor: '',
|
||||
url: '/pages/oa/oaLeave/index',
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
menuCode: 'a',
|
||||
menuName: '公文管理',
|
||||
menuIcon: 'home',
|
||||
menuColor: '#919328',
|
||||
url: '',
|
||||
childList: [
|
||||
{
|
||||
menuCode: 'a1',
|
||||
menuName: '收文',
|
||||
menuIcon: 'email',
|
||||
menuColor: '#919328',
|
||||
url: '/pages/testData/form',
|
||||
},
|
||||
{
|
||||
menuCode: 'a2',
|
||||
menuName: '发文',
|
||||
menuIcon: 'bookmark',
|
||||
menuColor: '#919328',
|
||||
url: '/pages/testData/form',
|
||||
},
|
||||
{
|
||||
menuCode: 'a3',
|
||||
menuName: '查询',
|
||||
menuIcon: 'search',
|
||||
menuColor: '#919328',
|
||||
url: '/pages/testData/index',
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
menuCode: 'a-2',
|
||||
menuName: '功能列表',
|
||||
menuIcon: '',
|
||||
menuColor: '#0d9311',
|
||||
url: '',
|
||||
childList: [
|
||||
{
|
||||
menuCode: 'a21',
|
||||
menuName: '找回密码',
|
||||
menuIcon: '',
|
||||
menuColor: '#0d9311',
|
||||
url: '/pages/sys/login/forget',
|
||||
},
|
||||
{
|
||||
menuCode: 'a22',
|
||||
menuName: '注册用户',
|
||||
menuIcon: '',
|
||||
menuColor: '#0d9311',
|
||||
url: '/pages/sys/login/reg',
|
||||
},
|
||||
{
|
||||
menuCode: 'a23',
|
||||
menuName: '个人资料',
|
||||
menuIcon: '',
|
||||
menuColor: '#0d9311',
|
||||
url: '/pages/sys/user/info',
|
||||
},{
|
||||
menuCode: 'a24',
|
||||
menuName: '关于我们',
|
||||
menuIcon: '',
|
||||
menuColor: '#0d9311',
|
||||
url: '/pages/sys/user/about',
|
||||
},
|
||||
{
|
||||
menuCode: 'a25',
|
||||
menuName: '修改密码',
|
||||
menuIcon: '',
|
||||
menuColor: '#0d9311',
|
||||
url: '/pages/sys/user/pwd',
|
||||
},
|
||||
{
|
||||
menuCode: 'a26',
|
||||
menuName: '意见反馈',
|
||||
menuIcon: '',
|
||||
menuColor: '#0d9311',
|
||||
url: '/pages/sys/user/comment',
|
||||
},
|
||||
{
|
||||
menuCode: 'a27',
|
||||
menuName: '系统设置',
|
||||
menuIcon: '',
|
||||
menuColor: '#0d9311',
|
||||
url: '/pages/sys/user/setting',
|
||||
},
|
||||
{
|
||||
menuCode: 'a28',
|
||||
menuName: '列表演示',
|
||||
menuIcon: '',
|
||||
menuColor: '#0d9311',
|
||||
url: '/pages/testData/index',
|
||||
},
|
||||
{
|
||||
menuCode: 'a29',
|
||||
menuName: '表单演示',
|
||||
menuIcon: '',
|
||||
menuColor: '#0d9311',
|
||||
url: '/pages/testData/form',
|
||||
}
|
||||
]
|
||||
},
|
||||
],
|
||||
|
||||
};
|
||||
},
|
||||
onLoad() {
|
||||
//this.refreshCount();
|
||||
},
|
||||
onShow() {
|
||||
this.refreshCount();
|
||||
},
|
||||
methods: {
|
||||
navTo(url) {
|
||||
uni.navigateTo({
|
||||
url: url
|
||||
});
|
||||
},
|
||||
refreshCount() {
|
||||
this.todoCount = 3;
|
||||
},
|
||||
imgListClick(index) {
|
||||
console.log(`点击了第${index + 1}页图片`)
|
||||
},
|
||||
itemClick(index) {
|
||||
console.log(index);
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss">
|
||||
@import 'index.scss';
|
||||
page {
|
||||
background-color: #f8f8f8;
|
||||
}
|
||||
</style>
|
||||
144
hotgo-uniapp/pages/sys/login/forget.vue
Normal file
@@ -0,0 +1,144 @@
|
||||
<template>
|
||||
<view class="wrap">
|
||||
<view class="list">
|
||||
<view class="list-call">
|
||||
<u-icon class="u-icon" size="40" name="account"></u-icon>
|
||||
<input class="u-input" type="text" v-model="loginCode" maxlength="32" placeholder="请输入账号" />
|
||||
</view>
|
||||
<view class="list-call">
|
||||
<u-icon class="u-icon" size="40" name="lock"></u-icon>
|
||||
<input class="u-input" type="text" v-model="password" maxlength="32" placeholder="请输入新密码" :password="!showPassword" />
|
||||
<image class="u-icon-right" :src="'/static/jeesite/login/eye_' + (showPassword ? 'open' : 'close') + '.png'" @click="showPass()"></image>
|
||||
</view>
|
||||
<view class="list-call">
|
||||
<u-icon class="u-icon" size="40" name="bookmark"></u-icon>
|
||||
<input class="u-input" type="text" v-model="validCode" maxlength="4" placeholder="图片验证码" />
|
||||
<u-image class="img-valid-code" width="300rpx" height="90rpx" :src="imgValidCodeSrc" @click="refreshImgValidCode()"></u-image>
|
||||
</view>
|
||||
<view class="list-call">
|
||||
<u-icon class="u-icon" size="40" name="coupon"></u-icon>
|
||||
<input class="u-input" type="text" v-model="fpValidCode" maxlength="6" placeholder="手机验证码" />
|
||||
<u-verification-code ref="uCode" :seconds="seconds" @change="codeChange"></u-verification-code>
|
||||
<view class="btn-valid-code" :class="{ 'btn-valid-codes': tips != '获取验证码' && tips != '重新获取' }"
|
||||
hover-class="btn-valid-code-hover" @click="getValidCode()">{{tips}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="button" hover-class="button-hover" @click="submit()"><text>修改密码</text></view>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
/**
|
||||
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
|
||||
*/
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
loginCode: '',
|
||||
password: '',
|
||||
validCode: '',
|
||||
fpValidCode: '',
|
||||
showPassword: false,
|
||||
imgValidCodeSrc: null,
|
||||
tips: '获取验证码',
|
||||
seconds: 60
|
||||
};
|
||||
},
|
||||
onLoad() {
|
||||
this.refreshImgValidCode();
|
||||
},
|
||||
methods: {
|
||||
showPass() {
|
||||
this.showPassword = !this.showPassword;
|
||||
},
|
||||
refreshImgValidCode(e) {
|
||||
if (this.vuex_token == '') {
|
||||
this.$u.api.index().then(res => {
|
||||
this.imgValidCodeSrc = this.vuex_config.baseUrl + '/validCode?__sid='
|
||||
+ res.sessionid + '&t=' + new Date().getTime();
|
||||
});
|
||||
} else {
|
||||
this.imgValidCodeSrc = this.vuex_config.baseUrl + '/validCode?__sid='
|
||||
+ this.vuex_token + '&t=' + new Date().getTime();
|
||||
}
|
||||
this.validCode = '';
|
||||
},
|
||||
codeChange(text) {
|
||||
this.tips = text;
|
||||
},
|
||||
formValid() {
|
||||
if (this.loginCode.length == 0) {
|
||||
this.$u.toast('请输入账号');
|
||||
return false;
|
||||
}
|
||||
if (this.password.length == 0) {
|
||||
this.$u.toast('请输入新密码');
|
||||
return false;
|
||||
}
|
||||
if (this.validCode.length == 0) {
|
||||
this.$u.toast('请输入图片验证码');
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
},
|
||||
getValidCode() {
|
||||
if (!this.formValid()) {
|
||||
return;
|
||||
}
|
||||
if (this.$refs.uCode.canGetCode) {
|
||||
this.$u.api.validCode({
|
||||
validCode: this.validCode
|
||||
})
|
||||
.then(res => {
|
||||
if (res !== 'true') {
|
||||
this.$u.toast('图片验证码错误');
|
||||
return;
|
||||
}
|
||||
this.$u.api.getFpValidCode({
|
||||
loginCode: this.loginCode,
|
||||
validCode: this.validCode,
|
||||
validType: 'mobile'
|
||||
})
|
||||
.then(res => {
|
||||
this.$u.toast(res.message, 3000);
|
||||
if (res.result == 'false') {
|
||||
this.refreshImgValidCode();
|
||||
}
|
||||
});
|
||||
this.$refs.uCode.start();
|
||||
});
|
||||
}
|
||||
},
|
||||
submit() {
|
||||
if (!this.formValid()) {
|
||||
return;
|
||||
}
|
||||
if (this.fpValidCode.length == 0) {
|
||||
this.$u.toast('请输入手机验证码');
|
||||
return false;
|
||||
}
|
||||
this.$u.api.savePwdByValidCode({
|
||||
loginCode: this.loginCode,
|
||||
fpValidCode: this.fpValidCode,
|
||||
password: this.password
|
||||
})
|
||||
.then(res => {
|
||||
uni.showModal({
|
||||
title: '提示',
|
||||
content: res.message,
|
||||
showCancel: false,
|
||||
success: function () {
|
||||
if (res.result == 'true') {
|
||||
uni.reLaunch({
|
||||
url: '/pages/sys/login/index'
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss">
|
||||
@import 'index.scss';
|
||||
</style>
|
||||
81
hotgo-uniapp/pages/sys/login/index.scss
Normal file
@@ -0,0 +1,81 @@
|
||||
/*!
|
||||
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
|
||||
* @author ThinkGem
|
||||
* @version 2020-9-1
|
||||
*/
|
||||
.wrap {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.list {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: 40rpx 70rpx 40rpx 70rpx;
|
||||
}
|
||||
|
||||
.list-call {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding-top: 10rpx;
|
||||
height: 120rpx;
|
||||
font-weight: normal;
|
||||
color: #333333;
|
||||
border-bottom: 0.5px solid #e2e2e2;
|
||||
}
|
||||
|
||||
.list-call .u-input {
|
||||
flex: 1;
|
||||
font-size: 39rpx;
|
||||
text-align: left;
|
||||
margin-left: 16rpx;
|
||||
}
|
||||
|
||||
.list-call .u-icon-right {
|
||||
color: #aaaaaa;
|
||||
width: 50rpx;
|
||||
height: 40rpx;
|
||||
}
|
||||
|
||||
.button {
|
||||
color: #ffffff;
|
||||
font-size: 39rpx;
|
||||
width: 470rpx;
|
||||
height: 100rpx;
|
||||
background: linear-gradient(-90deg, rgba(72, 156, 230, 1), rgba(15, 168, 250, 1));
|
||||
box-shadow: 0rpx 0rpx 13rpx 0rpx rgba(15, 168, 250, 0.4);
|
||||
border-radius: 50rpx;
|
||||
line-height: 100rpx;
|
||||
text-align: center;
|
||||
margin: 50rpx auto 0;
|
||||
}
|
||||
|
||||
.button-hover {
|
||||
background: linear-gradient(-90deg, rgba(72, 156, 230, 0.8), rgba(15, 168, 250, 0.8));
|
||||
}
|
||||
|
||||
.img-valid-code img {
|
||||
width: 30rpx;
|
||||
heigth: 50rpx;
|
||||
}
|
||||
|
||||
.btn-valid-code {
|
||||
color: #da7918;
|
||||
font-size: 40rpx;
|
||||
line-height: 60rpx;
|
||||
padding: 0 35rpx;
|
||||
border: 1rpx solid #da7918;
|
||||
border-radius: 50rpx;
|
||||
}
|
||||
|
||||
.btn-valid-code-hover {
|
||||
background-color: #f3f3f3;
|
||||
}
|
||||
|
||||
.btn-valid-codes {
|
||||
color: #999999 !important;
|
||||
border: 1rpx solid #999999;
|
||||
}
|
||||
192
hotgo-uniapp/pages/sys/login/index.vue
Normal file
@@ -0,0 +1,192 @@
|
||||
<template>
|
||||
<view class="wrap">
|
||||
<js-lang title="login.title" :showBtn="true"></js-lang>
|
||||
<view class="logo">
|
||||
<image src="/static/jeesite/logo200.png"></image>
|
||||
</view>
|
||||
<view class="list">
|
||||
<view class="list-call">
|
||||
<u-icon class="u-icon" size="40" name="account"></u-icon>
|
||||
<input class="u-input" type="text" v-model="username" maxlength="32"
|
||||
:placeholder="$t('login.placeholderAccount')"/>
|
||||
<u-checkbox v-model="remember" active-color="#69cbff">{{$t('login.autoLogin')}}</u-checkbox>
|
||||
</view>
|
||||
<view class="list-call">
|
||||
<u-icon class="u-icon" size="40" name="lock"></u-icon>
|
||||
<input class="u-input" type="text" v-model="password" maxlength="32"
|
||||
:placeholder="$t('login.placeholderPassword')" :password="!showPassword"/>
|
||||
<image class="u-icon-right"
|
||||
:src="'/static/jeesite/login/eye_' + (showPassword ? 'open' : 'close') + '.png'"
|
||||
@click="showPass()"></image>
|
||||
</view>
|
||||
<view class="list-call" v-if="isValidCodeLogin">
|
||||
<u-icon class="u-icon" size="40" name="coupon"></u-icon>
|
||||
<input class="u-input" type="text" v-model="validCode" maxlength="4" placeholder="验证码"/>
|
||||
<u-image class="img-valid-code" width="300rpx" height="90rpx" :src="imgValidCodeSrc"
|
||||
@click="refreshImgValidCode()"></u-image>
|
||||
</view>
|
||||
</view>
|
||||
<view class="button" hover-class="button-hover" @click="submit()">
|
||||
<text>{{$t('login.loginButton')}}</text>
|
||||
</view>
|
||||
<view class="footer">
|
||||
<navigator url="forget" open-type="navigate">{{$t('login.forget')}}</navigator>
|
||||
<text>|</text>
|
||||
<navigator url="reg" open-type="navigate">{{$t('login.reg')}}</navigator>
|
||||
</view>
|
||||
<view class="oauth2">
|
||||
<u-icon class="u-icon" size="120" color="#00d969" name="weixin-circle-fill" @click="wxLogin"></u-icon>
|
||||
<u-icon class="u-icon" size="120" color="#4fa1e8" name="qq-circle-fill" @click="qqLogin"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
/**
|
||||
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
|
||||
*/
|
||||
import base64 from '@/common/base64.js';
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
username: 'admin',
|
||||
password: '123456',
|
||||
showPassword: false,
|
||||
remember: true,
|
||||
isValidCodeLogin: false,
|
||||
validCode: '',
|
||||
imgValidCodeSrc: null,
|
||||
baseUrl: ''
|
||||
};
|
||||
},
|
||||
onLoad() {
|
||||
this.$u.api.loginCheck().then(res => {
|
||||
if (typeof res === 'object' && res.data.result !== 'login') {
|
||||
uni.reLaunch({
|
||||
url: '/pages/sys/home/index'
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
showPass() {
|
||||
this.showPassword = !this.showPassword;
|
||||
},
|
||||
refreshImgValidCode(e) {
|
||||
if (this.vuex_token == '') {
|
||||
this.$u.api.index().then(res => {
|
||||
this.imgValidCodeSrc = this.vuex_config.baseUrl + '/validCode?__sid='
|
||||
+ res.sessionid + '&t=' + new Date().getTime();
|
||||
});
|
||||
} else {
|
||||
this.imgValidCodeSrc = this.vuex_config.baseUrl + '/validCode?__sid='
|
||||
+ this.vuex_token + '&t=' + new Date().getTime();
|
||||
}
|
||||
this.validCode = '';
|
||||
},
|
||||
submit() {
|
||||
if (this.username.length == 0) {
|
||||
this.$u.toast('请输入账号');
|
||||
return;
|
||||
}
|
||||
if (this.password.length == 0) {
|
||||
this.$u.toast('请输入密码');
|
||||
return;
|
||||
}
|
||||
this.$u.api.login({
|
||||
username: this.username,
|
||||
password: this.password,
|
||||
cid: 111,
|
||||
code: this.validCode === '' ? '1234' : this.validCode,
|
||||
device: 'api',
|
||||
param_remember: this.remember
|
||||
})
|
||||
.then(res => {
|
||||
this.$u.toast(res.message || '未连接服务器');
|
||||
if (res.code === 0) {
|
||||
setTimeout(() => {
|
||||
uni.reLaunch({
|
||||
url: '/pages/sys/home/index'
|
||||
});
|
||||
}, 500);
|
||||
}
|
||||
if (res.isValidCodeLogin) {
|
||||
this.isValidCodeLogin = true;
|
||||
this.refreshImgValidCode();
|
||||
}
|
||||
});
|
||||
},
|
||||
wxLogin(res) {
|
||||
this.$u.toast('微信登录');
|
||||
},
|
||||
qqLogin() {
|
||||
this.$u.toast('QQ 登录');
|
||||
},
|
||||
updateBaseUrl() {
|
||||
this.vuex_config.baseUrl = this.baseUrl;
|
||||
this.$u.vuex('vuex_config', this.vuex_config);
|
||||
this.$u.http.setConfig({
|
||||
baseUrl: this.baseUrl
|
||||
});
|
||||
this.$u.toast('切换成功!');
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss">
|
||||
@import 'index.scss';
|
||||
|
||||
.logo {
|
||||
width: 260 rpx;
|
||||
height: 260 rpx;
|
||||
background: rgba(59, 121, 235, 1);
|
||||
box-shadow: 0 rpx 5 rpx 20 rpx 5 rpx rgba(45, 127, 235, 0.5);
|
||||
border-radius: 50%;
|
||||
margin: 70 rpx auto 10 rpx auto;
|
||||
}
|
||||
|
||||
.logo image {
|
||||
width: 260 rpx;
|
||||
height: 260 rpx;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
.base-url js-select {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.button {
|
||||
margin: 30 rpx auto 0;
|
||||
}
|
||||
|
||||
.footer {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
color: #46afff;
|
||||
height: 40 rpx;
|
||||
line-height: 40 rpx;
|
||||
font-size: 35 rpx;
|
||||
margin-top: 60 rpx;
|
||||
}
|
||||
|
||||
.footer text {
|
||||
font-size: 30 rpx;
|
||||
margin-left: 25 rpx;
|
||||
margin-right: 25 rpx;
|
||||
}
|
||||
|
||||
.oauth2 {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-around;
|
||||
margin: 55 rpx 100 rpx;
|
||||
|
||||
image {
|
||||
height: 100 rpx;
|
||||
width: 100 rpx;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
187
hotgo-uniapp/pages/sys/login/reg.vue
Normal file
@@ -0,0 +1,187 @@
|
||||
<template>
|
||||
<view class="wrap">
|
||||
<view class="list">
|
||||
<view class="list-call">
|
||||
<u-icon class="u-icon" size="40" name="account"></u-icon>
|
||||
<input class="u-input" type="text" v-model="loginCode" maxlength="32" placeholder="请输入登录账号" />
|
||||
</view>
|
||||
<view class="list-call">
|
||||
<u-icon class="u-icon" size="40" name="chat"></u-icon>
|
||||
<input class="u-input" type="text" v-model="userName" maxlength="20" placeholder="请输入用户昵称" />
|
||||
</view>
|
||||
<!-- <view class="list-call">
|
||||
<u-icon class="u-icon" size="40" name="email"></u-icon>
|
||||
<input class="u-input" type="text" v-model="email" placeholder="请输入电子邮箱" />
|
||||
</view> -->
|
||||
<view class="list-call">
|
||||
<u-icon class="u-icon" size="40" name="phone"></u-icon>
|
||||
<input class="u-input" type="text" v-model="mobile" maxlength="11" placeholder="请输入手机号码" />
|
||||
</view>
|
||||
<view class="list-call">
|
||||
<u-icon class="u-icon" size="40" name="lock"></u-icon>
|
||||
<input class="u-input" type="text" v-model="password" maxlength="32" placeholder="请输入登录密码" :password="!showPassword" />
|
||||
<image class="u-icon-right" :src="'/static/jeesite/login/eye_' + (showPassword ? 'open' : 'close') + '.png'" @click="showPass()"></image>
|
||||
</view>
|
||||
<view class="list-call">
|
||||
<u-icon class="u-icon" size="40" name="bookmark"></u-icon>
|
||||
<input class="u-input" type="text" v-model="validCode" maxlength="4" placeholder="图片验证码" />
|
||||
<u-image class="img-valid-code" width="300rpx" height="90rpx" :src="imgValidCodeSrc" @click="refreshImgValidCode()"></u-image>
|
||||
</view>
|
||||
<view class="list-call">
|
||||
<u-icon class="u-icon" size="40" name="coupon"></u-icon>
|
||||
<input class="u-input" type="text" v-model="fpValidCode" maxlength="6" placeholder="手机验证码" />
|
||||
<u-verification-code ref="uCode" :seconds="seconds" @change="codeChange"></u-verification-code>
|
||||
<view class="btn-valid-code" :class="{ 'btn-valid-codes': tips != '获取验证码' && tips != '重新获取' }"
|
||||
hover-class="btn-valid-code-hover" @click="getValidCode()">{{tips}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="agreement">
|
||||
<u-checkbox v-model="terms">我已阅读并同意</u-checkbox>
|
||||
<navigator url="/pages/common/webview?title=软件用户协议&url=https://jeesite.com/docs/support/"
|
||||
open-type="navigate">《软件用户协议》</navigator>
|
||||
</view>
|
||||
<view class="button" hover-class="button-hover" @click="submit()"><text>注册账号</text></view>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
/**
|
||||
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
|
||||
*/
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
loginCode: '',
|
||||
userName: '',
|
||||
email: '',
|
||||
mobile: '',
|
||||
userType: 'member',
|
||||
terms: false,
|
||||
password: '',
|
||||
validCode: '',
|
||||
fpValidCode: '',
|
||||
showPassword: false,
|
||||
imgValidCodeSrc: null,
|
||||
tips: '获取验证码',
|
||||
seconds: 60
|
||||
};
|
||||
},
|
||||
onLoad() {
|
||||
this.refreshImgValidCode();
|
||||
},
|
||||
methods: {
|
||||
showPass() {
|
||||
this.showPassword = !this.showPassword;
|
||||
},
|
||||
refreshImgValidCode(e) {
|
||||
if (this.vuex_token == '') {
|
||||
this.$u.api.index().then(res => {
|
||||
this.imgValidCodeSrc = this.vuex_config.baseUrl + '/validCode?__sid='
|
||||
+ res.sessionid + '&t=' + new Date().getTime();
|
||||
});
|
||||
} else {
|
||||
this.imgValidCodeSrc = this.vuex_config.baseUrl + '/validCode?__sid='
|
||||
+ this.vuex_token + '&t=' + new Date().getTime();
|
||||
}
|
||||
this.validCode = '';
|
||||
},
|
||||
codeChange(text) {
|
||||
this.tips = text;
|
||||
},
|
||||
formValid() {
|
||||
if (this.loginCode.length == 0) {
|
||||
this.$u.toast('请输入账号');
|
||||
return false;
|
||||
}
|
||||
if (this.userName.length == 0) {
|
||||
this.$u.toast('请输入昵称');
|
||||
return false;
|
||||
}
|
||||
if (this.password.length == 0) {
|
||||
this.$u.toast('请输入密码');
|
||||
return false;
|
||||
}
|
||||
if (this.validCode.length == 0) {
|
||||
this.$u.toast('请输入图片验证码');
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
},
|
||||
getValidCode() {
|
||||
if (!this.formValid()) {
|
||||
return;
|
||||
}
|
||||
if (this.$refs.uCode.canGetCode) {
|
||||
this.$u.api.validCode({
|
||||
validCode: this.validCode
|
||||
})
|
||||
.then(res => {
|
||||
if (res !== 'true') {
|
||||
this.$u.toast('图片验证码错误');
|
||||
return;
|
||||
}
|
||||
this.$u.api.getRegValidCode({
|
||||
loginCode: this.loginCode,
|
||||
userName: this.userName,
|
||||
email: this.email,
|
||||
mobile: this.mobile,
|
||||
userType: this.userType,
|
||||
validCode: this.validCode,
|
||||
validType: 'mobile'
|
||||
})
|
||||
.then(res => {
|
||||
this.$u.toast(res.message, 3000);
|
||||
if (res.result == 'false') {
|
||||
this.refreshImgValidCode();
|
||||
}
|
||||
});
|
||||
this.$refs.uCode.start();
|
||||
});
|
||||
}
|
||||
},
|
||||
submit() {
|
||||
if (!this.formValid()) {
|
||||
return;
|
||||
}
|
||||
if (this.terms != true){
|
||||
this.$u.toast('请阅读《用户使用协议》');
|
||||
return false;
|
||||
}
|
||||
if (this.fpValidCode.length == 0) {
|
||||
this.$u.toast('请输入手机验证码');
|
||||
return false;
|
||||
}
|
||||
this.$u.api.saveRegByValidCode({
|
||||
loginCode: this.loginCode,
|
||||
userName: this.userName,
|
||||
regValidCode: this.fpValidCode,
|
||||
password: this.password
|
||||
})
|
||||
.then(res => {
|
||||
uni.showModal({
|
||||
title: '提示',
|
||||
content: res.message,
|
||||
showCancel: false,
|
||||
success: function () {
|
||||
if (res.result == 'true') {
|
||||
uni.reLaunch({
|
||||
url: '/pages/sys/login/index'
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss">
|
||||
@import 'index.scss';
|
||||
|
||||
.agreement {
|
||||
display:flex;
|
||||
flex-direction:row;
|
||||
align-items:center;
|
||||
margin-left:90rpx;
|
||||
color:#666;
|
||||
}
|
||||
</style>
|
||||
77
hotgo-uniapp/pages/sys/msg/form.vue
Normal file
@@ -0,0 +1,77 @@
|
||||
<template>
|
||||
<view class="wrap">
|
||||
<view class="article-title">{{banner.title}}</view>
|
||||
<view class="article-meta">
|
||||
{{banner.author_name}} 发起于 {{banner.published_at}}</text>
|
||||
</view>
|
||||
<view class="article-content">
|
||||
<rich-text :nodes="content"></rich-text>
|
||||
</view>
|
||||
<view class="u-p-t-5"></view>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
/**
|
||||
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
|
||||
*/
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
banner: {
|
||||
cover: '/static/jeesite/banner/2.svg',
|
||||
title: '最好用的快速开发平台',
|
||||
author_name: '系统管理员',
|
||||
published_at: '2021-4-20 12:30'
|
||||
},
|
||||
content: `<p>
|
||||
JeeSite 快速开发平台,不仅仅是一个后台开发框架,它是一个企业级快速开发解决方案,基于经典技术组合 Spring Boot、Spring MVC、Apache Shiro、MyBatis、Beetl、Bootstrap、AdminLTE 采用经典开发模式,让初学者能够更快的入门并投入到团队开发中去。在线代码生成功能,包括模块如:组织机构、角色用户、菜单及按钮授权、数据权限、系统参数、内容管理、工作流等。采用松耦合设计,模块增减便捷;界面无刷新,一键换肤;众多账号安全设置,密码策略;文件在线预览;消息推送;多元化第三方登录;在线定时任务配置;支持集群,支持SAAS;支持多数据源;支持读写分离、分库分表;支持微服务应用。
|
||||
</p><p>
|
||||
JeeSite 快速开发平台的主要目的是能够让初级的研发人员快速的开发出复杂的业务功能(经典架构会的人多),让开发者注重专注业务,其余有平台来封装技术细节,降低技术难度,从而节省人力成本,缩短项目周期,提高软件安全质量。
|
||||
</p><p>
|
||||
JeeSite 自 2013 年发布以来已被广大爱好者用到了企业、政府、医疗、金融、互联网等各个领域中,JeeSite 架构精良、易于扩展、大众思维的设计模式、工匠精神打磨每一个细节,深入开发者的内心,并荣获开源中国《最受欢迎中国开源软件》奖杯,期间也帮助了不少刚毕业的大学生,教师作为入门教材,快速的去实践。
|
||||
</p><p>
|
||||
JeeSite4 的升级,作者结合了多年总结和经验,以及各方面的应用案例,对架构完成了一次全部重构,也纳入很多新的思想。不管是从开发者模式、底层架构、逻辑处理还是到用户界面,用户交互体验上都有很大的进步,在不忘学习成本、提高开发效率的情况下,安全方面也做和很多工作,包括:身份认证、密码策略、安全审计、日志收集等众多安全选项供你选择。努力为大中小微企业打造全方位企业级快速开发解决方案。
|
||||
</p>`
|
||||
};
|
||||
},
|
||||
onLoad() {
|
||||
|
||||
},
|
||||
methods: {
|
||||
navTo(url) {
|
||||
uni.navigateTo({
|
||||
url: url
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss">
|
||||
page {
|
||||
background-color: #f8f8f8;
|
||||
}
|
||||
.article-title {
|
||||
font-size: 38rpx;
|
||||
font-weight: 400;
|
||||
text-align: center;
|
||||
padding-bottom: 30rpx;
|
||||
margin: 30rpx;
|
||||
border-bottom: 1px solid #c0c4cb;
|
||||
color: #51a0d5;
|
||||
}
|
||||
.article-meta {
|
||||
padding: 10rpx 50upx 30rpx;
|
||||
color: gray;
|
||||
}
|
||||
.article-content {
|
||||
padding: 0 30upx;
|
||||
overflow: hidden;
|
||||
font-size: 30rpx;
|
||||
line-height: 50rpx;
|
||||
margin-bottom: 30rpx;
|
||||
text-indent: 60rpx;
|
||||
/deep/ p {
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
163
hotgo-uniapp/pages/sys/msg/index.vue
Normal file
@@ -0,0 +1,163 @@
|
||||
<template>
|
||||
<view class="wrap">
|
||||
<js-lang title="msg.title"></js-lang>
|
||||
<view class="search">
|
||||
<u-search v-model="keywords" @custom="search" @search="search"></u-search>
|
||||
</view>
|
||||
<scroll-view class="scroll-list" scroll-y="true">
|
||||
<u-collapse class="box" :accordion="false" :arrow="false">
|
||||
<view class="item" v-for="(item, index) in list" :key="item.code">
|
||||
<u-collapse-item :open="true">
|
||||
<view class="title" slot="title">
|
||||
<u-icon :name="item.icon != '' ? item.icon : 'home'" :size="35"></u-icon>
|
||||
<view class="text">{{item.name}}</view>
|
||||
<u-badge v-if="item.count && item.count > 0" :count="item.count"></u-badge>
|
||||
</view>
|
||||
<u-cell-group class="list" :border="false">
|
||||
<u-cell-item :arrow="true" v-for="(child, index2) in item.childList" :key="child.code" @click="navTo('/pages/sys/msg/form')">
|
||||
<text slot="title">{{child.name}}</text>
|
||||
<text slot="label">发送者:{{child.createByName}} | 时间:{{child.createDate}}</text>
|
||||
</u-cell-item>
|
||||
</u-cell-group>
|
||||
</u-collapse-item>
|
||||
</view>
|
||||
</u-collapse>
|
||||
</scroll-view>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
/**
|
||||
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
|
||||
*/
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
keywords: '',
|
||||
|
||||
list: [
|
||||
{
|
||||
code: 'a',
|
||||
name: '重要消息',
|
||||
icon: 'error-circle',
|
||||
count: 3,
|
||||
childList: [
|
||||
{
|
||||
code: 'a1',
|
||||
name: '铁马冰河入梦来铁马冰河入梦来铁马冰河入梦来河入梦来铁马冰河入梦来河入梦来铁马冰河入梦来河入梦来',
|
||||
createByName: '管理员',
|
||||
createDate: '2021-4-6 12:10'
|
||||
},
|
||||
{
|
||||
code: 'a2',
|
||||
name: '发文',
|
||||
createByName: '管理员',
|
||||
createDate: '2021-4-6 12:10'
|
||||
},
|
||||
{
|
||||
code: 'a3',
|
||||
name: '查询',
|
||||
createByName: '管理员',
|
||||
createDate: '2021-4-6 12:10'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
code: 'a-1',
|
||||
name: '一般消息',
|
||||
icon: 'chat',
|
||||
childList: [
|
||||
{
|
||||
code: 'a1',
|
||||
name: '铁马冰河入梦来铁马冰河入梦来铁马冰河入梦来河入梦来',
|
||||
createByName: '管理员',
|
||||
createDate: '2021-4-6 12:10'
|
||||
},
|
||||
{
|
||||
code: 'a2',
|
||||
name: '发文',
|
||||
createByName: '管理员',
|
||||
createDate: '2021-4-6 12:10'
|
||||
},
|
||||
{
|
||||
code: 'a3',
|
||||
name: '查询',
|
||||
createByName: '管理员',
|
||||
createDate: '2021-4-6 12:10'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
code: 'a-2',
|
||||
name: '系统通知',
|
||||
icon: 'bell',
|
||||
childList: [
|
||||
{
|
||||
code: 'a1',
|
||||
name: '铁马冰河入梦来铁马冰河入梦来铁马冰河入梦来河入梦来',
|
||||
createByName: '管理员',
|
||||
createDate: '2021-4-6 12:10'
|
||||
},
|
||||
{
|
||||
code: 'a2',
|
||||
name: '发文',
|
||||
createByName: '管理员',
|
||||
createDate: '2021-4-6 12:10'
|
||||
},
|
||||
{
|
||||
code: 'a3',
|
||||
name: '查询',
|
||||
createByName: '管理员',
|
||||
createDate: '2021-4-6 12:10'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
code: 'a-3',
|
||||
name: '已读消息',
|
||||
icon: 'volume',
|
||||
childList: [
|
||||
{
|
||||
code: 'a1',
|
||||
name: '铁马冰河入梦来铁马冰河入梦来铁马冰河入梦来河入梦来',
|
||||
createByName: '管理员',
|
||||
createDate: '2021-4-6 12:10'
|
||||
},
|
||||
{
|
||||
code: 'a2',
|
||||
name: '发文',
|
||||
createByName: '管理员',
|
||||
createDate: '2021-4-6 12:10'
|
||||
},
|
||||
{
|
||||
code: 'a3',
|
||||
name: '查询',
|
||||
createByName: '管理员',
|
||||
createDate: '2021-4-6 12:10'
|
||||
}
|
||||
]
|
||||
},
|
||||
],
|
||||
|
||||
};
|
||||
},
|
||||
onLoad() {
|
||||
|
||||
},
|
||||
methods: {
|
||||
navTo(url) {
|
||||
uni.navigateTo({
|
||||
url: url
|
||||
});
|
||||
},
|
||||
search(value) {
|
||||
this.$u.toast('搜索内容为:' + value)
|
||||
}
|
||||
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss">
|
||||
page {
|
||||
background-color: #f8f8f8;
|
||||
}
|
||||
</style>
|
||||
78
hotgo-uniapp/pages/sys/user/about.vue
Normal file
@@ -0,0 +1,78 @@
|
||||
<template>
|
||||
<view class="wrap">
|
||||
<view class="u-p-t-30 u-p-b-30 u-flex u-flex-col u-text-center">
|
||||
<u-avatar size="250" src="/static/jeesite/logo200.png"></u-avatar>
|
||||
<view class="title">{{vuex_config.productName}}</view>
|
||||
<view class="version">{{vuex_config.productVersion}}</view>
|
||||
</view>
|
||||
<u-cell-group class="form" :border="false">
|
||||
<u-cell-item :arrow="true" title="检查更新" @click="upgrade()"></u-cell-item>
|
||||
<navigator url="comment" open-type="navigate">
|
||||
<u-cell-item :arrow="true" title="意见反馈"></u-cell-item>
|
||||
</navigator>
|
||||
<navigator url="/pages/common/webview?title=公司首页&url=https://jeesite.com" open-type="navigate">
|
||||
<u-cell-item :arrow="true" title="公司首页">https://jeesite.com</u-cell-item>
|
||||
</navigator>
|
||||
<navigator url="/pages/common/webview?title=服务条款&url=http://s.jeesite.com/" open-type="navigate">
|
||||
<u-cell-item :arrow="true" title="服务条款">http://s.jeesite.com/</u-cell-item>
|
||||
</navigator>
|
||||
</u-cell-group>
|
||||
<view class="copyright">
|
||||
<view>卓源软件 版权所有</view>
|
||||
<view>Copyright © 2021 jeesite.com</view>
|
||||
<view>All Rights Reserved</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
/**
|
||||
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
|
||||
*/
|
||||
export default {
|
||||
methods: {
|
||||
upgrade(){
|
||||
// #ifdef APP-PLUS
|
||||
this.$u.api.upgradeCheck().then(res => {
|
||||
if (res.result == 'true'){
|
||||
uni.showModal({
|
||||
title: '提示',
|
||||
content: res.message + '是否下载更新?',
|
||||
showCancel: true,
|
||||
success: function (res2) {
|
||||
if (res2.confirm) {
|
||||
plus.runtime.openURL(res.data.apkUrl);
|
||||
}
|
||||
}
|
||||
});
|
||||
}else{
|
||||
this.$u.toast(res.message);
|
||||
}
|
||||
});
|
||||
// #endif
|
||||
// #ifndef APP-PLUS
|
||||
this.$u.toast('小程序端或H5端已是最新版,无需检查更新!');
|
||||
// #endif
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss">
|
||||
page {
|
||||
background-color: #f8f8f8;
|
||||
}
|
||||
.title {
|
||||
display: flex;
|
||||
margin: 30rpx 0;
|
||||
font-size: 50rpx;
|
||||
}
|
||||
.version {
|
||||
margin-bottom: 10rpx;
|
||||
font-size: 40rpx;
|
||||
}
|
||||
.copyright {
|
||||
margin-top: 50rpx;
|
||||
text-align: center;
|
||||
line-height: 60rpx;
|
||||
color: #999;
|
||||
}
|
||||
</style>
|
||||
98
hotgo-uniapp/pages/sys/user/comment.vue
Normal file
@@ -0,0 +1,98 @@
|
||||
<template>
|
||||
<view class="wrap">
|
||||
<u-form class="form" :model="model" :rules="rules" ref="uForm" label-position="top">
|
||||
<u-form-item label="分类:" prop="category" label-position="left" label-width="100">
|
||||
<js-select v-model="model.category" dict-type="app_comment_category"
|
||||
placeholder="请选择分类"></js-select>
|
||||
</u-form-item>
|
||||
<u-form-item label="问题和意见" prop="content">
|
||||
<u-input type="textarea" placeholder="请填写10个字以上的问题描述以便我们提供更好的帮助"
|
||||
v-model="model.content" height="200" maxlength="500" />
|
||||
</u-form-item>
|
||||
<u-form-item label="上传图片(选填,提供问题截图)" prop="images">
|
||||
<js-uploadfile v-model="model" biz-type="appComment_image"></js-uploadfile>
|
||||
</u-form-item>
|
||||
<u-form-item label="联系方式(手机、邮箱、QQ号码)" prop="contact">
|
||||
<u-input placeholder="选填,便于我们与你联系,进一步沟通"
|
||||
v-model="model.contact" type="text" maxlength="200"></u-input>
|
||||
</u-form-item>
|
||||
</u-form>
|
||||
<view class="form-footer">
|
||||
<u-button class="btn" type="primary" @click="submit">提交</u-button>
|
||||
<!-- <u-button class="btn" type="default" @click="cancel">关闭</u-button> -->
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
/**
|
||||
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
|
||||
*/
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
model: {
|
||||
id: '',
|
||||
category: '',
|
||||
content: '',
|
||||
contact: '',
|
||||
deviceInfo: ''
|
||||
},
|
||||
rules: {
|
||||
category: [
|
||||
{
|
||||
required: true,
|
||||
message: '请选择问题和意见的分类',
|
||||
trigger: ['change','blur'],
|
||||
}
|
||||
],
|
||||
content: [
|
||||
{
|
||||
required: true,
|
||||
min: 10, max: 500,
|
||||
message: '问题和意见在 10 到 500 个字符之间',
|
||||
trigger: ['change','blur'],
|
||||
}
|
||||
],
|
||||
}
|
||||
};
|
||||
},
|
||||
onReady() {
|
||||
this.$refs.uForm.setRules(this.rules);
|
||||
// 获取设备信息
|
||||
uni.getSystemInfo({
|
||||
success: res => {
|
||||
this.model.deviceInfo = JSON.stringify(res);
|
||||
}
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
submit() {
|
||||
// console.log(this.model)
|
||||
this.$refs.uForm.validate(valid => {
|
||||
if (valid) {
|
||||
this.$u.api.commentSave(this.model).then(res => {
|
||||
uni.showModal({
|
||||
title: '提示',
|
||||
content: res.message,
|
||||
showCancel: false,
|
||||
success: function () {
|
||||
if (res.result == 'true') {
|
||||
uni.navigateBack();
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
} else {
|
||||
this.$u.toast('您填写的信息有误,请根据提示修正。');
|
||||
}
|
||||
});
|
||||
},
|
||||
cancel() {
|
||||
uni.navigateBack();
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss">
|
||||
|
||||
</style>
|
||||
106
hotgo-uniapp/pages/sys/user/help.vue
Normal file
@@ -0,0 +1,106 @@
|
||||
<template>
|
||||
<view class="wrap">
|
||||
<view class="search">
|
||||
<u-search v-model="keywords" @custom="search" @search="search"></u-search>
|
||||
</view>
|
||||
<view class="u-p-t-5 u-p-b-5">
|
||||
<u-collapse class="box" :accordion="false" :arrow="false">
|
||||
<view class="item" v-for="(item, index) in list" :key="item.code">
|
||||
<u-collapse-item :open="true">
|
||||
<view class="title" slot="title">
|
||||
<u-icon :name="item.icon != '' ? item.icon : 'home'" :size="35"></u-icon>
|
||||
<view class="text">{{item.name}}</view>
|
||||
</view>
|
||||
<u-cell-group class="list" :border="false">
|
||||
<u-cell-item :arrow="true" v-for="(child, index2) in item.childList" :key="child.code" @click="navTo('/pages/sys/msg/form')">
|
||||
<text slot="title">{{child.name}}</text>
|
||||
<text slot="label">发送者:{{child.createByName}} | 时间:{{child.createDate}}</text>
|
||||
</u-cell-item>
|
||||
</u-cell-group>
|
||||
</u-collapse-item>
|
||||
</view>
|
||||
</u-collapse>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
/**
|
||||
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
|
||||
*/
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
keywords: '',
|
||||
|
||||
list: [
|
||||
{
|
||||
code: 'a',
|
||||
name: '常见问题',
|
||||
icon: 'error-circle',
|
||||
childList: [
|
||||
{
|
||||
code: 'a1',
|
||||
name: '为什么没有消息提醒?',
|
||||
createByName: '管理员',
|
||||
createDate: '2021-4-6 12:10'
|
||||
},
|
||||
{
|
||||
code: 'a2',
|
||||
name: '怎么关闭消息提醒?',
|
||||
createByName: '管理员',
|
||||
createDate: '2021-4-6 12:10'
|
||||
},
|
||||
{
|
||||
code: 'a3',
|
||||
name: '怎么办理工单?',
|
||||
createByName: '管理员',
|
||||
createDate: '2021-4-6 12:10'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
code: 'a-1',
|
||||
name: '任务相关',
|
||||
icon: 'clock',
|
||||
childList: [
|
||||
{
|
||||
code: 'a1',
|
||||
name: '怎么办理任务?',
|
||||
createByName: '管理员',
|
||||
createDate: '2021-4-6 12:10'
|
||||
},
|
||||
{
|
||||
code: 'a2',
|
||||
name: '怎么完成任务?',
|
||||
createByName: '管理员',
|
||||
createDate: '2021-4-6 12:10'
|
||||
},
|
||||
{
|
||||
code: 'a3',
|
||||
name: '怎么查询任务?',
|
||||
createByName: '管理员',
|
||||
createDate: '2021-4-6 12:10'
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
navTo(url) {
|
||||
uni.navigateTo({
|
||||
url: url
|
||||
});
|
||||
},
|
||||
search(value) {
|
||||
this.$u.toast('搜索内容为:' + value)
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss">
|
||||
page {
|
||||
background-color: #f8f8f8;
|
||||
}
|
||||
</style>
|
||||
98
hotgo-uniapp/pages/sys/user/index.scss
Normal file
@@ -0,0 +1,98 @@
|
||||
/*!
|
||||
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
|
||||
* @author ThinkGem
|
||||
* @version 2020-9-1
|
||||
*/
|
||||
.header {
|
||||
background-color: #4094ff;
|
||||
|
||||
.userinfo {
|
||||
display: flex;
|
||||
padding: 40rpx;
|
||||
|
||||
.image {
|
||||
flex-shrink: 0;
|
||||
width: 120rpx;
|
||||
height: 120rpx;
|
||||
image {
|
||||
border-radius: 100%;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.info {
|
||||
display: flex;
|
||||
flex-flow: wrap;
|
||||
padding-left: 30rpx;
|
||||
color: #fff;
|
||||
|
||||
.username {
|
||||
width: 100%;
|
||||
font-size: 40rpx;
|
||||
padding-top: 8rpx;
|
||||
}
|
||||
|
||||
.usercode {
|
||||
height: 48rpx;
|
||||
padding: 0 20rpx;
|
||||
margin-top: 10rpx;
|
||||
background-color: rgba(0, 0, 0, 0.1);
|
||||
border-radius: 20rpx;
|
||||
font-size: 30rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.logout {
|
||||
flex-shrink: 0;
|
||||
position: absolute;
|
||||
right: 70rpx;
|
||||
top: 65rpx;
|
||||
.u-btn {
|
||||
font-size: 30rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.toolbar {
|
||||
padding: 0 4%;
|
||||
margin-bottom: 5rpx;
|
||||
border-radius: 0 0 100% 100%;
|
||||
background-color: #4094ff;
|
||||
|
||||
.box {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-around;
|
||||
padding: 10rpx;
|
||||
border-radius: 15rpx;
|
||||
box-shadow: 0 0 20rpx rgba(0, 0, 0, 0.15);
|
||||
background-color: #fefefe;
|
||||
|
||||
.item {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
// flex-flow: wrap;
|
||||
height: 120rpx;
|
||||
color: #666666;
|
||||
font-size: 30rpx;
|
||||
padding: 10rpx 10rpx;
|
||||
|
||||
.icon {
|
||||
font-size: 50rpx;
|
||||
}
|
||||
|
||||
.label {
|
||||
padding: 10rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.hover {
|
||||
background-color: #f6f6f6;
|
||||
border-radius: 15rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
128
hotgo-uniapp/pages/sys/user/index.vue
Normal file
@@ -0,0 +1,128 @@
|
||||
<template>
|
||||
<view class="wrap">
|
||||
<js-lang title="user.title"></js-lang>
|
||||
<view class="header">
|
||||
<view class="userinfo">
|
||||
<view class="image" @click="navTo('info')"><image :src="avatarUrl"></image></view>
|
||||
<view class="info">
|
||||
<view class="username">{{ vuex_user.username || $t('login.noLogin') }}</view>
|
||||
<view class="realname">{{ vuex_user.realname || $t('login.noLogin') }}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="logout"><u-button type="success" shape="circle" size="mini" @click="logout">{{$t('login.logoutButton')}}</u-button></view>
|
||||
</view>
|
||||
<!-- <view class="toolbar">
|
||||
<view class="box">
|
||||
<navigator class="item" hover-class="hover" url="info">
|
||||
<view class="icon"><u-icon class="u-icon" :style="{ color: '#ea9a44' }" name="account"></u-icon></view>
|
||||
<text class="label">个人信息</text>
|
||||
</navigator>
|
||||
<navigator class="item" hover-class="hover" url="help">
|
||||
<view class="icon"><u-icon class="u-icon" :style="{ color: '#a571fd' }" name="question-circle"></u-icon></view>
|
||||
<text class="label">帮助中心</text>
|
||||
</navigator>
|
||||
<navigator class="item" hover-class="hover" url="info">
|
||||
<view class="icon"><u-icon class="u-icon" :style="{ color: '#ea9a44' }" name="account"></u-icon></view>
|
||||
<text class="label">个人信息</text>
|
||||
</navigator>
|
||||
<navigator class="item" hover-class="hover" url="help">
|
||||
<view class="icon"><u-icon class="u-icon" :style="{ color: '#a571fd' }" name="question-circle"></u-icon></view>
|
||||
<text class="label">帮助中心</text>
|
||||
</navigator>
|
||||
</view>
|
||||
</view> -->
|
||||
<view class="u-p-t-10 u-p-b-20">
|
||||
<view class="u-m-t-20">
|
||||
<u-cell-group>
|
||||
<u-cell-item icon="account" :iconSize="iconSize" :iconStyle="{color:'#266bff'}"
|
||||
title="个人信息" @click="navTo('info')"></u-cell-item>
|
||||
<u-cell-item icon="lock" :iconSize="iconSize" :iconStyle="{ color: '#1bca6a' }"
|
||||
title="修改密码" @click="navTo('pwd')"></u-cell-item>
|
||||
<u-cell-item icon="question-circle" :iconSize="iconSize" :iconStyle="{ color: '#d99e59' }"
|
||||
title="帮助中心" @click="navTo('help')"></u-cell-item>
|
||||
</u-cell-group>
|
||||
</view>
|
||||
<view class="u-m-t-20">
|
||||
<u-cell-group>
|
||||
<u-cell-item icon="heart" :iconSize="iconSize" :iconStyle="{ color: '#0a1aff' }"
|
||||
title="关于我们" @click="navTo('about')"></u-cell-item>
|
||||
<u-cell-item icon="kefu-ermai" :iconSize="iconSize" :iconStyle="{ color: '#a571fd' }"
|
||||
title="意见反馈" @click="navTo('comment')"></u-cell-item>
|
||||
<u-cell-item icon="clock" :iconSize="iconSize" :iconStyle="{ color: '#ff6f27' }"
|
||||
title="检查更新" @click="upgrade()"></u-cell-item>
|
||||
</u-cell-group>
|
||||
</view>
|
||||
<view class="u-m-t-20">
|
||||
<u-cell-group>
|
||||
<u-cell-item icon="setting" :iconSize="iconSize" :iconStyle="{ color: '#1a94ff' }"
|
||||
title="系统设置" @click="navTo('setting')"></u-cell-item>
|
||||
</u-cell-group>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
/**
|
||||
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
|
||||
*/
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
iconSize: 38
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
avatarUrl() {
|
||||
let url = this.vuex_user.avatar || '/ctxPath/static/images/user1.jpg';
|
||||
url = url.replace('/ctxPath/', this.vuex_config.baseUrl + '/');
|
||||
return url + '?t=' + new Date().getTime();
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
navTo(url) {
|
||||
uni.navigateTo({
|
||||
url: url
|
||||
});
|
||||
},
|
||||
logout() {
|
||||
this.$u.api.logout().then(res => {
|
||||
this.$u.toast(res.message);
|
||||
setTimeout(() => {
|
||||
uni.reLaunch({
|
||||
url: '/pages/sys/login/index'
|
||||
});
|
||||
}, 500);
|
||||
});
|
||||
},
|
||||
upgrade(){
|
||||
// #ifdef APP-PLUS
|
||||
this.$u.api.upgradeCheck().then(res => {
|
||||
if (res.result == 'true'){
|
||||
uni.showModal({
|
||||
title: '提示',
|
||||
content: res.message + '是否下载更新?',
|
||||
showCancel: true,
|
||||
success: function (res2) {
|
||||
if (res2.confirm) {
|
||||
plus.runtime.openURL(res.data.apkUrl);
|
||||
}
|
||||
}
|
||||
});
|
||||
}else{
|
||||
this.$u.toast(res.message);
|
||||
}
|
||||
});
|
||||
// #endif
|
||||
// #ifndef APP-PLUS
|
||||
this.$u.toast('小程序端或H5端无需检查更新')
|
||||
// #endif
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss">
|
||||
@import 'index.scss';
|
||||
page {
|
||||
background-color: #f8f8f8;
|
||||
}
|
||||
</style>
|
||||
224
hotgo-uniapp/pages/sys/user/info.vue
Normal file
@@ -0,0 +1,224 @@
|
||||
<template>
|
||||
<view class="wrap">
|
||||
<view class="u-m-t-50 u-flex u-flex-col u-text-center">
|
||||
<u-avatar size="150" :src="avatarUrl"></u-avatar>
|
||||
<u-button size="medium" shape="circle" class="u-m-t-40"
|
||||
style="font-size:34rpx" @click="chooseAvatar">选择头像</u-button>
|
||||
</view>
|
||||
<u-form class="form" :model="model" :rules="rules" ref="uForm">
|
||||
<u-form-item label="昵称" prop="realname" label-width="120">
|
||||
<u-input placeholder="请输入用户昵称" v-model="model.realname" type="text"></u-input>
|
||||
</u-form-item>
|
||||
<u-form-item label="性别" prop="sex" label-width="120">
|
||||
<js-radio v-model="model.sex" dict-type="sys_user_sex"></js-radio>
|
||||
</u-form-item>
|
||||
<u-form-item label="邮箱" prop="email" label-width="120">
|
||||
<u-input placeholder="请输入电子邮箱" v-model="model.email" type="text"></u-input>
|
||||
</u-form-item>
|
||||
<u-form-item label="手机" prop="mobile" label-width="120">
|
||||
<u-input placeholder="请输入手机号码" v-model="model.mobile" type="number" maxlength="11"></u-input>
|
||||
</u-form-item>
|
||||
<u-form-item label="QQ" prop="qq" label-width="120">
|
||||
<u-input placeholder="请输入QQ" v-model="model.qq" type="text"></u-input>
|
||||
</u-form-item>
|
||||
<u-form-item label="地址" prop="address" label-width="120">
|
||||
<u-input type="textarea" placeholder="请输入你的地址" v-model="model.address" height="128" />
|
||||
</u-form-item>
|
||||
<u-form-item label="上次登录时间" label-width="250">
|
||||
{{this.$u.date(model.last_time, 'yyyy-mm-dd hh:MM:ss')}}
|
||||
</u-form-item>
|
||||
<u-form-item label="上次登录地址" label-width="250">
|
||||
{{model.last_ip}}
|
||||
</u-form-item>
|
||||
</u-form>
|
||||
<view class="form-footer">
|
||||
<u-button class="btn" type="primary" @click="submit">提交</u-button>
|
||||
<!-- <u-button class="btn" type="default" @click="cancel">关闭</u-button> -->
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
/**
|
||||
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
|
||||
*/
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
model: {
|
||||
sex: '1'
|
||||
},
|
||||
rules: {
|
||||
realname: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入姓名',
|
||||
trigger: 'blur' ,
|
||||
},
|
||||
{
|
||||
min: 2,
|
||||
max: 32,
|
||||
message: '姓名长度在 2 到 32 个字符',
|
||||
trigger: ['change', 'blur'],
|
||||
},
|
||||
// {
|
||||
// // 此为同步验证,可以直接返回true或者false,如果是异步验证,稍微不同,见下方说明
|
||||
// validator: (rule, value, callback) => {
|
||||
// // 调用uView自带的js验证规则,详见:https://www.uviewui.com/js/test.html
|
||||
// return this.$u.test.chinese(value);
|
||||
// },
|
||||
// message: '姓名必须为中文',
|
||||
// // 触发器可以同时用blur和change,二者之间用英文逗号隔开
|
||||
// trigger: ['change', 'blur'],
|
||||
// },
|
||||
// {
|
||||
// // 异步验证,用途:比如用户注册时输入完账号,后端检查账号是否已存在
|
||||
// // 异步验证需要通过调用 callback(),并且在里面抛出 new Error()
|
||||
// // 抛出的内容为需要提示的信息,和其他方式的 message 属性的提示一样
|
||||
// asyncValidator: (rule, value, callback) => {
|
||||
// this.$u.post('/ebapi/public_api/index').then(res => {
|
||||
// if(res.error) {
|
||||
// // 如果验证出错,需要在callback()抛出new Error('错误提示信息')
|
||||
// callback(new Error('姓名重复'));
|
||||
// } else {
|
||||
// // 如果没有错误,也要执行 callback() 回调
|
||||
// callback();
|
||||
// }
|
||||
// })
|
||||
// },
|
||||
// trigger: ['blur'],
|
||||
// },
|
||||
// {
|
||||
// // 正则校验示例,此处用正则校验是否中文,此处仅为示例,因为uView有this.$u.test.chinese可以判断是否中文
|
||||
// pattern: /^[\u4e00-\u9fa5]+$/gi,
|
||||
// message: '简介只能为中文',
|
||||
// trigger: 'change',
|
||||
// },
|
||||
],
|
||||
mobile: [
|
||||
// {
|
||||
// required: true,
|
||||
// message: '请输入手机号',
|
||||
// trigger: ['change','blur'],
|
||||
// },
|
||||
{
|
||||
validator: (rule, value, callback) => {
|
||||
return value === '' || this.$u.test.mobile(value);
|
||||
},
|
||||
message: '手机号码不正确',
|
||||
trigger: ['change','blur'],
|
||||
}
|
||||
],
|
||||
// password: [
|
||||
// {
|
||||
// required: true,
|
||||
// message: '请输入密码',
|
||||
// trigger: ['change','blur'],
|
||||
// },
|
||||
// {
|
||||
// // 正则不能含有两边的引号
|
||||
// pattern: /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]+\S{5,12}$/,
|
||||
// message: '需同时含有字母和数字,长度在6-12之间',
|
||||
// trigger: ['change','blur'],
|
||||
// }
|
||||
// ],
|
||||
// rePassword: [
|
||||
// {
|
||||
// required: true,
|
||||
// message: '请重新输入密码',
|
||||
// trigger: ['change','blur'],
|
||||
// },
|
||||
// {
|
||||
// validator: (rule, value, callback) => {
|
||||
// return value === this.model.password;
|
||||
// },
|
||||
// message: '两次输入的密码不相等',
|
||||
// trigger: ['change','blur'],
|
||||
// }
|
||||
// ],
|
||||
},
|
||||
avatarBase64: ''
|
||||
};
|
||||
},
|
||||
onLoad() {
|
||||
this.$u.api.memberProfile().then(res => {
|
||||
this.model = res.data.user;
|
||||
});
|
||||
uni.$on('uAvatarCropper', path => {
|
||||
this.avatarBase64 = path;
|
||||
if (this.avatarBase64 != '' && !this.avatarBase64.startsWith('data:')){
|
||||
// #ifdef APP-PLUS
|
||||
let self = this, fileUrl = this.avatarBase64;
|
||||
plus.io.resolveLocalFileSystemURL(path, function(entry) {
|
||||
entry.file(function(file) {
|
||||
var fileReader = new plus.io.FileReader()
|
||||
fileReader.onload = function(data) {
|
||||
// console.log(data.target.result);
|
||||
self.avatarBase64 = data.target.result;
|
||||
}
|
||||
fileReader.onerror = function(error) { }
|
||||
fileReader.readAsDataURL(file)
|
||||
}, function(error) { })
|
||||
}, function(error) { });
|
||||
// #endif
|
||||
// #ifndef APP-PLUS
|
||||
this.avatarBase64 = 'data:image/jpeg;base64,' + uni.getFileSystemManager()
|
||||
.readFileSync(this.avatarBase64, "base64");
|
||||
// #endif
|
||||
}
|
||||
})
|
||||
},
|
||||
computed: {
|
||||
avatarUrl() {
|
||||
if (this.avatarBase64 != ''){
|
||||
return this.avatarBase64;
|
||||
}
|
||||
let url = this.vuex_user.avatarUrl || '/ctxPath/static/images/user1.jpg';
|
||||
url = url.replace('/ctxPath/', this.vuex_config.baseUrl + '/');
|
||||
return url;
|
||||
}
|
||||
},
|
||||
onReady() {
|
||||
this.$refs.uForm.setRules(this.rules);
|
||||
},
|
||||
methods: {
|
||||
chooseAvatar() {
|
||||
this.$u.route({
|
||||
url: '/uview-ui/components/u-avatar-cropper/u-avatar-cropper',
|
||||
params: {
|
||||
destWidth: 800, // 输出图片宽高
|
||||
rectWidth: 200, // 裁剪框的宽高
|
||||
fileType: 'jpg', // 输出的图片类型,如果'png'类型发现裁剪的图片太大,改成"jpg"即可
|
||||
}
|
||||
})
|
||||
},
|
||||
submit() {
|
||||
this.$refs.uForm.validate(valid => {
|
||||
if (valid) {
|
||||
this.model.avatarBase64 = this.avatarBase64;
|
||||
this.$u.api.user.infoSaveBase(this.model).then(res => {
|
||||
this.$u.api.index(); // 保存后更新用户信息
|
||||
uni.showModal({
|
||||
title: '提示',
|
||||
content: res.message,
|
||||
showCancel: false,
|
||||
success: function () {
|
||||
if (res.result == 'true') {
|
||||
uni.navigateBack();
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
} else {
|
||||
this.$u.toast('您填写的信息有误,请根据提示修正。');
|
||||
}
|
||||
});
|
||||
},
|
||||
cancel() {
|
||||
uni.navigateBack();
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss">
|
||||
|
||||
</style>
|
||||
106
hotgo-uniapp/pages/sys/user/pwd.vue
Normal file
@@ -0,0 +1,106 @@
|
||||
<template>
|
||||
<view class="wrap">
|
||||
<u-form class="form" :model="model" :rules="rules" ref="uForm">
|
||||
<u-form-item label="旧密码" prop="oldPassword" label-width="180">
|
||||
<u-input type="password" v-model="model.oldPassword" placeholder="请输入旧密码"></u-input>
|
||||
</u-form-item>
|
||||
<u-form-item label="新密码" prop="newPassword" label-width="180">
|
||||
<u-input type="password" v-model="model.newPassword" placeholder="请输入新密码"></u-input>
|
||||
</u-form-item>
|
||||
<u-form-item label="确认密码" prop="confirmNewPassword" label-width="180">
|
||||
<u-input type="password" v-model="model.confirmNewPassword" placeholder="请确认新密码"></u-input>
|
||||
</u-form-item>
|
||||
</u-form>
|
||||
<view class="form-footer">
|
||||
<u-button class="btn" type="primary" @click="submit">提交</u-button>
|
||||
<!-- <u-button class="btn" type="default" @click="cancel">关闭</u-button> -->
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
/**
|
||||
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
|
||||
*/
|
||||
import base64 from '@/common/base64.js';
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
model: {
|
||||
oldPassword: '',
|
||||
newPassword: '',
|
||||
confirmNewPassword: ''
|
||||
},
|
||||
rules: {
|
||||
oldPassword: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入旧密码',
|
||||
trigger: ['change','blur'],
|
||||
}
|
||||
],
|
||||
newPassword: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入新密码',
|
||||
trigger: ['change','blur'],
|
||||
},
|
||||
{
|
||||
pattern: /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]+\S{5,12}$/,
|
||||
message: '需同时含有字母和数字,长度在6-12之间',
|
||||
trigger: ['change','blur'],
|
||||
}
|
||||
],
|
||||
confirmNewPassword: [
|
||||
{
|
||||
required: true,
|
||||
message: '请重新输入密码',
|
||||
trigger: ['change','blur'],
|
||||
},
|
||||
{
|
||||
validator: (rule, value, callback) => {
|
||||
return value === this.model.newPassword;
|
||||
},
|
||||
message: '两次输入的密码不相等',
|
||||
trigger: ['change','blur'],
|
||||
}
|
||||
],
|
||||
}
|
||||
};
|
||||
},
|
||||
onReady() {
|
||||
this.$refs.uForm.setRules(this.rules);
|
||||
},
|
||||
methods: {
|
||||
submit() {
|
||||
this.$refs.uForm.validate(valid => {
|
||||
if (valid) {
|
||||
this.$u.api.user.infoSavePwd({
|
||||
oldPassword: base64.btoa(this.model.oldPassword),
|
||||
newPassword: base64.btoa(this.model.newPassword),
|
||||
confirmNewPassword: base64.btoa(this.model.confirmNewPassword)
|
||||
}).then(res => {
|
||||
uni.showModal({
|
||||
title: '提示',
|
||||
content: res.message,
|
||||
showCancel: false,
|
||||
success: function () {
|
||||
if (res.result == 'true') {
|
||||
uni.navigateBack();
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
} else {
|
||||
this.$u.toast('您填写的信息有误,请根据提示修正。');
|
||||
}
|
||||
});
|
||||
},
|
||||
cancel() {
|
||||
uni.navigateBack();
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss">
|
||||
|
||||
</style>
|
||||
87
hotgo-uniapp/pages/sys/user/setting.vue
Normal file
@@ -0,0 +1,87 @@
|
||||
<template>
|
||||
<view class="wrap">
|
||||
<u-cell-group :border="false" title="消息提醒">
|
||||
<u-cell-item title="接受消息提醒" :arrow="false">
|
||||
<u-switch v-model="message" slot="right-icon" class="u-m-l-20"></u-switch>
|
||||
</u-cell-item>
|
||||
<u-cell-item title="通知栏显示消息详情" :arrow="false">
|
||||
<u-switch v-model="messageBar" slot="right-icon" class="u-m-l-20"></u-switch>
|
||||
<text slot="label">关闭后,当收到消息的时候,只显示有提示,不显示消息内容。</text>
|
||||
</u-cell-item>
|
||||
</u-cell-group>
|
||||
<u-cell-group :border="false" title="声音与振动">
|
||||
<u-cell-item title="收到消息后播放声音或振动" @click="openSettings">
|
||||
<text slot="label">前往系统设置中,修改声音与振动</text>
|
||||
</u-cell-item>
|
||||
</u-cell-group>
|
||||
<u-cell-group :border="false" title="软件更新提醒">
|
||||
<u-cell-item title="软件更新提醒" :arrow="false">
|
||||
<u-switch v-model="upgrade" slot="right-icon" class="u-m-l-20"></u-switch>
|
||||
<text slot="label">当本软件有新版本发布时,给予提醒</text>
|
||||
</u-cell-item>
|
||||
</u-cell-group>
|
||||
<view class="u-m-40">
|
||||
<u-button type="primary" @click="logout" :hair-line="false">退出登录</u-button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
/**
|
||||
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
|
||||
*/
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
message: true,
|
||||
messageBar: true,
|
||||
upgrade: true
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
openSettings() {
|
||||
// #ifdef APP-PLUS
|
||||
uni.getSystemInfo({
|
||||
success(res) {
|
||||
if(res.platform == 'ios'){
|
||||
plus.runtime.openURL("app-settings://");
|
||||
} else if (res.platform == 'android'){
|
||||
var main = plus.android.runtimeMainActivity();
|
||||
var Intent = plus.android.importClass("android.content.Intent");
|
||||
var mIntent = new Intent('android.settings.SOUND_SETTINGS');
|
||||
main.startActivity(mIntent);
|
||||
}
|
||||
}
|
||||
});
|
||||
// #endif
|
||||
// #ifndef APP-PLUS
|
||||
this.$u.toast('小程序端或H5端已是最新版,无需检查更新!');
|
||||
// #endif
|
||||
},
|
||||
logout() {
|
||||
this.$u.api.logout().then(res => {
|
||||
this.$u.toast(res.message);
|
||||
if (res.result == 'true') {
|
||||
let self = this;
|
||||
setTimeout(() => {
|
||||
uni.reLaunch({
|
||||
url: '/pages/sys/login/index'
|
||||
});
|
||||
}, 500);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss">
|
||||
@import '../home/index.scss';
|
||||
|
||||
page {
|
||||
background-color: #f8f8f8;
|
||||
}
|
||||
|
||||
/deep/ .u-cell-title {
|
||||
padding: 25rpx 30rpx;
|
||||
font-size: 30rpx;
|
||||
}
|
||||
</style>
|
||||
129
hotgo-uniapp/pages/testData/form.vue
Normal file
@@ -0,0 +1,129 @@
|
||||
<template>
|
||||
<view class="wrap">
|
||||
<u-form class="form" :model="model" :rules="rules" ref="uForm" label-position="left">
|
||||
<u-form-item label="编号" prop="id" label-width="180" v-if="model.id">
|
||||
<u-input placeholder="请输入编号" v-model="model.id" type="text" maxlength="64"></u-input>
|
||||
</u-form-item>
|
||||
<u-form-item label="单行文本" prop="testInput" label-width="180">
|
||||
<u-input placeholder="请输入单行文本" v-model="model.testInput" type="text" maxlength="200"></u-input>
|
||||
</u-form-item>
|
||||
<u-form-item label="多行文本" prop="testTextarea" label-width="180" label-position="top">
|
||||
<u-input type="textarea" placeholder="请输入多行文本" v-model="model.testTextarea" height="100" maxlength="500" />
|
||||
</u-form-item>
|
||||
<u-form-item label="下拉框" prop="testSelect" label-width="180">
|
||||
<js-select v-model="model.testSelect" dict-type="sys_menu_type" placeholder="请选择选项"></js-select>
|
||||
</u-form-item>
|
||||
<!-- <u-form-item label="下拉框(树结构)" prop="testSelectMultiple" label-width="260">
|
||||
<js-select v-model="model.testSelectMultiple" dict-type="app_tree_test" placeholder="请选择选项" :tree="true"
|
||||
:label-value="model.testSelectMultipleLabel" @label-input="model.testSelectMultipleLabel = $event"></js-select>
|
||||
</u-form-item> -->
|
||||
<u-form-item label="单选框" prop="testRadio" label-width="180">
|
||||
<js-radio v-model="model.testRadio" dict-type="sys_menu_type"></js-radio>
|
||||
</u-form-item>
|
||||
<u-form-item label="复选框" prop="testCheckbox" label-width="180">
|
||||
<js-checkbox v-model="model.testCheckbox" dict-type="sys_menu_type"></js-checkbox>
|
||||
</u-form-item>
|
||||
<u-form-item label="机构选择" prop="testOffice" label-width="180">
|
||||
<js-select v-model="model.testOffice.officeCode" :items="officeSelectList" placeholder="请选择机构" :tree="true"
|
||||
:label-value="model.testOffice.officeName" @label-input="model.testOffice.officeName = $event"></js-select>
|
||||
</u-form-item>
|
||||
<u-form-item label="人员选择" prop="testUser" label-width="180">
|
||||
<js-select v-model="model.testUser.userCode" :items="userSelectList" placeholder="请选择人员" :tree="true"
|
||||
:label-value="model.testUser.userName" @label-input="model.testUser.userName = $event"></js-select>
|
||||
</u-form-item>
|
||||
<u-form-item label="上传图片(选填)" prop="images" label-position="top">
|
||||
<js-uploadfile v-model="model.dataMap" :biz-key="model.id" biz-type="testData_image"></js-uploadfile>
|
||||
</u-form-item>
|
||||
</u-form>
|
||||
<view class="form-footer">
|
||||
<u-button class="btn" type="primary" @click="submit">提交</u-button>
|
||||
<!-- <u-button class="btn" type="default" @click="cancel">关闭</u-button> -->
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
/**
|
||||
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
|
||||
*/
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
model: {
|
||||
id: '',
|
||||
testInput: '',
|
||||
testTextarea: '',
|
||||
testSelect: '',
|
||||
testSelectMultiple: '',
|
||||
testSelectMultipleLabel: '',
|
||||
testRadio: '',
|
||||
testCheckbox: '',
|
||||
testUser: {
|
||||
userCode: '',
|
||||
userName: ''
|
||||
},
|
||||
testOffice: {
|
||||
officeCode: '',
|
||||
officeName: ''
|
||||
}
|
||||
},
|
||||
rules: {
|
||||
testInput: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入单行文本',
|
||||
trigger: ['change','blur'],
|
||||
}
|
||||
]
|
||||
},
|
||||
officeSelectList: [],
|
||||
userSelectList: [],
|
||||
};
|
||||
},
|
||||
onLoad(params){
|
||||
this.$u.api.testData.form(params).then(res => {
|
||||
Object.assign(this.model, res.testData);
|
||||
});
|
||||
},
|
||||
onReady() {
|
||||
this.$refs.uForm.setRules(this.rules);
|
||||
// 机构数据
|
||||
this.$u.api.office.treeData().then(res => {
|
||||
this.officeSelectList = res;
|
||||
});
|
||||
// 人员和机构数据
|
||||
this.$u.api.office.treeData({isLoadUser: true}).then(res => {
|
||||
this.userSelectList = res;
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
submit() {
|
||||
//console.log(this.model)
|
||||
this.$refs.uForm.validate(valid => {
|
||||
if (valid) {
|
||||
this.$u.api.testData.save(this.model).then(res => {
|
||||
uni.showModal({
|
||||
title: '提示',
|
||||
content: res.message,
|
||||
showCancel: false,
|
||||
success: function () {
|
||||
if (res.result == 'true') {
|
||||
uni.setStorageSync('refreshList', true);
|
||||
uni.navigateBack();
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
} else {
|
||||
this.$u.toast('您填写的信息有误,请根据提示修正。');
|
||||
}
|
||||
});
|
||||
},
|
||||
cancel() {
|
||||
uni.navigateBack();
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss">
|
||||
|
||||
</style>
|
||||
123
hotgo-uniapp/pages/testData/index.vue
Normal file
@@ -0,0 +1,123 @@
|
||||
<template>
|
||||
<view class="wrap">
|
||||
<view class="search">
|
||||
<u-search v-model="keywords" @custom="search" @search="search"></u-search>
|
||||
</view>
|
||||
<scroll-view class="scroll-list" scroll-y="true" @scrolltolower="loadMore">
|
||||
<u-cell-group class="list" :border="false">
|
||||
<u-swipe-action :options="options" v-for="(item, index) in list" :key="item.id" :index="index" @click="optionsClick">
|
||||
<u-cell-item :arrow="true" @click="navTo('form?id='+item.id)">
|
||||
<text slot="title">ID: {{item.testInput || item.id}}</text>
|
||||
<text slot="label">访问路径:{{item.url}} | 时间:{{item.created_at}}</text>
|
||||
</u-cell-item>
|
||||
</u-swipe-action>
|
||||
</u-cell-group>
|
||||
<view class="loadmore" @click="loadMore">
|
||||
<u-loadmore :status="loadStatus"></u-loadmore>
|
||||
</view>
|
||||
</scroll-view>
|
||||
<view class="btn-plus" @click="navTo('form')">
|
||||
<u-icon name="plus-circle-fill" size="90" color="#3d87ff"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
/**
|
||||
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
|
||||
*/
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
keywords: '',
|
||||
query: {
|
||||
pageNo: 1,
|
||||
pageSize: 20
|
||||
},
|
||||
list: [],
|
||||
count: 0,
|
||||
loadStatus: 'loadmore',
|
||||
options: [
|
||||
{text: '删除', style: { background: '#dd524d'}}
|
||||
]
|
||||
};
|
||||
},
|
||||
onLoad() {
|
||||
this.loadList();
|
||||
},
|
||||
onShow() {
|
||||
if (uni.getStorageSync('refreshList') === true){
|
||||
uni.removeStorageSync('refreshList');
|
||||
this.search('');
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
loadMore() {
|
||||
this.loadStatus = "loading";
|
||||
setTimeout(() => {
|
||||
this.query.pageNo += 1;
|
||||
this.loadList();
|
||||
}, 100);
|
||||
},
|
||||
loadList() {
|
||||
this.$u.api.testData.list(this.query).then(res => {
|
||||
if (!res.data.list || res.data.list.length === 0){
|
||||
this.loadStatus = "nomore";
|
||||
return;
|
||||
}
|
||||
this.list = this.list.concat(res.data.list);
|
||||
this.count = res.data.total_count;
|
||||
this.query.pageNo = res.data.page;
|
||||
this.query.pageSize = res.data.limit;
|
||||
this.loadStatus = "loadmore";
|
||||
});
|
||||
},
|
||||
optionsClick(rowIndex, btnIndex) {
|
||||
if(btnIndex == 0) {
|
||||
let self = this;
|
||||
uni.showModal({
|
||||
title: '提示',
|
||||
content: '确认要删除该数据吗?',
|
||||
showCancel: true,
|
||||
success: function (res2) {
|
||||
if (res2.confirm) {
|
||||
let row = self.list[rowIndex];
|
||||
self.$u.api.testData.delete({id: row.id}).then(res => {
|
||||
self.$u.toast(res.message);
|
||||
if (res.result == 'true'){
|
||||
self.list.splice(rowIndex, 1);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
search(value) {
|
||||
this.list = [];
|
||||
this.query.pageNo = 0;
|
||||
this.query.testInput = value;
|
||||
this.loadList();
|
||||
},
|
||||
navTo(url) {
|
||||
uni.navigateTo({
|
||||
url: url
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss">
|
||||
page {
|
||||
background-color: #f8f8f8;
|
||||
}
|
||||
.btn-plus {
|
||||
position: absolute;
|
||||
bottom: 50rpx;
|
||||
right: 50rpx;
|
||||
z-index: 1;
|
||||
opacity: 0.6;
|
||||
}
|
||||
.btn-plus:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
</style>
|
||||
BIN
hotgo-uniapp/static/common/img/iPhoneX.png
Normal file
|
After Width: | Height: | Size: 40 KiB |
363
hotgo-uniapp/static/common/js/touch-emulator.js
Normal file
@@ -0,0 +1,363 @@
|
||||
(function(window, document, exportName, undefined) {
|
||||
"use strict";
|
||||
|
||||
var isMultiTouch = false;
|
||||
var multiTouchStartPos;
|
||||
var eventTarget;
|
||||
var touchElements = {};
|
||||
|
||||
// polyfills
|
||||
if(!document.createTouch) {
|
||||
document.createTouch = function(view, target, identifier, pageX, pageY, screenX, screenY, clientX, clientY) {
|
||||
// auto set
|
||||
if(clientX == undefined || clientY == undefined) {
|
||||
clientX = pageX - window.pageXOffset;
|
||||
clientY = pageY - window.pageYOffset;
|
||||
}
|
||||
|
||||
return new Touch(target, identifier, {
|
||||
pageX: pageX,
|
||||
pageY: pageY,
|
||||
screenX: screenX,
|
||||
screenY: screenY,
|
||||
clientX: clientX,
|
||||
clientY: clientY
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
if(!document.createTouchList) {
|
||||
document.createTouchList = function() {
|
||||
var touchList = new TouchList();
|
||||
for (var i = 0; i < arguments.length; i++) {
|
||||
touchList[i] = arguments[i];
|
||||
}
|
||||
touchList.length = arguments.length;
|
||||
return touchList;
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* create an touch point
|
||||
* @constructor
|
||||
* @param target
|
||||
* @param identifier
|
||||
* @param pos
|
||||
* @param deltaX
|
||||
* @param deltaY
|
||||
* @returns {Object} touchPoint
|
||||
*/
|
||||
function Touch(target, identifier, pos, deltaX, deltaY) {
|
||||
deltaX = deltaX || 0;
|
||||
deltaY = deltaY || 0;
|
||||
|
||||
this.identifier = identifier;
|
||||
this.target = target;
|
||||
this.clientX = pos.clientX + deltaX;
|
||||
this.clientY = pos.clientY + deltaY;
|
||||
this.screenX = pos.screenX + deltaX;
|
||||
this.screenY = pos.screenY + deltaY;
|
||||
this.pageX = pos.pageX + deltaX;
|
||||
this.pageY = pos.pageY + deltaY;
|
||||
}
|
||||
|
||||
/**
|
||||
* create empty touchlist with the methods
|
||||
* @constructor
|
||||
* @returns touchList
|
||||
*/
|
||||
function TouchList() {
|
||||
var touchList = [];
|
||||
|
||||
touchList.item = function(index) {
|
||||
return this[index] || null;
|
||||
};
|
||||
|
||||
// specified by Mozilla
|
||||
touchList.identifiedTouch = function(id) {
|
||||
return this[id + 1] || null;
|
||||
};
|
||||
|
||||
return touchList;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Simple trick to fake touch event support
|
||||
* this is enough for most libraries like Modernizr and Hammer
|
||||
*/
|
||||
function fakeTouchSupport() {
|
||||
var objs = [window, document.documentElement];
|
||||
var props = ['ontouchstart', 'ontouchmove', 'ontouchcancel', 'ontouchend'];
|
||||
|
||||
for(var o=0; o<objs.length; o++) {
|
||||
for(var p=0; p<props.length; p++) {
|
||||
if(objs[o] && objs[o][props[p]] == undefined) {
|
||||
objs[o][props[p]] = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* we don't have to emulate on a touch device
|
||||
* @returns {boolean}
|
||||
*/
|
||||
function hasTouchSupport() {
|
||||
return ("ontouchstart" in window) || // touch events
|
||||
(window.Modernizr && window.Modernizr.touch) || // modernizr
|
||||
(navigator.msMaxTouchPoints || navigator.maxTouchPoints) > 2; // pointer events
|
||||
}
|
||||
|
||||
/**
|
||||
* disable mouseevents on the page
|
||||
* @param ev
|
||||
*/
|
||||
function preventMouseEvents(ev) {
|
||||
// 注释启用默认事件
|
||||
// ev.preventDefault();
|
||||
// ev.stopPropagation();
|
||||
}
|
||||
|
||||
/**
|
||||
* only trigger touches when the left mousebutton has been pressed
|
||||
* @param touchType
|
||||
* @returns {Function}
|
||||
*/
|
||||
function onMouse(touchType) {
|
||||
return function(ev) {
|
||||
// prevent mouse events
|
||||
preventMouseEvents(ev);
|
||||
|
||||
if (ev.which !== 1) {
|
||||
return;
|
||||
}
|
||||
|
||||
// The EventTarget on which the touch point started when it was first placed on the surface,
|
||||
// even if the touch point has since moved outside the interactive area of that element.
|
||||
// also, when the target doesnt exist anymore, we update it
|
||||
if (ev.type == 'mousedown' || !eventTarget || (eventTarget && !eventTarget.dispatchEvent)) {
|
||||
eventTarget = ev.target;
|
||||
}
|
||||
|
||||
// shiftKey has been lost, so trigger a touchend
|
||||
if (isMultiTouch && !ev.shiftKey) {
|
||||
triggerTouch('touchend', ev);
|
||||
isMultiTouch = false;
|
||||
}
|
||||
|
||||
triggerTouch(touchType, ev);
|
||||
|
||||
// we're entering the multi-touch mode!
|
||||
if (!isMultiTouch && ev.shiftKey) {
|
||||
isMultiTouch = true;
|
||||
multiTouchStartPos = {
|
||||
pageX: ev.pageX,
|
||||
pageY: ev.pageY,
|
||||
clientX: ev.clientX,
|
||||
clientY: ev.clientY,
|
||||
screenX: ev.screenX,
|
||||
screenY: ev.screenY
|
||||
};
|
||||
triggerTouch('touchstart', ev);
|
||||
}
|
||||
|
||||
// reset
|
||||
if (ev.type == 'mouseup') {
|
||||
multiTouchStartPos = null;
|
||||
isMultiTouch = false;
|
||||
eventTarget = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* trigger a touch event
|
||||
* @param eventName
|
||||
* @param mouseEv
|
||||
*/
|
||||
function triggerTouch(eventName, mouseEv) {
|
||||
var touchEvent = document.createEvent('Event');
|
||||
touchEvent.initEvent(eventName, true, true);
|
||||
|
||||
touchEvent.altKey = mouseEv.altKey;
|
||||
touchEvent.ctrlKey = mouseEv.ctrlKey;
|
||||
touchEvent.metaKey = mouseEv.metaKey;
|
||||
touchEvent.shiftKey = mouseEv.shiftKey;
|
||||
|
||||
touchEvent.touches = getActiveTouches(mouseEv, eventName);
|
||||
touchEvent.targetTouches = getActiveTouches(mouseEv, eventName);
|
||||
touchEvent.changedTouches = getChangedTouches(mouseEv, eventName);
|
||||
|
||||
eventTarget.dispatchEvent(touchEvent);
|
||||
}
|
||||
|
||||
/**
|
||||
* create a touchList based on the mouse event
|
||||
* @param mouseEv
|
||||
* @returns {TouchList}
|
||||
*/
|
||||
function createTouchList(mouseEv) {
|
||||
var touchList = new TouchList();
|
||||
|
||||
if (isMultiTouch) {
|
||||
var f = TouchEmulator.multiTouchOffset;
|
||||
var deltaX = multiTouchStartPos.pageX - mouseEv.pageX;
|
||||
var deltaY = multiTouchStartPos.pageY - mouseEv.pageY;
|
||||
|
||||
touchList.push(new Touch(eventTarget, 1, multiTouchStartPos, (deltaX*-1) - f, (deltaY*-1) + f));
|
||||
touchList.push(new Touch(eventTarget, 2, multiTouchStartPos, deltaX+f, deltaY-f));
|
||||
} else {
|
||||
touchList.push(new Touch(eventTarget, 1, mouseEv, 0, 0));
|
||||
}
|
||||
|
||||
return touchList;
|
||||
}
|
||||
|
||||
/**
|
||||
* receive all active touches
|
||||
* @param mouseEv
|
||||
* @returns {TouchList}
|
||||
*/
|
||||
function getActiveTouches(mouseEv, eventName) {
|
||||
// empty list
|
||||
if (mouseEv.type == 'mouseup') {
|
||||
return new TouchList();
|
||||
}
|
||||
|
||||
var touchList = createTouchList(mouseEv);
|
||||
if(isMultiTouch && mouseEv.type != 'mouseup' && eventName == 'touchend') {
|
||||
touchList.splice(1, 1);
|
||||
}
|
||||
return touchList;
|
||||
}
|
||||
|
||||
/**
|
||||
* receive a filtered set of touches with only the changed pointers
|
||||
* @param mouseEv
|
||||
* @param eventName
|
||||
* @returns {TouchList}
|
||||
*/
|
||||
function getChangedTouches(mouseEv, eventName) {
|
||||
var touchList = createTouchList(mouseEv);
|
||||
|
||||
// we only want to return the added/removed item on multitouch
|
||||
// which is the second pointer, so remove the first pointer from the touchList
|
||||
//
|
||||
// but when the mouseEv.type is mouseup, we want to send all touches because then
|
||||
// no new input will be possible
|
||||
if(isMultiTouch && mouseEv.type != 'mouseup' &&
|
||||
(eventName == 'touchstart' || eventName == 'touchend')) {
|
||||
touchList.splice(0, 1);
|
||||
}
|
||||
|
||||
return touchList;
|
||||
}
|
||||
|
||||
/**
|
||||
* show the touchpoints on the screen
|
||||
*/
|
||||
function showTouches(ev) {
|
||||
var touch, i, el, styles;
|
||||
|
||||
// first all visible touches
|
||||
for(i = 0; i < ev.touches.length; i++) {
|
||||
touch = ev.touches[i];
|
||||
el = touchElements[touch.identifier];
|
||||
if(!el) {
|
||||
el = touchElements[touch.identifier] = document.createElement("div");
|
||||
document.body.appendChild(el);
|
||||
}
|
||||
|
||||
styles = TouchEmulator.template(touch);
|
||||
for(var prop in styles) {
|
||||
el.style[prop] = styles[prop];
|
||||
}
|
||||
}
|
||||
|
||||
// remove all ended touches
|
||||
if(ev.type == 'touchend' || ev.type == 'touchcancel') {
|
||||
for(i = 0; i < ev.changedTouches.length; i++) {
|
||||
touch = ev.changedTouches[i];
|
||||
el = touchElements[touch.identifier];
|
||||
if(el) {
|
||||
el.parentNode.removeChild(el);
|
||||
delete touchElements[touch.identifier];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* TouchEmulator initializer
|
||||
*/
|
||||
function TouchEmulator() {
|
||||
if (hasTouchSupport()) {
|
||||
return;
|
||||
}
|
||||
|
||||
fakeTouchSupport();
|
||||
|
||||
window.addEventListener("mousedown", onMouse('touchstart'), true);
|
||||
window.addEventListener("mousemove", onMouse('touchmove'), true);
|
||||
window.addEventListener("mouseup", onMouse('touchend'), true);
|
||||
|
||||
window.addEventListener("mouseenter", preventMouseEvents, true);
|
||||
window.addEventListener("mouseleave", preventMouseEvents, true);
|
||||
window.addEventListener("mouseout", preventMouseEvents, true);
|
||||
window.addEventListener("mouseover", preventMouseEvents, true);
|
||||
|
||||
// it uses itself!
|
||||
window.addEventListener("touchstart", showTouches, true);
|
||||
window.addEventListener("touchmove", showTouches, true);
|
||||
window.addEventListener("touchend", showTouches, true);
|
||||
window.addEventListener("touchcancel", showTouches, true);
|
||||
}
|
||||
|
||||
// start distance when entering the multitouch mode
|
||||
TouchEmulator.multiTouchOffset = 75;
|
||||
|
||||
/**
|
||||
* css template for the touch rendering
|
||||
* @param touch
|
||||
* @returns object
|
||||
*/
|
||||
TouchEmulator.template = function(touch) {
|
||||
var size = 0;
|
||||
var transform = 'translate('+ (touch.clientX-(size/2)) +'px, '+ (touch.clientY-(size/2)) +'px)';
|
||||
return {
|
||||
position: 'fixed',
|
||||
left: 0,
|
||||
top: 0,
|
||||
background: '#fff',
|
||||
border: 'solid 1px #999',
|
||||
opacity: .6,
|
||||
borderRadius: '100%',
|
||||
height: size + 'px',
|
||||
width: size + 'px',
|
||||
padding: 0,
|
||||
margin: 0,
|
||||
display: 'block',
|
||||
overflow: 'hidden',
|
||||
pointerEvents: 'none',
|
||||
webkitUserSelect: 'none',
|
||||
mozUserSelect: 'none',
|
||||
userSelect: 'none',
|
||||
webkitTransform: transform,
|
||||
mozTransform: transform,
|
||||
transform: transform,
|
||||
zIndex: 100
|
||||
}
|
||||
};
|
||||
|
||||
// export
|
||||
if (typeof define == "function" && define.amd) {
|
||||
define(function() {
|
||||
return TouchEmulator;
|
||||
});
|
||||
} else if (typeof module != "undefined" && module.exports) {
|
||||
module.exports = TouchEmulator;
|
||||
} else {
|
||||
window[exportName] = TouchEmulator;
|
||||
}
|
||||
})(window, document, "TouchEmulator");
|
||||
52
hotgo-uniapp/static/index.html
Normal file
@@ -0,0 +1,52 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="keywords" content="PoweredByJeeSiteV4.0"/>
|
||||
<meta name="description" content="PoweredByJeeSiteV4.0"/>
|
||||
<link rel="shortcut icon" type="image/x-icon" href="static/jeesite/favicon.png">
|
||||
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
|
||||
<title>JeeSite Mobile APP</title>
|
||||
<script>
|
||||
window.onresize = function () {
|
||||
if (document.documentElement.clientWidth < 768) {
|
||||
window.location.href = '../#/';
|
||||
}
|
||||
};
|
||||
window.onresize();
|
||||
</script>
|
||||
<style>
|
||||
.mobile-model {
|
||||
margin: 10px auto;
|
||||
background-color: #fff;
|
||||
width: 330px;
|
||||
margin-top: calc(50vh - 350px);
|
||||
box-sizing: border-box;
|
||||
background-image: url(common/img/iPhoneX.png);
|
||||
background-repeat: no-repeat;
|
||||
background-size: 100%;
|
||||
border-radius: 30px;
|
||||
padding: 48px 23px 38px 16px;
|
||||
}
|
||||
.mobile-content {
|
||||
box-sizing: border-box;
|
||||
width: 298px;
|
||||
height: 582px;
|
||||
border-bottom-left-radius: 20px;
|
||||
}
|
||||
.mobile-iframe {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
border-radius: 20px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="mobile-model">
|
||||
<div class="mobile-content">
|
||||
<iframe src="../#/" class="mobile-iframe" scrolling="auto" frameborder="0"></iframe>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
843
hotgo-uniapp/static/jeesite/banner/1.svg
Normal file
@@ -0,0 +1,843 @@
|
||||
<svg version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="743px"
|
||||
height="560px" viewBox="0 0 743 560" enable-background="new 0 0 743 560" xml:space="preserve">
|
||||
<g>
|
||||
<g display="inline">
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<rect y="490.125" fill="#D1E3FF" width="742.052" height="0.37"/>
|
||||
<rect x="613.676" y="510.947" fill="#D1E3FF" width="15.749" height="0.371"/>
|
||||
<rect x="538.751" y="511.133" fill="#D1E3FF" width="64.041" height="0.371"/>
|
||||
<rect x="351.509" y="507.59" fill="#D1E3FF" width="108.068" height="0.371"/>
|
||||
<rect x="255.051" y="514.041" fill="#D1E3FF" width="34.294" height="0.371"/>
|
||||
<rect x="127.821" y="507.775" fill="#D1E3FF" width="47.225" height="0.371"/>
|
||||
<rect x="183.287" y="507.775" fill="#D1E3FF" width="44.139" height="0.371"/>
|
||||
<rect x="96.903" y="501.283" fill="#D1E3FF" width="45.075" height="0.37"/>
|
||||
<path fill="#D1E3FF" d="M351.752,423.936H65.174c-4.671,0-8.471-3.8-8.471-8.471V12.632c0-4.67,3.8-8.47,8.471-8.47h286.578
|
||||
c4.67,0,8.47,3.8,8.47,8.47v402.833C360.223,420.136,356.422,423.936,351.752,423.936z M65.174,4.533
|
||||
c-4.467,0-8.1,3.633-8.1,8.099v402.833c0,4.466,3.633,8.101,8.1,8.101h286.578c4.466,0,8.099-3.635,8.099-8.101V12.632
|
||||
c0-4.466-3.633-8.099-8.099-8.099H65.174z"/>
|
||||
<path fill="#D1E3FF" d="M672.76,423.936H386.182c-4.67,0-8.47-3.8-8.47-8.471V12.632c0-4.67,3.8-8.47,8.47-8.47H672.76
|
||||
c4.671,0,8.471,3.8,8.471,8.47v402.833C681.23,420.136,677.431,423.936,672.76,423.936z M386.182,4.533
|
||||
c-4.466,0-8.099,3.633-8.099,8.099v402.833c0,4.466,3.633,8.101,8.099,8.101H672.76c4.466,0,8.101-3.635,8.101-8.101V12.632
|
||||
c0-4.466-3.635-8.099-8.101-8.099H386.182z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<rect x="80.28" y="36.089" fill="#D1E3FF" width="231.15" height="201.146"/>
|
||||
<rect x="84.7" y="36.089" fill="#E3EEFF" width="236.188" height="201.146"/>
|
||||
<rect x="80.28" y="237.236" fill="#D1E3FF" width="231.15" height="8.071"/>
|
||||
<rect x="100.457" y="237.236" fill="#E3EEFF" width="236.188" height="8.071"/>
|
||||
<rect x="97.94" y="49.331" fill="#F5FCFF" width="209.707" height="174.665"/>
|
||||
<polygon fill="#FFFFFF" points="131.908,223.995 172.367,49.331 227.887,49.331 187.429,223.995 "/>
|
||||
<path fill="#E2EEFF" d="M105.582,194.807c-0.523,0-0.947-0.423-0.947-0.946V57.946c0-0.522,0.424-0.946,0.947-0.946
|
||||
c0.523,0,0.946,0.423,0.946,0.946v135.915C106.528,194.384,106.105,194.807,105.582,194.807z"/>
|
||||
<polygon fill="#FFFFFF" points="198.806,223.995 239.262,49.331 258.472,49.331 218.014,223.995 "/>
|
||||
<rect x="305.966" y="49.331" fill="#D1E3FF" width="1.681" height="174.665"/>
|
||||
<polygon fill="#D1E3FF" points="324.02,50.772 92.87,50.772 91.651,46.752 322.801,46.752 "/>
|
||||
<polygon fill="#D1E3FF" points="324.02,57.406 92.87,57.406 91.651,53.388 322.801,53.388 "/>
|
||||
<polygon fill="#D1E3FF" points="324.02,64.041 92.87,64.041 91.651,60.022 322.801,60.022 "/>
|
||||
<polygon fill="#D1E3FF" points="324.02,70.675 92.87,70.675 91.651,66.657 322.801,66.657 "/>
|
||||
<polygon fill="#D1E3FF" points="324.02,77.31 92.87,77.31 91.651,73.292 322.801,73.292 "/>
|
||||
<polygon fill="#D1E3FF" points="324.02,83.944 92.87,83.944 91.651,79.926 322.801,79.926 "/>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<rect x="501.176" y="49.182" fill="#D1E3FF" width="97.191" height="173.277"/>
|
||||
<path fill="#CADEFF" d="M555.938,58.335c-4.132,0-7.494-3.362-7.494-7.494c0-4.131,3.362-7.493,7.494-7.493
|
||||
s7.494,3.361,7.494,7.493C563.432,54.973,560.069,58.335,555.938,58.335z M555.938,44.833c-3.313,0-6.01,2.696-6.01,6.009
|
||||
c0,3.314,2.696,6.01,6.01,6.01c3.314,0,6.011-2.696,6.011-6.01C561.948,47.528,559.252,44.833,555.938,44.833z"/>
|
||||
<rect x="508.503" y="49.182" fill="#EEF9FF" width="100.391" height="173.277"/>
|
||||
<rect x="516.912" y="57.593" fill="#FFFFFF" width="83.571" height="156.456"/>
|
||||
<rect x="599.451" y="57.593" fill="#D1E3FF" width="1.032" height="156.456"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#CADEFC" d="M526.497,284.068c0,0,1.034,17.479,40.735,17.479s40.738-17.479,40.738-17.479H526.497z"/>
|
||||
<g>
|
||||
<g>
|
||||
<rect x="405.666" y="315.258" fill="#E3EEFF" width="40.542" height="166.987"/>
|
||||
<rect x="413.45" y="482.245" fill="#E3EEFF" width="211.842" height="7.88"/>
|
||||
<rect x="446.208" y="315.258" fill="#F3F8FF" width="186.869" height="166.987"/>
|
||||
<rect x="462.147" y="378.359" fill="#E3EEFF" width="154.99" height="40.785"/>
|
||||
<rect x="462.147" y="426.582" fill="#E3EEFF" width="154.99" height="40.785"/>
|
||||
<path fill="#F3F8FF" d="M562.815,382.829h-46.347c-1.537,0-2.797-1.259-2.797-2.796l0,0c0-1.538,1.26-2.797,2.797-2.797
|
||||
h46.347c1.538,0,2.797,1.259,2.797,2.797l0,0C565.612,381.57,564.354,382.829,562.815,382.829z"/>
|
||||
<rect x="462.147" y="330.136" fill="#E3EEFF" width="154.99" height="40.785"/>
|
||||
<path fill="#F3F8FF" d="M562.815,334.605h-46.347c-1.537,0-2.797-1.258-2.797-2.796l0,0c0-1.539,1.26-2.797,2.797-2.797
|
||||
h46.347c1.538,0,2.797,1.258,2.797,2.797l0,0C565.612,333.348,564.354,334.605,562.815,334.605z"/>
|
||||
<path fill="#F3F8FF" d="M562.815,431.054h-46.347c-1.537,0-2.797-1.26-2.797-2.797l0,0c0-1.538,1.26-2.796,2.797-2.796
|
||||
h46.347c1.538,0,2.797,1.258,2.797,2.796l0,0C565.612,429.794,564.354,431.054,562.815,431.054z"/>
|
||||
</g>
|
||||
<rect x="446.208" y="301.547" fill="#E3EEFF" width="192.271" height="13.711"/>
|
||||
<rect x="400" y="301.547" fill="#D1E3FF" width="46.208" height="13.711"/>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<rect x="421.268" y="253.257" fill="#E3EEFF" width="40.3" height="48.29"/>
|
||||
<rect x="461.567" y="253.257" fill="#F3F8FF" width="71.498" height="48.29"/>
|
||||
<ellipse fill="#FFFFFF" cx="497.316" cy="278.748" rx="16.492" ry="6.247"/>
|
||||
<rect x="421.268" y="259.439" opacity="0.7" fill="#D1E3FF" width="112.218" height="3.313"/>
|
||||
</g>
|
||||
<g>
|
||||
<rect x="419.045" y="251.252" fill="#E3EEFF" width="42.522" height="9.583"/>
|
||||
<rect x="461.567" y="251.252" fill="#F3F8FF" width="73.721" height="9.583"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<polygon fill="#E3EEFF" points="257.998,277.403 104.393,277.403 113.976,490.125 267.581,490.125 "/>
|
||||
<polygon fill="#F3F8FF" points="260.224,277.403 106.619,277.403 116.202,490.125 269.807,490.125 "/>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<rect x="140.494" y="441.835" fill="#E3EEFF" width="40.298" height="48.29"/>
|
||||
<rect x="180.792" y="441.835" fill="#F3F8FF" width="192.896" height="48.29"/>
|
||||
<rect x="140.494" y="448.018" opacity="0.7" fill="#D1E3FF" width="233.616" height="3.313"/>
|
||||
</g>
|
||||
<g>
|
||||
<rect x="138.268" y="439.83" fill="#E3EEFF" width="42.524" height="9.582"/>
|
||||
<rect x="180.792" y="439.83" fill="#F3F8FF" width="195.121" height="9.582"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<rect x="173.884" y="352.574" fill="#D1E3FF" width="52.433" height="87.256"/>
|
||||
<rect x="226.317" y="352.574" fill="#E3EEFF" width="131.013" height="87.256"/>
|
||||
<rect x="173.884" y="360.617" opacity="0.7" fill="#D1E3FF" width="183.992" height="4.311"/>
|
||||
</g>
|
||||
<g>
|
||||
<rect x="170.987" y="342.607" fill="#D1E3FF" width="55.33" height="19.827"/>
|
||||
<rect x="226.317" y="342.607" fill="#E3EEFF" width="133.906" height="19.827"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<circle fill="#D1E3FF" cx="115.471" cy="453.063" r="37.061"/>
|
||||
<ellipse transform="matrix(0.7199 0.6941 -0.6941 0.7199 324.4629 54.022)" opacity="0.7" fill="#D1E3FF" cx="95.298" cy="429.022" rx="2.815" ry="5.756"/>
|
||||
<ellipse transform="matrix(0.1889 0.982 -0.982 0.1889 504.672 231.5233)" opacity="0.7" fill="#D1E3FF" cx="112.185" cy="421.262" rx="2.816" ry="5.755"/>
|
||||
<ellipse transform="matrix(0.3313 0.9435 -0.9435 0.3313 481.6153 187.6993)" opacity="0.7" fill="#D1E3FF" cx="108.385" cy="433.63" rx="3.53" ry="5.756"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<ellipse fill="#F0F6FF" cx="371.026" cy="540.347" rx="287.751" ry="16.805"/>
|
||||
<g>
|
||||
<path fill="#C0DAFF" d="M455.973,540.347H285.171c-11.929,0-21.69-9.761-21.69-21.69V109.691c0-11.929,9.761-21.69,21.69-21.69
|
||||
h170.802c11.932,0,21.692,9.761,21.692,21.69v408.965C477.665,530.586,467.904,540.347,455.973,540.347z"/>
|
||||
<path fill="#C0DAFF" d="M477.304,219.232h-14.138c-3.272,0-5.949-2.678-5.949-5.951V170.19c0-3.274,2.677-5.951,5.949-5.951
|
||||
h14.138c3.272,0,5.951,2.676,5.951,5.951v43.091C483.255,216.555,480.576,219.232,477.304,219.232z"/>
|
||||
<path fill="#C0DAFF" d="M478.786,266.117h-17.1c-2.46,0-4.47-2.01-4.47-4.47v-22.084c0-2.46,2.01-4.47,4.47-4.47h17.1
|
||||
c2.457,0,4.469,2.01,4.469,4.47v22.084C483.255,264.106,481.243,266.117,478.786,266.117z"/>
|
||||
<rect x="250.856" y="123.29" fill="#DCE9FF" width="1.484" height="19.623"/>
|
||||
<rect x="250.856" y="148.355" fill="#DCE9FF" width="1.484" height="6.148"/>
|
||||
<path opacity="0.6" fill="#0053CC" d="M448.546,540.347H277.742c-11.929,0-21.69-9.761-21.69-21.69V109.691
|
||||
c0-11.929,9.761-21.69,21.69-21.69h170.804c11.929,0,21.69,9.761,21.69,21.69v408.965
|
||||
C470.236,530.586,460.475,540.347,448.546,540.347z"/>
|
||||
<circle fill="#0053CC" cx="363.144" cy="519.632" r="9.653"/>
|
||||
<rect x="256.051" y="112.93" fill="#DCE9FF" width="214.185" height="388.725"/>
|
||||
<rect x="256.051" y="112.93" fill="#DCE9FF" width="214.185" height="388.725"/>
|
||||
<path fill="#FFFFFF" d="M437.063,250.607H289.223c-8.109,0-14.744-6.635-14.744-14.745v-88.254
|
||||
c0-8.109,6.635-14.744,14.744-14.744h147.839c8.11,0,14.745,6.635,14.745,14.744v88.254
|
||||
C451.808,243.973,445.173,250.607,437.063,250.607z"/>
|
||||
<circle fill="#DCE9FF" cx="301.666" cy="160.05" r="19.637"/>
|
||||
<path fill="#FFFFFF" d="M317.87,160.047c0,2.798-0.709,5.427-1.958,7.72c-2.734,5.051-8.086,8.487-14.249,8.487
|
||||
c-6.16,0-11.514-3.436-14.247-8.487c-1.25-2.293-1.959-4.922-1.959-7.72c0-8.952,7.255-16.206,16.206-16.206
|
||||
C310.617,143.841,317.87,151.096,317.87,160.047z"/>
|
||||
<path fill="#C0DAFF" d="M315.913,167.767c-2.734,5.051-8.086,8.487-14.249,8.487c-6.16,0-11.514-3.436-14.247-8.487
|
||||
c4.08-2.725,8.977-4.316,14.247-4.316C306.937,163.451,311.833,165.042,315.913,167.767z"/>
|
||||
<circle fill="#C0DAFF" cx="301.666" cy="154.503" r="7.219"/>
|
||||
<path fill="#FFFFFF" d="M440.93,302.702H285.358c-5.983,0-10.879-4.896-10.879-10.879v-19.458
|
||||
c0-5.983,4.896-10.879,10.879-10.879H440.93c5.981,0,10.878,4.896,10.878,10.879v19.458
|
||||
C451.808,297.807,446.911,302.702,440.93,302.702z"/>
|
||||
<circle fill="#0053CC" cx="341.981" cy="99.474" r="3.415"/>
|
||||
<path fill="#0053CC" d="M353.777,96.059h28.365c1.878,0,3.414,1.537,3.414,3.415l0,0c0,1.877-1.536,3.414-3.414,3.414h-28.365
|
||||
c-1.876,0-3.415-1.536-3.415-3.414l0,0C350.362,97.596,351.901,96.059,353.777,96.059z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path opacity="0.6" fill="#0053CC" d="M477.51,306.688l20.966,57.798c1.135,3.13-0.496,6.62-3.627,7.756l-110.026,39.909
|
||||
c-3.13,1.137-6.619-0.496-7.756-3.626l-20.964-57.797c-0.593-1.638-0.431-3.376,0.306-4.822
|
||||
c0.678-1.315,1.826-2.392,3.322-2.934l110.026-39.91c1.493-0.542,3.065-0.452,4.428,0.122
|
||||
C475.677,303.823,476.917,305.053,477.51,306.688z"/>
|
||||
<path fill="#9FC6FF" d="M474.184,303.185l-31.441,51.755c-6.005,9.885-18.079,14.265-29.023,10.527l-57.311-19.561
|
||||
c0.678-1.315,1.826-2.392,3.322-2.934l110.026-39.91C471.249,302.521,472.821,302.61,474.184,303.185z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path opacity="0.6" fill="#0053CC" d="M443.003,406.017l-1.007,52.066c-0.056,2.819-2.406,5.082-5.227,5.027l-99.117-1.917
|
||||
c-2.819-0.055-5.083-2.406-5.028-5.226l1.007-52.067c0.027-1.474,0.686-2.799,1.709-3.719c0.935-0.832,2.171-1.335,3.516-1.31
|
||||
l99.119,1.918c1.345,0.026,2.562,0.575,3.464,1.444C442.426,403.192,443.03,404.542,443.003,406.017z"/>
|
||||
<path fill="#9FC6FF" d="M441.439,402.234l-40.598,31.35c-7.754,5.987-18.63,5.776-26.146-0.506l-39.354-32.896
|
||||
c0.935-0.832,2.171-1.335,3.516-1.31l99.119,1.918C439.32,400.816,440.537,401.365,441.439,402.234z"/>
|
||||
</g>
|
||||
<g>
|
||||
<defs>
|
||||
<rect id="SVGID_1_" x="256.051" y="112.93" width="214.185" height="388.725"/>
|
||||
</defs>
|
||||
<clipPath id="SVGID_2_">
|
||||
<use xlink:href="#SVGID_1_" overflow="visible"/>
|
||||
</clipPath>
|
||||
<g clip-path="url(#SVGID_2_)">
|
||||
<path fill="#0F264C" d="M380.653,202.277c0-8.905-2.969-43.945,11.625-46.914c4.618-4.865,27.485-5.364,31.001,7.008
|
||||
c4.617,16.243-2.227,55.902-2.227,55.902L380.653,202.277"/>
|
||||
<path fill="#0F264C" d="M424.086,218.356c-0.015,0-0.031-0.001-0.046-0.003c-0.203-0.024-0.348-0.21-0.322-0.413
|
||||
c0.049-0.398,4.818-40.044-0.502-55.778c-1.452-4.299-5.614-7.32-11.721-8.506c-7.965-1.551-16.574,0.384-18.953,3.149
|
||||
c-0.133,0.155-0.368,0.173-0.522,0.039c-0.155-0.133-0.173-0.368-0.04-0.523c2.781-3.236,12.146-4.854,19.657-3.394
|
||||
c6.379,1.24,10.741,4.436,12.283,8.998c5.373,15.893,0.582,55.706,0.533,56.105
|
||||
C424.431,218.218,424.271,218.356,424.086,218.356z"/>
|
||||
<path fill="#FF8B7B" d="M410.993,226.636l0.361,0.792l0.455,0.932c0.303,0.63,0.641,1.274,0.978,1.907
|
||||
c0.698,1.267,1.424,2.534,2.231,3.76c1.559,2.479,3.28,4.877,5.154,7.149c1.914,2.236,3.918,4.4,6.072,6.417
|
||||
c1.106,0.968,2.187,1.979,3.344,2.897l1.738,1.371l0.412,0.325c0,0,0.03,0.041-0.007,0.019c-0.05-0.008-0.229-0.091-0.581-0.12
|
||||
c-0.363-0.049-0.868,0.014-1.256,0.185c-0.374,0.144-0.568,0.319-0.634,0.409c-0.094,0.139,0.164-0.085,0.388-0.472
|
||||
c0.486-0.799,0.981-2.089,1.378-3.415c0.829-2.702,1.396-5.737,1.914-8.78c0.518-3.057,0.922-6.177,1.254-9.316
|
||||
c0.393-3.131,0.668-6.322,0.97-9.439l5.722-0.085c0.359,3.303,0.511,6.533,0.648,9.82c0.07,3.277,0.064,6.567-0.069,9.899
|
||||
c-0.157,3.339-0.455,6.685-1.164,10.221c-0.394,1.78-0.838,3.585-1.806,5.654c-0.514,1.033-1.136,2.182-2.405,3.42
|
||||
c-0.666,0.622-1.536,1.247-2.66,1.685c-1.146,0.438-2.466,0.577-3.627,0.435c-1.146-0.145-2.091-0.501-2.852-0.881
|
||||
c-0.4-0.193-0.695-0.386-1.042-0.595l-0.565-0.379l-2.153-1.461c-1.436-0.977-2.79-2.066-4.148-3.152
|
||||
c-2.662-2.232-5.185-4.639-7.494-7.239c-2.284-2.619-4.427-5.367-6.334-8.292c-0.953-1.461-1.827-2.981-2.67-4.529
|
||||
c-0.415-0.786-0.829-1.561-1.211-2.383l-0.561-1.251c-0.194-0.448-0.347-0.809-0.582-1.423L410.993,226.636z"/>
|
||||
<polygon fill="#DCE9FF" points="416.016,234.309 406.038,248.064 410.161,252.118 420.78,239.352 "/>
|
||||
<path fill="#9FC6FF" d="M400.375,216.154c11.233,3.022,18.977,18.725,18.977,18.725l-12.975,18.186
|
||||
c0,0-15.588-19.608-15.21-25.844C391.56,220.728,393.605,214.334,400.375,216.154z"/>
|
||||
<path fill="#FF8B7B" d="M435.334,222.696l-2.967-11.813l11.332,3.305c0,0-0.323,7.976-4.229,10.582L435.334,222.696z"/>
|
||||
<polygon fill="#FF8B7B" points="435.936,201.292 443.892,205.315 443.699,214.188 432.367,210.883 "/>
|
||||
<path fill="#FF8B7B" d="M293.684,205.664l-10.372-6.388l10.421-5.544c0,0,5.337,5.938,4.36,10.529L293.684,205.664z"/>
|
||||
<polygon fill="#FF8B7B" points="279.174,189.917 287.678,187.243 293.733,193.731 283.313,199.276 "/>
|
||||
<polygon fill="#FF8B7B" points="288.339,492.296 299.25,493.361 310.604,467.391 299.693,466.325 "/>
|
||||
<polygon fill="#FF8B7B" points="177.605,412.792 183.829,422.217 207.658,410.831 201.434,401.406 "/>
|
||||
<path fill="#14365B" d="M186.438,421.234l-3.699-12.14c-0.136-0.442-0.551-0.707-1.001-0.638l-10.026,1.545
|
||||
c-1.039,0.16-1.721,1.304-1.393,2.317c1.362,4.211,2.231,6.174,3.859,11.513c1.001,3.283,2.732,10.696,4.115,15.23
|
||||
c1.351,4.437,5.939,3.41,5.771,1.396c-0.759-9.021,0.733-13.635,2.261-17.218C186.6,422.597,186.634,421.881,186.438,421.234z"
|
||||
/>
|
||||
<path fill="#14365B" d="M300.699,489.99h-13.401c-0.487,0-0.927,0.34-1.058,0.814l-2.913,10.602
|
||||
c-0.303,1.101,0.507,2.141,1.634,2.122c4.682-0.082,6.969-0.355,12.861-0.355c3.626,0,12.997,0.377,18.004,0.377
|
||||
c4.896,0,5.919-4.951,3.893-5.399c-9.084-2.01-14.319-4.782-17.122-7.427C302.09,490.247,301.412,489.99,300.699,489.99z"/>
|
||||
<polygon fill="#EA7063" points="310.598,467.398 304.749,480.785 293.365,480.785 299.683,466.331 "/>
|
||||
<polygon fill="#EA7063" points="201.426,401.408 207.652,410.837 195.368,416.701 189.139,407.271 "/>
|
||||
<path fill="#9FC6FF" d="M410.115,221.963c0,0,3.688,4.353-39.089,56.116c-15.71-9.193-31.949-18.695-39.596-23.169
|
||||
c10.095-15.727,15.928-25.653,27.578-63.232c0,0,9.351,3.049,18.109,7.623c11.855,6.192,17.32,10.05,17.98,10.522
|
||||
C402.406,215.047,410.115,221.963,410.115,221.963z"/>
|
||||
<path fill="#FF8B7B" d="M390.745,180.099c-2.251,6.449-7.32,17.711-13.628,19.202c0,0-1.853,6.794,8.897,13.085
|
||||
c11.82,6.916,9.083-2.563,9.083-2.563c-5.55-5.316-2.583-10.004,1.171-13.843L390.745,180.099z"/>
|
||||
<g>
|
||||
<path fill="#FF8B7B" d="M404.924,217.496c-2.787-2.327-6.357-5.191-9.826-7.677c-5.547-3.967-11.139-6.943-17.983-10.522
|
||||
c-3.501-1.835-7.093-3.428-10.15-4.654c-0.49,0.819-0.093,3.316,1.414,6.971c5.698,7.345,18.93,18.158,29.974,20.305
|
||||
C403.486,221.183,405.097,219.557,404.924,217.496z"/>
|
||||
<path fill="#DCE9FF" d="M368.378,201.615c2.064,5.009,6.22,12.206,13.138,20.363c7.822,0.543,13.204,0.464,16.836-0.058
|
||||
C387.308,219.773,374.076,208.96,368.378,201.615z"/>
|
||||
</g>
|
||||
<path fill="#EA7063" d="M392.994,186.576l3.271,9.397c-0.892,0.906-1.732,1.861-2.422,2.867
|
||||
c-2.255-1.799-4.677-6.18-3.429-8.914C391.037,188.565,392.435,187.055,392.994,186.576z"/>
|
||||
<path fill="#FF8B7B" d="M390.861,167.271c-3.069,10.783-4.6,15.282-1.177,22.576c5.146,10.973,19.061,12.384,25.291,2.738
|
||||
c5.606-8.685,9.684-24.859,0.833-32.698C407.088,152.166,393.93,156.49,390.861,167.271z"/>
|
||||
<path fill="#0F264C" d="M387.703,174.037c7.666,2.858,25.703-6.657,30.609-12.49c0.659-8.988-20.428-5.442-20.428-5.442
|
||||
S386.631,152.683,387.703,174.037z"/>
|
||||
<path fill="#FF8B7B" d="M385.866,176.217c-0.552,2.258-0.011,4.559,1.006,6.177c1.529,2.432,4.217,1.529,5.401-0.921
|
||||
c1.067-2.205,1.559-6.128-0.752-7.717C389.247,172.193,386.498,173.637,385.866,176.217z"/>
|
||||
<path fill="#0053CC" d="M371.026,278.08c0,0,0.649,101.694-17.386,131.051c-18.76,30.536-43.219,67.759-43.219,67.759
|
||||
l-21.172-1.023c0,0,24.695-55.091,34.01-80.657c12.841-35.246,18.771-134.097,18.771-134.097L371.026,278.08z"/>
|
||||
<path fill="#004DAA" d="M348.498,280.892c-2.803,2.068-5.847,5.863-8.739,10.169c-0.658,7.56-1.461,16.073-2.415,24.979
|
||||
C343.799,307.293,348.909,291.901,348.498,280.892z"/>
|
||||
<path fill="#0053CC" d="M360.57,271.96c0,0-44.813,63.603-72.75,97.881c-22.564,27.685-87.868,47.456-87.868,47.456
|
||||
l-7.967-13.363c0,0,51.954-28.991,67.447-47.725c49.588-59.953,48.974-91.05,71.998-101.299L360.57,271.96z"/>
|
||||
<path fill="#14365B" d="M332.199,252.239l-3.861,2.5c-0.299,0.193-0.138,0.666,0.32,0.932l41.524,24.298
|
||||
c0.357,0.21,0.757,0.207,0.91-0.004l2.431-3.335c0.167-0.23-0.021-0.62-0.41-0.848l-40.098-23.462
|
||||
C332.721,252.146,332.39,252.115,332.199,252.239z"/>
|
||||
<path fill="#0053CC" d="M334.959,259.875l-1.074-0.629c-0.214-0.125-0.313-0.33-0.219-0.456l3.199-4.311
|
||||
c0.093-0.126,0.345-0.126,0.558-0.001l1.074,0.629c0.215,0.125,0.313,0.331,0.219,0.455l-3.199,4.311
|
||||
C335.425,259.999,335.172,259.999,334.959,259.875z"/>
|
||||
<path fill="#0053CC" d="M366.94,278.588l-1.074-0.629c-0.215-0.125-0.313-0.33-0.219-0.457l3.199-4.31
|
||||
c0.093-0.126,0.345-0.126,0.56-0.001l1.072,0.627c0.215,0.126,0.313,0.332,0.22,0.457l-3.198,4.31
|
||||
C367.405,278.712,367.153,278.712,366.94,278.588z"/>
|
||||
<path fill="#0053CC" d="M350.95,269.231l-1.074-0.629c-0.213-0.125-0.312-0.33-0.219-0.457l3.197-4.31
|
||||
c0.094-0.126,0.346-0.126,0.56-0.001l1.075,0.629c0.213,0.125,0.312,0.33,0.218,0.455l-3.197,4.311
|
||||
C351.415,269.356,351.164,269.356,350.95,269.231z"/>
|
||||
<ellipse transform="matrix(-0.9432 -0.3323 0.3323 -0.9432 732.0203 477.6157)" fill="#0F264C" cx="406.847" cy="176.219" rx="1.078" ry="1.651"/>
|
||||
<ellipse transform="matrix(-0.9432 -0.3323 0.3323 -0.9432 749.7571 487.4925)" fill="#0F264C" cx="416.56" cy="179.641" rx="1.078" ry="1.649"/>
|
||||
<path fill="#0F264C" d="M416.843,178.046l2.274,0.132C419.117,178.178,417.49,179.417,416.843,178.046z"/>
|
||||
<path fill="#FF5652" d="M412.456,179.854c0,0,0.153,4.215,1.13,6.564c-1.507,0.66-3.265-0.503-3.265-0.503L412.456,179.854z"/>
|
||||
<path fill="#0F264C" d="M406.193,188.249c-0.028,0-0.06-0.006-0.088-0.016c-4.046-1.424-4.921-4.848-4.956-4.994
|
||||
c-0.034-0.144,0.053-0.289,0.196-0.323c0.15-0.035,0.289,0.055,0.323,0.197c0.009,0.032,0.852,3.292,4.613,4.616
|
||||
c0.14,0.048,0.212,0.202,0.163,0.341C406.406,188.18,406.304,188.249,406.193,188.249z"/>
|
||||
<path fill="#0F264C" d="M405.399,172.466c-0.19,0-0.374-0.101-0.472-0.281c-0.141-0.26-0.043-0.584,0.218-0.725
|
||||
c2.603-1.404,4.789-0.25,4.88-0.2c0.262,0.142,0.357,0.466,0.215,0.726c-0.143,0.259-0.47,0.352-0.724,0.216
|
||||
c-0.087-0.046-1.79-0.918-3.864,0.2C405.573,172.445,405.486,172.466,405.399,172.466z"/>
|
||||
<path fill="#0F264C" d="M421.706,176.391c-0.238,0-0.456-0.161-0.518-0.403c-0.588-2.313-2.446-2.971-2.465-2.977
|
||||
c-0.279-0.095-0.429-0.4-0.332-0.68c0.094-0.278,0.397-0.431,0.678-0.335c0.099,0.035,2.428,0.858,3.156,3.728
|
||||
c0.072,0.287-0.102,0.577-0.387,0.651C421.794,176.385,421.751,176.391,421.706,176.391z"/>
|
||||
<path fill="#FF8B7B" d="M355.737,208.7c-2.809,2.251-5.486,4.057-8.32,5.919c-2.806,1.842-5.713,3.515-8.676,5.106
|
||||
c-5.899,3.217-12.151,5.907-18.712,7.922c-0.807,0.275-1.659,0.46-2.488,0.691c-0.867,0.216-1.596,0.445-2.575,0.648
|
||||
c-2.008,0.452-4.238,0.617-6.495,0.337c-2.258-0.274-4.539-1.062-6.467-2.264c-1.937-1.202-3.493-2.755-4.728-4.368
|
||||
c-2.47-3.261-3.716-6.78-4.632-10.188c-0.458-1.71-0.745-3.434-0.955-5.148c-0.213-1.74-0.346-3.375-0.335-5.232l5.701-0.483
|
||||
c0.668,2.808,1.627,5.817,2.775,8.465c1.13,2.679,2.632,5.119,4.31,6.81c1.719,1.708,3.407,2.44,5.261,2.452
|
||||
c0.946-0.014,1.968-0.13,3.079-0.484c1.297-0.415,2.814-0.887,4.196-1.399c5.642-2.095,11.174-4.736,16.518-7.792
|
||||
c2.688-1.497,5.281-3.183,7.884-4.835c2.557-1.652,5.188-3.501,7.47-5.196L355.737,208.7z"/>
|
||||
<polygon fill="#DCE9FF" points="337.378,204.812 342.512,220.334 347.335,217.447 342.82,202.049 "/>
|
||||
<path fill="#9FC6FF" d="M359.008,191.678c-4.673-1.115-19.056,9.843-19.056,9.843l6.102,19.459c0,0,15.093-8.351,16.426-14.454
|
||||
C363.869,200.171,364.34,192.951,359.008,191.678z"/>
|
||||
<path fill="#407BFF" d="M187.583,427.595c-0.252,0-0.492-0.067-0.715-0.199c-1.233-0.733-1.578-3.358-1.672-4.858
|
||||
c-0.007-0.107,0.051-0.207,0.146-0.256c0.094-0.047,0.208-0.035,0.292,0.033c0.355,0.295,3.472,2.93,3.289,4.361
|
||||
c-0.029,0.227-0.151,0.535-0.565,0.728C188.087,427.53,187.828,427.595,187.583,427.595z M185.782,423.148
|
||||
c0.197,1.996,0.693,3.391,1.359,3.786c0.285,0.171,0.606,0.162,0.988-0.015c0.208-0.097,0.248-0.217,0.261-0.313
|
||||
C188.487,425.854,186.997,424.24,185.782,423.148z"/>
|
||||
<path fill="#407BFF" d="M189.455,424.369c-1.365,0-3.444-0.961-4.177-1.655c-0.07-0.064-0.098-0.163-0.075-0.255
|
||||
c0.021-0.093,0.09-0.166,0.181-0.196c0.132-0.04,3.247-0.973,4.646-0.115c0.371,0.228,0.598,0.558,0.672,0.979
|
||||
c0.117,0.664-0.232,0.962-0.451,1.078C190.039,424.319,189.765,424.369,189.455,424.369z M186.043,422.64
|
||||
c1.133,0.778,3.261,1.474,3.954,1.095c0.114-0.063,0.238-0.175,0.177-0.515c-0.046-0.268-0.186-0.469-0.423-0.616
|
||||
C188.915,422.089,187.094,422.384,186.043,422.64z"/>
|
||||
<path fill="#407BFF" d="M306.643,492.203c-1.292,0-2.694-0.249-3.665-0.467c-0.113-0.024-0.197-0.117-0.209-0.231
|
||||
c-0.011-0.113,0.049-0.224,0.152-0.271c0.903-0.426,5.469-2.499,6.68-1.674c0.168,0.111,0.36,0.33,0.338,0.729
|
||||
c-0.03,0.536-0.26,0.968-0.68,1.286C308.641,492.043,307.677,492.203,306.643,492.203z M303.902,491.377
|
||||
c1.462,0.266,3.979,0.568,5.034-0.228c0.294-0.222,0.448-0.513,0.468-0.891c0.009-0.157-0.046-0.219-0.101-0.256
|
||||
C308.644,489.56,305.902,490.51,303.902,491.377z"/>
|
||||
<path fill="#407BFF" d="M303.035,491.743c-0.064,0-0.125-0.021-0.174-0.063c-0.076-0.065-0.11-0.167-0.087-0.265
|
||||
c0.046-0.207,1.168-5.062,3.837-4.727c0.689,0.083,0.879,0.43,0.917,0.706c0.17,1.264-2.88,3.709-4.392,4.328
|
||||
C303.103,491.736,303.068,491.743,303.035,491.743z M306.366,487.21c-1.603,0-2.565,2.601-2.919,3.769
|
||||
c1.542-0.847,3.649-2.777,3.551-3.51c-0.018-0.131-0.169-0.216-0.449-0.248C306.487,487.213,306.427,487.21,306.366,487.21z"/>
|
||||
<path fill="#0F264C" d="M407.129,174.624l2.275,0.132C409.404,174.756,407.776,175.995,407.129,174.624z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<path opacity="0.8" fill="#0053CC" d="M537.227,70.192H427.105c-9.795,0-17.809,8.014-17.809,17.809V122.1
|
||||
c0,9.795,8.014,17.809,17.809,17.809h9.233v17.516l17.518-17.516h83.37c9.795,0,17.81-8.014,17.81-17.809V88.001
|
||||
C555.036,78.206,547.021,70.192,537.227,70.192z"/>
|
||||
<g>
|
||||
<path fill="#9FC6FF" d="M534.652,92.542H429.678c-2.255,0-4.083-1.829-4.083-4.084l0,0c0-2.256,1.828-4.084,4.083-4.084
|
||||
h104.975c2.255,0,4.085,1.829,4.085,4.084l0,0C538.737,90.713,536.907,92.542,534.652,92.542z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#9FC6FF" d="M534.652,108.751h-67.3c-2.255,0-4.085-1.829-4.085-4.084l0,0c0-2.256,1.83-4.084,4.085-4.084h67.3
|
||||
c2.255,0,4.085,1.828,4.085,4.084l0,0C538.737,106.922,536.907,108.751,534.652,108.751z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#9FC6FF" d="M447.388,108.751h-17.71c-2.255,0-4.083-1.829-4.083-4.084l0,0c0-2.256,1.828-4.084,4.083-4.084h17.71
|
||||
c2.255,0,4.084,1.828,4.084,4.084l0,0C451.472,106.922,449.643,108.751,447.388,108.751z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#9FC6FF" d="M508.433,124.96h-78.755c-2.255,0-4.083-1.828-4.083-4.084l0,0c0-2.256,1.828-4.084,4.083-4.084h78.755
|
||||
c2.257,0,4.084,1.828,4.084,4.084l0,0C512.517,123.132,510.689,124.96,508.433,124.96z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<rect y="486.271" fill="#E6E6E6" width="737" height="0.369"/>
|
||||
<rect x="117.123" y="498.093" fill="#E6E6E6" width="50.712" height="0.368"/>
|
||||
<rect x="177.536" y="498.093" fill="#E6E6E6" width="15.152" height="0.368"/>
|
||||
<rect x="238.915" y="490.852" fill="#E6E6E6" width="28.534" height="0.369"/>
|
||||
<rect x="571.061" y="506.271" fill="#E6E6E6" width="63.668" height="0.368"/>
|
||||
<rect x="647.851" y="506.271" fill="#E6E6E6" width="9.336" height="0.368"/>
|
||||
<rect x="449.079" y="493.342" fill="#E6E6E6" width="138.077" height="0.369"/>
|
||||
<path fill="#E6E6E6" d="M349.358,420.535H64.73c-4.639,0-8.414-3.774-8.414-8.416V12.03c0-4.639,3.775-8.413,8.414-8.413
|
||||
h284.628c4.638,0,8.412,3.774,8.412,8.413v400.089C357.771,416.761,353.996,420.535,349.358,420.535z M64.73,3.985
|
||||
c-4.437,0-8.045,3.609-8.045,8.045v400.089c0,4.438,3.608,8.047,8.045,8.047h284.628c4.435,0,8.043-3.609,8.043-8.047V12.03
|
||||
c0-4.436-3.608-8.045-8.043-8.045H64.73z"/>
|
||||
<path fill="#E6E6E6" d="M668.18,420.535H383.552c-4.638,0-8.411-3.774-8.411-8.416V12.03c0-4.639,3.773-8.413,8.411-8.413
|
||||
H668.18c4.638,0,8.413,3.774,8.413,8.413v400.089C676.593,416.761,672.817,420.535,668.18,420.535z M383.552,3.985
|
||||
c-4.435,0-8.043,3.609-8.043,8.045v400.089c0,4.438,3.608,8.047,8.043,8.047H668.18c4.437,0,8.044-3.609,8.044-8.047V12.03
|
||||
c0-4.436-3.607-8.045-8.044-8.045H383.552z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<rect x="514.35" y="285.385" fill="#F5F5F5" width="103.276" height="200.887"/>
|
||||
<rect x="609.107" y="285.385" fill="#F0F0F0" width="8.519" height="200.887"/>
|
||||
<rect x="284.502" y="291.117" fill="#E0E0E0" width="237.805" height="43.4"/>
|
||||
<path fill="#E0E0E0" d="M383.669,486.421H281.718c-0.815,0-1.474-0.659-1.474-1.474c0-0.815,0.659-1.474,1.474-1.474h101.951
|
||||
c14.738,0,16.704-4.296,16.704-21.374V246.897c0-0.814,0.659-1.474,1.476-1.474c0.814,0,1.474,0.66,1.474,1.474V462.1
|
||||
C403.322,480.35,400.481,486.421,383.669,486.421z"/>
|
||||
<rect x="293.659" y="286.154" fill="#F0F0F0" width="321.66" height="15.067"/>
|
||||
<rect x="192.688" y="285.385" fill="#F5F5F5" width="103.278" height="200.887"/>
|
||||
<rect x="287.45" y="285.385" fill="#F0F0F0" width="8.516" height="200.887"/>
|
||||
</g>
|
||||
<g>
|
||||
<rect x="134.202" y="128.529" fill="#FAFAFA" width="88.631" height="357.742"/>
|
||||
<rect x="139.067" y="138.976" fill="#F5F5F5" width="78.901" height="78.901"/>
|
||||
<path fill="#E0E0E0" d="M161.054,137.931L161.054,137.931h34.928l0,0c0,4.519-3.664,8.181-8.182,8.181h-18.564
|
||||
C164.717,146.111,161.054,142.449,161.054,137.931z"/>
|
||||
<rect x="139.067" y="224.958" fill="#F5F5F5" width="78.901" height="78.902"/>
|
||||
<rect x="139.067" y="310.942" fill="#F5F5F5" width="78.901" height="78.9"/>
|
||||
<rect x="139.067" y="396.925" fill="#F5F5F5" width="78.901" height="78.902"/>
|
||||
<path fill="#E0E0E0" d="M161.054,223.914L161.054,223.914h34.928l0,0c0,4.518-3.664,8.181-8.182,8.181h-18.564
|
||||
C164.717,232.095,161.054,228.432,161.054,223.914z"/>
|
||||
<path fill="#E0E0E0" d="M161.054,309.898L161.054,309.898h34.928l0,0c0,4.518-3.664,8.18-8.182,8.18h-18.564
|
||||
C164.717,318.078,161.054,314.416,161.054,309.898z"/>
|
||||
<path fill="#E0E0E0" d="M161.054,395.879L161.054,395.879h34.928l0,0c0,4.521-3.664,8.183-8.182,8.183h-18.564
|
||||
C164.717,404.062,161.054,400.399,161.054,395.879z"/>
|
||||
<rect x="89.934" y="128.529" fill="#F0F0F0" width="44.268" height="357.742"/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon fill="#F0F0F0" points="389.716,285.385 367.434,285.385 372.854,242.018 395.138,242.018 "/>
|
||||
<polygon fill="#F5F5F5" points="394.642,285.385 372.36,285.385 377.781,242.018 400.063,242.018 "/>
|
||||
<polygon fill="#F0F0F0" points="442.438,285.385 426.331,285.385 423.237,280.471 439.347,280.471 "/>
|
||||
<polygon fill="#FAFAFA" points="528.754,285.385 431.255,285.385 428.163,280.471 515.609,280.471 "/>
|
||||
<path fill="#F0F0F0" d="M319.058,272.937h7.043c6.875,0,12.447,5.574,12.447,12.448l0,0h-31.936l0,0
|
||||
C306.612,278.511,312.185,272.937,319.058,272.937z"/>
|
||||
<polygon fill="#F0F0F0" points="397.354,263.701 375.071,263.701 377.781,242.018 400.063,242.018 "/>
|
||||
<path fill="#F0F0F0" d="M315.479,258.51h157.615c1.314,0,2.33-1.152,2.167-2.456l-12.145-97.174
|
||||
c-0.137-1.093-1.067-1.914-2.17-1.914H303.332c-1.314,0-2.331,1.152-2.167,2.456l12.146,97.174
|
||||
C313.446,257.69,314.377,258.51,315.479,258.51z"/>
|
||||
<path fill="#F5F5F5" d="M317.819,258.51h157.616c1.314,0,2.33-1.152,2.167-2.456l-12.145-97.174
|
||||
c-0.137-1.093-1.067-1.914-2.169-1.914H305.674c-1.314,0-2.332,1.152-2.168,2.456l12.146,97.174
|
||||
C315.789,257.69,316.718,258.51,317.819,258.51z"/>
|
||||
<path fill="#E0E0E0" d="M472.519,253.139l-11.369-90.955c-0.038-0.306-0.297-0.536-0.604-0.536H309.196
|
||||
c-0.367,0-0.652,0.323-0.606,0.688l11.369,90.955c0.041,0.306,0.3,0.535,0.608,0.535h151.345
|
||||
C472.279,253.826,472.563,253.504,472.519,253.139z"/>
|
||||
<path fill="#FAFAFA" d="M382.242,281.32h29.063c1.996,0,3.614,1.618,3.614,3.614v0.45h-36.292v-0.45
|
||||
C378.628,282.938,380.247,281.32,382.242,281.32z"/>
|
||||
<path fill="#F0F0F0" d="M361.824,281.32h17.391c1.995,0,3.614,1.618,3.614,3.614v0.45h-24.62v-0.45
|
||||
C358.209,282.938,359.827,281.32,361.824,281.32z"/>
|
||||
</g>
|
||||
<path fill="#E0E0E0" d="M171.658,88.127c0.009-0.021,0.004-0.043,0.012-0.064c0.34-1.138,0.653-2.288,0.937-3.445
|
||||
c1.717,2.224,3.384,2.788,4.626,2.788c0.137,0,0.27-0.007,0.398-0.019c2.459-0.238,4.82-2.624,6.313-6.382
|
||||
c0.056-0.142,0.048-0.3-0.02-0.435c-0.069-0.136-0.191-0.235-0.338-0.274c-4.792-1.25-8.597,0.612-10.413,1.806
|
||||
c0.222-1.092,0.41-2.189,0.564-3.286c0.401,0.071,0.798,0.118,1.181,0.118c4.019,0,6.967-3.58,7.105-3.753
|
||||
c0.106-0.131,0.144-0.305,0.101-0.468c-0.043-0.164-0.162-0.295-0.317-0.358c-2.394-0.948-4.422-1.031-6.028-0.243
|
||||
c-0.994,0.487-1.794,1.309-2.375,2.401c-0.862-2.588-3.403-7.537-10.456-8.932c-0.154-0.031-0.307,0.006-0.426,0.101
|
||||
c-0.121,0.094-0.196,0.235-0.205,0.389c-0.207,3.647-0.092,8.107,2.646,10.234c1.04,0.806,2.344,1.209,3.938,1.209
|
||||
c1.104,0,2.358-0.204,3.75-0.589c-0.383,2.616-0.964,5.232-1.688,7.793c-1.425-1.886-5.142-6.111-10.783-7.568
|
||||
c-0.283-0.077-0.571,0.096-0.645,0.378c-0.828,3.138-0.405,5.686,1.225,7.369c1.343,1.388,3.443,2.096,6.097,2.096
|
||||
c1.088,0,2.275-0.125,3.535-0.365c-0.67,2.148-1.423,4.246-2.225,6.262c-1.638-1.449-6.457-5.127-11.695-3.596
|
||||
c-0.145,0.042-0.263,0.144-0.328,0.279c-0.065,0.135-0.071,0.292-0.013,0.431c1.426,3.475,3.043,5.402,5.081,6.066
|
||||
c0.533,0.172,1.09,0.26,1.678,0.26c1.289,0,2.732-0.428,4.388-1.286c-1.131,2.662-2.32,5.148-3.46,7.369
|
||||
c-1.235-1.333-4.598-4.082-10.563-2.806c-0.262,0.056-0.441,0.297-0.417,0.565c0.193,2.164,1.729,4.226,3.822,5.13
|
||||
c0.58,0.251,1.421,0.502,2.456,0.502c0.969,0,2.111-0.23,3.373-0.873c-1.163,2.137-2.216,3.924-3.044,5.273h-10.026
|
||||
c-1.586-2.728-3.426-6.11-5.224-9.924c0.88,0.259,1.746,0.399,2.575,0.399c1.776,0,3.397-0.586,4.7-1.743
|
||||
c2.008-1.781,2.878-4.592,2.162-6.996c-0.072-0.245-0.307-0.405-0.563-0.375c-5.844,0.616-8.787,4.499-9.913,6.451
|
||||
c-1.182-2.649-2.319-5.465-3.324-8.381c1.54,0.797,2.928,1.217,4.171,1.217c0.599,0,1.17-0.092,1.71-0.276
|
||||
c2.887-0.983,4.632-4.53,6.086-8.216c0.058-0.14,0.049-0.296-0.017-0.431c-0.066-0.135-0.187-0.235-0.333-0.275
|
||||
c-5.943-1.654-10.758,4.028-12.254,6.054c-0.779-2.446-1.45-4.948-1.966-7.466c1.338,0.243,2.6,0.371,3.762,0.371
|
||||
c3.023,0,5.404-0.815,6.904-2.408c1.779-1.888,2.211-4.712,1.25-8.167c-0.078-0.28-0.363-0.443-0.65-0.37
|
||||
c-6.072,1.657-10.059,6.271-11.66,8.452c-0.078-0.45-0.154-0.901-0.219-1.352c-0.018-0.122-0.078-0.221-0.154-0.306
|
||||
c-0.639-1.924-1.756-3.317-3.251-4.026c-1.771-0.839-3.995-0.717-6.61,0.36c-0.155,0.063-0.272,0.198-0.313,0.362
|
||||
s-0.001,0.336,0.107,0.467c0.155,0.187,3.398,4.019,7.759,4.019c0.453,0,0.919-0.06,1.393-0.15
|
||||
c0.194,1.252,0.427,2.505,0.701,3.752c-1.997-1.285-6.23-3.319-11.529-1.86c-0.146,0.041-0.268,0.141-0.335,0.278
|
||||
c-0.066,0.137-0.072,0.294-0.013,0.435c1.694,4.109,4.318,6.696,7.02,6.921c0.118,0.009,0.242,0.015,0.372,0.015
|
||||
c1.371,0,3.226-0.63,5.111-3.162c0.749,2.889,1.668,5.731,2.692,8.468c-2.551-1.204-8.285-3.294-12.387-0.12
|
||||
c-0.227,0.177-0.273,0.5-0.104,0.732c2.649,3.612,5.102,5.369,7.5,5.369c0.02,0,0.04,0,0.06-0.001
|
||||
c1.993-0.023,3.897-1.255,5.803-3.731c1.09,2.716,2.256,5.305,3.427,7.704c-2.548-1.586-5.353-1.334-8.657,0.751
|
||||
c-0.15,0.094-0.242,0.255-0.248,0.432c-0.005,0.176,0.078,0.343,0.22,0.446c0.186,0.134,3.344,2.373,6.665,2.373
|
||||
c1.19,0,2.399-0.292,3.502-1.065c0.941,1.811,1.862,3.482,2.717,4.972h-4.555v2.59h1.659l1.367,13.736h20.171l1.369-13.736
|
||||
h1.659v-2.59h-9.05c1.007-1.667,2.288-3.889,3.657-6.507c0.04-0.051,0.069-0.106,0.088-0.167
|
||||
c0.344-0.661,0.692-1.344,1.045-2.053c1.45,1.965,3.377,3.047,5.455,3.047c0.225,0,0.449-0.013,0.676-0.038
|
||||
c2.431-0.271,4.654-2.007,5.401-4.224c0.083-0.242-0.02-0.508-0.242-0.633c-4.253-2.377-8.17-1.303-10.201-0.402
|
||||
c0.761-1.619,1.52-3.333,2.249-5.116c0.049-0.07,0.085-0.148,0.095-0.235c0.203-0.501,0.405-1.008,0.602-1.521
|
||||
c1.757,2.212,3.503,3.303,5.316,3.303c0.001,0,0.003,0,0.005,0c2.206-0.003,4.437-1.629,6.817-4.974
|
||||
c0.167-0.234,0.117-0.558-0.112-0.73c-3.747-2.819-8.893-0.896-11.219,0.234c0.472-1.324,0.918-2.672,1.33-4.041
|
||||
C171.646,88.14,171.655,88.136,171.658,88.127z"/>
|
||||
<g>
|
||||
<g>
|
||||
<rect x="517.855" y="81.908" fill="#E0E0E0" width="75.378" height="82.772"/>
|
||||
<path fill="#EBEBEB" d="M583.938,85.306c-0.066,0-0.129-0.017-0.189-0.052c-0.179-0.107-17.977-10.691-23.636-10.691
|
||||
c-5.657,0-22.634,10.581-22.805,10.688c-0.169,0.108-0.397,0.057-0.506-0.117c-0.109-0.173-0.057-0.4,0.116-0.508
|
||||
c0.706-0.441,17.328-10.799,23.194-10.799c5.862,0,23.276,10.354,24.012,10.795c0.178,0.104,0.233,0.331,0.131,0.505
|
||||
C584.185,85.241,584.063,85.306,583.938,85.306z"/>
|
||||
<rect x="523.537" y="81.908" fill="#F5F5F5" width="77.86" height="82.772"/>
|
||||
<rect x="530.061" y="88.43" fill="#FFFFFF" width="64.817" height="69.727"/>
|
||||
</g>
|
||||
<path fill="#E0E0E0" d="M580.225,123.293c0,9.806-7.949,17.755-17.759,17.755c-9.805,0-17.754-7.949-17.754-17.755
|
||||
c0-9.806,7.949-17.755,17.754-17.755C572.275,105.539,580.225,113.488,580.225,123.293z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#E6E6E6" d="M560.958,385.829h66.066c12.611,0,22.907-10.089,23.162-22.699l2.465-120.951
|
||||
c0.192-9.454-7.419-17.221-16.874-17.221h-41.416c-8.578,0-15.796,6.439-16.765,14.966L560.958,385.829z"/>
|
||||
<path fill="#E6E6E6" d="M532.338,373.171h64.653v12.658h-70.402c-1.821,0-3.3-1.478-3.3-3.3v-0.311
|
||||
C523.289,377.221,527.341,373.171,532.338,373.171z"/>
|
||||
<path fill="#E6E6E6" d="M591.46,487.93c-0.686,0-1.298-0.478-1.441-1.175l-20.648-99.452h-35.958l-20.647,99.452
|
||||
c-0.167,0.798-0.95,1.305-1.743,1.146c-0.798-0.167-1.311-0.946-1.144-1.744l20.891-100.627
|
||||
c0.143-0.685,0.745-1.175,1.443-1.175h38.356c0.699,0,1.301,0.49,1.445,1.175l20.893,100.627
|
||||
c0.164,0.798-0.349,1.577-1.146,1.744C591.659,487.921,591.559,487.93,591.46,487.93z"/>
|
||||
<path fill="#E6E6E6" d="M569.04,487.93c-0.099,0-0.199-0.009-0.299-0.029c-0.799-0.167-1.312-0.946-1.146-1.744l20.893-100.627
|
||||
c0.143-0.685,0.745-1.175,1.445-1.175h38.354c0.699,0,1.301,0.49,1.445,1.175l20.891,100.627
|
||||
c0.166,0.798-0.346,1.577-1.145,1.744c-0.8,0.159-1.578-0.348-1.745-1.146l-20.645-99.452h-35.96l-20.647,99.452
|
||||
C570.337,487.452,569.724,487.93,569.04,487.93z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<ellipse fill="#F5F5F5" cx="368.5" cy="536.151" rx="285.792" ry="16.691"/>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#407BFF" d="M393.715,522.468c-0.932,0-1.766-0.653-1.958-1.601l-28.013-137.912h-48.762l-28.014,137.912
|
||||
c-0.22,1.083-1.27,1.782-2.356,1.561c-1.083-0.219-1.782-1.275-1.563-2.357l28.339-139.512c0.19-0.933,1.008-1.602,1.959-1.602
|
||||
h52.032c0.95,0,1.771,0.669,1.958,1.602l28.338,139.515c0.221,1.079-0.479,2.136-1.561,2.354
|
||||
C393.979,522.457,393.846,522.468,393.715,522.468z"/>
|
||||
<path fill="#407BFF" d="M315.422,522.468c-0.932,0-1.765-0.653-1.958-1.601l-28.013-137.912h-48.762l-28.015,137.912
|
||||
c-0.218,1.083-1.27,1.782-2.357,1.561c-1.083-0.219-1.781-1.275-1.56-2.357l28.338-139.512
|
||||
c0.188-0.933,1.009-1.602,1.959-1.602h52.03c0.95,0,1.771,0.669,1.959,1.601l28.339,139.513
|
||||
c0.222,1.082-0.478,2.139-1.561,2.357C315.687,522.457,315.554,522.468,315.422,522.468z"/>
|
||||
<path fill="#407BFF" d="M326.384,380.956H236.77c-17.11,0-31.075-13.685-31.423-30.79l-3.34-136.196
|
||||
c-0.262-12.823,10.062-23.359,22.888-23.359h56.177c11.641,0,21.426,8.735,22.745,20.299L326.384,380.956z"/>
|
||||
<path fill="#407BFF" d="M365.207,363.785h-87.697v17.171h95.496c2.474,0,4.478-2.004,4.478-4.476v-0.421
|
||||
C377.482,369.28,371.986,363.785,365.207,363.785z"/>
|
||||
</g>
|
||||
<g opacity="0.3">
|
||||
<path d="M393.715,522.468c-0.932,0-1.766-0.653-1.958-1.601l-28.013-137.912h-48.762l-28.014,137.912
|
||||
c-0.22,1.083-1.27,1.782-2.356,1.561c-1.083-0.219-1.782-1.275-1.563-2.357l28.339-139.512c0.19-0.933,1.008-1.602,1.959-1.602
|
||||
h52.032c0.95,0,1.771,0.669,1.958,1.602l28.338,139.515c0.221,1.079-0.479,2.136-1.561,2.354
|
||||
C393.979,522.457,393.846,522.468,393.715,522.468z"/>
|
||||
<path d="M315.422,522.468c-0.932,0-1.765-0.653-1.958-1.601l-28.013-137.912h-48.762l-28.015,137.912
|
||||
c-0.218,1.083-1.27,1.782-2.357,1.561c-1.083-0.219-1.781-1.275-1.56-2.357l28.338-139.512
|
||||
c0.188-0.933,1.009-1.602,1.959-1.602h52.03c0.95,0,1.771,0.669,1.959,1.601l28.339,139.513
|
||||
c0.222,1.082-0.478,2.139-1.561,2.357C315.687,522.457,315.554,522.468,315.422,522.468z"/>
|
||||
<path d="M326.384,380.956H236.77c-17.11,0-31.075-13.685-31.423-30.79l-3.34-136.196
|
||||
c-0.262-12.823,10.062-23.359,22.888-23.359h56.177c11.641,0,21.426,8.735,22.745,20.299L326.384,380.956z"/>
|
||||
<path d="M365.207,363.785h-87.697v17.171h95.496c2.474,0,4.478-2.004,4.478-4.476v-0.421
|
||||
C377.482,369.28,371.986,363.785,365.207,363.785z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#263238" d="M301.444,183.156c0,0,12.531,16.36,4.428,48.935c-8.101,32.576-49.94,14.894-52.478-14.465
|
||||
c-2.991-34.61,35.901-10.747,42.798-41.526L301.444,183.156z"/>
|
||||
<g>
|
||||
<path fill="#407BFF" d="M292.349,173.442c-5.434,3.842-7.59,9.409-1.571,14.861c6.02,5.453,14.591,5.28,17.177,3.038
|
||||
c2.587-2.242,2.089-13.615,2.089-13.615L292.349,173.442z"/>
|
||||
<path opacity="0.8" fill="#FFFFFF" d="M292.349,173.442c-5.434,3.842-7.59,9.409-1.571,14.861
|
||||
c6.02,5.453,14.591,5.28,17.177,3.038c2.587-2.242,2.089-13.615,2.089-13.615L292.349,173.442z"/>
|
||||
</g>
|
||||
<path fill="#E58A7B" d="M361.035,245.952c0.147,0.66,0.409,1.696,0.635,2.563l0.72,2.77c0.497,1.855,1.044,3.719,1.611,5.581
|
||||
c1.103,3.736,2.309,7.469,3.569,11.195c1.279,3.719,2.566,7.45,3.981,11.143c0.698,1.85,1.383,3.706,2.118,5.547l0.859,2.207
|
||||
c0.129,0.305,0.345,0.665,0.669,1.057c1.294,1.636,4.236,3.432,7.47,4.717c3.252,1.375,6.897,2.395,10.616,3.297
|
||||
c3.735,0.873,7.583,1.596,11.476,2.189c3.868,0.656,7.881,1.093,11.719,1.513l0.139,7.923
|
||||
c-8.454,0.827-16.736,0.923-25.297-0.005c-4.274-0.453-8.575-1.227-12.991-2.518c-2.201-0.673-4.43-1.508-6.687-2.634
|
||||
c-2.244-1.153-4.567-2.563-6.725-4.729c-1.071-1.081-2.096-2.349-2.951-3.815c-0.219-0.357-0.409-0.753-0.607-1.131l-0.388-0.79
|
||||
l-0.68-1.404c-0.915-1.866-1.823-3.739-2.669-5.642c-1.71-3.798-3.37-7.628-4.863-11.536c-1.528-3.894-2.917-7.852-4.183-11.878
|
||||
c-0.61-2.021-1.201-4.052-1.748-6.118l-0.799-3.124c-0.244-1.107-0.458-2.042-0.706-3.374L361.035,245.952z"/>
|
||||
<g>
|
||||
<path fill="#407BFF" d="M356.028,229.261c6.318,1.609,10.739,27.612,10.739,27.612l-17.413,11.842
|
||||
c0,0-16.695-26.233-11.834-33.18C342.581,228.3,346.808,226.913,356.028,229.261z"/>
|
||||
<path opacity="0.5" fill="#FFFFFF" d="M356.028,229.261c6.318,1.609,10.739,27.612,10.739,27.612l-17.413,11.842
|
||||
c0,0-16.695-26.233-11.834-33.18C342.581,228.3,346.808,226.913,356.028,229.261z"/>
|
||||
</g>
|
||||
<path opacity="0.2" fill="#407BFF" d="M353.76,235.753l-15.138,11.999c3.582,9.713,10.73,20.959,10.73,20.959l12.072-8.21
|
||||
L353.76,235.753z"/>
|
||||
<g>
|
||||
<path fill="#407BFF" d="M356.028,229.261c0,0,7.304,2.572-7.326,92.534c-24.71,0-50.246,0-62.268,0
|
||||
c1.045-25.344,1.074-40.971-11.038-92.978c0,0,13.047-2.839,26.441-3.484c10.478-0.504,19.063-0.839,28.275,0.001
|
||||
C342.256,226.442,356.028,229.261,356.028,229.261z"/>
|
||||
<path opacity="0.5" fill="#FFFFFF" d="M356.028,229.261c0,0,7.304,2.572-7.326,92.534c-24.71,0-50.246,0-62.268,0
|
||||
c1.045-25.344,1.074-40.971-11.038-92.978c0,0,13.047-2.839,26.441-3.484c10.478-0.504,19.063-0.839,28.275,0.001
|
||||
C342.256,226.442,356.028,229.261,356.028,229.261z"/>
|
||||
</g>
|
||||
<path fill="#E58A7B" d="M414.219,299.626l10.874-11.022l1.43,15.524c0,0-8.152,5.518-13.794,2.553L414.219,299.626z"/>
|
||||
<polygon fill="#E58A7B" points="437.877,286.957 438.372,300.019 426.522,304.128 425.093,288.604 "/>
|
||||
<polygon fill="#E58A7B" points="419.289,508.229 434.62,508.229 436.979,472.727 421.647,472.727 "/>
|
||||
<polygon fill="#E58A7B" points="359.964,508.229 375.296,508.229 380.227,472.727 364.893,472.727 "/>
|
||||
<path fill="#263238" d="M376.247,506.456h-17.225c-0.627,0-1.135,0.434-1.224,1.047l-1.963,13.627
|
||||
c-0.203,1.413,1.013,2.752,2.458,2.726c6.006-0.104,8.899-0.455,16.474-0.455c4.66,0,16.611,0.484,23.046,0.484
|
||||
c6.295,0,6.777-6.362,4.1-6.938c-12.017-2.586-19.057-6.149-23.104-9.55C378.079,506.783,377.164,506.456,376.247,506.456z"/>
|
||||
<path fill="#263238" d="M435.813,506.456h-17.224c-0.627,0-1.136,0.434-1.224,1.047l-1.963,13.627
|
||||
c-0.205,1.413,1.012,2.752,2.457,2.726c6.005-0.104,8.9-0.455,16.476-0.455c4.66,0,14.298,0.484,20.733,0.484
|
||||
c6.295,0,6.779-6.362,4.099-6.938c-12.016-2.586-16.744-6.149-20.791-9.55C437.646,506.783,436.729,506.456,435.813,506.456z"/>
|
||||
<path fill="#263238" d="M343.803,162.47c5.523,0.348,8.321,27.945-7.849,26.389C319.78,187.302,343.803,162.47,343.803,162.47z"
|
||||
/>
|
||||
<g>
|
||||
<polygon fill="#CF6F64" points="436.977,472.735 435.762,491.036 420.425,491.036 421.637,472.735 "/>
|
||||
<polygon fill="#CF6F64" points="364.888,472.735 380.228,472.735 377.678,491.036 362.341,491.036 "/>
|
||||
</g>
|
||||
<path opacity="0.2" fill="#407BFF" d="M281.623,257.672c1.444,7.547,2.519,14.062,3.317,19.929l3.639-28.168L281.623,257.672z"
|
||||
/>
|
||||
<path fill="#E58A7B" d="M304.639,193.496c1.783,9.097,3.563,25.766-2.801,31.836c0,0,2.486,9.229,19.391,9.229
|
||||
c18.589,0,8.885-9.228,8.885-9.228c-10.146-2.422-9.883-9.949-8.117-17.018L304.639,193.496z"/>
|
||||
<g>
|
||||
<polygon fill="#263238" points="317.871,236.538 323.534,234.508 322.774,232.955 "/>
|
||||
<polygon fill="#263238" points="328.849,235.353 323.534,234.508 324.68,232.771 "/>
|
||||
<path fill="#407BFF" d="M303.895,221.038l-3.84,3.673c-0.248,0.237-0.265,0.627-0.04,0.886l16.158,18.476
|
||||
c0,0,0.639-6.163,6.602-11.117c-13.41-5.076-16.911-10.334-18.097-11.867C304.486,220.841,304.121,220.821,303.895,221.038z"/>
|
||||
<path fill="#407BFF" d="M327.071,223.869l4.772,1.304c0.292,0.08,0.518,0.302,0.593,0.596
|
||||
c0.478,1.849,1.959,8.985-0.733,18.303c-0.691-2.511-2.964-8.517-7.022-11.302c4.395-3.04,2.631-6.98,2.007-8.467
|
||||
C326.583,224.054,326.809,223.797,327.071,223.869z"/>
|
||||
</g>
|
||||
<path fill="#CF6F64" d="M311.715,199.542l10.273,8.766c-0.424,1.672-0.754,3.369-0.872,5.019c-3.875-0.561-9.2-4.815-9.61-8.873
|
||||
C311.3,202.43,311.385,200.485,311.715,199.542z"/>
|
||||
<path fill="#E58A7B" d="M303.569,169.526c-1.756,15.114-2.823,21.474,3.355,30.498c9.293,13.574,28.24,12.426,34.479-1.859
|
||||
c5.614-12.858,7.542-35.414-6.027-43.982C322.009,145.742,305.325,154.412,303.569,169.526z"/>
|
||||
<path fill="#263238" d="M338.197,144.577c-24.991-9.868-43.757,1.259-47.633,17.072c-6.018,24.562,13.366,26.288,13.366,26.288
|
||||
l2.419-6.273c3.499,2.096,13.345,1.168,10.275-17.061c-1.739-10.323,11.327,4.049,27.895,2.453
|
||||
C348.972,166.625,354.995,151.21,338.197,144.577z"/>
|
||||
<path fill="#263238" d="M346.704,150.651c-3.297-5.065-10.019-9.391-23.941-11.438c0,0,7.23,1.627,9.584,6.92
|
||||
C334.699,151.426,350.664,156.736,346.704,150.651z"/>
|
||||
<path fill="#E58A7B" d="M298.833,182.6c-0.247,3.145,0.982,6.11,2.696,8.054c2.581,2.924,5.984,1.127,7.036-2.414
|
||||
c0.949-3.188,0.747-8.55-2.693-10.172C302.48,176.47,299.117,179.004,298.833,182.6z"/>
|
||||
<path fill="#263238" d="M348.702,321.795c0,0,102.796,9.555,101.79,56.31c-1.045,48.632-11.453,109.388-11.453,109.388H417.81
|
||||
c0,0-1.817-51.414-2.429-99.293c-0.32-24.946-99.656-29.938-99.656-29.938l-12.824-36.466H348.702z"/>
|
||||
<path fill="#263238" d="M332.257,321.795c0,0,66.437,22.036,68.112,49.298c3.084,50.21-18.989,116.399-18.989,116.399h-20.906
|
||||
c0,0,1.184-43.918,3.685-89.407c3.141-57.154-97.703-0.788-77.725-76.29H332.257z"/>
|
||||
<ellipse transform="matrix(-0.9843 -0.1763 0.1763 -0.9843 617.3752 410.8847)" fill="#263238" cx="326.939" cy="178.019" rx="1.464" ry="2.239"/>
|
||||
<ellipse transform="matrix(-0.9843 -0.1764 0.1764 -0.9843 644.223 418.2213)" fill="#263238" cx="340.698" cy="180.48" rx="1.463" ry="2.239"/>
|
||||
<path fill="#263238" d="M340.729,178.281l3.075-0.32C343.803,177.961,341.895,179.977,340.729,178.281z"/>
|
||||
<path fill="#DF5753" d="M335.246,181.664c0,0,1.128,5.61,2.951,8.545c-1.876,1.212-4.485,0.038-4.485,0.038L335.246,181.664z"/>
|
||||
<path fill="#263238" d="M328.633,194.149c-0.013,0-0.026-0.001-0.04-0.004c-5.659-1.012-7.612-5.485-7.632-5.53
|
||||
c-0.049-0.118,0.005-0.253,0.124-0.303c0.118-0.048,0.253,0.005,0.302,0.122c0.019,0.043,1.884,4.288,7.287,5.255
|
||||
c0.126,0.023,0.21,0.143,0.187,0.269C328.84,194.07,328.742,194.149,328.633,194.149z"/>
|
||||
<path fill="#263238" d="M322.273,172.33c-0.124,0-0.249-0.05-0.339-0.148c-0.175-0.188-0.163-0.481,0.025-0.655
|
||||
c2.847-2.629,5.971-1.881,6.104-1.847c0.248,0.063,0.397,0.313,0.337,0.56c-0.061,0.249-0.314,0.402-0.562,0.338
|
||||
c-0.114-0.027-2.785-0.65-5.251,1.63C322.498,172.29,322.386,172.33,322.273,172.33z"/>
|
||||
<path fill="#263238" d="M346.767,174.749c-0.179,0-0.35-0.104-0.426-0.278c-1.348-3.1-4.122-3.601-4.148-3.605
|
||||
c-0.254-0.043-0.423-0.282-0.38-0.534c0.041-0.252,0.285-0.422,0.533-0.38c0.135,0.023,3.299,0.595,4.845,4.15
|
||||
c0.104,0.234-0.004,0.507-0.239,0.609C346.891,174.736,346.828,174.749,346.767,174.749z"/>
|
||||
<path fill="#E58A7B" d="M284.698,250.997c-1.336,4.375-2.782,8.904-4.057,13.384c-1.341,4.48-2.649,8.964-3.809,13.448
|
||||
c-1.14,4.484-2.268,8.952-3.097,13.334c-0.4,2.183-0.767,4.345-0.98,6.375c-0.114,1.022-0.166,1.981-0.19,2.872
|
||||
c-0.006,0.194-0.033-0.058-0.147-0.345c-0.124-0.275-0.392-0.772-0.726-1.07c-0.751-0.661-1.038-0.538-0.694-0.436
|
||||
c0.313,0.116,1.06,0.193,1.876,0.188c1.673-0.005,3.752-0.321,5.825-0.753c4.206-0.854,8.592-2.226,12.958-3.691
|
||||
c8.717-3.02,17.55-6.549,26.167-10.22l3.802,6.952c-8.209,5.321-16.582,10.104-25.548,14.259
|
||||
c-4.489,2.074-9.09,3.973-14.128,5.498c-2.551,0.721-5.165,1.383-8.256,1.669c-1.562,0.126-3.22,0.196-5.255-0.13
|
||||
c-1.029-0.186-2.113-0.423-3.344-0.969c-1.207-0.536-2.525-1.313-3.687-2.522c-2.424-2.363-3.269-5.931-3.286-7.964
|
||||
c-0.075-1.493-0.081-2.922-0.028-4.279c0.102-2.729,0.353-5.303,0.701-7.83c0.7-5.037,1.618-9.896,2.741-14.678
|
||||
c1.105-4.785,2.305-9.509,3.616-14.192c1.384-4.683,2.727-9.278,4.373-13.966L284.698,250.997z"/>
|
||||
<path fill="#407BFF" d="M381.501,509.029c-1.406,0-2.95-0.294-4.03-0.55c-0.1-0.023-0.176-0.104-0.194-0.204
|
||||
c-0.018-0.101,0.025-0.204,0.112-0.26c0.521-0.343,5.118-3.316,6.863-2.536c0.367,0.167,0.597,0.493,0.661,0.939
|
||||
c0.108,0.776-0.083,1.393-0.569,1.836C383.713,508.831,382.652,509.029,381.501,509.029z M378.19,508.113
|
||||
c2.831,0.6,4.979,0.519,5.808-0.238c0.358-0.325,0.49-0.777,0.404-1.385c-0.038-0.273-0.152-0.446-0.362-0.541
|
||||
C382.921,505.445,379.808,507.118,378.19,508.113z"/>
|
||||
<path fill="#407BFF" d="M377.529,508.485c-0.044,0-0.089-0.012-0.129-0.034c-0.079-0.046-0.127-0.13-0.127-0.223
|
||||
c0-0.184,0.019-4.551,1.651-5.997c0.417-0.37,0.893-0.526,1.453-0.457c0.801,0.098,1.057,0.559,1.13,0.927
|
||||
c0.318,1.59-2.24,4.84-3.852,5.752C377.617,508.477,377.572,508.485,377.529,508.485z M380.137,502.272
|
||||
c-0.323,0-0.61,0.112-0.872,0.346c-1.164,1.03-1.411,3.958-1.464,5.124c1.43-1.07,3.442-3.748,3.203-4.94
|
||||
c-0.037-0.19-0.15-0.451-0.689-0.518C380.254,502.275,380.194,502.272,380.137,502.272z"/>
|
||||
<path fill="#407BFF" d="M441.58,509.032c-1.681,0-3.516-0.291-4.814-0.55c-0.106-0.023-0.189-0.109-0.205-0.217
|
||||
c-0.015-0.109,0.038-0.213,0.137-0.264c0.686-0.357,6.747-3.452,8.578-2.453c0.332,0.182,0.527,0.486,0.563,0.884
|
||||
c0.061,0.688-0.148,1.253-0.623,1.679C444.449,508.802,443.076,509.032,441.58,509.032z M437.611,508.116
|
||||
c1.982,0.343,5.909,0.829,7.262-0.385c0.353-0.316,0.499-0.726,0.453-1.253c-0.021-0.227-0.115-0.38-0.296-0.479
|
||||
C443.828,505.341,439.751,507.072,437.611,508.116z"/>
|
||||
<path fill="#407BFF" d="M436.815,508.485c-0.052,0-0.104-0.015-0.148-0.046c-0.074-0.052-0.114-0.139-0.108-0.23
|
||||
c0.014-0.173,0.363-4.255,2.258-5.832c0.566-0.473,1.212-0.677,1.932-0.603c0.938,0.095,1.208,0.561,1.269,0.936
|
||||
c0.277,1.693-3.293,4.94-5.097,5.755C436.886,508.479,436.852,508.485,436.815,508.485z M440.465,502.272
|
||||
c-0.486,0-0.919,0.164-1.321,0.498c-1.375,1.146-1.871,3.909-2.019,5.015c1.938-1.088,4.572-3.857,4.385-4.991
|
||||
c-0.016-0.109-0.07-0.436-0.814-0.51C440.617,502.275,440.541,502.272,440.465,502.272z"/>
|
||||
<path fill="#E58A7B" d="M317.539,284.256l14.543-3.685l-6.929,13.967c0,0-9.835,0.42-13.083-5.064L317.539,284.256z"/>
|
||||
<polygon fill="#E58A7B" points="343.831,285.878 337.396,297.257 325.153,294.538 332.082,280.571 "/>
|
||||
<path fill="#263238" d="M326.969,175.819l3.075-0.319C330.043,175.5,328.135,177.515,326.969,175.819z"/>
|
||||
<path fill="#407BFF" d="M285.501,318.14l-0.495,5.574c-0.219,0.433,0.293,0.873,1.013,0.873h62.989
|
||||
c0.562,0,1.026-0.274,1.062-0.627l0.562-5.574c0.04-0.387-0.447-0.714-1.061-0.714h-63.056
|
||||
C286.051,317.672,285.642,317.862,285.501,318.14z"/>
|
||||
<g>
|
||||
<path fill="#263238" d="M293.971,325.19h-1.69c-0.336,0-0.593-0.173-0.57-0.384l0.793-7.243
|
||||
c0.023-0.211,0.318-0.385,0.653-0.385h1.689c0.336,0,0.593,0.174,0.57,0.385l-0.792,7.243
|
||||
C294.602,325.018,294.306,325.19,293.971,325.19z"/>
|
||||
<path fill="#263238" d="M344.263,325.19h-1.688c-0.336,0-0.592-0.173-0.569-0.384l0.792-7.243
|
||||
c0.023-0.211,0.317-0.385,0.654-0.385h1.688c0.335,0,0.591,0.174,0.568,0.385l-0.792,7.243
|
||||
C344.893,325.018,344.599,325.19,344.263,325.19z"/>
|
||||
<path fill="#263238" d="M319.115,325.19h-1.687c-0.337,0-0.593-0.173-0.57-0.384l0.792-7.243
|
||||
c0.023-0.211,0.316-0.385,0.654-0.385h1.689c0.335,0,0.592,0.174,0.568,0.385l-0.792,7.243
|
||||
C319.746,325.018,319.452,325.19,319.115,325.19z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#407BFF" d="M275.396,228.817c-6.239,1.896-13.731,23.377-13.731,23.377l20.114,19.637
|
||||
c0,0,12.914-20.265,10.294-28.329C289.342,235.106,282.516,226.652,275.396,228.817z"/>
|
||||
<path opacity="0.5" fill="#FFFFFF" d="M275.396,228.817c-6.239,1.896-13.731,23.377-13.731,23.377l20.114,19.637
|
||||
c0,0,12.914-20.265,10.294-28.329C289.342,235.106,282.516,226.652,275.396,228.817z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<rect x="492.458" y="306.48" fill="#407BFF" width="117.271" height="228.107"/>
|
||||
<rect x="492.458" y="306.48" opacity="0.6" fill="#FFFFFF" width="117.271" height="228.107"/>
|
||||
</g>
|
||||
<g>
|
||||
<rect x="265.283" y="306.48" fill="#407BFF" width="117.273" height="228.107"/>
|
||||
<rect x="265.283" y="306.48" opacity="0.6" fill="#FFFFFF" width="117.273" height="228.107"/>
|
||||
</g>
|
||||
<g>
|
||||
<rect x="604.454" y="306.48" fill="#407BFF" width="9.67" height="228.107"/>
|
||||
<rect x="604.454" y="306.48" opacity="0.3" width="9.67" height="228.107"/>
|
||||
</g>
|
||||
<g>
|
||||
<rect x="383.952" y="306.48" fill="#407BFF" width="233.165" height="17.109"/>
|
||||
<rect x="383.952" y="306.48" opacity="0.3" width="233.165" height="17.109"/>
|
||||
</g>
|
||||
<g>
|
||||
<rect x="377.278" y="306.48" fill="#407BFF" width="9.669" height="228.107"/>
|
||||
<rect x="377.278" y="306.48" opacity="0.3" width="9.669" height="228.107"/>
|
||||
</g>
|
||||
<g>
|
||||
<rect x="383.387" y="311.759" fill="#407BFF" width="225.9" height="49.283"/>
|
||||
<rect x="383.387" y="311.759" opacity="0.3" width="225.9" height="49.283"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#407BFF" d="M609.793,541.207H544.68c-9.188,0-16.664-7.478-16.664-16.669v-205.35
|
||||
c0-8.137-6.618-14.755-14.754-14.755h-19.471v-1.475h19.471c8.948,0,16.228,7.281,16.228,16.229v205.35
|
||||
c0,8.378,6.815,15.195,15.19,15.195h65.113c2.801,0,4.417-1.866,4.992-3.608c0.575-1.744,0.392-4.202-1.857-5.875l0.878-1.184
|
||||
c2.373,1.763,3.306,4.716,2.379,7.521C615.258,539.394,612.746,541.207,609.793,541.207z"/>
|
||||
<path opacity="0.3" d="M609.793,541.207H544.68c-9.188,0-16.664-7.478-16.664-16.669v-205.35
|
||||
c0-8.137-6.618-14.755-14.754-14.755h-19.471v-1.475h19.471c8.948,0,16.228,7.281,16.228,16.229v205.35
|
||||
c0,8.378,6.815,15.195,15.19,15.195h65.113c2.801,0,4.417-1.866,4.992-3.608c0.575-1.744,0.392-4.202-1.857-5.875l0.878-1.184
|
||||
c2.373,1.763,3.306,4.716,2.379,7.521C615.258,539.394,612.746,541.207,609.793,541.207z"/>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<rect x="617.809" y="373.784" fill="#407BFF" width="1.474" height="28.498"/>
|
||||
<rect x="617.809" y="373.784" opacity="0.3" width="1.474" height="28.498"/>
|
||||
</g>
|
||||
<g>
|
||||
<rect x="617.809" y="356.956" fill="#407BFF" width="1.474" height="7.492"/>
|
||||
<rect x="617.809" y="356.956" opacity="0.3" width="1.474" height="7.492"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<polygon fill="#407BFF" points="511.323,238.381 402.05,238.381 386.212,302.909 495.487,302.909 "/>
|
||||
<polygon opacity="0.4" fill="#FFFFFF" points="511.323,238.381 402.05,238.381 386.212,302.909 495.487,302.909 "/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon fill="#407BFF" points="389.569,302.909 389.127,306.477 346.237,306.477 346.68,302.909 "/>
|
||||
<polygon opacity="0.4" fill="#FFFFFF" points="389.569,302.909 389.127,306.477 346.237,306.477 346.68,302.909 "/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon fill="#407BFF" points="498.849,302.909 498.408,306.477 389.127,306.477 389.569,302.909 "/>
|
||||
<polygon opacity="0.5" points="498.849,302.909 498.408,306.477 389.127,306.477 389.569,302.909 "/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon fill="#407BFF" points="514.688,238.381 405.411,238.381 389.575,302.909 498.849,302.909 "/>
|
||||
<polygon opacity="0.5" points="514.688,238.381 405.411,238.381 389.575,302.909 498.849,302.909 "/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#407BFF" d="M556.896,290.219c0,0-16.081-27.722,6.229-49.789c0,0,5.824,3.795,5.733,8.897
|
||||
c-0.089,5.103-6.234,6.393-4.913,10.651c1.318,4.258,7.122,8.436,3.313,11.956c-3.808,3.519,0.613,6.653,0.358,10.966
|
||||
C567.355,287.212,556.896,290.219,556.896,290.219z"/>
|
||||
<g>
|
||||
<path fill="#407BFF" d="M558.113,292.752c0,0,6.522-31.377-21.609-45.284c0,0-4.33,5.438-2.636,10.251
|
||||
c1.694,4.814,7.933,4.102,8.023,8.559c0.089,4.457-4.101,10.251,0.625,12.391c4.725,2.139,1.515,6.506,3.116,10.518
|
||||
C547.241,293.198,558.113,292.752,558.113,292.752z"/>
|
||||
<path opacity="0.5" d="M558.113,292.752c0,0,6.522-31.377-21.609-45.284c0,0-4.33,5.438-2.636,10.251
|
||||
c1.694,4.814,7.933,4.102,8.023,8.559c0.089,4.457-4.101,10.251,0.625,12.391c4.725,2.139,1.515,6.506,3.116,10.518
|
||||
C547.241,293.198,558.113,292.752,558.113,292.752z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#407BFF" d="M533.477,285.799c0,0,0.532,20.682,21.036,20.682c20.503,0,21.039-20.682,21.039-20.682H533.477z"/>
|
||||
<path opacity="0.5" d="M533.477,285.799c0,0,0.532,20.682,21.036,20.682c20.503,0,21.039-20.682,21.039-20.682H533.477z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<polygon fill="#407BFF" points="423.258,150.584 405.745,127.963 388.232,150.583 396.473,150.583 396.473,179.876
|
||||
415.017,179.876 415.017,150.584 "/>
|
||||
<g>
|
||||
<path fill="#407BFF" d="M474.638,177.193c0-10.94,4.36-21.449,12.091-29.18c7.731-7.73,18.238-12.092,29.181-12.092v10.768
|
||||
c-16.843,0-30.506,13.661-30.506,30.504H474.638z"/>
|
||||
<g>
|
||||
<path fill="#407BFF" d="M474.638,177.193h10.766c0,16.857,13.663,30.504,30.506,30.504c5.555,0,10.766-1.482,15.245-4.087
|
||||
l5.384,9.328c-19.607,11.314-45.043,4.491-56.374-15.116C476.552,191.561,474.638,184.434,474.638,177.193z"/>
|
||||
<path opacity="0.5" fill="#FFFFFF" d="M474.638,177.193h10.766c0,16.857,13.663,30.504,30.506,30.504
|
||||
c5.555,0,10.766-1.482,15.245-4.087l5.384,9.328c-19.607,11.314-45.043,4.491-56.374-15.116
|
||||
C476.552,191.561,474.638,184.434,474.638,177.193z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#407BFF" d="M515.909,146.689v-10.768c22.788,0,41.271,18.484,41.271,41.272c0,15.274-8.305,28.619-20.643,35.745
|
||||
l-5.384-9.328c9.125-5.255,15.261-15.116,15.261-26.417C546.415,160.35,532.752,146.689,515.909,146.689z"/>
|
||||
<path opacity="0.7" d="M515.909,146.689v-10.768c22.788,0,41.271,18.484,41.271,41.272c0,15.274-8.305,28.619-20.643,35.745
|
||||
l-5.384-9.328c9.125-5.255,15.261-15.116,15.261-26.417C546.415,160.35,532.752,146.689,515.909,146.689z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#263238" d="M477.146,75.948h-37.604c-2.791,0-5.051,2.261-5.051,5.051v69.498c0,2.791,2.26,5.051,5.051,5.051
|
||||
h48.127c2.792,0,5.052-2.261,5.052-5.051V91.522L477.146,75.948z"/>
|
||||
<g>
|
||||
<path fill="#407BFF" d="M474.941,148.593h-31.288c-1.215,0-2.206-0.993-2.206-2.206l0,0c0-1.212,0.991-2.206,2.206-2.206
|
||||
h31.288c1.212,0,2.205,0.994,2.205,2.206l0,0C477.146,147.601,476.153,148.593,474.941,148.593z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#407BFF" d="M460.201,87.314h-16.548c-1.215,0-2.206-0.992-2.206-2.206l0,0c0-1.212,0.991-2.206,2.206-2.206h16.548
|
||||
c1.212,0,2.205,0.993,2.205,2.206l0,0C462.406,86.322,461.413,87.314,460.201,87.314z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#407BFF" d="M470.997,96.068h-27.344c-1.215,0-2.206-0.993-2.206-2.206l0,0c0-1.212,0.991-2.205,2.206-2.205h27.344
|
||||
c1.212,0,2.205,0.993,2.205,2.205l0,0C473.202,95.076,472.209,96.068,470.997,96.068z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#407BFF" d="M483.56,104.822h-39.906c-1.215,0-2.206-0.993-2.206-2.206l0,0c0-1.213,0.991-2.206,2.206-2.206h39.906
|
||||
c1.215,0,2.206,0.993,2.206,2.206l0,0C485.766,103.83,484.774,104.822,483.56,104.822z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#407BFF" d="M483.56,113.577h-23.2c-1.212,0-2.205-0.993-2.205-2.206l0,0c0-1.213,0.993-2.206,2.205-2.206h23.2
|
||||
c1.215,0,2.206,0.993,2.206,2.206l0,0C485.766,112.584,484.774,113.577,483.56,113.577z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#407BFF" d="M449.721,113.577h-6.067c-1.215,0-2.206-0.993-2.206-2.206l0,0c0-1.213,0.991-2.206,2.206-2.206h6.067
|
||||
c1.214,0,2.205,0.993,2.205,2.206l0,0C451.926,112.584,450.935,113.577,449.721,113.577z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#407BFF" d="M483.56,122.331h-39.906c-1.215,0-2.206-0.993-2.206-2.206l0,0c0-1.213,0.991-2.206,2.206-2.206h39.906
|
||||
c1.215,0,2.206,0.993,2.206,2.206l0,0C485.766,121.338,484.774,122.331,483.56,122.331z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#407BFF" d="M468.16,131.085h-24.507c-1.215,0-2.206-0.992-2.206-2.206l0,0c0-1.214,0.991-2.206,2.206-2.206h24.507
|
||||
c1.214,0,2.207,0.992,2.207,2.206l0,0C470.367,130.093,469.374,131.085,468.16,131.085z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#407BFF" d="M483.56,131.085h-6.54c-1.214,0-2.205-0.992-2.205-2.206l0,0c0-1.214,0.991-2.206,2.205-2.206h6.54
|
||||
c1.215,0,2.206,0.992,2.206,2.206l0,0C485.766,130.093,484.774,131.085,483.56,131.085z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#407BFF" d="M483.56,139.839h-39.906c-1.215,0-2.206-0.993-2.206-2.206l0,0c0-1.213,0.991-2.206,2.206-2.206h39.906
|
||||
c1.215,0,2.206,0.993,2.206,2.206l0,0C485.766,138.846,484.774,139.839,483.56,139.839z"/>
|
||||
</g>
|
||||
<g>
|
||||
<g opacity="0.5">
|
||||
<path fill="#FFFFFF" d="M474.941,148.593h-31.288c-1.215,0-2.206-0.993-2.206-2.206l0,0c0-1.212,0.991-2.206,2.206-2.206
|
||||
h31.288c1.212,0,2.205,0.994,2.205,2.206l0,0C477.146,147.601,476.153,148.593,474.941,148.593z"/>
|
||||
</g>
|
||||
<g opacity="0.5">
|
||||
<path fill="#FFFFFF" d="M460.201,87.314h-16.548c-1.215,0-2.206-0.992-2.206-2.206l0,0c0-1.212,0.991-2.206,2.206-2.206
|
||||
h16.548c1.212,0,2.205,0.993,2.205,2.206l0,0C462.406,86.322,461.413,87.314,460.201,87.314z"/>
|
||||
</g>
|
||||
<g opacity="0.5">
|
||||
<path fill="#FFFFFF" d="M470.997,96.068h-27.344c-1.215,0-2.206-0.993-2.206-2.206l0,0c0-1.212,0.991-2.205,2.206-2.205
|
||||
h27.344c1.212,0,2.205,0.993,2.205,2.205l0,0C473.202,95.076,472.209,96.068,470.997,96.068z"/>
|
||||
</g>
|
||||
<g opacity="0.5">
|
||||
<path fill="#FFFFFF" d="M483.56,104.822h-39.906c-1.215,0-2.206-0.993-2.206-2.206l0,0c0-1.213,0.991-2.206,2.206-2.206
|
||||
h39.906c1.215,0,2.206,0.993,2.206,2.206l0,0C485.766,103.83,484.774,104.822,483.56,104.822z"/>
|
||||
</g>
|
||||
<g opacity="0.5">
|
||||
<path fill="#FFFFFF" d="M483.56,113.577h-23.2c-1.212,0-2.205-0.993-2.205-2.206l0,0c0-1.213,0.993-2.206,2.205-2.206h23.2
|
||||
c1.215,0,2.206,0.993,2.206,2.206l0,0C485.766,112.584,484.774,113.577,483.56,113.577z"/>
|
||||
</g>
|
||||
<g opacity="0.5">
|
||||
<path fill="#FFFFFF" d="M449.721,113.577h-6.067c-1.215,0-2.206-0.993-2.206-2.206l0,0c0-1.213,0.991-2.206,2.206-2.206h6.067
|
||||
c1.214,0,2.205,0.993,2.205,2.206l0,0C451.926,112.584,450.935,113.577,449.721,113.577z"/>
|
||||
</g>
|
||||
<g opacity="0.5">
|
||||
<path fill="#FFFFFF" d="M483.56,122.331h-39.906c-1.215,0-2.206-0.993-2.206-2.206l0,0c0-1.213,0.991-2.206,2.206-2.206
|
||||
h39.906c1.215,0,2.206,0.993,2.206,2.206l0,0C485.766,121.338,484.774,122.331,483.56,122.331z"/>
|
||||
</g>
|
||||
<g opacity="0.5">
|
||||
<path fill="#FFFFFF" d="M468.16,131.085h-24.507c-1.215,0-2.206-0.992-2.206-2.206l0,0c0-1.214,0.991-2.206,2.206-2.206
|
||||
h24.507c1.214,0,2.207,0.992,2.207,2.206l0,0C470.367,130.093,469.374,131.085,468.16,131.085z"/>
|
||||
</g>
|
||||
<g opacity="0.5">
|
||||
<path fill="#FFFFFF" d="M483.56,131.085h-6.54c-1.214,0-2.205-0.992-2.205-2.206l0,0c0-1.214,0.991-2.206,2.205-2.206h6.54
|
||||
c1.215,0,2.206,0.992,2.206,2.206l0,0C485.766,130.093,484.774,131.085,483.56,131.085z"/>
|
||||
</g>
|
||||
<g opacity="0.5">
|
||||
<path fill="#FFFFFF" d="M483.56,139.839h-39.906c-1.215,0-2.206-0.993-2.206-2.206l0,0c0-1.213,0.991-2.206,2.206-2.206
|
||||
h39.906c1.215,0,2.206,0.993,2.206,2.206l0,0C485.766,138.846,484.774,139.839,483.56,139.839z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#407BFF" d="M477.146,75.948v10.523c0,2.791,2.264,5.051,5.052,5.051h10.522L477.146,75.948z"/>
|
||||
<path opacity="0.5" fill="#FFFFFF" d="M477.146,75.948v10.523c0,2.791,2.264,5.051,5.052,5.051h10.522L477.146,75.948z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 72 KiB |
966
hotgo-uniapp/static/jeesite/banner/2.svg
Normal file
@@ -0,0 +1,966 @@
|
||||
<svg version="1.1" id="Layer_1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="1394.93px" height="653.968px" viewBox="0 0 1394.93 653.968" enable-background="new 0 0 1394.93 653.968"
|
||||
xml:space="preserve">
|
||||
<g>
|
||||
<g>
|
||||
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="102.7437" y1="532.6035" x2="1163.6865" y2="532.6035">
|
||||
<stop offset="1.500000e-007" style="stop-color:#EFF6FF"/>
|
||||
<stop offset="1" style="stop-color:#C4D8FB"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_1_)" d="M656.885,484.053c-227.545,0-412.01,21.736-412.01,48.55c0,26.81,184.465,48.552,412.01,48.552
|
||||
c227.54,0,412.004-21.742,412.004-48.552C1068.89,505.789,884.425,484.053,656.885,484.053z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#333242" d="M687.997,15.528h-31.7v507.605h31.7c62.009,0,112.267-113.63,112.267-253.799
|
||||
C800.264,129.164,750.006,15.528,687.997,15.528z"/>
|
||||
<path fill="#42445D" d="M656.297,358.715h136.802c3.052-18.356,5.201-37.718,6.303-57.812H656.297V358.715z"/>
|
||||
<path fill="#42445D" d="M656.297,523.133h31.7c42.116,0,78.805-52.42,98.018-129.975H656.297V523.133z"/>
|
||||
<path fill="#FFFFFF" d="M653.171,15.528c-62.008,0-112.267,113.636-112.267,253.806c0,140.169,50.258,253.799,112.267,253.799
|
||||
c62.003,0,112.273-113.63,112.273-253.799C765.444,129.164,715.175,15.528,653.171,15.528z"/>
|
||||
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="554.5884" y1="269.3345" x2="733.8267" y2="269.3345">
|
||||
<stop offset="0" style="stop-color:#FDB522"/>
|
||||
<stop offset="1" style="stop-color:#FB6B14"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_2_)" d="M644.208,66.733c-49.49,0-89.619,90.708-89.619,202.601c0,111.892,40.129,202.602,89.619,202.602
|
||||
c49.492,0,89.619-90.71,89.619-202.602C733.827,157.442,693.7,66.733,644.208,66.733z"/>
|
||||
<ellipse fill="#FFFFFF" cx="634.309" cy="269.334" rx="63.792" ry="144.217"/>
|
||||
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="586.2168" y1="269.3311" x2="670.4678" y2="269.3311">
|
||||
<stop offset="0" style="stop-color:#FDB522"/>
|
||||
<stop offset="1" style="stop-color:#FB6B14"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_3_)" d="M628.34,174.107c-23.26,0-42.123,42.635-42.123,95.227c0,52.586,18.863,95.221,42.123,95.221
|
||||
c23.267,0,42.128-42.635,42.128-95.221C670.468,216.742,651.606,174.107,628.34,174.107z"/>
|
||||
<path fill="#FFFFFF" d="M622.537,226.687c-10.423,0-18.869,19.095-18.869,42.647c0,23.553,8.446,42.646,18.869,42.646
|
||||
c10.416,0,18.861-19.094,18.861-42.646C641.398,245.782,632.953,226.687,622.537,226.687z"/>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#333242" d="M950.527,469.999l-46.699-0.184c-4.964,0-9.594,4.137-10.321,9.231l-16.785,131.998h10.114
|
||||
l16.207-131.975c0.428-2.994-0.94-6.006,1.976-6.006l44.492,1.095c2.917,0,5.743,2.536,6.172,5.53l16.666,131.355h6.16
|
||||
L962.82,479.047C962.087,473.952,955.479,469.999,950.527,469.999z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#42445D" d="M946.654,469.815h-45.689c-4.958,0-9.57,4.148-10.267,9.255l-16.803,131.975h4.238l16.713-131.361
|
||||
c0.412-2.994,3.214-5.524,6.118-5.524h45.689c2.91,0,5.714,2.53,6.124,5.524l16.713,131.361h4.232L956.927,479.07
|
||||
C956.225,473.964,951.623,469.815,946.654,469.815z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#333242" d="M856.985,469.511h-55.799c-4.958,0-9.589,4.291-10.314,9.56l-22.44,131.975h7.826L800.4,479.089
|
||||
c0.429-3.095,4.428-5.071,7.338-5.071h48.053c2.909,0,5.736,2.619,6.166,5.714l16.659,131.313h6.166L869.099,479.07
|
||||
C868.366,473.802,861.945,469.511,856.985,469.511z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#42445D" d="M852.005,469.511h-54.609c-4.916,0-9.673,4.222-10.608,9.405l-22.153,132.129h4.312L790.9,479.772
|
||||
c0.566-3.119,3.543-5.755,6.495-5.755h54.609c2.91,0,5.731,2.619,6.155,5.714l16.67,131.313h4.238l-16.767-131.968
|
||||
C861.581,473.802,856.957,469.511,852.005,469.511z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="788.3457" y1="421.0078" x2="788.3457" y2="460.5998">
|
||||
<stop offset="2.500000e-007" style="stop-color:#EFF6FF"/>
|
||||
<stop offset="1" style="stop-color:#8AA8DA"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_4_)" d="M797.563,466.81c-1.406,0.031-2.598,0.048-3.376,0.054c-0.101-0.042-2.595-1.155-5.672-17.022
|
||||
c-1.834-9.464-3.179-20.345-4.065-27.546c-0.357-2.898-0.636-5.185-0.846-6.446l-0.346-2.15l-4.129,0.715l0.343,2.15
|
||||
c0.192,1.184,0.472,3.433,0.817,6.284c4.411,35.701,8.021,48.354,13.825,48.354c0.822,0,2.036-0.017,3.448-0.047V466.81z"/>
|
||||
</g>
|
||||
<g>
|
||||
<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="828.3174" y1="418.4063" x2="828.3174" y2="469.9689">
|
||||
<stop offset="0" style="stop-color:#8AA8DA"/>
|
||||
<stop offset="1" style="stop-color:#EFF6FF"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_5_)" d="M792.294,448.828c-1.832-9.386-3.179-20.177-4.064-27.307c-0.357-2.823-0.633-5.048-0.834-6.298
|
||||
l-4.132,0.721c0.192,1.166,0.466,3.356,0.804,6.13c4.411,35.396,8.03,47.944,13.839,47.944h75.466v-4.353l-75.395,0.006
|
||||
C797.872,465.639,795.383,464.559,792.294,448.828z"/>
|
||||
</g>
|
||||
</g>
|
||||
<rect x="889.704" y="465.739" fill="#B7CCE7" width="56.818" height="6.595"/>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#42445D" d="M876.063,449.941c-2.001-9.958-3.523-21.528-4.436-28.444c-0.333-2.523-1.125-7.799-1.125-7.799
|
||||
l-4.13,0.715c0,0,0.773,5.186,1.1,7.673c4.899,37.146,8.722,50.307,14.589,50.307h2.096l0.09-4.333h-2.096
|
||||
C881.878,467.952,879.384,466.542,876.063,449.941z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#B7CCE7" d="M879.551,449.245c-1.833-9.471-3.178-20.355-4.064-27.564c-0.357-2.897-0.645-5.189-0.846-6.457
|
||||
l-4.138,0.721c0.197,1.178,0.471,3.435,0.822,6.292c4.415,35.716,8.027,48.371,13.82,48.371l0.083-4.339
|
||||
C885.122,466.227,882.628,465.114,879.551,449.245z"/>
|
||||
</g>
|
||||
</g>
|
||||
<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="814.3584" y1="343.9985" x2="814.3584" y2="388.2994">
|
||||
<stop offset="1.500000e-007" style="stop-color:#EFF6FF"/>
|
||||
<stop offset="1" style="stop-color:#C4D8FB"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_6_)" d="M845.785,333.509h-77.947c-7.946,0-13.493,6.088-12.327,13.529l11.01,70.41
|
||||
c0,0,11.381,5.179,45.522,5.179c34.14,0,61.317-5.179,61.317-5.179l-11.018-70.41
|
||||
C861.182,339.598,853.724,333.509,845.785,333.509z"/>
|
||||
<path fill="#0D5BD9" d="M852.934,333.509h-77.954c-7.94,0-13.492,6.088-12.326,13.529l11.018,70.41
|
||||
c0,0,11.378,5.179,45.521,5.179c34.146,0,61.316-5.179,61.316-5.179l-11.018-70.41
|
||||
C868.324,339.598,860.874,333.509,852.934,333.509z"/>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#0D5BD9" d="M883.479,457.411H792.8c-3.976,0-7.201,3.345-7.201,7.477c0,4.124,3.226,7.463,7.201,7.463h90.68
|
||||
c3.97,0,7.195-3.339,7.195-7.463C890.675,460.756,887.449,457.411,883.479,457.411z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#0A429F" d="M960.479,457.411h-90.686c-3.969,0-7.189,3.345-7.189,7.477c0,4.124,3.221,7.463,7.189,7.463h90.686
|
||||
c3.976,0,7.195-3.339,7.195-7.463C967.675,460.756,964.455,457.411,960.479,457.411z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFCAB8" d="M929.75,459.196c-10.751-20.367-83.132-36.658-83.132-36.658
|
||||
s-11.101,26.165-9.507,31.374c1.828,5.957,63.693,19.158,64.76,24.67c1.487,5.811-0.466,10.755-0.691,15.994
|
||||
c-1.161,26.729,7.519,44.521,4.911,65.168c-0.847,6.737-3.148,6.506-3.679,9.441c-0.72,3.957,1.215,8.355,1.019,16.021
|
||||
c-0.251,9.93-3.542,20.481-0.995,25.577c1.638,3.279,11.362,11.517,15.767,10.832c5.103-0.797,3.27-9.714,3.119-13.522
|
||||
c-0.148-3.728-3.935-30.961-4.088-33.117C916.631,567.029,937.938,474.72,929.75,459.196z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFC3AB" d="M857.557,419.675c0,0-22.039,29.028-20.445,34.237
|
||||
c1.828,5.957,63.693,19.158,64.76,24.67c1.487,5.811-0.466,10.755-0.691,15.994c-1.161,26.729,7.519,44.521,4.911,65.168
|
||||
c-0.847,6.737-3.148,6.506-3.679,9.441c-0.72,3.962,1.215,8.355,1.019,16.021c-0.251,9.93-3.542,20.481-0.995,25.577
|
||||
c1.59,3.172,10.713,10.95,15.304,10.844c-8.293-10.541-10.506-22.23-8.263-35.35c2.437-14.308,1.364-26.246,0.375-40.514
|
||||
c-1.011-14.584,0.727-28.861,7.334-41.485c6.809-13.019,7.333-24.695,7.333-38.963c0-3.826,1.202-6.881,3.094-9.184
|
||||
C911.798,437.216,857.557,419.675,857.557,419.675z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M921.006,604.777c-1.041,1.279-1.976,3.452-3.778,3.737
|
||||
c-9.09,1.417-13.976-14.147-14.478-15.374c-0.909,7.215-2.184,13.897-0.314,17.643c1.638,3.279,11.362,11.517,15.767,10.832
|
||||
c5.103-0.797,3.27-9.714,3.119-13.522C921.298,607.515,921.179,606.313,921.006,604.777z"/>
|
||||
<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="914.1494" y1="621.6553" x2="914.1494" y2="604.7773">
|
||||
<stop offset="0" style="stop-color:#8AA8DA"/>
|
||||
<stop offset="1" style="stop-color:#EFF6FF"/>
|
||||
</linearGradient>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="url(#SVGID_7_)" d="M921.006,604.777c-1.041,1.279-1.976,3.452-3.778,3.737
|
||||
c-1.066,0.161-2.073,0.083-3.024-0.171c0.263,0.945,0.416,1.98,0.422,3.189c0.014,2.75-3.1,4.673-5.558,4.416
|
||||
c-0.835-0.083-1.691-0.273-2.531-0.524c3.672,3.292,8.798,6.638,11.666,6.19c5.103-0.797,3.27-9.714,3.119-13.522
|
||||
C921.298,607.515,921.179,606.313,921.006,604.777z"/>
|
||||
<g>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFCAB8" d="M898.264,424.443c-11.958,15.981-8.154,71.043-14.499,90.858
|
||||
c-2.076,6.463-4.292,5.819-5.357,8.606c-1.428,3.762-0.338,8.433-1.939,15.939c-2.072,9.713-7.237,19.48-5.672,24.955
|
||||
c1.01,3.523,9.051,13.411,13.51,13.542c5.167,0.153,4.994-8.946,5.549-12.72c0.535-3.69,1.825-31.159,2.059-33.302
|
||||
c0.868-7.927,32.182-73.459,35.426-94.017C930.416,418.813,905.03,415.396,898.264,424.443z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" d="M885.747,565.291c-9.19-0.279-11.131-16.481-11.405-17.784
|
||||
c-2.213,6.934-4.695,13.278-3.546,17.296c1.01,3.523,9.051,13.411,13.51,13.542c5.167,0.153,4.994-8.946,5.549-12.72
|
||||
c0.082-0.577,0.178-1.769,0.29-3.309C888.895,563.374,887.573,565.338,885.747,565.291z"/>
|
||||
<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="882.0557" y1="578.3467" x2="882.0557" y2="562.3164">
|
||||
<stop offset="0" style="stop-color:#8AA8DA"/>
|
||||
<stop offset="1" style="stop-color:#EFF6FF"/>
|
||||
</linearGradient>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="url(#SVGID_8_)" d="M885.747,565.291c-1.07-0.035-2.048-0.302-2.935-0.726
|
||||
c0.078,0.977,0.042,2.031-0.173,3.22c-0.5,2.691-3.906,4.012-6.274,3.314c-0.804-0.243-1.613-0.583-2.397-0.98
|
||||
c3.012,3.904,7.434,8.142,10.338,8.226c5.167,0.153,4.994-8.946,5.549-12.72c0.082-0.577,0.178-1.769,0.29-3.309
|
||||
C888.895,563.374,887.573,565.338,885.747,565.291z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#C3391C" d="M858.569,205.528c-8.107,0-14.678,6.571-14.678,14.683
|
||||
c0,8.107,6.57,14.678,14.678,14.678c8.106,0,14.685-6.571,14.685-14.678C873.254,212.099,866.676,205.528,858.569,205.528z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FD4B1B" d="M860.938,229.563c-15.058,0-15.083-23.409,0-23.409
|
||||
c0.862,0,1.655,0.095,2.411,0.244c-1.501-0.524-3.103-0.869-4.78-0.869c-8.107,0-14.678,6.571-14.678,14.683
|
||||
c0,8.107,6.57,14.678,14.678,14.678c8.106,0,14.685-6.571,14.685-14.678c0-2.625-0.745-5.059-1.959-7.196
|
||||
C874.051,219.92,870.629,229.563,860.938,229.563z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#C3391C" d="M865.33,202.535c-4.91-2.887-10.618-3.167-15.552-1.273
|
||||
c3.893-0.561,7.999,0.137,11.66,2.285c8.57,5.035,11.434,16.064,6.397,24.635c-2.148,3.661-5.396,6.268-9.076,7.672
|
||||
c5.231-0.75,10.089-3.773,12.976-8.689C876.77,218.599,873.901,207.57,865.33,202.535z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFCAB8" d="M960.004,381.071c-4.977-0.214-0.816-4.047-4.977-3.679
|
||||
c-4.512,0.393-8.612,1.667-12.296,5.233c-1.744,1.677-3.477,1.998-5.583,2.147c-9.012,0.625-19.845-6.001-36.951-6.846
|
||||
c-5.784-0.291-11.38-1.725-17.248-2.213c-0.196,1.423-4.838,12.511-2.756,13.41c11.273,4.875,21.904,4.357,29.6,5.024
|
||||
c8.821,0.762,16.945-0.703,29.259,0c9.41,0.541,14.91-0.179,18.387,0.089c3.256,0.249,4.994-0.655,4.863-3.138
|
||||
c1.749-0.154,3.088-1.613,2.826-3.457c1.894-0.101,2.571-1.995,1.905-3.287c3.023-0.125,5.647-0.379,4.904-2.647
|
||||
C971.575,380.595,962.951,381.202,960.004,381.071z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFC3AB" d="M960.004,381.071c-0.696-0.024-1.16-0.15-1.548-0.298
|
||||
c-1.763,2.084-4.464,3.178-7.379,3.512c-8.293,8.101-17.893,7.934-29.614,6.34c-7.296-0.996-12.985-1.663-20.17-3.125
|
||||
c-7.113-1.447-14.147-1.881-20.88-3.834c-0.744,2.668-1.144,5.059-0.22,5.458c11.273,4.875,21.904,4.357,29.6,5.024
|
||||
c8.821,0.762,16.945-0.703,29.259,0c9.41,0.541,14.91-0.179,18.387,0.089c3.256,0.249,4.994-0.655,4.863-3.138
|
||||
c1.749-0.154,3.088-1.613,2.826-3.457c1.894-0.101,2.571-1.995,1.905-3.287c3.023-0.125,5.647-0.379,4.904-2.647
|
||||
C971.575,380.595,962.951,381.202,960.004,381.071z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFCAB8" d="M946.845,379.56l5.355,1.071
|
||||
c1.738-0.424,4.125-1.506,5.779-3.524c3.315-0.357,5.179-2.125,5.209-4.548c-4.061,1.565-6.055,1.828-7.793,2.121L946.845,379.56
|
||||
z"/>
|
||||
<g>
|
||||
<g>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFCAB8" d="M969.759,380.852c-3.398,0.143-4.221,0.189-7.601,0.611
|
||||
c-3.202,0.398-2.565,1.936-0.32,2.078c2.91,0.189,5.005,0.214,7.963-0.012c1.66-0.125,1.976-0.803,2.036-1.453
|
||||
C971.907,381.409,971.104,380.79,969.759,380.852z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFCAB8" d="M965.836,384.166c-3.379,0.167-6.517-0.042-9.916,0.143
|
||||
c-3.214,0.172-2.647,1.626-0.421,1.958c2.885,0.441,6.654,0.65,9.617,0.637c1.666,0,2.023-0.708,2.132-1.398
|
||||
C967.359,384.797,967.181,384.102,965.836,384.166z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFCAB8" d="M963.777,387.548c-3.041,0.017-5.655-0.341-8.708-0.311
|
||||
c-2.894,0.023-2.595,1.655-0.601,2.09c2.582,0.564,5.963,0.946,8.611,1.077c1.5,0.064,1.821-0.625,1.936-1.298
|
||||
C965.122,388.398,964.974,387.548,963.777,387.548z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFCAB8" d="M961.241,390.826c-3.035,0.019-4.554-0.064-7.605-0.037
|
||||
c-2.882,0.025-2.395,1.501-0.405,1.937c2.589,0.563,4.679,0.678,7.333,0.804c1.494,0.07,1.821-0.614,1.928-1.298
|
||||
C962.6,391.529,962.444,390.826,961.241,390.826z"/>
|
||||
</g>
|
||||
</g>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#C3391C" d="M860.104,222.801c-8.82-1.958-23.713-2.148-33.408,12.607
|
||||
c-12.762,19.421-0.173,52.973,22.351,52.973c17.069,0,30.319-8.607,33.205-23.16
|
||||
C883.723,257.805,891.282,229.693,860.104,222.801z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FD4B1B" d="M870.408,275.315c-6.529,2.167-14.012,0.322-19.82-2.934
|
||||
c-5.625-3.154-10.559-8.63-12.138-15c-1.476-5.982-0.976-11.749,1.395-17.374c2.523-5.97,6.594-10.583,12.492-13.321
|
||||
c2.196-1.671,4.668-2.963,7.148-3.522c0.382-0.089,0.78-0.155,1.18-0.227c-0.19-0.041-0.363-0.095-0.561-0.137
|
||||
c-8.82-1.958-23.713-2.148-33.408,12.607c-12.762,19.421-0.173,52.973,22.351,52.973c15.795,0,28.295-7.38,32.373-20.005
|
||||
c-0.203,0.214-0.394,0.482-0.602,0.678C877.807,271.964,874.384,273.994,870.408,275.315z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFCAB8" d="M885.65,314.391c-3.935-1.995-12.611-3.423-17.689-5.393
|
||||
c-8.791-3.411-7.254-11.137-5.23-22.022l-16.244-5.719c-1.554,11.582,1.124,24.832-10.826,21.552
|
||||
c-14.249-3.91-28.087,3.458-30.522,10.32l70.974,38.171c0,12.934,0.619,26.695,3.694,37.355l12.953-6.952
|
||||
C892.759,369.061,901.472,322.402,885.65,314.391z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFCAB8" d="M783.829,369.939h14.303
|
||||
c7.679-7.999,25.523-48.134,25.523-48.134l-16.857-11.111C796.538,324.766,787.747,354.371,783.829,369.939z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFC3AB" d="M783.829,369.939l3.43-1.021c-1.429-2.12,1.041-8.186,3.047-11
|
||||
c5.607-7.916,5.214-12.665,9.553-21.213c3.87-7.642,8.733-14.665,12.548-22.313l-5.608-3.697
|
||||
C796.538,324.766,787.747,354.371,783.829,369.939z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFC3AB" d="M835.66,302.808c-7.856-2.155-13.444-2.292-17.624,1.137
|
||||
c3.351-1.047,7.023-1.339,10.137-0.953c4.79,0.583,8.576,5.357,12.725,5.863c7.679,0.946,16.387-9.267,20.772-15.874
|
||||
c0.293-1.88,0.661-3.881,1.061-6.006l-16.244-5.719C844.933,292.838,847.61,306.088,835.66,302.808z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFC3AB" d="M883.176,352.912c-0.453,0.756-4.887,5.195-6.928,5.934
|
||||
c0.165,10.736,1.094,21.266,3.558,29.808l6.804-3.453c-1.911-7.368-2.792-16.23-3.005-24.254
|
||||
C883.532,358.174,883.354,355.512,883.176,352.912z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFCAB8" d="M859.558,235.39c-5.887-1.036-10.499-0.405-14.076,1.398
|
||||
c-8.023,3.982-10.834,13.845-10.733,24.409c0,0.47,0,0.935,0.031,1.441c0.231,6.987,0.81,11.702,2.237,15.51
|
||||
c1.275,3.382,9.999,15.589,17.262,15.619c6.654,0,16.01-10.934,17.553-13.476c3.173-5.35,3.607-11.267,4.143-18.088
|
||||
C876.908,250.103,873.736,237.895,859.558,235.39z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFC3AB" d="M845.481,236.788c-8.023,3.982-10.834,13.845-10.733,24.409
|
||||
c23.269-1.13,29.792-23.135,29.792-23.135C856.617,235.42,850.361,235.354,845.481,236.788z"/>
|
||||
<linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="802.0596" y1="437.0996" x2="920.8213" y2="437.0996">
|
||||
<stop offset="0" style="stop-color:#FB6B14"/>
|
||||
<stop offset="1" style="stop-color:#FDB522"/>
|
||||
</linearGradient>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="url(#SVGID_9_)" d="M804.633,405.892
|
||||
c-15.798,57.716,45.698,55.752,60.954,62.417c8.713-10.684,33.873-49.759,55.234-45.771
|
||||
c-11.386-10.706-42.497-16.428-42.497-16.428C855.434,405.892,822.222,410.61,804.633,405.892z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFB725" d="M896.233,417.223c-11.713,6.322-15.868,14.399-23.741,24.083
|
||||
c-4.168,5.132-10.108,19.099-17.059,16.665c-9.422-3.286-4.982-16.225-8.565-18.313c-3.513-2.048-17.624-1.013-21.237-3.881
|
||||
c-11.54-9.174-14.623-28.177-20.998-29.885c-15.798,57.716,45.698,55.752,60.954,62.417
|
||||
c8.713-10.684,33.873-49.759,55.234-45.771c-3.059-2.88-7.563-5.392-12.494-7.54
|
||||
C904.603,414.628,900.764,414.771,896.233,417.223z"/>
|
||||
<linearGradient id="SVGID_10_" gradientUnits="userSpaceOnUse" x1="804.4609" y1="357.9941" x2="897.6338" y2="357.9941">
|
||||
<stop offset="0" style="stop-color:#FB6B14"/>
|
||||
<stop offset="1" style="stop-color:#FDB522"/>
|
||||
</linearGradient>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="url(#SVGID_10_)" d="M874.925,310.665l-20.309,6.35
|
||||
c0,0-13.844-9.874-20.908-16.266c0,0-18.914-2.613-27.695,7.005c-4.987,5.458,5.863,14.018,4.328,27.224
|
||||
c-2.584,22.255-6.928,55.372-5.649,71.319c1.221,15.069,74.192,9.563,76.02-0.966c1.161-6.719-3.797-6.679-4.482-18.737
|
||||
c-0.333-5.583-0.102-16.646,1.578-26.749c4.381-3.577,7.553-8.814,7.553-14.807c0-9.112,13.058-8.286,12.237-14.653
|
||||
C895.15,311.379,874.925,310.665,874.925,310.665z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFB725" d="M854.616,317.015c0,0-13.844-9.874-20.908-16.266
|
||||
c0,0-18.914-2.613-27.695,7.005c-4.987,5.458,5.863,14.018,4.328,27.224c-2.584,22.255-6.928,55.372-5.649,71.319
|
||||
c0.959,11.824,50.027,10.914,69.329,4.218c-3.839-1.665-10.493-3.665-14.61-3.719c-17.036-0.232-26.405-7.589-35.827-14.784
|
||||
c-5.064-3.864-1.63-7.553,3.506-3.633c5.678,4.333,22.308,11.292,22.308,4.28c0-16.54,17.762-29.653,13.601-34.276
|
||||
c-4.975-5.543-11.285-21.124-1.76-23.844c4.492-1.28,5.355-4.525,5.278-5.37c-0.613-6.82,5.882-11.194,11.702-11.702
|
||||
c3.202-0.279,6.601-2.863,8.23-3.481c-5.75-3.09-11.523-3.321-11.523-3.321L854.616,317.015z M849.458,362.56
|
||||
c-7.09,1.197-17.316-6.167-20.415-4.13c-5.405,3.524-10.156,1.314-8.602-4.958c1.005-4.048-0.876-8.702-3.114-12.024
|
||||
c-1.701-2.511-2.79-6.922-0.868-8.248c2.144-2.441,8.231-1.09,9.809,2.631c2.995,7.087,16.482,19.183,22.554,21.052
|
||||
C850.98,357.549,855.819,361.488,849.458,362.56z"/>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFC3AB" d="M854.79,276.125c-1.929-0.006-3.81,0.762-3.945,1.101
|
||||
c-0.353,0.809,0.903,1.101,1.623,1.149c0.279,0.024,0.829,0.106,1.197,0.196c0.613,0.144,1.244,0.144,1.852,0
|
||||
c0.369-0.089,0.922-0.172,1.201-0.196c0.714-0.048,2.143-0.441,1.626-1.149C857.992,276.75,856.575,276.131,854.79,276.125z"
|
||||
/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#C3391C" d="M823.328,256.977c34.075,3.5,43.313-23.975,43.313-23.975
|
||||
C827.369,221.444,823.328,256.977,823.328,256.977z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFCAB8" d="M860.688,377.68c-4.933-0.662-0.457-4.108-4.629-4.114
|
||||
c-4.524-0.013-8.596,1.059-12.72,4.114c-3.84,2.851-28.844-5.762-44.802-11.275c-5.47-1.897-8.969-0.856-13.873,2.405
|
||||
c-1.203,0.798-2.684,5.334,0.619,8.197c16.029,13.892,41.162,10.017,53.371,11.819c9.321,1.382,14.868,1.155,18.297,1.732
|
||||
c3.22,0.542,5.033-0.201,5.131-2.689c1.756,0,3.22-1.327,3.123-3.191c1.894,0.061,2.739-1.761,2.185-3.105
|
||||
c3.024,0.143,5.666,0.131,5.131-2.196C872.261,378.231,863.611,378.07,860.688,377.68z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFC3AB" d="M863.153,380.327c-2.566,2.874-5.577,5.214-9.554,6.04
|
||||
c-2.953,0.619-14.881,1.317-21.159-1.325c-5.44-2.28-11.851-3.538-17.445-4.269c-8.231-1.083-14.606-4.333-22.421-7.291
|
||||
c-3.178-1.203-4.881-3.513-5.726-6.024c-0.982,0.279-1.489,0.887-2.185,1.351c-1.203,0.798-2.684,5.334,0.619,8.197
|
||||
c16.029,13.892,41.162,10.017,53.371,11.819c3.762,0.561,5.993-0.547,8.636-0.356c3.893,0.286,7.619,1.743,9.661,2.089
|
||||
c3.22,0.542,5.033-0.201,5.131-2.689c1.756,0,3.22-1.327,3.123-3.191c1.894,0.061,2.739-1.761,2.185-3.105
|
||||
c2.686,0.131,5.055,0.125,5.186-1.501C869.468,380.773,866.474,380.606,863.153,380.327z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#FFFFFF" d="M380.355,375.076h-35.95v6.353h35.95c1.756,0,3.178-1.417,3.178-3.172
|
||||
C383.533,376.5,382.111,375.076,380.355,375.076z"/>
|
||||
<path fill="#D0DDFD" d="M326.407,346.489l0.463,14.762l-11.481,13.825h35.177l11.511-11.54c1.304-1.303,1.953-3.119,1.774-4.952
|
||||
l-1.167-12.095H326.407z"/>
|
||||
<polygon fill="#333242" points="326.407,346.489 326.573,351.787 363.202,351.787 362.684,346.489 "/>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#333242" d="M345.732,375.076h-29.826l11.548-11.54c1.297-1.303,1.952-3.119,1.773-4.952l-1.167-12.095h-6.381
|
||||
l1.279,12.552l-11.689,11.69c-1.512,1.518-2.316,3.691-1.864,5.792c0.632,2.927,3.155,4.905,6.036,4.905h30.289
|
||||
c1.756,0,3.172-1.417,3.172-3.172C348.904,376.5,347.488,375.076,345.732,375.076z"/>
|
||||
</g>
|
||||
</g>
|
||||
<path fill="#D0DDFD" d="M417.4,220.962H253.786c-6.226,0-11.119,5.339-10.577,11.546l9.112,104.399
|
||||
c0.477,5.488,5.072,9.696,10.583,9.696h163.61c6.232,0,11.125-5.334,10.576-11.542l-9.112-104.398
|
||||
C427.501,225.176,422.912,220.962,417.4,220.962z"/>
|
||||
<path fill="#D0DDFD" d="M431.572,229.581c-0.928-4.964-5.286-8.625-10.41-8.625H257.559c-6.237,0-11.124,5.339-10.588,11.552
|
||||
l9.107,104.394c0.476,5.5,5.071,9.696,10.583,9.696h163.615c6.226,0,11.124-5.323,10.583-11.536l-9.125-104.392
|
||||
C431.703,230.294,431.65,229.938,431.572,229.581z"/>
|
||||
<path fill="#6F0871" d="M425.406,231.211c-0.184-2.214-2.011-3.886-4.238-3.886h-163.62c-1.632,0-2.673,0.863-3.137,1.375
|
||||
c-0.488,0.518-1.25,1.631-1.113,3.262l0.464,5.422l8.648,98.975c0.191,2.215,2.012,3.894,4.25,3.894h163.609
|
||||
c1.63,0,2.673-0.87,3.136-1.381c0.488-0.519,1.25-1.632,1.119-3.262l-8.57-98.227L425.406,231.211z"/>
|
||||
<path fill="#333242" d="M421.168,227.319H257.554c-1.625,0-2.667,0.869-3.137,1.381c-0.489,0.518-1.256,1.631-1.119,3.262
|
||||
l9.119,104.397c0.19,2.215,2.012,3.887,4.244,3.887h163.615c1.63,0,2.673-0.863,3.143-1.374c0.481-0.519,1.25-1.632,1.113-3.262
|
||||
l-9.119-104.399C425.228,228.997,423.4,227.319,421.168,227.319z"/>
|
||||
<g>
|
||||
<path fill="#FFB725" d="M421.168,227.325h-163.62c-1.632,0-2.673,0.863-3.137,1.375c-0.488,0.518-1.25,1.631-1.113,3.262
|
||||
l0.464,5.422h172.192l-0.548-6.173C425.222,228.997,423.395,227.325,421.168,227.325z"/>
|
||||
<linearGradient id="SVGID_11_" gradientUnits="userSpaceOnUse" x1="290.2002" y1="232.3516" x2="387.3311" y2="232.3516">
|
||||
<stop offset="2.500000e-007" style="stop-color:#EFF6FF"/>
|
||||
<stop offset="1" style="stop-color:#8AA8DA"/>
|
||||
</linearGradient>
|
||||
<polygon fill="url(#SVGID_11_)" points="290.2,229.729 290.741,234.974 387.331,234.974 386.783,229.729 "/>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#FFFFFF" d="M420.954,230.729l-3.292,3.613c-0.131,0.137-0.107,0.37,0.047,0.506c0.149,0.142,0.375,0.142,0.506,0
|
||||
l3.298-3.607c0.125-0.143,0.106-0.369-0.047-0.512C421.311,230.592,421.084,230.592,420.954,230.729z"/>
|
||||
<path fill="#FFFFFF" d="M417.859,230.729c-0.155-0.137-0.387-0.137-0.512,0c-0.131,0.144-0.107,0.37,0.042,0.512l3.928,3.607
|
||||
c0.149,0.142,0.381,0.142,0.506,0c0.13-0.137,0.106-0.37-0.042-0.506L417.859,230.729z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#FFFFFF" d="M412.198,230.36c-1.339,0-2.333,1.089-2.214,2.434c0.113,1.339,1.297,2.429,2.644,2.429
|
||||
c1.345,0,2.338-1.089,2.22-2.429C414.734,231.45,413.544,230.36,412.198,230.36z M412.58,234.669
|
||||
c-1.036,0-1.958-0.84-2.048-1.875c-0.089-1.042,0.678-1.887,1.721-1.887c1.035,0,1.952,0.845,2.048,1.887
|
||||
C414.389,233.83,413.615,234.669,412.58,234.669z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#FFFFFF" d="M403.188,234.289c-0.155,0-0.274,0.119-0.257,0.273c0.019,0.155,0.149,0.274,0.304,0.274h4.38
|
||||
c0.155,0,0.268-0.119,0.25-0.274c-0.005-0.155-0.142-0.273-0.297-0.273H403.188z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#FFFFFF" d="M261.13,234.134c-0.149,0-0.262,0.119-0.25,0.273c0.018,0.155,0.148,0.273,0.297,0.273h4.393
|
||||
c0.149,0,0.255-0.119,0.244-0.273c-0.012-0.155-0.144-0.273-0.298-0.273H261.13z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#FFFFFF" d="M260.994,232.521c-0.155,0-0.268,0.119-0.25,0.273c0.011,0.149,0.142,0.273,0.297,0.273h4.38
|
||||
c0.154,0,0.268-0.125,0.25-0.273c-0.006-0.155-0.143-0.273-0.297-0.273H260.994z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#FFFFFF" d="M260.851,230.901c-0.155,0-0.262,0.125-0.25,0.274c0.012,0.154,0.144,0.274,0.298,0.274h4.386
|
||||
c0.155,0,0.262-0.12,0.25-0.274c-0.012-0.148-0.143-0.274-0.297-0.274H260.851z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<linearGradient id="SVGID_12_" gradientUnits="userSpaceOnUse" x1="274.4844" y1="251.3438" x2="380.2632" y2="251.3438">
|
||||
<stop offset="2.500000e-007" style="stop-color:#EFF6FF"/>
|
||||
<stop offset="1" style="stop-color:#8AA8DA"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_12_)" d="M378.891,250.067H275.678c-0.697,0-1.233,0.577-1.191,1.273c0.054,0.702,0.667,1.28,1.37,1.28
|
||||
H379.07c0.702,0,1.238-0.578,1.19-1.28C380.207,250.644,379.593,250.067,378.891,250.067z"/>
|
||||
<linearGradient id="SVGID_13_" gradientUnits="userSpaceOnUse" x1="256.002" y1="243.1777" x2="325.0166" y2="243.1777">
|
||||
<stop offset="2.500000e-007" style="stop-color:#EFF6FF"/>
|
||||
<stop offset="1" style="stop-color:#8AA8DA"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_13_)" d="M323.264,241.539H257.53c-0.899,0-1.583,0.738-1.524,1.642c0.065,0.898,0.852,1.637,1.756,1.637
|
||||
h65.728c0.898,0,1.583-0.738,1.523-1.637C324.948,242.276,324.162,241.539,323.264,241.539z"/>
|
||||
<linearGradient id="SVGID_14_" gradientUnits="userSpaceOnUse" x1="256.5742" y1="251.3438" x2="265.7583" y2="251.3438">
|
||||
<stop offset="2.500000e-007" style="stop-color:#EFF6FF"/>
|
||||
<stop offset="1" style="stop-color:#8AA8DA"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_14_)" d="M264.392,250.067h-6.625c-0.702,0-1.237,0.577-1.19,1.273c0.053,0.702,0.661,1.28,1.369,1.28
|
||||
h6.625c0.696,0,1.232-0.578,1.185-1.28C265.708,250.644,265.095,250.067,264.392,250.067z"/>
|
||||
<path fill="#40C8CB" d="M312.05,258.031H258.91c-0.439,0-0.773,0.357-0.744,0.792c0.037,0.434,0.417,0.792,0.851,0.792h53.152
|
||||
c0.435,0,0.762-0.357,0.732-0.792C312.872,258.388,312.49,258.031,312.05,258.031z"/>
|
||||
<path fill="#40C8CB" d="M312.502,264.495h-53.146c-0.434,0-0.768,0.351-0.731,0.791c0.029,0.435,0.41,0.792,0.845,0.792h53.145
|
||||
c0.441,0,0.768-0.357,0.738-0.792C313.324,264.846,312.937,264.495,312.502,264.495z"/>
|
||||
<path fill="#40C8CB" d="M312.955,270.953H259.81c-0.435,0-0.769,0.357-0.738,0.792c0.029,0.44,0.41,0.792,0.851,0.792h53.145
|
||||
c0.435,0,0.768-0.352,0.732-0.792C313.771,271.31,313.39,270.953,312.955,270.953z"/>
|
||||
<path fill="#40C8CB" d="M313.407,277.417h-53.146c-0.434,0-0.767,0.357-0.738,0.792c0.03,0.435,0.41,0.792,0.845,0.792h53.145
|
||||
c0.44,0,0.774-0.357,0.738-0.792C314.228,277.774,313.841,277.417,313.407,277.417z"/>
|
||||
<path fill="#40C8CB" d="M268.82,283.88h-8.106c-0.44,0-0.768,0.351-0.738,0.792c0.03,0.434,0.411,0.791,0.845,0.791h8.112
|
||||
c0.435,0,0.769-0.357,0.738-0.791C269.636,284.231,269.255,283.88,268.82,283.88z"/>
|
||||
<path fill="#40C8CB" d="M282.974,283.88h-8.106c-0.434,0-0.767,0.351-0.738,0.792c0.03,0.434,0.411,0.791,0.851,0.791h8.106
|
||||
c0.435,0,0.768-0.357,0.738-0.791C283.795,284.231,283.415,283.88,282.974,283.88z"/>
|
||||
<path fill="#40C8CB" d="M297.128,283.88h-8.106c-0.44,0-0.768,0.351-0.744,0.792c0.036,0.434,0.417,0.791,0.851,0.791h8.106
|
||||
c0.441,0,0.769-0.357,0.744-0.791C297.95,284.231,297.563,283.88,297.128,283.88z"/>
|
||||
<path fill="#40C8CB" d="M311.282,283.88h-8.107c-0.441,0-0.768,0.351-0.738,0.792c0.03,0.434,0.411,0.791,0.846,0.791h8.112
|
||||
c0.435,0,0.768-0.357,0.732-0.791C312.098,284.231,311.717,283.88,311.282,283.88z"/>
|
||||
<path fill="#40C8CB" d="M325.43,283.88h-8.106c-0.428,0-0.762,0.351-0.738,0.792c0.035,0.434,0.416,0.791,0.851,0.791h8.106
|
||||
c0.44,0,0.774-0.357,0.744-0.791C326.251,284.231,325.871,283.88,325.43,283.88z"/>
|
||||
<path fill="#40C8CB" d="M339.59,283.88h-8.112c-0.436,0-0.769,0.351-0.738,0.792c0.035,0.434,0.416,0.791,0.851,0.791h8.106
|
||||
c0.441,0,0.768-0.357,0.738-0.791C340.406,284.231,340.025,283.88,339.59,283.88z"/>
|
||||
<path fill="#40C8CB" d="M314.312,290.338h-53.146c-0.435,0-0.769,0.357-0.745,0.797c0.036,0.435,0.417,0.792,0.851,0.792h53.146
|
||||
c0.44,0,0.768-0.357,0.738-0.792C315.126,290.695,314.746,290.338,314.312,290.338z"/>
|
||||
<path fill="#40C8CB" d="M422.055,268.227h-65.186c-0.607,0-1.066,0.5-1.024,1.107c0.042,0.607,0.572,1.107,1.179,1.107h65.187
|
||||
c0.607,0,1.071-0.5,1.029-1.107C423.198,268.727,422.662,268.227,422.055,268.227z"/>
|
||||
<path fill="#86C0F0" d="M422.733,277.899h-65.186c-0.608,0-1.071,0.5-1.024,1.102c0.036,0.607,0.571,1.106,1.179,1.106h65.186
|
||||
c0.607,0,1.071-0.5,1.023-1.106C423.87,278.399,423.341,277.899,422.733,277.899z"/>
|
||||
<path fill="#86C0F0" d="M423.365,286.952h-65.181c-0.612,0-1.071,0.5-1.035,1.106c0.047,0.601,0.578,1.102,1.19,1.102h65.181
|
||||
c0.601,0,1.072-0.5,1.023-1.102C424.507,287.452,423.972,286.952,423.365,286.952z"/>
|
||||
<path fill="#86C0F0" d="M423.996,296.004h-65.181c-0.607,0-1.077,0.5-1.035,1.108c0.047,0.607,0.578,1.106,1.19,1.106h65.181
|
||||
c0.613,0,1.071-0.499,1.029-1.106C425.138,296.505,424.603,296.004,423.996,296.004z"/>
|
||||
<path fill="#86C0F0" d="M424.626,305.064h-65.187c-0.601,0-1.065,0.494-1.023,1.101c0.041,0.608,0.577,1.107,1.183,1.107h65.181
|
||||
c0.607,0,1.077-0.5,1.03-1.107C425.769,305.558,425.233,305.064,424.626,305.064z"/>
|
||||
<path fill="#86C0F0" d="M393.568,314.116h-33.492c-0.613,0-1.071,0.495-1.029,1.102c0.047,0.614,0.577,1.107,1.184,1.107h33.498
|
||||
c0.601,0,1.065-0.493,1.023-1.107C394.711,314.611,394.175,314.116,393.568,314.116z"/>
|
||||
<path fill="#86C0F0" d="M415.9,320.276h-33.492c-0.612,0-1.071,0.5-1.029,1.108s0.572,1.107,1.185,1.107h33.492
|
||||
c0.607,0,1.071-0.5,1.024-1.107C417.043,320.776,416.501,320.276,415.9,320.276z"/>
|
||||
<path fill="#86C0F0" d="M416.341,326.663h-33.492c-0.607,0-1.066,0.494-1.024,1.107c0.036,0.608,0.578,1.108,1.179,1.108h33.492
|
||||
c0.613,0,1.072-0.5,1.03-1.108C417.483,327.157,416.954,326.663,416.341,326.663z"/>
|
||||
<path fill="#86C0F0" d="M287.558,326.663h-15.612c-0.607,0-1.072,0.494-1.03,1.107c0.042,0.608,0.578,1.108,1.185,1.108h15.613
|
||||
c0.613,0,1.071-0.5,1.023-1.108C288.7,327.157,288.165,326.663,287.558,326.663z"/>
|
||||
<path fill="#86C0F0" d="M287.188,321.384h-15.612c-0.607,0-1.072,0.5-1.03,1.107c0.047,0.606,0.577,1.1,1.184,1.1h15.612
|
||||
c0.607,0,1.072-0.494,1.03-1.1C288.325,321.884,287.795,321.384,287.188,321.384z"/>
|
||||
<path fill="#86C0F0" d="M286.82,316.105h-15.613c-0.607,0-1.071,0.5-1.023,1.107c0.042,0.612,0.572,1.106,1.179,1.106h15.613
|
||||
c0.607,0,1.071-0.494,1.03-1.106C287.962,316.605,287.427,316.105,286.82,316.105z"/>
|
||||
<path fill="#86C0F0" d="M286.45,310.831h-15.606c-0.612,0-1.077,0.494-1.035,1.107c0.047,0.607,0.577,1.101,1.19,1.101h15.612
|
||||
c0.601,0,1.066-0.494,1.023-1.101C287.593,311.325,287.057,310.831,286.45,310.831z"/>
|
||||
<path fill="#86C0F0" d="M301.2,310.831h-4.744c-0.613,0-1.072,0.494-1.03,1.107c0.042,0.607,0.572,1.101,1.184,1.101h4.738
|
||||
c0.614,0,1.072-0.494,1.031-1.101C302.336,311.325,301.807,310.831,301.2,310.831z"/>
|
||||
<path fill="#86C0F0" d="M302.009,322.498h-4.737c-0.614,0-1.072,0.5-1.03,1.107c0.048,0.612,0.571,1.105,1.184,1.105h4.738
|
||||
c0.613,0,1.072-0.494,1.03-1.105C303.151,322.997,302.622,322.498,302.009,322.498z"/>
|
||||
</g>
|
||||
<g opacity="0.17">
|
||||
<polygon fill="#FFFFFF" points="369.486,346.598 389.664,346.598 437.482,296.541 435.768,276.774 "/>
|
||||
<path fill="#FFFFFF" d="M421.162,220.956h-35.248L267.505,346.598h53.729l110.338-117.017
|
||||
C430.644,224.617,426.287,220.956,421.162,220.956z"/>
|
||||
<polygon fill="#FFFFFF" points="249.72,264.025 253.809,310.813 337.375,220.956 289.771,220.956 "/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<linearGradient id="SVGID_15_" gradientUnits="userSpaceOnUse" x1="782.1553" y1="610.2832" x2="782.1553" y2="405.7305">
|
||||
<stop offset="2.500000e-007" style="stop-color:#EFF6FF"/>
|
||||
<stop offset="1" style="stop-color:#8AA8DA"/>
|
||||
</linearGradient>
|
||||
<rect x="777.563" y="405.73" fill="url(#SVGID_15_)" width="9.183" height="204.553"/>
|
||||
<rect x="774.522" y="405.73" fill="#D0DDFD" width="3.041" height="204.553"/>
|
||||
<linearGradient id="SVGID_16_" gradientUnits="userSpaceOnUse" x1="1092.9541" y1="610.2832" x2="1092.9541" y2="405.7305">
|
||||
<stop offset="2.500000e-007" style="stop-color:#EFF6FF"/>
|
||||
<stop offset="1" style="stop-color:#8AA8DA"/>
|
||||
</linearGradient>
|
||||
<rect x="1088.358" y="405.73" fill="url(#SVGID_16_)" width="9.19" height="204.553"/>
|
||||
<rect x="1085.329" y="405.73" fill="#D0DDFD" width="3.029" height="204.553"/>
|
||||
<rect x="1014.894" y="405.73" fill="#D0DDFD" width="3.035" height="204.553"/>
|
||||
<linearGradient id="SVGID_17_" gradientUnits="userSpaceOnUse" x1="715.2114" y1="610.2832" x2="715.2114" y2="405.7305">
|
||||
<stop offset="2.500000e-007" style="stop-color:#EFF6FF"/>
|
||||
<stop offset="1" style="stop-color:#8AA8DA"/>
|
||||
</linearGradient>
|
||||
<rect x="710.619" y="405.73" fill="url(#SVGID_17_)" width="9.185" height="204.553"/>
|
||||
<linearGradient id="SVGID_18_" gradientUnits="userSpaceOnUse" x1="1022.375" y1="610.2832" x2="1022.375" y2="405.7305">
|
||||
<stop offset="2.500000e-007" style="stop-color:#EFF6FF"/>
|
||||
<stop offset="1" style="stop-color:#8AA8DA"/>
|
||||
</linearGradient>
|
||||
<rect x="1017.78" y="405.73" fill="url(#SVGID_18_)" width="9.189" height="204.553"/>
|
||||
<rect x="707.591" y="405.73" fill="#D0DDFD" width="3.028" height="204.553"/>
|
||||
<linearGradient id="SVGID_19_" gradientUnits="userSpaceOnUse" x1="724.7202" y1="387.9209" x2="1139.3906" y2="387.9209">
|
||||
<stop offset="2.500000e-007" style="stop-color:#EFF6FF"/>
|
||||
<stop offset="1" style="stop-color:#8AA8DA"/>
|
||||
</linearGradient>
|
||||
<rect x="724.72" y="381.403" fill="url(#SVGID_19_)" width="414.67" height="13.035"/>
|
||||
<linearGradient id="SVGID_20_" gradientUnits="userSpaceOnUse" x1="660.0464" y1="387.9209" x2="724.7202" y2="387.9209">
|
||||
<stop offset="1.500000e-007" style="stop-color:#EFF6FF"/>
|
||||
<stop offset="1" style="stop-color:#C4D8FB"/>
|
||||
</linearGradient>
|
||||
<rect x="660.046" y="381.403" fill="url(#SVGID_20_)" width="64.674" height="13.035"/>
|
||||
<linearGradient id="SVGID_21_" gradientUnits="userSpaceOnUse" x1="739.5234" y1="400.7832" x2="1113.1611" y2="400.7832">
|
||||
<stop offset="2.500000e-007" style="stop-color:#EFF6FF"/>
|
||||
<stop offset="1" style="stop-color:#8AA8DA"/>
|
||||
</linearGradient>
|
||||
<rect x="739.523" y="394.266" fill="url(#SVGID_21_)" width="373.638" height="13.035"/>
|
||||
<linearGradient id="SVGID_22_" gradientUnits="userSpaceOnUse" x1="688.1699" y1="400.7832" x2="744.3867" y2="400.7832">
|
||||
<stop offset="1.500000e-007" style="stop-color:#EFF6FF"/>
|
||||
<stop offset="1" style="stop-color:#C4D8FB"/>
|
||||
</linearGradient>
|
||||
<rect x="688.17" y="394.266" fill="url(#SVGID_22_)" width="56.217" height="13.035"/>
|
||||
</g>
|
||||
<g>
|
||||
<linearGradient id="SVGID_23_" gradientUnits="userSpaceOnUse" x1="289.3872" y1="507.0361" x2="289.3872" y2="610.7994">
|
||||
<stop offset="0" style="stop-color:#8AA8DA"/>
|
||||
<stop offset="1" style="stop-color:#EFF6FF"/>
|
||||
</linearGradient>
|
||||
<rect x="284.795" y="405.73" fill="url(#SVGID_23_)" width="9.184" height="204.553"/>
|
||||
<rect x="281.76" y="405.73" fill="#D0DDFD" width="3.035" height="204.553"/>
|
||||
<linearGradient id="SVGID_24_" gradientUnits="userSpaceOnUse" x1="600.1836" y1="507.0361" x2="600.1836" y2="610.7994">
|
||||
<stop offset="0" style="stop-color:#8AA8DA"/>
|
||||
<stop offset="1" style="stop-color:#EFF6FF"/>
|
||||
</linearGradient>
|
||||
<rect x="595.591" y="405.73" fill="url(#SVGID_24_)" width="9.185" height="204.553"/>
|
||||
<rect x="592.556" y="405.73" fill="#D0DDFD" width="3.036" height="204.553"/>
|
||||
<rect x="522.126" y="405.73" fill="#D0DDFD" width="3.036" height="204.553"/>
|
||||
<linearGradient id="SVGID_25_" gradientUnits="userSpaceOnUse" x1="222.4458" y1="507.0361" x2="222.4458" y2="610.7994">
|
||||
<stop offset="0" style="stop-color:#8AA8DA"/>
|
||||
<stop offset="1" style="stop-color:#EFF6FF"/>
|
||||
</linearGradient>
|
||||
<rect x="217.854" y="405.73" fill="url(#SVGID_25_)" width="9.184" height="204.553"/>
|
||||
<linearGradient id="SVGID_26_" gradientUnits="userSpaceOnUse" x1="529.6079" y1="507.0361" x2="529.6079" y2="610.7994">
|
||||
<stop offset="0" style="stop-color:#8AA8DA"/>
|
||||
<stop offset="1" style="stop-color:#EFF6FF"/>
|
||||
</linearGradient>
|
||||
<rect x="525.013" y="405.73" fill="url(#SVGID_26_)" width="9.189" height="204.553"/>
|
||||
<rect x="214.824" y="405.73" fill="#D0DDFD" width="3.03" height="204.553"/>
|
||||
<linearGradient id="SVGID_27_" gradientUnits="userSpaceOnUse" x1="231.9595" y1="387.9209" x2="646.624" y2="387.9209">
|
||||
<stop offset="2.500000e-007" style="stop-color:#EFF6FF"/>
|
||||
<stop offset="1" style="stop-color:#8AA8DA"/>
|
||||
</linearGradient>
|
||||
<rect x="231.959" y="381.403" fill="url(#SVGID_27_)" width="414.665" height="13.035"/>
|
||||
<linearGradient id="SVGID_28_" gradientUnits="userSpaceOnUse" x1="167.2852" y1="387.9209" x2="231.9595" y2="387.9209">
|
||||
<stop offset="1.500000e-007" style="stop-color:#EFF6FF"/>
|
||||
<stop offset="1" style="stop-color:#C4D8FB"/>
|
||||
</linearGradient>
|
||||
<rect x="167.285" y="381.403" fill="url(#SVGID_28_)" width="64.674" height="13.035"/>
|
||||
<linearGradient id="SVGID_29_" gradientUnits="userSpaceOnUse" x1="246.7559" y1="400.7832" x2="620.3945" y2="400.7832">
|
||||
<stop offset="2.500000e-007" style="stop-color:#EFF6FF"/>
|
||||
<stop offset="1" style="stop-color:#8AA8DA"/>
|
||||
</linearGradient>
|
||||
<rect x="246.756" y="394.266" fill="url(#SVGID_29_)" width="373.639" height="13.035"/>
|
||||
<linearGradient id="SVGID_30_" gradientUnits="userSpaceOnUse" x1="195.4023" y1="400.7832" x2="251.6191" y2="400.7832">
|
||||
<stop offset="1.500000e-007" style="stop-color:#EFF6FF"/>
|
||||
<stop offset="1" style="stop-color:#C4D8FB"/>
|
||||
</linearGradient>
|
||||
<rect x="195.402" y="394.266" fill="url(#SVGID_30_)" width="56.217" height="13.035"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#FFFFFF" d="M1069.372,219.432H901.168c-5.666,0-10.387,4.334-10.875,9.97l-9.367,107.333
|
||||
c-0.561,6.375,4.471,11.869,10.874,11.869h168.203c5.661,0,10.387-4.335,10.876-9.971l9.366-107.333
|
||||
C1080.806,224.92,1075.775,219.432,1069.372,219.432z"/>
|
||||
<path fill="#0D5BD9" d="M1073.646,219.426H905.454c-5.274,0-9.749,3.762-10.703,8.862c-0.083,0.37-9.553,108.446-9.553,108.446
|
||||
c-0.547,6.387,4.483,11.855,10.887,11.855h168.198c5.672,0,10.387-4.309,10.887-9.969l9.36-107.321
|
||||
C1085.08,224.914,1080.05,219.426,1073.646,219.426z"/>
|
||||
<path fill="#0A429F" d="M1054.248,248.55H942.313c-1.803,0-3.356,1.25-3.736,2.987c-0.281,2.97-6.25,70.955-6.334,71.959
|
||||
c-0.095,1.09,0.258,2.125,0.994,2.929c0.739,0.803,1.749,1.244,2.846,1.244h111.939c2.006,0,3.655-1.506,3.833-3.512l6.231-71.418
|
||||
c0.095-1.088-0.263-2.136-0.999-2.94C1056.349,248.996,1055.338,248.55,1054.248,248.55z"/>
|
||||
<path fill="#FFFFFF" d="M969.015,325.884h6.56c0,0,3.958-15.274,18.088-15.274C993.662,310.61,976.466,306.844,969.015,325.884z"
|
||||
/>
|
||||
<path fill="#0D5BD9" d="M1032.124,374.875h-36.956v6.528h36.956c1.804,0,3.268-1.457,3.268-3.261
|
||||
C1035.392,376.339,1033.928,374.875,1032.124,374.875z"/>
|
||||
<linearGradient id="SVGID_31_" gradientUnits="userSpaceOnUse" x1="965.3369" y1="342.7427" x2="1015.1895" y2="342.7427">
|
||||
<stop offset="2.500000e-007" style="stop-color:#EFF6FF"/>
|
||||
<stop offset="1" style="stop-color:#8AA8DA"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_31_)" d="M993.662,310.61c-10.982,0-19.545,9.488-18.44,20.411l2.816,27.521l-12.701,16.333h36.159
|
||||
l11.838-11.869c1.339-1.339,2.006-3.203,1.827-5.083l-3.054-30.624C1011.155,317.824,1003.187,310.61,993.662,310.61z"/>
|
||||
<g>
|
||||
<path fill="#FFFFFF" d="M996.524,374.875h-30.658l11.869-11.869c1.34-1.339,2.006-3.203,1.819-5.083l-4.141-32.039h-6.399
|
||||
l4.102,32.51l-12.018,12.011c-1.554,1.565-2.38,3.803-1.911,5.951c0.645,3.013,3.245,5.047,6.202,5.047h31.135
|
||||
c1.805,0,3.263-1.457,3.263-3.261C999.787,376.339,998.329,374.875,996.524,374.875z"/>
|
||||
</g>
|
||||
<path fill="#0D5BD9" d="M993.662,322.492c-3.887,0-7.034,3.153-7.034,7.034c0,3.887,3.147,7.042,7.034,7.042
|
||||
c3.886,0,7.041-3.155,7.041-7.042C1000.703,325.645,997.548,322.492,993.662,322.492z"/>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#FFCAB8" d="M455.702,560.167c-0.125-0.833-17.541,4.273-17.88,9.78c-0.292,4.7,3.203,12.212-0.149,17.265
|
||||
c-3.863,5.804-20.189,13.149-28.194,14.321c-0.411,1.186,0.976,2.179,2.16,2.578c5.923,2.006,12.375,1.131,18.594,0.482
|
||||
c7.202-0.75,14.445-1.161,21.689-1.232c3.226-0.037,7.046-0.322,8.684-3.101c1.22-2.073,0.66-4.673,0.381-7.066
|
||||
C460.112,585.92,456.744,567.423,455.702,560.167z"/>
|
||||
<path fill="#FFC3AB" d="M455.702,560.167c-0.06-0.411-8.505,4.887-12.534,4.286c0.268,0.512,5.094,5.499,5.321,6.041
|
||||
c6.463,15.683-3.411,27.842-16.69,33.98c6.69-0.656,13.404-1.049,20.124-1.113c3.226-0.037,7.046-0.322,8.684-3.101
|
||||
c1.22-2.073,0.66-4.673,0.381-7.066C460.112,585.92,456.744,567.423,455.702,560.167z"/>
|
||||
<path fill="#FD4B1B" d="M460.856,589.844c-2.012-1.505-14.85,8.417-29.576,8.417c0-1.953-1.857-5.269-4.285-4.428
|
||||
c-6.476,2.243-17.868,6.313-19.147,6.849c-4.132,1.727-2.507,8.672-0.066,8.672c2.023,0,15.355,0,22.855,0
|
||||
c4.351,0,11.291-3.998,18.296-3.998c7.833,0,10.148-0.262,11.113-0.697C467.457,601.324,464.583,592.616,460.856,589.844z"/>
|
||||
<path fill="#C3391C" d="M448.327,600.836c-5.214,0.275-21.594,2.257-24.361,3.002c-3.929,1.058-8.268,1.113-12.214,0.033
|
||||
c-1.916-0.521-3.625-1.33-5.148-2.349c-2.477,2.47-0.977,7.831,1.178,7.831h22.855c4.351,0,11.291-3.998,18.296-3.998
|
||||
c7.833,0,10.148-0.262,11.113-0.697c5.839-2.631,5.261-8.554,2.947-12.326C459.927,597.432,454.683,600.504,448.327,600.836z"/>
|
||||
<path fill="#C3391C" d="M446.322,609.354h14.379l3.613-9.207l-17,4.886C447.679,606.765,446.322,609.354,446.322,609.354z"/>
|
||||
</g>
|
||||
<path fill="#333242" d="M451.309,423.943c0,0-47.849,1.061-63.99,24.701c-9.356,13.725,42.522,117.564,49.759,134.146
|
||||
c11.208,2.106,17.969-0.125,24.284-4.487c-6.041-33.35-15.41-101.839-25.045-119.497
|
||||
C430.477,448.097,451.006,436.122,451.309,423.943z"/>
|
||||
<g>
|
||||
<path fill="#FFCAB8" d="M405.884,571.244c-0.12-0.834-16.487-5.477-16.827,0.029c-0.292,4.703,4.946,11.981,0.833,15.713
|
||||
c-4.72,4.285-22.219,13.375-30.23,14.547c-0.411,1.186,0.976,2.179,2.161,2.578c5.922,2.006,12.374,1.131,18.594,0.482
|
||||
c7.201-0.75,14.445-1.161,21.695-1.232c3.22-0.037,7.042-0.322,8.684-3.101c1.22-2.073,0.66-4.673,0.375-7.066
|
||||
C410.293,585.92,406.925,578.504,405.884,571.244z"/>
|
||||
<path fill="#FFC3AB" d="M405.884,571.244c-0.06-0.405-3.952-1.702-7.982-2.31c0.262,0.519,0.548,1.018,0.768,1.56
|
||||
c6.47,15.683-3.41,27.842-16.689,33.98c6.696-0.656,13.404-1.049,20.13-1.113c3.22-0.037,7.042-0.322,8.684-3.101
|
||||
c1.22-2.073,0.66-4.673,0.375-7.066C410.293,585.92,406.925,578.504,405.884,571.244z"/>
|
||||
<path fill="#FD4B1B" d="M411.044,589.844c-2.018-1.505-14.85,8.417-29.576,8.417c0-1.953-1.857-5.269-4.286-4.428
|
||||
c-6.476,2.243-17.874,6.313-19.148,6.849c-4.136,1.727-2.517,8.672-0.071,8.672c2.024,0,15.362,0,22.856,0
|
||||
c4.357,0,11.297-3.998,18.303-3.998c7.821,0,10.142-0.262,11.112-0.697C417.639,601.324,414.764,592.616,411.044,589.844z"/>
|
||||
<path fill="#C3391C" d="M398.508,600.836c-5.208,0.275-21.593,2.257-24.355,3.002c-3.928,1.058-8.273,1.113-12.213,0.033
|
||||
c-1.922-0.521-3.63-1.33-5.148-2.349c-2.482,2.47-0.976,7.831,1.172,7.831h22.856c4.357,0,11.297-3.998,18.303-3.998
|
||||
c7.821,0,10.142-0.262,11.112-0.697c5.839-2.631,5.262-8.554,2.941-12.326C410.109,597.432,404.866,600.504,398.508,600.836z"/>
|
||||
<path fill="#C3391C" d="M396.509,609.354h14.375l3.618-9.207l-17.005,4.886C397.86,606.765,396.509,609.354,396.509,609.354z"/>
|
||||
</g>
|
||||
<path fill="#42445D" d="M396.765,415.194c0,0-63.806,6.369-63.806,41.164c0,16.833,47.473,117.641,52.33,129.486
|
||||
c9.785,3.803,21.451-0.965,26.754-6.191c-1.75-4.606-25.695-96.036-31.611-118.795
|
||||
C377.314,448.828,396.462,427.599,396.765,415.194z"/>
|
||||
<path fill="#42445D" d="M450.411,410.493c-39.641,0-67.771,5.927-79.013,10.022c-17.368,6.333-33.153,43.747,14.165,48.169
|
||||
c8.458,0.793,50.634,0,62.235,0c76.579,0,76.828-13.172,76.828-25.177C524.625,431.496,490.045,410.493,450.411,410.493z"/>
|
||||
<path fill="#FFB725" d="M371.29,350.574c-3.172,8.111,7.214,19.909,10.952,18.403c36.682-14.79,61.532-44.217,61.532-44.217
|
||||
l-16.005-30.951C427.769,293.809,374.463,342.46,371.29,350.574z"/>
|
||||
<linearGradient id="SVGID_32_" gradientUnits="userSpaceOnUse" x1="373.4219" y1="340.6836" x2="443.7744" y2="340.6836">
|
||||
<stop offset="0" style="stop-color:#FB6B14"/>
|
||||
<stop offset="1" style="stop-color:#FDB522"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_32_)" d="M384.307,360.222c-3.541,1.392-7.237,2.035-10.885,2.006c2.719,4.386,6.767,7.576,8.82,6.749
|
||||
c36.682-14.79,61.532-44.217,61.532-44.217l-8.512-12.5C424.258,333.413,405.835,351.782,384.307,360.222z"/>
|
||||
<linearGradient id="SVGID_33_" gradientUnits="userSpaceOnUse" x1="507.0439" y1="329.6694" x2="590.645" y2="329.6694">
|
||||
<stop offset="0" style="stop-color:#FB6B14"/>
|
||||
<stop offset="1" style="stop-color:#FDB522"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_33_)" d="M521.983,291.202l-14.939,38.921c0,0,50.062,38.015,72.144,38.015
|
||||
c5.935,0,18.606-8.951,6.202-21.272C579.206,340.728,521.983,291.202,521.983,291.202z"/>
|
||||
<path fill="#FFB725" d="M477.563,279.333c-22.736,0-50.86,9.19-50.258,16.458c6.273,75.072-1.351,115.165-1.351,115.165
|
||||
c8.684,9.464,23.635,18.54,35.628,23.213c28.564,11.04,60.323,10.457,65.573,7.488c0.453-0.257,0.697-0.543,0.745-0.786
|
||||
c0.993-5.667,2.314-136.771-0.048-142.557C527.691,297.855,521.091,279.333,477.563,279.333z"/>
|
||||
<linearGradient id="SVGID_34_" gradientUnits="userSpaceOnUse" x1="461.582" y1="362.6719" x2="529.1768" y2="362.6719">
|
||||
<stop offset="0" style="stop-color:#FB6B14"/>
|
||||
<stop offset="1" style="stop-color:#FDB522"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_34_)" d="M527.239,296.986c-0.208-0.452-0.458-0.862-0.75-1.279c-0.286-0.417-0.571-0.827-0.905-1.238
|
||||
c-0.292-0.375-12.499-12.629-24.813-12.629c24.438,15.796,13.319,68.157,5.916,91.803c-6.363,20.171-14.387,35.099-30.219,49.445
|
||||
c-4.714,4.261-9.636,8.021-14.886,11.082c28.564,11.04,60.323,10.457,65.573,7.488c0.453-0.257,0.697-0.543,0.745-0.786
|
||||
c0.993-5.667,2.314-136.771-0.048-142.557C527.691,297.855,527.483,297.404,527.239,296.986z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFCAB8" d="M299.932,370.238c-3.964-1.47-9.267,0.494-13.017,1.685
|
||||
c-2.214,0.708-6.69,1.903-7.869,3.393c-1.101,1.367-0.137,4.041,2.602,3.024c6.618-2.465,16.642,4.582,23.7,2.23
|
||||
c1.167-0.392,11.125-4.671,12.214-4.987c-1.089-2.256-4.285-7.935-4.696-10.279C311.58,365.662,301.723,370.905,299.932,370.238z"
|
||||
/>
|
||||
<path fill="#FFC3AB" d="M484.325,208.284c-4.095-3.273-9.505-4.619-14.755-4.482c-5.244,0.138-10.362,1.655-15.237,3.583
|
||||
c-3.619,1.429-14.726,8.167-11.512,32.332c0.744,5.612,3.042,21.504,6.059,26.302c4.87,7.72,15.874,11.893,24.266,8.333
|
||||
c27.034-11.458,21.076-44.312,19.779-50.282C491.628,218.099,489.099,212.094,484.325,208.284z"/>
|
||||
<path fill="#FFCAB8" d="M454.648,266.614c-5.16-6.678-7.726-14.529-7.851-22.999c-0.071-4.487,0.53-8.964,0.399-13.47
|
||||
c-0.315-10.719,6.893-21.069,16.583-25.617c-3.221,0.649-6.386,1.649-9.446,2.857c-3.619,1.429-14.726,8.167-11.512,32.332
|
||||
c0.744,5.612,3.042,21.504,6.059,26.302c3.263,5.172,9.285,8.744,15.434,9.464C460.63,273.072,457.327,270.078,454.648,266.614z"
|
||||
/>
|
||||
<path fill="#FFC3AB" d="M460.624,256.906c-0.089,7.708-1.279,16.236-1.75,23.784c-0.476,7.547,30.355,7.649,29.862,0
|
||||
c-1.031-15.861,0-35.236,0-35.236S460.713,249.198,460.624,256.906z"/>
|
||||
<path fill="#FFCAB8" d="M459.612,271.893c-0.238,2.524-0.588,6.417-0.738,8.797c-0.095,1.554,1.148,2.786,3.154,3.703
|
||||
c-0.155-1.899-0.31-3.81-0.327-5.643C461.689,277.405,461.427,273.328,459.612,271.893z"/>
|
||||
<path fill="#42445D" d="M471.718,198.237c-20.7,0-26.254,17.677-36.783,19.23c21.731,5.482,10.898,43.622,39.974,51.991
|
||||
c4.828,1.394,16.166,2.726,22.969-10.493C515.608,224.521,497.717,198.237,471.718,198.237z"/>
|
||||
<path fill="#333242" d="M471.718,198.237c-13.933,0-24.742,16.439-24.742,29.873c6.743,13.571,6.851,35.284,27.933,41.349
|
||||
c4.828,1.394,16.166,2.726,22.969-10.493C515.608,224.521,497.717,198.237,471.718,198.237z"/>
|
||||
<path fill="#FFB725" d="M382.367,349.888c-6.119-0.762-23.909,2.726-29.843,4.375c-9.369,2.608-42.873,10.167-42.873,10.167
|
||||
s-0.321,5.862,2.363,15.111c0,0,47.026-4.361,66.288-9.266C397.515,365.375,388.64,350.674,382.367,349.888z"/>
|
||||
<linearGradient id="SVGID_35_" gradientUnits="userSpaceOnUse" x1="309.6743" y1="368.5835" x2="390.9282" y2="368.5835">
|
||||
<stop offset="0" style="stop-color:#FB6B14"/>
|
||||
<stop offset="1" style="stop-color:#FDB522"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_35_)" d="M309.674,366.315c0.102,2.43,0.56,7.064,2.34,13.225c0,0,39.914-3.474,64.853-8.867
|
||||
c10.922-2.363,16.738-8.671,12.856-13.046C389.146,359.632,324.585,378.209,309.674,366.315z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFCAB8" d="M280.368,374.22l-8.227,5.864
|
||||
c-0.767,0.553-0.952,1.624-0.398,2.397c0.554,0.775,1.625,0.953,2.399,0.404l7.398-4.897c0.773-0.561,1.774-2.589,1.22-3.364
|
||||
C282.207,373.852,281.135,373.672,280.368,374.22z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#333242" d="M302.61,369.571c0,0,3.666,3.858,5.094,10.113
|
||||
c0,0,1.912,0.042,3.535-1.274c0,0-0.904-6.088-4.969-10.345C306.271,368.065,303.991,368.566,302.61,369.571z"/>
|
||||
<path fill="#D0DDFD" d="M304.122,367.958c-1.982,0.72-3.481,1.607-3.345,1.981c0.143,0.382,1.857,0.108,3.845-0.605
|
||||
c1.982-0.72,3.482-1.602,3.345-1.983C307.823,366.971,306.11,367.244,304.122,367.958z"/>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<linearGradient id="SVGID_36_" gradientUnits="userSpaceOnUse" x1="509.314" y1="478.5938" x2="509.314" y2="586.3754">
|
||||
<stop offset="0" style="stop-color:#8AA8DA"/>
|
||||
<stop offset="1" style="stop-color:#EFF6FF"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_36_)" d="M537.393,473.274h-61.579c-5.476,0-12.565,4.403-13.375,9.808l-17.559,127.862h6.785
|
||||
l18.66-127.177c0.47-3.186,3.583-5.87,6.803-5.87h58.943c3.214,0,1.708,2.025,2.178,5.209l27.034,127.802l3.054-0.106
|
||||
l5.41-0.633l-24.974-127.087C547.97,477.678,542.863,473.274,537.393,473.274z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#FFFFFF" d="M530.78,473.267h-60.252c-5.476,0-10.577,4.411-11.374,9.829l-18.672,127.17l4.577,0.673
|
||||
l18.672-127.171c0.463-3.186,3.577-5.87,6.797-5.87h60.252c3.268,0,6.547,2.704,7.172,5.912l24.606,127.235l4.696-0.353
|
||||
l-24.767-127.765C541.458,477.607,536.208,473.267,530.78,473.267z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<linearGradient id="SVGID_37_" gradientUnits="userSpaceOnUse" x1="470.2964" y1="447.1738" x2="572.4268" y2="447.1738">
|
||||
<stop offset="2.500000e-007" style="stop-color:#EFF6FF"/>
|
||||
<stop offset="1" style="stop-color:#8AA8DA"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_37_)" d="M566.558,425.752c-0.982,7.655-2.464,19.22-4.488,29.272
|
||||
c-3.398,16.855-6.143,18.04-6.261,18.083c-2.148-0.006-6.53-0.114-12.594-0.257c-15.874-0.38-35.075-1.013-70.604-1.013
|
||||
h-2.314v4.626h2.314c35.474,0,54.634,0.631,70.496,1.013c6.095,0.143,10.494,0.249,12.786,0.249
|
||||
c6.397,0,10.386-13.446,15.254-51.383c0.387-3.03,1.28-8.964,1.28-8.964l-4.56-0.757
|
||||
C567.867,416.622,566.957,422.675,566.558,425.752z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#FFFFFF" d="M562.392,424.926c-0.982,7.589-2.465,19.045-4.494,29.022c-3.404,16.718-6.148,17.861-6.261,17.897
|
||||
l-83.209-0.008v4.626h83.286c6.405,0,10.398-13.334,15.268-50.943c0.38-2.946,0.679-5.279,0.887-6.518l-4.565-0.762
|
||||
C563.083,419.563,562.778,421.932,562.392,424.926z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#0D5BD9" d="M547.85,463.065H447.773c-4.387,0-7.94,3.561-7.94,7.946c0,4.381,3.553,7.935,7.94,7.935H547.85
|
||||
c4.382,0,7.94-3.554,7.94-7.935C555.791,466.626,552.232,463.065,547.85,463.065z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#D0DDFD" d="M458.07,463.071h-64.305c-10.036,0-17.678,2.656-22.701,7.888c-3.863,4.028-4.988,8.487-5.048,10.493
|
||||
l-0.119,4.261h13.671l0.274-3.189c0.566-2.132,4.083-5.577,13.922-5.577h64.305c3.827,0,6.94-3.103,6.94-6.941
|
||||
C465.011,466.179,461.897,463.071,458.07,463.071z"/>
|
||||
<path fill="#D0DDFD" d="M379.874,482.153c0.011-0.16,0.024-0.327,0.024-0.486c0,0.297-0.019,0.553-0.048,0.762
|
||||
L379.874,482.153z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<linearGradient id="SVGID_38_" gradientUnits="userSpaceOnUse" x1="456.4287" y1="447.8086" x2="476.1528" y2="447.8086">
|
||||
<stop offset="2.500000e-007" style="stop-color:#EFF6FF"/>
|
||||
<stop offset="1" style="stop-color:#8AA8DA"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_38_)" d="M471.213,418.902c-0.202,1.202-0.488,3.32-0.858,6.004
|
||||
c-1.011,7.347-2.695,19.643-4.898,30.225c-3.666,17.643-6.416,19.137-6.714,19.249h-2.314l0.095,4.614h2.315
|
||||
c6.481,0,10.689-13.989,16.094-53.455c0.363-2.65,0.655-4.739,0.839-5.876l0.381-2.278l-4.554-0.763L471.213,418.902z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#FFFFFF" d="M466.093,425.104c-0.975,7.653-2.464,19.224-4.493,29.284c-3.386,16.866-6.143,18.052-6.255,18.094
|
||||
l0.083,4.612c6.398,0,10.386-13.451,15.254-51.401c0.387-3.036,0.696-5.435,0.905-6.69l-4.56-0.762
|
||||
C466.802,419.586,466.493,422.021,466.093,425.104z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<linearGradient id="SVGID_39_" gradientUnits="userSpaceOnUse" x1="420.7397" y1="478.5928" x2="420.7397" y2="586.3752">
|
||||
<stop offset="0" style="stop-color:#8AA8DA"/>
|
||||
<stop offset="1" style="stop-color:#EFF6FF"/>
|
||||
</linearGradient>
|
||||
<path fill="url(#SVGID_39_)" d="M447.042,468.863l-51.545,0.196c-5.47,0-12.755,4.207-13.564,9.619l-17.559,132.266h6.786
|
||||
l18.654-131.581c0.47-3.185,3.595-5.869,6.803-5.869l49.104-1.174c3.214,0,1.708,3.197,2.185,6.381l18.135,132.207
|
||||
l5.648-0.106l5.417-0.633l-18.684-131.49C457.618,473.267,452.512,468.863,447.042,468.863z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#FFFFFF" d="M440.435,468.869h-50.419c-5.482,0-10.565,4.405-11.339,9.832L359.97,610.277l4.583,0.655
|
||||
l18.702-131.575c0.452-3.179,3.553-5.863,6.762-5.863h50.419c3.208,0,6.304,2.685,6.75,5.863l18.706,131.575l4.584-0.655
|
||||
l-18.708-131.576C450.994,473.274,445.91,468.869,440.435,468.869z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<path fill="#D0DDFD" d="M564.844,323.605h-75.138c-7.994,0-15.493,6.476-16.666,14.38c0,0-12.351,73.222-11.714,75.351
|
||||
c1.143,3.853,2.577,6.333,6.214,6.333c3.631,0,97.387,0.936,97.387,0.936l0.601-3.965l11.083-74.81
|
||||
c0.262-1.732,8.81-2.447,8.464-3.981C583.848,332.349,578.599,323.605,564.844,323.605z"/>
|
||||
<path fill="#0D5BD9" d="M576.158,331.407h-78.441c-7.988,0-15.493,6.47-16.667,14.382l-11.082,74.816
|
||||
c0,0,27.343,5.504,61.699,5.504c34.361,0,45.813-5.504,45.813-5.504l11.088-74.816
|
||||
C589.74,337.876,584.151,331.407,576.158,331.407z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#42445D" d="M1208.97,165.792h-51.295c1.163,9.297-10.374,19.713-14.171,27.885
|
||||
c-3.929,8.452-5.398,36.063,40.213,36.063c45.614,0,44.37-28.397,39.354-36.063C1218.13,186.142,1207.81,175.089,1208.97,165.792z
|
||||
"/>
|
||||
<path fill="#333242" d="M1221.059,190.785c1.173,6.953,0.346,15.713-6.618,20.214c-14.778,9.553-31.218,1.232-40.129-11.06
|
||||
c-1.827-2.529-7.517,10.047-7.517,10.047s-11.476-25.313-0.923-44.193h-8.197c1.163,9.297-10.374,19.713-14.171,27.885
|
||||
c-3.929,8.452-5.398,36.063,40.213,36.063c45.614,0,44.37-28.397,39.354-36.063
|
||||
C1222.463,192.761,1221.784,191.791,1221.059,190.785z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFC3AB" d="M1177.139,460.062c-0.386,4.927-1.792,8.992-2.071,13.076
|
||||
c-0.298,4.297,0.542,8.618,0.744,14.182c0.571,5.93-2.095,10.472-3.124,15.577c-5.22,26.039,0.31,41.962-5.399,61.812
|
||||
c-1.863,6.483-3.827,8.755-4.798,11.553c-1.31,3.774-0.081,8.382-1.451,15.867c-1.763,9.698-6.495,19.512-4.88,24.935
|
||||
c1.523,5.137,13.379,10.111,17.807,10.111c5.293,0,2.714-6.105,2.466-9.886c-0.398-5.976,1.743-39.973,3.73-47.431
|
||||
c5.745-21.564,18.685-53.759,21.296-74.257c2.476-19.436,0.847-23.102,5.257-45.908c0.506-2.65,9.838-63.813,10.588-88.453
|
||||
l-39.741,20.053C1178.483,405.094,1179.103,435.246,1177.139,460.062z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFCAB8" d="M1195.304,441.663c4.922,20.771,0.257,41.349-6.088,61.501
|
||||
c-7.101,22.552-13.065,42.005-14.178,65.829c-0.869,18.333-10.446,36.753-11.101,55.039c3.72,1.893,7.81,3.142,10.028,3.142
|
||||
c5.293,0,2.714-6.105,2.466-9.886c-0.398-5.981,1.743-39.973,3.73-47.431c5.745-21.564,18.69-53.759,21.296-74.257
|
||||
c2.476-19.436,0.847-23.102,5.257-45.908c0.506-2.65,9.838-63.813,10.588-88.453l-27.158,13.7
|
||||
C1194.154,397.106,1190.108,419.736,1195.304,441.663z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#0A429F" d="M1176.454,611.234c-0.851,4.065-8.928,6.25-12.826,0.906
|
||||
c-2.553-3.501-3.549-8.113-4.249-12.1c-0.03-0.174-0.089-0.329-0.126-0.503c-1.988,7.037-4.296,13.488-3.094,17.524
|
||||
c1.523,5.137,13.379,10.111,17.807,10.111c5.293,0,2.714-6.105,2.466-9.886C1176.354,616.158,1176.371,614.008,1176.454,611.234z"
|
||||
/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#0D5BD9" d="M1165.045,614.604c-0.113-0.411-0.155-0.809-0.172-1.19
|
||||
c-0.447-0.364-0.87-0.762-1.245-1.273c-2.553-3.501-3.549-8.113-4.249-12.1c-0.03-0.174-0.089-0.329-0.126-0.503
|
||||
c-1.988,7.037-4.296,13.488-3.094,17.524c1.523,5.137,13.379,10.111,17.807,10.111c2.335,0,3.096-1.22,3.244-2.868
|
||||
C1175.329,624.627,1167.253,622.408,1165.045,614.604z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFCAB8" d="M1214.524,227.14c-4.258-1.012-12.519-3.399-17.56-5.351
|
||||
c-8.731-3.387-7.196-11.053-5.195-21.867l-16.124-5.679c-1.543,11.511,1.119,24.653-10.745,21.404
|
||||
c-14.14-3.887-20.896-1.239-25.325,17.314l65.48,30.814c0,12.838,5.164,24.819,8.219,35.396l13.725-5.464
|
||||
C1225.476,278.976,1222.291,228.985,1214.524,227.14z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFCAB8" d="M1115.815,281.69l10.999,10.351
|
||||
c7.278-9.184,27.303-54.967,27.303-54.967l-18.69-7.821C1126.047,245.085,1119.286,273.208,1115.815,281.69z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFC3AB" d="M1144.82,233.937c-1.816,6.482-14.422,2.595-17.011,11.767
|
||||
c-0.982,3.494,2.637,10.291,3.915,13.261c0.649,1.518,1.786,14.916-2.904,23.725c-0.969,1.809-6.786,2.803-8.125,3.595
|
||||
l6.119,5.756c7.278-9.184,27.303-54.967,27.303-54.967l-9.174-3.839C1144.891,233.473,1144.885,233.693,1144.82,233.937z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFCAB8" d="M1115.584,278.523c-17.173,4.863-53.443,15.761-57.336,12.523
|
||||
c-4.16-3.47-8.393-4.839-13.172-5.106c-4.399-0.238,0.118,3.667-5.131,4.071c-3.107,0.232-12.237-0.107-12.589,1.077
|
||||
c-0.703,2.423,2.076,2.602,5.279,2.625c-0.661,1.393,0.125,3.363,2.126,3.41c-0.215,1.958,1.25,3.453,3.105,3.553
|
||||
c-0.048,2.631,1.821,3.524,5.251,3.149c3.66-0.406,9.494,0.166,19.41-0.732c12.992-1.173,46.293,2.988,64.031-10.713
|
||||
C1130.221,289.558,1121.471,276.851,1115.584,278.523z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFC3AB" d="M1115.572,288.017c-8.429,2.661-16.53,6.184-25.279,6.827
|
||||
c-8.809,0.656-21.499,4.423-30.331,4.953c-2.821,0.172-6.678-2.87-10.028-5.75c-2.078-1.785-4.548-3.042-7.231-3.583
|
||||
c-1.197-0.244-2.096-0.506-2.757-0.458c-3.107,0.238-12.243-0.101-12.589,1.083c-0.703,2.423,2.076,2.602,5.279,2.625
|
||||
c-0.661,1.393,0.125,3.363,2.126,3.41c-0.215,1.958,1.25,3.453,3.105,3.553c-0.048,2.631,1.821,3.524,5.251,3.149
|
||||
c2.185-0.244,15.409-0.37,19.41-0.732c12.992-1.173,46.293,2.988,64.031-10.713c2.856-2.203,0.553-5.78-1.174-7.678
|
||||
C1122.964,285.119,1116.561,287.701,1115.572,288.017z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFCAB8" d="M1035.423,281.922c0.255,2.554,2.374,4.238,5.903,4.304
|
||||
c1.934,1.976,3.768,3.261,5.636,3.547l6.322-2.006l-9.458-4.344C1041.963,283.279,1039.845,283.196,1035.423,281.922z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFC3AB" d="M1164.9,215.647c-7.796-2.143-13.343-2.28-17.498,1.124
|
||||
c3.339-1.041,6.982-1.327,10.071-0.951c4.749,0.583,8.505,5.321,12.631,5.827c7.617,0.934,16.26-9.208,20.617-15.755
|
||||
c0.286-1.87,0.66-3.857,1.048-5.97l-16.124-5.679C1174.103,205.749,1176.765,218.896,1164.9,215.647z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFC3AB" d="M1212.066,265.375c-0.446,0.75-4.846,5.155-6.869,5.887
|
||||
c0.344,9.898,5.631,19.433,8.077,27.909l5.268-1.107c-1.899-7.315-5.833-16.749-6.055-24.719
|
||||
C1212.416,270.596,1212.245,267.959,1212.066,265.375z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFCAB8" d="M1187.62,151.133c-5.882-0.845-10.421-0.048-13.922,1.856
|
||||
c-7.267,3.946-9.897,12.78-9.85,22.434c0,0.369,0,0.745,0.023,1.113c0,0.351,0.03,0.696,0.03,1.042
|
||||
c0.022,0.471,0.022,0.946,0.071,1.44c0.148,2.113,0.327,3.994,0.523,5.731c0.493,3.947,1.166,6.994,2.256,9.577
|
||||
c1.367,3.298,10.446,15.106,17.636,14.879c6.607-0.219,15.511-11.379,16.95-13.963c1.71-3.125,2.524-6.422,2.946-9.976
|
||||
c0.323-2.529,0.43-5.184,0.549-8.012v-0.101c0.023-0.643,0.054-1.333,0.054-1.982
|
||||
C1204.905,163.834,1200.989,153.02,1187.62,151.133z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFCAB8" d="M1202.012,584.993c-0.969-2.798-3.195-2.22-5.053-8.702
|
||||
c-5.714-19.845,0.071-38.616-5.148-64.662c-1.023-5.108-3.696-9.648-3.124-15.57c0.208-5.578,1.04-9.899,0.744-14.186
|
||||
c-0.287-4.088-1.686-8.146-2.072-13.082c-1.256-15.867-1.451-22.152-1.197-45.204c0.394-34.82,3.18-51.343-9.476-77.424
|
||||
l-26.378,0.095l-3.112,23.719c0.826,26.974,5.435,54.919,11.325,85.454c4.404,22.809,3.125,31.825,5.602,51.265
|
||||
c2.606,20.498,23.612,78.357,24.242,86.245c0.168,2.135,0.625,29.427,1.048,33.104c0.44,3.755-0.006,12.784,5.118,12.784
|
||||
c4.435,0,12.709-9.576,13.809-13.027c1.727-5.394-3.113-15.244-4.88-24.934C1202.095,593.372,1203.317,588.766,1202.012,584.993z"
|
||||
/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#0A429F" d="M1193.496,625.829c-1.816,0-3.066-1.992-4.28-3.089
|
||||
c0.065,1.535,0.131,2.726,0.196,3.304c0.44,3.755-0.006,12.784,5.118,12.784c4.435,0,12.709-9.576,13.809-13.027
|
||||
c1.27-3.964-0.999-10.328-2.999-17.268C1205.03,609.819,1202.619,625.829,1193.496,625.829z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#0D5BD9" d="M1196.506,628.396c-0.184-1.186-0.189-2.226-0.077-3.197
|
||||
c-0.893,0.394-1.861,0.631-2.933,0.631c-1.816,0-3.066-1.992-4.28-3.089c0.065,1.535,0.131,2.726,0.196,3.304
|
||||
c0.44,3.755-0.006,12.784,5.118,12.784c2.894,0,7.399-4.071,10.505-7.856c-0.791,0.376-1.601,0.69-2.404,0.897
|
||||
C1200.262,632.494,1196.917,631.086,1196.506,628.396z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#C3391C" d="M1138.069,318.432c-0.171,1.113-2.439,20.105-2.553,21.146
|
||||
c-3.916,34.784,9.249,82.739,18.808,128.73c23.623,7.887,57.021-1.367,57.021-1.367s14.971-71.032,14.971-106.435
|
||||
c0-24.271-13.728-38.67-15.053-46.318C1193.805,324.271,1145.974,320.461,1138.069,318.432z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FD4B1B" d="M1173.55,444.222c-2.512-9.076-7.29-35.623-6.439-45.004
|
||||
c1.827-20.188-26.285-20.076-16.874-28.735c4.369-4.018,21.873-5.256,24.784-11.833c5.541-12.488-14.846-14.494-21.719-37.986
|
||||
c-0.061-0.184-15.166-1.66-15.286-1.805c-0.404,3.049-2.392,19.745-2.499,20.719c-3.916,34.784,9.249,82.739,18.808,128.73
|
||||
c17.923,5.981,41.462,2.102,51.783-0.123C1197.19,457.143,1177.405,458.173,1173.55,444.222z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#C3391C" d="M1203.875,223.444l-20.158,6.297c0,0-10.184-8.458-17.195-14.797
|
||||
c0,0-17.529-10.445-35.213,12.321c-2.006,2.583,9.988,7.197,8.464,20.309c-2.565,22.095-8.405,64.205-2.458,71.258
|
||||
c5.618,6.666,72.68,9.017,74.602-2.352c1.125-6.672-4.886-10.094-6.744-17.671c-1.313-5.393-0.82-11.321,0.841-21.344
|
||||
c4.345-3.554,12.529-8.232,8.225-19.904c-3.136-8.487,12.957-8.225,12.143-14.546
|
||||
C1223.952,224.152,1203.875,223.444,1203.875,223.444z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#C3391C" d="M1178.745,265.406c-5.837-3.227-7.243-7.006-9.159-12.44
|
||||
c-1.655-4.714-7.213-0.904-12.279,2.893c-4.041,3.023-8.332-4.303-10.601-2.315c-2.647,2.315,4.088,7.911,3.089,11.934
|
||||
c-1.542,6.226,3.173,8.416,8.535,4.917c3.084-2.018,15.167,5.16,22.208,3.97C1186.847,273.298,1187.007,269.965,1178.745,265.406z
|
||||
"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FD4B1B" d="M1183.287,231.752c-6.607-0.898-14.171,0.679-20.7,4.887
|
||||
c-6.173,3.975-21.29-2.178-22.814,10.934c-2.565,22.095-8.405,64.205-2.458,71.258c4.409,5.231,46.64,7.804,65.556,3.172
|
||||
c-3.811-1.655-10.298-3.088-14.394-3.144c-16.908-0.226-26.206-7.535-35.563-14.676c-5.029-3.833-1.618-7.494,3.482-3.602
|
||||
c5.631,4.298,22.142,11.208,22.142,4.244c0-16.416,20.588-25.1,20.588-32.308c0-9.219-5.84-19.552,1.25-23.498
|
||||
c4.529-2.523-4.19-6.672-4.846-7.214c-9.154-7.428,5.839-11.112,11.617-11.613c3.175-0.28,5.098-1.916,4.555-3.197
|
||||
c-1.374-3.237-8.583-2.904-14.063-0.065C1192.877,229.402,1186.591,232.199,1183.287,231.752z M1180.538,274.815
|
||||
c-7.041,1.19-19.124-5.982-22.208-3.963c-5.362,3.499-10.077,1.309-8.535-4.923c0.999-4.018-5.736-9.612-3.089-11.928
|
||||
c2.269-1.988,6.56,5.339,10.601,2.316c5.066-3.798,10.624-7.607,12.279-2.893c1.916,5.434,3.322,9.214,9.159,12.434
|
||||
C1187.007,270.423,1186.847,273.75,1180.538,274.815z"/>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFC3AB" d="M1184.294,191.696c-1.911,0.06-3.738,0.893-3.875,1.231
|
||||
c-0.315,0.816,0.94,1.06,1.654,1.09c0.279,0.006,0.82,0.071,1.196,0.142c0.606,0.125,1.237,0.102,1.839-0.059
|
||||
c0.363-0.102,0.904-0.209,1.179-0.238c0.714-0.071,2.12-0.505,1.578-1.19C1187.495,192.213,1186.08,191.643,1184.294,191.696z"
|
||||
/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<path fill="#FFC3AB" d="M1187.62,148.604c-5.882-0.84-10.421-0.048-13.922,1.862c-7.267,3.946-9.897,12.78-9.85,22.434
|
||||
c1.244-3.827,3.451-8.517,7.321-11.636c0,0,6.451,6.197,14.91,9.547c0,0-5.239-7.911-6.228-11.137
|
||||
c0.595,0.369,9.899,6.523,24.433,23.07c0.323-2.553,0.43-5.255,0.549-8.112C1205.334,162.597,1201.757,150.591,1187.62,148.604z"
|
||||
/>
|
||||
<path fill="#42445D" d="M1184.425,138.818c-12.173,0-16.714,10.178-16.714,10.178s-8.625,1.726-10.101,9.624
|
||||
c-1.256,6.809,1.411,13.755,6.375,19.046c0,0,1.256-11.928,8.761-17.969c0,0,6.434,6.196,14.898,9.559
|
||||
c0,0-5.272-7.976-6.25-11.166c0,0,10.375,6.553,26.641,25.629c-1.035-8.333,0.935-12.357,0.935-21.803
|
||||
C1208.97,151.133,1199.656,138.818,1184.425,138.818z"/>
|
||||
<path fill="#333242" d="M1177.336,155.174c1.958,6.094,6.881,12.714,10.309,14.083c0,0-5.272-7.976-6.25-11.166
|
||||
c0,0,10.375,6.553,26.641,25.629C1208.019,183.547,1195.834,155.174,1177.336,155.174z"/>
|
||||
<path fill="#333242" d="M1158.885,155.174c-0.565,0.994-1.024,2.131-1.274,3.446c-1.256,6.809,1.411,13.755,6.375,19.046
|
||||
c0,0,0.326-3.066,1.613-6.869C1158.64,168.971,1156.402,160.996,1158.885,155.174z"/>
|
||||
<path fill="#FFC3AB" d="M1195.804,186.981c-4.244,0.149-7.784-2.88-7.938-6.696c-0.103-3.202,2.154-4.637,7.547-4.815
|
||||
c1.142-0.042,2.124,0,3,0.096c-0.293-0.316-0.536-0.656-0.781-0.995c-0.762-0.053-1.534-0.077-2.249-0.042
|
||||
c-2.856,0.102-6.423,0.566-7.839,3.024l0.029-0.078c-0.326,0.452-1.47,0.726-1.768,0.726c-0.274,0.018-1.416,0.047-2.077,0.071
|
||||
c-0.697,0.029-1.839,0.071-2.111,0.071c-0.275,0-1.442-0.173-1.816-0.619l0.03,0.102c-1.56-2.357-5.137-2.578-8.019-2.482
|
||||
c-1.606,0.047-3.44,0.25-5.011,0.846c0.054-0.024,0.078-0.049,0.131-0.078c-0.846,0.202-2.144,0.346-3.06,0.423
|
||||
c0,0.351,0.03,0.696,0.03,1.042c0.022,0.471,0.022,0.946,0.071,1.44c0.148,2.113,0.327,3.994,0.523,5.731
|
||||
c1.536,2.482,4.464,4.119,7.786,3.994c4.564-0.149,8.189-3.571,8.337-7.69l0.024,0.125c0.517-1.167,2.207-1.565,3.131-1.589
|
||||
c0.887-0.024,2.601,0.226,3.196,1.363l0.029-0.125c0.44,4.096,4.263,7.244,8.853,7.101c3.968-0.155,7.218-2.755,8.116-6.153
|
||||
c0,0.071,0,0.148,0,0.148c0.025-0.071,0.042-0.155,0.062-0.232c-0.305-0.339-0.572-0.708-0.829-1.083
|
||||
C1202.84,184.06,1199.716,186.845,1195.804,186.981z M1172.258,187.803c-4.238,0.143-7.814-2.857-7.935-6.702
|
||||
c-0.123-3.197,2.132-4.613,7.542-4.815c5.387-0.191,7.738,1.095,7.839,4.268C1179.853,184.398,1176.502,187.649,1172.258,187.803z
|
||||
"/>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#FFFFFF" d="M1196.107,173.786c-3.713,0.131-8.63,0.869-8.451,5.791c0.147,4.364,4.154,7.78,8.923,7.613
|
||||
c4.773-0.166,8.529-3.851,8.373-8.22C1204.779,174.054,1199.821,173.655,1196.107,173.786z M1196.543,186.238
|
||||
c-4.244,0.148-7.804-2.851-7.946-6.695c-0.106-3.179,2.148-4.619,7.547-4.804c5.394-0.191,7.743,1.083,7.857,4.268
|
||||
C1204.138,182.845,1200.786,186.095,1196.543,186.238z"/>
|
||||
</g>
|
||||
<path fill="#FFFFFF" d="M1205.024,174.406c-0.637,0.023-2.815,0.035-4.035-0.215c0,0,1.452,0.578,2.719,2.089
|
||||
c0.995,1.19,0.981,4.898,0.981,4.898c0.482-1.273,0.536-3.012,0.514-3.745c-0.025-0.726,0.137-0.898,0.469-0.945
|
||||
c0.335-0.037,0.365-0.208,0.357-0.394c-0.011-0.184-0.04-1.083-0.053-1.375C1205.971,174.429,1205.655,174.382,1205.024,174.406z
|
||||
"/>
|
||||
<g>
|
||||
<path fill="#FFFFFF" d="M1172.551,174.608c-3.716,0.131-8.632,0.869-8.459,5.791c0.156,4.369,4.154,7.78,8.923,7.613
|
||||
c4.772-0.167,8.528-3.851,8.38-8.22C1181.217,174.876,1176.265,174.477,1172.551,174.608z M1172.983,187.059
|
||||
c-4.244,0.155-7.802-2.85-7.938-6.695c-0.108-3.179,2.144-4.619,7.54-4.81c5.393-0.184,7.744,1.089,7.856,4.274
|
||||
C1180.573,183.666,1177.233,186.916,1172.983,187.059z"/>
|
||||
</g>
|
||||
<path fill="#FFFFFF" d="M1162.766,176.227c0.012,0.291,0.048,1.197,0.053,1.381c0.012,0.184,0.054,0.357,0.381,0.37
|
||||
c0.329,0.011,0.513,0.178,0.535,0.904c0.031,0.727,0.203,2.465,0.775,3.697c0,0-0.275-3.691,0.637-4.953
|
||||
c1.16-1.601,2.564-2.273,2.564-2.273c-1.197,0.339-3.374,0.476-4.013,0.494C1163.067,175.869,1162.759,175.935,1162.766,176.227z
|
||||
"/>
|
||||
<path fill="#FFFFFF" d="M1184.448,177.542c-0.685,0.023-1.822,0.065-2.101,0.071c-0.28,0.018-1.446-0.171-1.804-0.601
|
||||
l0.845,3.435c0.518-1.172,2.197-1.56,3.106-1.589c0.898-0.036,2.608,0.232,3.214,1.368l0.59-3.487
|
||||
c-0.315,0.458-1.471,0.72-1.75,0.732C1186.27,177.477,1185.126,177.524,1184.448,177.542z"/>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFCAB8" d="M1212.362,296.303c-16.754,2.911-28.735,10.534-37.688,11.017
|
||||
c-2.095,0.113-4.123,0.809-6.04-0.637c-4.071-3.066-8.375-2.905-12.862-2.75c-4.148,0.149,0.41,3.417-4.464,4.232
|
||||
c-2.882,0.488-11.458,0.935-11.68,2.077c-0.451,2.321,2.162,2.25,5.156,2.006c-0.5,1.357,0.399,3.136,2.274,3.012
|
||||
c-0.03,1.85,1.47,3.119,3.2,3.058c0.179,2.466,2,3.149,5.179,2.505c3.387-0.684,8.894-0.642,18.096-2.314
|
||||
c12.053-2.19,14.475-0.566,23.235-1.327c8.607-0.756,21.773-1.763,28.944-6.929c2.548-1.839,2.548-9.909,1.144-17.897
|
||||
C1221.137,293.552,1218.023,295.32,1212.362,296.303z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFCAB8" d="M1145.027,300.148c0.465,2.356,2.589,3.761,5.893,3.523
|
||||
c1.18,1.112,1.976,2.393,2.798,3.036l8.655-2.607l-9.347-3.262C1151.266,300.868,1149.284,300.962,1145.027,300.148z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#42445D" d="M1153.908,305.861c0,0.006,0,0.012,0,0.019c0,1.755,1.44,3.202,3.202,3.202h75.31
|
||||
c1.757,0,3.198-1.446,3.198-3.202c0-0.007,0-0.013,0-0.019H1153.908z"/>
|
||||
</g>
|
||||
</g>
|
||||
<path fill="#42445D" d="M1145.778,239.461c-0.709-2.589-3.095-4.363-5.779-4.292l-46.206-0.023v73.132l63.807,0.804
|
||||
c3.909,0,4.143-3.023,3.88-4.071L1145.778,239.461z"/>
|
||||
<path fill="#FFFFFF" d="M1142.463,236.508c-0.227-0.809-0.971-1.375-1.816-1.375h-81.559c-1.244,0-2.15,1.179-1.816,2.375
|
||||
l15.304,64.782c1.113,4.011,4.76,6.791,8.92,6.791h75.954c1.238,0,2.143-1.185,1.804-2.381L1142.463,236.508z"/>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFCAB8" d="M1037.172,291.005c-3.602-0.286-4.458-0.297-8.055-0.292
|
||||
c-1.421,0-2.248,0.69-2.142,1.393c0.096,0.678,0.459,1.38,2.22,1.44c3.131,0.102,5.346-0.029,8.41-0.363
|
||||
C1039.969,292.927,1040.576,291.279,1037.172,291.005z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFCAB8" d="M1043.885,293.719c-3.602-0.036-6.897,0.333-10.474,0.31
|
||||
c-1.418-0.006-1.578,0.738-1.429,1.482c0.147,0.727,0.553,1.458,2.321,1.381c3.123-0.125,7.087-0.524,10.123-1.125
|
||||
C1046.761,295.314,1047.297,293.749,1043.885,293.719z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFCAB8" d="M1044.927,296.773c-3.227,0.113-5.97,0.607-9.178,0.731
|
||||
c-1.274,0.054-1.387,0.965-1.238,1.696c0.143,0.721,0.519,1.429,2.101,1.286c2.798-0.262,6.339-0.822,9.048-1.536
|
||||
C1047.735,298.397,1047.975,296.666,1044.927,296.773z"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" fill="#FFCAB8" d="M1046.605,300.458c-3.231,0.106-4.827,0.273-8.03,0.398
|
||||
c-1.271,0.048-1.397,0.797-1.25,1.536c0.138,0.714,0.52,1.423,2.09,1.28c2.805-0.256,4.994-0.47,7.703-1.191
|
||||
C1049.194,301.927,1049.652,300.35,1046.605,300.458z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 80 KiB |
479
hotgo-uniapp/static/jeesite/banner/3.svg
Normal file
@@ -0,0 +1,479 @@
|
||||
<svg version="1.1" id="Layer_1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="960px" height="560px" viewBox="0 0 960 560" enable-background="new 0 0 960 560" xml:space="preserve">
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#74CB96" d="M417.069,141.864c-31.037,0-56.28-25.248-56.28-56.282c0-31.036,25.243-56.283,56.28-56.283
|
||||
c31.034,0,56.277,25.248,56.277,56.283C473.346,116.616,448.103,141.864,417.069,141.864z M417.069,58.491
|
||||
c-14.94,0-27.095,12.153-27.095,27.092c0,14.937,12.155,27.091,27.095,27.091c14.938,0,27.089-12.154,27.089-27.091
|
||||
C444.158,70.644,432.007,58.491,417.069,58.491z"/>
|
||||
<g>
|
||||
<path fill="#74CB96" d="M433.467,43.896h-30.95V14.414c0-2.284,1.852-4.137,4.14-4.137h22.674c2.284,0,4.136,1.853,4.136,4.137
|
||||
V43.896z"/>
|
||||
<path fill="#74CB96" d="M429.331,160.888h-22.674c-2.288,0-4.14-1.852-4.14-4.138v-29.481h30.95v29.481
|
||||
C433.467,159.036,431.615,160.888,429.331,160.888z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#74CB96" d="M376.306,70.108v30.949h-29.482c-2.284,0-4.136-1.852-4.136-4.138V74.244
|
||||
c0-2.284,1.852-4.136,4.136-4.136H376.306z"/>
|
||||
<path fill="#74CB96" d="M493.297,74.244v22.675c0,2.286-1.852,4.138-4.136,4.138h-29.483V70.108h29.483
|
||||
C491.445,70.108,493.297,71.96,493.297,74.244z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#74CB96" d="M399.459,45.163l-21.884,21.886l-20.847-20.847c-1.617-1.617-1.617-4.236,0-5.852l16.031-16.033
|
||||
c1.617-1.617,4.236-1.617,5.853,0L399.459,45.163z"/>
|
||||
<path fill="#74CB96" d="M479.259,130.814l-16.033,16.033c-1.618,1.616-4.237,1.616-5.851,0l-20.847-20.846l21.884-21.885
|
||||
l20.847,20.847C480.873,126.579,480.873,129.199,479.259,130.814z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#74CB96" d="M458.412,67.048l-21.884-21.886l20.847-20.846c1.614-1.617,4.233-1.617,5.851,0l16.033,16.033
|
||||
c1.614,1.615,1.614,4.235,0,5.852L458.412,67.048z"/>
|
||||
<path fill="#74CB96" d="M372.759,146.848l-16.031-16.033c-1.617-1.615-1.617-4.235,0-5.851l20.847-20.847l21.884,21.885
|
||||
l-20.847,20.846C376.995,148.464,374.376,148.464,372.759,146.848z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="none" stroke="#D7B4B4" stroke-width="0.4707" stroke-miterlimit="10" d="M721.482,455.688H201.631
|
||||
c-6.876,0-12.451-5.574-12.451-12.449V122.609c0-6.876,5.574-12.451,12.451-12.451h519.852c6.878,0,12.452,5.575,12.452,12.451
|
||||
v320.629C733.935,450.113,728.36,455.688,721.482,455.688z"/>
|
||||
<path fill="#F8E7E2" d="M751.569,429.576H231.718c-6.877,0-12.452-5.575-12.452-12.452V96.498
|
||||
c0-6.878,5.575-12.452,12.452-12.452h519.851c6.879,0,12.453,5.574,12.453,12.452v320.626
|
||||
C764.022,424.001,758.448,429.576,751.569,429.576z"/>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="none" stroke="#D7B4B4" stroke-width="0.4862" stroke-miterlimit="10" d="M438.574,367.371H287.206
|
||||
c-3.331,0-6.028-2.698-6.028-6.029V137.52c0-3.329,2.697-6.027,6.028-6.027h151.369c3.331,0,6.029,2.698,6.029,6.027v223.822
|
||||
C444.603,364.673,441.905,367.371,438.574,367.371z"/>
|
||||
<path fill="none" stroke="#FFFFFF" stroke-width="0.4599" stroke-miterlimit="10" d="M412.275,337.232H306.899
|
||||
c-3.224,0-5.837-2.613-5.837-5.838v-84.189c0-3.223,2.613-5.836,5.837-5.836h105.375c3.221,0,5.835,2.613,5.835,5.836v84.189
|
||||
C418.11,334.619,415.496,337.232,412.275,337.232z"/>
|
||||
</g>
|
||||
<g>
|
||||
<circle fill="#3C6BE2" cx="262.387" cy="105.107" r="6.892"/>
|
||||
<circle fill="#E17246" cx="285.312" cy="105.107" r="6.892"/>
|
||||
<path fill="none" stroke="#D7B4B4" stroke-width="0.3225" stroke-miterlimit="10" d="M315.128,105.107
|
||||
c0,3.806-3.087,6.891-6.894,6.891c-3.804,0-6.891-3.084-6.891-6.891c0-3.807,3.087-6.892,6.891-6.892
|
||||
C312.042,98.215,315.128,101.3,315.128,105.107z"/>
|
||||
</g>
|
||||
<path fill="none" stroke="#FFFFFF" stroke-width="0.4599" stroke-miterlimit="10" d="M745.742,280.273v62.786
|
||||
c0,4.333-3.514,7.845-7.847,7.845H585.023c-4.334,0-7.847-3.512-7.847-7.845v-62.786c0-4.335,3.513-7.85,7.847-7.85h152.872
|
||||
C742.229,272.423,745.742,275.938,745.742,280.273z"/>
|
||||
<g>
|
||||
<path fill="none" stroke="#D7B4B4" stroke-width="0.4707" stroke-miterlimit="10" d="M602.786,180.36H487.61
|
||||
c-9.338,0-16.909-7.569-16.909-16.906l0,0c0-9.338,7.57-16.907,16.909-16.907h115.176c9.335,0,16.905,7.569,16.905,16.907l0,0
|
||||
C619.691,172.792,612.121,180.36,602.786,180.36z"/>
|
||||
<path fill="none" stroke="#FFFFFF" stroke-width="0.4599" stroke-miterlimit="10" d="M515.081,163.454
|
||||
c0,2.917-2.362,5.283-5.283,5.283c-2.917,0-5.283-2.366-5.283-5.283c0-2.917,2.366-5.283,5.283-5.283
|
||||
C512.719,158.171,515.081,160.537,515.081,163.454z"/>
|
||||
<circle fill="none" stroke="#FFFFFF" stroke-width="0.4599" stroke-miterlimit="10" cx="546.077" cy="163.454" r="5.283"/>
|
||||
<circle fill="none" stroke="#FFFFFF" stroke-width="0.4599" stroke-miterlimit="10" cx="579.539" cy="163.454" r="5.283"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#3C6BE2" d="M384.465,202.967H169.533c-3.108,0-5.629-2.521-5.629-5.629v-45.662c0-3.108,2.521-5.628,5.629-5.628
|
||||
h214.932c3.108,0,5.628,2.52,5.628,5.628v45.662C390.093,200.446,387.574,202.967,384.465,202.967z"/>
|
||||
<g>
|
||||
<line fill="none" stroke="#FFFFFF" stroke-width="0.4539" stroke-miterlimit="10" x1="185.501" y1="167.681" x2="300.614" y2="167.681"/>
|
||||
<line fill="none" stroke="#FFFFFF" stroke-width="0.4539" stroke-miterlimit="10" x1="185.501" y1="181.332" x2="241.297" y2="181.332"/>
|
||||
</g>
|
||||
</g>
|
||||
<path fill="#ECC341" d="M816.451,312.979v62.785c0,4.337-3.513,7.85-7.846,7.85H632.457c-4.336,0-7.85-3.513-7.85-7.85v-62.785
|
||||
c0-4.333,3.514-7.847,7.85-7.847h176.148C812.938,305.133,816.451,308.646,816.451,312.979z"/>
|
||||
<g>
|
||||
<path fill="#74CB96" d="M779.833,200.692H646.414c-4.334,0-7.847-3.514-7.847-7.848V44.799c0-4.335,3.513-7.849,7.847-7.849
|
||||
h133.419c4.334,0,7.847,3.514,7.847,7.849v148.045C787.68,197.178,784.167,200.692,779.833,200.692z"/>
|
||||
<g>
|
||||
<circle fill="#3C6BE2" cx="774.789" cy="43.855" r="24.974"/>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#F9FBFC" d="M772.225,40.204l-8.472,3.105l8.472,3.079v3.182l-12.109-4.606v-3.309l12.109-4.604V40.204z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#F9FBFC" d="M777.521,37.05l12.11,4.604v3.309l-12.11,4.606v-3.182l8.473-3.079l-8.473-3.105V37.05z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<line fill="none" stroke="#FFFFFF" stroke-width="0.4454" stroke-miterlimit="10" x1="661.288" y1="82.637" x2="763.038" y2="82.637"/>
|
||||
<line fill="none" stroke="#FFFFFF" stroke-width="0.4454" stroke-miterlimit="10" x1="661.288" y1="99.212" x2="715.018" y2="99.212"/>
|
||||
<line fill="none" stroke="#FFFFFF" stroke-width="0.4454" stroke-miterlimit="10" x1="683.855" y1="118.272" x2="734.063" y2="118.272"/>
|
||||
<line fill="none" stroke="#FFFFFF" stroke-width="0.4454" stroke-miterlimit="10" x1="661.288" y1="134.845" x2="763.038" y2="134.845"/>
|
||||
<line fill="none" stroke="#FFFFFF" stroke-width="0.4454" stroke-miterlimit="10" x1="661.288" y1="153.906" x2="691.898" y2="153.906"/>
|
||||
<line fill="none" stroke="#FFFFFF" stroke-width="0.4454" stroke-miterlimit="10" x1="699.714" y1="153.906" x2="763.038" y2="153.906"/>
|
||||
<line fill="none" stroke="#FFFFFF" stroke-width="0.4454" stroke-miterlimit="10" x1="661.288" y1="118.272" x2="674.988" y2="118.272"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="none" stroke="#D7B4B4" stroke-width="0.5037" stroke-miterlimit="10" d="M168.905,27.054h-41.651
|
||||
c-2.134,0-3.862,1.753-3.862,3.917v23.425c0,2.162,1.729,3.916,3.862,3.916h16.972l14.27,15.919v-15.34l10.486-0.213
|
||||
c2.103-0.042,3.785-1.783,3.785-3.916V30.971C172.767,28.808,171.039,27.054,168.905,27.054z"/>
|
||||
<ellipse fill="none" stroke="#D7B4B4" stroke-width="0.5037" stroke-miterlimit="10" cx="107.335" cy="354.671" rx="10.429" ry="10.574"/>
|
||||
<ellipse fill="none" stroke="#D7B4B4" stroke-width="0.5037" stroke-miterlimit="10" cx="856.365" cy="241.84" rx="7.599" ry="7.706"/>
|
||||
<rect x="557.671" y="5.955" fill="none" stroke="#D7B4B4" stroke-width="0.5037" stroke-miterlimit="10" width="15.773" height="15.995"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<rect x="499.009" y="498.439" fill="#E3A6A9" width="15.191" height="43.198"/>
|
||||
<g>
|
||||
<g>
|
||||
<defs>
|
||||
<path id="XMLID_5_" d="M499.009,538.893h19.632l14.345,6.844c3.243,1.668,5.283,5.008,5.283,8.654l0,0h-39.26V538.893z"/>
|
||||
</defs>
|
||||
<use xlink:href="#XMLID_5_" overflow="visible" fill="#262127"/>
|
||||
<clipPath id="XMLID_2_">
|
||||
<use xlink:href="#XMLID_5_" overflow="visible"/>
|
||||
</clipPath>
|
||||
</g>
|
||||
<path fill="#262127" d="M520.239,539.63l-4.419-5.985c0,0-6.912-1.263-6.311,6.255L520.239,539.63z"/>
|
||||
</g>
|
||||
</g>
|
||||
<path fill="#E17246" d="M493.2,361.946l23.454-13.509c0,0,10.402,14.451,10.402,41.666c0,27.214,1.129,117.373,1.129,117.373
|
||||
h-32.852L493.2,361.946"/>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<rect x="474.192" y="498.439" fill="#E3A6A9" width="15.188" height="43.198"/>
|
||||
<g>
|
||||
<g>
|
||||
<defs>
|
||||
<path id="XMLID_7_" d="M489.38,538.893h-19.628l-14.348,6.844c-3.243,1.668-5.283,5.008-5.283,8.654l0,0h39.259V538.893z"/>
|
||||
</defs>
|
||||
<use xlink:href="#XMLID_7_" overflow="visible" fill="#262127"/>
|
||||
<clipPath id="XMLID_3_">
|
||||
<use xlink:href="#XMLID_7_" overflow="visible"/>
|
||||
</clipPath>
|
||||
</g>
|
||||
<path fill="#262127" d="M468.151,539.63l4.418-5.985c0,0,6.915-1.263,6.311,6.255L468.151,539.63z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#E17246" d="M494.062,361.818l-22.354-13.381c0,0-7.104,13.91-7.104,41.125c0,27.213-0.652,117.914-0.652,117.914
|
||||
h29.072L494.062,361.818"/>
|
||||
<polygon fill="#CF5E38" points="493.61,376.761 493.61,376.761 487.347,376.761 493.503,446.988 "/>
|
||||
</g>
|
||||
</g>
|
||||
<rect x="471.708" y="348.438" fill="#E17246" width="44.947" height="24.821"/>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#262127" d="M495.318,278.649c0,0-12.402-0.779-21.145,10.65c-7.775,10.165-2.466,59.138-2.466,59.138h44.947
|
||||
l0.647-57.893C517.302,290.545,507.89,279.406,495.318,278.649z"/>
|
||||
<polygon fill="#1E1A1A" points="506.648,308.439 514.426,320.669 503.961,318.688 "/>
|
||||
<polygon fill="#1E1A1A" points="516.654,341.816 516.654,348.438 481.869,340.557 487.54,329.127 516.544,335.992 "/>
|
||||
</g>
|
||||
<g>
|
||||
<circle fill="#ECC341" cx="453.762" cy="319.808" r="38.589"/>
|
||||
<g>
|
||||
<path fill="#E3A6A9" d="M421.531,296.626c-0.99,0-1.955,0.279-2.773,0.84c-1.404,0.962-3.272,2.836-3.466,6.066
|
||||
c-0.313,5.235,1.153,7.138,5.023,8.288l2.617-15.194H421.531z"/>
|
||||
<g>
|
||||
<path fill="#E3A6A9" d="M422.932,296.626h6.339c0.777,0,1.407,0.63,1.407,1.406v0.411c0,0.699-0.514,1.291-1.206,1.392
|
||||
l-9.68,1.396L422.932,296.626z"/>
|
||||
<path fill="#E3A6A9" d="M420.628,300.004l7.508,3.281c0.711,0.31,1.034,1.14,0.727,1.852l-0.028,0.059
|
||||
c-0.267,0.618-0.931,0.957-1.585,0.815l-7.85-1.695L420.628,300.004z"/>
|
||||
<path fill="#E3A6A9" d="M420.369,304.287l5.788,2.654c0.674,0.308,0.993,1.091,0.727,1.783l-0.009,0.021
|
||||
c-0.276,0.724-1.084,1.088-1.808,0.814l-6.706-2.271L420.369,304.287z"/>
|
||||
<path fill="#E3A6A9" d="M420.315,311.82l2.842,0.689c0.712,0.172,1.435-0.229,1.667-0.921l0,0
|
||||
c0.232-0.692-0.106-1.451-0.78-1.739l-5.073-2.701L420.315,311.82z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#262127" d="M517.302,290.545c0,0,6.516,7.234,23.64,38.337c1.526,2.773,1.761,6.101,0.352,8.934l0,0
|
||||
c-3.181,6.393-12.084,6.963-16.054,1.024c-5.537-8.278-18.625-30.128-18.591-30.4
|
||||
C506.712,307.938,517.302,290.545,517.302,290.545z"/>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#E3A6A9" d="M490.784,322.885l-2.166,10.798l-14.444-1.344c0,0,4.148-14.722,4.252-14.512
|
||||
C478.526,318.041,490.784,322.885,490.784,322.885z"/>
|
||||
<path fill="#E3A6A9" d="M490.784,322.885c-0.684-0.273-5.293-5.646-7.286-7.993c-0.482-0.568-1.396-0.559-1.924,0.019l0,0
|
||||
c-0.341,0.376-0.426,0.898-0.216,1.334l3.071,6.327L490.784,322.885z"/>
|
||||
<path fill="#E3A6A9" d="M478.426,317.827l-5.405-2.118c-0.724-0.285-1.58,0.097-1.855,0.827l0,0
|
||||
c-0.241,0.63,0.032,1.315,0.643,1.599l7.833,3.628L478.426,317.827z"/>
|
||||
<path fill="#E3A6A9" d="M477.297,321.421l-7.934-1.585c-0.751-0.153-1.513,0.325-1.686,1.063l0,0
|
||||
c-0.147,0.635,0.204,1.259,0.827,1.473l9.316,2.985L477.297,321.421z"/>
|
||||
<path fill="#E3A6A9" d="M476.781,325.501l-7.436-0.729c-0.831-0.086-1.601,0.507-1.717,1.313l0,0
|
||||
c-0.107,0.755,0.407,1.436,1.178,1.558l8.159,1.294L476.781,325.501z"/>
|
||||
<path fill="#E3A6A9" d="M474.174,332.339l-4.425-0.553c-0.63-0.084-1.063-0.629-0.987-1.247l0,0
|
||||
c0.076-0.588,0.589-1.055,1.203-1.09l7-0.514L474.174,332.339z"/>
|
||||
</g>
|
||||
<polygon fill="#E3A6A9" points="490.784,322.885 501.403,324.197 497.383,334.243 488.618,333.683 "/>
|
||||
</g>
|
||||
<path fill="#262127" d="M533.289,323.74l-37.514-6.461l-4.729,20.376l39.341,6.393c6.603,0.905,12.302-4.625,11.594-11.252l0,0
|
||||
C541.483,328.151,537.911,324.427,533.289,323.74z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<circle fill="#1E1A1A" cx="511.507" cy="228.209" r="13.362"/>
|
||||
<path fill="#262127" d="M471.134,251.8c1.529,11.128,9.542,20.601,21.057,20.778c7.333,0.114,22.389-8.088,22.562-19.312
|
||||
c0.175-11.226-7.787-22.735-23.201-22.973C480.036,230.117,469.445,239.539,471.134,251.8z"/>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#E3A6A9" d="M484.558,266.645l2.087,15.473c0.564,4.199,4.428,7.141,8.627,6.571l0,0
|
||||
c4.188-0.568,7.129-4.428,6.563-8.621l-2.012-14.901c-0.554-4.089-3.875-3.494-8.071-2.925l0,0
|
||||
C487.556,262.813,484.004,262.556,484.558,266.645z"/>
|
||||
</g>
|
||||
<path fill="#0C162E" d="M499.761,260.468c0,0,0.64,17.691-13.442,19.249l-1.381-10.225L499.761,260.468z"/>
|
||||
</g>
|
||||
<path fill="#E3A6A9" d="M487.219,275.315L487.219,275.315c-8.21-0.127-14.854-5.058-14.728-13.06l0.213-13.761
|
||||
c0.091-5.905,6.8-12.025,10.375-11.969l13.114,3.801c3.572,0.055,6.454,2.95,6.398,6.433l-0.21,13.708
|
||||
C502.255,268.47,494.143,275.422,487.219,275.315z"/>
|
||||
<g>
|
||||
<ellipse transform="matrix(-0.9985 0.0543 -0.0543 -0.9985 988.6508 485.2995)" fill="#262127" cx="487.735" cy="256.076" rx="1.183" ry="1.152"/>
|
||||
<ellipse transform="matrix(-0.9985 0.0546 -0.0546 -0.9985 967.079 485.2456)" fill="#262127" cx="476.917" cy="255.822" rx="1.181" ry="1.152"/>
|
||||
<path fill="none" stroke="#B17079" stroke-width="0.3399" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="
|
||||
M480.325,257.655l-0.37,3.298c0,0,0.172,1.745,2.729,1.116"/>
|
||||
<path fill="#262127" d="M490.969,252.761c-0.072,0.009-0.144,0.013-0.22,0.009l-5.346-0.304c-0.595-0.035-1.05-0.533-1.016-1.116
|
||||
c0.032-0.581,0.543-1.023,1.141-0.992l5.347,0.304c0.595,0.034,1.049,0.532,1.018,1.115
|
||||
C491.861,252.288,491.467,252.69,490.969,252.761z"/>
|
||||
<path fill="#262127" d="M478.084,252.278c-0.072,0.009-0.144,0.013-0.219,0.009l-3.268-0.187
|
||||
c-0.596-0.034-1.053-0.533-1.019-1.114c0.035-0.583,0.548-1.026,1.144-0.992l3.265,0.185c0.599,0.035,1.053,0.533,1.019,1.114
|
||||
C478.977,251.803,478.583,252.208,478.084,252.278z"/>
|
||||
<path fill="#FFFFF6" d="M487.735,264.769l-9.639-0.659c0,0,1.561,3.95,4.82,3.95
|
||||
C487.127,268.062,487.735,264.769,487.735,264.769z"/>
|
||||
</g>
|
||||
<path fill="#262127" d="M497.537,239.622c0,0-5.676,14.265,3.048,18.713l10.063-12.922L497.537,239.622z"/>
|
||||
<path fill="#E3A6A9" d="M507.482,258.186c-0.045,2.754-2.369,4.951-5.193,4.907c-2.826-0.043-5.081-2.311-5.037-5.065
|
||||
c0.04-2.754,2.365-4.951,5.191-4.907S507.526,255.432,507.482,258.186z"/>
|
||||
<path fill="#262127" d="M503.343,238.894c0,0-7.313,6.703-14.427,8.296c-8.14,1.824-20.364,0.648-20.364,0.648
|
||||
s8.116-15.07,19.525-13.745C499.485,235.418,503.343,238.894,503.343,238.894z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<polygon fill="#E3A6A9" points="241.943,344.807 231.657,334.503 227.534,345.856 233.949,352.227 "/>
|
||||
<path fill="#E3A6A9" d="M234.88,345.289c-4.432,2.629-5.891,8.356-3.258,12.79c2.632,4.432,8.357,5.892,12.791,3.26
|
||||
c4.431-2.633,5.891-8.36,3.259-12.792C245.039,344.113,239.312,342.657,234.88,345.289z"/>
|
||||
</g>
|
||||
<path fill="#3C6BE2" d="M217.328,307.274l23.443,30.222l-15.84,13.812l-24.245-31.87c-3.92-5.43-1.705-13.095,4.506-15.595
|
||||
h0.001C209.548,302.088,214.536,303.501,217.328,307.274z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#3C6BE2" d="M249.579,279.928c0,0-20.145,8.263-45.391,24.322c-2.683,1.707-4.498,4.521-4.625,7.698l0,0
|
||||
c-0.286,7.17,7.281,11.973,13.646,8.661c8.877-4.618,30.965-17.544,31.065-17.802
|
||||
C244.462,302.335,249.579,279.928,249.579,279.928z"/>
|
||||
<polygon fill="#3359AD" points="244.274,302.808 244.616,295.633 232.42,309.85 "/>
|
||||
</g>
|
||||
</g>
|
||||
<path fill="#3C6BE2" d="M273.046,274.375c0,0-16.081,0.656-28.026,7.953l-2.457,86.092h56.484l-2.939-90.236
|
||||
C296.108,278.184,286.576,275.677,273.046,274.375z"/>
|
||||
<g>
|
||||
<path fill="#3C6BE2" d="M289.917,276.819c0,0,21.486,1.974,49.562,6.017c3.146,0.451,5.879,2.472,7.204,5.364l0,0
|
||||
c2.989,6.523-2.503,12.744-9.335,13.195c0,0-44.207,1.403-44.958-0.593C292.21,300.326,289.917,276.819,289.917,276.819z"/>
|
||||
<g>
|
||||
<g>
|
||||
<polygon fill="#E3A6A9" points="341.954,244.593 338.419,258.714 350.273,256.405 352.432,247.626 "/>
|
||||
<circle fill="#E3A6A9" cx="347.517" cy="240.301" r="9.334"/>
|
||||
<path fill="#E3A6A9" d="M339.541,235.45l2.554-9.776c0.16-0.838,0.98-1.421,1.811-1.284l0,0
|
||||
c0.718,0.119,1.212,0.746,1.166,1.478l-0.886,10.867L339.541,235.45z"/>
|
||||
</g>
|
||||
<path fill="#3C6BE2" d="M327.546,288.836l7.21-37.562l20.834,2.773l-7.921,39.254c-1.488,6.526-8.708,9.926-14.686,6.915l0,0
|
||||
C328.79,298.105,326.556,293.427,327.546,288.836z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<polygon fill="#ECC341" points="242.472,368.42 241.132,387.032 300.178,386.7 298.959,368.42 "/>
|
||||
<g>
|
||||
<g>
|
||||
<polygon fill="#E3A6A9" points="309.632,541.575 294.372,541.575 291.737,520.944 307,520.944 "/>
|
||||
<g>
|
||||
<g>
|
||||
<defs>
|
||||
<path id="XMLID_10_" d="M294.008,539.113h19.356l14.147,6.743c3.196,1.645,5.208,4.94,5.208,8.534l0,0h-38.711V539.113z"/>
|
||||
</defs>
|
||||
<use xlink:href="#XMLID_10_" overflow="visible" fill="#262127"/>
|
||||
<clipPath id="XMLID_4_">
|
||||
<use xlink:href="#XMLID_10_" overflow="visible"/>
|
||||
</clipPath>
|
||||
</g>
|
||||
<path fill="#262127" d="M314.94,539.837l-4.355-5.903c0,0-6.819-1.245-6.223,6.166L314.94,539.837z"/>
|
||||
</g>
|
||||
</g>
|
||||
<polygon fill="#ECC341" points="268.283,376.761 284.843,524.759 313.057,524.759 299.251,376.761 "/>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<polygon fill="#E3A6A9" points="236.212,541.575 251.475,541.575 254.107,520.944 238.844,520.944 "/>
|
||||
<g>
|
||||
<g>
|
||||
<defs>
|
||||
<path id="XMLID_9_" d="M251.838,539.113h-19.357l-14.146,6.743c-3.199,1.645-5.211,4.94-5.211,8.534l0,0h38.714V539.113z"/>
|
||||
</defs>
|
||||
<use xlink:href="#XMLID_9_" overflow="visible" fill="#262127"/>
|
||||
<clipPath id="XMLID_11_">
|
||||
<use xlink:href="#XMLID_9_" overflow="visible"/>
|
||||
</clipPath>
|
||||
</g>
|
||||
<path fill="#262127" d="M230.904,539.837l4.357-5.903c0,0,6.817-1.245,6.222,6.166L230.904,539.837z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<polygon fill="#ECC341" points="272.814,376.761 259.775,524.759 231.565,524.759 241.846,376.761 "/>
|
||||
<polygon fill="#DDB237" points="270.806,399.313 254.593,398.912 270.038,408.266 "/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#E3A6A9" d="M260.788,248.52l0.567,27.211c0.101,4.83,3.927,8.752,8.752,8.976l0,0c5.173,0.24,9.522-3.846,9.604-9.023
|
||||
l0.366-22.85L260.788,248.52z"/>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#E3A6A9" d="M273.838,267.403l-0.561,0.002c-8.307,0.017-13.624-9.432-13.643-17.518l-1.467-13.623
|
||||
c-0.006-2.091,1.736-3.793,3.886-3.798l19.797-0.042c3.839-0.01,6.959,3.016,6.969,6.752l0.029,15.904
|
||||
C288.867,263.167,282.146,267.386,273.838,267.403z"/>
|
||||
<path fill="#E3A6A9" d="M288.331,246.807l2.594,4.755c0.376,0.687-0.123,1.521-0.903,1.521h-2.619L288.331,246.807z"/>
|
||||
</g>
|
||||
<path fill="#0B0006" d="M279.864,266.556v-3.618c0,0,1.36,1.808,3.933,1.803C283.796,264.741,281.66,266.23,279.864,266.556z"/>
|
||||
</g>
|
||||
<path fill="#3C6BE2" d="M261.367,276.066c0,0,6.94,7.418,18.347-0.638l2.115,9.288l-22.533,0.461L261.367,276.066z"/>
|
||||
<path fill="#3C6BE2" d="M261.367,276.066c0,0,6.94,7.418,18.347-0.638l2.115,9.288l-22.533,0.461L261.367,276.066z"/>
|
||||
<path fill="#0B0006" d="M293.861,226.347c0.047-1.023-0.05-2.088-0.338-3.179c-0.903-3.392-3.726-6.071-7.138-6.888
|
||||
c-5.891-1.412-11.315,2.53-12.18,8.074c-5.828-4.443-12.69,0.522-12.888,4.757c-13.612,0.179-12.603,12.9-10.764,17.684
|
||||
l-0.006,0.001c0.743,2.582,7.448,10.216,9.125,12.096v1.494c0,1.876,1.525,3.394,3.399,3.385l10.507-0.052
|
||||
c1.861-0.009,3.365-1.521,3.365-3.384v-13.069l0.805,1.733c0.257-0.172,3.14-3.276,3.024-8.294
|
||||
c3.819-1.294,9.097-3.889,11.653-8.827c1.285-2.029,1.438-5.522,1.441-5.53L293.861,226.347z"/>
|
||||
<ellipse transform="matrix(1 -0.0021 0.0021 1 -0.5218 0.5764)" fill="#E3A6A9" cx="275.769" cy="250.177" rx="4.092" ry="4.837"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<polygon fill="#3C6BE2" points="724.017,365.782 724.327,384.799 666.523,384.799 666.731,365.782 "/>
|
||||
<g>
|
||||
<g>
|
||||
<rect x="699.867" y="520.469" fill="#E3A6A9" width="15.479" height="20.925"/>
|
||||
<g>
|
||||
<g>
|
||||
<defs>
|
||||
<path id="XMLID_8_" d="M699.867,538.893h19.632l14.345,6.844c3.246,1.668,5.283,5.008,5.283,8.654l0,0h-39.26V538.893z"/>
|
||||
</defs>
|
||||
<use xlink:href="#XMLID_8_" overflow="visible" fill="#262127"/>
|
||||
<clipPath id="XMLID_12_">
|
||||
<use xlink:href="#XMLID_8_" overflow="visible"/>
|
||||
</clipPath>
|
||||
</g>
|
||||
<path fill="#262127" d="M721.097,539.63l-4.418-5.985c0,0-6.916-1.263-6.311,6.255L721.097,539.63z"/>
|
||||
</g>
|
||||
</g>
|
||||
<polygon fill="#3C6BE2" points="692.607,374.242 698.683,524.338 727.294,524.338 724.017,374.242 "/>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<rect x="670.68" y="520.469" fill="#E3A6A9" width="15.479" height="20.925"/>
|
||||
<g>
|
||||
<g>
|
||||
<defs>
|
||||
<path id="XMLID_6_" d="M686.158,538.893h-19.63l-14.347,6.844c-3.242,1.668-5.282,5.008-5.282,8.654l0,0h39.259V538.893z"/>
|
||||
</defs>
|
||||
<use xlink:href="#XMLID_6_" overflow="visible" fill="#262127"/>
|
||||
<clipPath id="XMLID_13_">
|
||||
<use xlink:href="#XMLID_6_" overflow="visible"/>
|
||||
</clipPath>
|
||||
</g>
|
||||
<path fill="#262127" d="M664.93,539.63l4.418-5.985c0,0,6.915-1.263,6.311,6.255L664.93,539.63z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<polygon fill="#3C6BE2" points="666.731,377.491 662.573,524.338 692.607,524.338 694.265,379.863 "/>
|
||||
<polygon fill="#3359AD" points="694.202,385.394 687.691,385.394 693.24,469.361 "/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#E17246" d="M693.099,270.404c0,0,16.31,0.666,28.428,8.065l2.49,87.313h-57.285l2.863-87.89
|
||||
C669.595,277.893,679.381,271.724,693.099,270.404z"/>
|
||||
<polygon fill="#D66538" points="715.71,303.053 722.55,314.459 722.55,320.581 715.243,323.752 "/>
|
||||
<path fill="#D66538" d="M723.225,343.892l-16.758,6.868l-2.219-6.035l-9.983,0.611l-5.148,0.432l-2.484,4.635
|
||||
c0,0,0.223,2.596,4.314,1.727c4.096-0.868,3.3,5.058,11.359,2.89l4.154-1.589l1.878,3.033l15.25-5.703L723.225,343.892z"/>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<polygon fill="#E3A6A9" points="600.323,277.127 608.506,282.284 602.476,291.415 594.85,286.562 "/>
|
||||
<path fill="#E3A6A9" d="M602.217,280.749c-1.592,4.903-6.856,7.592-11.761,6c-4.9-1.588-7.589-6.852-5.997-11.756
|
||||
c1.588-4.904,6.853-7.589,11.757-6C601.119,270.583,603.805,275.847,602.217,280.749z"/>
|
||||
<path fill="#E3A6A9" d="M595.745,268.854l-8.604-5.3c-0.693-0.495-1.689-0.347-2.194,0.325l0,0
|
||||
c-0.438,0.583-0.363,1.377,0.18,1.874l8.152,7.24L595.745,268.854z"/>
|
||||
</g>
|
||||
<path fill="#E17246" d="M642.717,294.746l-33.918-18.821l-11.396,18.015l35.699,19.368c6.048,3.087,13.386-0.319,14.931-6.932
|
||||
l0,0C649.118,301.74,646.934,296.959,642.717,294.746z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#E17246" d="M673.073,276.036c0,0-15.837,6.853-40.892,20.988c-2.808,1.582-4.65,4.496-4.838,7.717l0,0
|
||||
c-0.43,7.265,7.047,11.127,13.668,9.044c0,0,33.155-10.883,33.134-13.045C674.139,300.227,673.073,276.036,673.073,276.036z"/>
|
||||
<polygon fill="#D66538" points="668.749,303.786 668.981,295.66 658.07,307.896 "/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#3C6BE2" d="M759.24,352.022l-106.143-11.052c-2.372-0.237-4.105-2.354-3.87-4.728l1.278-12.792
|
||||
c0.238-2.375,2.356-4.107,4.729-3.869l106.143,11.051c2.376,0.239,4.104,2.354,3.87,4.729l-1.278,12.791
|
||||
C763.73,350.527,761.616,352.261,759.24,352.022z"/>
|
||||
<g>
|
||||
<path fill="#E17246" d="M721.526,278.469c0,0,11.628,15.835,26.333,40.561c1.648,2.77,1.796,6.214,0.36,9.1l0,0
|
||||
c-3.243,6.514-12.314,7.095-16.359,1.047c-5.64-8.435-18.979-30.701-18.945-30.98
|
||||
C712.98,297.686,721.526,278.469,721.526,278.469z"/>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#E3A6A9" d="M703.73,347.602c0,0-4.518,8.363-13.082,7.288c-9.886-1.241-10.732-9.074-6.229-10.656l6.678,0.498
|
||||
c0,0,0.126-4.324,4.277-6.167c0.956-0.427,2.13-0.721,3.565-0.8L703.73,347.602z"/>
|
||||
<polygon fill="#E3A6A9" points="702.54,348.077 712.69,343.312 707.742,334.601 698.939,337.765 "/>
|
||||
<path fill="#E3A6A9" d="M696.885,338.057l-9.216,1.667c-0.604,0.132-1.037,0.668-1.037,1.284l0,0
|
||||
c0,0.684,0.52,1.251,1.196,1.313l8.913,0.746L696.885,338.057z"/>
|
||||
</g>
|
||||
<path fill="#E17246" d="M734.702,315.308l-35.586,15.442l7.351,20.01l37.103-16.52c6.133-2.914,7.899-10.813,3.598-16.065l0,0
|
||||
C744.15,314.493,739.023,313.315,734.702,315.308z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#E3A6A9" d="M704.063,245.753l-0.715,27.468c-0.128,4.875-4.011,8.813-8.883,9.014l0,0
|
||||
c-5.224,0.216-9.592-3.929-9.649-9.16l-0.246-23.067L704.063,245.753z"/>
|
||||
<path fill="#262127" d="M702.819,251.104c0,0-1.209,20.611-18.04,16.712l-0.091-8.301L702.819,251.104z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#262127" d="M674.652,224.433c0,0-9,6.524-1.081,15.29c7.921,8.764,6.774-15.29,6.774-15.29H674.652z"/>
|
||||
<path fill="#262127" d="M706.473,244.512c0,0,12.228-17.28-4.679-21.667l1.223,22.614L706.473,244.512z"/>
|
||||
<path fill="#E3A6A9" d="M688.581,263.552l0.566,0.004c8.39,0.063,15.235-6.685,15.298-15.071l0.125-17.145
|
||||
c0.02-2.172-1.729-3.943-3.901-3.959l-19.984-0.148c-3.877-0.028-7.042,3.091-7.073,6.969l-0.103,14.055
|
||||
C673.446,256.642,680.195,263.491,688.581,263.552z"/>
|
||||
<g>
|
||||
<circle fill="#262127" cx="689.943" cy="243.412" r="1.237"/>
|
||||
<path fill="#262127" d="M677.027,243.432c0.051,0.684,0.644,1.197,1.322,1.15c0.684-0.048,1.197-0.639,1.15-1.323
|
||||
c-0.047-0.683-0.639-1.197-1.322-1.149C677.494,242.159,676.98,242.751,677.027,243.432z"/>
|
||||
<path fill="none" stroke="#B17079" stroke-width="0.3399" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="
|
||||
M681.922,245.522l-0.43,2.964c0,0,0.205,1.874,2.874,1.158"/>
|
||||
<path fill="#262127" d="M693.24,238.71c-0.074,0.013-0.15,0.016-0.229,0.015l-5.606-0.248c-0.627-0.028-1.109-0.558-1.084-1.184
|
||||
c0.028-0.625,0.556-1.107,1.185-1.083l5.605,0.247c0.624,0.028,1.109,0.557,1.081,1.183
|
||||
C694.171,238.187,693.761,238.627,693.24,238.71z"/>
|
||||
<path fill="#262127" d="M679.394,238.43c-0.075,0.011-0.154,0.016-0.229,0.013l-3.427-0.15
|
||||
c-0.628-0.028-1.113-0.558-1.085-1.183c0.028-0.626,0.558-1.11,1.182-1.084l3.429,0.15c0.626,0.028,1.111,0.558,1.083,1.183
|
||||
C680.32,237.906,679.913,238.347,679.394,238.43z"/>
|
||||
<path fill="none" stroke="#B17079" stroke-width="0.3399" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="
|
||||
M691.019,250.202c0,0-4.932,4.975-12.296,1.08"/>
|
||||
</g>
|
||||
<path fill="#262127" d="M701.588,223.261l0.206-0.415c0,0-3.484-0.672-5.186-4.724c-0.278-0.845-0.674-1.778-1.26-2.833
|
||||
c-3.615-6.532-15.332-6.632-19.991-1.682c-4.659,4.951-3.704,12.47,1.873,17.143c4.541,3.805,12.638,1.139,15.492,0.016
|
||||
c0.702-0.275,1.461-0.363,2.207-0.246l1.676,0.267c-0.436,4.502,2.729,7.656,2.729,7.656v6.863h1.667l3.71-1.96l3.067-12.799
|
||||
C707.779,230.547,705.397,222.352,701.588,223.261z"/>
|
||||
<circle fill="#E3A6A9" cx="705.886" cy="245.343" r="4.884"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 32 KiB |
BIN
hotgo-uniapp/static/jeesite/favicon.png
Normal file
|
After Width: | Height: | Size: 4.7 KiB |
BIN
hotgo-uniapp/static/jeesite/login/eye_close.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
hotgo-uniapp/static/jeesite/login/eye_open.png
Normal file
|
After Width: | Height: | Size: 4.6 KiB |
BIN
hotgo-uniapp/static/jeesite/logo200.png
Normal file
|
After Width: | Height: | Size: 6.8 KiB |
BIN
hotgo-uniapp/static/jeesite/tabbar/home_1.png
Normal file
|
After Width: | Height: | Size: 760 B |
BIN
hotgo-uniapp/static/jeesite/tabbar/home_2.png
Normal file
|
After Width: | Height: | Size: 1020 B |
BIN
hotgo-uniapp/static/jeesite/tabbar/msg_1.png
Normal file
|
After Width: | Height: | Size: 835 B |
BIN
hotgo-uniapp/static/jeesite/tabbar/msg_2.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
hotgo-uniapp/static/jeesite/tabbar/my_1.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
hotgo-uniapp/static/jeesite/tabbar/my_2.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
hotgo-uniapp/static/uview/common/favicon.ico
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
hotgo-uniapp/static/uview/common/logo.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
hotgo-uniapp/static/uview/example/component.png
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
BIN
hotgo-uniapp/static/uview/example/component_select.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
hotgo-uniapp/static/uview/example/js.png
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
hotgo-uniapp/static/uview/example/js_bak.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
hotgo-uniapp/static/uview/example/js_select.png
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
hotgo-uniapp/static/uview/example/js_select_bak.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
hotgo-uniapp/static/uview/example/min_button.png
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
BIN
hotgo-uniapp/static/uview/example/min_button_select.png
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
BIN
hotgo-uniapp/static/uview/example/template.png
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
BIN
hotgo-uniapp/static/uview/example/template_select.png
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
27
hotgo-uniapp/store/$u.mixin.js
Normal file
@@ -0,0 +1,27 @@
|
||||
import { mapState } from 'vuex'
|
||||
import store from "@/store"
|
||||
|
||||
// 尝试将用户在根目录中的store/index.js的vuex的state变量,全部加载到全局变量中
|
||||
let $uStoreKey = [];
|
||||
try{
|
||||
$uStoreKey = store.state ? Object.keys(store.state) : [];
|
||||
}catch(e){
|
||||
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
beforeCreate() {
|
||||
// 将vuex方法挂在到$u中
|
||||
// 使用方法为:如果要修改vuex的state中的user.name变量为"史诗" => this.$u.vuex('user.name', '史诗')
|
||||
// 如果要修改vuex的state的version变量为1.0.1 => this.$u.vuex('version', '1.0.1')
|
||||
this.$u.vuex = (name, value) => {
|
||||
this.$store.commit('$uStore', {
|
||||
name,value
|
||||
})
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
// 将vuex的state中的所有变量,解构到全局混入的mixin中
|
||||
...mapState($uStoreKey)
|
||||
}
|
||||
}
|
||||
93
hotgo-uniapp/store/index.js
Normal file
@@ -0,0 +1,93 @@
|
||||
/**
|
||||
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
|
||||
*/
|
||||
import config from '@/common/config.js';
|
||||
import Vue from 'vue'
|
||||
import Vuex from 'vuex'
|
||||
Vue.use(Vuex)
|
||||
|
||||
let lifeData = {};
|
||||
|
||||
try{
|
||||
// 尝试获取本地是否存在lifeData变量,第一次启动APP时是不存在的
|
||||
lifeData = uni.getStorageSync('lifeData');
|
||||
}catch(e){
|
||||
|
||||
}
|
||||
|
||||
// 需要永久存储,且下次APP启动需要取出的,在state中的变量名
|
||||
let saveStateKeys = ['vuex_user', 'vuex_token', 'vuex_remember', 'vuex_locale'];
|
||||
|
||||
// 保存变量到本地存储中
|
||||
const saveLifeData = function(key, value){
|
||||
// 判断变量名是否在需要存储的数组中
|
||||
if(saveStateKeys.indexOf(key) != -1) {
|
||||
// 获取本地存储的lifeData对象,将变量添加到对象中
|
||||
let tmp = uni.getStorageSync('lifeData');
|
||||
// 第一次打开APP,不存在lifeData变量,故放一个{}空对象
|
||||
tmp = tmp ? tmp : {};
|
||||
tmp[key] = value;
|
||||
// 执行这一步后,所有需要存储的变量,都挂载在本地的lifeData对象中
|
||||
uni.setStorageSync('lifeData', tmp);
|
||||
}
|
||||
}
|
||||
// 简化 vuex 操作,文档:https://uviewui.com/components/vuexDetail.html
|
||||
const store = new Vuex.Store({
|
||||
state: {
|
||||
// 如果上面从本地获取的lifeData对象下有对应的属性,就赋值给state中对应的变量
|
||||
// 加上vuex_前缀,是防止变量名冲突,也让人一目了然
|
||||
vuex_user: lifeData.vuex_user ? lifeData.vuex_user : {userName: 'JeeSite'},
|
||||
vuex_token: lifeData.vuex_token ? lifeData.vuex_token : '',
|
||||
vuex_remember: lifeData.vuex_remember ? lifeData.vuex_remember : '',
|
||||
vuex_locale: lifeData.vuex_locale ? lifeData.vuex_locale : '',
|
||||
|
||||
// 如果vuex_version无需保存到本地永久存储,无需lifeData.vuex_version方式
|
||||
vuex_config: config,
|
||||
|
||||
// 自定义tabbar数据
|
||||
// vuex_tabbar: [{
|
||||
// iconPath: "/static/uview/example/component.png",
|
||||
// selectedIconPath: "/static/uview/example/component_select.png",
|
||||
// text: '组件',
|
||||
// pagePath: '/pages/example/components'
|
||||
// },
|
||||
// {
|
||||
// iconPath: "/static/uview/example/js.png",
|
||||
// selectedIconPath: "/static/uview/example/js_select.png",
|
||||
// text: '工具',
|
||||
// midButton: true,
|
||||
// pagePath: '/pages/example/js'
|
||||
// },
|
||||
// {
|
||||
// iconPath: "/static/uview/example/template.png",
|
||||
// selectedIconPath: "/static/uview/example/template_select.png",
|
||||
// text: '模板',
|
||||
// pagePath: '/pages/example/template'
|
||||
// }
|
||||
// ]
|
||||
},
|
||||
mutations: {
|
||||
$uStore(state, payload) {
|
||||
// 判断是否多层级调用,state中为对象存在的情况,诸如user.info.score = 1
|
||||
let nameArr = payload.name.split('.');
|
||||
let saveKey = '';
|
||||
let len = nameArr.length;
|
||||
if(len >= 2) {
|
||||
let obj = state[nameArr[0]];
|
||||
for(let i = 1; i < len - 1; i ++) {
|
||||
obj = obj[nameArr[i]];
|
||||
}
|
||||
obj[nameArr[len - 1]] = payload.value;
|
||||
saveKey = nameArr[0];
|
||||
} else {
|
||||
// 单层级变量,在state就是一个普通变量的情况
|
||||
state[payload.name] = payload.value;
|
||||
saveKey = payload.name;
|
||||
}
|
||||
// 保存变量到本地,见顶部函数定义
|
||||
saveLifeData(saveKey, state[saveKey])
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
export default store
|
||||
41
hotgo-uniapp/uni.scss
Normal file
@@ -0,0 +1,41 @@
|
||||
/**
|
||||
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
|
||||
* 下方引入的为uView UI的集成样式文件,为scss预处理器,其中包含了一些"u-"开头的自定义变量
|
||||
* 使用的时候,请将下面的一行复制到您的uniapp项目根目录的uni.scss中即可
|
||||
* uView自定义的css类名和scss变量,均以"u-"开头,不会造成冲突,请放心使用
|
||||
*/
|
||||
|
||||
$u-main-color: #303133;
|
||||
$u-content-color: #505256;
|
||||
$u-tips-color: #909399;
|
||||
$u-light-color: #c0c4cc;
|
||||
$u-border-color: #e4e7ed;
|
||||
$u-bg-color: #f3f4f6;
|
||||
|
||||
$u-type-primary: #2979ff;
|
||||
$u-type-primary-light: #ecf5ff;
|
||||
$u-type-primary-disabled: #a0cfff;
|
||||
$u-type-primary-dark: #2b85e4;
|
||||
|
||||
$u-type-warning: #ff9900;
|
||||
$u-type-warning-disabled: #fcbd71;
|
||||
$u-type-warning-dark: #f29100;
|
||||
$u-type-warning-light: #fdf6ec;
|
||||
|
||||
$u-type-success: #19be6b;
|
||||
$u-type-success-disabled: #71d5a1;
|
||||
$u-type-success-dark: #18b566;
|
||||
$u-type-success-light: #dbf1e1;
|
||||
|
||||
$u-type-error: #fa3534;
|
||||
$u-type-error-disabled: #fab6b6;
|
||||
$u-type-error-dark: #dd6161;
|
||||
$u-type-error-light: #fef0f0;
|
||||
|
||||
$u-type-info: #909399;
|
||||
$u-type-info-disabled: #c8c9cc;
|
||||
$u-type-info-dark: #82848a;
|
||||
$u-type-info-light: #f4f4f5;
|
||||
|
||||
$u-form-item-height: 70rpx;
|
||||
$u-form-item-border-color: #dcdfe6;
|
||||
BIN
hotgo-uniapp/unpackage/res/icons/1024x1024.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
hotgo-uniapp/unpackage/res/icons/120x120.png
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
BIN
hotgo-uniapp/unpackage/res/icons/144x144.png
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
BIN
hotgo-uniapp/unpackage/res/icons/152x152.png
Normal file
|
After Width: | Height: | Size: 4.8 KiB |
BIN
hotgo-uniapp/unpackage/res/icons/167x167.png
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
BIN
hotgo-uniapp/unpackage/res/icons/180x180.png
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
hotgo-uniapp/unpackage/res/icons/192x192.png
Normal file
|
After Width: | Height: | Size: 6.1 KiB |
BIN
hotgo-uniapp/unpackage/res/icons/20x20.png
Normal file
|
After Width: | Height: | Size: 433 B |
BIN
hotgo-uniapp/unpackage/res/icons/29x29.png
Normal file
|
After Width: | Height: | Size: 690 B |
BIN
hotgo-uniapp/unpackage/res/icons/40x40.png
Normal file
|
After Width: | Height: | Size: 1019 B |
BIN
hotgo-uniapp/unpackage/res/icons/58x58.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
hotgo-uniapp/unpackage/res/icons/60x60.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
hotgo-uniapp/unpackage/res/icons/72x72.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
hotgo-uniapp/unpackage/res/icons/76x76.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
hotgo-uniapp/unpackage/res/icons/80x80.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
hotgo-uniapp/unpackage/res/icons/87x87.png
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
hotgo-uniapp/unpackage/res/icons/96x96.png
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
21
hotgo-uniapp/uview-ui/LICENSE
Normal file
@@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2020 www.uviewui.com
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
106
hotgo-uniapp/uview-ui/README.md
Normal file
@@ -0,0 +1,106 @@
|
||||
<p align="center">
|
||||
<img alt="logo" src="https://uviewui.com/common/logo.png" width="120" height="120" style="margin-bottom: 10px;">
|
||||
</p>
|
||||
<h3 align="center" style="margin: 30px 0 30px;font-weight: bold;font-size:40px;">uView</h3>
|
||||
<h3 align="center">多平台快速开发的UI框架</h3>
|
||||
|
||||
|
||||
## 说明
|
||||
|
||||
uView UI,是[uni-app](https://uniapp.dcloud.io/)生态优秀的UI框架,全面的组件和便捷的工具会让您信手拈来,如鱼得水
|
||||
|
||||
## 特性
|
||||
|
||||
- 兼容安卓,iOS,微信小程序,H5,QQ小程序,百度小程序,支付宝小程序,头条小程序
|
||||
- 60+精选组件,功能丰富,多端兼容,让您快速集成,开箱即用
|
||||
- 众多贴心的JS利器,让您飞镖在手,召之即来,百步穿杨
|
||||
- 众多的常用页面和布局,让您专注逻辑,事半功倍
|
||||
- 详尽的文档支持,现代化的演示效果
|
||||
- 按需引入,精简打包体积
|
||||
|
||||
|
||||
## 安装
|
||||
|
||||
```bash
|
||||
# npm方式安装
|
||||
npm i uview-ui
|
||||
```
|
||||
|
||||
## 快速上手
|
||||
|
||||
1. `main.js`引入uView库
|
||||
```js
|
||||
// main.js
|
||||
import uView from 'uview-ui';
|
||||
Vue.use(uView);
|
||||
```
|
||||
|
||||
2. `App.vue`引入基础样式(注意style标签需声明scss属性支持)
|
||||
```css
|
||||
/* App.vue */
|
||||
<style lang="scss">
|
||||
@import "uview-ui/index.scss";
|
||||
</style>
|
||||
```
|
||||
|
||||
3. `uni.scss`引入全局scss变量文件
|
||||
```css
|
||||
/* uni.scss */
|
||||
@import "uview-ui/theme.scss";
|
||||
```
|
||||
|
||||
4. `pages.json`配置easycom规则(按需引入)
|
||||
|
||||
```js
|
||||
// pages.json
|
||||
{
|
||||
"easycom": {
|
||||
// npm安装的方式不需要前面的"@/",下载安装的方式需要"@/"
|
||||
// npm安装方式
|
||||
"^u-(.*)": "uview-ui/components/u-$1/u-$1.vue"
|
||||
// 下载安装方式
|
||||
// "^u-(.*)": "@/uview-ui/components/u-$1/u-$1.vue"
|
||||
},
|
||||
// 此为本身已有的内容
|
||||
"pages": [
|
||||
// ......
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
请通过[快速上手](https://uviewui.com/components/quickstart.html)了解更详细的内容
|
||||
|
||||
## 使用方法
|
||||
配置easycom规则后,自动按需引入,无需`import`组件,直接引用即可。
|
||||
|
||||
```html
|
||||
<template>
|
||||
<u-button>按钮</u-button>
|
||||
</template>
|
||||
```
|
||||
|
||||
请通过[快速上手](https://uviewui.com/components/quickstart.html)了解更详细的内容
|
||||
|
||||
## 链接
|
||||
|
||||
- [官方文档](https://uviewui.com/)
|
||||
- [更新日志](https://uviewui.com/components/changelog.html)
|
||||
- [升级指南](https://uviewui.com/components/changelog.html)
|
||||
- [关于我们](https://uviewui.com/cooperation/about.html)
|
||||
|
||||
## 预览
|
||||
|
||||
您可以通过**微信**扫码,查看最佳的演示效果。
|
||||
<br>
|
||||
<br>
|
||||
<img src="https://uviewui.com/common/weixin_mini_qrcode.png" width="220" height="220" >
|
||||
|
||||
<!-- ## 捐赠uView的研发
|
||||
|
||||
uView文档和源码全部开源免费,如果您认为uView帮到了您的开发工作,您可以捐赠uView的研发工作,捐赠无门槛,哪怕是一杯可乐也好(相信这比打赏主播更有意义)。
|
||||
|
||||
<img src="https://uviewui.com/common/wechat.png" width="220" >
|
||||
<img style="margin-left: 100px;" src="https://uviewui.com/common/alipay.png" width="220" >
|
||||
-->
|
||||
## 版权信息
|
||||
uView遵循[MIT](https://en.wikipedia.org/wiki/MIT_License)开源协议,意味着您无需支付任何费用,也无需授权,即可将uView应用到您的产品中。
|
||||
@@ -0,0 +1,190 @@
|
||||
<template>
|
||||
<u-popup mode="bottom" :border-radius="borderRadius" :popup="false" v-model="value" :maskCloseAble="maskCloseAble"
|
||||
length="auto" :safeAreaInsetBottom="safeAreaInsetBottom" @close="popupClose" :z-index="uZIndex">
|
||||
<view class="u-tips u-border-bottom" v-if="tips.text" :style="[tipsStyle]">
|
||||
{{tips.text}}
|
||||
</view>
|
||||
<block v-for="(item, index) in list" :key="index">
|
||||
<view
|
||||
@touchmove.stop.prevent
|
||||
@tap="itemClick(index)"
|
||||
:style="[itemStyle(index)]"
|
||||
class="u-action-sheet-item u-line-1"
|
||||
:class="[index < list.length - 1 ? 'u-border-bottom' : '']"
|
||||
:hover-stay-time="150"
|
||||
>
|
||||
<text>{{item.text}}</text>
|
||||
<text class="u-action-sheet-item__subtext u-line-1" v-if="item.subText">{{item.subText}}</text>
|
||||
</view>
|
||||
</block>
|
||||
<view class="u-gab" v-if="cancelBtn">
|
||||
</view>
|
||||
<view @touchmove.stop.prevent class="u-actionsheet-cancel u-action-sheet-item" hover-class="u-hover-class"
|
||||
:hover-stay-time="150" v-if="cancelBtn" @tap="close">{{cancelText}}</view>
|
||||
</u-popup>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
/**
|
||||
* actionSheet 操作菜单
|
||||
* @description 本组件用于从底部弹出一个操作菜单,供用户选择并返回结果。本组件功能类似于uni的uni.showActionSheetAPI,配置更加灵活,所有平台都表现一致。
|
||||
* @tutorial https://www.uviewui.com/components/actionSheet.html
|
||||
* @property {Array<Object>} list 按钮的文字数组,见官方文档示例
|
||||
* @property {Object} tips 顶部的提示文字,见官方文档示例
|
||||
* @property {String} cancel-text 取消按钮的提示文字
|
||||
* @property {Boolean} cancel-btn 是否显示底部的取消按钮(默认true)
|
||||
* @property {Number String} border-radius 弹出部分顶部左右的圆角值,单位rpx(默认0)
|
||||
* @property {Boolean} mask-close-able 点击遮罩是否可以关闭(默认true)
|
||||
* @property {Boolean} safe-area-inset-bottom 是否开启底部安全区适配(默认false)
|
||||
* @property {Number String} z-index z-index值(默认1075)
|
||||
* @property {String} cancel-text 取消按钮的提示文字
|
||||
* @event {Function} click 点击ActionSheet列表项时触发
|
||||
* @event {Function} close 点击取消按钮时触发
|
||||
* @example <u-action-sheet :list="list" @click="click" v-model="show"></u-action-sheet>
|
||||
*/
|
||||
export default {
|
||||
name: "u-action-sheet",
|
||||
props: {
|
||||
// 点击遮罩是否可以关闭actionsheet
|
||||
maskCloseAble: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
// 按钮的文字数组,可以自定义颜色和字体大小,字体单位为rpx
|
||||
list: {
|
||||
type: Array,
|
||||
default () {
|
||||
// 如下
|
||||
// return [{
|
||||
// text: '确定',
|
||||
// color: '',
|
||||
// fontSize: ''
|
||||
// }]
|
||||
return [];
|
||||
}
|
||||
},
|
||||
// 顶部的提示文字
|
||||
tips: {
|
||||
type: Object,
|
||||
default () {
|
||||
return {
|
||||
text: '',
|
||||
color: '',
|
||||
fontSize: '26'
|
||||
}
|
||||
}
|
||||
},
|
||||
// 底部的取消按钮
|
||||
cancelBtn: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
// 是否开启底部安全区适配,开启的话,会在iPhoneX机型底部添加一定的内边距
|
||||
safeAreaInsetBottom: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
// 通过双向绑定控制组件的弹出与收起
|
||||
value: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
// 弹出的顶部圆角值
|
||||
borderRadius: {
|
||||
type: [String, Number],
|
||||
default: 0
|
||||
},
|
||||
// 弹出的z-index值
|
||||
zIndex: {
|
||||
type: [String, Number],
|
||||
default: 0
|
||||
},
|
||||
// 取消按钮的文字提示
|
||||
cancelText: {
|
||||
type: String,
|
||||
default: '取消'
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
// 顶部提示的样式
|
||||
tipsStyle() {
|
||||
let style = {};
|
||||
if (this.tips.color) style.color = this.tips.color;
|
||||
if (this.tips.fontSize) style.fontSize = this.tips.fontSize + 'rpx';
|
||||
return style;
|
||||
},
|
||||
// 操作项目的样式
|
||||
itemStyle() {
|
||||
return (index) => {
|
||||
let style = {};
|
||||
if (this.list[index].color) style.color = this.list[index].color;
|
||||
if (this.list[index].fontSize) style.fontSize = this.list[index].fontSize + 'rpx';
|
||||
// 选项被禁用的样式
|
||||
if (this.list[index].disabled) style.color = '#c0c4cc';
|
||||
return style;
|
||||
}
|
||||
},
|
||||
uZIndex() {
|
||||
// 如果用户有传递z-index值,优先使用
|
||||
return this.zIndex ? this.zIndex : this.$u.zIndex.popup;
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 点击取消按钮
|
||||
close() {
|
||||
// 发送input事件,并不会作用于父组件,而是要设置组件内部通过props传递的value参数
|
||||
// 这是一个vue发送事件的特殊用法
|
||||
this.popupClose();
|
||||
this.$emit('close');
|
||||
},
|
||||
// 弹窗关闭
|
||||
popupClose() {
|
||||
this.$emit('input', false);
|
||||
},
|
||||
// 点击某一个item
|
||||
itemClick(index) {
|
||||
// disabled的项禁止点击
|
||||
if(this.list[index].disabled) return;
|
||||
this.$emit('click', index);
|
||||
this.$emit('input', false);
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import "../../libs/css/style.components.scss";
|
||||
|
||||
.u-tips {
|
||||
font-size: 26rpx;
|
||||
text-align: center;
|
||||
padding: 34rpx 0;
|
||||
line-height: 1;
|
||||
color: $u-tips-color;
|
||||
}
|
||||
|
||||
.u-action-sheet-item {
|
||||
@include vue-flex;;
|
||||
line-height: 1;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-size: 32rpx;
|
||||
padding: 34rpx 0;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.u-action-sheet-item__subtext {
|
||||
font-size: 24rpx;
|
||||
color: $u-tips-color;
|
||||
margin-top: 20rpx;
|
||||
}
|
||||
|
||||
.u-gab {
|
||||
height: 12rpx;
|
||||
background-color: rgb(234, 234, 236);
|
||||
}
|
||||
|
||||
.u-actionsheet-cancel {
|
||||
color: $u-main-color;
|
||||
}
|
||||
</style>
|
||||
256
hotgo-uniapp/uview-ui/components/u-alert-tips/u-alert-tips.vue
Normal file
@@ -0,0 +1,256 @@
|
||||
<template>
|
||||
<view class="u-alert-tips" v-if="show" :class="[
|
||||
!show ? 'u-close-alert-tips': '',
|
||||
type ? 'u-alert-tips--bg--' + type + '-light' : '',
|
||||
type ? 'u-alert-tips--border--' + type + '-disabled' : '',
|
||||
]" :style="{
|
||||
backgroundColor: bgColor,
|
||||
borderColor: borderColor
|
||||
}">
|
||||
<view class="u-icon-wrap">
|
||||
<u-icon v-if="showIcon" :name="uIcon" :size="description ? 40 : 32" class="u-icon" :color="uIconType" :custom-style="iconStyle"></u-icon>
|
||||
</view>
|
||||
<view class="u-alert-content" @tap.stop="click">
|
||||
<view class="u-alert-title" :style="[uTitleStyle]">
|
||||
{{title}}
|
||||
</view>
|
||||
<view v-if="description" class="u-alert-desc" :style="[descStyle]">
|
||||
{{description}}
|
||||
</view>
|
||||
</view>
|
||||
<view class="u-icon-wrap">
|
||||
<u-icon @click="close" v-if="closeAble && !closeText" hoverClass="u-type-error-hover-color" name="close" color="#c0c4cc"
|
||||
:size="22" class="u-close-icon" :style="{
|
||||
top: description ? '18rpx' : '24rpx'
|
||||
}"></u-icon>
|
||||
</view>
|
||||
<text v-if="closeAble && closeText" class="u-close-text" :style="{
|
||||
top: description ? '18rpx' : '24rpx'
|
||||
}">{{closeText}}</text>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
/**
|
||||
* alertTips 警告提示
|
||||
* @description 警告提示,展现需要关注的信息
|
||||
* @tutorial https://uviewui.com/components/alertTips.html
|
||||
* @property {String} title 显示的标题文字
|
||||
* @property {String} description 辅助性文字,颜色比title浅一点,字号也小一点,可选
|
||||
* @property {String} type 关闭按钮(默认为叉号icon图标)
|
||||
* @property {String} icon 图标名称
|
||||
* @property {Object} icon-style 图标的样式,对象形式
|
||||
* @property {Object} title-style 标题的样式,对象形式
|
||||
* @property {Object} desc-style 描述的样式,对象形式
|
||||
* @property {String} close-able 用文字替代关闭图标,close-able为true时有效
|
||||
* @property {Boolean} show-icon 是否显示左边的辅助图标
|
||||
* @property {Boolean} show 显示或隐藏组件
|
||||
* @event {Function} click 点击组件时触发
|
||||
* @event {Function} close 点击关闭按钮时触发
|
||||
*/
|
||||
export default {
|
||||
name: 'u-alert-tips',
|
||||
props: {
|
||||
// 显示文字
|
||||
title: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
// 主题,success/warning/info/error
|
||||
type: {
|
||||
type: String,
|
||||
default: 'warning'
|
||||
},
|
||||
// 辅助性文字
|
||||
description: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
// 是否可关闭
|
||||
closeAble: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
// 关闭按钮自定义文本
|
||||
closeText: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
// 是否显示图标
|
||||
showIcon: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
// 文字颜色,如果定义了color值,icon会失效
|
||||
color: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
// 背景颜色
|
||||
bgColor: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
// 边框颜色
|
||||
borderColor: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
// 是否显示
|
||||
show: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
// 左边显示的icon
|
||||
icon: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
// icon的样式
|
||||
iconStyle: {
|
||||
type: Object,
|
||||
default() {
|
||||
return {}
|
||||
}
|
||||
},
|
||||
// 标题的样式
|
||||
titleStyle: {
|
||||
type: Object,
|
||||
default() {
|
||||
return {}
|
||||
}
|
||||
},
|
||||
// 描述文字的样式
|
||||
descStyle: {
|
||||
type: Object,
|
||||
default() {
|
||||
return {}
|
||||
}
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
uTitleStyle() {
|
||||
let style = {};
|
||||
// 如果有描述文字的话,标题进行加粗
|
||||
style.fontWeight = this.description ? 500 : 'normal';
|
||||
// 将用户传入样式对象和style合并,传入的优先级比style高,同属性会被覆盖
|
||||
return this.$u.deepMerge(style, this.titleStyle);
|
||||
},
|
||||
uIcon() {
|
||||
// 如果有设置icon名称就使用,否则根据type主题,推定一个默认的图标
|
||||
return this.icon ? this.icon : this.$u.type2icon(this.type);
|
||||
},
|
||||
uIconType() {
|
||||
// 如果有设置图标的样式,优先使用,没有的话,则用type的样式
|
||||
return Object.keys(this.iconStyle).length ? '' : this.type;
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 点击内容
|
||||
click() {
|
||||
this.$emit('click');
|
||||
},
|
||||
// 点击关闭按钮
|
||||
close() {
|
||||
this.$emit('close');
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import "../../libs/css/style.components.scss";
|
||||
|
||||
.u-alert-tips {
|
||||
@include vue-flex;
|
||||
align-items: center;
|
||||
padding: 16rpx 30rpx;
|
||||
border-radius: 8rpx;
|
||||
position: relative;
|
||||
transition: all 0.3s linear;
|
||||
border: 1px solid #fff;
|
||||
|
||||
&--bg--primary-light {
|
||||
background-color: $u-type-primary-light;
|
||||
}
|
||||
|
||||
&--bg--info-light {
|
||||
background-color: $u-type-info-light;
|
||||
}
|
||||
|
||||
&--bg--success-light {
|
||||
background-color: $u-type-success-light;
|
||||
}
|
||||
|
||||
&--bg--warning-light {
|
||||
background-color: $u-type-warning-light;
|
||||
}
|
||||
|
||||
&--bg--error-light {
|
||||
background-color: $u-type-error-light;
|
||||
}
|
||||
|
||||
&--border--primary-disabled {
|
||||
border-color: $u-type-primary-disabled;
|
||||
}
|
||||
|
||||
&--border--success-disabled {
|
||||
border-color: $u-type-success-disabled;
|
||||
}
|
||||
|
||||
&--border--error-disabled {
|
||||
border-color: $u-type-error-disabled;
|
||||
}
|
||||
|
||||
&--border--warning-disabled {
|
||||
border-color: $u-type-warning-disabled;
|
||||
}
|
||||
|
||||
&--border--info-disabled {
|
||||
border-color: $u-type-info-disabled;
|
||||
}
|
||||
}
|
||||
|
||||
.u-close-alert-tips {
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.u-icon {
|
||||
margin-right: 16rpx;
|
||||
}
|
||||
|
||||
.u-alert-title {
|
||||
font-size: 28rpx;
|
||||
color: $u-main-color;
|
||||
}
|
||||
|
||||
.u-alert-desc {
|
||||
font-size: 26rpx;
|
||||
text-align: left;
|
||||
color: $u-content-color;
|
||||
}
|
||||
|
||||
.u-close-icon {
|
||||
position: absolute;
|
||||
top: 20rpx;
|
||||
right: 20rpx;
|
||||
}
|
||||
|
||||
.u-close-hover {
|
||||
color: red;
|
||||
}
|
||||
|
||||
.u-close-text {
|
||||
font-size: 24rpx;
|
||||
color: $u-tips-color;
|
||||
position: absolute;
|
||||
top: 20rpx;
|
||||
right: 20rpx;
|
||||
line-height: 1;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,290 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<view class="cropper-wrapper" :style="{ height: cropperOpt.height + 'px' }">
|
||||
<canvas
|
||||
class="cropper"
|
||||
:disable-scroll="true"
|
||||
@touchstart="touchStart"
|
||||
@touchmove="touchMove"
|
||||
@touchend="touchEnd"
|
||||
:style="{ width: cropperOpt.width, height: cropperOpt.height, backgroundColor: 'rgba(0, 0, 0, 0.8)' }"
|
||||
canvas-id="cropper"
|
||||
id="cropper"
|
||||
></canvas>
|
||||
<canvas
|
||||
class="cropper"
|
||||
:disable-scroll="true"
|
||||
:style="{
|
||||
position: 'fixed',
|
||||
top: `-${cropperOpt.width * cropperOpt.pixelRatio}px`,
|
||||
left: `-${cropperOpt.height * cropperOpt.pixelRatio}px`,
|
||||
width: `${cropperOpt.width * cropperOpt.pixelRatio}px`,
|
||||
height: `${cropperOpt.height * cropperOpt.pixelRatio}`
|
||||
}"
|
||||
canvas-id="targetId"
|
||||
id="targetId"
|
||||
></canvas>
|
||||
</view>
|
||||
<view class="cropper-buttons safe-area-padding" :style="{ height: bottomNavHeight + 'px' }">
|
||||
<!-- #ifdef H5 -->
|
||||
<view class="upload" @tap="uploadTap">选择图片</view>
|
||||
<!-- #endif -->
|
||||
<!-- #ifndef H5 -->
|
||||
<view class="upload" @tap="uploadTap">重新选择</view>
|
||||
<!-- #endif -->
|
||||
<view class="getCropperImage" @tap="getCropperImage(false)">确定</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import WeCropper from './weCropper.js';
|
||||
export default {
|
||||
props: {
|
||||
// 裁剪矩形框的样式,其中可包含的属性为lineWidth-边框宽度(单位rpx),color: 边框颜色,
|
||||
// mask-遮罩颜色,一般设置为一个rgba的透明度,如"rgba(0, 0, 0, 0.35)"
|
||||
boundStyle: {
|
||||
type: Object,
|
||||
default() {
|
||||
return {
|
||||
lineWidth: 4,
|
||||
borderColor: 'rgb(245, 245, 245)',
|
||||
mask: 'rgba(0, 0, 0, 0.35)'
|
||||
};
|
||||
}
|
||||
}
|
||||
// // 裁剪框宽度,单位rpx
|
||||
// rectWidth: {
|
||||
// type: [String, Number],
|
||||
// default: 400
|
||||
// },
|
||||
// // 裁剪框高度,单位rpx
|
||||
// rectHeight: {
|
||||
// type: [String, Number],
|
||||
// default: 400
|
||||
// },
|
||||
// // 输出图片宽度,单位rpx
|
||||
// destWidth: {
|
||||
// type: [String, Number],
|
||||
// default: 400
|
||||
// },
|
||||
// // 输出图片高度,单位rpx
|
||||
// destHeight: {
|
||||
// type: [String, Number],
|
||||
// default: 400
|
||||
// },
|
||||
// // 输出的图片类型,如果发现裁剪的图片很大,可能是因为设置为了"png",改成"jpg"即可
|
||||
// fileType: {
|
||||
// type: String,
|
||||
// default: 'jpg',
|
||||
// },
|
||||
// // 生成的图片质量
|
||||
// // H5上无效,目前不考虑使用此参数
|
||||
// quality: {
|
||||
// type: [Number, String],
|
||||
// default: 1
|
||||
// }
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
// 底部导航的高度
|
||||
bottomNavHeight: 50,
|
||||
originWidth: 200,
|
||||
width: 0,
|
||||
height: 0,
|
||||
cropperOpt: {
|
||||
id: 'cropper',
|
||||
targetId: 'targetCropper',
|
||||
pixelRatio: 1,
|
||||
width: 0,
|
||||
height: 0,
|
||||
scale: 2.5,
|
||||
zoom: 8,
|
||||
cut: {
|
||||
x: (this.width - this.originWidth) / 2,
|
||||
y: (this.height - this.originWidth) / 2,
|
||||
width: this.originWidth,
|
||||
height: this.originWidth
|
||||
},
|
||||
boundStyle: {
|
||||
lineWidth: uni.upx2px(this.boundStyle.lineWidth),
|
||||
mask: this.boundStyle.mask,
|
||||
color: this.boundStyle.borderColor
|
||||
}
|
||||
},
|
||||
// 裁剪框和输出图片的尺寸,高度默认等于宽度
|
||||
// 输出图片宽度,单位px
|
||||
destWidth: 200,
|
||||
// 裁剪框宽度,单位px
|
||||
rectWidth: 200,
|
||||
// 输出的图片类型,如果'png'类型发现裁剪的图片太大,改成"jpg"即可
|
||||
fileType: 'jpg',
|
||||
src: '', // 选择的图片路径,用于在点击确定时,判断是否选择了图片
|
||||
};
|
||||
},
|
||||
onLoad(option) {
|
||||
let rectInfo = uni.getSystemInfoSync();
|
||||
this.width = rectInfo.windowWidth;
|
||||
this.height = rectInfo.windowHeight - this.bottomNavHeight;
|
||||
this.cropperOpt.width = this.width;
|
||||
this.cropperOpt.height = this.height;
|
||||
this.cropperOpt.pixelRatio = rectInfo.pixelRatio;
|
||||
|
||||
if (option.destWidth) this.destWidth = option.destWidth;
|
||||
if (option.rectWidth) {
|
||||
let rectWidth = Number(option.rectWidth);
|
||||
this.cropperOpt.cut = {
|
||||
x: (this.width - rectWidth) / 2,
|
||||
y: (this.height - rectWidth) / 2,
|
||||
width: rectWidth,
|
||||
height: rectWidth
|
||||
};
|
||||
}
|
||||
this.rectWidth = option.rectWidth;
|
||||
if (option.fileType) this.fileType = option.fileType;
|
||||
// 初始化
|
||||
this.cropper = new WeCropper(this.cropperOpt)
|
||||
.on('ready', ctx => {
|
||||
// wecropper is ready for work!
|
||||
})
|
||||
.on('beforeImageLoad', ctx => {
|
||||
// before picture loaded, i can do something
|
||||
})
|
||||
.on('imageLoad', ctx => {
|
||||
// picture loaded
|
||||
})
|
||||
.on('beforeDraw', (ctx, instance) => {
|
||||
// before canvas draw,i can do something
|
||||
});
|
||||
// 设置导航栏样式,以免用户在page.json中没有设置为黑色背景
|
||||
uni.setNavigationBarColor({
|
||||
frontColor: '#ffffff',
|
||||
backgroundColor: '#000000'
|
||||
});
|
||||
uni.chooseImage({
|
||||
count: 1, // 默认9
|
||||
sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有
|
||||
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
|
||||
success: res => {
|
||||
this.src = res.tempFilePaths[0];
|
||||
// 获取裁剪图片资源后,给data添加src属性及其值
|
||||
this.cropper.pushOrign(this.src);
|
||||
}
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
touchStart(e) {
|
||||
this.cropper.touchStart(e);
|
||||
},
|
||||
touchMove(e) {
|
||||
this.cropper.touchMove(e);
|
||||
},
|
||||
touchEnd(e) {
|
||||
this.cropper.touchEnd(e);
|
||||
},
|
||||
getCropperImage(isPre = false) {
|
||||
if(!this.src) return this.$u.toast('请先选择图片再裁剪');
|
||||
|
||||
let cropper_opt = {
|
||||
destHeight: Number(this.destWidth), // uni.canvasToTempFilePath要求这些参数为数值
|
||||
destWidth: Number(this.destWidth),
|
||||
fileType: this.fileType
|
||||
};
|
||||
this.cropper.getCropperImage(cropper_opt, (path, err) => {
|
||||
if (err) {
|
||||
uni.showModal({
|
||||
title: '温馨提示',
|
||||
content: err.message
|
||||
});
|
||||
} else {
|
||||
if (isPre) {
|
||||
uni.previewImage({
|
||||
current: '', // 当前显示图片的 http 链接
|
||||
urls: [path] // 需要预览的图片 http 链接列表
|
||||
});
|
||||
} else {
|
||||
uni.$emit('uAvatarCropper', path);
|
||||
this.$u.route({
|
||||
type: 'back'
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
uploadTap() {
|
||||
const self = this;
|
||||
uni.chooseImage({
|
||||
count: 1, // 默认9
|
||||
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
|
||||
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
|
||||
success: (res) => {
|
||||
self.src = res.tempFilePaths[0];
|
||||
// 获取裁剪图片资源后,给data添加src属性及其值
|
||||
|
||||
self.cropper.pushOrign(this.src);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
@import '../../libs/css/style.components.scss';
|
||||
|
||||
.content {
|
||||
background: rgba(255, 255, 255, 1);
|
||||
}
|
||||
|
||||
.cropper {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 11;
|
||||
}
|
||||
|
||||
.cropper-buttons {
|
||||
background-color: #000000;
|
||||
color: #eee;
|
||||
}
|
||||
|
||||
.cropper-wrapper {
|
||||
position: relative;
|
||||
@include vue-flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
background-color: #000;
|
||||
}
|
||||
|
||||
.cropper-buttons {
|
||||
width: 100vw;
|
||||
@include vue-flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
font-size: 28rpx;
|
||||
}
|
||||
|
||||
.cropper-buttons .upload,
|
||||
.cropper-buttons .getCropperImage {
|
||||
width: 50%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.cropper-buttons .upload {
|
||||
text-align: left;
|
||||
padding-left: 50rpx;
|
||||
}
|
||||
|
||||
.cropper-buttons .getCropperImage {
|
||||
text-align: right;
|
||||
padding-right: 50rpx;
|
||||
}
|
||||
</style>
|
||||
1265
hotgo-uniapp/uview-ui/components/u-avatar-cropper/weCropper.js
Normal file
244
hotgo-uniapp/uview-ui/components/u-avatar/u-avatar.vue
Normal file
@@ -0,0 +1,244 @@
|
||||
<template>
|
||||
<view class="u-avatar" :style="[wrapStyle]" @tap="click">
|
||||
<image
|
||||
@error="loadError"
|
||||
:style="[imgStyle]"
|
||||
class="u-avatar__img"
|
||||
v-if="!uText && avatar"
|
||||
:src="avatar"
|
||||
:mode="imgMode"
|
||||
></image>
|
||||
<text class="u-line-1" v-else-if="uText" :style="{
|
||||
fontSize: '38rpx'
|
||||
}">{{uText}}</text>
|
||||
<slot v-else></slot>
|
||||
<view class="u-avatar__sex" v-if="showSex" :class="['u-avatar__sex--' + sexIcon]" :style="[uSexStyle]">
|
||||
<u-icon :name="sexIcon" size="20"></u-icon>
|
||||
</view>
|
||||
<view class="u-avatar__level" v-if="showLevel" :style="[uLevelStyle]">
|
||||
<u-icon :name="levelIcon" size="20"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
let base64Avatar = "data:image/jpg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMraHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjREMEQwRkY0RjgwNDExRUE5OTY2RDgxODY3NkJFODMxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjREMEQwRkY1RjgwNDExRUE5OTY2RDgxODY3NkJFODMxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NEQwRDBGRjJGODA0MTFFQTk5NjZEODE4Njc2QkU4MzEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NEQwRDBGRjNGODA0MTFFQTk5NjZEODE4Njc2QkU4MzEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAGBAQEBQQGBQUGCQYFBgkLCAYGCAsMCgoLCgoMEAwMDAwMDBAMDg8QDw4MExMUFBMTHBsbGxwfHx8fHx8fHx8fAQcHBw0MDRgQEBgaFREVGh8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx//wAARCADIAMgDAREAAhEBAxEB/8QAcQABAQEAAwEBAAAAAAAAAAAAAAUEAQMGAgcBAQAAAAAAAAAAAAAAAAAAAAAQAAIBAwICBgkDBQAAAAAAAAABAhEDBCEFMVFBYXGREiKBscHRMkJSEyOh4XLxYjNDFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8A/fAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHbHFyZ/Dam+yLA+Z2L0Pjtyj2poD4AAAAAAAAAAAAAAAAAAAAAAAAKWFs9y6lcvvwQeqj8z9wFaziY1n/HbUX9XF97A7QAGXI23EvJ1goyfzR0YEfN269jeZ+a03pNe0DIAAAAAAAAAAAAAAAAAAAACvtO3RcVkXlWutuL9YFYAAAAAOJRjKLjJVi9GmB5/csH/mu1h/in8PU+QGMAAAAAAAAAAAAAAAAAAaMDG/6MmMH8C80+xAelSSVFolwQAAAAAAAHVlWI37ErUulaPk+hgeYnCUJuElSUXRrrQHAAAAAAAAAAAAAAAAABa2Oz4bM7r4zdF2ICmAAAAAAAAAg7zZ8GX41wuJP0rRgYAAAAAAAAAAAAAAAAAD0m2R8ODaXU33tsDSAAAAAAAAAlb9HyWZcnJd9PcBHAAAAAAAAAAAAAAAAAPS7e64Vn+KA0AAAAAAAAAJm+v8Ftf3ewCKAAAAAAAAAAAAAAAAAX9muqeGo9NttP06+0DcAAAAAAAAAjb7dTu2ra+VOT9P8AQCWAAAAAAAAAAAAAAAAAUNmyPt5Ltv4bui/kuAF0AAAAAAADiUlGLlJ0SVW+oDzOXfd/Ind6JPRdS0QHSAAAAAAAAAAAAAAAAAE2nVaNcGB6Lbs6OTao9LsF51z60BrAAAAAABJ3jOVHjW3r/sa9QEgAAAAAAAAAAAAAAAAAAAPu1duWriuW34ZR4MC9hbnZyEoy8l36XwfYBsAAADaSq9EuLAlZ+7xSdrGdW9Hc5dgEdtt1erfFgAAAAAAAAAAAAAAAAADVjbblX6NR8MH80tEBRs7HYivyzlN8lovaBPzduvY0m6eK10TXtAyAarO55lpJK54orolr+4GqO/Xaea1FvqbXvA+Z77kNeW3GPbV+4DJfzcm/pcm3H6Vou5AdAFLC2ed2Pjv1txa8sV8T6wOL+yZEKu1JXFy4MDBOE4ScZxcZLinoB8gAAAAAAAAAAAB242LeyJ+C3GvN9C7QLmJtePYpKS+5c+p8F2IDYAANJqj1T4oCfk7Nj3G5Wn9qXJax7gJ93Z82D8sVNc4v30A6Xg5i42Z+iLfqARwcyT0sz9MWvWBps7LlTf5Grce9/oBTxdtxseklHxT+uWr9AGoAB138ezfj4bsFJdD6V2MCPm7RdtJzs1uW1xXzL3gTgAAAAAAAAADRhYc8q74I6RWs5ckB6GxYtWLat21SK731sDsAAAAAAAAAAAAAAAASt021NO/YjrxuQXT1oCOAAAAAAABzGLlJRSq26JAelwsWONYjbXxcZvmwO8AAAAAAAAAAAAAAAAAAef3TEWPkVivx3NY9T6UBiAAAAAABo2+VmGXblddIJ8eivRUD0oAAAAAAAAAAAAAAAAAAAYt4tKeFKVNYNSXfRgefAAAAAAAAr7VuSSWPedKaW5v1MCsAAAAAAAAAAAAAAAAAAIe6bj96Ts2n+JPzSXzP3ATgAAAAAAAAFbbt1UUrOQ9FpC4/UwK6aaqtU+DAAAAAAAAAAAAAAA4lKMIuUmoxWrb4ARNx3R3q2rLpa4Sl0y/YCcAAAAAAAAAAANmFud7G8r89r6X0dgFvGzLGRGtuWvTF6NAdwAAAAAAAAAAAy5W442PVN+K59EePp5ARMvOv5MvO6QXCC4AZwAAAAAAAAAAAAAcxlKLUotprg1owN+PvORborq+7Hnwl3gUbO74VzRydt8pKn68ANcJwmqwkpLmnUDkAAAAfNy9atqtyagut0AxXt5xIV8Fbj6lRd7Am5G65V6qUvtwfyx94GMAAAAAAAAAAAAAAAAAAAOU2nVOj5gdsc3LiqRvTpyqwOxbnnrhdfpSfrQB7pnv/AGvuS9gHXPMy5/Fem1yq0v0A6W29XqwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf//Z";
|
||||
/**
|
||||
* avatar 头像
|
||||
* @description 本组件一般用于展示头像的地方,如个人中心,或者评论列表页的用户头像展示等场所。
|
||||
* @tutorial https://www.uviewui.com/components/avatar.html
|
||||
* @property {String} bg-color 背景颜色,一般显示文字时用(默认#ffffff)
|
||||
* @property {String} src 头像路径,如加载失败,将会显示默认头像
|
||||
* @property {String Number} size 头像尺寸,可以为指定字符串(large, default, mini),或者数值,单位rpx(默认default)
|
||||
* @property {String} mode 显示类型,见上方说明(默认circle)
|
||||
* @property {String} sex-icon 性别图标,man-男,woman-女(默认man)
|
||||
* @property {String} level-icon 等级图标(默认level)
|
||||
* @property {String} sex-bg-color 性别图标背景颜色
|
||||
* @property {String} level-bg-color 等级图标背景颜色
|
||||
* @property {String} show-sex 是否显示性别图标(默认false)
|
||||
* @property {String} show-level 是否显示等级图标(默认false)
|
||||
* @property {String} img-mode 头像图片的裁剪类型,与uni的image组件的mode参数一致,如效果达不到需求,可尝试传widthFix值(默认aspectFill)
|
||||
* @property {String} index 用户传递的标识符值,如果是列表循环,可穿v-for的index值
|
||||
* @event {Function} click 头像被点击
|
||||
* @example <u-avatar :src="src"></u-avatar>
|
||||
*/
|
||||
export default {
|
||||
name: 'u-avatar',
|
||||
props: {
|
||||
// 背景颜色
|
||||
bgColor: {
|
||||
type: String,
|
||||
default: 'transparent'
|
||||
},
|
||||
// 头像路径
|
||||
src: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
// 尺寸,large-大,default-中等,mini-小,如果为数值,则单位为rpx
|
||||
// 宽度等于高度
|
||||
size: {
|
||||
type: [String, Number],
|
||||
default: 'default'
|
||||
},
|
||||
// 头像模型,square-带圆角方形,circle-圆形
|
||||
mode: {
|
||||
type: String,
|
||||
default: 'circle'
|
||||
},
|
||||
// 文字内容
|
||||
text: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
// 图片的裁剪模型
|
||||
imgMode: {
|
||||
type: String,
|
||||
default: 'aspectFill'
|
||||
},
|
||||
// 标识符
|
||||
index: {
|
||||
type: [String, Number],
|
||||
default: ''
|
||||
},
|
||||
// 右上角性别角标,man-男,woman-女
|
||||
sexIcon: {
|
||||
type: String,
|
||||
default: 'man'
|
||||
},
|
||||
// 右下角的等级图标
|
||||
levelIcon: {
|
||||
type: String,
|
||||
default: 'level'
|
||||
},
|
||||
// 右下角等级图标背景颜色
|
||||
levelBgColor: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
// 右上角性别图标的背景颜色
|
||||
sexBgColor: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
// 是否显示性别图标
|
||||
showSex: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
// 是否显示等级图标
|
||||
showLevel: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
error: false,
|
||||
// 头像的地址,因为如果加载错误,需要赋值为默认图片,props值无法修改,所以需要一个中间值
|
||||
avatar: this.src ? this.src : base64Avatar,
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
src(n) {
|
||||
// 用户可能会在头像加载失败时,再次修改头像值,所以需要重新赋值
|
||||
if(!n) {
|
||||
// 如果传入null或者'',或者undefined,显示默认头像
|
||||
this.avatar = base64Avatar;
|
||||
this.error = true;
|
||||
} else {
|
||||
this.avatar = n;
|
||||
this.error = false;
|
||||
}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
wrapStyle() {
|
||||
let style = {};
|
||||
style.height = this.size == 'large' ? '120rpx' : this.size == 'default' ?
|
||||
'90rpx' : this.size == 'mini' ? '70rpx' : this.size + 'rpx';
|
||||
style.width = style.height;
|
||||
style.flex = `0 0 ${style.height}`;
|
||||
style.backgroundColor = this.bgColor;
|
||||
style.borderRadius = this.mode == 'circle' ? '500px' : '5px';
|
||||
if(this.text) style.padding = `0 6rpx`;
|
||||
return style;
|
||||
},
|
||||
imgStyle() {
|
||||
let style = {};
|
||||
style.borderRadius = this.mode == 'circle' ? '500px' : '5px';
|
||||
return style;
|
||||
},
|
||||
// 取字符串的第一个字符
|
||||
uText() {
|
||||
return String(this.text)[0];
|
||||
},
|
||||
// 性别图标的自定义样式
|
||||
uSexStyle() {
|
||||
let style = {};
|
||||
if(this.sexBgColor) style.backgroundColor = this.sexBgColor;
|
||||
return style;
|
||||
},
|
||||
// 等级图标的自定义样式
|
||||
uLevelStyle() {
|
||||
let style = {};
|
||||
if(this.levelBgColor) style.backgroundColor = this.levelBgColor;
|
||||
return style;
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 图片加载错误时,显示默认头像
|
||||
loadError() {
|
||||
this.error = true;
|
||||
this.avatar = base64Avatar;
|
||||
},
|
||||
click() {
|
||||
this.$emit('click', this.index);
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import "../../libs/css/style.components.scss";
|
||||
|
||||
.u-avatar {
|
||||
/* #ifndef APP-NVUE */
|
||||
display: inline-flex;
|
||||
/* #endif */
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: 28rpx;
|
||||
color: $u-content-color;
|
||||
border-radius: 10px;
|
||||
position: relative;
|
||||
|
||||
&__img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
&__sex {
|
||||
position: absolute;
|
||||
width: 32rpx;
|
||||
color: #ffffff;
|
||||
height: 32rpx;
|
||||
@include vue-flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
border-radius: 100rpx;
|
||||
top: 5%;
|
||||
z-index: 1;
|
||||
right: -7%;
|
||||
border: 1px #ffffff solid;
|
||||
|
||||
&--man {
|
||||
background-color: $u-type-primary;
|
||||
}
|
||||
|
||||
&--woman {
|
||||
background-color: $u-type-error;
|
||||
}
|
||||
|
||||
&--none {
|
||||
background-color: $u-type-warning;
|
||||
}
|
||||
}
|
||||
|
||||
&__level {
|
||||
position: absolute;
|
||||
width: 32rpx;
|
||||
color: #ffffff;
|
||||
height: 32rpx;
|
||||
@include vue-flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
border-radius: 100rpx;
|
||||
bottom: 5%;
|
||||
z-index: 1;
|
||||
right: -7%;
|
||||
border: 1px #ffffff solid;
|
||||
background-color: $u-type-warning;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
153
hotgo-uniapp/uview-ui/components/u-back-top/u-back-top.vue
Normal file
@@ -0,0 +1,153 @@
|
||||
<template>
|
||||
<view @tap="backToTop" class="u-back-top" :class="['u-back-top--mode--' + mode]" :style="[{
|
||||
bottom: bottom + 'rpx',
|
||||
right: right + 'rpx',
|
||||
borderRadius: mode == 'circle' ? '10000rpx' : '8rpx',
|
||||
zIndex: uZIndex,
|
||||
opacity: opacity
|
||||
}, customStyle]">
|
||||
<view class="u-back-top__content" v-if="!$slots.default && !$slots.$default">
|
||||
<u-icon @click="backToTop" :name="icon" :custom-style="iconStyle"></u-icon>
|
||||
<view class="u-back-top__content__tips">
|
||||
{{tips}}
|
||||
</view>
|
||||
</view>
|
||||
<slot v-else />
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'u-back-top',
|
||||
props: {
|
||||
// 返回顶部的形状,circle-圆形,square-方形
|
||||
mode: {
|
||||
type: String,
|
||||
default: 'circle'
|
||||
},
|
||||
// 自定义图标
|
||||
icon: {
|
||||
type: String,
|
||||
default: 'arrow-upward'
|
||||
},
|
||||
// 提示文字
|
||||
tips: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
// 返回顶部滚动时间
|
||||
duration: {
|
||||
type: [Number, String],
|
||||
default: 100
|
||||
},
|
||||
// 滚动距离
|
||||
scrollTop: {
|
||||
type: [Number, String],
|
||||
default: 0
|
||||
},
|
||||
// 距离顶部多少距离显示,单位rpx
|
||||
top: {
|
||||
type: [Number, String],
|
||||
default: 400
|
||||
},
|
||||
// 返回顶部按钮到底部的距离,单位rpx
|
||||
bottom: {
|
||||
type: [Number, String],
|
||||
default: 200
|
||||
},
|
||||
// 返回顶部按钮到右边的距离,单位rpx
|
||||
right: {
|
||||
type: [Number, String],
|
||||
default: 40
|
||||
},
|
||||
// 层级
|
||||
zIndex: {
|
||||
type: [Number, String],
|
||||
default: '9'
|
||||
},
|
||||
// 图标的样式,对象形式
|
||||
iconStyle: {
|
||||
type: Object,
|
||||
default() {
|
||||
return {
|
||||
color: '#909399',
|
||||
fontSize: '38rpx'
|
||||
}
|
||||
}
|
||||
},
|
||||
// 整个组件的样式
|
||||
customStyle: {
|
||||
type: Object,
|
||||
default() {
|
||||
return {}
|
||||
}
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
showBackTop(nVal, oVal) {
|
||||
// 当组件的显示与隐藏状态发生跳变时,修改组件的层级和不透明度
|
||||
// 让组件有显示和消失的动画效果,如果用v-if控制组件状态,将无设置动画效果
|
||||
if(nVal) {
|
||||
this.uZIndex = this.zIndex;
|
||||
this.opacity = 1;
|
||||
} else {
|
||||
this.uZIndex = -1;
|
||||
this.opacity = 0;
|
||||
}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
showBackTop() {
|
||||
// 由于scrollTop为页面的滚动距离,默认为px单位,这里将用于传入的top(rpx)值
|
||||
// 转为px用于比较,如果滚动条到顶的距离大于设定的距离,就显示返回顶部的按钮
|
||||
return this.scrollTop > uni.upx2px(this.top);
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
// 不透明度,为了让组件有一个显示和隐藏的过渡动画
|
||||
opacity: 0,
|
||||
// 组件的z-index值,隐藏时设置为-1,就会看不到
|
||||
uZIndex: -1
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
backToTop() {
|
||||
uni.pageScrollTo({
|
||||
scrollTop: 0,
|
||||
duration: this.duration
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import "../../libs/css/style.components.scss";
|
||||
|
||||
.u-back-top {
|
||||
width: 80rpx;
|
||||
height: 80rpx;
|
||||
position: fixed;
|
||||
z-index: 9;
|
||||
@include vue-flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
background-color: #E1E1E1;
|
||||
color: $u-content-color;
|
||||
align-items: center;
|
||||
transition: opacity 0.4s;
|
||||
|
||||
&__content {
|
||||
@include vue-flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
|
||||
&__tips {
|
||||
font-size: 24rpx;
|
||||
transform: scale(0.8);
|
||||
line-height: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||