├── src
├── store
│ ├── actions.js
│ ├── state.js
│ ├── mutation-types.js
│ ├── getters.js
│ ├── index.js
│ └── mutations.js
├── .DS_Store
├── components
│ ├── .DS_Store
│ ├── base
│ │ ├── NoPage.vue
│ │ ├── HeaderSec.vue
│ │ └── Footer.vue
│ ├── About
│ │ └── About.vue
│ ├── Agreement
│ │ └── Agreement.vue
│ ├── Collect
│ │ └── Collect.vue
│ ├── ToastBox
│ │ ├── index.js
│ │ └── index.vue
│ ├── ModelBox
│ │ ├── index.js
│ │ └── index.vue
│ ├── Search
│ │ ├── Searchbox.vue
│ │ └── Search.vue
│ ├── detail
│ │ └── Detail.vue
│ ├── ForgetPasswd
│ │ └── ForgetPasswd.vue
│ ├── Register
│ │ └── Register.vue
│ ├── Login
│ │ └── Login.vue
│ ├── Member
│ │ └── Member.vue
│ ├── Hot
│ │ └── Hot.vue
│ └── Index.vue
├── App.vue
├── main.js
└── router
│ └── index.js
├── static
├── github.png
├── img
│ ├── logo.png
│ ├── .DS_Store
│ ├── favicon.png
│ └── github.png
├── iconfont
│ ├── iconfont.eot
│ ├── iconfont.ttf
│ ├── iconfont.woff
│ └── iconfont.svg
├── js
│ ├── common.js
│ └── rem.js
├── less
│ ├── variable.less
│ ├── reset.less
│ └── base.less
└── css
│ ├── iconfont.css
│ └── swiper.min.css
├── dist
├── static
│ ├── github.png
│ ├── img
│ │ ├── logo.png
│ │ ├── favicon.png
│ │ └── github.png
│ ├── js
│ │ ├── swiper.min.js.gz
│ │ ├── vendor.dll.js.gz
│ │ ├── 0.4e89b76a9b8b680460b8.js.gz
│ │ ├── 2.a16941a1c1258deb3e32.js.gz
│ │ ├── vendor.c9c2c5fb7092aa901e92.js.gz
│ │ ├── common.js
│ │ ├── 10.66ee08fb943231f7ddd5.js
│ │ ├── 11.fed9aa2e784b67a4ef95.js
│ │ ├── 12.d8a74bcc93c072e333ba.js
│ │ ├── rem.js
│ │ ├── manifest.7804ab9d323801c9f706.js
│ │ ├── 7.51685c8857c33cfe1a99.js
│ │ ├── 8.8ae3918cd8ef8931c0e6.js
│ │ ├── 3.4e244e8a7461c07cfefb.js
│ │ ├── 6.14304fb1eb65efcbf4f4.js
│ │ ├── 5.ee9d87560f4a0224e225.js
│ │ ├── 4.4ca64cc9f5454b7efe11.js
│ │ ├── 9.46b76a1c4b6a697943ac.js
│ │ ├── app.ff7f382ad46feed21960.js
│ │ └── 1.dfa371a87014b2189288.js
│ ├── css
│ │ ├── swiper.min.css.gz
│ │ ├── app.82e744b437a766b2e73fe8da7c0dfc3d.css.gz
│ │ ├── iconfont.css
│ │ └── swiper.min.css
│ ├── iconfont
│ │ ├── iconfont.eot
│ │ ├── iconfont.ttf
│ │ ├── iconfont.woff
│ │ └── iconfont.svg
│ └── less
│ │ ├── variable.less
│ │ ├── reset.less
│ │ └── base.less
├── service-worker.js
├── sw-register.js
├── index.html
└── precache-manifest.405e02c1c13e55a923ab27f3b3014342.js
├── config
├── prod.env.js
├── dev.env.js
└── index.js
├── .gitignore
├── .idea
├── misc.xml
├── vcs.xml
├── modules.xml
└── fancy-store.iml
├── .postcssrc.js
├── .babelrc
├── LICENSE
├── index.html
├── package.json
├── README.md
└── manifest.json
/src/store/actions.js:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/czero1995/Infinite-webDesign/HEAD/src/.DS_Store
--------------------------------------------------------------------------------
/static/github.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/czero1995/Infinite-webDesign/HEAD/static/github.png
--------------------------------------------------------------------------------
/static/img/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/czero1995/Infinite-webDesign/HEAD/static/img/logo.png
--------------------------------------------------------------------------------
/dist/static/github.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/czero1995/Infinite-webDesign/HEAD/dist/static/github.png
--------------------------------------------------------------------------------
/static/img/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/czero1995/Infinite-webDesign/HEAD/static/img/.DS_Store
--------------------------------------------------------------------------------
/static/img/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/czero1995/Infinite-webDesign/HEAD/static/img/favicon.png
--------------------------------------------------------------------------------
/static/img/github.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/czero1995/Infinite-webDesign/HEAD/static/img/github.png
--------------------------------------------------------------------------------
/dist/static/img/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/czero1995/Infinite-webDesign/HEAD/dist/static/img/logo.png
--------------------------------------------------------------------------------
/src/components/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/czero1995/Infinite-webDesign/HEAD/src/components/.DS_Store
--------------------------------------------------------------------------------
/dist/static/img/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/czero1995/Infinite-webDesign/HEAD/dist/static/img/favicon.png
--------------------------------------------------------------------------------
/dist/static/img/github.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/czero1995/Infinite-webDesign/HEAD/dist/static/img/github.png
--------------------------------------------------------------------------------
/static/iconfont/iconfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/czero1995/Infinite-webDesign/HEAD/static/iconfont/iconfont.eot
--------------------------------------------------------------------------------
/static/iconfont/iconfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/czero1995/Infinite-webDesign/HEAD/static/iconfont/iconfont.ttf
--------------------------------------------------------------------------------
/static/iconfont/iconfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/czero1995/Infinite-webDesign/HEAD/static/iconfont/iconfont.woff
--------------------------------------------------------------------------------
/dist/static/js/swiper.min.js.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/czero1995/Infinite-webDesign/HEAD/dist/static/js/swiper.min.js.gz
--------------------------------------------------------------------------------
/dist/static/js/vendor.dll.js.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/czero1995/Infinite-webDesign/HEAD/dist/static/js/vendor.dll.js.gz
--------------------------------------------------------------------------------
/dist/static/css/swiper.min.css.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/czero1995/Infinite-webDesign/HEAD/dist/static/css/swiper.min.css.gz
--------------------------------------------------------------------------------
/dist/static/iconfont/iconfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/czero1995/Infinite-webDesign/HEAD/dist/static/iconfont/iconfont.eot
--------------------------------------------------------------------------------
/dist/static/iconfont/iconfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/czero1995/Infinite-webDesign/HEAD/dist/static/iconfont/iconfont.ttf
--------------------------------------------------------------------------------
/dist/static/iconfont/iconfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/czero1995/Infinite-webDesign/HEAD/dist/static/iconfont/iconfont.woff
--------------------------------------------------------------------------------
/config/prod.env.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | module.exports = {
3 | NODE_ENV: '"production"',
4 | API_ROOT: '"//infinite.czero.cn:3000"'
5 | }
6 |
--------------------------------------------------------------------------------
/dist/static/js/0.4e89b76a9b8b680460b8.js.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/czero1995/Infinite-webDesign/HEAD/dist/static/js/0.4e89b76a9b8b680460b8.js.gz
--------------------------------------------------------------------------------
/dist/static/js/2.a16941a1c1258deb3e32.js.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/czero1995/Infinite-webDesign/HEAD/dist/static/js/2.a16941a1c1258deb3e32.js.gz
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | npm-debug.log
2 | node_modules
3 | .project
4 | .vscode
5 | .history
6 | .DS_Store
7 | .idea
8 | \.settings/
9 | build/env.js
10 | .editorconfig
--------------------------------------------------------------------------------
/dist/static/js/vendor.c9c2c5fb7092aa901e92.js.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/czero1995/Infinite-webDesign/HEAD/dist/static/js/vendor.c9c2c5fb7092aa901e92.js.gz
--------------------------------------------------------------------------------
/static/js/common.js:
--------------------------------------------------------------------------------
1 | export const phoneReg = /(1[3-9]\d{9}$)/;
2 | export const base_url = 'http://infinite.czero.cn:3000/api/';
3 | // export const base_url = 'api/';
4 |
--------------------------------------------------------------------------------
/dist/static/js/common.js:
--------------------------------------------------------------------------------
1 | export const phoneReg = /(1[3-9]\d{9}$)/;
2 | export const base_url = 'http://infinite.czero.cn:3000/api/';
3 | // export const base_url = 'api/';
4 |
--------------------------------------------------------------------------------
/dist/static/css/app.82e744b437a766b2e73fe8da7c0dfc3d.css.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/czero1995/Infinite-webDesign/HEAD/dist/static/css/app.82e744b437a766b2e73fe8da7c0dfc3d.css.gz
--------------------------------------------------------------------------------
/config/dev.env.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | const merge = require('webpack-merge')
3 | const prodEnv = require('./prod.env')
4 |
5 | module.exports = merge(prodEnv, {
6 | NODE_ENV: '"development"'
7 | })
8 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/static/less/variable.less:
--------------------------------------------------------------------------------
1 | @theme_background:#6495ED;
2 | @theme_hover:#6495ED;
3 | @theme_color:#6495ED;
4 | @base_color:white;
5 | @base_textSize:.2rem;
6 | @base_textColor:black;
7 | @base_boder:1px solid #ccc;
8 |
9 |
--------------------------------------------------------------------------------
/dist/static/less/variable.less:
--------------------------------------------------------------------------------
1 | @theme_background:#6495ED;
2 | @theme_hover:#6495ED;
3 | @theme_color:#6495ED;
4 | @base_color:white;
5 | @base_textSize:.2rem;
6 | @base_textColor:black;
7 | @base_boder:1px solid #ccc;
8 |
9 |
--------------------------------------------------------------------------------
/src/store/state.js:
--------------------------------------------------------------------------------
1 | const state = {
2 | history: [], // 搜索记录
3 | login: false, // 登录状态
4 | userinfo: {}, // 用户信息
5 | detailid: '', // 详情id,
6 | searchid: '', // 搜索关键词,
7 | comname: 'index', //默认组件名字
8 | }
9 | export default state
10 |
--------------------------------------------------------------------------------
/.postcssrc.js:
--------------------------------------------------------------------------------
1 | // https://github.com/michael-ciniawsky/postcss-load-config
2 |
3 | module.exports = {
4 | "plugins": {
5 | // to edit target browsers: use "browserslist" field in package.json
6 | "postcss-import": {},
7 | "autoprefixer": {}
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/src/store/mutation-types.js:
--------------------------------------------------------------------------------
1 | export const SET_HISTORY = 'SET_HISTORY' //搜索记录
2 | export const SET_LOGIN = 'SET_LOGIN' //登录状态
3 | export const SET_USERINFO = 'SET_USERINFO' //用户信息
4 | export const SET_DETAILID = 'SET_DETAILID' //详情id
5 | export const SET_SEARCHID = 'SET_SEARCHID' //搜索关键词
6 | export const SET_COMNAME = 'SET_COMNAME' //组件名字
--------------------------------------------------------------------------------
/src/store/getters.js:
--------------------------------------------------------------------------------
1 | export const history = state => state.history //历史记录
2 | export const login = state => state.login//登录状态
3 | export const userinfo = state => state.userinfo//登录状态
4 | export const detailid = state => state.detailid//详情Id
5 | export const searchid = state => state.searchid//上次搜索关键词
6 | export const comname = state => state.comname //上个组件名字
7 |
--------------------------------------------------------------------------------
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | ["env", {
4 | "modules": false,
5 | "targets": {
6 | "browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
7 | }
8 | }],
9 | "stage-2"
10 | ],
11 | "plugins": [[
12 | "transform-runtime",
13 | {
14 | "helpers":false,
15 | "polyfill":false,
16 | "regenerator":true,
17 | "moduleName":"babel-runtime"
18 | }
19 | ]
20 | ]
21 | }
22 |
--------------------------------------------------------------------------------
/.idea/fancy-store.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/src/store/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import Vuex from 'vuex'
3 | import * as actions from './actions'
4 | import * as getters from './getters'
5 | import state from './state'
6 | import mutations from './mutations'
7 | import createLogger from 'vuex/dist/logger'
8 | const debug = process.env.NODE_ENV !== 'production'
9 |
10 | Vue.use(Vuex)
11 | export default new Vuex.Store({
12 | actions,
13 | getters,
14 | state,
15 | mutations,
16 | strice: debug,
17 | plugins: debug ? [createLogger()] : []
18 | })
19 |
--------------------------------------------------------------------------------
/src/components/base/NoPage.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
暂无数据,请前往添加。
5 |
6 |
7 |
8 |
28 |
--------------------------------------------------------------------------------
/dist/service-worker.js:
--------------------------------------------------------------------------------
1 | importScripts("./precache-manifest.405e02c1c13e55a923ab27f3b3014342.js", "https://storage.googleapis.com/workbox-cdn/releases/3.4.1/workbox-sw.js");
2 |
3 |
4 | workbox.skipWaiting()
5 | workbox.clientsClaim()
6 |
7 | // 设置缓存名称前缀
8 | workbox.core.setCacheNameDetails({
9 | prefix: 'vuecli'
10 | })
11 |
12 | // 缓存manifest.json
13 | workbox.routing.registerRoute(
14 | /\/manifest\.json/,
15 | workbox.strategies.staleWhileRevalidate()
16 | )
17 |
18 | // sw-register网络请求优先
19 | workbox.routing.registerRoute(
20 | /\/sw-register\.js/,
21 | workbox.strategies.networkOnly()
22 | )
23 |
24 | workbox.precaching.precacheAndRoute(self.__precacheManifest || [])
25 |
--------------------------------------------------------------------------------
/dist/static/js/10.66ee08fb943231f7ddd5.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([10],{Uz9m:function(e,a,t){"use strict";Object.defineProperty(a,"__esModule",{value:!0});var n=t("3nlj"),i=t("Hj6f"),s={data:function(){return{slidename:"slide-back",mainarea:!1}},components:{Headersec:n.a,Nopage:i.a},mounted:function(){},activated:function(){this.mainarea=!0},deactivated:function(){this.mainarea=!1},methods:{}},r={render:function(){var e=this.$createElement,a=this._self._c||e;return a("div",{staticClass:"page"},[a("headersec",{attrs:{tabname:"我的收藏"}}),this._v(" "),a("transition",{attrs:{name:this.slidename}},[a("Nopage",{directives:[{name:"show",rawName:"v-show",value:this.mainarea,expression:"mainarea"}]})],1)],1)},staticRenderFns:[]},c=t("vSla")(s,r,!1,null,null,null);a.default=c.exports}});
--------------------------------------------------------------------------------
/dist/static/js/11.fed9aa2e784b67a4ef95.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([11],{Nn55:function(e,a,t){"use strict";Object.defineProperty(a,"__esModule",{value:!0});var n=t("3nlj"),i=t("Hj6f"),s={data:function(){return{slidename:"slide-back",mainarea:!1}},components:{Headersec:n.a,Nopage:i.a},mounted:function(){},activated:function(){this.mainarea=!0},deactivated:function(){this.mainarea=!1},methods:{}},r={render:function(){var e=this.$createElement,a=this._self._c||e;return a("div",{staticClass:"page"},[a("headersec",{attrs:{tabname:"用户协议"}}),this._v(" "),a("transition",{attrs:{name:this.slidename}},[a("Nopage",{directives:[{name:"show",rawName:"v-show",value:this.mainarea,expression:"mainarea"}]})],1)],1)},staticRenderFns:[]},c=t("vSla")(s,r,!1,null,null,null);a.default=c.exports}});
--------------------------------------------------------------------------------
/dist/static/js/12.d8a74bcc93c072e333ba.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([12],{"DbT+":function(e,a,t){"use strict";Object.defineProperty(a,"__esModule",{value:!0});var n=t("3nlj"),i=t("Hj6f"),s={data:function(){return{slidename:"slide-back",mainarea:!1}},components:{Headersec:n.a,Nopage:i.a},mounted:function(){},activated:function(){this.mainarea=!0},deactivated:function(){this.mainarea=!1},methods:{}},r={render:function(){var e=this.$createElement,a=this._self._c||e;return a("div",{staticClass:"page"},[a("headersec",{attrs:{tabname:"关于我们"}}),this._v(" "),a("transition",{attrs:{name:this.slidename}},[a("Nopage",{directives:[{name:"show",rawName:"v-show",value:this.mainarea,expression:"mainarea"}]})],1)],1)},staticRenderFns:[]},c=t("vSla")(s,r,!1,null,null,null);a.default=c.exports}});
--------------------------------------------------------------------------------
/src/components/About/About.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/src/components/Agreement/Agreement.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/src/components/Collect/Collect.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/src/store/mutations.js:
--------------------------------------------------------------------------------
1 | import * as types from './mutation-types'
2 | const historyArr = [];
3 | const matutaions = {
4 | /*搜索记录*/
5 | [types.SET_HISTORY](state, history) {
6 | historyArr.push(history);
7 | state.history = historyArr;
8 | },
9 | /*登录状态*/
10 | [types.SET_LOGIN](state, login) {
11 | state.login = login;
12 | },
13 | /*用户*/
14 | [types.SET_USERINFO](state, userinfo) {
15 | state.userinfo = userinfo;
16 | },
17 | /*详情id*/
18 | [types.SET_DETAILID](state, detailid) {
19 | state.detailid = detailid;
20 | },
21 | /*详情id*/
22 | [types.SET_SEARCHID](state, searchid) {
23 | state.searchid = searchid;
24 | },
25 | /*组件名字*/
26 | [types.SET_COMNAME](state, comname) {
27 | state.comname = comname;
28 | },
29 |
30 |
31 | }
32 | export default matutaions
--------------------------------------------------------------------------------
/src/components/ToastBox/index.js:
--------------------------------------------------------------------------------
1 | import toastboxVue from './index.vue'
2 |
3 | const ToastBox = {}
4 | ToastBox.install = function (Vue, options) {
5 | const ToastBoxInstance = Vue.extend(toastboxVue);
6 | let currentToast;
7 | const initInstance = () => {
8 | currentToast = new ToastBoxInstance();
9 | let toastBoxEl = currentToast.$mount().$el;
10 | document.body.appendChild(toastBoxEl);
11 | };
12 |
13 | Vue.prototype.$toastBox = {
14 | showToastBox(options) {
15 | if (!currentToast) {
16 | initInstance();
17 | }
18 | if (typeof options === 'string') {
19 | currentToast.toast = options
20 | } else if (typeof options === 'object') {
21 | Object.assign(currentToast, options);
22 | }
23 | return currentToast.showToastBox()
24 | }
25 | }
26 | }
27 |
28 | export default ToastBox;
--------------------------------------------------------------------------------
/src/components/base/HeaderSec.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
23 |
24 |
48 |
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
30 |
31 |
40 |
--------------------------------------------------------------------------------
/static/css/iconfont.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: 'iconfont'; /* project id 686422 */
3 | src: url('//at.alicdn.com/t/font_686422_u44s2frt7ps.eot');
4 | src: url('//at.alicdn.com/t/font_686422_u44s2frt7ps.eot?#iefix') format('embedded-opentype'),
5 | url('//at.alicdn.com/t/font_686422_u44s2frt7ps.woff') format('woff'),
6 | url('//at.alicdn.com/t/font_686422_u44s2frt7ps.ttf') format('truetype'),
7 | url('//at.alicdn.com/t/font_686422_u44s2frt7ps.svg#iconfont') format('svg');
8 | }
9 |
10 | .iconfont {
11 | font-family:"iconfont" !important;
12 | font-size:16px;
13 | font-style:normal;
14 | -webkit-font-smoothing: antialiased;
15 | -moz-osx-font-smoothing: grayscale;
16 | }
17 |
18 | .icon-sousuo:before { content: "\e600"; }
19 |
20 | .icon-houtui:before { content: "\e749"; }
21 |
22 | .icon-wode:before { content: "\e646"; }
23 |
24 | .icon-remen:before { content: "\e633"; }
25 |
26 | .icon-plus-shiftup:before { content: "\e71f"; }
27 |
28 | .icon-tuijian:before { content: "\e63f"; }
29 |
30 | .icon-qianjin:before { content: "\e652"; }
31 |
32 |
--------------------------------------------------------------------------------
/dist/static/css/iconfont.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: 'iconfont'; /* project id 686422 */
3 | src: url('//at.alicdn.com/t/font_686422_u44s2frt7ps.eot');
4 | src: url('//at.alicdn.com/t/font_686422_u44s2frt7ps.eot?#iefix') format('embedded-opentype'),
5 | url('//at.alicdn.com/t/font_686422_u44s2frt7ps.woff') format('woff'),
6 | url('//at.alicdn.com/t/font_686422_u44s2frt7ps.ttf') format('truetype'),
7 | url('//at.alicdn.com/t/font_686422_u44s2frt7ps.svg#iconfont') format('svg');
8 | }
9 |
10 | .iconfont {
11 | font-family:"iconfont" !important;
12 | font-size:16px;
13 | font-style:normal;
14 | -webkit-font-smoothing: antialiased;
15 | -moz-osx-font-smoothing: grayscale;
16 | }
17 |
18 | .icon-sousuo:before { content: "\e600"; }
19 |
20 | .icon-houtui:before { content: "\e749"; }
21 |
22 | .icon-wode:before { content: "\e646"; }
23 |
24 | .icon-remen:before { content: "\e633"; }
25 |
26 | .icon-plus-shiftup:before { content: "\e71f"; }
27 |
28 | .icon-tuijian:before { content: "\e63f"; }
29 |
30 | .icon-qianjin:before { content: "\e652"; }
31 |
32 |
--------------------------------------------------------------------------------
/src/components/ToastBox/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
33 |
34 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2018 Rick
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import Vuex from 'vuex'
3 | import App from './App'
4 | import router from './router'
5 | import store from './store'
6 | import axios from 'axios'
7 | import VueLazyLoad from 'vue-lazyload'
8 | import fastclick from 'fastclick'
9 | import Vconsole from 'vconsole'
10 | import '../static/css/iconfont.css'
11 | import ToastBox from './components/ToastBox/index' //全局Toast弹窗
12 | import ModelBox from './components/ModelBox/index' //全局提示框弹窗
13 | import * as common from "../static/js/common.js";
14 | Vue.use(ModelBox)
15 | Vue.use(ToastBox)
16 | let vConsole = new Vconsole()
17 | export default vConsole
18 |
19 | fastclick.attach(document.body) //解决移动端点击事件200ms延迟
20 |
21 | Vue.use(Vuex)
22 | Vue.prototype.$http = axios;
23 | Vue.prototype.$baseURL = common.base_url
24 | Vue.config.productionTip = false //vuex开启开发环境日志
25 | // or with options
26 | Vue.use(VueLazyLoad, { //懒加载声明错误图和占位图
27 | preLoad: 1.3,
28 | error: '../static/img/github.png',
29 | loading: '../static/img/github.png',
30 | })
31 | /* eslint-disable no-new */
32 | new Vue({
33 | el: '#app',
34 | router,
35 | store,
36 | template: ' ',
37 | components: {
38 | App
39 | }
40 | })
41 |
--------------------------------------------------------------------------------
/dist/sw-register.js:
--------------------------------------------------------------------------------
1 | navigator.serviceWorker&&navigator.serviceWorker.register('./service-worker.js?v=1532417625410').then(function(){navigator.serviceWorker.addEventListener('message',function(e){if(e.data==='sw.update'){var themeColor=document.querySelector('meta[name=theme-color]');var dom=document.createElement('div');themeColor&&(themeColor.content='#000');dom.innerHTML='\n \n
\n
\n \u5DF2\u66F4\u65B0\u6700\u65B0\u7248\u672C \n \u70B9\u51FB\u5237\u65B0 \n
\n
\n ';document.body.appendChild(dom);setTimeout(function(){return document.getElementById('app-refresh').className+=' app-refresh-show'})}})});
--------------------------------------------------------------------------------
/src/components/ModelBox/index.js:
--------------------------------------------------------------------------------
1 | import modelBoxVue from './index.vue';
2 |
3 | // 定义插件对象
4 | const ModelBox = {};
5 | // vue的install方法,用于定义vue插件
6 | ModelBox.install = function (Vue, options) {
7 | const ModelBoxInstance = Vue.extend(modelBoxVue);
8 | let currentMsg;
9 | const initInstance = () => {
10 | // 实例化vue实例
11 | currentMsg = new ModelBoxInstance();
12 | let modelBoxEl = currentMsg.$mount().$el;
13 | document.body.appendChild(modelBoxEl);
14 | };
15 | // 在vue的原型上添加实例方法,以全局调用
16 | Vue.prototype.$modelBox = {
17 | onModelBox(options) {
18 | if (!currentMsg) {
19 | initInstance();
20 | }
21 | if (typeof options === 'string') {
22 | currentMsg.content = options;
23 | } else if (typeof options === 'object') {
24 | Object.assign(currentMsg, options);
25 | }
26 | return currentMsg.onModelBox()
27 | .then(val => {
28 | currentMsg = null;
29 | return Promise.resolve(val);
30 | })
31 | .catch(err => {
32 | currentMsg = null;
33 | return Promise.reject(err)
34 | });
35 | }
36 | };
37 | };
38 | export default ModelBox;
39 |
--------------------------------------------------------------------------------
/static/js/rem.js:
--------------------------------------------------------------------------------
1 | ! function(e) {
2 | function t(a) {
3 | if(i[a]) return i[a].exports;
4 | var n = i[a] = {
5 | exports: {},
6 | id: a,
7 | loaded: !1
8 | };
9 | return e[a].call(n.exports, n, n.exports, t), n.loaded = !0, n.exports
10 | }
11 | var i = {};
12 | return t.m = e, t.c = i, t.p = "", t(0)
13 | }([function(e, t) {
14 | "use strict";
15 | Object.defineProperty(t, "__esModule", {
16 | value: !0
17 | });
18 | var i = window;
19 | t["default"] = i.flex = function(e, t) {
20 | var a = e || 100,
21 | n = t || 1,
22 | r = i.document,
23 | o = navigator.userAgent,
24 | d = o.match(/Android[\S\s]+AppleWebkit\/(\d{3})/i),
25 | l = o.match(/U3\/((\d+|\.){5,})/i),
26 | c = l && parseInt(l[1].split(".").join(""), 10) >= 80,
27 | p = navigator.appVersion.match(/(iphone|ipad|ipod)/gi),
28 | s = i.devicePixelRatio || 1;
29 | p || d && d[1] > 534 || c || (s = 1);
30 | var u = 1 / s,
31 | m = r.querySelector('meta[name="viewport"]');
32 | m || (m = r.createElement("meta"), m.setAttribute("name", "viewport"), r.head.appendChild(m)), m.setAttribute("content", "width=device-width,user-scalable=no,initial-scale=" + u + ",maximum-scale=" + u + ",minimum-scale=" + u), r.documentElement.style.fontSize = a / 2 * s * n + "px"
33 | }, e.exports = t["default"]
34 | }]);
35 | flex(100, 1);
--------------------------------------------------------------------------------
/dist/static/js/rem.js:
--------------------------------------------------------------------------------
1 | ! function(e) {
2 | function t(a) {
3 | if(i[a]) return i[a].exports;
4 | var n = i[a] = {
5 | exports: {},
6 | id: a,
7 | loaded: !1
8 | };
9 | return e[a].call(n.exports, n, n.exports, t), n.loaded = !0, n.exports
10 | }
11 | var i = {};
12 | return t.m = e, t.c = i, t.p = "", t(0)
13 | }([function(e, t) {
14 | "use strict";
15 | Object.defineProperty(t, "__esModule", {
16 | value: !0
17 | });
18 | var i = window;
19 | t["default"] = i.flex = function(e, t) {
20 | var a = e || 100,
21 | n = t || 1,
22 | r = i.document,
23 | o = navigator.userAgent,
24 | d = o.match(/Android[\S\s]+AppleWebkit\/(\d{3})/i),
25 | l = o.match(/U3\/((\d+|\.){5,})/i),
26 | c = l && parseInt(l[1].split(".").join(""), 10) >= 80,
27 | p = navigator.appVersion.match(/(iphone|ipad|ipod)/gi),
28 | s = i.devicePixelRatio || 1;
29 | p || d && d[1] > 534 || c || (s = 1);
30 | var u = 1 / s,
31 | m = r.querySelector('meta[name="viewport"]');
32 | m || (m = r.createElement("meta"), m.setAttribute("name", "viewport"), r.head.appendChild(m)), m.setAttribute("content", "width=device-width,user-scalable=no,initial-scale=" + u + ",maximum-scale=" + u + ",minimum-scale=" + u), r.documentElement.style.fontSize = a / 2 * s * n + "px"
33 | }, e.exports = t["default"]
34 | }]);
35 | flex(100, 1);
--------------------------------------------------------------------------------
/src/components/base/Footer.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
20 |
48 |
--------------------------------------------------------------------------------
/dist/static/js/manifest.7804ab9d323801c9f706.js:
--------------------------------------------------------------------------------
1 | !function(e){var n=window.webpackJsonp;window.webpackJsonp=function(r,c,a){for(var f,i,u,s=0,d=[];s
2 |
3 |
4 |
5 |
6 |
7 |
8 | Infinite
9 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
请在移动端打开,并刷新页面。
24 |
25 |
26 |
44 |
45 |
46 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/dist/index.html:
--------------------------------------------------------------------------------
1 | Infinite
请在移动端打开,并刷新页面。
--------------------------------------------------------------------------------
/dist/static/js/7.51685c8857c33cfe1a99.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([7],{QNrD:function(t,e){},wC2p:function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=a("3nlj"),s=a("Hj6f"),n=a("9rMa"),r=Object.assign||function(t){for(var e=1;e
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
{{item.title}}
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
77 |
78 |
84 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Infinite",
3 | "version": "1.0.0",
4 | "description": "infinite",
5 | "author": "rick",
6 | "private": true,
7 | "scripts": {
8 | "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js --open",
9 | "start": "npm run dev",
10 | "build": "node build/build.js",
11 | "dll": "webpack --config ./build/webpack.dll.config.js"
12 | },
13 | "dependencies": {
14 | "babel-plugin-transform-runtime": "^6.23.0",
15 | "better-scroll": "^1.11.1",
16 | "compression-webpack-plugin": "^1.1.11",
17 | "happypack": "^5.0.0",
18 | "vconsole": "^3.2.0",
19 | "vue": "^2.5.2",
20 | "vue-awesome-swiper": "^3.0.6",
21 | "vue-router": "^3.0.1"
22 | },
23 | "devDependencies": {
24 | "autoprefixer": "^7.1.2",
25 | "axios": "^0.17.1",
26 | "babel-core": "^6.22.1",
27 | "babel-helper-vue-jsx-merge-props": "^2.0.3",
28 | "babel-loader": "^7.1.1",
29 | "babel-plugin-syntax-jsx": "^6.18.0",
30 | "babel-plugin-transform-runtime": "^6.22.0",
31 | "babel-plugin-transform-vue-jsx": "^3.5.0",
32 | "babel-preset-env": "^1.3.2",
33 | "babel-preset-stage-2": "^6.22.0",
34 | "chalk": "^2.0.1",
35 | "copy-webpack-plugin": "^4.0.1",
36 | "css-loader": "^0.28.0",
37 | "extract-text-webpack-plugin": "^3.0.0",
38 | "fastclick": "^1.0.6",
39 | "file-loader": "^1.1.4",
40 | "friendly-errors-webpack-plugin": "^1.6.1",
41 | "html-webpack-plugin": "^2.30.1",
42 | "less": "^2.7.3",
43 | "less-loader": "^4.0.5",
44 | "node-notifier": "^5.1.2",
45 | "optimize-css-assets-webpack-plugin": "^3.2.0",
46 | "ora": "^1.2.0",
47 | "portfinder": "^1.0.13",
48 | "postcss-import": "^11.0.0",
49 | "postcss-loader": "^2.0.8",
50 | "rimraf": "^2.6.0",
51 | "semver": "^5.3.0",
52 | "shelljs": "^0.7.6",
53 | "uglifyjs-webpack-plugin": "^1.1.1",
54 | "url-loader": "^0.5.8",
55 | "vue-lazyload": "^1.1.4",
56 | "vue-loader": "^13.3.0",
57 | "vue-style-loader": "^3.0.1",
58 | "vue-template-compiler": "^2.5.2",
59 | "vuex": "^3.0.1",
60 | "webpack": "^3.6.0",
61 | "webpack-bundle-analyzer": "^2.9.0",
62 | "webpack-dev-server": "^2.9.1",
63 | "webpack-merge": "^4.1.0"
64 | },
65 | "engines": {
66 | "node": ">= 4.0.0",
67 | "npm": ">= 3.0.0"
68 | },
69 | "browserslist": [
70 | "> 1%",
71 | "last 2 versions",
72 | "not ie <= 8"
73 | ]
74 | }
--------------------------------------------------------------------------------
/dist/static/js/3.4e244e8a7461c07cfefb.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([3],{KAcR:function(t,e){},N2Ln:function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var s=a("9rMa"),i=Object.assign||function(t){for(var e=1;e80?t.pullDownText="释放刷新":t.pullDownText="下拉刷新",e.y<-120?t.scrollTopView=!0:t.scrollTopView=!1})})},methods:n({toDetail:function(t){this.$router.push({path:"/detail",query:{id:t,from:"index"}})},getData:function(){var t=this;this.loadMore=!1,this.pagenum=this.pagenum+1,this.$http.post(this.$baseURL+"recommend/all",{pagenum:this.pagenum,pagesize:this.pagesize}).then(function(e){0==e.data.data.length?(t.loadingTitle="没有更多的数据了",t.loadMore=!1):t.loadMore=!0,t.dataList=[].concat(l(t.dataList),l(e.data.data))}).catch(function(t){console.log(t)})},toTop:function(){this.scroll.scrollTo(0,0,1e3,"swipeBounce")}},Object(s.c)({}))},c={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"page recommend"},[a("div",{ref:"wrapper",staticClass:"container wrapper"},[a("div",{ref:"content",staticClass:"content"},[a("div",{staticClass:"pull_down"},[t._v(t._s(t.pullDownText))]),t._v(" "),a("div",{staticClass:"list_box"},[a("div",{staticClass:"top_tab"},[t._v("Infinite")]),t._v(" "),a("transition",{attrs:{name:t.slidename}},[a("div",{directives:[{name:"show",rawName:"v-show",value:t.mainarea,expression:"mainarea"}]},t._l(t.dataList,function(e,o){return a("div",{key:o,staticClass:"list_item flex",on:{click:function(a){t.toDetail(e._id)}}},[a("div",{staticClass:"item_title"},[t._v(t._s(e.title))]),t._v(" "),a("img",{directives:[{name:"lazy",rawName:"v-lazy",value:e.post,expression:"item.post"}],staticClass:"item_post"})])}))])],1)])]),t._v(" "),a("div",{directives:[{name:"show",rawName:"v-show",value:t.scrollTopView,expression:"scrollTopView"}],staticClass:"scroll-top",on:{click:t.toTop}},[a("span",{staticClass:"iconfont icon-totop"},[t._v("")])]),t._v(" "),a("footers",{ref:"footer",attrs:{urlRouter:t.$route.path}})],1)},staticRenderFns:[]};var p=a("vSla")(r,c,!1,function(t){a("1GMO")},"data-v-199cfeaa",null);e.default=p.exports}});
--------------------------------------------------------------------------------
/src/router/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import Router from 'vue-router'
3 | Vue.use(Router)
4 |
5 | // 推荐页
6 | const Index = (resolve) => {
7 | import('@/components/Index').then((module) => {
8 | resolve(module)
9 | })
10 | }
11 | // 发现页
12 | const Hot = (resolve) => {
13 | import('@/components/Hot/Hot').then((module) => {
14 | resolve(module)
15 | })
16 | }
17 | // 搜索页
18 | const Search = (resolve) => {
19 | import('@/components/Search/Search').then((module) => {
20 | resolve(module)
21 | })
22 | }
23 | // 搜索内容页
24 | const Searchbox = (resolve) => {
25 | import('@/components/Search/Searchbox').then((module) => {
26 | resolve(module)
27 | })
28 | }
29 | // 内容闲情页
30 | const Detail = (resolve) => {
31 | import('@/components/Detail/Detail').then((module) => {
32 | resolve(module)
33 | })
34 | }
35 | // 个人中心页
36 | const Member = (resolve) => {
37 | import('@/components/Member/Member').then((module) => {
38 | resolve(module)
39 | })
40 | }
41 | // 登陆页
42 | const Login = (resolve) => {
43 | import('@/components/Login/Login').then((module) => {
44 | resolve(module)
45 | })
46 | }
47 | // 注册页
48 | const Register = (resolve) => {
49 | import('@/components/Register/Register').then((module) => {
50 | resolve(module)
51 | })
52 | }
53 | // 忘记密码页
54 | const ForgetPasswd = (resolve) => {
55 | import('@/components/ForgetPasswd/ForgetPasswd').then((module) => {
56 | resolve(module)
57 | })
58 | }
59 | // 收藏页
60 | const Collect = (resolve) => {
61 | import('@/components/Collect/Collect').then((module) => {
62 | resolve(module)
63 | })
64 | }
65 | // 关于我们页
66 | const About = (resolve) => {
67 | import('@/components/About/About').then((module) => {
68 | resolve(module)
69 | })
70 | }
71 | // 用户协议页
72 | const Agreement = (resolve) => {
73 | import('@/components/Agreement/Agreement').then((module) => {
74 | resolve(module)
75 | })
76 | }
77 |
78 | export default new Router({
79 | // mode: 'history',
80 | routes: [{
81 | path: '/',
82 | component: Index
83 | },
84 | {
85 | path: '/index',
86 | component: Index
87 | },
88 | {
89 | path: '/hot',
90 | component: Hot
91 | },
92 | {
93 | path: '/search',
94 | component: Search
95 | },
96 | {
97 | path: '/searchbox',
98 | component: Searchbox
99 | },
100 | {
101 | path: '/detail',
102 | component: Detail
103 | },
104 | {
105 | path: '/member',
106 | component: Member
107 | },
108 | {
109 | path: '/login',
110 | component: Login
111 | },
112 | {
113 | path: '/register',
114 | component: Register
115 | },
116 | {
117 | path: '/forgetpasswd',
118 | component: ForgetPasswd
119 | },
120 | {
121 | path: '/collect',
122 | component: Collect
123 | },
124 | {
125 | path: '/about',
126 | component: About
127 | },
128 | {
129 | path: '/agreement',
130 | component: Agreement
131 | },
132 |
133 | ]
134 | })
--------------------------------------------------------------------------------
/src/components/ModelBox/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
{{title}}
6 |
{{content}}
7 |
11 |
12 |
13 |
14 |
15 |
16 |
81 |
--------------------------------------------------------------------------------
/src/components/Search/Search.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
13 |
14 |
搜索记录:
15 |
16 | {{item}}
17 | x
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
87 |
88 |
125 |
--------------------------------------------------------------------------------
/src/components/detail/Detail.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
13 |
14 |
15 |
16 |
17 |
18 |
91 |
92 |
129 |
--------------------------------------------------------------------------------
/dist/precache-manifest.405e02c1c13e55a923ab27f3b3014342.js:
--------------------------------------------------------------------------------
1 | self.__precacheManifest = [
2 | {
3 | "revision": "90892628b69cec3bc4be58715fc72606",
4 | "url": "./index.html"
5 | },
6 | {
7 | "revision": "c83ecb2c6b5e271d53022b23b40f0738",
8 | "url": "./static/js/vendor.dll.js"
9 | },
10 | {
11 | "revision": "48ecc532a72f4b40b6e6c88cfd1d5216",
12 | "url": "./static/less/variable.less"
13 | },
14 | {
15 | "revision": "d12f44160046880924cd4ad9458e1c8e",
16 | "url": "./static/less/reset.less"
17 | },
18 | {
19 | "revision": "9a35adbb4a1c97310b7196b00e8c5f9f",
20 | "url": "./static/less/base.less"
21 | },
22 | {
23 | "url": "./static/js/vendor.ebc740182311216715e8.js"
24 | },
25 | {
26 | "revision": "5ed6afd60615cc6ded891157c5d8a2b9",
27 | "url": "./static/img/github.png"
28 | },
29 | {
30 | "url": "./static/js/6.14304fb1eb65efcbf4f4.js"
31 | },
32 | {
33 | "url": "./static/js/8.d48188355182552404d7.js"
34 | },
35 | {
36 | "url": "./static/js/9.85ff0e1235b86aabccb6.js"
37 | },
38 | {
39 | "revision": "cac127717f0efde313e9815af0ae8ea3",
40 | "url": "./static/js/swiper.min.js"
41 | },
42 | {
43 | "revision": "9838dbe317ea1486320fcb6c7f74150c",
44 | "url": "./static/js/rem.js"
45 | },
46 | {
47 | "revision": "bf8fca3e79cb1d2e4916123a2780e4eb",
48 | "url": "./static/js/common.js"
49 | },
50 | {
51 | "url": "./static/js/app.2b65dba57b5d9933d0d0.js"
52 | },
53 | {
54 | "url": "./static/js/7.e5bd944dd9c89c293e42.js"
55 | },
56 | {
57 | "url": "./static/js/manifest.d1848cbff048c3e750a3.js"
58 | },
59 | {
60 | "url": "./static/js/3.f52e53ea350adcfac823.js"
61 | },
62 | {
63 | "url": "./static/js/5.1c73fa0a2d9d14b86207.js"
64 | },
65 | {
66 | "url": "./static/js/2.b105d931b4bd3d720814.js"
67 | },
68 | {
69 | "url": "./static/js/0.4e89b76a9b8b680460b8.js"
70 | },
71 | {
72 | "url": "./static/js/1.07c983395ff55d8976ad.js"
73 | },
74 | {
75 | "url": "./static/js/12.d8a74bcc93c072e333ba.js"
76 | },
77 | {
78 | "url": "./static/js/11.fed9aa2e784b67a4ef95.js"
79 | },
80 | {
81 | "url": "./static/js/10.66ee08fb943231f7ddd5.js"
82 | },
83 | {
84 | "url": "./static/js/4.4ca64cc9f5454b7efe11.js"
85 | },
86 | {
87 | "revision": "82b9c7a5a3f405032b1db71a25f67021",
88 | "url": "./static/img/logo.png"
89 | },
90 | {
91 | "revision": "d9e2b51d67fc2fe52762764d2623fc72",
92 | "url": "./static/img/favicon.png"
93 | },
94 | {
95 | "revision": "2e178c2b758522a1ef4c807df2e094f2",
96 | "url": "./static/iconfont/iconfont.woff"
97 | },
98 | {
99 | "revision": "c70b5e89e6b971f4f733f475a7ce4903",
100 | "url": "./static/iconfont/iconfont.ttf"
101 | },
102 | {
103 | "revision": "284db94f7eb6946bf519f3056afc7d97",
104 | "url": "./static/iconfont/iconfont.svg"
105 | },
106 | {
107 | "revision": "fd1c5e7b727d0f155139a84759b63ba4",
108 | "url": "./static/iconfont/iconfont.eot"
109 | },
110 | {
111 | "revision": "5ed6afd60615cc6ded891157c5d8a2b9",
112 | "url": "./static/github.png"
113 | },
114 | {
115 | "revision": "6af34d0737ad0ca608111771cf74cc79",
116 | "url": "./static/css/swiper.min.css"
117 | },
118 | {
119 | "revision": "da1fbcf11c0219aa71668e5a097c1ace",
120 | "url": "./static/css/iconfont.css"
121 | },
122 | {
123 | "revision": "2b65dba57b5d9933d0d0",
124 | "url": "./static/css/app.66987723b07aa452f2340fcce8c8e53f.css"
125 | }
126 | ];
--------------------------------------------------------------------------------
/src/components/ForgetPasswd/ForgetPasswd.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | 手机号:
10 |
11 |
12 |
13 | 密码:
14 |
15 |
16 |
17 | 确认密码:
18 |
19 |
20 |
21 | 前往登录!
22 |
23 |
24 | 确认
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
100 |
101 |
138 |
--------------------------------------------------------------------------------
/src/components/Register/Register.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | 用户名:
9 |
10 |
11 |
12 | 手机号:
13 |
14 |
15 |
16 | 密码:
17 |
18 |
19 |
20 | 确认密码:
21 |
22 |
23 |
24 | 已账号?前往登陆!
25 |
26 |
27 | 注册
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
114 |
115 |
152 |
--------------------------------------------------------------------------------
/src/components/Login/Login.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | 手机:
9 |
10 |
11 |
12 | 密码:
13 |
14 |
15 |
16 |
17 | 前往注册!
18 |
19 |
20 | 忘记密码
21 |
22 |
23 |
24 |
25 | 登录
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
113 |
114 |
155 |
--------------------------------------------------------------------------------
/static/less/base.less:
--------------------------------------------------------------------------------
1 | @theme_background:#6495ED;
2 | @theme_hover:#6495ED;
3 | @theme_color:#6495ED;
4 | @base_color:white;
5 | @base_textSize:.2rem;
6 | @base_textColor:black;
7 | @base_boder:1px solid #ccc;
8 | [v-cloak] {
9 | display: none;
10 | }
11 |
12 | .model {
13 | position: absolute;
14 | top: 0%;
15 | left: 0%;
16 | background: rgba(0, 0, 0, 0.3);
17 | width: 100%;
18 | height: 100%;
19 | position: fixed;
20 | z-index: 9999;
21 | }
22 |
23 | .baseConfig {
24 | font-size: @base_textSize;
25 | color: @base_textColor;
26 | }
27 |
28 | .flex {
29 | display: flex;
30 | }
31 |
32 | .flex-center {
33 | .flex();
34 | justify-content: center;
35 | }
36 |
37 | .flex_around {
38 | .flex();
39 | justify-content: space-around;
40 | }
41 |
42 | .flex_between {
43 | .flex();
44 | justify-content: space-between;
45 | }
46 |
47 | .flex-align {
48 | .flex();
49 | align-items: flex-start;
50 | }
51 |
52 | .flex-align-center {
53 | .flex();
54 | align-items: center;
55 | }
56 |
57 | .flex-align-end {
58 | .flex();
59 | align-items: flex-end;
60 | }
61 |
62 | .flex-wrap {
63 | flex-wrap: wrap;
64 | }
65 |
66 | .goods-name {
67 | font-size: .28rem;
68 | margin-bottom: .2rem;
69 | }
70 |
71 | .goods-num {
72 | font-size: .26rem;
73 | margin-top: .2rem;
74 | }
75 |
76 | .goods-price {
77 | color: red;
78 | font-size: .26rem;
79 | margin: .2rem 0;
80 | }
81 |
82 | .slide-up-enter-active,
83 | .slide-up-leave-active {
84 | transition: all .5s
85 | }
86 |
87 | .slide-up-enter,
88 | .slide-up-leave-to {
89 | opacity: 0;
90 | transform: translate3d(0, 100%, 0);
91 | }
92 |
93 | .slide-go-enter-active,
94 | .slide-go-leave-active {
95 | transition: all .5s;
96 | opacity: .8;
97 | }
98 |
99 | .slide-go-enter,
100 | .slide-go-leave-to {
101 | transition: all .5s;
102 | transform: translate3d(100%, 0, 0);
103 | opacity: .8;
104 | }
105 |
106 | .slide-back-enter-active,
107 | .slide-back-leave-active {
108 | transition: all .5s;
109 | }
110 |
111 | .slide-back-enter,
112 | .slide-back-leave-to {
113 | transition: all .5s;
114 | transform: translate3d(-100%, 0, 0);
115 | }
116 |
117 | .bullet-enter-active,
118 | .bullet-leave-active {
119 | transition: 1s all cubic-bezier(.83, .97, .05, 1.44);
120 | }
121 |
122 | .bullet-enter,
123 | .bullet-leave-to {
124 | opacity: 0;
125 | transform: translate3d(0, 0, -100%);
126 | }
127 |
128 | .text-ellipsis {
129 | overflow: hidden;
130 | text-overflow: ellipsis;
131 | white-space: nowrap;
132 | }
133 |
134 | .page {
135 | display: flex;
136 | flex-direction: column;
137 | height: 100%;
138 | // overflow-y: scroll;
139 | // -webkit-overflow-scrolling: touch;
140 | }
141 |
142 | .container {
143 | flex: 1;
144 | // padding-top: .8rem;
145 | }
146 |
147 |
148 | header {
149 | text-align: center;
150 | background: transparent;
151 | color: @base_color;
152 | font-size: 0.26rem;
153 | line-height: 0.8rem;
154 | width: 100%;
155 | z-index: 10;
156 | position: absolute;
157 | // position: fixed;
158 | top: 0;
159 | padding: 0 0.2rem;
160 | box-sizing: border-box;
161 | }
162 | .search-box {
163 | position: relative;
164 | flex: 1;
165 | }
166 | input{
167 | height: 0.6rem;
168 | width: 100%;
169 | font-size: 26px;
170 | padding-left: 0.8rem;
171 | box-sizing: border-box;
172 | border: none;
173 | outline: none;
174 | border-radius: 100px;
175 | }
176 | .search-icon {
177 | position: absolute;
178 | left: 0;
179 | color: #ccc;
180 | display: inline-block;
181 | z-index: 20;
182 | padding-left: 0.2rem;
183 | font-size: 0.4rem;
184 | }
185 | .chooice-icon {
186 | font-size: 0.4rem;
187 | }
188 | .chooice-type {
189 | padding-left: 0.1rem;
190 | width: 0.4rem;
191 | }
192 |
193 | .list_box{
194 | padding-bottom: 1rem;
195 | padding-top: .8rem;
196 | }
197 | .list_item {
198 | height: 1.6rem;
199 | margin-bottom: .1rem;
200 | background-color: white;
201 | // box-shadow: 2px -3px 16px #ccc;
202 | border-radius: 10px;
203 | margin-top: .1rem;
204 | align-items: center;
205 | padding: 0 .2rem;
206 | position: relative;
207 | }
208 |
209 |
210 | .item_title {
211 | flex:1;
212 | font-size: .26rem;
213 | color: "#666";
214 | overflow:hidden;
215 | margin-right: .6rem;
216 | text-overflow:ellipsis;
217 | display:-webkit-box;
218 | -webkit-box-orient:vertical;
219 | -webkit-line-clamp:2;
220 | }
221 | .item_post{
222 | width: 1rem;
223 | height: 1rem;
224 | }
--------------------------------------------------------------------------------
/dist/static/less/base.less:
--------------------------------------------------------------------------------
1 | @theme_background:#6495ED;
2 | @theme_hover:#6495ED;
3 | @theme_color:#6495ED;
4 | @base_color:white;
5 | @base_textSize:.2rem;
6 | @base_textColor:black;
7 | @base_boder:1px solid #ccc;
8 | [v-cloak] {
9 | display: none;
10 | }
11 |
12 | .model {
13 | position: absolute;
14 | top: 0%;
15 | left: 0%;
16 | background: rgba(0, 0, 0, 0.3);
17 | width: 100%;
18 | height: 100%;
19 | position: fixed;
20 | z-index: 9999;
21 | }
22 |
23 | .baseConfig {
24 | font-size: @base_textSize;
25 | color: @base_textColor;
26 | }
27 |
28 | .flex {
29 | display: flex;
30 | }
31 |
32 | .flex-center {
33 | .flex();
34 | justify-content: center;
35 | }
36 |
37 | .flex_around {
38 | .flex();
39 | justify-content: space-around;
40 | }
41 |
42 | .flex_between {
43 | .flex();
44 | justify-content: space-between;
45 | }
46 |
47 | .flex-align {
48 | .flex();
49 | align-items: flex-start;
50 | }
51 |
52 | .flex-align-center {
53 | .flex();
54 | align-items: center;
55 | }
56 |
57 | .flex-align-end {
58 | .flex();
59 | align-items: flex-end;
60 | }
61 |
62 | .flex-wrap {
63 | flex-wrap: wrap;
64 | }
65 |
66 | .goods-name {
67 | font-size: .28rem;
68 | margin-bottom: .2rem;
69 | }
70 |
71 | .goods-num {
72 | font-size: .26rem;
73 | margin-top: .2rem;
74 | }
75 |
76 | .goods-price {
77 | color: red;
78 | font-size: .26rem;
79 | margin: .2rem 0;
80 | }
81 |
82 | .slide-up-enter-active,
83 | .slide-up-leave-active {
84 | transition: all .5s
85 | }
86 |
87 | .slide-up-enter,
88 | .slide-up-leave-to {
89 | opacity: 0;
90 | transform: translate3d(0, 100%, 0);
91 | }
92 |
93 | .slide-go-enter-active,
94 | .slide-go-leave-active {
95 | transition: all .5s;
96 | opacity: .8;
97 | }
98 |
99 | .slide-go-enter,
100 | .slide-go-leave-to {
101 | transition: all .5s;
102 | transform: translate3d(100%, 0, 0);
103 | opacity: .8;
104 | }
105 |
106 | .slide-back-enter-active,
107 | .slide-back-leave-active {
108 | transition: all .5s;
109 | }
110 |
111 | .slide-back-enter,
112 | .slide-back-leave-to {
113 | transition: all .5s;
114 | transform: translate3d(-100%, 0, 0);
115 | }
116 |
117 | .bullet-enter-active,
118 | .bullet-leave-active {
119 | transition: 1s all cubic-bezier(.83, .97, .05, 1.44);
120 | }
121 |
122 | .bullet-enter,
123 | .bullet-leave-to {
124 | opacity: 0;
125 | transform: translate3d(0, 0, -100%);
126 | }
127 |
128 | .text-ellipsis {
129 | overflow: hidden;
130 | text-overflow: ellipsis;
131 | white-space: nowrap;
132 | }
133 |
134 | .page {
135 | display: flex;
136 | flex-direction: column;
137 | height: 100%;
138 | // overflow-y: scroll;
139 | // -webkit-overflow-scrolling: touch;
140 | }
141 |
142 | .container {
143 | flex: 1;
144 | // padding-top: .8rem;
145 | }
146 |
147 |
148 | header {
149 | text-align: center;
150 | background: transparent;
151 | color: @base_color;
152 | font-size: 0.26rem;
153 | line-height: 0.8rem;
154 | width: 100%;
155 | z-index: 10;
156 | position: absolute;
157 | // position: fixed;
158 | top: 0;
159 | padding: 0 0.2rem;
160 | box-sizing: border-box;
161 | }
162 | .search-box {
163 | position: relative;
164 | flex: 1;
165 | }
166 | input{
167 | height: 0.6rem;
168 | width: 100%;
169 | font-size: 26px;
170 | padding-left: 0.8rem;
171 | box-sizing: border-box;
172 | border: none;
173 | outline: none;
174 | border-radius: 100px;
175 | }
176 | .search-icon {
177 | position: absolute;
178 | left: 0;
179 | color: #ccc;
180 | display: inline-block;
181 | z-index: 20;
182 | padding-left: 0.2rem;
183 | font-size: 0.4rem;
184 | }
185 | .chooice-icon {
186 | font-size: 0.4rem;
187 | }
188 | .chooice-type {
189 | padding-left: 0.1rem;
190 | width: 0.4rem;
191 | }
192 |
193 | .list_box{
194 | padding-bottom: 1rem;
195 | padding-top: .8rem;
196 | }
197 | .list_item {
198 | height: 1.6rem;
199 | margin-bottom: .1rem;
200 | background-color: white;
201 | // box-shadow: 2px -3px 16px #ccc;
202 | border-radius: 10px;
203 | margin-top: .1rem;
204 | align-items: center;
205 | padding: 0 .2rem;
206 | position: relative;
207 | }
208 |
209 |
210 | .item_title {
211 | flex:1;
212 | font-size: .26rem;
213 | color: "#666";
214 | overflow:hidden;
215 | margin-right: .6rem;
216 | text-overflow:ellipsis;
217 | display:-webkit-box;
218 | -webkit-box-orient:vertical;
219 | -webkit-line-clamp:2;
220 | }
221 | .item_post{
222 | width: 1rem;
223 | height: 1rem;
224 | }
--------------------------------------------------------------------------------
/src/components/Member/Member.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | {{$store.state.userinfo.nickname}}
13 |
14 |
15 |
16 |
17 | 请登录!
18 |
19 |
20 |
21 |
22 |
23 | 我的收藏
24 |
25 |
26 |
27 |
28 | 用户协议
29 |
30 |
31 |
32 |
33 | 关于我们
34 |
35 |
36 |
37 |
38 | 退出登录
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
109 |
110 |
173 |
--------------------------------------------------------------------------------
/src/components/Hot/Hot.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
26 |
27 |
28 |
{{item.title}}
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
138 |
139 |
195 |
--------------------------------------------------------------------------------
/dist/static/js/app.ff7f382ad46feed21960.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([14],{"/sA3":function(t,e,n){"use strict";e.b=/(1[3-9]\d{9}$)/;e.a="http://infinite.czero.cn:3000/api/"},"92gq":function(t,e){},NHnr:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o={};n.d(o,"history",function(){return p}),n.d(o,"login",function(){return h}),n.d(o,"userinfo",function(){return v}),n.d(o,"detailid",function(){return b}),n.d(o,"searchid",function(){return y}),n.d(o,"comname",function(){return g});var i=n("MVMM"),r=n("9rMa"),a=(n("kNAH"),{name:"app",created:function(){var t=this;localStorage.getItem("userMsg")&&this.$store.replaceState(Object.assign(this.$store.state,JSON.parse(localStorage.getItem("userMsg")))),window.addEventListener("beforeunload",function(){localStorage.setItem("userMsg",JSON.stringify(t.$store.state))})}}),s={render:function(){var t=this.$createElement,e=this._self._c||t;return e("div",{attrs:{id:"app"}},[e("keep-alive",[e("router-view")],1)],1)},staticRenderFns:[]};var c=n("vSla")(a,s,!1,function(t){n("XZDd")},null,null).exports,l=n("zO6J");i.a.use(l.a);var u,d=function(t){Promise.all([n.e(0),n.e(9)]).then(n.bind(null,"42Hy")).then(function(e){t(e)})},f=new l.a({routes:[{path:"/",component:d},{path:"/index",component:d},{path:"/hot",component:function(t){Promise.all([n.e(0),n.e(2)]).then(n.bind(null,"9XP/")).then(function(e){t(e)})}},{path:"/search",component:function(t){n.e(3).then(n.bind(null,"N2Ln")).then(function(e){t(e)})}},{path:"/searchbox",component:function(t){Promise.all([n.e(0),n.e(7)]).then(n.bind(null,"wC2p")).then(function(e){t(e)})}},{path:"/detail",component:function(t){Promise.all([n.e(0),n.e(8)]).then(n.bind(null,"MIom")).then(function(e){t(e)})}},{path:"/member",component:function(t){Promise.all([n.e(0),n.e(1)]).then(n.bind(null,"KskE")).then(function(e){t(e)})}},{path:"/login",component:function(t){Promise.all([n.e(0),n.e(5)]).then(n.bind(null,"mJTh")).then(function(e){t(e)})}},{path:"/register",component:function(t){Promise.all([n.e(0),n.e(4)]).then(n.bind(null,"kgOo")).then(function(e){t(e)})}},{path:"/forgetpasswd",component:function(t){Promise.all([n.e(0),n.e(6)]).then(n.bind(null,"anPG")).then(function(e){t(e)})}},{path:"/collect",component:function(t){Promise.all([n.e(0),n.e(10)]).then(n.bind(null,"Uz9m")).then(function(e){t(e)})}},{path:"/about",component:function(t){Promise.all([n.e(0),n.e(12)]).then(n.bind(null,"DbT+")).then(function(e){t(e)})}},{path:"/agreement",component:function(t){Promise.all([n.e(0),n.e(11)]).then(n.bind(null,"Nn55")).then(function(e){t(e)})}}]}),m=n("mUbh"),p=function(t){return t.history},h=function(t){return t.login},v=function(t){return t.userinfo},b=function(t){return t.detailid},y=function(t){return t.searchid},g=function(t){return t.comname},w={history:[],login:!1,userinfo:{},detailid:"",searchid:"",comname:"index"};function x(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var S=[],_=(x(u={},"SET_HISTORY",function(t,e){S.push(e),t.history=S}),x(u,"SET_LOGIN",function(t,e){t.login=e}),x(u,"SET_USERINFO",function(t,e){t.userinfo=e}),x(u,"SET_DETAILID",function(t,e){t.detailid=e}),x(u,"SET_SEARCHID",function(t,e){t.searchid=e}),x(u,"SET_COMNAME",function(t,e){t.comname=e}),u);n("6LYt");i.a.use(r.a);var B=new r.a.Store({actions:m,getters:o,state:w,mutations:_,strice:!1,plugins:[]}),T=n("2sCs"),M=n.n(T),P=n("zdS3"),E=n.n(P),$=n("iDdd"),C=n.n($),N=n("hn2z"),j=n.n(N),A=(n("XlLT"),{props:{toast:{type:String,default:"toast"}},data:function(){return{isShowToastBox:!1,resolve:"",reject:"",promise:""}},methods:{showToastBox:function(){var t=this;this.isShowToastBox=!0,setTimeout(function(){t.isShowToastBox=!1},2e3)}}}),O={render:function(){var t=this.$createElement,e=this._self._c||t;return e("div",{directives:[{name:"show",rawName:"v-show",value:this.isShowToastBox,expression:"isShowToastBox"}],staticClass:"toast-box"},[e("p",[this._v(this._s(this.toast))])])},staticRenderFns:[]};var I=n("vSla")(A,O,!1,function(t){n("fpI5")},"data-v-44678118",null).exports,k="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},L={};L.install=function(t,e){var n=t.extend(I),o=void 0;t.prototype.$toastBox={showToastBox:function(t){var e;return o||(e=(o=new n).$mount().$el,document.body.appendChild(e)),"string"==typeof t?o.toast=t:"object"===(void 0===t?"undefined":k(t))&&Object.assign(o,t),o.showToastBox()}}};var R=L,D={props:{title:{title:String,default:"提示"},content:{type:String,default:"这是弹框内容"},confirmBtn:{type:Boolean,default:!0},cancelBtn:{type:Boolean,default:!1}},data:function(){return{showModelBox:!1,resolve:"",reject:"",promise:""}},methods:{confirm:function(){this.showModelBox=!1,this.resolve("confirm"),this.remove()},cancel:function(){this.showModelBox=!1,this.reject("cancel"),this.remove()},onModelBox:function(){var t=this;return this.showModelBox=!0,this.promise=new Promise(function(e,n){t.resolve=e,t.reject=n}),this.promise},remove:function(){var t=this;setTimeout(function(){t.destroy()},300)},destroy:function(){this.$destroy(),document.body.removeChild(this.$el)}}},H={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{directives:[{name:"show",rawName:"v-show",value:t.showModelBox,expression:"showModelBox"}],staticClass:"model"},[n("div",{staticClass:"model_box"},[n("div",{staticClass:"global_model_title"},[t._v(t._s(t.title))]),t._v(" "),n("div",{staticClass:"global_model_content"},[t._v(t._s(t.content))]),t._v(" "),n("div",{staticClass:"global_model_btn flex"},[n("div",{directives:[{name:"show",rawName:"v-show",value:t.cancelBtn,expression:"cancelBtn"}],staticClass:"global_model_btn--cancel",on:{click:t.cancel}},[t._v("取消")]),t._v(" "),n("div",{directives:[{name:"show",rawName:"v-show",value:t.confirmBtn,expression:"confirmBtn"}],staticClass:"global_model_btn--confirm",on:{click:t.confirm}},[t._v("确定")])])])])},staticRenderFns:[]};var z=n("vSla")(D,H,!1,function(t){n("92gq")},"data-v-12360a1f",null).exports,U="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},J={};J.install=function(t,e){var n=t.extend(z),o=void 0;t.prototype.$modelBox={onModelBox:function(t){var e;return o||(e=(o=new n).$mount().$el,document.body.appendChild(e)),"string"==typeof t?o.content=t:"object"===(void 0===t?"undefined":U(t))&&Object.assign(o,t),o.onModelBox().then(function(t){return o=null,Promise.resolve(t)}).catch(function(t){return o=null,Promise.reject(t)})}}};var X=J,F=n("/sA3");i.a.use(X),i.a.use(R);var q=new j.a;e.default=q;C.a.attach(document.body),i.a.use(r.a),i.a.prototype.$http=M.a,i.a.prototype.$baseURL=F.a,i.a.config.productionTip=!1,i.a.use(E.a,{preLoad:1.3,error:"../static/img/github.png",loading:"../static/img/github.png"}),new i.a({el:"#app",router:f,store:B,template:" ",components:{App:c}})},XZDd:function(t,e){},XlLT:function(t,e){},fpI5:function(t,e){},kNAH:function(t,e){!function(t){function e(o){if(n[o])return n[o].exports;var i=n[o]={exports:{},id:o,loaded:!1};return t[o].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}var n={};e.m=t,e.c=n,e.p="",e(0)}([function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=window;e.default=n.flex=function(t,e){var o=t||100,i=e||1,r=n.document,a=navigator.userAgent,s=a.match(/Android[\S\s]+AppleWebkit\/(\d{3})/i),c=a.match(/U3\/((\d+|\.){5,})/i),l=c&&parseInt(c[1].split(".").join(""),10)>=80,u=navigator.appVersion.match(/(iphone|ipad|ipod)/gi),d=n.devicePixelRatio||1;u||s&&s[1]>534||l||(d=1);var f=1/d,m=r.querySelector('meta[name="viewport"]');m||((m=r.createElement("meta")).setAttribute("name","viewport"),r.head.appendChild(m)),m.setAttribute("content","width=device-width,user-scalable=no,initial-scale="+f+",maximum-scale="+f+",minimum-scale="+f),r.documentElement.style.fontSize=o/2*d*i+"px"},t.exports=e.default}]),flex(100,1)},mUbh:function(t,e){}},["NHnr"]);
--------------------------------------------------------------------------------
/src/components/Index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
{{pullDownText}}
7 |
8 |
Infinite
9 |
10 |
11 |
12 |
{{item.title}}
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
150 |
151 |
307 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | 使用Vue和Node实现前端,服务端,后台管理系统三个项目。
2 |
3 | 前后端分离,Restful API。
4 |
5 | * 前端: Vue-CLI
6 | * 服务端:Node-Koa2-Mongodb-Mongoose-七牛云对象存储
7 |
8 | * 后台管理系统: [iView-Admin](https://github.com/iview/iview-admin.git)
9 |
10 | * 开发IDE:VSCode
11 |
12 | * 部署环境:阿里云-Ubuntu16.04
13 |
14 | * 版本管理: Git
15 |
16 |
17 | ### 效果预览
18 |
19 | 
20 |
21 | 
22 | # 在线访问
23 | ### 前端:
24 |
25 | 扫码查看:
26 | 
27 |
28 | 在线查看:
29 |
30 | [http://infinite.czero.cn/Infinite-webDesign/dist](http://infinite.czero.cn/Infinite-webDesign/dist/#/hot)
31 |
32 | ### 后台管理系统:
33 | 还没有添加权限管理的功能,后续会加上。进入登录页面,如果不懂或者需要账号私聊我。。。
34 | 第一次使用iview-admin,感觉功能还是挺多的,还在摸索阶段,只用来实现简陋的功能,后续会持续优化。
35 | 
36 |
37 | 在线查看:
38 |
39 | [http://infinite.czero.cn/Infinite-webAdmin/dist](http://infinite.czero.cn/Infinite-webAdmin/dist)
40 |
41 | ### 项目概览
42 | ### 前端(Vue-CLI):
43 | 功能:
44 | 架构是基于[Vue全家桶购物商城](https://github.com/czero1995/fancy-store.git)
45 |
46 | 1. 添加better-scroll组件实现下拉刷新和上拉加载。
47 | 2. 请求服务端API,真实的数据交互。
48 | 3. 添加搜索,登录,注册等功能并Vuex进行存储。
49 | 4. 图片都是使用Iconfont。
50 | 5. 动画切换,使用Vue-router做路由判断来实现不同的切换动画。
51 | 6. 模块化,全局注册组件弹窗(alert和toast)效果,封装共用js函数类。
52 | 7. 配置Webpack请求代理,解决请求服务器端跨域问题。
53 | 8. 使用keep-alive对组件进行缓存
54 |
55 | 目录结构:
56 |
57 | ├── config (配置目录,需要在index.js配置代理,不然会出现跨域的问题)
58 | │ ├── dev.env.js
59 | │ ├── index.js (配置跨域)
60 | │ └── prod.env.js
61 | ├── image
62 | │ └── github.png
63 | ├── index.html
64 | ├── components (组件目录)
65 | │ ├── About(关于我们)
66 | │ ├── Agreement(用户协议)
67 | │ ├── Base(共用基础组件)
68 | │ ├── Collect(我的收藏)
69 | │ ├── Detail(内容详情)
70 | │ ├── ForgetPasswd(忘记密码)
71 | │ ├── Hot(发现热门页)
72 | │ ├── Index.vue(首页,推荐页面)
73 | │ ├── Login(登录页)
74 | │ ├── Member(个人中心页)
75 | │ ├── ModelBox(全局注册弹窗组件)
76 | │ ├── Register(注册页)
77 | │ ├── Search(搜索页)
78 | │ └── ToastBox(全局注册Toast组件)
79 | ├── main.js
80 | ├── router
81 | │ └── index.js
82 | └── store (Vuex)
83 | ├── actions.js
84 | ├── getters.js (获取Vuex状态)
85 | ├── index.js (Vuex入口文件)
86 | ├── mutation-types.js (变量存储)
87 | ├── mutations.js (to修改动作)
88 | └── state.js (状态仓库)
89 | ### Vue-CLI Webpack构建优化
90 | #### 只黏贴关键部分的代码
91 | * 使用Happypack多线程打包构建
92 |
93 | 在**build/webpack.base.cong.js**下添加如下代码
94 |
95 | const HappyPack = require('happypack')
96 | const os = require('os')
97 | const happyThreadPool = HappyPack.ThreadPool({ size: os.cpus().length })
98 |
99 | plugins: [
100 | new HappyPack({
101 | id: 'happy-babel-js',
102 | loaders: ['babel-loader?cacheDirectory=true'],
103 | threadPool: happyThreadPool,
104 | })
105 | ],
106 |
107 | {
108 | test: /\.js$/,
109 | // loader: 'babel-loader',
110 | loader: 'happypack/loader?id=happy-babel-js', // 增加新的HappyPack构建loader
111 | exclude: /node_modules/,
112 | include: [resolve('src')]
113 | },
114 |
115 | * babrl-loader开启缓存
116 |
117 | * 启用DllPlugin和DllReferencePlugin预编译库文件
118 |
119 |
120 | 第三方库文件单独打包一次,以后的编译都不需要在编译打包第三方库
121 |
122 | 在**build/**文件夹下新建**webpack.dll.config.js**文件,复制一下代码:
123 |
124 | const path = require("path")
125 | const webpack = require("webpack")
126 |
127 | module.exports = {
128 | // 你想要打包的模块的数组
129 | entry: {
130 | vendor: ['vue/dist/vue.esm.js', 'axios', 'vue-router', 'vuex']
131 | },
132 | output: {
133 | path: path.join(__dirname, '../static/js'), // 打包后文件输出的位置
134 | filename: '[name].dll.js',
135 | library: '[name]_library'
136 | },
137 | plugins: [
138 | new webpack.DllPlugin({
139 | path: path.join(__dirname, '.', '[name]-manifest.json'),
140 | name: '[name]_library',
141 | context: __dirname
142 | }),
143 | // 压缩打包的文件
144 | new webpack.optimize.UglifyJsPlugin({
145 | compress: {
146 | warnings: false
147 | }
148 | })
149 | ]
150 | }
151 | 在**build/webpack.dev.config.js**和**build/webpack.prod.config.js**中添加plugins
152 |
153 | new webpack.DllReferencePlugin({
154 | context: __dirname,
155 | manifest: require('./vendor-manifest.json')
156 | }),
157 |
158 | 在**根目录下的index.html**下引入预编译的库
159 |
160 |
161 |
162 | 在**package.json/scripts**下中添加dll命令
163 |
164 | "dll": "webpack --config ./build/webpack.dll.config.js"
165 |
166 | 运行:
167 |
168 | npm run dll
169 |
170 | 然后再
171 |
172 | npm run dev或npm run build
173 |
174 | ### 服务端(Node-Koa2-Mongodb-Mongoose):
175 | 功能:
176 |
177 | 1. 分页加载
178 | 2. 模糊查询
179 | 3. 定制Restful API
180 | 4. 七牛云第三方对象存储对接
181 | 5. pm2部署到阿里云
182 |
183 |
184 | 项目目录:
185 |
186 | ├── app
187 | │ ├── controllers (逻辑处理目录)
188 | │ │ ├── admin
189 | │ │ ├── app.js
190 | │ │ ├── hot
191 | │ │ ├── recommend
192 | │ │ ├── upload
193 | │ │ └── user
194 | │ ├── dbhelper (操控数据表目录)
195 | │ │ ├── AdminHelper.js
196 | │ │ ├── hotHelper.js
197 | │ │ ├── recommendHelper.js
198 | │ │ └── userHelper.js
199 | │ └── models (数据库模型目录)
200 | │ ├── admin.js (管理员表)
201 | │ ├── hot.js (热门发现数据表)
202 | │ ├── recommend.js (首页推荐表)
203 | │ └── user.js (用户管理表--登录注册)
204 | ├── app.js (服务端启动入口文件 node app.js)
205 | ├── config (配置目录)
206 | │ ├── config.js (基础配置信息--七牛云配置,数据库配置)
207 | │ └── router.js (路由配置)
208 |
209 |
210 | ### 后台管理系统(iView-Admin):
211 |
212 | 功能:
213 |
214 | 1. 文章管理,图片上传到七牛云。
215 | 2. 编辑文章
216 | 3. 添加文章
217 | 4. 用户管理
218 | 5. 富文本内容添加
219 |
220 |
221 | 项目目录:
222 |
223 | ├── build (配置全局请求地址和跨域处理)
224 | │ ├── webpack.dev.config.js (在这里配置请求跨域问题,及全局请求地址)
225 | ├── index.html
226 | ├── src
227 | │ ├── main.js
228 | │ ├── mixins (公共js工具目录)
229 | │ │ └── common.js
230 | │ ├── router (路由配置)
231 | │ │ ├── index.js
232 | │ │ └── router.js
233 | │ └── views
234 | │ ├── Main.vue
235 | │ ├── error-page
236 | │ ├── home
237 | │ ├── login.less
238 | │ ├── login.vue
239 | │ ├── main-components (组件入口目录)
240 | │ ├── main-menu
241 | │ ├─── edit (编辑)
242 | │ ├── hot (热门)
243 | │ ├── recommend (发现)
244 | │ ├── user (用户管理)
245 | │ ├── main.less
246 | │ ├── message
247 | │ └── my-components
248 |
249 |
250 | ## 调试方法:
251 | 1. Chrome调试(谷歌浏览器工具)
252 | 2. vConsole调试(真机调试查看log日志神器)
253 | 3. API调试神奇Postman。
254 | 4. Vue-devtools(调试Vuex状态)
255 |
256 | ## 跨域处理
257 | 1. 使用Webpack的proxyTable进行请求代理
258 | 2. Chrome安装cors拓展
259 | 3. 服务端配置所以路径都可跨域或者将开发的IP加入白名单
260 |
261 | ## 源码
262 | 前端源码: [https://github.com/czero1995/Infinite-webDesign.git](https://github.com/czero1995/Infinite-webDesign.git)
263 |
264 | 服务端源码:[https://github.com/czero1995/Infinite-webServer.git](https://github.com/czero1995/Infinite-webServer.git)
265 |
266 | 后台管理源码: [https://github.com/czero1995/Infinite-webAdmin.git](https://github.com/czero1995/Infinite-webAdmin.git)
267 |
268 | # 使用说明
269 |
270 | #克隆项目
271 | git clone https://github.com/czero1995/Infinite-webDesign.git
272 |
273 | # 安装依赖
274 | npm install
275 |
276 | # DLL构建库(提高打包和编译的速度)
277 | npm run dll
278 |
279 | # 本地开发环境 访问http://localhost:4000
280 | npm run dev
281 |
282 | # 构建生产
283 | npm run build
284 |
285 | ## 最后
286 | 如有建议或者问题,请私聊联系我,一起学习和进步。反手给我一个star^_^
287 |
--------------------------------------------------------------------------------
/dist/static/js/1.dfa371a87014b2189288.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([1],{KskE:function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=r("lC5x"),o=r.n(n),i=r("Ug5s"),a=r("9rMa"),s=Object.assign||function(t){for(var e=1;e=0,i=o&&n.regeneratorRuntime;if(n.regeneratorRuntime=void 0,t.exports=r("k9rz"),o)n.regeneratorRuntime=i;else try{delete n.regeneratorRuntime}catch(t){n.regeneratorRuntime=void 0}},k9rz:function(t,e){!function(e){"use strict";var r,n=Object.prototype,o=n.hasOwnProperty,i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",c=i.toStringTag||"@@toStringTag",u="object"==typeof t,l=e.regeneratorRuntime;if(l)u&&(t.exports=l);else{(l=e.regeneratorRuntime=u?t.exports:{}).wrap=w;var f="suspendedStart",h="suspendedYield",v="executing",p="completed",m={},d={};d[a]=function(){return this};var g=Object.getPrototypeOf,y=g&&g(g(N([])));y&&y!==n&&o.call(y,a)&&(d=y);var _=E.prototype=x.prototype=Object.create(d);L.prototype=_.constructor=E,E.constructor=L,E[c]=L.displayName="GeneratorFunction",l.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===L||"GeneratorFunction"===(e.displayName||e.name))},l.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,E):(t.__proto__=E,c in t||(t[c]="GeneratorFunction")),t.prototype=Object.create(_),t},l.awrap=function(t){return{__await:t}},O(k.prototype),k.prototype[s]=function(){return this},l.AsyncIterator=k,l.async=function(t,e,r,n){var o=new k(w(t,e,r,n));return l.isGeneratorFunction(e)?o:o.next().then(function(t){return t.done?t.value:o.next()})},O(_),_[c]="Generator",_[a]=function(){return this},_.toString=function(){return"[object Generator]"},l.keys=function(t){var e=[];for(var r in t)e.push(r);return e.reverse(),function r(){for(;e.length;){var n=e.pop();if(n in t)return r.value=n,r.done=!1,r}return r.done=!0,r}},l.values=N,P.prototype={constructor:P,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=r,this.done=!1,this.delegate=null,this.method="next",this.arg=r,this.tryEntries.forEach(R),!t)for(var e in this)"t"===e.charAt(0)&&o.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=r)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function n(n,o){return s.type="throw",s.arg=t,e.next=n,o&&(e.method="next",e.arg=r),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var c=o.call(a,"catchLoc"),u=o.call(a,"finallyLoc");if(c&&u){if(this.prev=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&o.call(n,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),R(r),m}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;R(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:N(t),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=r),m}}}function w(t,e,r,n){var o=e&&e.prototype instanceof x?e:x,i=Object.create(o.prototype),a=new P(n||[]);return i._invoke=function(t,e,r){var n=f;return function(o,i){if(n===v)throw new Error("Generator is already running");if(n===p){if("throw"===o)throw i;return S()}for(r.method=o,r.arg=i;;){var a=r.delegate;if(a){var s=C(a,r);if(s){if(s===m)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(n===f)throw n=p,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n=v;var c=b(t,e,r);if("normal"===c.type){if(n=r.done?p:h,c.arg===m)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(n=p,r.method="throw",r.arg=c.arg)}}}(t,r,a),i}function b(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}function x(){}function L(){}function E(){}function O(t){["next","throw","return"].forEach(function(e){t[e]=function(t){return this._invoke(e,t)}})}function k(t){var e;this._invoke=function(r,n){function i(){return new Promise(function(e,i){!function e(r,n,i,a){var s=b(t[r],t,n);if("throw"!==s.type){var c=s.arg,u=c.value;return u&&"object"==typeof u&&o.call(u,"__await")?Promise.resolve(u.__await).then(function(t){e("next",t,i,a)},function(t){e("throw",t,i,a)}):Promise.resolve(u).then(function(t){c.value=t,i(c)},a)}a(s.arg)}(r,n,e,i)})}return e=e?e.then(i,i):i()}}function C(t,e){var n=t.iterator[e.method];if(n===r){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=r,C(t,e),"throw"===e.method))return m;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return m}var o=b(n,t.iterator,e.arg);if("throw"===o.type)return e.method="throw",e.arg=o.arg,e.delegate=null,m;var i=o.arg;return i?i.done?(e[t.resultName]=i.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=r),e.delegate=null,m):i:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,m)}function j(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function R(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function P(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(j,this),this.reset(!0)}function N(t){if(t){var e=t[a];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var n=-1,i=function e(){for(;++n","","","","","","","","","","","","","","","","","","","","",""]
130 | /*使用Native.js调用原生安卓API需要使用到的系统权限*/
131 | },
132 | "orientation": [
133 | "portrait-primary"
134 | ],/*应用支持的方向,portrait-primary:竖屏正方向;portrait-secondary:竖屏反方向;landscape-primary:横屏正方向;landscape-secondary:横屏反方向*/
135 | "icons": {
136 | "ios": {
137 | "prerendered": true, /*应用图标是否已经高亮处理,在iOS6及以下设备上有效*/
138 | "auto": "", /*应用图标,分辨率:512x512,用于自动生成各种尺寸程序图标*/
139 | "iphone": {
140 | "normal": "", /*iPhone3/3GS程序图标,分辨率:57x57*/
141 | "retina": "", /*iPhone4程序图标,分辨率:114x114*/
142 | "retina7": "", /*iPhone4S/5/6程序图标,分辨率:120x120*/
143 | "retina8": "", /*iPhone6 Plus程序图标,分辨率:180x180*/
144 | "spotlight-normal": "", /*iPhone3/3GS Spotlight搜索程序图标,分辨率:29x29*/
145 | "spotlight-retina": "", /*iPhone4 Spotlight搜索程序图标,分辨率:58x58*/
146 | "spotlight-retina7": "", /*iPhone4S/5/6 Spotlight搜索程序图标,分辨率:80x80*/
147 | "settings-normal": "", /*iPhone4设置页面程序图标,分辨率:29x29*/
148 | "settings-retina": "", /*iPhone4S/5/6设置页面程序图标,分辨率:58x58*/
149 | "settings-retina8": "" /*iPhone6Plus设置页面程序图标,分辨率:87x87*/
150 | },
151 | "ipad": {
152 | "normal": "", /*iPad普通屏幕程序图标,分辨率:72x72*/
153 | "retina": "", /*iPad高分屏程序图标,分辨率:144x144*/
154 | "normal7": "", /*iPad iOS7程序图标,分辨率:76x76*/
155 | "retina7": "", /*iPad iOS7高分屏程序图标,分辨率:152x152*/
156 | "spotlight-normal": "", /*iPad Spotlight搜索程序图标,分辨率:50x50*/
157 | "spotlight-retina": "", /*iPad高分屏Spotlight搜索程序图标,分辨率:100x100*/
158 | "spotlight-normal7": "",/*iPad iOS7 Spotlight搜索程序图标,分辨率:40x40*/
159 | "spotlight-retina7": "",/*iPad iOS7高分屏Spotlight搜索程序图标,分辨率:80x80*/
160 | "settings-normal": "",/*iPad设置页面程序图标,分辨率:29x29*/
161 | "settings-retina": "" /*iPad高分屏设置页面程序图标,分辨率:58x58*/
162 | }
163 | },
164 | "android": {
165 | "mdpi": "", /*普通屏程序图标,分辨率:48x48*/
166 | "ldpi": "", /*大屏程序图标,分辨率:48x48*/
167 | "hdpi": "", /*高分屏程序图标,分辨率:72x72*/
168 | "xhdpi": "",/*720P高分屏程序图标,分辨率:96x96*/
169 | "xxhdpi": ""/*1080P 高分屏程序图标,分辨率:144x144*/
170 | }
171 | },
172 | "splashscreen": {
173 | "ios": {
174 | "iphone": {
175 | "default": "", /*iPhone3启动图片选,分辨率:320x480*/
176 | "retina35": "",/*3.5英寸设备(iPhone4)启动图片,分辨率:640x960*/
177 | "retina40": "",/*4.0 英寸设备(iPhone5/iPhone5s)启动图片,分辨率:640x1136*/
178 | "retina47": "",/*4.7 英寸设备(iPhone6)启动图片,分辨率:750x1334*/
179 | "retina55": "",/*5.5 英寸设备(iPhone6 Plus)启动图片,分辨率:1242x2208*/
180 | "retina55l": ""/*5.5 英寸设备(iPhone6 Plus)横屏启动图片,分辨率:2208x1242*/
181 | },
182 | "ipad": {
183 | "portrait": "", /*iPad竖屏启动图片,分辨率:768x1004*/
184 | "portrait-retina": "",/*iPad高分屏竖屏图片,分辨率:1536x2008*/
185 | "landscape": "", /*iPad横屏启动图片,分辨率:1024x748*/
186 | "landscape-retina": "", /*iPad高分屏横屏启动图片,分辨率:2048x1496*/
187 | "portrait7": "", /*iPad iOS7竖屏启动图��,分辨率:768x1024*/
188 | "portrait-retina7": "",/*iPad iOS7高分屏竖屏图片,分辨率:1536x2048*/
189 | "landscape7": "", /*iPad iOS7横屏启动图片,分辨率:1024x768*/
190 | "landscape-retina7": ""/*iPad iOS7高分屏横屏启动图片,分辨率:2048x1536*/
191 | }
192 | },
193 | "android": {
194 | "mdpi": "", /*普通屏启动图片,分辨率:240x282*/
195 | "ldpi": "", /*大屏启动图片,分辨率:320x442*/
196 | "hdpi": "", /*高分屏启动图片,分辨率:480x762*/
197 | "xhdpi": "", /*720P高分屏启动图片,分辨率:720x1242*/
198 | "xxhdpi": ""/*1080P高分屏启动图片,分辨率:1080x1882*/
199 | }
200 | }
201 | }
202 | }
203 | }
--------------------------------------------------------------------------------
/static/iconfont/iconfont.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
8 | Created by iconfont
9 |
10 |
11 |
12 |
13 |
21 |
22 |
23 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/dist/static/iconfont/iconfont.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
8 | Created by iconfont
9 |
10 |
11 |
12 |
13 |
21 |
22 |
23 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/static/css/swiper.min.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Swiper 3.4.2
3 | * Most modern mobile touch slider and framework with hardware accelerated transitions
4 | *
5 | * http://www.idangero.us/swiper/
6 | *
7 | * Copyright 2017, Vladimir Kharlampidi
8 | * The iDangero.us
9 | * http://www.idangero.us/
10 | *
11 | * Licensed under MIT
12 | *
13 | * Released on: March 10, 2017
14 | */
15 | .swiper-container{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;z-index:1}.swiper-container-no-flexbox .swiper-slide{float:left}.swiper-container-vertical>.swiper-wrapper{-webkit-box-orient:vertical;-moz-box-orient:vertical;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-transition-property:-webkit-transform;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.swiper-container-android .swiper-slide,.swiper-wrapper{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-o-transform:translate(0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.swiper-container-multirow>.swiper-wrapper{-webkit-box-lines:multiple;-moz-box-lines:multiple;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.swiper-container-free-mode>.swiper-wrapper{-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-ms-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out;margin:0 auto}.swiper-slide{-webkit-flex-shrink:0;-ms-flex:0 0 auto;flex-shrink:0;width:100%;height:100%;position:relative}.swiper-container-autoheight,.swiper-container-autoheight .swiper-slide{height:auto}.swiper-container-autoheight .swiper-wrapper{-webkit-box-align:start;-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start;-webkit-transition-property:-webkit-transform,height;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform,height}.swiper-container .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-wp8-horizontal{-ms-touch-action:pan-y;touch-action:pan-y}.swiper-wp8-vertical{-ms-touch-action:pan-x;touch-action:pan-x}.swiper-button-next,.swiper-button-prev{position:absolute;top:50%;width:27px;height:44px;margin-top:-22px;z-index:10;cursor:pointer;-moz-background-size:27px 44px;-webkit-background-size:27px 44px;background-size:27px 44px;background-position:center;background-repeat:no-repeat}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-prev,.swiper-container-rtl .swiper-button-next{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");left:10px;right:auto}.swiper-button-prev.swiper-button-black,.swiper-container-rtl .swiper-button-next.swiper-button-black{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E")}.swiper-button-prev.swiper-button-white,.swiper-container-rtl .swiper-button-next.swiper-button-white{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E")}.swiper-button-next,.swiper-container-rtl .swiper-button-prev{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");right:10px;left:auto}.swiper-button-next.swiper-button-black,.swiper-container-rtl .swiper-button-prev.swiper-button-black{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E")}.swiper-button-next.swiper-button-white,.swiper-container-rtl .swiper-button-prev.swiper-button-white{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E")}.swiper-pagination{position:absolute;text-align:center;-webkit-transition:.3s;-moz-transition:.3s;-o-transition:.3s;transition:.3s;-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-container-horizontal>.swiper-pagination-bullets,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:10px;left:0;width:100%}.swiper-pagination-bullet{width:8px;height:8px;display:inline-block;border-radius:100%;background:#000;opacity:.2}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-moz-appearance:none;-ms-appearance:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-white .swiper-pagination-bullet{background:#fff}.swiper-pagination-bullet-active{opacity:1;background:#007aff}.swiper-pagination-white .swiper-pagination-bullet-active{background:#fff}.swiper-pagination-black .swiper-pagination-bullet-active{background:#000}.swiper-container-vertical>.swiper-pagination-bullets{right:10px;top:50%;-webkit-transform:translate3d(0,-50%,0);-moz-transform:translate3d(0,-50%,0);-o-transform:translate(0,-50%);-ms-transform:translate3d(0,-50%,0);transform:translate3d(0,-50%,0)}.swiper-container-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:5px 0;display:block}.swiper-container-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 5px}.swiper-pagination-progress{background:rgba(0,0,0,.25);position:absolute}.swiper-pagination-progress .swiper-pagination-progressbar{background:#007aff;position:absolute;left:0;top:0;width:100%;height:100%;-webkit-transform:scale(0);-ms-transform:scale(0);-o-transform:scale(0);transform:scale(0);-webkit-transform-origin:left top;-moz-transform-origin:left top;-ms-transform-origin:left top;-o-transform-origin:left top;transform-origin:left top}.swiper-container-rtl .swiper-pagination-progress .swiper-pagination-progressbar{-webkit-transform-origin:right top;-moz-transform-origin:right top;-ms-transform-origin:right top;-o-transform-origin:right top;transform-origin:right top}.swiper-container-horizontal>.swiper-pagination-progress{width:100%;height:4px;left:0;top:0}.swiper-container-vertical>.swiper-pagination-progress{width:4px;height:100%;left:0;top:0}.swiper-pagination-progress.swiper-pagination-white{background:rgba(255,255,255,.5)}.swiper-pagination-progress.swiper-pagination-white .swiper-pagination-progressbar{background:#fff}.swiper-pagination-progress.swiper-pagination-black .swiper-pagination-progressbar{background:#000}.swiper-container-3d{-webkit-perspective:1200px;-moz-perspective:1200px;-o-perspective:1200px;perspective:1200px}.swiper-container-3d .swiper-cube-shadow,.swiper-container-3d .swiper-slide,.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top,.swiper-container-3d .swiper-wrapper{-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;transform-style:preserve-3d}.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-container-3d .swiper-slide-shadow-left{background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,0)));background-image:-webkit-linear-gradient(right,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-moz-linear-gradient(right,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-o-linear-gradient(right,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-right{background-image:-webkit-gradient(linear,right top,left top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,0)));background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-moz-linear-gradient(left,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-o-linear-gradient(left,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-top{background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,.5)),to(rgba(0,0,0,0)));background-image:-webkit-linear-gradient(bottom,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-moz-linear-gradient(bottom,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-o-linear-gradient(bottom,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-bottom{background-image:-webkit-gradient(linear,left bottom,left top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,0)));background-image:-webkit-linear-gradient(top,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-moz-linear-gradient(top,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-o-linear-gradient(top,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-coverflow .swiper-wrapper,.swiper-container-flip .swiper-wrapper{-ms-perspective:1200px}.swiper-container-cube,.swiper-container-flip{overflow:visible}.swiper-container-cube .swiper-slide,.swiper-container-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-container-cube .swiper-slide .swiper-slide,.swiper-container-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-active .swiper-slide-active,.swiper-container-flip .swiper-slide-active,.swiper-container-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-cube .swiper-slide-shadow-bottom,.swiper-container-cube .swiper-slide-shadow-left,.swiper-container-cube .swiper-slide-shadow-right,.swiper-container-cube .swiper-slide-shadow-top,.swiper-container-flip .swiper-slide-shadow-bottom,.swiper-container-flip .swiper-slide-shadow-left,.swiper-container-flip .swiper-slide-shadow-right,.swiper-container-flip .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden}.swiper-container-cube .swiper-slide{visibility:hidden;-webkit-transform-origin:0 0;-moz-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;width:100%;height:100%}.swiper-container-cube.swiper-container-rtl .swiper-slide{-webkit-transform-origin:100% 0;-moz-transform-origin:100% 0;-ms-transform-origin:100% 0;transform-origin:100% 0}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-next,.swiper-container-cube .swiper-slide-next+.swiper-slide,.swiper-container-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-container-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0;width:100%;height:100%;background:#000;opacity:.6;-webkit-filter:blur(50px);filter:blur(50px);z-index:0}.swiper-container-fade.swiper-container-free-mode .swiper-slide{-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-ms-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}.swiper-container-fade .swiper-slide{pointer-events:none;-webkit-transition-property:opacity;-moz-transition-property:opacity;-o-transition-property:opacity;transition-property:opacity}.swiper-container-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-fade .swiper-slide-active,.swiper-container-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-zoom-container{width:100%;height:100%;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-pack:center;-moz-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-moz-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;object-fit:contain}.swiper-scrollbar{border-radius:10px;position:relative;-ms-touch-action:none;background:rgba(0,0,0,.1)}.swiper-container-horizontal>.swiper-scrollbar{position:absolute;left:1%;bottom:3px;z-index:50;height:5px;width:98%}.swiper-container-vertical>.swiper-scrollbar{position:absolute;right:3px;top:1%;z-index:50;width:5px;height:98%}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:rgba(0,0,0,.5);border-radius:10px;left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;-webkit-transform-origin:50%;-moz-transform-origin:50%;transform-origin:50%;-webkit-animation:swiper-preloader-spin 1s steps(12,end) infinite;-moz-animation:swiper-preloader-spin 1s steps(12,end) infinite;animation:swiper-preloader-spin 1s steps(12,end) infinite}.swiper-lazy-preloader:after{display:block;content:"";width:100%;height:100%;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%236c6c6c'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");background-position:50%;-webkit-background-size:100%;background-size:100%;background-repeat:no-repeat}.swiper-lazy-preloader-white:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%23fff'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E")}@-webkit-keyframes swiper-preloader-spin{100%{-webkit-transform:rotate(360deg)}}@keyframes swiper-preloader-spin{100%{transform:rotate(360deg)}}
--------------------------------------------------------------------------------
/dist/static/css/swiper.min.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Swiper 3.4.2
3 | * Most modern mobile touch slider and framework with hardware accelerated transitions
4 | *
5 | * http://www.idangero.us/swiper/
6 | *
7 | * Copyright 2017, Vladimir Kharlampidi
8 | * The iDangero.us
9 | * http://www.idangero.us/
10 | *
11 | * Licensed under MIT
12 | *
13 | * Released on: March 10, 2017
14 | */
15 | .swiper-container{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;z-index:1}.swiper-container-no-flexbox .swiper-slide{float:left}.swiper-container-vertical>.swiper-wrapper{-webkit-box-orient:vertical;-moz-box-orient:vertical;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-transition-property:-webkit-transform;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.swiper-container-android .swiper-slide,.swiper-wrapper{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-o-transform:translate(0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.swiper-container-multirow>.swiper-wrapper{-webkit-box-lines:multiple;-moz-box-lines:multiple;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.swiper-container-free-mode>.swiper-wrapper{-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-ms-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out;margin:0 auto}.swiper-slide{-webkit-flex-shrink:0;-ms-flex:0 0 auto;flex-shrink:0;width:100%;height:100%;position:relative}.swiper-container-autoheight,.swiper-container-autoheight .swiper-slide{height:auto}.swiper-container-autoheight .swiper-wrapper{-webkit-box-align:start;-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start;-webkit-transition-property:-webkit-transform,height;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform,height}.swiper-container .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-wp8-horizontal{-ms-touch-action:pan-y;touch-action:pan-y}.swiper-wp8-vertical{-ms-touch-action:pan-x;touch-action:pan-x}.swiper-button-next,.swiper-button-prev{position:absolute;top:50%;width:27px;height:44px;margin-top:-22px;z-index:10;cursor:pointer;-moz-background-size:27px 44px;-webkit-background-size:27px 44px;background-size:27px 44px;background-position:center;background-repeat:no-repeat}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-prev,.swiper-container-rtl .swiper-button-next{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");left:10px;right:auto}.swiper-button-prev.swiper-button-black,.swiper-container-rtl .swiper-button-next.swiper-button-black{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E")}.swiper-button-prev.swiper-button-white,.swiper-container-rtl .swiper-button-next.swiper-button-white{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E")}.swiper-button-next,.swiper-container-rtl .swiper-button-prev{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");right:10px;left:auto}.swiper-button-next.swiper-button-black,.swiper-container-rtl .swiper-button-prev.swiper-button-black{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E")}.swiper-button-next.swiper-button-white,.swiper-container-rtl .swiper-button-prev.swiper-button-white{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E")}.swiper-pagination{position:absolute;text-align:center;-webkit-transition:.3s;-moz-transition:.3s;-o-transition:.3s;transition:.3s;-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-container-horizontal>.swiper-pagination-bullets,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:10px;left:0;width:100%}.swiper-pagination-bullet{width:8px;height:8px;display:inline-block;border-radius:100%;background:#000;opacity:.2}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-moz-appearance:none;-ms-appearance:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-white .swiper-pagination-bullet{background:#fff}.swiper-pagination-bullet-active{opacity:1;background:#007aff}.swiper-pagination-white .swiper-pagination-bullet-active{background:#fff}.swiper-pagination-black .swiper-pagination-bullet-active{background:#000}.swiper-container-vertical>.swiper-pagination-bullets{right:10px;top:50%;-webkit-transform:translate3d(0,-50%,0);-moz-transform:translate3d(0,-50%,0);-o-transform:translate(0,-50%);-ms-transform:translate3d(0,-50%,0);transform:translate3d(0,-50%,0)}.swiper-container-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:5px 0;display:block}.swiper-container-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 5px}.swiper-pagination-progress{background:rgba(0,0,0,.25);position:absolute}.swiper-pagination-progress .swiper-pagination-progressbar{background:#007aff;position:absolute;left:0;top:0;width:100%;height:100%;-webkit-transform:scale(0);-ms-transform:scale(0);-o-transform:scale(0);transform:scale(0);-webkit-transform-origin:left top;-moz-transform-origin:left top;-ms-transform-origin:left top;-o-transform-origin:left top;transform-origin:left top}.swiper-container-rtl .swiper-pagination-progress .swiper-pagination-progressbar{-webkit-transform-origin:right top;-moz-transform-origin:right top;-ms-transform-origin:right top;-o-transform-origin:right top;transform-origin:right top}.swiper-container-horizontal>.swiper-pagination-progress{width:100%;height:4px;left:0;top:0}.swiper-container-vertical>.swiper-pagination-progress{width:4px;height:100%;left:0;top:0}.swiper-pagination-progress.swiper-pagination-white{background:rgba(255,255,255,.5)}.swiper-pagination-progress.swiper-pagination-white .swiper-pagination-progressbar{background:#fff}.swiper-pagination-progress.swiper-pagination-black .swiper-pagination-progressbar{background:#000}.swiper-container-3d{-webkit-perspective:1200px;-moz-perspective:1200px;-o-perspective:1200px;perspective:1200px}.swiper-container-3d .swiper-cube-shadow,.swiper-container-3d .swiper-slide,.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top,.swiper-container-3d .swiper-wrapper{-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;transform-style:preserve-3d}.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-container-3d .swiper-slide-shadow-left{background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,0)));background-image:-webkit-linear-gradient(right,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-moz-linear-gradient(right,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-o-linear-gradient(right,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-right{background-image:-webkit-gradient(linear,right top,left top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,0)));background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-moz-linear-gradient(left,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-o-linear-gradient(left,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-top{background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,.5)),to(rgba(0,0,0,0)));background-image:-webkit-linear-gradient(bottom,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-moz-linear-gradient(bottom,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-o-linear-gradient(bottom,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-bottom{background-image:-webkit-gradient(linear,left bottom,left top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,0)));background-image:-webkit-linear-gradient(top,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-moz-linear-gradient(top,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-o-linear-gradient(top,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-coverflow .swiper-wrapper,.swiper-container-flip .swiper-wrapper{-ms-perspective:1200px}.swiper-container-cube,.swiper-container-flip{overflow:visible}.swiper-container-cube .swiper-slide,.swiper-container-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-container-cube .swiper-slide .swiper-slide,.swiper-container-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-active .swiper-slide-active,.swiper-container-flip .swiper-slide-active,.swiper-container-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-cube .swiper-slide-shadow-bottom,.swiper-container-cube .swiper-slide-shadow-left,.swiper-container-cube .swiper-slide-shadow-right,.swiper-container-cube .swiper-slide-shadow-top,.swiper-container-flip .swiper-slide-shadow-bottom,.swiper-container-flip .swiper-slide-shadow-left,.swiper-container-flip .swiper-slide-shadow-right,.swiper-container-flip .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden}.swiper-container-cube .swiper-slide{visibility:hidden;-webkit-transform-origin:0 0;-moz-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;width:100%;height:100%}.swiper-container-cube.swiper-container-rtl .swiper-slide{-webkit-transform-origin:100% 0;-moz-transform-origin:100% 0;-ms-transform-origin:100% 0;transform-origin:100% 0}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-next,.swiper-container-cube .swiper-slide-next+.swiper-slide,.swiper-container-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-container-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0;width:100%;height:100%;background:#000;opacity:.6;-webkit-filter:blur(50px);filter:blur(50px);z-index:0}.swiper-container-fade.swiper-container-free-mode .swiper-slide{-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-ms-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}.swiper-container-fade .swiper-slide{pointer-events:none;-webkit-transition-property:opacity;-moz-transition-property:opacity;-o-transition-property:opacity;transition-property:opacity}.swiper-container-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-fade .swiper-slide-active,.swiper-container-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-zoom-container{width:100%;height:100%;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-pack:center;-moz-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-moz-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;object-fit:contain}.swiper-scrollbar{border-radius:10px;position:relative;-ms-touch-action:none;background:rgba(0,0,0,.1)}.swiper-container-horizontal>.swiper-scrollbar{position:absolute;left:1%;bottom:3px;z-index:50;height:5px;width:98%}.swiper-container-vertical>.swiper-scrollbar{position:absolute;right:3px;top:1%;z-index:50;width:5px;height:98%}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:rgba(0,0,0,.5);border-radius:10px;left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;-webkit-transform-origin:50%;-moz-transform-origin:50%;transform-origin:50%;-webkit-animation:swiper-preloader-spin 1s steps(12,end) infinite;-moz-animation:swiper-preloader-spin 1s steps(12,end) infinite;animation:swiper-preloader-spin 1s steps(12,end) infinite}.swiper-lazy-preloader:after{display:block;content:"";width:100%;height:100%;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%236c6c6c'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");background-position:50%;-webkit-background-size:100%;background-size:100%;background-repeat:no-repeat}.swiper-lazy-preloader-white:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%23fff'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E")}@-webkit-keyframes swiper-preloader-spin{100%{-webkit-transform:rotate(360deg)}}@keyframes swiper-preloader-spin{100%{transform:rotate(360deg)}}
--------------------------------------------------------------------------------