From 697a1af4e1676374a60cbef4e5745443b7f8262f Mon Sep 17 00:00:00 2001
From: Lee1203 <342694918@qq.com>
Date: Fri, 12 Aug 2022 18:25:42 +0800
Subject: [PATCH] lee-0812
---
.hbuilderx/launch.json | 16 +
App.vue | 27 +
commons/animate.min.css | 12 +
commons/base.css | 165 +
commons/icon-font.css | 155 +
commons/loading.css | 1054 ++
commons/style.css | 1 +
components/foot-tab/foot-tab.vue | 130 +
components/list/list-all.vue | 217 +
components/status-nav/status-nav.vue | 180 +
components/swiper/swiper-pull.vue | 180 +
components/title/title-pull.vue | 55 +
jsFile/base64-src.js | 201 +
jsFile/public-api.js | 2 +
jsFile/requst.js | 199 +
jsFile/tools.js | 645 +
main.js | 32 +
manifest.json | 87 +
package-lock.json | 15 +
package.json | 11 +
pages.json | 97 +
pages/cargo/cargo.vue | 288 +
pages/gps/gps.vue | 13 +
pages/index/index.vue | 174 +
pages/line/line.vue | 204 +
pages/login/login.vue | 192 +
pagesA/news/detail.vue | 90 +
pagesA/news/news.vue | 62 +
pagesA/video/playVideo.vue | 122 +
pagesA/video/video.vue | 61 +
project.config.json | 77 +
static/icon/icon-arrow-down.png | Bin 0 -> 1126 bytes
static/icon/icon-arrow-right.png | Bin 0 -> 2216 bytes
static/icon/icon-calendar.png | Bin 0 -> 1667 bytes
static/icon/icon-click.png | Bin 0 -> 1525 bytes
static/icon/icon-deliver.png | Bin 0 -> 1535 bytes
static/icon/icon-handle.png | Bin 0 -> 1459 bytes
static/icon/icon-look.png | Bin 0 -> 1481 bytes
static/icon/icon-placed.png | Bin 0 -> 1338 bytes
static/icon/icon-play.png | Bin 0 -> 2635 bytes
static/icon/icon-search.png | Bin 0 -> 1397 bytes
static/icon/icon-signed.png | Bin 0 -> 1251 bytes
static/icon/icon-time.png | Bin 0 -> 1451 bytes
static/icon/icon-transit.png | Bin 0 -> 1592 bytes
static/icon/icon-wait.png | Bin 0 -> 1539 bytes
static/public/banner.jpg | Bin 0 -> 17060 bytes
static/public/cargo.jpg | Bin 0 -> 44558 bytes
static/public/news.jpg | Bin 0 -> 3806 bytes
static/public/video-play.png | Bin 0 -> 4111 bytes
static/public/video.jpg | Bin 0 -> 24983 bytes
static/tabbar/tabbar-01.png | Bin 0 -> 1731 bytes
static/tabbar/tabbar-02.png | Bin 0 -> 2041 bytes
static/tabbar/tabbar-03.png | Bin 0 -> 2153 bytes
static/tabbar/tabbar-04.png | Bin 0 -> 1852 bytes
static/tabbar/tabbar-1.png | Bin 0 -> 1732 bytes
static/tabbar/tabbar-2.png | Bin 0 -> 2044 bytes
static/tabbar/tabbar-3.png | Bin 0 -> 2158 bytes
static/tabbar/tabbar-4.png | Bin 0 -> 1865 bytes
static/tabbar/wechat.png | Bin 0 -> 1914 bytes
store/actions.js | 1 +
store/index.js | 16 +
store/modules/moduleA.js | 112 +
store/modules/moduleB.js | 87 +
store/mutations.js | 1 +
store/readme.md | 119 +
uni.scss | 76 +
.../dev/.automator/mp-weixin/.automator.json | 0
.../.sourcemap/mp-weixin/common/main.js.map | 1 +
.../mp-weixin/common/runtime.js.map | 1 +
.../.sourcemap/mp-weixin/common/vendor.js.map | 1 +
.../components/foot-tab/foot-tab.js.map | 1 +
.../mp-weixin/components/list/list-all.js.map | 1 +
.../components/status-nav/status-nav.js.map | 1 +
.../components/swiper/swiper-pull.js.map | 1 +
.../components/title/title-pull.js.map | 1 +
.../mp-weixin/pages/cargo/cargo.js.map | 1 +
.../.sourcemap/mp-weixin/pages/gps/gps.js.map | 1 +
.../mp-weixin/pages/index/index.js.map | 1 +
.../mp-weixin/pages/line/line.js.map | 1 +
.../mp-weixin/pages/login/login.js.map | 1 +
.../mp-weixin/pagesA/news/detail.js.map | 1 +
.../mp-weixin/pagesA/news/news.js.map | 1 +
.../mp-weixin/pagesA/video/playVideo.js.map | 1 +
.../mp-weixin/pagesA/video/video.js.map | 1 +
unpackage/dist/dev/mp-weixin/app.js | 4 +
unpackage/dist/dev/mp-weixin/app.json | 38 +
unpackage/dist/dev/mp-weixin/app.wxss | 3 +
unpackage/dist/dev/mp-weixin/common/main.js | 150 +
unpackage/dist/dev/mp-weixin/common/main.wxss | 1413 ++
.../dist/dev/mp-weixin/common/runtime.js | 273 +
unpackage/dist/dev/mp-weixin/common/vendor.js | 11099 ++++++++++++++++
.../mp-weixin/components/foot-tab/foot-tab.js | 221 +
.../components/foot-tab/foot-tab.json | 4 +
.../components/foot-tab/foot-tab.wxml | 1 +
.../components/foot-tab/foot-tab.wxss | 136 +
.../dev/mp-weixin/components/list/list-all.js | 264 +
.../mp-weixin/components/list/list-all.json | 4 +
.../mp-weixin/components/list/list-all.wxml | 1 +
.../mp-weixin/components/list/list-all.wxss | 216 +
.../components/status-nav/status-nav.js | 297 +
.../components/status-nav/status-nav.json | 4 +
.../components/status-nav/status-nav.wxml | 1 +
.../components/status-nav/status-nav.wxss | 35 +
.../components/swiper/swiper-pull.js | 303 +
.../components/swiper/swiper-pull.json | 4 +
.../components/swiper/swiper-pull.wxml | 1 +
.../components/swiper/swiper-pull.wxss | 29 +
.../mp-weixin/components/title/title-pull.js | 197 +
.../components/title/title-pull.json | 4 +
.../components/title/title-pull.wxml | 1 +
.../components/title/title-pull.wxss | 14 +
.../dist/dev/mp-weixin/pages/cargo/cargo.js | 363 +
.../dist/dev/mp-weixin/pages/cargo/cargo.json | 9 +
.../dist/dev/mp-weixin/pages/cargo/cargo.wxml | 1 +
.../dist/dev/mp-weixin/pages/cargo/cargo.wxss | 116 +
unpackage/dist/dev/mp-weixin/pages/gps/gps.js | 164 +
.../dist/dev/mp-weixin/pages/gps/gps.json | 7 +
.../dist/dev/mp-weixin/pages/gps/gps.wxml | 1 +
.../dist/dev/mp-weixin/pages/index/index.js | 345 +
.../dist/dev/mp-weixin/pages/index/index.json | 11 +
.../dist/dev/mp-weixin/pages/index/index.wxml | 1 +
.../dist/dev/mp-weixin/pages/index/index.wxss | 174 +
.../dist/dev/mp-weixin/pages/line/line.js | 340 +
.../dist/dev/mp-weixin/pages/line/line.json | 9 +
.../dist/dev/mp-weixin/pages/line/line.wxml | 1 +
.../dist/dev/mp-weixin/pages/line/line.wxss | 204 +
.../dist/dev/mp-weixin/pages/login/login.js | 330 +
.../dist/dev/mp-weixin/pages/login/login.json | 7 +
.../dist/dev/mp-weixin/pages/login/login.wxml | 1 +
.../dist/dev/mp-weixin/pages/login/login.wxss | 46 +
.../dist/dev/mp-weixin/pagesA/news/detail.js | 246 +
.../dev/mp-weixin/pagesA/news/detail.json | 8 +
.../dev/mp-weixin/pagesA/news/detail.wxml | 1 +
.../dev/mp-weixin/pagesA/news/detail.wxss | 34 +
.../dist/dev/mp-weixin/pagesA/news/news.js | 218 +
.../dist/dev/mp-weixin/pagesA/news/news.json | 9 +
.../dist/dev/mp-weixin/pagesA/news/news.wxml | 1 +
.../dev/mp-weixin/pagesA/video/playVideo.js | 247 +
.../dev/mp-weixin/pagesA/video/playVideo.json | 5 +
.../dev/mp-weixin/pagesA/video/playVideo.wxml | 1 +
.../dev/mp-weixin/pagesA/video/playVideo.wxss | 39 +
.../dist/dev/mp-weixin/pagesA/video/video.js | 217 +
.../dev/mp-weixin/pagesA/video/video.json | 9 +
.../dev/mp-weixin/pagesA/video/video.wxml | 1 +
.../dist/dev/mp-weixin/project.config.json | 25 +
unpackage/dist/dev/mp-weixin/sitemap.json | 7 +
.../mp-weixin/static/icon/icon-arrow-down.png | Bin 0 -> 1126 bytes
.../static/icon/icon-arrow-right.png | Bin 0 -> 2216 bytes
.../mp-weixin/static/icon/icon-calendar.png | Bin 0 -> 1667 bytes
.../dev/mp-weixin/static/icon/icon-click.png | Bin 0 -> 1525 bytes
.../mp-weixin/static/icon/icon-deliver.png | Bin 0 -> 1535 bytes
.../dev/mp-weixin/static/icon/icon-handle.png | Bin 0 -> 1459 bytes
.../dev/mp-weixin/static/icon/icon-look.png | Bin 0 -> 1481 bytes
.../dev/mp-weixin/static/icon/icon-placed.png | Bin 0 -> 1338 bytes
.../dev/mp-weixin/static/icon/icon-play.png | Bin 0 -> 2635 bytes
.../dev/mp-weixin/static/icon/icon-search.png | Bin 0 -> 1397 bytes
.../dev/mp-weixin/static/icon/icon-signed.png | Bin 0 -> 1251 bytes
.../dev/mp-weixin/static/icon/icon-time.png | Bin 0 -> 1451 bytes
.../mp-weixin/static/icon/icon-transit.png | Bin 0 -> 1592 bytes
.../dev/mp-weixin/static/icon/icon-wait.png | Bin 0 -> 1539 bytes
.../dev/mp-weixin/static/public/banner.jpg | Bin 0 -> 17060 bytes
.../dev/mp-weixin/static/public/cargo.jpg | Bin 0 -> 44558 bytes
.../dist/dev/mp-weixin/static/public/news.jpg | Bin 0 -> 3806 bytes
.../mp-weixin/static/public/video-play.png | Bin 0 -> 4111 bytes
.../dev/mp-weixin/static/public/video.jpg | Bin 0 -> 24983 bytes
.../dev/mp-weixin/static/tabbar/tabbar-01.png | Bin 0 -> 1731 bytes
.../dev/mp-weixin/static/tabbar/tabbar-02.png | Bin 0 -> 2041 bytes
.../dev/mp-weixin/static/tabbar/tabbar-03.png | Bin 0 -> 2153 bytes
.../dev/mp-weixin/static/tabbar/tabbar-04.png | Bin 0 -> 1852 bytes
.../dev/mp-weixin/static/tabbar/tabbar-1.png | Bin 0 -> 1732 bytes
.../dev/mp-weixin/static/tabbar/tabbar-2.png | Bin 0 -> 2044 bytes
.../dev/mp-weixin/static/tabbar/tabbar-3.png | Bin 0 -> 2158 bytes
.../dev/mp-weixin/static/tabbar/tabbar-4.png | Bin 0 -> 1865 bytes
.../dev/mp-weixin/static/tabbar/wechat.png | Bin 0 -> 1914 bytes
174 files changed, 23108 insertions(+)
create mode 100644 .hbuilderx/launch.json
create mode 100644 App.vue
create mode 100644 commons/animate.min.css
create mode 100644 commons/base.css
create mode 100644 commons/icon-font.css
create mode 100644 commons/loading.css
create mode 100644 commons/style.css
create mode 100644 components/foot-tab/foot-tab.vue
create mode 100644 components/list/list-all.vue
create mode 100644 components/status-nav/status-nav.vue
create mode 100644 components/swiper/swiper-pull.vue
create mode 100644 components/title/title-pull.vue
create mode 100644 jsFile/base64-src.js
create mode 100644 jsFile/public-api.js
create mode 100644 jsFile/requst.js
create mode 100644 jsFile/tools.js
create mode 100644 main.js
create mode 100644 manifest.json
create mode 100644 package-lock.json
create mode 100644 package.json
create mode 100644 pages.json
create mode 100644 pages/cargo/cargo.vue
create mode 100644 pages/gps/gps.vue
create mode 100644 pages/index/index.vue
create mode 100644 pages/line/line.vue
create mode 100644 pages/login/login.vue
create mode 100644 pagesA/news/detail.vue
create mode 100644 pagesA/news/news.vue
create mode 100644 pagesA/video/playVideo.vue
create mode 100644 pagesA/video/video.vue
create mode 100644 project.config.json
create mode 100644 static/icon/icon-arrow-down.png
create mode 100644 static/icon/icon-arrow-right.png
create mode 100644 static/icon/icon-calendar.png
create mode 100644 static/icon/icon-click.png
create mode 100644 static/icon/icon-deliver.png
create mode 100644 static/icon/icon-handle.png
create mode 100644 static/icon/icon-look.png
create mode 100644 static/icon/icon-placed.png
create mode 100644 static/icon/icon-play.png
create mode 100644 static/icon/icon-search.png
create mode 100644 static/icon/icon-signed.png
create mode 100644 static/icon/icon-time.png
create mode 100644 static/icon/icon-transit.png
create mode 100644 static/icon/icon-wait.png
create mode 100644 static/public/banner.jpg
create mode 100644 static/public/cargo.jpg
create mode 100644 static/public/news.jpg
create mode 100644 static/public/video-play.png
create mode 100644 static/public/video.jpg
create mode 100644 static/tabbar/tabbar-01.png
create mode 100644 static/tabbar/tabbar-02.png
create mode 100644 static/tabbar/tabbar-03.png
create mode 100644 static/tabbar/tabbar-04.png
create mode 100644 static/tabbar/tabbar-1.png
create mode 100644 static/tabbar/tabbar-2.png
create mode 100644 static/tabbar/tabbar-3.png
create mode 100644 static/tabbar/tabbar-4.png
create mode 100644 static/tabbar/wechat.png
create mode 100644 store/actions.js
create mode 100644 store/index.js
create mode 100644 store/modules/moduleA.js
create mode 100644 store/modules/moduleB.js
create mode 100644 store/mutations.js
create mode 100644 store/readme.md
create mode 100644 uni.scss
create mode 100644 unpackage/dist/dev/.automator/mp-weixin/.automator.json
create mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map
create mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map
create mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map
create mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/components/foot-tab/foot-tab.js.map
create mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/components/list/list-all.js.map
create mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/components/status-nav/status-nav.js.map
create mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/components/swiper/swiper-pull.js.map
create mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/components/title/title-pull.js.map
create mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/pages/cargo/cargo.js.map
create mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/pages/gps/gps.js.map
create mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map
create mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/pages/line/line.js.map
create mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/login.js.map
create mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/pagesA/news/detail.js.map
create mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/pagesA/news/news.js.map
create mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/pagesA/video/playVideo.js.map
create mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/pagesA/video/video.js.map
create mode 100644 unpackage/dist/dev/mp-weixin/app.js
create mode 100644 unpackage/dist/dev/mp-weixin/app.json
create mode 100644 unpackage/dist/dev/mp-weixin/app.wxss
create mode 100644 unpackage/dist/dev/mp-weixin/common/main.js
create mode 100644 unpackage/dist/dev/mp-weixin/common/main.wxss
create mode 100644 unpackage/dist/dev/mp-weixin/common/runtime.js
create mode 100644 unpackage/dist/dev/mp-weixin/common/vendor.js
create mode 100644 unpackage/dist/dev/mp-weixin/components/foot-tab/foot-tab.js
create mode 100644 unpackage/dist/dev/mp-weixin/components/foot-tab/foot-tab.json
create mode 100644 unpackage/dist/dev/mp-weixin/components/foot-tab/foot-tab.wxml
create mode 100644 unpackage/dist/dev/mp-weixin/components/foot-tab/foot-tab.wxss
create mode 100644 unpackage/dist/dev/mp-weixin/components/list/list-all.js
create mode 100644 unpackage/dist/dev/mp-weixin/components/list/list-all.json
create mode 100644 unpackage/dist/dev/mp-weixin/components/list/list-all.wxml
create mode 100644 unpackage/dist/dev/mp-weixin/components/list/list-all.wxss
create mode 100644 unpackage/dist/dev/mp-weixin/components/status-nav/status-nav.js
create mode 100644 unpackage/dist/dev/mp-weixin/components/status-nav/status-nav.json
create mode 100644 unpackage/dist/dev/mp-weixin/components/status-nav/status-nav.wxml
create mode 100644 unpackage/dist/dev/mp-weixin/components/status-nav/status-nav.wxss
create mode 100644 unpackage/dist/dev/mp-weixin/components/swiper/swiper-pull.js
create mode 100644 unpackage/dist/dev/mp-weixin/components/swiper/swiper-pull.json
create mode 100644 unpackage/dist/dev/mp-weixin/components/swiper/swiper-pull.wxml
create mode 100644 unpackage/dist/dev/mp-weixin/components/swiper/swiper-pull.wxss
create mode 100644 unpackage/dist/dev/mp-weixin/components/title/title-pull.js
create mode 100644 unpackage/dist/dev/mp-weixin/components/title/title-pull.json
create mode 100644 unpackage/dist/dev/mp-weixin/components/title/title-pull.wxml
create mode 100644 unpackage/dist/dev/mp-weixin/components/title/title-pull.wxss
create mode 100644 unpackage/dist/dev/mp-weixin/pages/cargo/cargo.js
create mode 100644 unpackage/dist/dev/mp-weixin/pages/cargo/cargo.json
create mode 100644 unpackage/dist/dev/mp-weixin/pages/cargo/cargo.wxml
create mode 100644 unpackage/dist/dev/mp-weixin/pages/cargo/cargo.wxss
create mode 100644 unpackage/dist/dev/mp-weixin/pages/gps/gps.js
create mode 100644 unpackage/dist/dev/mp-weixin/pages/gps/gps.json
create mode 100644 unpackage/dist/dev/mp-weixin/pages/gps/gps.wxml
create mode 100644 unpackage/dist/dev/mp-weixin/pages/index/index.js
create mode 100644 unpackage/dist/dev/mp-weixin/pages/index/index.json
create mode 100644 unpackage/dist/dev/mp-weixin/pages/index/index.wxml
create mode 100644 unpackage/dist/dev/mp-weixin/pages/index/index.wxss
create mode 100644 unpackage/dist/dev/mp-weixin/pages/line/line.js
create mode 100644 unpackage/dist/dev/mp-weixin/pages/line/line.json
create mode 100644 unpackage/dist/dev/mp-weixin/pages/line/line.wxml
create mode 100644 unpackage/dist/dev/mp-weixin/pages/line/line.wxss
create mode 100644 unpackage/dist/dev/mp-weixin/pages/login/login.js
create mode 100644 unpackage/dist/dev/mp-weixin/pages/login/login.json
create mode 100644 unpackage/dist/dev/mp-weixin/pages/login/login.wxml
create mode 100644 unpackage/dist/dev/mp-weixin/pages/login/login.wxss
create mode 100644 unpackage/dist/dev/mp-weixin/pagesA/news/detail.js
create mode 100644 unpackage/dist/dev/mp-weixin/pagesA/news/detail.json
create mode 100644 unpackage/dist/dev/mp-weixin/pagesA/news/detail.wxml
create mode 100644 unpackage/dist/dev/mp-weixin/pagesA/news/detail.wxss
create mode 100644 unpackage/dist/dev/mp-weixin/pagesA/news/news.js
create mode 100644 unpackage/dist/dev/mp-weixin/pagesA/news/news.json
create mode 100644 unpackage/dist/dev/mp-weixin/pagesA/news/news.wxml
create mode 100644 unpackage/dist/dev/mp-weixin/pagesA/video/playVideo.js
create mode 100644 unpackage/dist/dev/mp-weixin/pagesA/video/playVideo.json
create mode 100644 unpackage/dist/dev/mp-weixin/pagesA/video/playVideo.wxml
create mode 100644 unpackage/dist/dev/mp-weixin/pagesA/video/playVideo.wxss
create mode 100644 unpackage/dist/dev/mp-weixin/pagesA/video/video.js
create mode 100644 unpackage/dist/dev/mp-weixin/pagesA/video/video.json
create mode 100644 unpackage/dist/dev/mp-weixin/pagesA/video/video.wxml
create mode 100644 unpackage/dist/dev/mp-weixin/project.config.json
create mode 100644 unpackage/dist/dev/mp-weixin/sitemap.json
create mode 100644 unpackage/dist/dev/mp-weixin/static/icon/icon-arrow-down.png
create mode 100644 unpackage/dist/dev/mp-weixin/static/icon/icon-arrow-right.png
create mode 100644 unpackage/dist/dev/mp-weixin/static/icon/icon-calendar.png
create mode 100644 unpackage/dist/dev/mp-weixin/static/icon/icon-click.png
create mode 100644 unpackage/dist/dev/mp-weixin/static/icon/icon-deliver.png
create mode 100644 unpackage/dist/dev/mp-weixin/static/icon/icon-handle.png
create mode 100644 unpackage/dist/dev/mp-weixin/static/icon/icon-look.png
create mode 100644 unpackage/dist/dev/mp-weixin/static/icon/icon-placed.png
create mode 100644 unpackage/dist/dev/mp-weixin/static/icon/icon-play.png
create mode 100644 unpackage/dist/dev/mp-weixin/static/icon/icon-search.png
create mode 100644 unpackage/dist/dev/mp-weixin/static/icon/icon-signed.png
create mode 100644 unpackage/dist/dev/mp-weixin/static/icon/icon-time.png
create mode 100644 unpackage/dist/dev/mp-weixin/static/icon/icon-transit.png
create mode 100644 unpackage/dist/dev/mp-weixin/static/icon/icon-wait.png
create mode 100644 unpackage/dist/dev/mp-weixin/static/public/banner.jpg
create mode 100644 unpackage/dist/dev/mp-weixin/static/public/cargo.jpg
create mode 100644 unpackage/dist/dev/mp-weixin/static/public/news.jpg
create mode 100644 unpackage/dist/dev/mp-weixin/static/public/video-play.png
create mode 100644 unpackage/dist/dev/mp-weixin/static/public/video.jpg
create mode 100644 unpackage/dist/dev/mp-weixin/static/tabbar/tabbar-01.png
create mode 100644 unpackage/dist/dev/mp-weixin/static/tabbar/tabbar-02.png
create mode 100644 unpackage/dist/dev/mp-weixin/static/tabbar/tabbar-03.png
create mode 100644 unpackage/dist/dev/mp-weixin/static/tabbar/tabbar-04.png
create mode 100644 unpackage/dist/dev/mp-weixin/static/tabbar/tabbar-1.png
create mode 100644 unpackage/dist/dev/mp-weixin/static/tabbar/tabbar-2.png
create mode 100644 unpackage/dist/dev/mp-weixin/static/tabbar/tabbar-3.png
create mode 100644 unpackage/dist/dev/mp-weixin/static/tabbar/tabbar-4.png
create mode 100644 unpackage/dist/dev/mp-weixin/static/tabbar/wechat.png
diff --git a/.hbuilderx/launch.json b/.hbuilderx/launch.json
new file mode 100644
index 0000000..81f13f4
--- /dev/null
+++ b/.hbuilderx/launch.json
@@ -0,0 +1,16 @@
+{ // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/
+ // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数
+ "version": "0.0",
+ "configurations": [{
+ "default" :
+ {
+ "launchtype" : "local"
+ },
+ "mp-weixin" :
+ {
+ "launchtype" : "local"
+ },
+ "type" : "uniCloud"
+ }
+ ]
+}
diff --git a/App.vue b/App.vue
new file mode 100644
index 0000000..f76b725
--- /dev/null
+++ b/App.vue
@@ -0,0 +1,27 @@
+
+
+
+
diff --git a/commons/animate.min.css b/commons/animate.min.css
new file mode 100644
index 0000000..8ae4afd
--- /dev/null
+++ b/commons/animate.min.css
@@ -0,0 +1,12 @@
+@charset "UTF-8";/*!
+Animate.css - http://daneden.me/animate
+Licensed under the MIT license
+
+Copyright (c) 2013 Daniel Eden
+
+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.
+*/.animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animated.hinge{-webkit-animation-duration:2s;animation-duration:2s}@-webkit-keyframes bounce{0%,100%,20%,50%,80%{-webkit-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);transform:translateY(-15px)}}@keyframes bounce{0%,100%,20%,50%,80%{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-30px);-ms-transform:translateY(-30px);transform:translateY(-30px)}60%{-webkit-transform:translateY(-15px);-ms-transform:translateY(-15px);transform:translateY(-15px)}}.bounce{-webkit-animation-name:bounce;animation-name:bounce}@-webkit-keyframes flash{0%,100%,50%{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,100%,50%{opacity:1}25%,75%{opacity:0}}.flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.1);transform:scale(1.1)}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes pulse{0%{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1)}100%{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}.pulse{-webkit-animation-name:pulse;animation-name:pulse}@-webkit-keyframes rubberBand{0%{-webkit-transform:scale(1);transform:scale(1)}30%{-webkit-transform:scaleX(1.25) scaleY(0.75);transform:scaleX(1.25) scaleY(0.75)}40%{-webkit-transform:scaleX(0.75) scaleY(1.25);transform:scaleX(0.75) scaleY(1.25)}60%{-webkit-transform:scaleX(1.15) scaleY(0.85);transform:scaleX(1.15) scaleY(0.85)}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes rubberBand{0%{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}30%{-webkit-transform:scaleX(1.25) scaleY(0.75);-ms-transform:scaleX(1.25) scaleY(0.75);transform:scaleX(1.25) scaleY(0.75)}40%{-webkit-transform:scaleX(0.75) scaleY(1.25);-ms-transform:scaleX(0.75) scaleY(1.25);transform:scaleX(0.75) scaleY(1.25)}60%{-webkit-transform:scaleX(1.15) scaleY(0.85);-ms-transform:scaleX(1.15) scaleY(0.85);transform:scaleX(1.15) scaleY(0.85)}100%{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}.rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shake{0%,100%{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,100%{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);-ms-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);-ms-transform:translateX(10px);transform:translateX(10px)}}.shake{-webkit-animation-name:shake;animation-name:shake}@-webkit-keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}100%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes swing{20%{-webkit-transform:rotate(15deg);-ms-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);-ms-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);-ms-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);-ms-transform:rotate(-5deg);transform:rotate(-5deg)}100%{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}}.swing{-webkit-transform-origin:top center;-ms-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{0%{-webkit-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(0.9) rotate(-3deg);transform:scale(0.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}100%{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}@keyframes tada{0%{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}10%,20%{-webkit-transform:scale(0.9) rotate(-3deg);-ms-transform:scale(0.9) rotate(-3deg);transform:scale(0.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale(1.1) rotate(3deg);-ms-transform:scale(1.1) rotate(3deg);transform:scale(1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale(1.1) rotate(-3deg);-ms-transform:scale(1.1) rotate(-3deg);transform:scale(1.1) rotate(-3deg)}100%{-webkit-transform:scale(1) rotate(0);-ms-transform:scale(1) rotate(0);transform:scale(1) rotate(0)}}.tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{0%{-webkit-transform:translateX(0%);transform:translateX(0%)}15%{-webkit-transform:translateX(-25%) rotate(-5deg);transform:translateX(-25%) rotate(-5deg)}30%{-webkit-transform:translateX(20%) rotate(3deg);transform:translateX(20%) rotate(3deg)}45%{-webkit-transform:translateX(-15%) rotate(-3deg);transform:translateX(-15%) rotate(-3deg)}60%{-webkit-transform:translateX(10%) rotate(2deg);transform:translateX(10%) rotate(2deg)}75%{-webkit-transform:translateX(-5%) rotate(-1deg);transform:translateX(-5%) rotate(-1deg)}100%{-webkit-transform:translateX(0%);transform:translateX(0%)}}@keyframes wobble{0%{-webkit-transform:translateX(0%);-ms-transform:translateX(0%);transform:translateX(0%)}15%{-webkit-transform:translateX(-25%) rotate(-5deg);-ms-transform:translateX(-25%) rotate(-5deg);transform:translateX(-25%) rotate(-5deg)}30%{-webkit-transform:translateX(20%) rotate(3deg);-ms-transform:translateX(20%) rotate(3deg);transform:translateX(20%) rotate(3deg)}45%{-webkit-transform:translateX(-15%) rotate(-3deg);-ms-transform:translateX(-15%) rotate(-3deg);transform:translateX(-15%) rotate(-3deg)}60%{-webkit-transform:translateX(10%) rotate(2deg);-ms-transform:translateX(10%) rotate(2deg);transform:translateX(10%) rotate(2deg)}75%{-webkit-transform:translateX(-5%) rotate(-1deg);-ms-transform:translateX(-5%) rotate(-1deg);transform:translateX(-5%) rotate(-1deg)}100%{-webkit-transform:translateX(0%);-ms-transform:translateX(0%);transform:translateX(0%)}}.wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes bounceIn{0%{opacity:0;-webkit-transform:scale(.3);transform:scale(.3)}50%{opacity:1;-webkit-transform:scale(1.05);transform:scale(1.05)}70%{-webkit-transform:scale(.9);transform:scale(.9)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes bounceIn{0%{opacity:0;-webkit-transform:scale(.3);-ms-transform:scale(.3);transform:scale(.3)}50%{opacity:1;-webkit-transform:scale(1.05);-ms-transform:scale(1.05);transform:scale(1.05)}70%{-webkit-transform:scale(.9);-ms-transform:scale(.9);transform:scale(.9)}100%{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}.bounceIn{-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes bounceInDown{0%{opacity:0;-webkit-transform:translateY(-2000px);transform:translateY(-2000px)}60%{opacity:1;-webkit-transform:translateY(30px);transform:translateY(30px)}80%{-webkit-transform:translateY(-10px);transform:translateY(-10px)}100%{-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes bounceInDown{0%{opacity:0;-webkit-transform:translateY(-2000px);-ms-transform:translateY(-2000px);transform:translateY(-2000px)}60%{opacity:1;-webkit-transform:translateY(30px);-ms-transform:translateY(30px);transform:translateY(30px)}80%{-webkit-transform:translateY(-10px);-ms-transform:translateY(-10px);transform:translateY(-10px)}100%{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}.bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%{opacity:0;-webkit-transform:translateX(-2000px);transform:translateX(-2000px)}60%{opacity:1;-webkit-transform:translateX(30px);transform:translateX(30px)}80%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes bounceInLeft{0%{opacity:0;-webkit-transform:translateX(-2000px);-ms-transform:translateX(-2000px);transform:translateX(-2000px)}60%{opacity:1;-webkit-transform:translateX(30px);-ms-transform:translateX(30px);transform:translateX(30px)}80%{-webkit-transform:translateX(-10px);-ms-transform:translateX(-10px);transform:translateX(-10px)}100%{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}}.bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%{opacity:0;-webkit-transform:translateX(2000px);transform:translateX(2000px)}60%{opacity:1;-webkit-transform:translateX(-30px);transform:translateX(-30px)}80%{-webkit-transform:translateX(10px);transform:translateX(10px)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes bounceInRight{0%{opacity:0;-webkit-transform:translateX(2000px);-ms-transform:translateX(2000px);transform:translateX(2000px)}60%{opacity:1;-webkit-transform:translateX(-30px);-ms-transform:translateX(-30px);transform:translateX(-30px)}80%{-webkit-transform:translateX(10px);-ms-transform:translateX(10px);transform:translateX(10px)}100%{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}}.bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%{opacity:0;-webkit-transform:translateY(2000px);transform:translateY(2000px)}60%{opacity:1;-webkit-transform:translateY(-30px);transform:translateY(-30px)}80%{-webkit-transform:translateY(10px);transform:translateY(10px)}100%{-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes bounceInUp{0%{opacity:0;-webkit-transform:translateY(2000px);-ms-transform:translateY(2000px);transform:translateY(2000px)}60%{opacity:1;-webkit-transform:translateY(-30px);-ms-transform:translateY(-30px);transform:translateY(-30px)}80%{-webkit-transform:translateY(10px);-ms-transform:translateY(10px);transform:translateY(10px)}100%{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}.bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{0%{-webkit-transform:scale(1);transform:scale(1)}25%{-webkit-transform:scale(.95);transform:scale(.95)}50%{opacity:1;-webkit-transform:scale(1.1);transform:scale(1.1)}100%{opacity:0;-webkit-transform:scale(.3);transform:scale(.3)}}@keyframes bounceOut{0%{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}25%{-webkit-transform:scale(.95);-ms-transform:scale(.95);transform:scale(.95)}50%{opacity:1;-webkit-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1)}100%{opacity:0;-webkit-transform:scale(.3);-ms-transform:scale(.3);transform:scale(.3)}}.bounceOut{-webkit-animation-name:bounceOut;animation-name:bounceOut}@-webkit-keyframes bounceOutDown{0%{-webkit-transform:translateY(0);transform:translateY(0)}20%{opacity:1;-webkit-transform:translateY(-20px);transform:translateY(-20px)}100%{opacity:0;-webkit-transform:translateY(2000px);transform:translateY(2000px)}}@keyframes bounceOutDown{0%{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}20%{opacity:1;-webkit-transform:translateY(-20px);-ms-transform:translateY(-20px);transform:translateY(-20px)}100%{opacity:0;-webkit-transform:translateY(2000px);-ms-transform:translateY(2000px);transform:translateY(2000px)}}.bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{0%{-webkit-transform:translateX(0);transform:translateX(0)}20%{opacity:1;-webkit-transform:translateX(20px);transform:translateX(20px)}100%{opacity:0;-webkit-transform:translateX(-2000px);transform:translateX(-2000px)}}@keyframes bounceOutLeft{0%{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}20%{opacity:1;-webkit-transform:translateX(20px);-ms-transform:translateX(20px);transform:translateX(20px)}100%{opacity:0;-webkit-transform:translateX(-2000px);-ms-transform:translateX(-2000px);transform:translateX(-2000px)}}.bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{0%{-webkit-transform:translateX(0);transform:translateX(0)}20%{opacity:1;-webkit-transform:translateX(-20px);transform:translateX(-20px)}100%{opacity:0;-webkit-transform:translateX(2000px);transform:translateX(2000px)}}@keyframes bounceOutRight{0%{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}20%{opacity:1;-webkit-transform:translateX(-20px);-ms-transform:translateX(-20px);transform:translateX(-20px)}100%{opacity:0;-webkit-transform:translateX(2000px);-ms-transform:translateX(2000px);transform:translateX(2000px)}}.bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{0%{-webkit-transform:translateY(0);transform:translateY(0)}20%{opacity:1;-webkit-transform:translateY(20px);transform:translateY(20px)}100%{opacity:0;-webkit-transform:translateY(-2000px);transform:translateY(-2000px)}}@keyframes bounceOutUp{0%{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}20%{opacity:1;-webkit-transform:translateY(20px);-ms-transform:translateY(20px);transform:translateY(20px)}100%{opacity:0;-webkit-transform:translateY(-2000px);-ms-transform:translateY(-2000px);transform:translateY(-2000px)}}.bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-20px);transform:translateY(-20px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translateY(-20px);-ms-transform:translateY(-20px);transform:translateY(-20px)}100%{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}.fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translateY(-2000px);transform:translateY(-2000px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translateY(-2000px);-ms-transform:translateY(-2000px);transform:translateY(-2000px)}100%{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}.fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(-20px);transform:translateX(-20px)}100%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translateX(-20px);-ms-transform:translateX(-20px);transform:translateX(-20px)}100%{opacity:1;-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}}.fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translateX(-2000px);transform:translateX(-2000px)}100%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translateX(-2000px);-ms-transform:translateX(-2000px);transform:translateX(-2000px)}100%{opacity:1;-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}}.fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(20px);transform:translateX(20px)}100%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translateX(20px);-ms-transform:translateX(20px);transform:translateX(20px)}100%{opacity:1;-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}}.fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translateX(2000px);transform:translateX(2000px)}100%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translateX(2000px);-ms-transform:translateX(2000px);transform:translateX(2000px)}100%{opacity:1;-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}}.fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(20px);transform:translateY(20px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translateY(20px);-ms-transform:translateY(20px);transform:translateY(20px)}100%{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}.fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px);transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px);-ms-transform:translateY(2000px);transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}.fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(20px);transform:translateY(20px)}}@keyframes fadeOutDown{0%{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(20px);-ms-transform:translateY(20px);transform:translateY(20px)}}.fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(2000px);transform:translateY(2000px)}}@keyframes fadeOutDownBig{0%{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(2000px);-ms-transform:translateY(2000px);transform:translateY(2000px)}}.fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(-20px);transform:translateX(-20px)}}@keyframes fadeOutLeft{0%{opacity:1;-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(-20px);-ms-transform:translateX(-20px);transform:translateX(-20px)}}.fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(-2000px);transform:translateX(-2000px)}}@keyframes fadeOutLeftBig{0%{opacity:1;-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(-2000px);-ms-transform:translateX(-2000px);transform:translateX(-2000px)}}.fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(20px);transform:translateX(20px)}}@keyframes fadeOutRight{0%{opacity:1;-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(20px);-ms-transform:translateX(20px);transform:translateX(20px)}}.fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1;-webkit-transform:translateX(0);transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(2000px);transform:translateX(2000px)}}@keyframes fadeOutRightBig{0%{opacity:1;-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(2000px);-ms-transform:translateX(2000px);transform:translateX(2000px)}}.fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-20px);transform:translateY(-20px)}}@keyframes fadeOutUp{0%{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-20px);-ms-transform:translateY(-20px);transform:translateY(-20px)}}.fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-2000px);transform:translateY(-2000px)}}@keyframes fadeOutUpBig{0%{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-2000px);-ms-transform:translateY(-2000px);transform:translateY(-2000px)}}.fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes flip{0%{-webkit-transform:perspective(400px) translateZ(0) rotateY(0) scale(1);transform:perspective(400px) translateZ(0) rotateY(0) scale(1);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(170deg) scale(1);transform:perspective(400px) translateZ(150px) rotateY(170deg) scale(1);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(190deg) scale(1);transform:perspective(400px) translateZ(150px) rotateY(190deg) scale(1);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) translateZ(0) rotateY(360deg) scale(.95);transform:perspective(400px) translateZ(0) rotateY(360deg) scale(.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}100%{-webkit-transform:perspective(400px) translateZ(0) rotateY(360deg) scale(1);transform:perspective(400px) translateZ(0) rotateY(360deg) scale(1);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{0%{-webkit-transform:perspective(400px) translateZ(0) rotateY(0) scale(1);-ms-transform:perspective(400px) translateZ(0) rotateY(0) scale(1);transform:perspective(400px) translateZ(0) rotateY(0) scale(1);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(170deg) scale(1);-ms-transform:perspective(400px) translateZ(150px) rotateY(170deg) scale(1);transform:perspective(400px) translateZ(150px) rotateY(170deg) scale(1);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(190deg) scale(1);-ms-transform:perspective(400px) translateZ(150px) rotateY(190deg) scale(1);transform:perspective(400px) translateZ(150px) rotateY(190deg) scale(1);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) translateZ(0) rotateY(360deg) scale(.95);-ms-transform:perspective(400px) translateZ(0) rotateY(360deg) scale(.95);transform:perspective(400px) translateZ(0) rotateY(360deg) scale(.95);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}100%{-webkit-transform:perspective(400px) translateZ(0) rotateY(360deg) scale(1);-ms-transform:perspective(400px) translateZ(0) rotateY(360deg) scale(1);transform:perspective(400px) translateZ(0) rotateY(360deg) scale(1);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animated.flip{-webkit-backface-visibility:visible;-ms-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-10deg);transform:perspective(400px) rotateX(-10deg)}70%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg)}100%{-webkit-transform:perspective(400px) rotateX(0deg);transform:perspective(400px) rotateX(0deg);opacity:1}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);-ms-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-10deg);-ms-transform:perspective(400px) rotateX(-10deg);transform:perspective(400px) rotateX(-10deg)}70%{-webkit-transform:perspective(400px) rotateX(10deg);-ms-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg)}100%{-webkit-transform:perspective(400px) rotateX(0deg);-ms-transform:perspective(400px) rotateX(0deg);transform:perspective(400px) rotateX(0deg);opacity:1}}.flipInX{-webkit-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-10deg);transform:perspective(400px) rotateY(-10deg)}70%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg)}100%{-webkit-transform:perspective(400px) rotateY(0deg);transform:perspective(400px) rotateY(0deg);opacity:1}}@keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);-ms-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-10deg);-ms-transform:perspective(400px) rotateY(-10deg);transform:perspective(400px) rotateY(-10deg)}70%{-webkit-transform:perspective(400px) rotateY(10deg);-ms-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg)}100%{-webkit-transform:perspective(400px) rotateY(0deg);-ms-transform:perspective(400px) rotateY(0deg);transform:perspective(400px) rotateY(0deg);opacity:1}}.flipInY{-webkit-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px) rotateX(0deg);transform:perspective(400px) rotateX(0deg);opacity:1}100%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}@keyframes flipOutX{0%{-webkit-transform:perspective(400px) rotateX(0deg);-ms-transform:perspective(400px) rotateX(0deg);transform:perspective(400px) rotateX(0deg);opacity:1}100%{-webkit-transform:perspective(400px) rotateX(90deg);-ms-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}.flipOutX{-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px) rotateY(0deg);transform:perspective(400px) rotateY(0deg);opacity:1}100%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}@keyframes flipOutY{0%{-webkit-transform:perspective(400px) rotateY(0deg);-ms-transform:perspective(400px) rotateY(0deg);transform:perspective(400px) rotateY(0deg);opacity:1}100%{-webkit-transform:perspective(400px) rotateY(90deg);-ms-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}.flipOutY{-webkit-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY}@-webkit-keyframes lightSpeedIn{0%{-webkit-transform:translateX(100%) skewX(-30deg);transform:translateX(100%) skewX(-30deg);opacity:0}60%{-webkit-transform:translateX(-20%) skewX(30deg);transform:translateX(-20%) skewX(30deg);opacity:1}80%{-webkit-transform:translateX(0%) skewX(-15deg);transform:translateX(0%) skewX(-15deg);opacity:1}100%{-webkit-transform:translateX(0%) skewX(0deg);transform:translateX(0%) skewX(0deg);opacity:1}}@keyframes lightSpeedIn{0%{-webkit-transform:translateX(100%) skewX(-30deg);-ms-transform:translateX(100%) skewX(-30deg);transform:translateX(100%) skewX(-30deg);opacity:0}60%{-webkit-transform:translateX(-20%) skewX(30deg);-ms-transform:translateX(-20%) skewX(30deg);transform:translateX(-20%) skewX(30deg);opacity:1}80%{-webkit-transform:translateX(0%) skewX(-15deg);-ms-transform:translateX(0%) skewX(-15deg);transform:translateX(0%) skewX(-15deg);opacity:1}100%{-webkit-transform:translateX(0%) skewX(0deg);-ms-transform:translateX(0%) skewX(0deg);transform:translateX(0%) skewX(0deg);opacity:1}}.lightSpeedIn{-webkit-animation-name:lightSpeedIn;animation-name:lightSpeedIn;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOut{0%{-webkit-transform:translateX(0%) skewX(0deg);transform:translateX(0%) skewX(0deg);opacity:1}100%{-webkit-transform:translateX(100%) skewX(-30deg);transform:translateX(100%) skewX(-30deg);opacity:0}}@keyframes lightSpeedOut{0%{-webkit-transform:translateX(0%) skewX(0deg);-ms-transform:translateX(0%) skewX(0deg);transform:translateX(0%) skewX(0deg);opacity:1}100%{-webkit-transform:translateX(100%) skewX(-30deg);-ms-transform:translateX(100%) skewX(-30deg);transform:translateX(100%) skewX(-30deg);opacity:0}}.lightSpeedOut{-webkit-animation-name:lightSpeedOut;animation-name:lightSpeedOut;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{-webkit-transform-origin:center center;transform-origin:center center;-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}100%{-webkit-transform-origin:center center;transform-origin:center center;-webkit-transform:rotate(0);transform:rotate(0);opacity:1}}@keyframes rotateIn{0%{-webkit-transform-origin:center center;-ms-transform-origin:center center;transform-origin:center center;-webkit-transform:rotate(-200deg);-ms-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}100%{-webkit-transform-origin:center center;-ms-transform-origin:center center;transform-origin:center center;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);opacity:1}}.rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn}@-webkit-keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(0);transform:rotate(0);opacity:1}}@keyframes rotateInDownLeft{0%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}100%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);opacity:1}}.rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft}@-webkit-keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(0);transform:rotate(0);opacity:1}}@keyframes rotateInDownRight{0%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);opacity:0}100%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);opacity:1}}.rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight}@-webkit-keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(0);transform:rotate(0);opacity:1}}@keyframes rotateInUpLeft{0%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);opacity:0}100%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);opacity:1}}.rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft}@-webkit-keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(0);transform:rotate(0);opacity:1}}@keyframes rotateInUpRight{0%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}100%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);opacity:1}}.rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight}@-webkit-keyframes rotateOut{0%{-webkit-transform-origin:center center;transform-origin:center center;-webkit-transform:rotate(0);transform:rotate(0);opacity:1}100%{-webkit-transform-origin:center center;transform-origin:center center;-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}@keyframes rotateOut{0%{-webkit-transform-origin:center center;-ms-transform-origin:center center;transform-origin:center center;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);opacity:1}100%{-webkit-transform-origin:center center;-ms-transform-origin:center center;transform-origin:center center;-webkit-transform:rotate(200deg);-ms-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}.rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut}@-webkit-keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(0);transform:rotate(0);opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}@keyframes rotateOutDownLeft{0%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);opacity:1}100%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}.rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft}@-webkit-keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(0);transform:rotate(0);opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}}@keyframes rotateOutDownRight{0%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);opacity:1}100%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}}.rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight}@-webkit-keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(0);transform:rotate(0);opacity:1}100%{-webkit-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}}@keyframes rotateOutUpLeft{0%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);opacity:1}100%{-webkit-transform-origin:left bottom;-ms-transform-origin:left bottom;transform-origin:left bottom;-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}}.rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft}@-webkit-keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(0);transform:rotate(0);opacity:1}100%{-webkit-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}@keyframes rotateOutUpRight{0%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);opacity:1}100%{-webkit-transform-origin:right bottom;-ms-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}.rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight}@-webkit-keyframes slideInDown{0%{opacity:0;-webkit-transform:translateY(-2000px);transform:translateY(-2000px)}100%{-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes slideInDown{0%{opacity:0;-webkit-transform:translateY(-2000px);-ms-transform:translateY(-2000px);transform:translateY(-2000px)}100%{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}.slideInDown{-webkit-animation-name:slideInDown;animation-name:slideInDown}@-webkit-keyframes slideInLeft{0%{opacity:0;-webkit-transform:translateX(-2000px);transform:translateX(-2000px)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInLeft{0%{opacity:0;-webkit-transform:translateX(-2000px);-ms-transform:translateX(-2000px);transform:translateX(-2000px)}100%{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}}.slideInLeft{-webkit-animation-name:slideInLeft;animation-name:slideInLeft}@-webkit-keyframes slideInRight{0%{opacity:0;-webkit-transform:translateX(2000px);transform:translateX(2000px)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInRight{0%{opacity:0;-webkit-transform:translateX(2000px);-ms-transform:translateX(2000px);transform:translateX(2000px)}100%{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}}.slideInRight{-webkit-animation-name:slideInRight;animation-name:slideInRight}@-webkit-keyframes slideOutLeft{0%{-webkit-transform:translateX(0);transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(-2000px);transform:translateX(-2000px)}}@keyframes slideOutLeft{0%{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(-2000px);-ms-transform:translateX(-2000px);transform:translateX(-2000px)}}.slideOutLeft{-webkit-animation-name:slideOutLeft;animation-name:slideOutLeft}@-webkit-keyframes slideOutRight{0%{-webkit-transform:translateX(0);transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(2000px);transform:translateX(2000px)}}@keyframes slideOutRight{0%{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}100%{opacity:0;-webkit-transform:translateX(2000px);-ms-transform:translateX(2000px);transform:translateX(2000px)}}.slideOutRight{-webkit-animation-name:slideOutRight;animation-name:slideOutRight}@-webkit-keyframes slideOutUp{0%{-webkit-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-2000px);transform:translateY(-2000px)}}@keyframes slideOutUp{0%{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-2000px);-ms-transform:translateY(-2000px);transform:translateY(-2000px)}}.slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp}@-webkit-keyframes slideInUp{0%{opacity:0;-webkit-transform:translateY(2000px);transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes slideInUp{0%{opacity:0;-webkit-transform:translateY(2000px);-ms-transform:translateY(2000px);transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}.slideInUp{-webkit-animation-name:slideInUp;animation-name:slideInUp}@-webkit-keyframes slideOutDown{0%{-webkit-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(2000px);transform:translateY(2000px)}}@keyframes slideOutDown{0%{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(2000px);-ms-transform:translateY(2000px);transform:translateY(2000px)}}.slideOutDown{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}@-webkit-keyframes hinge{0%{-webkit-transform:rotate(0);transform:rotate(0);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}80%{-webkit-transform:rotate(60deg) translateY(0);transform:rotate(60deg) translateY(0);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}100%{-webkit-transform:translateY(700px);transform:translateY(700px);opacity:0}}@keyframes hinge{0%{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);-webkit-transform-origin:top left;-ms-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);-ms-transform:rotate(80deg);transform:rotate(80deg);-webkit-transform-origin:top left;-ms-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%{-webkit-transform:rotate(60deg);-ms-transform:rotate(60deg);transform:rotate(60deg);-webkit-transform-origin:top left;-ms-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}80%{-webkit-transform:rotate(60deg) translateY(0);-ms-transform:rotate(60deg) translateY(0);transform:rotate(60deg) translateY(0);-webkit-transform-origin:top left;-ms-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}100%{-webkit-transform:translateY(700px);-ms-transform:translateY(700px);transform:translateY(700px);opacity:0}}.hinge{-webkit-animation-name:hinge;animation-name:hinge}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translateX(-100%) rotate(-120deg);transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;-webkit-transform:translateX(0px) rotate(0deg);transform:translateX(0px) rotate(0deg)}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translateX(-100%) rotate(-120deg);-ms-transform:translateX(-100%) rotate(-120deg);transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;-webkit-transform:translateX(0px) rotate(0deg);-ms-transform:translateX(0px) rotate(0deg);transform:translateX(0px) rotate(0deg)}}.rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1;-webkit-transform:translateX(0px) rotate(0deg);transform:translateX(0px) rotate(0deg)}100%{opacity:0;-webkit-transform:translateX(100%) rotate(120deg);transform:translateX(100%) rotate(120deg)}}@keyframes rollOut{0%{opacity:1;-webkit-transform:translateX(0px) rotate(0deg);-ms-transform:translateX(0px) rotate(0deg);transform:translateX(0px) rotate(0deg)}100%{opacity:0;-webkit-transform:translateX(100%) rotate(120deg);-ms-transform:translateX(100%) rotate(120deg);transform:translateX(100%) rotate(120deg)}}.rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale(.3);transform:scale(.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale(.3);-ms-transform:scale(.3);transform:scale(.3)}50%{opacity:1}}.zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale(.1) translateY(-2000px);transform:scale(.1) translateY(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateY(60px);transform:scale(.475) translateY(60px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale(.1) translateY(-2000px);-ms-transform:scale(.1) translateY(-2000px);transform:scale(.1) translateY(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateY(60px);-ms-transform:scale(.475) translateY(60px);transform:scale(.475) translateY(60px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale(.1) translateX(-2000px);transform:scale(.1) translateX(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateX(48px);transform:scale(.475) translateX(48px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale(.1) translateX(-2000px);-ms-transform:scale(.1) translateX(-2000px);transform:scale(.1) translateX(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateX(48px);-ms-transform:scale(.475) translateX(48px);transform:scale(.475) translateX(48px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale(.1) translateX(2000px);transform:scale(.1) translateX(2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateX(-48px);transform:scale(.475) translateX(-48px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale(.1) translateX(2000px);-ms-transform:scale(.1) translateX(2000px);transform:scale(.1) translateX(2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateX(-48px);-ms-transform:scale(.475) translateX(-48px);transform:scale(.475) translateX(-48px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale(.1) translateY(2000px);transform:scale(.1) translateY(2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateY(-60px);transform:scale(.475) translateY(-60px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale(.1) translateY(2000px);-ms-transform:scale(.1) translateY(2000px);transform:scale(.1) translateY(2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateY(-60px);-ms-transform:scale(.475) translateY(-60px);transform:scale(.475) translateY(-60px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}50%{opacity:0;-webkit-transform:scale(.3);transform:scale(.3)}100%{opacity:0}}@keyframes zoomOut{0%{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}50%{opacity:0;-webkit-transform:scale(.3);-ms-transform:scale(.3);transform:scale(.3)}100%{opacity:0}}.zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale(.475) translateY(-60px);transform:scale(.475) translateY(-60px);-webkit-animation-timing-function:linear;animation-timing-function:linear}100%{opacity:0;-webkit-transform:scale(.1) translateY(2000px);transform:scale(.1) translateY(2000px);-webkit-transform-origin:center bottom;transform-origin:center bottom}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale(.475) translateY(-60px);-ms-transform:scale(.475) translateY(-60px);transform:scale(.475) translateY(-60px);-webkit-animation-timing-function:linear;animation-timing-function:linear}100%{opacity:0;-webkit-transform:scale(.1) translateY(2000px);-ms-transform:scale(.1) translateY(2000px);transform:scale(.1) translateY(2000px);-webkit-transform-origin:center bottom;-ms-transform-origin:center bottom;transform-origin:center bottom}}.zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale(.475) translateX(42px);transform:scale(.475) translateX(42px);-webkit-animation-timing-function:linear;animation-timing-function:linear}100%{opacity:0;-webkit-transform:scale(.1) translateX(-2000px);transform:scale(.1) translateX(-2000px);-webkit-transform-origin:left center;transform-origin:left center}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale(.475) translateX(42px);-ms-transform:scale(.475) translateX(42px);transform:scale(.475) translateX(42px);-webkit-animation-timing-function:linear;animation-timing-function:linear}100%{opacity:0;-webkit-transform:scale(.1) translateX(-2000px);-ms-transform:scale(.1) translateX(-2000px);transform:scale(.1) translateX(-2000px);-webkit-transform-origin:left center;-ms-transform-origin:left center;transform-origin:left center}}.zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale(.475) translateX(-42px);transform:scale(.475) translateX(-42px);-webkit-animation-timing-function:linear;animation-timing-function:linear}100%{opacity:0;-webkit-transform:scale(.1) translateX(2000px);transform:scale(.1) translateX(2000px);-webkit-transform-origin:right center;transform-origin:right center}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale(.475) translateX(-42px);-ms-transform:scale(.475) translateX(-42px);transform:scale(.475) translateX(-42px);-webkit-animation-timing-function:linear;animation-timing-function:linear}100%{opacity:0;-webkit-transform:scale(.1) translateX(2000px);-ms-transform:scale(.1) translateX(2000px);transform:scale(.1) translateX(2000px);-webkit-transform-origin:right center;-ms-transform-origin:right center;transform-origin:right center}}.zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale(.475) translateY(60px);transform:scale(.475) translateY(60px);-webkit-animation-timing-function:linear;animation-timing-function:linear}100%{opacity:0;-webkit-transform:scale(.1) translateY(-2000px);transform:scale(.1) translateY(-2000px);-webkit-transform-origin:center top;transform-origin:center top}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale(.475) translateY(60px);-ms-transform:scale(.475) translateY(60px);transform:scale(.475) translateY(60px);-webkit-animation-timing-function:linear;animation-timing-function:linear}100%{opacity:0;-webkit-transform:scale(.1) translateY(-2000px);-ms-transform:scale(.1) translateY(-2000px);transform:scale(.1) translateY(-2000px);-webkit-transform-origin:center top;-ms-transform-origin:center top;transform-origin:center top}}.zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp}
\ No newline at end of file
diff --git a/commons/base.css b/commons/base.css
new file mode 100644
index 0000000..5f3a91c
--- /dev/null
+++ b/commons/base.css
@@ -0,0 +1,165 @@
+/* flex布局 */
+.flex {display: flex;}
+
+/* 盒模型 */
+.border-box{box-sizing: border-box;}
+
+/* 加粗 */
+.bold{font-weight: bold;}
+
+/* 透明度 */
+.opacity-10{opacity: 1;}
+.opacity-09{opacity: .9;}
+.opacity-08{opacity: .8;}
+.opacity-07{opacity: .7;}
+.opacity-06{opacity: .6;}
+.opacity-05{opacity: .5;}
+.opacity-04{opacity: .4;}
+.opacity-03{opacity: .3;}
+.opacity-02{opacity: .2;}
+.opacity-01{opacity: .1;}
+.opacity{opacity: 0;}
+
+/* 圆角 */
+.radius6{border-radius: 6rpx;}
+.radius8{border-radius: 8rpx;}
+.radius10{border-radius: 10rpx;}
+.radius15{border-radius: 15rpx;}
+.radius20{border-radius: 20rpx;}
+.radius25{border-radius: 25rpx;}
+.radius30{border-radius: 30rpx;}
+.radius35{border-radius: 35rpx;}
+.radius40{border-radius: 40rpx;}
+.radius100{border-radius: 100%;}
+
+/* 外边距 */
+.mar-sx10{margin-top: 10rpx;margin-bottom: 10rpx;}
+.mar-sx15{margin-top: 15rpx;margin-bottom: 15rpx;}
+.mar-sx20{margin-top: 20rpx;margin-bottom: 20rpx;}
+.mar-sx25{margin-top: 25rpx;margin-bottom: 25rpx;}
+.mar-sx30{margin-top: 30rpx;margin-bottom: 30rpx;}
+.mar-sx35{margin-top: 35rpx;margin-bottom: 35rpx;}
+.mar-sx40{margin-top: 40rpx;margin-bottom: 40rpx;}
+.mar-sx45{margin-top: 45rpx;margin-bottom: 45rpx;}
+.mar-sx50{margin-top: 50rpx;margin-bottom: 50rpx;}
+.mar-sx55{margin-top: 55rpx;margin-bottom: 55rpx;}
+.mar-sx60{margin-top: 60rpx;margin-bottom: 60rpx;}
+.mar-sx70{margin-top: 70rpx;margin-bottom: 70rpx;}
+.mar-sx80{margin-top: 80rpx;margin-bottom: 80rpx;}
+.mar-sx90{margin-top: 90rpx;margin-bottom: 90rpx;}
+.mar-sx100{margin-top: 100rpx;margin-bottom: 100rpx;}
+
+.mar-zy10{margin-left: 10rpx;margin-right: 10rpx;}
+.mar-zy15{margin-left: 15rpx;margin-right: 15rpx;}
+.mar-zy20{margin-left: 20rpx;margin-right: 20rpx;}
+.mar-zy25{margin-left: 25rpx;margin-right: 25rpx;}
+.mar-zy30{margin-left: 30rpx;margin-right: 30rpx;}
+.mar-zy35{margin-left: 35rpx;margin-right: 35rpx;}
+.mar-zy40{margin-left: 40rpx;margin-right: 40rpx;}
+.mar-zy45{margin-left: 45rpx;margin-right: 45rpx;}
+.mar-zy50{margin-left: 50rpx;margin-right: 50rpx;}
+.mar-zy55{margin-left: 55rpx;margin-right: 55rpx;}
+.mar-zy60{margin-left: 60rpx;margin-right: 60rpx;}
+.mar-zy70{margin-left: 70rpx;margin-right: 70rpx;}
+.mar-zy80{margin-left: 80rpx;margin-right: 80rpx;}
+.mar-zy90{margin-left: 90rpx;margin-right: 90rpx;}
+.mar-zy100{margin-left: 100rpx;margin-right: 100rpx;}
+
+/* 内边距 */
+.pad-sx10{padding-top: 10rpx;padding-bottom: 10rpx;}
+.pad-sx15{padding-top: 15rpx;padding-bottom: 15rpx;}
+.pad-sx20{padding-top: 20rpx;padding-bottom: 20rpx;}
+.pad-sx25{padding-top: 25rpx;padding-bottom: 25rpx;}
+.pad-sx30{padding-top: 30rpx;padding-bottom: 30rpx;}
+.pad-sx35{padding-top: 35rpx;padding-bottom: 35rpx;}
+.pad-sx40{padding-top: 40rpx;padding-bottom: 40rpx;}
+.pad-sx45{padding-top: 45rpx;padding-bottom: 45rpx;}
+.pad-sx50{padding-top: 50rpx;padding-bottom: 50rpx;}
+.pad-sx55{padding-top: 55rpx;padding-bottom: 55rpx;}
+.pad-sx60{padding-top: 60rpx;padding-bottom: 60rpx;}
+.pad-sx70{padding-top: 70rpx;padding-bottom: 70rpx;}
+.pad-sx80{padding-top: 80rpx;padding-bottom: 80rpx;}
+.pad-sx90{padding-top: 90rpx;padding-bottom: 90rpx;}
+.pad-sx100{padding-top: 100rpx;padding-bottom: 100rpx;}
+
+.pad-zy10{padding-left: 10rpx;padding-right: 10rpx;}
+.pad-zy15{padding-left: 15rpx;padding-right: 15rpx;}
+.pad-zy20{padding-left: 20rpx;padding-right: 20rpx;}
+.pad-zy25{padding-left: 25rpx;padding-right: 25rpx;}
+.pad-zy30{padding-left: 30rpx;padding-right: 30rpx;}
+.pad-zy35{padding-left: 35rpx;padding-right: 35rpx;}
+.pad-zy40{padding-left: 40rpx;padding-right: 40rpx;}
+.pad-zy45{padding-left: 45rpx;padding-right: 45rpx;}
+.pad-zy50{padding-left: 50rpx;padding-right: 50rpx;}
+.pad-zy55{padding-left: 55rpx;padding-right: 55rpx;}
+.pad-zy60{padding-left: 60rpx;padding-right: 60rpx;}
+.pad-zy70{padding-left: 70rpx;padding-right: 70rpx;}
+.pad-zy80{padding-left: 80rpx;padding-right: 80rpx;}
+.pad-zy90{padding-left: 90rpx;padding-right: 90rpx;}
+.pad-zy100{padding-left: 100rpx;padding-right: 100rpx;}
+
+.pad-x100{padding-bottom: 100rpx;}
+.pad-x110{padding-bottom: 110rpx;}
+.pad-x120{padding-bottom: 120rpx;}
+.pad-x130{padding-bottom: 130rpx;}
+.pad-x140{padding-bottom: 140rpx;}
+.pad-x150{padding-bottom: 150rpx;}
+.pad-x160{padding-bottom: 160rpx;}
+
+/* 字体 */
+.font18{ font-size: 18rpx;}
+.font20{ font-size: 20rpx;}
+.font22{ font-size: 22rpx;}
+.font24{ font-size: 24rpx;}
+.font26{ font-size: 26rpx;}
+.font28{ font-size: 28rpx;}
+.font30{ font-size: 30rpx;}
+.font32{ font-size: 32rpx;}
+.font34{ font-size: 34rpx;}
+.font36{ font-size: 36rpx;}
+.font38{ font-size: 38rpx;}
+.font40{ font-size: 40rpx;}
+.font42{ font-size: 42rpx;}
+.font44{ font-size: 44rpx;}
+.font46{ font-size: 46rpx;}
+.font48{ font-size: 48rpx;}
+.font60{ font-size: 60rpx;}
+
+/* 文字行数 */
+.clips1{display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 1;overflow: hidden;text-overflow: ellipsis;word-wrap: break-word;word-break:break-all;}
+.clips2{display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 2;overflow: hidden;text-overflow: ellipsis;word-wrap: break-word;word-break:break-all;}
+.clips3{display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 3;overflow: hidden;text-overflow: ellipsis;word-wrap: break-word;word-break:break-all;}
+.clips4{display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 4;overflow: hidden;text-overflow: ellipsis;word-wrap: break-word;word-break:break-all;}
+.clips5{display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 5;overflow: hidden;text-overflow: ellipsis;word-wrap: break-word;word-break:break-all;}
+.clips6{display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 6;overflow: hidden;text-overflow: ellipsis;word-wrap: break-word;word-break:break-all;}
+.clips7{display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 7;overflow: hidden;text-overflow: ellipsis;word-wrap: break-word;word-break:break-all;}
+.clips8{display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 8;overflow: hidden;text-overflow: ellipsis;word-wrap: break-word;word-break:break-all;}
+.clips9{display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 9;overflow: hidden;text-overflow: ellipsis;word-wrap: break-word;word-break:break-all;}
+.clips10{display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 10;overflow: hidden;text-overflow: ellipsis;word-wrap: break-word;word-break:break-all;}
+
+image{
+ /* 照顾低版本浏览器 如果图片外面包含了链接会有边框的问题 */
+ border: 0;
+ /* 取消图片底侧有空白缝隙的问题 ① */
+ vertical-align: middle;
+ /* 取消图片底侧有空白缝隙的问题 ② */
+ object-fit: cover;
+}
+
+/* 去除滚动条 */
+scroll-view ::-webkit-scrollbar {
+ display: none !important;
+ width: 0 !important;
+ height: 0 !important;
+ -webkit-appearance: none;
+ background: transparent;
+}
+
+page{
+ background-color: #f6f7fb;
+ color: #262626;
+}
+.tags{
+ line-height: 78rpx;
+ text-align: center;
+}
\ No newline at end of file
diff --git a/commons/icon-font.css b/commons/icon-font.css
new file mode 100644
index 0000000..6270de7
--- /dev/null
+++ b/commons/icon-font.css
@@ -0,0 +1,155 @@
+@font-face {
+ font-family: "iconfont"; /* Project id 3180711 */
+ src: url('https://at.alicdn.com/t/font_3180711_atv5gkgm4w4.woff2?t=1651830764889') format('woff2'),
+ url('https://at.alicdn.com/t/font_3180711_atv5gkgm4w4.woff?t=1651830764889') format('woff'),
+ url('https://at.alicdn.com/t/font_3180711_atv5gkgm4w4.ttf?t=1651830764889') format('truetype');
+}
+
+.icon {
+ font-family: "iconfont" !important;
+ font-size: 16px;
+ font-style: normal;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+.icon-del:before {
+ content: "\e718";
+}
+
+.icon-cut:before {
+ content: "\e609";
+}
+
+.icon-add:before {
+ content: "\e60a";
+}
+
+.icon-add-picture05:before {
+ content: "\e639";
+}
+
+.icon-add-picture04:before {
+ content: "\e636";
+}
+
+.icon-add-picture03:before {
+ content: "\e642";
+}
+
+.icon-add-picture02:before {
+ content: "\e8bc";
+}
+
+.icon-add-picture01:before {
+ content: "\e62c";
+}
+
+.icon-sandian:before {
+ content: "\e769";
+}
+
+.icon-nothing-collection:before {
+ content: "\e610";
+}
+
+.icon-nothing-more:before {
+ content: "\e624";
+}
+
+.icon-nothing-data:before {
+ content: "\e60c";
+}
+
+.icon-address-check:before {
+ content: "\e6c2";
+}
+
+.icon-address-unchecked:before {
+ content: "\e623";
+}
+
+.icon-navigate-now:before {
+ content: "\e640";
+}
+
+.icon-send-goods:before {
+ content: "\e601";
+}
+
+.icon-payment:before {
+ content: "\e602";
+}
+
+.icon-finish:before {
+ content: "\e63f";
+}
+
+.icon-take:before {
+ content: "\e649";
+}
+
+.icon-refund:before {
+ content: "\e613";
+}
+
+.icon-customer-black:before {
+ content: "\ec2e";
+}
+
+.icon-customer:before {
+ content: "\e628";
+}
+
+.icon-check:before {
+ content: "\e61e";
+}
+
+.icon-del-white:before {
+ content: "\e61f";
+}
+
+.icon-screen:before {
+ content: "\e60b";
+}
+
+.icon-search:before {
+ content: "\e653";
+}
+
+.icon-caidan-mo:before {
+ content: "\e73e";
+}
+
+.icon-renwu-mo:before {
+ content: "\e73f";
+}
+
+.icon-shop-cart:before {
+ content: "\e73d";
+}
+
+.icon-caidan-active:before {
+ content: "\e608";
+}
+
+.icon-renwu-acitve:before {
+ content: "\e67c";
+}
+
+.icon-home-mo:before {
+ content: "\e673";
+}
+
+.icon-home-active:before {
+ content: "\e674";
+}
+
+.icon-return:before {
+ content: "\e600";
+}
+
+.icon-next:before {
+ content: "\e60e";
+}
+
diff --git a/commons/loading.css b/commons/loading.css
new file mode 100644
index 0000000..9a3191a
--- /dev/null
+++ b/commons/loading.css
@@ -0,0 +1,1054 @@
+.loading-box {
+ display: flex;
+ justify-content: center;
+ width: 100%;
+ padding-top: 20px;
+ font-size: 30px;
+ color: rgba(253, 82, 75, 1);
+ vertical-align: top;
+ -webkit-transition: .3s color, .3s border;
+ transition: .3s color, .3s border;
+}
+
+/* .loading-box:hover {
+ color: #d60b52;
+ font-size: 0;
+ padding: 0;
+ border-width: 3px;
+ line-height: 200px;
+}
+.loading-box:hover [class*="loader-"] {
+ font-size: 70px;
+ line-height: 200px;
+} */
+
+[class*="loader-"] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ color: inherit;
+ vertical-align: middle;
+ pointer-events: none;
+}
+
+.loader-01 {
+ border: .2em dotted currentcolor;
+ border-radius: 50%;
+ -webkit-animation: 1s loader-01 linear infinite;
+ animation: 1s loader-01 linear infinite;
+}
+
+@-webkit-keyframes loader-01 {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+
+ 100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+@keyframes loader-01 {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+
+ 100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+.loader-02 {
+ border: .2em solid transparent;
+ border-left-color: currentcolor;
+ border-right-color: currentcolor;
+ border-radius: 50%;
+ -webkit-animation: 1s loader-02 linear infinite;
+ animation: 1s loader-02 linear infinite;
+}
+
+@-webkit-keyframes loader-02 {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+
+ 100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+@keyframes loader-02 {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+
+ 100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+.loader-03 {
+ border: .2em solid currentcolor;
+ border-bottom-color: transparent;
+ border-radius: 50%;
+ -webkit-animation: 1s loader-03 linear infinite;
+ animation: 1s loader-03 linear infinite;
+ position: relative;
+}
+
+@-webkit-keyframes loader-03 {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+
+ 100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+@keyframes loader-03 {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+
+ 100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+.loader-04 {
+ border: 1px solid currentcolor;
+ border-radius: 50%;
+ -webkit-animation: 1s loader-04 linear infinite;
+ animation: 1s loader-04 linear infinite;
+ position: relative;
+}
+
+.loader-04:before {
+ content: '';
+ display: block;
+ width: 0;
+ height: 0;
+ position: absolute;
+ top: -.2em;
+ left: 50%;
+ border: .2em solid currentcolor;
+ border-radius: 50%;
+}
+
+@-webkit-keyframes loader-04 {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+
+ 100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+@keyframes loader-04 {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+
+ 100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+.loader-05 {
+ border: .2em solid transparent;
+ border-top-color: currentcolor;
+ border-radius: 50%;
+ -webkit-animation: 1s loader-05 linear infinite;
+ animation: 1s loader-05 linear infinite;
+ position: relative;
+}
+
+.loader-05:before {
+ content: '';
+ display: block;
+ width: inherit;
+ height: inherit;
+ position: absolute;
+ top: -.2em;
+ left: -.2em;
+ border: .2em solid currentcolor;
+ border-radius: 50%;
+ opacity: .5;
+}
+
+@-webkit-keyframes loader-05 {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+
+ 100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+@keyframes loader-05 {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+
+ 100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+.loader-06 {
+ border: .2em solid currentcolor;
+ border-radius: 50%;
+ -webkit-animation: loader-06 1s ease-out infinite;
+ animation: loader-06 1s ease-out infinite;
+}
+
+@-webkit-keyframes loader-06 {
+ 0% {
+ -webkit-transform: scale(0);
+ transform: scale(0);
+ opacity: 0;
+ }
+
+ 50% {
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ opacity: 0;
+ }
+}
+
+@keyframes loader-06 {
+ 0% {
+ -webkit-transform: scale(0);
+ transform: scale(0);
+ opacity: 0;
+ }
+
+ 50% {
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ opacity: 0;
+ }
+}
+
+.loader-07 {
+ border: 0 solid transparent;
+ border-radius: 50%;
+ position: relative;
+}
+
+.loader-07:before,
+.loader-07:after {
+ content: '';
+ border: .2em solid currentcolor;
+ border-radius: 50%;
+ width: inherit;
+ height: inherit;
+ position: absolute;
+ top: 0;
+ left: 0;
+ -webkit-animation: loader-07 1s linear infinite;
+ animation: loader-07 1s linear infinite;
+ opacity: 0;
+}
+
+.loader-07:before {
+ -webkit-animation-delay: 1s;
+ animation-delay: 1s;
+}
+
+.loader-07:after {
+ -webkit-animation-delay: .5s;
+ animation-delay: .5s;
+}
+
+@-webkit-keyframes loader-07 {
+ 0% {
+ -webkit-transform: scale(0);
+ transform: scale(0);
+ opacity: 0;
+ }
+
+ 50% {
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ opacity: 0;
+ }
+}
+
+@keyframes loader-07 {
+ 0% {
+ -webkit-transform: scale(0);
+ transform: scale(0);
+ opacity: 0;
+ }
+
+ 50% {
+ opacity: 1;
+ }
+
+ 100% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ opacity: 0;
+ }
+}
+
+.loader-08 {
+ position: relative;
+}
+
+.loader-08:before,
+.loader-08:after {
+ content: '';
+ width: inherit;
+ height: inherit;
+ border-radius: 50%;
+ background-color: currentcolor;
+ opacity: 0.6;
+ position: absolute;
+ top: 0;
+ left: 0;
+ -webkit-animation: loader-08 2.0s infinite ease-in-out;
+ animation: loader-08 2.0s infinite ease-in-out;
+}
+
+.loader-08:after {
+ -webkit-animation-delay: -1.0s;
+ animation-delay: -1.0s;
+}
+
+@-webkit-keyframes loader-08 {
+
+ 0%,
+ 100% {
+ -webkit-transform: scale(0);
+ transform: scale(0);
+ }
+
+ 50% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ }
+}
+
+@keyframes loader-08 {
+
+ 0%,
+ 100% {
+ -webkit-transform: scale(0);
+ transform: scale(0);
+ }
+
+ 50% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ }
+}
+
+.loader-09 {
+ background-color: currentcolor;
+ border-radius: 50%;
+ -webkit-animation: loader-09 1.0s infinite ease-in-out;
+ animation: loader-09 1.0s infinite ease-in-out;
+}
+
+@-webkit-keyframes loader-09 {
+ 0% {
+ -webkit-transform: scale(0);
+ transform: scale(0);
+ }
+
+ 100% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ opacity: 0;
+ }
+}
+
+@keyframes loader-09 {
+ 0% {
+ -webkit-transform: scale(0);
+ transform: scale(0);
+ }
+
+ 100% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ opacity: 0;
+ }
+}
+
+.loader-10 {
+ position: relative;
+ -webkit-animation: loader-10-1 2.0s infinite linear;
+ animation: loader-10-1 2.0s infinite linear;
+}
+
+.loader-10:before,
+.loader-10:after {
+ content: '';
+ width: 0;
+ height: 0;
+ border: .5em solid currentcolor;
+ display: block;
+ position: absolute;
+ border-radius: 100%;
+ -webkit-animation: loader-10-2 2s infinite ease-in-out;
+ animation: loader-10-2 2s infinite ease-in-out;
+}
+
+.loader-10:before {
+ top: 0;
+ left: 50%;
+}
+
+.loader-10:after {
+ bottom: 0;
+ right: 50%;
+ -webkit-animation-delay: -1s;
+ animation-delay: -1s;
+}
+
+@-webkit-keyframes loader-10-1 {
+ 100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+@keyframes loader-10-1 {
+ 100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+@-webkit-keyframes loader-10-2 {
+
+ 0%,
+ 100% {
+ -webkit-transform: scale(0);
+ transform: scale(0);
+ }
+
+ 50% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ }
+}
+
+@keyframes loader-10-2 {
+
+ 0%,
+ 100% {
+ -webkit-transform: scale(0);
+ transform: scale(0);
+ }
+
+ 50% {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ }
+}
+
+.loader-11 {
+ background-color: currentcolor;
+ -webkit-animation: loader-11 1.2s infinite ease-in-out;
+ animation: loader-11 1.2s infinite ease-in-out;
+}
+
+@-webkit-keyframes loader-11 {
+ 0% {
+ -webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg);
+ transform: perspective(120px) rotateX(0deg) rotateY(0deg);
+ }
+
+ 50% {
+ -webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
+ transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
+ }
+
+ 100% {
+ -webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
+ transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
+ }
+}
+
+@keyframes loader-11 {
+ 0% {
+ -webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg);
+ transform: perspective(120px) rotateX(0deg) rotateY(0deg);
+ }
+
+ 50% {
+ -webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
+ transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
+ }
+
+ 100% {
+ -webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
+ transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
+ }
+}
+
+.loader-12 {
+ position: relative;
+}
+
+.loader-12:before,
+.loader-12:after {
+ content: '';
+ display: block;
+ position: absolute;
+ background-color: currentcolor;
+ left: 50%;
+ right: 0;
+ top: 0;
+ bottom: 50%;
+ box-shadow: -.5em 0 0 currentcolor;
+ -webkit-animation: loader-12 1s linear infinite;
+ animation: loader-12 1s linear infinite;
+}
+
+.loader-12:after {
+ top: 50%;
+ bottom: 0;
+ -webkit-animation-delay: .25s;
+ animation-delay: .25s;
+}
+
+@-webkit-keyframes loader-12 {
+
+ 0%,
+ 100% {
+ box-shadow: -.5em 0 0 transparent;
+ background-color: currentcolor;
+ }
+
+ 50% {
+ box-shadow: -.5em 0 0 currentcolor;
+ background-color: transparent;
+ }
+}
+
+@keyframes loader-12 {
+
+ 0%,
+ 100% {
+ box-shadow: -.5em 0 0 transparent;
+ background-color: currentcolor;
+ }
+
+ 50% {
+ box-shadow: -.5em 0 0 currentcolor;
+ background-color: transparent;
+ }
+}
+
+.loader-13:before,
+.loader-13:after,
+.loader-13 {
+ border-radius: 50%;
+ -webkit-animation-fill-mode: both;
+ animation-fill-mode: both;
+ -webkit-animation: loader-13 1.8s infinite ease-in-out;
+ animation: loader-13 1.8s infinite ease-in-out;
+}
+
+.loader-13 {
+ color: currentcolor;
+ position: relative;
+ -webkit-transform: translateZ(0);
+ transform: translateZ(0);
+ -webkit-animation-delay: -0.16s;
+ animation-delay: -0.16s;
+ top: -1em;
+}
+
+.loader-13:before {
+ right: 100%;
+ -webkit-animation-delay: -0.32s;
+ animation-delay: -0.32s;
+}
+
+.loader-13:after {
+ left: 100%;
+}
+
+.loader-13:before,
+.loader-13:after {
+ content: '';
+ display: block;
+ position: absolute;
+ top: 0;
+ width: inherit;
+ height: inherit;
+}
+
+@-webkit-keyframes loader-13 {
+
+ 0%,
+ 80%,
+ 100% {
+ box-shadow: 0 1em 0 -1em;
+ }
+
+ 40% {
+ box-shadow: 0 1em 0 -.2em;
+ }
+}
+
+@keyframes loader-13 {
+
+ 0%,
+ 80%,
+ 100% {
+ box-shadow: 0 1em 0 -1em;
+ }
+
+ 40% {
+ box-shadow: 0 1em 0 -.2em;
+ }
+}
+
+.loader-14 {
+ border-radius: 50%;
+ box-shadow: 0 1em 0 -.2em currentcolor;
+ position: relative;
+ -webkit-animation: loader-14 0.8s ease-in-out alternate infinite;
+ animation: loader-14 0.8s ease-in-out alternate infinite;
+ -webkit-animation-delay: 0.32s;
+ animation-delay: 0.32s;
+ top: -1em;
+}
+
+.loader-14:after,
+.loader-14:before {
+ content: '';
+ position: absolute;
+ width: inherit;
+ height: inherit;
+ border-radius: inherit;
+ box-shadow: inherit;
+ -webkit-animation: inherit;
+ animation: inherit;
+}
+
+.loader-14:before {
+ left: -1em;
+ -webkit-animation-delay: 0.48s;
+ animation-delay: 0.48s;
+}
+
+.loader-14:after {
+ right: -1em;
+ -webkit-animation-delay: 0.16s;
+ animation-delay: 0.16s;
+}
+
+@-webkit-keyframes loader-14 {
+ 0% {
+ box-shadow: 0 2em 0 -.2em currentcolor;
+ }
+
+ 100% {
+ box-shadow: 0 1em 0 -.2em currentcolor;
+ }
+}
+
+@keyframes loader-14 {
+ 0% {
+ box-shadow: 0 2em 0 -.2em currentcolor;
+ }
+
+ 100% {
+ box-shadow: 0 1em 0 -.2em currentcolor;
+ }
+}
+
+.loader-15 {
+ background: currentcolor;
+ position: relative;
+ -webkit-animation: loader-15 1s ease-in-out infinite;
+ animation: loader-15 1s ease-in-out infinite;
+ -webkit-animation-delay: 0.4s;
+ animation-delay: 0.4s;
+ width: .25em;
+ height: .5em;
+}
+
+.loader-15:after,
+.loader-15:before {
+ content: '';
+ position: absolute;
+ width: inherit;
+ height: inherit;
+ background: inherit;
+ -webkit-animation: inherit;
+ animation: inherit;
+}
+
+.loader-15:before {
+ right: .5em;
+ -webkit-animation-delay: 0.2s;
+ animation-delay: 0.2s;
+}
+
+.loader-15:after {
+ left: .5em;
+ -webkit-animation-delay: 0.6s;
+ animation-delay: 0.6s;
+}
+
+@-webkit-keyframes loader-15 {
+
+ 0%,
+ 100% {
+ box-shadow: 0 0 0 currentcolor, 0 0 0 currentcolor;
+ }
+
+ 50% {
+ box-shadow: 0 -.25em 0 currentcolor, 0 .25em 0 currentcolor;
+ }
+}
+
+@keyframes loader-15 {
+
+ 0%,
+ 100% {
+ box-shadow: 0 0 0 currentcolor, 0 0 0 currentcolor;
+ }
+
+ 50% {
+ box-shadow: 0 -.25em 0 currentcolor, 0 .25em 0 currentcolor;
+ }
+}
+
+.loader-16 {
+ -webkit-transform: rotateZ(45deg);
+ transform: rotateZ(45deg);
+ -webkit-perspective: 1000px;
+ perspective: 1000px;
+ border-radius: 50%;
+}
+
+.loader-16:before,
+.loader-16:after {
+ content: '';
+ display: block;
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: inherit;
+ height: inherit;
+ border-radius: 50%;
+ -webkit-animation: 1s spin linear infinite;
+ animation: 1s spin linear infinite;
+}
+
+.loader-16:before {
+ -webkit-transform: rotateX(70deg);
+ transform: rotateX(70deg);
+}
+
+.loader-16:after {
+ -webkit-transform: rotateY(70deg);
+ transform: rotateY(70deg);
+ -webkit-animation-delay: .4s;
+ animation-delay: .4s;
+}
+
+@-webkit-keyframes rotate {
+ 0% {
+ -webkit-transform: translate(-50%, -50%) rotateZ(0deg);
+ transform: translate(-50%, -50%) rotateZ(0deg);
+ }
+
+ 100% {
+ -webkit-transform: translate(-50%, -50%) rotateZ(360deg);
+ transform: translate(-50%, -50%) rotateZ(360deg);
+ }
+}
+
+@keyframes rotate {
+ 0% {
+ -webkit-transform: translate(-50%, -50%) rotateZ(0deg);
+ transform: translate(-50%, -50%) rotateZ(0deg);
+ }
+
+ 100% {
+ -webkit-transform: translate(-50%, -50%) rotateZ(360deg);
+ transform: translate(-50%, -50%) rotateZ(360deg);
+ }
+}
+
+@-webkit-keyframes rotateccw {
+ 0% {
+ -webkit-transform: translate(-50%, -50%) rotate(0deg);
+ transform: translate(-50%, -50%) rotate(0deg);
+ }
+
+ 100% {
+ -webkit-transform: translate(-50%, -50%) rotate(-360deg);
+ transform: translate(-50%, -50%) rotate(-360deg);
+ }
+}
+
+@keyframes rotateccw {
+ 0% {
+ -webkit-transform: translate(-50%, -50%) rotate(0deg);
+ transform: translate(-50%, -50%) rotate(0deg);
+ }
+
+ 100% {
+ -webkit-transform: translate(-50%, -50%) rotate(-360deg);
+ transform: translate(-50%, -50%) rotate(-360deg);
+ }
+}
+
+@-webkit-keyframes spin {
+
+ 0%,
+ 100% {
+ box-shadow: .2em 0px 0 0px currentcolor;
+ }
+
+ 12% {
+ box-shadow: .2em .2em 0 0 currentcolor;
+ }
+
+ 25% {
+ box-shadow: 0 .2em 0 0px currentcolor;
+ }
+
+ 37% {
+ box-shadow: -.2em .2em 0 0 currentcolor;
+ }
+
+ 50% {
+ box-shadow: -.2em 0 0 0 currentcolor;
+ }
+
+ 62% {
+ box-shadow: -.2em -.2em 0 0 currentcolor;
+ }
+
+ 75% {
+ box-shadow: 0px -.2em 0 0 currentcolor;
+ }
+
+ 87% {
+ box-shadow: .2em -.2em 0 0 currentcolor;
+ }
+}
+
+@keyframes spin {
+
+ 0%,
+ 100% {
+ box-shadow: .2em 0px 0 0px currentcolor;
+ }
+
+ 12% {
+ box-shadow: .2em .2em 0 0 currentcolor;
+ }
+
+ 25% {
+ box-shadow: 0 .2em 0 0px currentcolor;
+ }
+
+ 37% {
+ box-shadow: -.2em .2em 0 0 currentcolor;
+ }
+
+ 50% {
+ box-shadow: -.2em 0 0 0 currentcolor;
+ }
+
+ 62% {
+ box-shadow: -.2em -.2em 0 0 currentcolor;
+ }
+
+ 75% {
+ box-shadow: 0px -.2em 0 0 currentcolor;
+ }
+
+ 87% {
+ box-shadow: .2em -.2em 0 0 currentcolor;
+ }
+}
+
+.loader-17 {
+ position: relative;
+ background-color: currentcolor;
+ border-radius: 50%;
+}
+
+.loader-17:after,
+.loader-17:before {
+ content: "";
+ position: absolute;
+ width: .25em;
+ height: .25em;
+ border-radius: 50%;
+ opacity: .8;
+}
+
+.loader-17:after {
+ left: -.5em;
+ top: -.25em;
+ background-color: currentcolor;
+ -webkit-transform-origin: .75em 1em;
+ transform-origin: .75em 1em;
+ -webkit-animation: loader-17 1s linear infinite;
+ animation: loader-17 1s linear infinite;
+ opacity: .6;
+}
+
+.loader-17:before {
+ left: -1.25em;
+ top: -.75em;
+ background-color: currentcolor;
+ -webkit-transform-origin: 1.5em 1em;
+ transform-origin: 1.5em 1em;
+ -webkit-animation: loader-17 2s linear infinite;
+ animation: loader-17 2s linear infinite;
+}
+
+@-webkit-keyframes loader-17 {
+ 0% {
+ -webkit-transform: rotateZ(0deg) translate3d(0, 0, 0);
+ transform: rotateZ(0deg) translate3d(0, 0, 0);
+ }
+
+ 100% {
+ -webkit-transform: rotateZ(360deg) translate3d(0, 0, 0);
+ transform: rotateZ(360deg) translate3d(0, 0, 0);
+ }
+}
+
+@keyframes loader-17 {
+ 0% {
+ -webkit-transform: rotateZ(0deg) translate3d(0, 0, 0);
+ transform: rotateZ(0deg) translate3d(0, 0, 0);
+ }
+
+ 100% {
+ -webkit-transform: rotateZ(360deg) translate3d(0, 0, 0);
+ transform: rotateZ(360deg) translate3d(0, 0, 0);
+ }
+}
+
+.loader-18 {
+ position: relative;
+}
+
+.loader-18:before,
+.loader-18:after {
+ content: '';
+ display: block;
+ position: absolute;
+ border-radius: 50%;
+ border: .1em solid transparent;
+ border-bottom-color: currentcolor;
+ top: 0;
+ left: 0;
+ -webkit-animation: 1s loader-18 linear infinite;
+ animation: 1s loader-18 linear infinite;
+}
+
+.loader-18:before {
+ width: 1em;
+ height: 1em;
+}
+
+.loader-18:after {
+ width: .8em;
+ height: .8em;
+ top: .1em;
+ left: .1em;
+ -webkit-animation-direction: reverse;
+ animation-direction: reverse;
+}
+
+@-webkit-keyframes loader-18 {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+
+ 100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+@keyframes loader-18 {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+
+ 100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+.loader-19 {
+ border-top: .2em solid currentcolor;
+ border-right: .2em solid transparent;
+ -webkit-animation: loader-19 1s linear infinite;
+ animation: loader-19 1s linear infinite;
+ border-radius: 100%;
+ position: relative;
+}
+
+@-webkit-keyframes loader-19 {
+ to {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+@keyframes loader-19 {
+ to {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
diff --git a/commons/style.css b/commons/style.css
new file mode 100644
index 0000000..26c0ab0
--- /dev/null
+++ b/commons/style.css
@@ -0,0 +1 @@
+page {background-color: #FFFFFF;}
diff --git a/components/foot-tab/foot-tab.vue b/components/foot-tab/foot-tab.vue
new file mode 100644
index 0000000..8890ebc
--- /dev/null
+++ b/components/foot-tab/foot-tab.vue
@@ -0,0 +1,130 @@
+
+
+
+
+
+
diff --git a/components/list/list-all.vue b/components/list/list-all.vue
new file mode 100644
index 0000000..8c014e9
--- /dev/null
+++ b/components/list/list-all.vue
@@ -0,0 +1,217 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{item.flag}}
+ {{item.title}}
+
+
+ 始发地:{{item.start_addr}}
+ 目的地:{{item.arrive_addr}}
+
+
+ 开始日期:{{item.start_time}}
+ 结束日期:{{item.end_time}}
+
+
+
+
+ 最高价:¥
+ {{item.max_price}}
+
+
+ 最低价:¥
+ {{item.min_price}}
+
+
+
+
+
+
+
+
+
+
+
+ {{item.title}}
+ {{item.info}}
+
+
+ 浏览 {{item.click}}
+
+
+
+
+
+
+
+
+
+
diff --git a/components/status-nav/status-nav.vue b/components/status-nav/status-nav.vue
new file mode 100644
index 0000000..1d8467f
--- /dev/null
+++ b/components/status-nav/status-nav.vue
@@ -0,0 +1,180 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{navBarTitle}}
+
+ {{netText}}刷新
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/components/swiper/swiper-pull.vue b/components/swiper/swiper-pull.vue
new file mode 100644
index 0000000..46e3458
--- /dev/null
+++ b/components/swiper/swiper-pull.vue
@@ -0,0 +1,180 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/components/title/title-pull.vue b/components/title/title-pull.vue
new file mode 100644
index 0000000..6a4e1e5
--- /dev/null
+++ b/components/title/title-pull.vue
@@ -0,0 +1,55 @@
+
+
+
+ {{nameTxt}}
+
+
+ 更多+
+
+
+
+
+
+
diff --git a/jsFile/base64-src.js b/jsFile/base64-src.js
new file mode 100644
index 0000000..fb3cb64
--- /dev/null
+++ b/jsFile/base64-src.js
@@ -0,0 +1,201 @@
+function getLocalFilePath(path) {
+ if (path.indexOf('_www') === 0 || path.indexOf('_doc') === 0 || path.indexOf('_documents') === 0 || path.indexOf(
+ '_downloads') === 0) {
+ return path
+ }
+ if (path.indexOf('file://') === 0) {
+ return path
+ }
+ if (path.indexOf('/storage/emulated/0/') === 0) {
+ return path
+ }
+ if (path.indexOf('/') === 0) {
+ var localFilePath = plus.io.convertAbsoluteFileSystem(path)
+ if (localFilePath !== path) {
+ return localFilePath
+ } else {
+ path = path.substr(1)
+ }
+ }
+ return '_www/' + path
+}
+
+function dataUrlToBase64(str) {
+ var array = str.split(',')
+ return array[array.length - 1]
+}
+
+var index = 0
+
+function getNewFileId() {
+ return Date.now() + String(index++)
+}
+
+function biggerThan(v1, v2) {
+ var v1Array = v1.split('.')
+ var v2Array = v2.split('.')
+ var update = false
+ for (var index = 0; index < v2Array.length; index++) {
+ var diff = v1Array[index] - v2Array[index]
+ if (diff !== 0) {
+ update = diff > 0
+ break
+ }
+ }
+ return update
+}
+
+export function pathToBase64(path) {
+ return new Promise(function(resolve, reject) {
+ if (typeof window === 'object' && 'document' in window) {
+ if (typeof FileReader === 'function') {
+ var xhr = new XMLHttpRequest()
+ xhr.open('GET', path, true)
+ xhr.responseType = 'blob'
+ xhr.onload = function() {
+ if (this.status === 200) {
+ let fileReader = new FileReader()
+ fileReader.onload = function(e) {
+ resolve(e.target.result)
+ }
+ fileReader.onerror = reject
+ fileReader.readAsDataURL(this.response)
+ }
+ }
+ xhr.onerror = reject
+ xhr.send()
+ return
+ }
+ var canvas = document.createElement('canvas')
+ var c2x = canvas.getContext('2d')
+ var img = new Image
+ img.onload = function() {
+ canvas.width = img.width
+ canvas.height = img.height
+ c2x.drawImage(img, 0, 0)
+ resolve(canvas.toDataURL())
+ canvas.height = canvas.width = 0
+ }
+ img.onerror = reject
+ img.src = path
+ return
+ }
+ if (typeof plus === 'object') {
+ plus.io.resolveLocalFileSystemURL(getLocalFilePath(path), function(entry) {
+ entry.file(function(file) {
+ var fileReader = new plus.io.FileReader()
+ fileReader.onload = function(data) {
+ resolve(data.target.result)
+ }
+ fileReader.onerror = function(error) {
+ reject(error)
+ }
+ fileReader.readAsDataURL(file)
+ }, function(error) {
+ reject(error)
+ })
+ }, function(error) {
+ reject(error)
+ })
+ return
+ }
+ if (typeof wx === 'object' && wx.canIUse('getFileSystemManager')) {
+ wx.getFileSystemManager().readFile({
+ filePath: path,
+ encoding: 'base64',
+ success: function(res) {
+ resolve('data:image/png;base64,' + res.data)
+ },
+ fail: function(error) {
+ reject(error)
+ }
+ })
+ return
+ }
+ reject(new Error('not support'))
+ })
+}
+
+export function base64ToPath(base64) {
+ return new Promise(function(resolve, reject) {
+ if (typeof window === 'object' && 'document' in window) {
+ base64 = base64.split(',')
+ var type = base64[0].match(/:(.*?);/)[1]
+ var str = atob(base64[1])
+ var n = str.length
+ var array = new Uint8Array(n)
+ while (n--) {
+ array[n] = str.charCodeAt(n)
+ }
+ return resolve((window.URL || window.webkitURL).createObjectURL(new Blob([array], {
+ type: type
+ })))
+ }
+ var extName = base64.split(',')[0].match(/data\:\S+\/(\S+);/)
+ if (extName) {
+ extName = extName[1]
+ } else {
+ reject(new Error('base64 error'))
+ }
+ var fileName = getNewFileId() + '.' + extName
+ if (typeof plus === 'object') {
+ var basePath = '_doc'
+ var dirPath = 'uniapp_temp'
+ var filePath = basePath + '/' + dirPath + '/' + fileName
+ if (!biggerThan(plus.os.name === 'Android' ? '1.9.9.80627' : '1.9.9.80472', plus.runtime
+ .innerVersion)) {
+ plus.io.resolveLocalFileSystemURL(basePath, function(entry) {
+ entry.getDirectory(dirPath, {
+ create: true,
+ exclusive: false,
+ }, function(entry) {
+ entry.getFile(fileName, {
+ create: true,
+ exclusive: false,
+ }, function(entry) {
+ entry.createWriter(function(writer) {
+ writer.onwrite = function() {
+ resolve(filePath)
+ }
+ writer.onerror = reject
+ writer.seek(0)
+ writer.writeAsBinary(dataUrlToBase64(base64))
+ }, reject)
+ }, reject)
+ }, reject)
+ }, reject)
+ return
+ }
+ var bitmap = new plus.nativeObj.Bitmap(fileName)
+ bitmap.loadBase64Data(base64, function() {
+ bitmap.save(filePath, {}, function() {
+ bitmap.clear()
+ resolve(filePath)
+ }, function(error) {
+ bitmap.clear()
+ reject(error)
+ })
+ }, function(error) {
+ bitmap.clear()
+ reject(error)
+ })
+ return
+ }
+ if (typeof wx === 'object' && wx.canIUse('getFileSystemManager')) {
+ var filePath = wx.env.USER_DATA_PATH + '/' + fileName
+ wx.getFileSystemManager().writeFile({
+ filePath: filePath,
+ data: dataUrlToBase64(base64),
+ encoding: 'base64',
+ success: function() {
+ resolve(filePath)
+ },
+ fail: function(error) {
+ reject(error)
+ }
+ })
+ return
+ }
+ reject(new Error('not support'))
+ })
+}
diff --git a/jsFile/public-api.js b/jsFile/public-api.js
new file mode 100644
index 0000000..f4178eb
--- /dev/null
+++ b/jsFile/public-api.js
@@ -0,0 +1,2 @@
+import requst from './requst.js';
+import store from '@/store/index.js'
\ No newline at end of file
diff --git a/jsFile/requst.js b/jsFile/requst.js
new file mode 100644
index 0000000..b4892dd
--- /dev/null
+++ b/jsFile/requst.js
@@ -0,0 +1,199 @@
+// 清理所有缓存并前往登录授权页
+const goLogin = () => {
+ uni.clearStorageSync();
+ uni.navigateTo({
+ url: '/pages/login/login'
+ })
+}
+let flag = true;
+// 刷新token并跳转到当前页面
+var authTimer = null;
+const refreshTokenPage = () => {
+ clearTimeout(authTimer);
+ // 获取当前页面路径
+ let currentRoutes = getCurrentPages(); // 获取当前打开过的页面路由数组
+ let currentRoute = currentRoutes[currentRoutes.length - 1].route //获取当前页面路由
+ let currentParam = currentRoutes[currentRoutes.length - 1].options; //获取路由参数
+ // 拼接参数
+ let param = ''
+ for (let key in currentParam) {
+ param += '?' + key + '=' + currentParam[key]
+ }
+ let localRoute = '/'+ currentRoute + param;
+ if(localRoute !== '/pages/login/login'){
+ uni.login({
+ success: (res) => {
+ uni.request({
+ url:`${getApp().globalData.hostapi}/api/user/login`,
+ data:{
+ code:res.code,
+ invite_code:uni.getStorageSync('inviteCode')?uni.getStorageSync('inviteCode'):'',
+ },
+ success: (result) => {
+ if(result.data.code == 0) {
+ uni.setStorageSync('userId',result.data.account_id);
+ uni.setStorageSync('token',result.data.data.token);//缓存token
+ uni.setStorageSync('openid',result.data.data.openid);//缓存openid
+ uni.setStorageSync('expire',result.data.data.expire);//缓存失效时间(时间戳格式)
+ uni.setStorageSync('phone_active',result.data.data.phone_active);//是否授权手机号
+ uni.setStorageSync('is_active',result.data.data.is_active);//是否授权头像和昵称
+ uni.setStorageSync('invite_code',result.data.data.invite_code);//缓存邀请码
+ // 重新进入当前页面
+ uni.reLaunch({
+ url:localRoute
+ })
+ }
+ }
+ })
+ }
+ })
+ }
+ flag = true;
+}
+// 请求错误处理
+const checkError = (e) => {
+ console.log('500接口错误');
+ // console.error("----接口错误----", e)
+ if (e.data) {
+ if (e.data.code) {
+ switch (Number(e.data.code)) {
+ case 500:
+ // 接口错误
+ console.log('500接口错误');
+ case 4003:
+ // 参数错误
+ console.log('4003参数错误');
+ break;
+ case 4004:
+ // 记录不存在
+ console.log('4004记录不存在');
+ break;
+ case 5001:
+ // xxx错误
+ console.log('5001xxx错误');
+ break;
+ case 5050:
+ // 服务器错误,请稍后重试
+ console.log('5050服务器错误,请稍后重试');
+ // 调用到登录页
+ goLogin();
+ break;
+ case 5051:
+ // 未知错误
+ console.log('5051未知错误');
+ break;
+ case 6001:
+ // token验证失败或已失效
+ console.log('6001token验证失败或已失效');
+ if(flag) {
+ flag = false;
+ // 调用刷新token事件并跳转到当前页面
+ refreshTokenPage();
+ }
+ break;
+ }
+ }
+ }
+}
+
+// 封装request的(GET、POST)请求
+const request = (method, url, options) => {
+ let methods = '';
+ let headers = {};
+ switch (method) {
+ case 'get':
+ methods = 'GET'
+ headers = {
+ 'Content-Type': 'application/json; charset=UTF-8',
+ 'Authorization': 'Bearer '+uni.getStorageSync('token') || ''
+ }
+ break;
+ case 'post':
+ methods = 'POST'
+ headers = {
+ 'Content-Type': 'application/json; charset=UTF-8',
+ 'Authorization': 'Bearer '+uni.getStorageSync('token') || ''
+ }
+ break;
+ case 'postForm':
+ methods = 'POST'
+ headers = {
+ 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
+ 'Authorization': 'Bearer '+uni.getStorageSync('token') || ''
+ }
+ break;
+ }
+ return new Promise((resolve, reject) => {
+ uni.request({
+ url: `${getApp().globalData.hostapi}${url}`,
+ method: methods,
+ data: options,
+ header: headers,
+ success: res => {
+ console.log(`${url}返的结果===>`,res);
+ if (res.statusCode == 200) {
+ resolve(res.data);
+ if(res.data.code !== 0){
+ // 接口返回错误信息
+ checkError(res);
+ }
+ } else {
+ // 接口返回错误信息
+ checkError(res);
+ }
+ },
+ fail: e => {
+ // 接口请求错误
+ checkError(e, reject);
+ },
+ complete: rest => {
+ // 是否成功,都会执行
+ console.log(rest,100);
+ }
+ })
+ })
+}
+// 上传文件 封装请求
+const uploadFile = (url, options) => {
+ let tempData = options || {}
+ return new Promise((resolve, reject) => {
+ uni.uploadFile({
+ url: `${getApp().globalData.hostapi}${url}`,
+ filePath: tempData.path,
+ name: 'image',
+ fileType:'image',
+ formData: tempData,
+ header: {
+ 'Content-Type': 'multipart/form-data;charset=UTF-8',
+ 'Authorization': 'Bearer '+uni.getStorageSync('token') || ''
+ },
+ success: res => {
+ if (res.statusCode == 200) {
+ let temp = JSON.parse(res.data)
+ if (temp.code == 0) {
+ resolve(temp)
+ }
+ }
+ }
+ });
+ })
+}
+
+
+export default {
+ get: (url, options) => {
+ return request('get', url, options)
+ },
+ // JOSN格式
+ post: (url, options) => {
+ return request('post', url, options)
+ },
+ // form-data格式
+ postForm: (url, options) => {
+ return request('postForm', url, options)
+ },
+ // 上传
+ upload: (url, options) => {
+ return uploadFile(url, options)
+ }
+}
diff --git a/jsFile/tools.js b/jsFile/tools.js
new file mode 100644
index 0000000..382a605
--- /dev/null
+++ b/jsFile/tools.js
@@ -0,0 +1,645 @@
+const tools = {
+ timer:'',
+ /**
+ * @description 埋点倒计时
+ */
+ daoTime(){
+ let daoTime = uni.getStorageSync('daoTime')
+ if(daoTime==''){//初次判断倒计时是否为空
+ uni.setStorageSync('daoTime',60)//设置倒计时
+ daoTime = uni.getStorageSync('daoTime')
+ this.timer = setInterval(()=>{
+ uni.setStorageSync('daoTime',daoTime--)//设置倒计时
+ if(uni.getStorageSync('daoTime')<=0 || uni.getStorageSync('maiList').length==5){
+ uni.removeStorageSync('daoTime')//清空倒计时
+ clearInterval(this.timer)//关闭倒计时
+ // console.log('上/报,埋点');
+ uni.removeStorageSync('maiList')//清空上报参数
+ this.daoTime()//重新倒计时
+ }
+ },1000)
+ } else {//继续当前倒计时倒计
+ this.timer = setInterval(()=>{
+ uni.setStorageSync('daoTime',daoTime--)//设置倒计时
+ if(uni.getStorageSync('daoTime')<=0 || uni.getStorageSync('maiList').length==5){
+ uni.removeStorageSync('daoTime')//清空倒计时
+ clearInterval(this.timer)//关闭倒计时
+ // console.log('上报,埋点');
+ uni.removeStorageSync('maiList')//清空上报参数
+ this.daoTime()//重新倒计时
+ }
+ },1000)
+ }
+ },
+
+ /**
+ * @description 关闭倒计时
+ */
+ closeTimer(){
+ clearInterval(this.timer)
+ console.log('倒计时清空了');
+ },
+
+ /**
+ * @description 获取字符串中的数字
+ */
+ obtainCount(str) {
+ return parseInt(str.replace(/[^0-9]/ig,""))
+ },
+
+ /**
+ * @description 获取微信扫码后的结果,并解析
+ */
+ unescapeEv(op) {
+ let str = unescape(op.q);
+ return str;
+ },
+
+ /**
+ * @description 手机号验证
+ */
+ isPhone:function(phone){
+ // 手机号正则表达式
+ let reg_tel = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/;
+ return !reg_tel.test(phone);
+ },
+
+ /**
+ * @description 电子邮箱验证
+ */
+ isEmail(email){
+ let reg_email = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
+ return !reg_email.test(email);
+ },
+
+ /**
+ * @description 身份证验证
+ */
+ isIdentity(identity) {
+ let reg_identity = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
+ return !reg_identity.test(identity);
+ },
+
+ /**
+ * @description 手机号中间四位用"****"带替
+ */
+ hideMPhone(phone){
+ return `${phone.substr(0, 3)}****${phone.substr(7)}`
+ },
+
+ /**
+ * @description 手机号中间加字符
+ */
+ phoneAddChat(phone,startNum=3,endNum=7,character=' '){
+ let phoneStr = phone;
+ phoneStr = phoneStr.replace(/\s*/g, "");
+ var phoneArr = [];
+ for(var i = 0; i < phoneStr.length; i++){
+ if (i==startNum||i==endNum){
+ phoneArr.push(`${character}` + phoneStr.charAt(i));
+ } else {
+ phoneArr.push(phoneStr.charAt(i));
+ }
+ }
+ phone = phoneArr.join("");
+ return phone;
+ },
+
+ /**
+ * @description 昵称从第一个字开始,后面的都用"*"代替
+ */
+ hideName(name,num){
+ return `${name.substr(0, 1)}****${name.substr(name.length-1)}`
+ },
+
+ /**
+ * @description 金额转换各三位数使用英文","隔开
+ */
+ changeNum(num){
+ if (num) {
+ // 针对整数部分进行格式化处理,这是此方法的核心,也是稍难理解的一个地方,逆向的来思考或者采用简单的事例来实现就容易多了
+ /*
+ 也可以这样想象,现在有一串数字字符串在你面前,如果让你给他家千分位的逗号的话,你是怎么来思考和操作的?
+ 字符串长度为0/1/2/3时都不用添加
+ 字符串长度大于3的时候,从右往左数,有三位字符就加一个逗号,然后继续往前数,直到不到往前数少于三位字符为止
+ */
+ num = num+''; // 数字转换为字符串,数字是没有.length属性的
+ for (var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++) {
+ num = num.substring(0, num.length - (4 * i + 3)) + ',' + num.substring(num.length - (4 * i + 3))
+ }
+ // 将数据(符号、整数部分、小数部分)整体组合返回
+ return num;
+ }
+ },
+
+ /**
+ * @description 整数添加.00,小数就不添加
+ */
+ addXiaoShu(num){
+ // console.log(num,'添加小数点后两位小数');
+ let str = num.toString();
+ str = str*1;
+ str = str.toFixed(2);
+ str = str+'';
+ return str.includes('.') ? str : str = num + '.00';
+ },
+
+ // type:+加、-减、*乘、/除
+ // len:小数后保留几位
+ /**
+ * @description 数字换算解决失精度问题
+ */
+ operationEv(num1,num2,type,len=0){
+ // 将数字转化成字符串
+ num1 = num1.toString();
+ num2 = num2.toString();
+ // 获取小数点的位置
+ var index1 = num1.indexOf(".");
+ var index2 = num2.indexOf(".");
+ // 如果小数点存在,那么就再获取各自的小数位数
+ var ws1 = 0;
+ var ws2 = 0;
+ if(index1 != -1){
+ ws1 = num1.split(".")[1].length;
+ }
+ if(index2 != -1){
+ ws2 = num2.split(".")[1].length;
+ }
+ // 看谁的小数位数大,谁的小数位数小
+ var bigger = (ws1 > ws2) ? ws1 : ws2;
+ var smaller = (ws1 < ws2) ? ws1 : ws2;
+ // 计算得到需要补齐的0的个数
+ var zerosCount = bigger - smaller;
+ // 好了,现在不管三七二十,全部去除小数点
+ num1 = num1.replace(".","");
+ num2 = num2.replace(".","");
+ // 比较num1和num2谁大,比较方法就是看谁是smaller,是smaller的一方就补0
+ if(ws1 == smaller){
+ for (var i = 0; i < zerosCount; i++) {
+ num1 += "0";
+ }
+ } else {
+ for (var i = 0; i < zerosCount; i++) {
+ num2 += "0";
+ }
+ }
+ // 开始计算
+ var sum = "";
+ if(type=="+"){
+ // 加
+ sum = parseInt(num1) + parseInt(num2);
+ }
+ if(type=="-"){
+ // 减
+ sum = parseInt(num1) - parseInt(num2);
+ }
+ if(type=="*"){
+ // 乘
+ sum = parseInt(num1) * parseInt(num2);
+ }
+ if(type=="/"){
+ // 除
+ sum = parseInt(num1) / parseInt(num2);
+ }
+ // 根据较大的小数位数计算倍数
+ var beishu = 1;
+ for (var i = 0; i < bigger; i++) {
+ beishu = beishu*10;
+ }
+ sum = sum/beishu;
+ if(type=="*"){
+ switch (bigger){
+ case 1:
+ sum = sum / 10;
+ break;
+ case 2:
+ sum = sum / 100;
+ break;
+ case 3:
+ sum = sum / 1000;
+ break;
+ }
+ }
+ if(type=="/"){
+ switch (bigger){
+ case 1:
+ sum = sum * 10;
+ break;
+ case 2:
+ sum = sum * 100;
+ break;
+ case 3:
+ sum = sum * 1000;
+ break;
+ }
+ }
+ len!=0 ? sum = sum.toFixed(len) : '';
+ return sum;
+ },
+
+ /**
+ * @description 金额输入框验证
+ */
+ checkPrice(number,zong){
+ let reg = /^[0-9]*$/;//数字正则表达式
+ let newObj = {}
+ zong = parseInt(zong).toString()//取小数点左边的整数
+ if(!reg.test(number)){//不是数字时
+ newObj = {
+ len:zong.length,//动态设置长度
+ val:zong//动态设置值正整数的总金额
+ }
+ } else {//是数字时
+ newObj = {
+ len:zong.length,
+ val:number//动态设置当前输入的值
+ }
+ if(number*1 > zong*1){//输入的金额大于总金额
+ newObj.val = zong//赋值总金额
+ }
+ }
+ return newObj
+ },
+
+ /**
+ * @description 文本提示
+ */
+ showToast: function(msg, icon='none',time) {
+ // 弹框显示时间:默认2秒
+ var newTime = 2000
+ if (time) {newTime = time;}
+ return uni.showToast({
+ title: msg,
+ icon: icon,
+ duration:newTime
+ })
+ },
+
+ /**
+ * @description 富文本处理
+ */
+ escape2Html(str) {
+ var arrEntities = { 'lt': '<', 'gt': '>', 'nbsp': ' ', 'amp': '&', 'quot': '"' };
+ return str.replace(/&(lt|gt|nbsp|amp|quot|src);/ig, function (all, t) {
+ return arrEntities[t];
+ })
+ .replace(']*src=['"]([^'"]+)[^>]*>/gi, (match, p1) => {
+ return ` -1 ? p1 : 'https://laonon.scdxtc.cn' + p1}' />`
+ })
+ },
+
+ /**
+ * @description 检查网络状态
+ */
+ networkStatus(){
+ uni.getNetworkType({
+ success: (res)=> {
+ console.log('当前网络状态:',res.networkType);//none:当前无网络连接
+ if(res.networkType=='none'){
+ uni.setStorageSync('isNet',false)
+ } else {
+ uni.setStorageSync('isNet',true);
+ // 微信小程序原生API性能优化
+ // #ifdef MP-WEIXIN
+ // 连网下,检测小程序是否有更新
+ this.checkUpdate();
+ // #endif
+ }
+ }
+ });
+ },
+
+ /**
+ * @description app、小程序的检测版本并更新
+ */
+ checkUpdate(){
+ // 检测app
+ // #ifdef APP-PLUS
+
+ // #endif
+ //检测小程序
+ // #ifdef MP-WEIXIN
+ var self = this;
+ // 获取小程序更新机制兼容
+ if (wx.canIUse('getUpdateManager')) {
+ const updateManager = wx.getUpdateManager();//1. 检查小程序是否有新版本发布
+ updateManager.onCheckForUpdate(function(res) {// 请求完新版本信息的回调
+ if (res.hasUpdate) {
+ //检测到新版本,需要更新,给出提示
+ wx.showModal({
+ title: '更新提示',
+ content: '检测到新版本,是否下载新版本并重启小程序?',
+ success: function(res) {
+ if (res.confirm) {
+ //2. 用户确定下载更新小程序,小程序下载及更新静默进行
+ self.downLoadAndUpdate(updateManager)
+ // 清除所有缓存
+ uni.clearStorage();
+ uni.clearStorageSync();
+ } else if (res.cancel) {
+ //用户点击取消按钮的处理,如果需要强制更新,则给出二次弹窗,如果不需要,则这里的代码都可以删掉了
+ wx.showModal({
+ title: '温馨提示~',
+ content: '本次版本更新涉及到新的功能添加,旧版本无法正常访问的哦~',
+ showCancel:false,//隐藏取消按钮
+ confirmText:"确定更新",//只保留确定更新按钮
+ success: function(res) {
+ if (res.confirm) {
+ //下载新版本,并重新应用
+ self.downLoadAndUpdate(updateManager)
+ }
+ }
+ })
+ }
+ }
+ })
+ }
+ })
+ } else { // 如果希望用户在最新版本的客户端上体验您的小程序,可以这样子提示
+ wx.showModal({
+ title: '提示',
+ content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'
+ })
+ }
+ // #endif
+ },
+
+ /**
+ * @description 下载小程序新版本并重启应用
+ */
+ downLoadAndUpdate(updateManager){
+ var self = this;
+ wx.showLoading(); //静默下载更新小程序新版本
+ updateManager.onUpdateReady(function () {
+ wx.hideLoading(); //新的版本已经下载好,调用 applyUpdate 应用新版本并重启
+ updateManager.applyUpdate();
+ // 清除缓存
+ uni.clearStorageSync();
+ uni.clearStorage();
+ })
+ updateManager.onUpdateFailed(function () { // 新的版本下载失败
+ wx.showModal({
+ title: '已经有新版本了哟~',
+ content: '新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~',
+ })
+ })
+ },
+
+ /**
+ * @description 文本复制
+ */
+ clickCopy(data){
+ uni.setClipboardData({
+ data: data,
+ success: ()=> {
+ uni.showToast({title: '复制成功',duration: 2000,icon: 'none'});
+ }
+ });
+ },
+ authTimer:null,
+
+ /**
+ * @description 判断是否授权,没授权,前往登录页面授权
+ */
+ judgeAuth(){
+ let auth = false;
+ clearTimeout(this.authTimer);
+ if(!uni.getStorageSync('token')) {
+ this.showToast('请授权登录');
+ this.authTimer = setTimeout(()=>{
+ uni.reLaunch({url:'/pages/login/login'});
+ },2000)
+ } else {
+ auth = true;
+ }
+ return auth;
+ },
+
+ /**
+ * @description 判断当前环境:清空日志输出
+ */
+ currentContext(){
+ // #ifdef APP-PLUS
+ if(uni.getSystemInfoSync().platform != "devtools"){//devtools:开发版 值域为:ios、android、mac(3.1.10+)、windows(3.1.10+)、linux(3.1.10+)
+ // console.log = () =>{}
+ }
+ // #endif
+ // 微信小程序原生API性能优化
+ // #ifdef MP-WEIXIN
+ let hInfo = wx.getAccountInfoSync();
+ // console.log(hInfo.envVersion);//develop:开发版 trial:体验版 release:正式版
+ if(hInfo.miniProgram.envVersion == "release"){
+ // 清除所有输出日志
+ console.log = () =>{};
+ // 开启埋点倒计时
+ // this.daoTime();
+ }
+ // #endif
+ },
+
+ /**
+ * @description 禁止小程序使用右上角分享
+ */
+ disableShareEv(){
+ // #ifdef MP-WEIXIN
+ wx.hideShareMenu({
+ menus: ['shareAppMessage', 'shareTimeline']
+ })
+ // #endif
+ },
+
+ /**
+ * @description 获取当前页面完整url
+ */
+ obtainPagePath(){
+ let pages = getCurrentPages();
+ // 获取纯页面路径
+ let route = pages[pages.length - 1].route;
+ uni.setStorageSync('url',route);
+ // 获取当前页面url,带参数
+ let routeParam = pages[pages.length - 1].$page.fullPath;
+ if(routeParam !== '/pages/login/login'){
+ uni.setStorageSync('page-path-options',routeParam);
+ }
+ },
+
+ /**
+ * @description 拨打电话
+ * @param {Number} phone
+ */
+ countCustomer(phone=10086){
+ const res = uni.getSystemInfoSync();
+ if(res.platform=='ios'){
+ uni.makePhoneCall({
+ phoneNumber:phone*1,
+ success: () => {},
+ fail: () => {}
+ })
+ } else {
+ uni.showActionSheet({
+ itemList:[phone,'立即呼叫'],
+ itemColor:'#3875F6',
+ success: (res) => {
+ if(res.tapIndex==1){
+ uni.makePhoneCall({
+ phoneNumber:phone
+ })
+ }
+ }
+ })
+ }
+ },
+
+ /**
+ * @description 图片选择
+ * @param {Number} count
+ */
+ uploadImg(count=1) {
+ let imgArr = [];
+ uni.chooseImage({
+ count:count,
+ sizeType:['compressed'],
+ sourceType:['album','camera'],
+ success: (res) => {
+ let files = res.tempFilePaths
+ console.log(files);
+ files.forEach(item=>{
+ imgArr.push(item);
+ })
+ }
+ })
+ return imgArr;
+ },
+
+ /**
+ * @description 打开小程序获取用户信息权限
+ */
+ wxOpenSet() {
+ // #ifdef MP-WEIXIN
+ // 用户信息
+ uni.authorize({
+ scope:'scope.userInfo',
+ success: (res) => {},
+ fail: (res) => {
+ uni.showModal({
+ content:'检测到您没打开获取信息功能权限,是否去设置打开?',
+ confirmText: "确认",
+ cancelText:'取消',
+ success: (res) => {
+ if(res.confirm){
+ uni.openSetting({
+ success: (res) => {
+ console.log(res);
+ }
+ })
+ }else{
+ console.log('取消');
+ }
+ }
+ })
+ }
+ })
+ // #endif
+ },
+
+ /**
+ * @description 传入目的地的经纬度、地点名称、详细地址,打开地图导航到达目的地
+ */
+ goFlag:true,
+ goThere(latitude=30.656693,longitude=104.136425,address="四川省成都市成华区双店路B口"){
+ if(this.goFlag){
+ this.goFlag = false;
+ // #ifdef MP-WEIXIN
+ wx.getLocation({//获取当前经纬度
+ type: 'wgs84', //返回可以用于wx.openLocation的经纬度,官方提示bug: iOS 6.3.30 type 参数不生效,只会返回 wgs84 类型的坐标信息
+ success: (res)=> {
+ wx.openLocation({//使用微信内置地图查看位置。
+ latitude: parseFloat(latitude),//要去的纬度-地址
+ longitude: parseFloat(longitude),//要去的经度-地址
+ address: address,
+ fail:err=>{
+ tools.showToast('地址信息错误');
+ }
+ })
+ }
+ })
+ // #endif
+
+ // #ifdef APP-PLUS || H5
+ uni.openLocation({
+ latitude: parseFloat(latitude),
+ longitude: parseFloat(longitude),
+ address:address,
+ success:()=> {
+ console.log('success');
+ },
+ fail:err=>{
+ console.log(err)
+ }
+ });
+ // #endif
+ setTimeout(()=>{
+ this.goFlag = true;
+ },2000)
+ } else {
+ tools.showToast('请勿多次点击');
+ }
+ },
+
+ /**
+ * @description 保存图片
+ * @param {String} src
+ */
+ saveImg(src) {
+ // #ifdef APP-PLUS
+ uni.saveImageToPhotosAlbum({
+ filePath: src,
+ success:(resimg)=> {}
+ });
+ // #endif
+ // #ifdef MP-WEIXIN
+ let exist = src.slice(0,4);
+ if(exist=='http') {
+ uni.downloadFile({
+ url: src,
+ success: (res) => {
+ uni.saveImageToPhotosAlbum({
+ filePath: res.tempFilePath,
+ success: ()=> {
+ uni.showToast({title:'保存成功',icon:'error'})
+ },
+ fail: () => {
+ uni.showToast({title:'保存失败',icon:'error'})
+ }
+ });
+ }
+ })
+ } else {
+ wx.saveFile({
+ tempFilePath: src,
+ success:(wximg)=> {}
+ })
+ }
+ // #endif
+ },
+
+ /**
+ * @description 把base64转换成图片
+ * @param {String} data
+ */
+ getBase64ImageUrl(data) {
+ /// 获取到base64Data
+ var base64Data = data;
+ /// 通过微信小程序自带方法将base64转为二进制去除特殊符号,再转回base64
+ base64Data = wx.arrayBufferToBase64(wx.base64ToArrayBuffer(base64Data));
+ /// 拼接请求头,data格式可以为image/png或者image/jpeg等,看需求
+ const base64ImgUrl = "data:image/png;base64," + base64Data;
+ /// 刷新数据
+ return base64ImgUrl;
+ },
+}
+
+export default {
+ tools
+}
\ No newline at end of file
diff --git a/main.js b/main.js
new file mode 100644
index 0000000..d79e46c
--- /dev/null
+++ b/main.js
@@ -0,0 +1,32 @@
+import Vue from 'vue';
+import App from './App';
+import store from './store'
+Vue.prototype.$store = store
+
+import statusNav from './components/status-nav/status-nav.vue'; //引入头部组件
+Vue.component('status-nav',statusNav);//全局注册头部组件
+
+import footTab from './components/foot-tab/foot-tab.vue'; //引入尾部组件
+Vue.component('foot-tab',footTab);//全局注册尾部组件
+
+// 常用便捷式公共方法
+import tools from '@/jsFile/tools.js';
+Vue.prototype.$toolAll = tools;
+
+// 响应数据
+import requst from '@/jsFile/requst.js';
+Vue.prototype.$requst = requst;
+
+//不显示console.log
+if (uni.getSystemInfoSync().platform !== "devtools") {
+ console.log = () => {}
+}
+
+App.mpType = 'app';
+
+const app = new Vue({
+ store,
+ ...App
+})
+
+app.$mount()
diff --git a/manifest.json b/manifest.json
new file mode 100644
index 0000000..903ad42
--- /dev/null
+++ b/manifest.json
@@ -0,0 +1,87 @@
+{
+ "name" : "上海集正",
+ "appid" : "__UNI__768F35C",
+ "description" : "这是一款基于uniapp开发的app和微信小程序的模板框架",
+ "versionName" : "1.0.0",
+ "versionCode" : "100",
+ "transformPx" : false,
+ "app-plus" : {
+ "usingComponents" : true,
+ "compilerVersion" : 3,
+ /* 5+App特有相关 */
+ "modules" : {
+ "Payment" : {},
+ "Share" : {}
+ },
+ /* 模块配置 */
+ "distribute" : {
+ /* 应用发布信息 */
+ "android" : {
+ /* android打包配置 */
+ "permissions" : [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ ]
+ },
+ "ios" : {},
+ /* ios打包配置 */
+ "sdkConfigs" : {
+ "maps" : {},
+ "payment" : {
+ "weixin" : {
+ "__platform__" : [ "ios", "android" ],
+ "appid" : "wx2654bc27c419ada6",
+ "UniversalLinks" : ""
+ }
+ },
+ "push" : {},
+ "geolocation" : {},
+ "share" : {
+ "weixin" : {
+ "appid" : "wx2654bc27c419ada6",
+ "UniversalLinks" : ""
+ }
+ },
+ "ad" : {}
+ }
+ },
+ "splashscreen" : {
+ "alwaysShowBeforeRender" : false,
+ "waiting" : false
+ }
+ },
+ /* SDK配置 */
+ "quickapp" : {},
+ /* 快应用特有相关 */
+ "mp-weixin" : {
+ /* 小程序特有相关 */
+ "appid" : "wxa02e44170bc722cd",
+ "setting" : {
+ "urlCheck" : true,
+ "es6" : true
+ },
+ "usingComponents" : true,
+ "permission" : {
+ "scope.userLocation" : {
+ "desc" : "您的位置信息将用于小程序位置接口的效果展示"
+ }
+ }
+ },
+ "mp-baidu" : {
+ "appid" : "24346353"
+ }
+}
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..a52bb17
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,15 @@
+{
+ "name": "轮播视频和图片",
+ "version": "1.0.1",
+ "lockfileVersion": 2,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "轮播视频和图片",
+ "version": "1.0.1",
+ "dependencies": {
+ "moment": "^2.29.3"
+ }
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..b6383f3
--- /dev/null
+++ b/package.json
@@ -0,0 +1,11 @@
+{
+ "id": "zhuge-swiper",
+ "name": "轮播视频和图片",
+ "version": "1.0.1",
+ "description": "自动轮播视频和图片组件。播放视频时停止轮播,手动滑动swiper时视频停止播放",
+ "keywords": [
+ "vue",
+ "swiper",
+ "zhuge"
+ ]
+}
diff --git a/pages.json b/pages.json
new file mode 100644
index 0000000..8404f84
--- /dev/null
+++ b/pages.json
@@ -0,0 +1,97 @@
+{
+ "pages": [
+ { //首页
+ "path": "pages/index/index",
+ "style": {
+ "navigationBarTitleText": "首页",
+ "enablePullDownRefresh": false
+ }
+ },
+ { //线路
+ "path": "pages/line/line",
+ "style": {
+ "navigationBarTitleText": "线路",
+ "enablePullDownRefresh": false
+ }
+ },
+ { //GPS
+ "path": "pages/gps/gps",
+ "style": {
+ "navigationBarTitleText": "GPS",
+ "enablePullDownRefresh": false
+ }
+ },
+ { //货物物流
+ "path" : "pages/cargo/cargo",
+ "style" : {
+ "navigationBarTitleText": "货物",
+ "enablePullDownRefresh": false
+ }
+ },
+ { //登录
+ "path" : "pages/login/login",
+ "style" : {
+ "navigationBarTitleText": "登录",
+ "enablePullDownRefresh": false
+ }
+ }
+ ],
+ "subPackages": [
+ { //A包
+ "root": "pagesA",
+ "pages": [
+ { //新闻资讯列表
+ "path" : "news/news",
+ "style" : {
+ "navigationBarTitleText": "新闻资讯",
+ "enablePullDownRefresh": false
+ }
+ },
+ { //新闻资讯详情
+ "path" : "news/detail",
+ "style" : {
+ "navigationBarTitleText": "新闻资讯",
+ "enablePullDownRefresh": false
+ }
+ },
+ { //视频
+ "path":"video/video",
+ "style" : {
+ "navigationBarTitleText": "视频",
+ "enablePullDownRefresh": false
+ }
+ },
+ { //视频播放
+ "path":"video/playVideo",
+ "style" : {
+ "navigationBarTitleText": "视频播放",
+ "enablePullDownRefresh": false
+ }
+ }
+ ]
+ }
+ ],
+ "globalStyle": {
+ "navigationBarTextStyle": "white",
+ "navigationBarBackgroundColor": "#FFFFFF", //导航栏背景色
+ "navigationStyle": "custom", //禁用原生导航栏,微信小程序可用
+ "backgroundColor":"#FFFFFF",//下拉显示出来的窗口的背景色
+ "backgroundTextStyle":"light",//下拉 loading 的样式,仅支持 dark / light
+ "transparentTitle":"none",//导航栏整体(前景、背景)透明设置。支持 always 一直透明 / auto 滑动自适应 / none 不透明
+ "app-plus": {
+ "titleNView": false, //禁用原生导航栏,APP和H5可用
+ "bounce": "none",
+ "scrollIndicator": "none"
+ }
+ },
+ "condition" : { //模式配置,仅开发期间生效
+ "current": 0, //当前激活的模式(list 的索引项)
+ "list": [
+ {
+ "name": "", //模式名称
+ "path": "", //启动页面,必选
+ "query": "" //启动参数,在页面的onLoad函数里面得到
+ }
+ ]
+ }
+}
diff --git a/pages/cargo/cargo.vue b/pages/cargo/cargo.vue
new file mode 100644
index 0000000..c4b4d01
--- /dev/null
+++ b/pages/cargo/cargo.vue
@@ -0,0 +1,288 @@
+
+
+
+
+
+
+
+
+
+ 确认
+
+
+
+
+
+
+
+
+
+
+
+ 收
+ 收货地址:{{address}}
+
+
+
+
+
+
+
+ 已签收
+
+
+
+
+ {{item.tags}}
+ {{item.time}}
+
+
+
+
+
+
+
+ 待取件
+
+
+
+
+ {{item.tags}}
+ {{item.time}}
+
+
+
+
+
+
+
+ 派送中
+
+
+
+
+ {{item.tags}}
+ {{item.time}}
+
+
+
+
+
+
+
+ 运输中
+
+
+
+
+ {{item.tags}}
+ {{item.time}}
+
+
+
+
+
+
+
+ 仓库处理中
+
+
+
+
+ {{item.tags}}
+ {{item.time}}
+
+
+
+
+
+
+
+ 已下单
+
+
+
+
+ {{item.tags}}
+ {{item.time}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/gps/gps.vue b/pages/gps/gps.vue
new file mode 100644
index 0000000..71f0593
--- /dev/null
+++ b/pages/gps/gps.vue
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/index/index.vue b/pages/index/index.vue
new file mode 100644
index 0000000..c93f818
--- /dev/null
+++ b/pages/index/index.vue
@@ -0,0 +1,174 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/line/line.vue b/pages/line/line.vue
new file mode 100644
index 0000000..a5c3d98
--- /dev/null
+++ b/pages/line/line.vue
@@ -0,0 +1,204 @@
+
+
+
+
+
+
+
+
+ 始发地
+
+
+
+
+
+
+ 目的地
+
+
+
+
+
+
+ 开始日期
+
+
+
+
+
+
+
+
+ 结束日期
+
+
+
+
+
+
+ 物流类型
+
+
+
+
+
+
+ 立即搜索
+
+
+
+
+
+
+
+
+ {{tags}}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/login/login.vue b/pages/login/login.vue
new file mode 100644
index 0000000..61a643c
--- /dev/null
+++ b/pages/login/login.vue
@@ -0,0 +1,192 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pagesA/news/detail.vue b/pagesA/news/detail.vue
new file mode 100644
index 0000000..b282835
--- /dev/null
+++ b/pagesA/news/detail.vue
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+ {{newsDetail.title}}
+
+
+
+ 浏览 {{newsDetail.click}}
+
+
+
+ 发布时间:{{newsDetail.time}}
+
+
+
+ {{newsDetail.content}}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pagesA/news/news.vue b/pagesA/news/news.vue
new file mode 100644
index 0000000..ff3c77e
--- /dev/null
+++ b/pagesA/news/news.vue
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
+ {{tags}}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pagesA/video/playVideo.vue b/pagesA/video/playVideo.vue
new file mode 100644
index 0000000..9252d5a
--- /dev/null
+++ b/pagesA/video/playVideo.vue
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pagesA/video/video.vue b/pagesA/video/video.vue
new file mode 100644
index 0000000..1cb4570
--- /dev/null
+++ b/pagesA/video/video.vue
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+ {{tags}}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/project.config.json b/project.config.json
new file mode 100644
index 0000000..9edc87c
--- /dev/null
+++ b/project.config.json
@@ -0,0 +1,77 @@
+{
+ "description": "项目配置文件",
+ "packOptions": {
+ "ignore": []
+ },
+ "setting": {
+ "urlCheck": true,
+ "es6": true,
+ "enhance": true,
+ "postcss": true,
+ "preloadBackgroundData": false,
+ "minified": true,
+ "newFeature": false,
+ "coverView": true,
+ "nodeModules": false,
+ "autoAudits": false,
+ "showShadowRootInWxmlPanel": true,
+ "scopeDataCheck": false,
+ "uglifyFileName": false,
+ "checkInvalidKey": true,
+ "checkSiteMap": true,
+ "uploadWithSourceMap": true,
+ "compileHotReLoad": false,
+ "lazyloadPlaceholderEnable": false,
+ "useMultiFrameRuntime": true,
+ "useApiHook": true,
+ "useApiHostProcess": true,
+ "babelSetting": {
+ "ignore": [],
+ "disablePlugins": [],
+ "outputPath": ""
+ },
+ "useIsolateContext": false,
+ "userConfirmedBundleSwitch": false,
+ "packNpmManually": false,
+ "packNpmRelationList": [],
+ "minifyWXSS": true,
+ "disableUseStrict": false,
+ "minifyWXML": true,
+ "showES6CompileOption": false,
+ "useCompilerPlugins": false,
+ "ignoreUploadUnusedFiles": true
+ },
+ "compileType": "miniprogram",
+ "libVersion": "2.22.0",
+ "appid": "wx987dc41899f719e8",
+ "projectname": "%E4%BD%A9%E4%B8%BD%E5%95%86%E5%9F%8E",
+ "debugOptions": {
+ "hidedInDevtools": []
+ },
+ "scripts": {},
+ "staticServerOptions": {
+ "baseURL": "",
+ "servePath": ""
+ },
+ "isGameTourist": false,
+ "condition": {
+ "search": {
+ "list": []
+ },
+ "conversation": {
+ "list": []
+ },
+ "game": {
+ "list": []
+ },
+ "plugin": {
+ "list": []
+ },
+ "gamePlugin": {
+ "list": []
+ },
+ "miniprogram": {
+ "list": []
+ }
+ }
+}
\ No newline at end of file
diff --git a/static/icon/icon-arrow-down.png b/static/icon/icon-arrow-down.png
new file mode 100644
index 0000000000000000000000000000000000000000..f5145f2a39ab8d40fa2248f40ed5389ea607732f
GIT binary patch
literal 1126
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
literal 0
HcmV?d00001
diff --git a/static/icon/icon-click.png b/static/icon/icon-click.png
new file mode 100644
index 0000000000000000000000000000000000000000..d28812ac024b769c26829248e2d58e416cfe80fa
GIT binary patch
literal 1525
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
YL-d^b<#mt$%>@;sp00i_>zopr05ba;asU7T
literal 0
HcmV?d00001
diff --git a/static/icon/icon-look.png b/static/icon/icon-look.png
new file mode 100644
index 0000000000000000000000000000000000000000..f2ff30ba08e6052398b33e66d694e8504f1aebb9
GIT binary patch
literal 1481
zcmeAS@N?(olHy`uVBq!ia0vp^qCm{g!3HF`qgt|olw^r(L`iUdT1k0gQ7VIDN`6wR
zf@f}GdTLN=VoGJ<$y6H#24=O)kcg59UmvUF{9L_6kQ%*;+ybC(1_m4Zih{)C?9>v4
zq}24xJX@vryZ0+8WTx0Eg`4^s_!c;)W@LI)6{QAO`Gq7`WhYyvDB0U7*i={n4aiL`
zNmQuF&B-gas<2f8n`;GRgM{^!6u?SKvTcwn`Gt*5rG%-~$x70H<
zGd8ib)KM@pFtpG&u+TR&)-^Px^|#0uTKVr7^KE~&-IMVSR9nfZANAQKal
z@=Hr>m4GgVcpt{{)e(|=e$y!U~l@XMixcix}3{a*cj_xGI_
zGp>BJIj=eWwBOR8!kFu84IeYUP`uW7x9Pw6&glhmzttv$%PtH!p()nwcO%or>Y#`O
z^V?e?hq(?+4`9<#t`QTt_CbncnTJ*Daz|F3hC~791c@b`(?!iIS5`GH$S^+99J%3i
zQ``^3KaO=fM4zm*>ii%q96s;U{$}^Di}(+6a@u~V{;(-PLuQ)SQiFZAZ?s#s9lh~;
zPIN@!(?*q!rsNAEB4?Y-K6JTyZ_5nX%B>z^`}uj&8*vkty4!b5Dsr`KC(MxA+8AKo
zSbk>ztu_}W!A{kh`~FGGuj)K==a?!mm!0$3@2jV5^1J73&sdYRuG+_q^Oa8co0&7R
zzn%%1J@IT{$lpy*!|#;EhIjsyva)=XZ_~pgEc+`ZR=9o^ui6nI-dkqt4vJ??<}CRo
z@Ndm|`NJ1oKdC?4|3+{_wOD=M5|Kaif0$PUgm)aZe6vRI^3A@4^_$$JdvCjaUA_4M
z_l&?rY%=Kw&6F~A1x~YlJP=sRGTUdpqs@)K`yXg3?NaMjdHZ2!)jYdz3jg>jJkEz+
zWr{DXv3_#yu)Tx$kMR1R{~6}Km65pM$}S$VLR{21UMP6$gP6jn8xPLujK98W|Ks*c
yoY(KwH7}2;{ryDuaQeaM1@c|h^7SjD8QB<=1VVg+Jc5Nlg{!BlpUXO@geCx&041FO
literal 0
HcmV?d00001
diff --git a/static/icon/icon-placed.png b/static/icon/icon-placed.png
new file mode 100644
index 0000000000000000000000000000000000000000..6e6f5896f9804c7816bf1f737162a03091509d02
GIT binary patch
literal 1338
zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fk|nMYCBgY=CFO}lsSJ)O`AMk?
zp1FzXsX?iUDV2pMQ*9U+nAI{vB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+*
zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn
zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxOgGuk#8koDQqR!L
z*u>ION5ROz&_dt9Lf_C>*U-$$#K6kPNC66zfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj
z%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUm0>2hq!uR^WfqiV=I1GZOiWD5
zFD$Tv3bSNU;+l1ennz|zM-B0$V)JVzP|XC=H|jx7ncO3BHWAB;NpiyW)Z+ZoqGVvir744~DzI`cN=+=uFAB-e&w+(vKt_H^esM;Afr7I$DAX(!G{Q6U
zQu51-HNkp(eXTt6ic1pnl2bihY?Xkf=w)W6SQ$E68d+Kx8XH==ni?9qx;R-n8o3!c
zxth3{nL3)9Tf+3Z~M$0t)yoH}+Y`Jj_WSlOn<5gI3(rmRVOym9uKw#W#L$dgS1
zfm2#|#W`-9|^Kb=@?_^|qwed(NcJ;(0^&-eR&r@FrQS^c@a=Eq)ty%sfXYlh|Z
zJ0Etce37ZG=u`?w-I^#+tta{Bz$E6)vCZ2S^4j;#ur>r{aEngxjzHA}S$qq->OUf+l6Be@8Ywx&Mwq^g~sBiVzLfMwLohm#1*z3Li
z=dp#KI_VVIu|UQ>XwlvJ9-E3YQt`=5{6&{7Hr3q_HNW-I+V8EH|KFs^Wp|{`Cch}j
zKCtwzo!)V^djV_1ZtQr*8U14er|vP4v@;Ka)-2#ikKi?4EwXa`O|_-(O`E@8<#ut3
z5A64OJZrT<{y`~`1QGYN54Ov;KHh16rOffv<#qO&2jlO}Y0-MTk$>-K<`pmBE^z$bQhkULslJWY{
z@xr}-&i!M%B;Oofw5d9-boi%M2u$*IH@O1TaS?83{
F1OS#Y>CFHD
literal 0
HcmV?d00001
diff --git a/static/icon/icon-play.png b/static/icon/icon-play.png
new file mode 100644
index 0000000000000000000000000000000000000000..c297a8b86da097fa0d45e860616df5f6f9bfcc2f
GIT binary patch
literal 2635
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
N9Zy$3mvv4FO#m_*p;Q0>
literal 0
HcmV?d00001
diff --git a/static/icon/icon-time.png b/static/icon/icon-time.png
new file mode 100644
index 0000000000000000000000000000000000000000..b7b87650d54c2d9f6e0af1e8097abfbd408ad1cc
GIT binary patch
literal 1451
zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE;=WQl7;NpOBzNqJ&XDuZK6ep0G}
zXKrG8YEWuoN@d~6R2v2cX0^{3jAFJg2T)jk)8oi3#0-$aN1{?c|g2d$P)DnfH
z)bz|eTc!8A_bVx6rr0WloBA5~7C5J7WO`H;r3P2|g(O#HCtIc{+1n}DR9FEG$W1Lt
zRH(?!$t$+1uvG$^YXxM3g!Ppaz)DK8ZIvL7itr6kaLzAERWQ{v(@i!sF;y_P)H5_Q
zHnFtSQ7|$vw9q%O&^I*JH8is_F|aZ+Qh)*_plwAdX;wilZcw{`JX@uVl9B=|ef{$C
za=mh6z5JqdeM3u2OML?)eIp}XpbFjM%Dj@q3f;V7Wta&rsl~}fnFS@8`FRQ;6BCp2
zOG|8(fG&l2A-4c-Y+f-mn1BJMUy)d#Z>VPg@)As;uP=V3xw&xF#U(+h2=`(&xHzP;
zAXPsowK%`DC>a=WY04n03ap%qQWHz^i$e1Ab6}wukda@KU!0L&py2Eb3N=dwjquF8
zl>G8yO|TwcUn|eN;*!L?Bi9$WwU58oWV>muy?tc&*>r=L4BXQ%nft66%ULf3Q5
zqIYR<9e!)#8$PEvKBjX+omi>p|M05vsa{8)R=zV5G!J-wK+n&zN~VTY-odo%yZC(V
zH0yXUxbhv1xP8?|4=%3f-4ti*8IS-
zB3)Jc2D8_{o}DjFEtQ`i{X+f6Rxh`<8~;x*{o6FfwW{)2b+8)C%FSWlUtg;~vg-Dk
zCzpAce|TGY{F$Y9q1A9x?YMb356D=+f?Kirx;?buni%L#HZSE|it2=B^ebDUq3=J>l&a#g#Tf9}Dk
zMV=qF`7eo@780{5cZR_K*f0Kty3wlt879Aa=oeA6?Ed9xUV1k+$bCKfZ(_FK^@eEP
zbfMh#IbZ5$8}>Q{eUp`M+#D&lO>@KjYsr2y9zC74@8n|-X+yJ)uODSr
z1<%~X^wgl##FWaylc_cg49seoArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8
zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb>
zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XQrEMXkw~hZmDNz
zW^7_h+i#(Mch>H3D2mX`VkM*2oZxQ#zd*s+85C-k3L4>=
zc`5nj#hPF}zP?tTdBr7(dC94sF1AWQQ}i-3Q>+YJEDekujV%lA;w70`Eg^*l-a6rU)FqA`>iEVPK7@mA~X9P{##TqlrM~_O;eYP;hUMhCui@m9RWPL1twX`%cPYL
zz7JTtFZBXLso*00lyK*3R?DV-x}jLTLHo6Qo#dTn`6{zV-YON$+gvKnOn%E>yTD~m
zW3z$1kBM@%)FcC`c}}V^E!GCi`&>H2PS;Io=eeIS^;zaN=1aUgDy4e@KIpW#Wi+2;
zO*;HN#OTRgmCAR^)<0)EvOY8Qvx07T_=`FJw$(N~G~k)_M)nrxUJ<#kfNE%ou=
z-bkMr8M{BfkGjUU;Qv*hgC}sT9|zscA4qFyOl
zXsXfq)bA|6vQuV%>XGNwZZ?AUF
zd%N~=;V02{w$2#`ZgE|H$dJ=9v3s*<#?+_-wKG_^|6$zED#7r(d4B(oYbDP?Wx1!T
KpUXO@geCxHs9lr*
literal 0
HcmV?d00001
diff --git a/static/icon/icon-wait.png b/static/icon/icon-wait.png
new file mode 100644
index 0000000000000000000000000000000000000000..a58903805b3cafdbef1791c8ca7f92dc9e46f3c0
GIT binary patch
literal 1539
zcmeAS@N?(olHy`uVBq!ia0vp^l0YoM!3HGxw}u@936!`-lmzFem6RtIr7}3CoE6H^6qOFcs~
zV-rhD9R(u;LkoQa3w=XlT|+Y~69X$FBLyf>0@_xTl4cd;;s&(~$g@?-C@Cqh($_C9
zFV`zK*2^zS*Eh7ZwA42+(l;{F1**_3uFNY*tkBIXR)(42l3JWxlvz-cnV+WsGBGhJ
zzqG_w3FuOY7jg^W#^x16g9#X5`W1-<`i6Q2ATPlb`ugHmnwtw(U0f2Bif}JhgNs8d
z3sUuiQj7CTi;{s6m!=G|s=&&*C^fMpzbGU>KL-|y0U7xv`NbLe1q#m2pir|^&f+?;=;&%-
z;^^dP>1bx+>xfe?C^_U70Bv?jEy^rQO>ryA&s6|>+bR>c
zTg-8q2i2Q`+btG2_38s1qYsK)q{xN|0aFl&2~WB}4m|Ov<^fZD5in^lPb*!^z`#`O
z>Eaktacj*qUyqPLk>mG$7JG!vy5;7@5qxV2$D|idoBU-97T(yF6M99-{FsK*0;8u!
z5UXx^
z>(5F18%S))c=~|z#HMfg@dsi*xRw9q-L2*a3=70!7}p#Kt&?k6?Q{1P7I3DV{<})Sdz)wH17(kL!4%0k46A3oH=nQh%d=*i`2Qw%1^zY7
zx`!Xh?K9`S#xwhm`=PSiEV_kvyeIA3mp{Fe^?{1N>gTWnGZL?>y=FYF*&y3|qEOwT
z>1_OQlUZf+j&9Lw&@8yE85?xeT+@+1{$7&o3$;TTtk(}X{z_UiQB5oVx`MxKP!Zpr
z1y^*#w&$$ixx)~;Kx)s|cb}8|PoL&d@HL$}wN7qHW7#j2g3j>CZ{pTWKL7iHSoYEL
zU;Z+dTd0YBdgc1~Qjw#e{*IY;fr3Gmg~Ja_C)@q_BNr11{KHaZC<5Z+s44mAhEMm;-$-OO;EAy>FVdQ
I&MBb@0Pnp;i~s-t
literal 0
HcmV?d00001
diff --git a/static/public/banner.jpg b/static/public/banner.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..5420ff6dae3fba43ca8bf4ef4f997070f5d2bedd
GIT binary patch
literal 17060
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
cG#SwKUt1Y*5Xnqef-Wn
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
g);c?cIr=`H4HsB(`9otfvg%6N0&E&uv
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