├── .babelrc
├── .editorconfig
├── .eslintignore
├── .eslintrc.js
├── .gitignore
├── README.md
├── build
├── build.js
├── check-versions.js
├── dev-client.js
├── dev-server.js
├── utils.js
├── webpack.base.conf.js
├── webpack.dev.conf.js
└── webpack.prod.conf.js
├── config
├── dev.env.js
├── index.js
└── prod.env.js
├── data.json
├── demo
├── index.html
└── static
│ ├── css
│ ├── app.c5ca394b9ad8115aaccccf4a693d400a.css
│ └── app.c5ca394b9ad8115aaccccf4a693d400a.css.map
│ ├── img
│ └── mitugongzai.99d8881.png
│ └── js
│ ├── app.b5fcc98af3bedc9674f4.js
│ ├── app.b5fcc98af3bedc9674f4.js.map
│ ├── manifest.8659f724d6d5ef01e4d3.js
│ ├── manifest.8659f724d6d5ef01e4d3.js.map
│ ├── vendor.48225ddb19e40fbf0e01.js
│ └── vendor.48225ddb19e40fbf0e01.js.map
├── index.html
├── lib
├── swiper.css
├── swiper.js
└── util.js
├── package.json
├── src
├── App.vue
├── assets
│ └── logo.png
├── components
│ ├── cart
│ │ └── header.vue
│ ├── goods
│ │ ├── buyControl.vue
│ │ ├── detail.vue
│ │ └── img.vue
│ ├── index
│ │ ├── banner.vue
│ │ ├── body.vue
│ │ ├── footer.vue
│ │ ├── header.vue
│ │ ├── intelligenceGoods.vue
│ │ ├── menu.vue
│ │ ├── newGoods.vue
│ │ ├── newHomeGoods.vue
│ │ └── starGoods.vue
│ ├── loading.vue
│ └── model.vue
├── images
│ ├── loading.gif
│ ├── mi_load.png
│ ├── mitugongzai.png
│ └── svg
│ │ ├── back.svg
│ │ ├── back1.svg
│ │ ├── cart.svg
│ │ ├── footer_cart.svg
│ │ ├── footer_cart1.svg
│ │ ├── footer_home.svg
│ │ ├── footer_home1.svg
│ │ ├── footer_lei.svg
│ │ ├── footer_lei1.svg
│ │ ├── footer_me.svg
│ │ ├── footer_me1.svg
│ │ ├── home.svg
│ │ ├── mi.svg
│ │ ├── search.svg
│ │ └── search1.svg
├── main.js
└── views
│ ├── cart.vue
│ ├── goods.vue
│ └── index.vue
└── static
└── .gitkeep
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": ["es2015", "stage-2"],
3 | "plugins": ["transform-runtime"],
4 | "comments": false,
5 | "env": {
6 | "test": {
7 | "plugins": [ "istanbul" ]
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | charset = utf-8
5 | indent_style = space
6 | indent_size = 2
7 | end_of_line = lf
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
--------------------------------------------------------------------------------
/.eslintignore:
--------------------------------------------------------------------------------
1 | build/*.js
2 | config/*.js
3 |
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | root: true,
3 | parser: 'babel-eslint',
4 | parserOptions: {
5 | sourceType: 'module'
6 | },
7 | // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style
8 | extends: 'standard',
9 | // required to lint *.vue files
10 | plugins: [
11 | 'html'
12 | ],
13 | // add your custom rules here
14 | 'rules': {
15 | // allow paren-less arrow functions
16 | 'arrow-parens': 0,
17 | // allow async-await
18 | 'generator-star-spacing': 0,
19 | // allow debugger during development
20 | 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
21 | 'semi': ['error', 'always'],
22 | 'indent': 0
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules/
3 | dist/
4 | .idea/
5 | npm-debug.log
6 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # XiaoMi-Shop
2 |
3 | > 这是一个高仿小米商城的项目,会通过半年左右的时间逐步完善整个项目。本项目仅用于 Vue.js 实战项目的学习,不作为商业用途。
4 |
5 | # 2019-03-07日补充
6 |
7 | 首先谢谢大家的star和fork,也祝大家工作顺利,升职加薪。
8 |
9 | 这个项目是大概2年前这个时间开始的,主要是为了练习vue的写法及提高js能力。因为喜欢,所以想做的尽善尽美,从而完全一比一复制了当时的小米网,所以看起来还算精致,也获得了不少关注。本来打算尽量写的完善一点,所以列了个待完善的表,想逐步完善,可是随着能力的提升,再去完善这个项目几乎没有提升了,再加上工作确实也忙,需要学习的越来越多,所以今天决定:这个项目就此结束,不在维护了。大家可以移步学习别人的项目。
10 |
11 | 今天写这个说明的目的也是和那些关注过我的项目及和我学习过、讨论过问题的朋友们说声抱歉,因为确实有好多人在使用及学习本项目。截至目前,平均我每周都能收到2个多邮件,有寻求帮助的,有请教问题的,还有寻求合作的,时间允许的情况下,我都有认真回复过。从今天起,将不在回复了,后期关注度下降后会隐藏该项目。谢谢进来的朋友们!结束
12 |
13 | 附上一个我做的个人站点,有空可以去看看哦。https://beautifulboys.github.io/
14 |
15 | ## 项目地址
16 |
17 | 克隆项目用:https://github.com/beautifulBoys/vue-XiaoMi-Shop.git
18 |
19 | ## 写在前面
20 |
21 | 本项目所有用到的全部是目前前端最热门的技术 ! !
22 |
23 | 通过本项目的学习与研究,你可以初步掌握vue的基本用法,css预处理器(less)的用法,router(路由)的用法,还可以加深了解vue-cli(脚手架)的使用,webpack的使用,babel编译代码...等等。
24 |
25 | 前端变化莫测,学无止境。作者本人也在通过学习不断巩固和提高。如果你有极客精神,我们不妨一起进步。
26 |
27 |
28 | ## 项目预览
29 |
30 | 用Chrome浏览器 手机模式打开,或者拖拽让浏览器变窄效果更好。自己对比体验一下吧^-^
31 |
32 | [小米官方商城(web)](http://m.mi.com/)
33 |
34 | [小米商城 高仿版](https://beautifulboys.github.io/phone/mi/)
35 |
36 | 下载体验(下载demo文件夹,双击index.html即可查看)。
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 | ## 项目组成
46 |
47 | * vue.js 2.0
48 | * vue-cli
49 | * less
50 | * webpack
51 | * ES6
52 | * eslint
53 | * vue-router
54 | * npm
55 | * babel
56 |
57 | ## 将要实现功能
58 |
59 | 1. 首页的轮播图效果
60 | 2. header随scroll透明度变化 √
61 | 3. 首页banner图点击链接
62 | 4. 首页登录功能的实现
63 | 5. 首页底部编码实现 √
64 | 6. 商品详情页头部搜索功能
65 | 7. 详情页大图轮播的功能 √
66 | 8. 加入购物车动画
67 | 9. 购物车页面及功能 √
68 | 10. 页面切换动画
69 | 11. 图片列表的懒加载
70 |
71 | ## 项目安装及运行
72 |
73 | ``` bash
74 | # 安装项目依赖
75 | npm install
76 |
77 | # 启动服务 浏览器本地访问http://localhost:8081
78 | npm run dev
79 |
80 | # 编译打包
81 | npm run build
82 | ```
83 |
84 | ## 说明
85 |
86 | 本项目适合有一定vue基础的同学进阶学习,零基础也可以。
87 |
--------------------------------------------------------------------------------
/build/build.js:
--------------------------------------------------------------------------------
1 | // https://github.com/shelljs/shelljs
2 | require('./check-versions')()
3 | require('shelljs/global')
4 | env.NODE_ENV = 'production'
5 |
6 | var path = require('path')
7 | var config = require('../config')
8 | var ora = require('ora')
9 | var webpack = require('webpack')
10 | var webpackConfig = require('./webpack.prod.conf')
11 |
12 | console.log(
13 | ' Tip:\n' +
14 | ' Built files are meant to be served over an HTTP server.\n' +
15 | ' Opening index.html over file:// won\'t work.\n'
16 | )
17 |
18 | var spinner = ora('building for production...')
19 | spinner.start()
20 |
21 | var assetsPath = path.join(config.build.assetsRoot, config.build.assetsSubDirectory)
22 | rm('-rf', assetsPath)
23 | mkdir('-p', assetsPath)
24 | cp('-R', 'static/*', assetsPath)
25 |
26 | webpack(webpackConfig, function (err, stats) {
27 | spinner.stop()
28 | if (err) throw err
29 | process.stdout.write(stats.toString({
30 | colors: true,
31 | modules: false,
32 | children: false,
33 | chunks: false,
34 | chunkModules: false
35 | }) + '\n')
36 | })
37 |
--------------------------------------------------------------------------------
/build/check-versions.js:
--------------------------------------------------------------------------------
1 | var semver = require('semver')
2 | var chalk = require('chalk')
3 | var packageConfig = require('../package.json')
4 | var exec = function (cmd) {
5 | return require('child_process')
6 | .execSync(cmd).toString().trim()
7 | }
8 |
9 | var versionRequirements = [
10 | {
11 | name: 'node',
12 | currentVersion: semver.clean(process.version),
13 | versionRequirement: packageConfig.engines.node
14 | },
15 | {
16 | name: 'npm',
17 | currentVersion: exec('npm --version'),
18 | versionRequirement: packageConfig.engines.npm
19 | }
20 | ]
21 |
22 | module.exports = function () {
23 | var warnings = []
24 | for (var i = 0; i < versionRequirements.length; i++) {
25 | var mod = versionRequirements[i]
26 | if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) {
27 | warnings.push(mod.name + ': ' +
28 | chalk.red(mod.currentVersion) + ' should be ' +
29 | chalk.green(mod.versionRequirement)
30 | )
31 | }
32 | }
33 |
34 | if (warnings.length) {
35 | console.log('')
36 | console.log(chalk.yellow('To use this template, you must update following to modules:'))
37 | console.log()
38 | for (var i = 0; i < warnings.length; i++) {
39 | var warning = warnings[i]
40 | console.log(' ' + warning)
41 | }
42 | console.log()
43 | process.exit(1)
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/build/dev-client.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | require('eventsource-polyfill')
3 | var hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true')
4 |
5 | hotClient.subscribe(function (event) {
6 | if (event.action === 'reload') {
7 | window.location.reload()
8 | }
9 | })
10 |
--------------------------------------------------------------------------------
/build/dev-server.js:
--------------------------------------------------------------------------------
1 | require('./check-versions')()
2 | var config = require('../config')
3 | if (!process.env.NODE_ENV) process.env.NODE_ENV = JSON.parse(config.dev.env.NODE_ENV)
4 | var path = require('path')
5 | var express = require('express')
6 | var webpack = require('webpack')
7 | var proxyMiddleware = require('http-proxy-middleware')
8 | var webpackConfig = require('./webpack.dev.conf')
9 |
10 | // default port where dev server listens for incoming traffic
11 | var port = process.env.PORT || config.dev.port
12 | // Define HTTP proxies to your custom API backend
13 | // https://github.com/chimurai/http-proxy-middleware
14 | var proxyTable = config.dev.proxyTable
15 |
16 | var app = express()
17 | var compiler = webpack(webpackConfig)
18 |
19 | var devMiddleware = require('webpack-dev-middleware')(compiler, {
20 | publicPath: webpackConfig.output.publicPath,
21 | quiet: true
22 | })
23 |
24 | var hotMiddleware = require('webpack-hot-middleware')(compiler, {
25 | log: () => {}
26 | })
27 | // force page reload when html-webpack-plugin template changes
28 | compiler.plugin('compilation', function (compilation) {
29 | compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) {
30 | hotMiddleware.publish({ action: 'reload' })
31 | cb()
32 | })
33 | })
34 |
35 | // proxy api requests
36 | Object.keys(proxyTable).forEach(function (context) {
37 | var options = proxyTable[context]
38 | if (typeof options === 'string') {
39 | options = { target: options }
40 | }
41 | app.use(proxyMiddleware(context, options))
42 | })
43 |
44 | // handle fallback for HTML5 history API
45 | app.use(require('connect-history-api-fallback')())
46 |
47 | // serve webpack bundle output
48 | app.use(devMiddleware)
49 |
50 | // enable hot-reload and state-preserving
51 | // compilation error display
52 | app.use(hotMiddleware)
53 |
54 | // serve pure static assets
55 | var staticPath = path.posix.join(config.dev.assetsPublicPath, config.dev.assetsSubDirectory)
56 | app.use(staticPath, express.static('./static'))
57 |
58 | var uri = 'http://localhost:' + port
59 |
60 | devMiddleware.waitUntilValid(function () {
61 | console.log('> Listening at ' + uri + '\n')
62 | })
63 |
64 | module.exports = app.listen(port, function (err) {
65 | if (err) {
66 | console.log(err)
67 | return
68 | }
69 | })
70 |
--------------------------------------------------------------------------------
/build/utils.js:
--------------------------------------------------------------------------------
1 | var path = require('path')
2 | var config = require('../config')
3 | var ExtractTextPlugin = require('extract-text-webpack-plugin')
4 |
5 | exports.assetsPath = function (_path) {
6 | var assetsSubDirectory = process.env.NODE_ENV === 'production'
7 | ? config.build.assetsSubDirectory
8 | : config.dev.assetsSubDirectory
9 | return path.posix.join(assetsSubDirectory, _path)
10 | }
11 |
12 | exports.cssLoaders = function (options) {
13 | options = options || {}
14 | // generate loader string to be used with extract text plugin
15 | function generateLoaders (loaders) {
16 | var sourceLoader = loaders.map(function (loader) {
17 | var extraParamChar
18 | if (/\?/.test(loader)) {
19 | loader = loader.replace(/\?/, '-loader?')
20 | extraParamChar = '&'
21 | } else {
22 | loader = loader + '-loader'
23 | extraParamChar = '?'
24 | }
25 | return loader + (options.sourceMap ? extraParamChar + 'sourceMap' : '')
26 | }).join('!')
27 |
28 | // Extract CSS when that option is specified
29 | // (which is the case during production build)
30 | if (options.extract) {
31 | return ExtractTextPlugin.extract('vue-style-loader', sourceLoader)
32 | } else {
33 | return ['vue-style-loader', sourceLoader].join('!')
34 | }
35 | }
36 |
37 | // http://vuejs.github.io/vue-loader/en/configurations/extract-css.html
38 | return {
39 | css: generateLoaders(['css']),
40 | postcss: generateLoaders(['css']),
41 | less: generateLoaders(['css', 'less']),
42 | sass: generateLoaders(['css', 'sass?indentedSyntax']),
43 | scss: generateLoaders(['css', 'sass']),
44 | stylus: generateLoaders(['css', 'stylus']),
45 | styl: generateLoaders(['css', 'stylus'])
46 | }
47 | }
48 |
49 | // Generate loaders for standalone style files (outside of .vue)
50 | exports.styleLoaders = function (options) {
51 | var output = []
52 | var loaders = exports.cssLoaders(options)
53 | for (var extension in loaders) {
54 | var loader = loaders[extension]
55 | output.push({
56 | test: new RegExp('\\.' + extension + '$'),
57 | loader: loader
58 | })
59 | }
60 | return output
61 | }
62 |
--------------------------------------------------------------------------------
/build/webpack.base.conf.js:
--------------------------------------------------------------------------------
1 | var path = require('path');
2 | var config = require('../config');
3 | var utils = require('./utils');
4 | var projectRoot = path.resolve(__dirname, '../');
5 |
6 | var env = process.env.NODE_ENV;
7 | // check env & config/index.js to decide whether to enable CSS source maps for the
8 | // various preprocessor loaders added to vue-loader at the end of this file
9 | var cssSourceMapDev = (env === 'development' && config.dev.cssSourceMap);
10 | var cssSourceMapProd = (env === 'production' && config.build.productionSourceMap);
11 | var useCssSourceMap = cssSourceMapDev || cssSourceMapProd;
12 |
13 | module.exports = {
14 | entry: {
15 | app: './src/main.js'
16 | },
17 | output: {
18 | path: config.build.assetsRoot,
19 | publicPath: process.env.NODE_ENV === 'production' ? config.build.assetsPublicPath : config.dev.assetsPublicPath,
20 | filename: '[name].js'
21 | },
22 | resolve: {
23 | extensions: ['', '.js', '.vue', '.json'],
24 | fallback: [path.join(__dirname, '../node_modules')],
25 | alias: {
26 | 'vue$': 'vue/dist/vue.common.js',
27 | 'src': path.resolve(__dirname, '../src'),
28 | 'assets': path.resolve(__dirname, '../src/assets'),
29 | 'components': path.resolve(__dirname, '../src/components')
30 | }
31 | },
32 | devServer:{
33 | host:"192.168.175.103",
34 | filename: "index.js",
35 | publicPath: "/dist/",
36 | historyApiFallback:true,
37 | hot:true,
38 | inline:true,
39 | progress:true,
40 | console: true,
41 | stats: { colors: true }
42 | },
43 | resolveLoader: {
44 | fallback: [path.join(__dirname, '../node_modules')]
45 | },
46 | module: {
47 | preLoaders: [
48 | {
49 | test: /\.vue$/,
50 | loader: 'eslint',
51 | include: [
52 | path.join(projectRoot, 'src')
53 | ],
54 | exclude: /node_modules/
55 | },
56 | {
57 | test: /\.js$/,
58 | loader: 'eslint',
59 | include: [
60 | path.join(projectRoot, 'src')
61 | ],
62 | exclude: /node_modules/
63 | }
64 | ],
65 | loaders: [
66 | {
67 | test: /\.vue$/,
68 | loader: 'vue'
69 | },
70 | {
71 | test: /\.js$/,
72 | loader: 'babel',
73 | include: [
74 | path.join(projectRoot, 'src')
75 | ],
76 | exclude: /node_modules/
77 | },
78 | {
79 | test: /\.json$/,
80 | loader: 'json'
81 | },
82 | {
83 | test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
84 | loader: 'url',
85 | query: {
86 | limit: 10000,
87 | name: utils.assetsPath('img/[name].[hash:7].[ext]')
88 | }
89 | },
90 | {
91 | test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
92 | loader: 'url',
93 | query: {
94 | limit: 10000,
95 | name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
96 | }
97 | }
98 | ]
99 | },
100 | eslint: {
101 | formatter: require('eslint-friendly-formatter')
102 | },
103 | vue: {
104 | loaders: utils.cssLoaders({ sourceMap: useCssSourceMap }),
105 | postcss: [
106 | require('autoprefixer')({
107 | browsers: ['last 2 versions']
108 | })
109 | ]
110 | }
111 | };
112 |
--------------------------------------------------------------------------------
/build/webpack.dev.conf.js:
--------------------------------------------------------------------------------
1 | var config = require('../config')
2 | var webpack = require('webpack')
3 | var merge = require('webpack-merge')
4 | var utils = require('./utils')
5 | var baseWebpackConfig = require('./webpack.base.conf')
6 | var HtmlWebpackPlugin = require('html-webpack-plugin')
7 | var FriendlyErrors = require('friendly-errors-webpack-plugin')
8 |
9 | // add hot-reload related code to entry chunks
10 | Object.keys(baseWebpackConfig.entry).forEach(function (name) {
11 | baseWebpackConfig.entry[name] = ['./build/dev-client'].concat(baseWebpackConfig.entry[name])
12 | })
13 |
14 | module.exports = merge(baseWebpackConfig, {
15 | module: {
16 | loaders: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap })
17 | },
18 | // eval-source-map is faster for development
19 | devtool: '#eval-source-map',
20 | plugins: [
21 | new webpack.DefinePlugin({
22 | 'process.env': config.dev.env
23 | }),
24 | // https://github.com/glenjamin/webpack-hot-middleware#installation--usage
25 | new webpack.optimize.OccurrenceOrderPlugin(),
26 | new webpack.HotModuleReplacementPlugin(),
27 | new webpack.NoErrorsPlugin(),
28 | // https://github.com/ampedandwired/html-webpack-plugin
29 | new HtmlWebpackPlugin({
30 | filename: 'index.html',
31 | template: 'index.html',
32 | inject: true
33 | }),
34 | new FriendlyErrors()
35 | ]
36 | })
37 |
--------------------------------------------------------------------------------
/build/webpack.prod.conf.js:
--------------------------------------------------------------------------------
1 | var path = require('path')
2 | var config = require('../config')
3 | var utils = require('./utils')
4 | var webpack = require('webpack')
5 | var merge = require('webpack-merge')
6 | var baseWebpackConfig = require('./webpack.base.conf')
7 | var ExtractTextPlugin = require('extract-text-webpack-plugin')
8 | var HtmlWebpackPlugin = require('html-webpack-plugin')
9 | var env = config.build.env
10 |
11 | var webpackConfig = merge(baseWebpackConfig, {
12 | module: {
13 | loaders: utils.styleLoaders({ sourceMap: config.build.productionSourceMap, extract: true })
14 | },
15 | devtool: config.build.productionSourceMap ? '#source-map' : false,
16 | output: {
17 | path: config.build.assetsRoot,
18 | filename: utils.assetsPath('js/[name].[chunkhash].js'),
19 | chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')
20 | },
21 | vue: {
22 | loaders: utils.cssLoaders({
23 | sourceMap: config.build.productionSourceMap,
24 | extract: true
25 | })
26 | },
27 | plugins: [
28 | // http://vuejs.github.io/vue-loader/en/workflow/production.html
29 | new webpack.DefinePlugin({
30 | 'process.env': env
31 | }),
32 | new webpack.optimize.UglifyJsPlugin({
33 | compress: {
34 | warnings: false
35 | }
36 | }),
37 | new webpack.optimize.OccurrenceOrderPlugin(),
38 | // extract css into its own file
39 | new ExtractTextPlugin(utils.assetsPath('css/[name].[contenthash].css')),
40 | // generate dist index.html with correct asset hash for caching.
41 | // you can customize output by editing /index.html
42 | // see https://github.com/ampedandwired/html-webpack-plugin
43 | new HtmlWebpackPlugin({
44 | filename: config.build.index,
45 | template: 'index.html',
46 | inject: true,
47 | minify: {
48 | removeComments: true,
49 | collapseWhitespace: true,
50 | removeAttributeQuotes: true
51 | // more options:
52 | // https://github.com/kangax/html-minifier#options-quick-reference
53 | },
54 | // necessary to consistently work with multiple chunks via CommonsChunkPlugin
55 | chunksSortMode: 'dependency'
56 | }),
57 | // split vendor js into its own file
58 | new webpack.optimize.CommonsChunkPlugin({
59 | name: 'vendor',
60 | minChunks: function (module, count) {
61 | // any required modules inside node_modules are extracted to vendor
62 | return (
63 | module.resource &&
64 | /\.js$/.test(module.resource) &&
65 | module.resource.indexOf(
66 | path.join(__dirname, '../node_modules')
67 | ) === 0
68 | )
69 | }
70 | }),
71 | // extract webpack runtime and module manifest to its own file in order to
72 | // prevent vendor hash from being updated whenever app bundle is updated
73 | new webpack.optimize.CommonsChunkPlugin({
74 | name: 'manifest',
75 | chunks: ['vendor']
76 | })
77 | ]
78 | })
79 |
80 | if (config.build.productionGzip) {
81 | var CompressionWebpackPlugin = require('compression-webpack-plugin')
82 |
83 | webpackConfig.plugins.push(
84 | new CompressionWebpackPlugin({
85 | asset: '[path].gz[query]',
86 | algorithm: 'gzip',
87 | test: new RegExp(
88 | '\\.(' +
89 | config.build.productionGzipExtensions.join('|') +
90 | ')$'
91 | ),
92 | threshold: 10240,
93 | minRatio: 0.8
94 | })
95 | )
96 | }
97 |
98 | module.exports = webpackConfig
99 |
--------------------------------------------------------------------------------
/config/dev.env.js:
--------------------------------------------------------------------------------
1 | var merge = require('webpack-merge')
2 | var prodEnv = require('./prod.env')
3 |
4 | module.exports = merge(prodEnv, {
5 | NODE_ENV: '"development"'
6 | })
7 |
--------------------------------------------------------------------------------
/config/index.js:
--------------------------------------------------------------------------------
1 | // see http://vuejs-templates.github.io/webpack for documentation.
2 | var path = require('path')
3 |
4 | module.exports = {
5 | build: {
6 | env: require('./prod.env'),
7 | index: path.resolve(__dirname, '../dist/index.html'),
8 | assetsRoot: path.resolve(__dirname, '../dist'),
9 | assetsSubDirectory: 'static',
10 | assetsPublicPath: './',
11 | productionSourceMap: true,
12 | // Gzip off by default as many popular static hosts such as
13 | // Surge or Netlify already gzip all static assets for you.
14 | // Before setting to `true`, make sure to:
15 | // npm install --save-dev compression-webpack-plugin
16 | productionGzip: false,
17 | productionGzipExtensions: ['js', 'css']
18 | },
19 | dev: {
20 | env: require('./dev.env'),
21 | port: 8081,
22 | assetsSubDirectory: 'static',
23 | assetsPublicPath: '/',
24 | proxyTable: {},
25 | // CSS Sourcemaps off by default because relative paths are "buggy"
26 | // with this option, according to the CSS-Loader README
27 | // (https://github.com/webpack/css-loader#sourcemaps)
28 | // In our experience, they generally work as expected,
29 | // just be aware of this issue when enabling this option.
30 | cssSourceMap: false
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/config/prod.env.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | NODE_ENV: '"production"'
3 | }
4 |
--------------------------------------------------------------------------------
/data.json:
--------------------------------------------------------------------------------
1 | {
2 | "banner": {
3 | "bannerTop": [
4 | "https://i8.mifile.cn/v1/a1/45e7752a-192a-c2b2-3978-a43ccfc49de0.webp",
5 | "https://i8.mifile.cn/v1/a1/89a33760-240c-e5e2-50ff-b8a864a2aba5.webp",
6 | "https://i8.mifile.cn/v1/a1/2e1d1dc6-536e-933b-df99-428343fdf62c.webp"
7 | ],
8 | "img1": "https://i8.mifile.cn/v1/a1/89a33760-240c-e5e2-50ff-b8a864a2aba5.webp",
9 | "img2": "https://i8.mifile.cn/v1/a1/f6225781-335e-1d31-a99f-760977c18c65.webp?width=720&heihgt=200"
10 | },
11 | "menu": {
12 | "img1": "https://i8.mifile.cn/v1/a1/6bc707a3-927e-ebcd-3c7a-1e91d6f793aa.webp?width=360&heihgt=513",
13 | "img2": "https://i8.mifile.cn/v1/a1/bb2a27db-0433-47dc-b55c-c36b81fa7e41.webp?width=360&heihgt=256",
14 | "img3": "https://i8.mifile.cn/v1/a1/1fbd6d1f-05bf-f22e-cba8-250dfade437d.webp?width=360&heihgt=256"
15 | },
16 | "starGoods": {
17 | "img": "https://i8.mifile.cn/v1/a1/6ee55dad-dadc-79d4-1c37-d1694c088d40.webp?width=720&heihgt=440",
18 | "starGoodsList": [
19 | {
20 | "imgSrc": "https://i8.mifile.cn/v1/a1/03d1e94c-b0ed-9a22-70d7-cc6cbd90ec79.webp?width=360&height=360",
21 | "title": "红米Note 4 移动定制版",
22 | "desc": "全金属十核旗舰手机",
23 | "price": 1199,
24 | "rom": "64G",
25 | "color": "樱花粉"
26 | },
27 | {
28 | "imgSrc": "https://i8.mifile.cn/v1/a1/ecb64c5e-9741-1535-dab6-28d47e2b0d10.webp?width=360&height=360",
29 | "title": "红米4 32G版",
30 | "desc": "长续航金属千元旗舰手机",
31 | "price": 899,
32 | "rom": "64G",
33 | "color": "樱花粉"
34 | },
35 | {
36 | "imgSrc": "https://i8.mifile.cn/v1/a1/97c2e91e-523e-3988-3abc-aacc824f2737.webp?width=360&height=360",
37 | "title": "小米手环2",
38 | "desc": "OLED显示屏,触摸操作",
39 | "price": 149,
40 | "rom": "64G",
41 | "color": "樱花粉"
42 | },
43 | {
44 | "imgSrc": "https://i8.mifile.cn/v1/a1/6f19ca85-2326-8e80-0ecc-16134c33a89b.webp?width=360&height=360",
45 | "title": "小米净水器(厨下式)",
46 | "desc": "健康家庭必备",
47 | "price": 1999,
48 | "rom": "64G",
49 | "color": "樱花粉"
50 | },
51 | {
52 | "imgSrc": "https://i8.mifile.cn/v1/a1/22f1a143-59fc-fc88-ced9-4f6edf5f4f6e.webp?width=360&height=360",
53 | "title": "米家小白智能摄像头",
54 | "desc": "360度 全景带夜视",
55 | "price": 399,
56 | "rom": "64G",
57 | "color": "樱花粉"
58 | },
59 | {
60 | "imgSrc": "https://i8.mifile.cn/v1/a1/fd88c85e-d74f-1002-61d0-e001fbb02cf6.webp?width=360&height=360",
61 | "title": "米家恒温电水壶",
62 | "desc": "一杯水的温度,刚刚好",
63 | "price": 199,
64 | "rom": "64G",
65 | "color": "樱花粉"
66 | }
67 | ]
68 | },
69 | "newGoods": {
70 | "img": "https://i8.mifile.cn/v1/a1/5e7d9b5b-3e6a-3720-7ea2-50f92aad856c.webp?width=720&heihgt=440",
71 | "newGoodsList": [
72 | {
73 | "imgSrc": "https://i8.mifile.cn/v1/a1/38f1fa24-815b-c6a6-925f-65460ce541e4.webp?width=360&height=360",
74 | "title": "小米USB充电器",
75 | "desc": "精致小巧,便携出行",
76 | "price": 49
77 | },
78 | {
79 | "imgSrc": "https://i8.mifile.cn/v1/a1/9f7e141c-87a7-82c6-7170-599504ce2630.webp?width=360&height=360",
80 | "title": "小米便携鼠标",
81 | "desc": "轻薄便携,含电池仅重77.5g",
82 | "price": 99
83 | },
84 | {
85 | "imgSrc": "https://i8.mifile.cn/v1/a1/a4c8c780-acbd-23c7-6ae2-f1abe5e5d34d.webp?width=360&height=360",
86 | "title": "WIFI放大器 2",
87 | "desc": "速率翻倍 覆盖无忧",
88 | "price": 49
89 | },
90 | {
91 | "imgSrc": "https://i8.mifile.cn/v1/a1/21763033-81c2-8cc5-f012-ae1616059ce9.webp?width=360&height=360",
92 | "title": "小米移动电源2",
93 | "desc": "便携轻便,出行无忧",
94 | "price": 149
95 | },
96 | {
97 | "imgSrc": "https://i8.mifile.cn/v1/a1/f935b1a8-92e9-22d6-7c6c-c602b33fd750.webp?width=360&height=360",
98 | "title": "防雾霾口罩",
99 | "desc": "PM2.5颗粒物,健康防护",
100 | "price": 69
101 | },
102 | {
103 | "imgSrc": "https://i8.mifile.cn/v1/a1/1fd7f261-1d68-784e-a1f7-17384d00dc1d.webp?width=360&height=360",
104 | "title": "小米米家电动滑板车",
105 | "desc": "便携折叠,自由穿行",
106 | "price": 1999
107 | }
108 | ]
109 | },
110 | "intelligenceGoods": {
111 | "img": "https://i8.mifile.cn/v1/a1/41e31ea6-a34e-69d4-aba3-a9ec2cf2f802.webp?width=720&heihgt=440",
112 | "intelligenceGoodsList": [
113 | {
114 | "imgSrc": "https://i8.mifile.cn/v1/a1/97c2e91e-523e-3988-3abc-aacc824f2737.webp?width=360&height=360",
115 | "title": "小米手环2",
116 | "desc": "OLED显示屏,触摸操作",
117 | "price": 149
118 | },
119 | {
120 | "imgSrc": "https://i8.mifile.cn/v1/a1/1ef4e430-b65a-2655-791a-680a49668005.webp?width=360&height=360",
121 | "title": "小米移动电源2",
122 | "desc": "双向快充,仅14.1mm薄",
123 | "price": 79
124 | },
125 | {
126 | "imgSrc": "https://i8.mifile.cn/v1/a1/5f78e5ba-cd16-0c67-3784-c64651596f94.webp?width=360&height=360",
127 | "title": "米加扫地机器人",
128 | "desc": "智商高,扫的干净扫的快",
129 | "price": 1699
130 | },
131 | {
132 | "imgSrc": "https://i8.mifile.cn/v1/a1/24a3df8b-415c-a7df-96b6-a125d9e91746.webp?width=360&height=360",
133 | "title": "小米路由器3",
134 | "desc": "全向高增益4天线",
135 | "price": 149
136 | }
137 | ]
138 | },
139 | "newHomeGoods": {
140 | "img": "https://i8.mifile.cn/v1/a1/e70cee4f-e1fd-0f0b-8d3b-e695d0b42323.webp",
141 | "newHomeGoodsList": [
142 | {
143 | "imgSrc": "https://i8.mifile.cn/v1/a1/03d1e94c-b0ed-9a22-70d7-cc6cbd90ec79.webp?width=360&height=360",
144 | "title": "红米Note 4 移动定制版",
145 | "desc": "全金属十核旗舰手机",
146 | "price": 1199
147 | },
148 | {
149 | "imgSrc": "https://i8.mifile.cn/v1/a1/ecb64c5e-9741-1535-dab6-28d47e2b0d10.webp?width=360&height=360",
150 | "title": "红米4 32G版",
151 | "desc": "长续航金属千元旗舰手机",
152 | "price": 899
153 | },
154 | {
155 | "imgSrc": "https://i8.mifile.cn/v1/a1/97c2e91e-523e-3988-3abc-aacc824f2737.webp?width=360&height=360",
156 | "title": "小米手环2",
157 | "desc": "OLED显示屏,触摸操作",
158 | "price": 149
159 | },
160 | {
161 | "imgSrc": "https://i8.mifile.cn/v1/a1/6f19ca85-2326-8e80-0ecc-16134c33a89b.webp?width=360&height=360",
162 | "title": "小米净水器(厨下式)",
163 | "desc": "健康家庭必备",
164 | "price": 1999
165 | },
166 | {
167 | "imgSrc": "https://i8.mifile.cn/v1/a1/22f1a143-59fc-fc88-ced9-4f6edf5f4f6e.webp?width=360&height=360",
168 | "title": "米家小白智能摄像头",
169 | "desc": "360度 全景带夜视",
170 | "price": 399
171 | },
172 | {
173 | "imgSrc": "https://i8.mifile.cn/v1/a1/fd88c85e-d74f-1002-61d0-e001fbb02cf6.webp?width=360&height=360",
174 | "title": "米家恒温电水壶",
175 | "desc": "一杯水的温度,刚刚好",
176 | "price": 199
177 | },
178 | {
179 | "imgSrc": "https://i8.mifile.cn/v1/a1/38f1fa24-815b-c6a6-925f-65460ce541e4.webp?width=360&height=360",
180 | "title": "小米USB充电器",
181 | "desc": "精致小巧,便携出行",
182 | "price": 49
183 | },
184 | {
185 | "imgSrc": "https://i8.mifile.cn/v1/a1/9f7e141c-87a7-82c6-7170-599504ce2630.webp?width=360&height=360",
186 | "title": "小米便携鼠标",
187 | "desc": "轻薄便携,含电池仅重77.5g",
188 | "price": 99
189 | },
190 | {
191 | "imgSrc": "https://i8.mifile.cn/v1/a1/a4c8c780-acbd-23c7-6ae2-f1abe5e5d34d.webp?width=360&height=360",
192 | "title": "WIFI放大器 2",
193 | "desc": "速率翻倍 覆盖无忧",
194 | "price": 49
195 | },
196 | {
197 | "imgSrc": "https://i8.mifile.cn/v1/a1/21763033-81c2-8cc5-f012-ae1616059ce9.webp?width=360&height=360",
198 | "title": "小米移动电源2",
199 | "desc": "便携轻便,出行无忧",
200 | "price": 149
201 | },
202 | {
203 | "imgSrc": "https://i8.mifile.cn/v1/a1/f935b1a8-92e9-22d6-7c6c-c602b33fd750.webp?width=360&height=360",
204 | "title": "防雾霾口罩",
205 | "desc": "PM2.5颗粒物,健康防护",
206 | "price": 69
207 | },
208 | {
209 | "imgSrc": "https://i8.mifile.cn/v1/a1/1fd7f261-1d68-784e-a1f7-17384d00dc1d.webp?width=360&height=360",
210 | "title": "小米米家电动滑板车",
211 | "desc": "便携折叠,自由穿行",
212 | "price": 1999
213 | }
214 | ]
215 | },
216 | "detail": {
217 | "img": [
218 | "https://i8.mifile.cn/v1/a1/8264fcff-a5db-6d74-cfc2-aa0ea8d6805a.webp",
219 | "https://i8.mifile.cn/v1/a1/02437ee9-f6e6-0f81-71b5-61333c1822d4.webp",
220 | "https://i8.mifile.cn/v1/a1/754a3bb3-14aa-1dc1-c8f2-fd12a22cd64e.webp"
221 | ],
222 | "detailList": [
223 | "https://i8.mifile.cn/v1/a1/5700ba33-8b7c-bb14-b6fe-258d6309993d.webp",
224 | "https://i8.mifile.cn/v1/a1/a43e9125-59b3-6dd2-6d2b-587d5614e2d4.webp",
225 | "https://i8.mifile.cn/v1/a1/123ff16a-2064-5a5f-66ff-c967836afa23.webp",
226 | "https://i8.mifile.cn/v1/a1/158832b9-89b4-901e-b30d-59c42190b9ad.webp",
227 | "https://i8.mifile.cn/v1/a1/a6bb656f-27c4-695e-483a-44b087d246c8.webp",
228 | "https://i8.mifile.cn/v1/a1/a807d8bd-10ea-c4b9-d2c4-5e31685cb04d.webp",
229 | "https://i8.mifile.cn/v1/a1/a4946495-1afb-25bd-c1a7-e4c6197d50d9.webp",
230 | "https://i8.mifile.cn/v1/a1/cf8400fd-8d7c-1d10-0459-d0186b61a2a4.webp",
231 | "https://i8.mifile.cn/v1/a1/7a779a78-9fd9-e87c-5473-2e710e894bdc.webp",
232 | "https://i8.mifile.cn/v1/a1/608e27b2-6725-73c7-c4bb-86a75a3336a4.webp",
233 | "https://i8.mifile.cn/v1/a1/48504beb-6f3b-3c0c-f38e-fe30e3ff6d37.webp",
234 | "https://i8.mifile.cn/v1/a1/c1040e71-7a3c-e4f9-1c7e-d35690798fc7.webp",
235 | "https://i8.mifile.cn/v1/a1/4dc17959-3cfb-ca3a-8c2c-0941f12a7912.webp",
236 | "https://i8.mifile.cn/v1/a1/63a1f9ba-2e16-3f83-38f0-de07ef2108b5.webp",
237 | "https://i8.mifile.cn/v1/a1/51749d01-d7a6-3d9a-937c-fc982966291c.webp",
238 | "https://i8.mifile.cn/v1/a1/192a4869-8857-39fd-3a2d-b01f2669e2ce.webp",
239 | "https://i8.mifile.cn/v1/a1/2fd53659-9251-9781-6124-7ebe7bc18e4f.webp",
240 | "https://i8.mifile.cn/v1/a1/6d6bfd8d-da13-d707-9a72-15710c4b1364.webp",
241 | "https://i8.mifile.cn/v1/a1/5b8eb8a7-4a04-fe77-91a1-7664d0207a28.webp",
242 | "https://i8.mifile.cn/v1/a1/b35fc2b3-329a-eab1-74b2-8ab955cbd374.webp",
243 | "https://i8.mifile.cn/v1/a1/0bac064d-9098-fe37-5ce7-42fceba83160.webp",
244 | "https://i8.mifile.cn/v1/a1/e6aa6506-6571-25a4-0b40-cbfe57baf1a6.webp",
245 | "https://i8.mifile.cn/v1/a1/9d770dbd-2023-26c6-b672-6a15eec764ef.webp",
246 | "https://i8.mifile.cn/v1/a1/aad5f5c5-147e-46eb-22e7-6827c7f65164.webp",
247 | "https://i8.mifile.cn/v1/a1/476e16c0-13db-49d6-9570-3fe20f2dc3d9.webp",
248 | "https://i8.mifile.cn/v1/a1/e7c40d54-2a6e-f293-3561-dc01be915eab.webp",
249 | "https://i8.mifile.cn/v1/a1/760291fd-7657-4711-302a-7021cccca134.webp",
250 | "https://i8.mifile.cn/v1/a1/9fa77a3f-f778-eb32-3e4f-d588c927788f.webp",
251 | "https://i8.mifile.cn/v1/a1/501d8a62-2d0a-2016-f225-cd6073b555d5.webp"
252 | ],
253 | "attrList": [
254 | "https://i8.mifile.cn/v1/a1/b842a9b2-a9b9-39a2-3b83-ec05d8f2d5b3.webp",
255 | "https://i8.mifile.cn/v1/a1/8201d243-8591-26f0-ee06-e73bb118712d.webp",
256 | "https://i8.mifile.cn/v1/a1/df69a034-4c4f-fef5-fa2a-32f62458d5e2.webp",
257 | "https://i8.mifile.cn/v1/a1/0554258d-85b3-8169-86d7-3d3c9a605cf8.webp",
258 | "https://i8.mifile.cn/v1/a1/f394c0ef-aa3d-ce9e-9529-d1a7cbe27202.webp",
259 | "https://i8.mifile.cn/v1/a1/1137f0f8-1a7b-c81c-8b80-a60137e3999f.webp",
260 | "https://i8.mifile.cn/v1/a1/76788e58-4c4d-f878-7e3a-8732cd658f76.webp",
261 | "https://i8.mifile.cn/v1/a1/4d8fb225-17db-7d59-f580-53462f0a69d7.webp",
262 | "https://i8.mifile.cn/v1/a1/0da47b1d-cfbe-4369-b6e9-50f1dd610bc5.webp",
263 | "https://i8.mifile.cn/v1/a1/f02cfbb5-d362-5c74-b7a5-7729c6cb75d3.webp",
264 | "https://i8.mifile.cn/v1/a1/4a796142-f064-51e2-cddb-882aee93b838.webp",
265 | "https://i8.mifile.cn/v1/a1/76346306-832d-6d37-71ab-29702fbeff82.webp",
266 | "https://i8.mifile.cn/v1/a1/e864c3de-0a8a-0c37-8eaf-b69f789b49c2.webp",
267 | "https://i8.mifile.cn/v1/a1/83c5d6da-6988-704f-dcb3-b34b9d2a75e7.webp",
268 | "https://i8.mifile.cn/v1/a1/f2472fce-7af0-c7b0-d357-a081edd07de6.webp"
269 | ],
270 | "goodsAttr": {
271 | "title": "红米Note 4 移动定制版 64GB版 金色",
272 | "price": 1199,
273 | "desc": {
274 | "tag": "全网通双卡双待",
275 | "sc": "Helio X20 十核旗舰处理器 / 全金属一体化机身 / 4100mAh 大电量"
276 | },
277 | "attr": {
278 | "color": [
279 | {
280 | "id": 0,
281 | "text": "天空灰"
282 | },
283 | {
284 | "id": 1,
285 | "text": "玫瑰金"
286 | },
287 | {
288 | "id": 2,
289 | "text": "钻石蓝"
290 | }
291 | ],
292 | "ram": [
293 | {
294 | "id": 0,
295 | "text": "16GB"
296 | },
297 | {
298 | "id": 1,
299 | "text": "32GB"
300 | },
301 | {
302 | "id": 2,
303 | "text": "64GB"
304 | }
305 | ]
306 | }
307 | }
308 | },
309 | "searchImg": "https://cdn.cnbj0.fds.api.mi-img.com/b2c-mimall-media/a425e85fa21ed71c2a8d64fe86f833f9.jpg?width=720&heihgt=200"
310 | }
311 |
--------------------------------------------------------------------------------
/demo/index.html:
--------------------------------------------------------------------------------
1 | 小米-手机版
--------------------------------------------------------------------------------
/demo/static/css/app.c5ca394b9ad8115aaccccf4a693d400a.css.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":["webpack:///webpack:///src/components/index/index.vue","webpack:///webpack:///src/components/loading.vue","webpack:///webpack:///src/components/index/header.vue","webpack:///webpack:///src/components/index/banner.vue","webpack:///webpack:///src/components/index/menu.vue","webpack:///webpack:///src/components/index/body.vue","webpack:///webpack:///src/components/index/starGoods.vue","webpack:///webpack:///src/components/index/newGoods.vue","webpack:///webpack:///src/components/index/intelligenceGoods.vue","webpack:///webpack:///src/components/index/newHomeGoods.vue","webpack:///webpack:///src/components/index/footer.vue","webpack:///webpack:///src/components/goods/goods.vue","webpack:///webpack:///lib/swiper.css","webpack:///webpack:///src/components/goods/img.vue","webpack:///webpack:///src/components/goods/buyControl.vue","webpack:///webpack:///src/components/goods/detail.vue","webpack:///webpack:///src/components/model.vue","webpack:///webpack:///src/components/test/test.vue"],"names":[],"mappings":"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","file":"static/css/app.c5ca394b9ad8115aaccccf4a693d400a.css","sourcesContent":["\n.app[data-v-197b45e3]{background:#fff;overflow-y:scroll;width:100%;height:100%\n}\n.banner-img[data-v-197b45e3]{width:100%\n}\n.banner-img img[data-v-197b45e3]{width:100%\n}\n\n\n// WEBPACK FOOTER //\n// webpack:///src/components/index/index.vue","\n.base{width:100%;height:100%;position:fixed;z-index:200;display:block\n}\n.load-once{background:#F87300 url(../images/mi_load.png) no-repeat center center;background-size:80px;opacity:1;transition:all .5s\n}\n.load-once.remove{opacity:0\n}\n.load{background:url(../images/mi_load.png) no-repeat center center;background-size:80px;opacity:1\n}\n.fade-enter-active,.fade-leave-active{transition:opacity .5s\n}\n.fade-enter,.fade-leave-to{opacity:0\n}\n\n\n// WEBPACK FOOTER //\n// webpack:///src/components/loading.vue","\n.screen[data-v-61e3d24c]{width:100%;height:100%;background:#fff;display:block;position:fixed;top:0;left:0;overflow:hidden\n}\n.absolute100[data-v-61e3d24c]{width:100%;height:100%;position:absolute;top:0;left:0\n}\n.main[data-v-61e3d24c]{width:100%;margin:40px 0 0 0\n}\n.main .title[data-v-61e3d24c]{line-height:40px;font-size:12px;color:#333;text-indent:20px\n}\n.main img[data-v-61e3d24c]{width:100%\n}\n.main ul[data-v-61e3d24c]{padding:0 10px\n}\n.main ul li[data-v-61e3d24c]{list-style-type:none;font-size:12px;padding:8px 10px;margin:5px;display:inline-block;background:#F8F2EC;border:1px solid #FAC288\n}\n.top[data-v-61e3d24c]{font-family:\"Microsoft YaHei\";width:100%;height:40px;font-size:0;position:fixed;color:#fff\n}\n.top .main-head[data-v-61e3d24c]{width:100%;height:100%;position:absolute;top:0;left:0\n}\n.top .bg[data-v-61e3d24c]{width:100%;height:100%;position:absolute;top:0;left:0;background:#ff6700\n}\n.top .bg1[data-v-61e3d24c]{width:100%;height:100%;position:absolute;top:0;left:0;background:#efefef\n}\n.top.focus[data-v-61e3d24c]{background:#f5f5f5;color:#888\n}\n.top .left[data-v-61e3d24c]{width:15%;line-height:40px;font-size:0;text-align:center;display:inline-block\n}\n.top .left.logo[data-v-61e3d24c]{width:15%;height:40px;background:url(\"../../images/svg/mi.svg\") no-repeat center center;background-size:30px\n}\n.top .left.back[data-v-61e3d24c]{width:15%;height:40px;background:url(\"../../images/svg/back.svg\") no-repeat center center;background-size:20px\n}\n.top .headIcon[data-v-61e3d24c]{height:30px;width:30px\n}\n.top .center[data-v-61e3d24c]{width:70%;font-size:16px;display:inline-block;vertical-align:top\n}\n.top .center input[data-v-61e3d24c]{width:100%;line-height:30px;height:30px;background:#fff;border:none;padding:0;margin:5px 0 0 0;outline:none;text-indent:10px\n}\n.top .center input.border[data-v-61e3d24c]{box-sizing:border-box;border:1px solid #dedede\n}\n.top .right[data-v-61e3d24c]{width:15%;font-size:16px;display:inline-block;line-height:40px;text-align:center;margin:-1px 0 0 0;vertical-align:top;padding:0\n}\n.top .right.search[data-v-61e3d24c]{width:15%;height:40px;background:url(\"../../images/svg/search.svg\") no-repeat center center;background-size:20px\n}\n\n\n// WEBPACK FOOTER //\n// webpack:///src/components/index/header.vue","\n.banner-box[data-v-a2f1f12a]{width:100%;font-size:0\n}\n.banner-box .banner-img[data-v-a2f1f12a]{width:100%\n}\n.banner-box .banner-img img[data-v-a2f1f12a]{width:100%\n}\n.banner-box .bottom[data-v-a2f1f12a]{width:100%\n}\n.banner-box .bottom img[data-v-a2f1f12a]{width:100%\n}\n\n\n// WEBPACK FOOTER //\n// webpack:///src/components/index/banner.vue","\n.img100 img[data-v-28a509de]{width:100%\n}\n.menu-box[data-v-28a509de]{width:100%;font-size:0\n}\n.menu-box .menu[data-v-28a509de]{overflow:hidden\n}\n.menu-box .menu .left[data-v-28a509de]{width:50%;float:left\n}\n.menu-box .menu .left img[data-v-28a509de]{width:100%\n}\n.menu-box .menu .right[data-v-28a509de]{width:50%;float:right\n}\n.menu-box .menu .right img[data-v-28a509de]{width:100%\n}\n\n\n// WEBPACK FOOTER //\n// webpack:///src/components/index/menu.vue","\n.body-box[data-v-9bc356be]{background:#f5f5f5\n}\n\n\n// WEBPACK FOOTER //\n// webpack:///src/components/index/body.vue","\n.item-bottom .bottom[data-v-55c583b5]{width:100%;display:block;padding:5px 10px;box-sizing:border-box;font-size:14px\n}\n.item-bottom .bottom .title[data-v-55c583b5]{width:100%;display:block;color:#333;line-height:25px\n}\n.item-bottom .bottom .desc[data-v-55c583b5]{width:100%;display:block;color:#666;font-size:12px\n}\n.item-bottom .bottom .price[data-v-55c583b5]{width:100%;display:block;font-size:14px;color:#ff601e;line-height:20px\n}\n.img100 img[data-v-55c583b5]{width:100%\n}\n.star-box[data-v-55c583b5]{margin-top:2px;overflow:hidden;width:100%;background:#fff;font-family:\"Microsoft Yahei\"\n}\n.star-box .starBanner[data-v-55c583b5]{padding-top:7px;width:100%;font-size:0;border-bottom:2px solid #fff\n}\n.star-box .starBanner img[data-v-55c583b5]{width:100%\n}\n.star-box .item1[data-v-55c583b5]{width:50%;float:left;box-sizing:border-box;border-right:1px solid #fff;font-size:0\n}\n.star-box .item1 .top[data-v-55c583b5]{width:100%\n}\n.star-box .item1 .top img[data-v-55c583b5]{width:100%\n}\n.star-box .item1 .bottom[data-v-55c583b5]{width:100%;display:block;padding:5px 10px;box-sizing:border-box;font-size:14px\n}\n.star-box .item1 .bottom .title[data-v-55c583b5]{width:100%;display:block;color:#333;line-height:25px\n}\n.star-box .item1 .bottom .desc[data-v-55c583b5]{width:100%;display:block;color:#666;font-size:12px\n}\n.star-box .item1 .bottom .price[data-v-55c583b5]{width:100%;display:block;font-size:14px;color:#ff601e;line-height:20px\n}\n.star-box .item2[data-v-55c583b5]{width:50%;float:right;box-sizing:border-box;border-left:1px solid #fff;font-size:0\n}\n.star-box .item2 .bottom[data-v-55c583b5]{width:100%;display:block;padding:5px 10px;box-sizing:border-box;font-size:14px\n}\n.star-box .item2 .bottom .title[data-v-55c583b5]{width:100%;display:block;color:#333;line-height:25px\n}\n.star-box .item2 .bottom .desc[data-v-55c583b5]{width:100%;display:block;color:#666;font-size:12px\n}\n.star-box .item2 .bottom .price[data-v-55c583b5]{width:100%;display:block;font-size:14px;color:#ff601e;line-height:20px\n}\n.star-box .item2 .top[data-v-55c583b5]{width:100%\n}\n.star-box .item2 .top img[data-v-55c583b5]{width:100%\n}\n\n\n// WEBPACK FOOTER //\n// webpack:///src/components/index/starGoods.vue","\n.item-bottom .bottom[data-v-b63411d6]{width:100%;display:block;padding:5px 10px;box-sizing:border-box;font-size:14px\n}\n.item-bottom .bottom .title[data-v-b63411d6]{width:100%;display:block;color:#333;line-height:25px\n}\n.item-bottom .bottom .desc[data-v-b63411d6]{width:100%;display:block;color:#666;font-size:12px\n}\n.item-bottom .bottom .price[data-v-b63411d6]{width:100%;display:block;font-size:14px;color:#ff601e;line-height:20px\n}\n.img100 img[data-v-b63411d6]{width:100%\n}\n.new-box[data-v-b63411d6]{margin-top:10px;overflow:hidden;width:100%;background:#fff;font-family:\"Microsoft Yahei\"\n}\n.new-box .newGoodsBanner[data-v-b63411d6]{padding-top:7px;width:100%;font-size:0;border-bottom:2px solid #fff\n}\n.new-box .newGoodsBanner img[data-v-b63411d6]{width:100%\n}\n.new-box .item1[data-v-b63411d6]{width:50%;float:left;box-sizing:border-box;border-right:1px solid #fff;font-size:0\n}\n.new-box .item1 .top[data-v-b63411d6]{width:100%\n}\n.new-box .item1 .top img[data-v-b63411d6]{width:100%\n}\n.new-box .item1 .bottom[data-v-b63411d6]{width:100%;display:block;padding:5px 10px;box-sizing:border-box;font-size:14px\n}\n.new-box .item1 .bottom .title[data-v-b63411d6]{width:100%;display:block;color:#333;line-height:25px\n}\n.new-box .item1 .bottom .desc[data-v-b63411d6]{width:100%;display:block;color:#666;font-size:12px\n}\n.new-box .item1 .bottom .price[data-v-b63411d6]{width:100%;display:block;font-size:14px;color:#ff601e;line-height:20px\n}\n.new-box .item2[data-v-b63411d6]{width:50%;float:right;box-sizing:border-box;border-left:1px solid #fff;font-size:0\n}\n.new-box .item2 .top[data-v-b63411d6]{width:100%\n}\n.new-box .item2 .top img[data-v-b63411d6]{width:100%\n}\n.new-box .item2 .bottom[data-v-b63411d6]{width:100%;display:block;padding:5px 10px;box-sizing:border-box;font-size:14px\n}\n.new-box .item2 .bottom .title[data-v-b63411d6]{width:100%;display:block;color:#333;line-height:25px\n}\n.new-box .item2 .bottom .desc[data-v-b63411d6]{width:100%;display:block;color:#666;font-size:12px\n}\n.new-box .item2 .bottom .price[data-v-b63411d6]{width:100%;display:block;font-size:14px;color:#ff601e;line-height:20px\n}\n\n\n// WEBPACK FOOTER //\n// webpack:///src/components/index/newGoods.vue","\n.item-bottom .bottom[data-v-5fe92ce8]{width:100%;display:block;padding:5px 10px;box-sizing:border-box;font-size:14px\n}\n.item-bottom .bottom .title[data-v-5fe92ce8]{width:100%;display:block;color:#333;line-height:25px\n}\n.item-bottom .bottom .desc[data-v-5fe92ce8]{width:100%;display:block;color:#666;font-size:12px\n}\n.item-bottom .bottom .price[data-v-5fe92ce8]{width:100%;display:block;font-size:14px;color:#ff601e;line-height:20px\n}\n.img100 img[data-v-5fe92ce8]{width:100%\n}\n.intelligence-box[data-v-5fe92ce8]{margin-top:10px;overflow:hidden;width:100%;background:#fff;font-family:\"Microsoft Yahei\"\n}\n.intelligence-box .intelligenceGoodsBanner[data-v-5fe92ce8]{padding-top:7px;width:100%;font-size:0;border-bottom:2px solid #fff\n}\n.intelligence-box .intelligenceGoodsBanner img[data-v-5fe92ce8]{width:100%\n}\n.intelligence-box .item1[data-v-5fe92ce8]{width:50%;float:left;box-sizing:border-box;border-right:1px solid #fff;font-size:0\n}\n.intelligence-box .item1 .top[data-v-5fe92ce8]{width:100%\n}\n.intelligence-box .item1 .top img[data-v-5fe92ce8]{width:100%\n}\n.intelligence-box .item1 .bottom[data-v-5fe92ce8]{width:100%;display:block;padding:5px 10px;box-sizing:border-box;font-size:14px\n}\n.intelligence-box .item1 .bottom .title[data-v-5fe92ce8]{width:100%;display:block;color:#333;line-height:25px\n}\n.intelligence-box .item1 .bottom .desc[data-v-5fe92ce8]{width:100%;display:block;color:#666;font-size:12px\n}\n.intelligence-box .item1 .bottom .price[data-v-5fe92ce8]{width:100%;display:block;font-size:14px;color:#ff601e;line-height:20px\n}\n.intelligence-box .item2[data-v-5fe92ce8]{width:50%;float:right;box-sizing:border-box;border-left:1px solid #fff;font-size:0\n}\n.intelligence-box .item2 .top[data-v-5fe92ce8]{width:100%\n}\n.intelligence-box .item2 .top img[data-v-5fe92ce8]{width:100%\n}\n.intelligence-box .item2 .bottom[data-v-5fe92ce8]{width:100%;display:block;padding:5px 10px;box-sizing:border-box;font-size:14px\n}\n.intelligence-box .item2 .bottom .title[data-v-5fe92ce8]{width:100%;display:block;color:#333;line-height:25px\n}\n.intelligence-box .item2 .bottom .desc[data-v-5fe92ce8]{width:100%;display:block;color:#666;font-size:12px\n}\n.intelligence-box .item2 .bottom .price[data-v-5fe92ce8]{width:100%;display:block;font-size:14px;color:#ff601e;line-height:20px\n}\n\n\n// WEBPACK FOOTER //\n// webpack:///src/components/index/intelligenceGoods.vue","\n.item-bottom .bottom[data-v-5334c176]{width:100%;display:block;padding:5px 10px;box-sizing:border-box;font-size:14px\n}\n.item-bottom .bottom .title[data-v-5334c176]{width:100%;display:block;color:#333;line-height:25px\n}\n.item-bottom .bottom .desc[data-v-5334c176]{width:100%;display:block;color:#666;font-size:12px\n}\n.item-bottom .bottom .price[data-v-5334c176]{width:100%;display:block;font-size:14px;color:#ff601e;line-height:20px\n}\n.img100 img[data-v-5334c176]{width:100%\n}\n.new-box[data-v-5334c176]{margin-top:10px;overflow:hidden;width:100%;background:#fff;font-family:\"Microsoft Yahei\"\n}\n.new-box .newHomeGoodsBanner[data-v-5334c176]{width:100%;font-size:0;border-bottom:2px solid #fff\n}\n.new-box .newHomeGoodsBanner img[data-v-5334c176]{width:100%\n}\n.new-box .item1[data-v-5334c176]{width:50%;float:left;box-sizing:border-box;border-right:1px solid #fff;font-size:0\n}\n.new-box .item1 .top[data-v-5334c176]{width:100%\n}\n.new-box .item1 .top img[data-v-5334c176]{width:100%\n}\n.new-box .item1 .bottom[data-v-5334c176]{width:100%;display:block;padding:5px 10px;box-sizing:border-box;font-size:14px\n}\n.new-box .item1 .bottom .title[data-v-5334c176]{width:100%;display:block;color:#333;line-height:25px\n}\n.new-box .item1 .bottom .desc[data-v-5334c176]{width:100%;display:block;color:#666;font-size:12px\n}\n.new-box .item1 .bottom .price[data-v-5334c176]{width:100%;display:block;font-size:14px;color:#ff601e;line-height:20px\n}\n.new-box .item2[data-v-5334c176]{width:50%;float:right;box-sizing:border-box;border-left:1px solid #fff;font-size:0\n}\n.new-box .item2 .top[data-v-5334c176]{width:100%\n}\n.new-box .item2 .top img[data-v-5334c176]{width:100%\n}\n.new-box .item2 .bottom[data-v-5334c176]{width:100%;display:block;padding:5px 10px;box-sizing:border-box;font-size:14px\n}\n.new-box .item2 .bottom .title[data-v-5334c176]{width:100%;display:block;color:#333;line-height:25px\n}\n.new-box .item2 .bottom .desc[data-v-5334c176]{width:100%;display:block;color:#666;font-size:12px\n}\n.new-box .item2 .bottom .price[data-v-5334c176]{width:100%;display:block;font-size:14px;color:#ff601e;line-height:20px\n}\n\n\n// WEBPACK FOOTER //\n// webpack:///src/components/index/newHomeGoods.vue","\n.footer[data-v-40b16e5a]{display:-ms-flexbox;display:flex;height:50px;position:fixed;bottom:0;width:100%;border-top:1px solid #ddd;background:#fff\n}\n.footer .item[data-v-40b16e5a]{width:100%;height:100%;line-height:75px;color:#888;font-size:12px;text-align:center\n}\n.footer .item.icon1[data-v-40b16e5a]{background:url(\"../../images/svg/footer_home1.svg\") no-repeat center 25%;background-size:20px\n}\n.footer .item.icon11[data-v-40b16e5a]{color:#ff6700;background:url(\"../../images/svg/footer_home.svg\") no-repeat center 25%;background-size:20px\n}\n.footer .item.icon2[data-v-40b16e5a]{background:url(\"../../images/svg/footer_lei1.svg\") no-repeat center 25%;background-size:20px\n}\n.footer .item.icon22[data-v-40b16e5a]{color:#ff6700;background:url(\"../../images/svg/footer_lei.svg\") no-repeat center 25%;background-size:20px\n}\n.footer .item.icon3[data-v-40b16e5a]{background:url(\"../../images/svg/footer_cart1.svg\") no-repeat center 25%;background-size:20px\n}\n.footer .item.icon33[data-v-40b16e5a]{color:#ff6700;background:url(\"../../images/svg/footer_cart.svg\") no-repeat center 25%;background-size:20px\n}\n.footer .item.icon4[data-v-40b16e5a]{background:url(\"../../images/svg/footer_me1.svg\") no-repeat center 25%;background-size:20px\n}\n.footer .item.icon44[data-v-40b16e5a]{color:#ff6700;background:url(\"../../images/svg/footer_me.svg\") no-repeat center 25%;background-size:20px\n}\n\n\n// WEBPACK FOOTER //\n// webpack:///src/components/index/footer.vue","\n.wripper{font-family:\"Microsoft YaHei\"\n}\n.wripper .addCart{width:100%;height:50px;background:#fff;position:fixed;bottom:0;left:0;font-size:0;border-top:1px solid #efefef\n}\n.wripper .addCart div{text-align:center;line-height:50px;display:inline-block;font-size:0;overflow:hidden;height:50px\n}\n.wripper .addCart div.home{width:15%;color:#333;background:url(\"../../images/svg/home.svg\") no-repeat center center;background-size:25px\n}\n.wripper .addCart div.cart{width:15%;color:#333;background:url(\"../../images/svg/cart.svg\") no-repeat center center;background-size:25px\n}\n.wripper .addCart div.add{width:70%;color:#fff;height:50px\n}\n.wripper .addCart div.add span{text-align:center;line-height:40px;background:#FF5722;width:94%;height:40px;display:block;margin:5px auto 0 auto;font-size:16px\n}\n.alert h5{margin:5px;text-align:center;font-weight:normal;color:#333;font-size:16px\n}\n.alert h6{margin:10px;color:#ff8a27;font-size:14px;font-weight:normal\n}\n.alert p{line-height:25px;font-size:14px;margin:5px;color:#666\n}\n\n\n// WEBPACK FOOTER //\n// webpack:///src/components/goods/goods.vue","/**\n * Swiper 3.4.1\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * \n * http://www.idangero.us/swiper/\n * \n * Copyright 2016, Vladimir Kharlampidi\n * The iDangero.us\n * http://www.idangero.us/\n * \n * Licensed under MIT\n * \n * Released on: December 13, 2016\n */\n.swiper-container {\n margin-left: auto;\n margin-right: auto;\n position: relative;\n overflow: hidden;\n /* Fix of Webkit flickering */\n z-index: 1;\n}\n.swiper-container-no-flexbox .swiper-slide {\n float: left;\n}\n.swiper-container-vertical > .swiper-wrapper {\n -webkit-box-orient: vertical;\n -moz-box-orient: vertical;\n -ms-flex-direction: column;\n -webkit-flex-direction: column;\n flex-direction: column;\n}\n.swiper-wrapper {\n position: relative;\n width: 100%;\n height: 100%;\n z-index: 1;\n display: -webkit-box;\n display: -moz-box;\n display: -ms-flexbox;\n display: -webkit-flex;\n display: flex;\n -webkit-transition-property: -webkit-transform;\n -moz-transition-property: -moz-transform;\n -o-transition-property: -o-transform;\n -ms-transition-property: -ms-transform;\n transition-property: transform;\n -webkit-box-sizing: content-box;\n -moz-box-sizing: content-box;\n box-sizing: content-box;\n}\n.swiper-container-android .swiper-slide,\n.swiper-wrapper {\n -webkit-transform: translate3d(0px, 0, 0);\n -moz-transform: translate3d(0px, 0, 0);\n -o-transform: translate(0px, 0px);\n -ms-transform: translate3d(0px, 0, 0);\n transform: translate3d(0px, 0, 0);\n}\n.swiper-container-multirow > .swiper-wrapper {\n -webkit-box-lines: multiple;\n -moz-box-lines: multiple;\n -ms-flex-wrap: wrap;\n -webkit-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n.swiper-container-free-mode > .swiper-wrapper {\n -webkit-transition-timing-function: ease-out;\n -moz-transition-timing-function: ease-out;\n -ms-transition-timing-function: ease-out;\n -o-transition-timing-function: ease-out;\n transition-timing-function: ease-out;\n margin: 0 auto;\n}\n.swiper-slide {\n -webkit-flex-shrink: 0;\n -ms-flex: 0 0 auto;\n flex-shrink: 0;\n width: 100%;\n height: 100%;\n position: relative;\n}\n/* Auto Height */\n.swiper-container-autoheight,\n.swiper-container-autoheight .swiper-slide {\n height: auto;\n}\n.swiper-container-autoheight .swiper-wrapper {\n -webkit-box-align: start;\n -ms-flex-align: start;\n -webkit-align-items: flex-start;\n align-items: flex-start;\n -webkit-transition-property: -webkit-transform, height;\n -moz-transition-property: -moz-transform;\n -o-transition-property: -o-transform;\n -ms-transition-property: -ms-transform;\n transition-property: transform, height;\n}\n/* a11y */\n.swiper-container .swiper-notification {\n position: absolute;\n left: 0;\n top: 0;\n pointer-events: none;\n opacity: 0;\n z-index: -1000;\n}\n/* IE10 Windows Phone 8 Fixes */\n.swiper-wp8-horizontal {\n -ms-touch-action: pan-y;\n touch-action: pan-y;\n}\n.swiper-wp8-vertical {\n -ms-touch-action: pan-x;\n touch-action: pan-x;\n}\n/* Arrows */\n.swiper-button-prev,\n.swiper-button-next {\n position: absolute;\n top: 50%;\n width: 27px;\n height: 44px;\n margin-top: -22px;\n z-index: 10;\n cursor: pointer;\n -moz-background-size: 27px 44px;\n -webkit-background-size: 27px 44px;\n background-size: 27px 44px;\n background-position: center;\n background-repeat: no-repeat;\n}\n.swiper-button-prev.swiper-button-disabled,\n.swiper-button-next.swiper-button-disabled {\n opacity: 0.35;\n cursor: auto;\n pointer-events: none;\n}\n.swiper-button-prev,\n.swiper-container-rtl .swiper-button-next {\n 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\");\n left: 10px;\n right: auto;\n}\n.swiper-button-prev.swiper-button-black,\n.swiper-container-rtl .swiper-button-next.swiper-button-black {\n 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\");\n}\n.swiper-button-prev.swiper-button-white,\n.swiper-container-rtl .swiper-button-next.swiper-button-white {\n 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\");\n}\n.swiper-button-next,\n.swiper-container-rtl .swiper-button-prev {\n 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\");\n right: 10px;\n left: auto;\n}\n.swiper-button-next.swiper-button-black,\n.swiper-container-rtl .swiper-button-prev.swiper-button-black {\n 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\");\n}\n.swiper-button-next.swiper-button-white,\n.swiper-container-rtl .swiper-button-prev.swiper-button-white {\n 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\");\n}\n/* Pagination Styles */\n.swiper-pagination {\n position: absolute;\n text-align: center;\n -webkit-transition: 300ms;\n -moz-transition: 300ms;\n -o-transition: 300ms;\n transition: 300ms;\n -webkit-transform: translate3d(0, 0, 0);\n -ms-transform: translate3d(0, 0, 0);\n -o-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n z-index: 10;\n}\n.swiper-pagination.swiper-pagination-hidden {\n opacity: 0;\n}\n/* Common Styles */\n.swiper-pagination-fraction,\n.swiper-pagination-custom,\n.swiper-container-horizontal > .swiper-pagination-bullets {\n bottom: 10px;\n left: 0;\n width: 100%;\n}\n/* Bullets */\n.swiper-pagination-bullet {\n width: 8px;\n height: 8px;\n display: inline-block;\n border-radius: 100%;\n background: #000;\n opacity: 0.2;\n}\nbutton.swiper-pagination-bullet {\n border: none;\n margin: 0;\n padding: 0;\n box-shadow: none;\n -moz-appearance: none;\n -ms-appearance: none;\n -webkit-appearance: none;\n appearance: none;\n}\n.swiper-pagination-clickable .swiper-pagination-bullet {\n cursor: pointer;\n}\n.swiper-pagination-white .swiper-pagination-bullet {\n background: #fff;\n}\n.swiper-pagination-bullet-active {\n opacity: 1;\n background: #007aff;\n}\n.swiper-pagination-white .swiper-pagination-bullet-active {\n background: #fff;\n}\n.swiper-pagination-black .swiper-pagination-bullet-active {\n background: #000;\n}\n.swiper-container-vertical > .swiper-pagination-bullets {\n right: 10px;\n top: 50%;\n -webkit-transform: translate3d(0px, -50%, 0);\n -moz-transform: translate3d(0px, -50%, 0);\n -o-transform: translate(0px, -50%);\n -ms-transform: translate3d(0px, -50%, 0);\n transform: translate3d(0px, -50%, 0);\n}\n.swiper-container-vertical > .swiper-pagination-bullets .swiper-pagination-bullet {\n margin: 5px 0;\n display: block;\n}\n.swiper-container-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet {\n margin: 0 5px;\n}\n/* Progress */\n.swiper-pagination-progress {\n background: rgba(0, 0, 0, 0.25);\n position: absolute;\n}\n.swiper-pagination-progress .swiper-pagination-progressbar {\n background: #007aff;\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n -webkit-transform: scale(0);\n -ms-transform: scale(0);\n -o-transform: scale(0);\n transform: scale(0);\n -webkit-transform-origin: left top;\n -moz-transform-origin: left top;\n -ms-transform-origin: left top;\n -o-transform-origin: left top;\n transform-origin: left top;\n}\n.swiper-container-rtl .swiper-pagination-progress .swiper-pagination-progressbar {\n -webkit-transform-origin: right top;\n -moz-transform-origin: right top;\n -ms-transform-origin: right top;\n -o-transform-origin: right top;\n transform-origin: right top;\n}\n.swiper-container-horizontal > .swiper-pagination-progress {\n width: 100%;\n height: 4px;\n left: 0;\n top: 0;\n}\n.swiper-container-vertical > .swiper-pagination-progress {\n width: 4px;\n height: 100%;\n left: 0;\n top: 0;\n}\n.swiper-pagination-progress.swiper-pagination-white {\n background: rgba(255, 255, 255, 0.5);\n}\n.swiper-pagination-progress.swiper-pagination-white .swiper-pagination-progressbar {\n background: #fff;\n}\n.swiper-pagination-progress.swiper-pagination-black .swiper-pagination-progressbar {\n background: #000;\n}\n/* 3D Container */\n.swiper-container-3d {\n -webkit-perspective: 1200px;\n -moz-perspective: 1200px;\n -o-perspective: 1200px;\n perspective: 1200px;\n}\n.swiper-container-3d .swiper-wrapper,\n.swiper-container-3d .swiper-slide,\n.swiper-container-3d .swiper-slide-shadow-left,\n.swiper-container-3d .swiper-slide-shadow-right,\n.swiper-container-3d .swiper-slide-shadow-top,\n.swiper-container-3d .swiper-slide-shadow-bottom,\n.swiper-container-3d .swiper-cube-shadow {\n -webkit-transform-style: preserve-3d;\n -moz-transform-style: preserve-3d;\n -ms-transform-style: preserve-3d;\n transform-style: preserve-3d;\n}\n.swiper-container-3d .swiper-slide-shadow-left,\n.swiper-container-3d .swiper-slide-shadow-right,\n.swiper-container-3d .swiper-slide-shadow-top,\n.swiper-container-3d .swiper-slide-shadow-bottom {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n z-index: 10;\n}\n.swiper-container-3d .swiper-slide-shadow-left {\n background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));\n /* Safari 4+, Chrome */\n background-image: -webkit-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n /* Chrome 10+, Safari 5.1+, iOS 5+ */\n background-image: -moz-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n /* Firefox 3.6-15 */\n background-image: -o-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n /* Opera 11.10-12.00 */\n background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n /* Firefox 16+, IE10, Opera 12.50+ */\n}\n.swiper-container-3d .swiper-slide-shadow-right {\n background-image: -webkit-gradient(linear, right top, left top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));\n /* Safari 4+, Chrome */\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n /* Chrome 10+, Safari 5.1+, iOS 5+ */\n background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n /* Firefox 3.6-15 */\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n /* Opera 11.10-12.00 */\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n /* Firefox 16+, IE10, Opera 12.50+ */\n}\n.swiper-container-3d .swiper-slide-shadow-top {\n background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));\n /* Safari 4+, Chrome */\n background-image: -webkit-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n /* Chrome 10+, Safari 5.1+, iOS 5+ */\n background-image: -moz-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n /* Firefox 3.6-15 */\n background-image: -o-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n /* Opera 11.10-12.00 */\n background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n /* Firefox 16+, IE10, Opera 12.50+ */\n}\n.swiper-container-3d .swiper-slide-shadow-bottom {\n background-image: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));\n /* Safari 4+, Chrome */\n background-image: -webkit-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n /* Chrome 10+, Safari 5.1+, iOS 5+ */\n background-image: -moz-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n /* Firefox 3.6-15 */\n background-image: -o-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n /* Opera 11.10-12.00 */\n background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n /* Firefox 16+, IE10, Opera 12.50+ */\n}\n/* Coverflow */\n.swiper-container-coverflow .swiper-wrapper,\n.swiper-container-flip .swiper-wrapper {\n /* Windows 8 IE 10 fix */\n -ms-perspective: 1200px;\n}\n/* Cube + Flip */\n.swiper-container-cube,\n.swiper-container-flip {\n overflow: visible;\n}\n.swiper-container-cube .swiper-slide,\n.swiper-container-flip .swiper-slide {\n pointer-events: none;\n -webkit-backface-visibility: hidden;\n -moz-backface-visibility: hidden;\n -ms-backface-visibility: hidden;\n backface-visibility: hidden;\n z-index: 1;\n}\n.swiper-container-cube .swiper-slide .swiper-slide,\n.swiper-container-flip .swiper-slide .swiper-slide {\n pointer-events: none;\n}\n.swiper-container-cube .swiper-slide-active,\n.swiper-container-flip .swiper-slide-active,\n.swiper-container-cube .swiper-slide-active .swiper-slide-active,\n.swiper-container-flip .swiper-slide-active .swiper-slide-active {\n pointer-events: auto;\n}\n.swiper-container-cube .swiper-slide-shadow-top,\n.swiper-container-flip .swiper-slide-shadow-top,\n.swiper-container-cube .swiper-slide-shadow-bottom,\n.swiper-container-flip .swiper-slide-shadow-bottom,\n.swiper-container-cube .swiper-slide-shadow-left,\n.swiper-container-flip .swiper-slide-shadow-left,\n.swiper-container-cube .swiper-slide-shadow-right,\n.swiper-container-flip .swiper-slide-shadow-right {\n z-index: 0;\n -webkit-backface-visibility: hidden;\n -moz-backface-visibility: hidden;\n -ms-backface-visibility: hidden;\n backface-visibility: hidden;\n}\n/* Cube */\n.swiper-container-cube .swiper-slide {\n visibility: hidden;\n -webkit-transform-origin: 0 0;\n -moz-transform-origin: 0 0;\n -ms-transform-origin: 0 0;\n transform-origin: 0 0;\n width: 100%;\n height: 100%;\n}\n.swiper-container-cube.swiper-container-rtl .swiper-slide {\n -webkit-transform-origin: 100% 0;\n -moz-transform-origin: 100% 0;\n -ms-transform-origin: 100% 0;\n transform-origin: 100% 0;\n}\n.swiper-container-cube .swiper-slide-active,\n.swiper-container-cube .swiper-slide-next,\n.swiper-container-cube .swiper-slide-prev,\n.swiper-container-cube .swiper-slide-next + .swiper-slide {\n pointer-events: auto;\n visibility: visible;\n}\n.swiper-container-cube .swiper-cube-shadow {\n position: absolute;\n left: 0;\n bottom: 0px;\n width: 100%;\n height: 100%;\n background: #000;\n opacity: 0.6;\n -webkit-filter: blur(50px);\n filter: blur(50px);\n z-index: 0;\n}\n/* Fade */\n.swiper-container-fade.swiper-container-free-mode .swiper-slide {\n -webkit-transition-timing-function: ease-out;\n -moz-transition-timing-function: ease-out;\n -ms-transition-timing-function: ease-out;\n -o-transition-timing-function: ease-out;\n transition-timing-function: ease-out;\n}\n.swiper-container-fade .swiper-slide {\n pointer-events: none;\n -webkit-transition-property: opacity;\n -moz-transition-property: opacity;\n -o-transition-property: opacity;\n transition-property: opacity;\n}\n.swiper-container-fade .swiper-slide .swiper-slide {\n pointer-events: none;\n}\n.swiper-container-fade .swiper-slide-active,\n.swiper-container-fade .swiper-slide-active .swiper-slide-active {\n pointer-events: auto;\n}\n.swiper-zoom-container {\n width: 100%;\n height: 100%;\n display: -webkit-box;\n display: -moz-box;\n display: -ms-flexbox;\n display: -webkit-flex;\n display: flex;\n -webkit-box-pack: center;\n -moz-box-pack: center;\n -ms-flex-pack: center;\n -webkit-justify-content: center;\n justify-content: center;\n -webkit-box-align: center;\n -moz-box-align: center;\n -ms-flex-align: center;\n -webkit-align-items: center;\n align-items: center;\n text-align: center;\n}\n.swiper-zoom-container > img,\n.swiper-zoom-container > svg,\n.swiper-zoom-container > canvas {\n max-width: 100%;\n max-height: 100%;\n object-fit: contain;\n}\n/* Scrollbar */\n.swiper-scrollbar {\n border-radius: 10px;\n position: relative;\n -ms-touch-action: none;\n background: rgba(0, 0, 0, 0.1);\n}\n.swiper-container-horizontal > .swiper-scrollbar {\n position: absolute;\n left: 1%;\n bottom: 3px;\n z-index: 50;\n height: 5px;\n width: 98%;\n}\n.swiper-container-vertical > .swiper-scrollbar {\n position: absolute;\n right: 3px;\n top: 1%;\n z-index: 50;\n width: 5px;\n height: 98%;\n}\n.swiper-scrollbar-drag {\n height: 100%;\n width: 100%;\n position: relative;\n background: rgba(0, 0, 0, 0.5);\n border-radius: 10px;\n left: 0;\n top: 0;\n}\n.swiper-scrollbar-cursor-drag {\n cursor: move;\n}\n/* Preloader */\n.swiper-lazy-preloader {\n width: 42px;\n height: 42px;\n position: absolute;\n left: 50%;\n top: 50%;\n margin-left: -21px;\n margin-top: -21px;\n z-index: 10;\n -webkit-transform-origin: 50%;\n -moz-transform-origin: 50%;\n transform-origin: 50%;\n -webkit-animation: swiper-preloader-spin 1s steps(12, end) infinite;\n -moz-animation: swiper-preloader-spin 1s steps(12, end) infinite;\n animation: swiper-preloader-spin 1s steps(12, end) infinite;\n}\n.swiper-lazy-preloader:after {\n display: block;\n content: \"\";\n width: 100%;\n height: 100%;\n 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\");\n background-position: 50%;\n -webkit-background-size: 100%;\n background-size: 100%;\n background-repeat: no-repeat;\n}\n.swiper-lazy-preloader-white:after {\n 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\");\n}\n@-webkit-keyframes swiper-preloader-spin {\n 100% {\n -webkit-transform: rotate(360deg);\n }\n}\n@keyframes swiper-preloader-spin {\n 100% {\n transform: rotate(360deg);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///lib/swiper.css","\n.swiper-pagination-bullet-active {\n background: #ff8b0f;\n}\n\n\n\n// WEBPACK FOOTER //\n// webpack:///src/components/goods/img.vue","\n.buy-control{width:100%;background:#fff;box-sizing:border-box;padding:10px;border-top:1px solid #ddd;font-family:'Microsoft YaHei'\n}\n.buy-control .title{line-height:25px;font-size:15px\n}\n.buy-control .price{font-size:16px;color:#FF5722;line-height:25px\n}\n.buy-control .desc{color:#999;font-size:12px\n}\n.buy-control .desc .tag{color:#FF5722\n}\n.buy-control .attr{width:100%;padding:10px 0 0 0\n}\n.buy-control .attr ul{width:100%;padding:0;margin:0\n}\n.buy-control .attr ul li{list-style-type:none;font-size:12px;border:1px solid #bbb;padding:6px 10px;margin:5px;display:inline-block\n}\n.buy-control .attr ul li.active{border:1px solid #ff5722;color:#ff5722\n}\n\n\n// WEBPACK FOOTER //\n// webpack:///src/components/goods/buyControl.vue","\n.tab{font-family:'Microsoft YaHei';width:100%;font-size:0;height:45px;box-sizing:border-box;background:#fff;border-top:1px solid #d5d5d5\n}\n.tab span{font-size:16px;color:#333;margin-top:6px;width:50%;box-sizing:border-box;text-align:center;line-height:30px;display:inline-block\n}\n.tab span:first-child{border-right:1px solid #d5d5d5\n}\n.tab span.active{color:#ff5722\n}\n.detail,.attr{width:100%;font-size:0\n}\n.detail img,.attr img{width:100%\n}\n\n\n// WEBPACK FOOTER //\n// webpack:///src/components/goods/detail.vue","\n.screen1[data-v-5a539637]{width:100%;height:100%;background:rgba(0,0,0,0.5);position:fixed;top:0;left:0;transition:opacity .3s ease;z-index:1000\n}\n.screen1 .model-box[data-v-5a539637]{display:table;width:100%;height:100%;font-family:\"微软雅黑\"\n}\n.screen1 .model-box .model[data-v-5a539637]{vertical-align:middle;display:table-cell;text-align:center\n}\n.screen1 .model-box .model .main[data-v-5a539637]{display:inline-block;text-align:left;width:70%;transition:all .3s ease\n}\n.screen1 .model-box .model .main .pop[data-v-5a539637]{background:#fff\n}\n.screen1 .model-box .model .main .pop .head[data-v-5a539637]{width:100%;background:green\n}\n.screen1 .model-box .model .main .pop .head .close[data-v-5a539637]{width:30px;height:30px;float:right;margin:10px;cursor:pointer;font-size:25px;line-height:30px;color:#fff;font-family:Arial;opacity:.6\n}\n.screen1 .model-box .model .main .pop .head .close[data-v-5a539637]:active{opacity:1\n}\n.screen1 .model-box .model .main .pop .head .title[data-v-5a539637]{width:100%;line-height:50px;color:#fff;font-size:16px;text-align:center;padding-left:30px\n}\n.screen1 .model-box .model .main .alert[data-v-5a539637]{width:100%;display:block;border-radius:10px;background:#fff\n}\n.screen1 .model-box .model .main .alert .top[data-v-5a539637]{width:92%;padding:15px 4%\n}\n.screen1 .model-box .model .main .alert .bottom[data-v-5a539637]{width:100%;height:45px\n}\n.screen1 .model-box .model .main .alert .bottom button[data-v-5a539637]{width:100%;height:100%;background:#fff;border:none;border-top:1px solid #56aeb0;font-size:17px;color:#108d93;border-radius:0 0 10px 10px;font-family:\"微软雅黑\";outline:none\n}\n.screen1 .model-box .model .main .alert .bottom button[data-v-5a539637]:active{transition:background .2s ease;background:#ddd\n}\n.screen1 .model-box .model .main .confirm[data-v-5a539637]{width:100%;display:block;border-radius:10px;background:#fff\n}\n.screen1 .model-box .model .main .confirm .top[data-v-5a539637]{width:92%;padding:15px 4%\n}\n.screen1 .model-box .model .main .confirm .bottom[data-v-5a539637]{width:100%;height:45px\n}\n.screen1 .model-box .model .main .confirm .bottom button[data-v-5a539637]{width:50%;height:100%;background:#fff;border:1px solid #ddd;float:left;font-size:16px;color:#333;font-family:\"微软雅黑\";outline:none\n}\n.screen1 .model-box .model .main .confirm .bottom button[data-v-5a539637]:active{transition:background .2s ease;background:#ddd\n}\n.screen1 .model-box .model .main .confirm .bottom button.radius-left[data-v-5a539637]{border-radius:0 0 0 10px;border-right:none !important\n}\n.screen1 .model-box .model .main .confirm .bottom button.radius-right[data-v-5a539637]{border-radius:0 0 10px 0\n}\n.animateBase-enter[data-v-5a539637],.animateBase-leave-active[data-v-5a539637]{opacity:0\n}\n\n\n// WEBPACK FOOTER //\n// webpack:///src/components/model.vue","\n@import \"../../../lib/swiper.css\";\n.swiper-container[data-v-0d72b8fd]{width:100%\n}\n.swiper-container .swiper-slide img[data-v-0d72b8fd]{width:100%;overflow:hidden\n}\n\n\n// WEBPACK FOOTER //\n// webpack:///src/components/test/test.vue"],"sourceRoot":""}
--------------------------------------------------------------------------------
/demo/static/img/mitugongzai.99d8881.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/beautifulBoys/vue-XiaoMi-Shop/391e3f144a504a668c0cd6b8241eee1cf6a05b94/demo/static/img/mitugongzai.99d8881.png
--------------------------------------------------------------------------------
/demo/static/js/manifest.8659f724d6d5ef01e4d3.js:
--------------------------------------------------------------------------------
1 | !function(e){function t(n){if(r[n])return r[n].exports;var a=r[n]={exports:{},id:n,loaded:!1};return e[n].call(a.exports,a,a.exports,t),a.loaded=!0,a.exports}var n=window.webpackJsonp;window.webpackJsonp=function(c,o){for(var p,s,l=0,f=[];l
2 |
3 |
4 |
5 |
6 | 小米-手机版
7 |
8 |
9 |
10 |
11 |
12 |
18 |
--------------------------------------------------------------------------------
/lib/swiper.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Swiper 3.4.1
3 | * Most modern mobile touch slider and framework with hardware accelerated transitions
4 | *
5 | * http://www.idangero.us/swiper/
6 | *
7 | * Copyright 2016, Vladimir Kharlampidi
8 | * The iDangero.us
9 | * http://www.idangero.us/
10 | *
11 | * Licensed under MIT
12 | *
13 | * Released on: December 13, 2016
14 | */
15 | .swiper-container {
16 | margin-left: auto;
17 | margin-right: auto;
18 | position: relative;
19 | overflow: hidden;
20 | /* Fix of Webkit flickering */
21 | z-index: 1;
22 | }
23 | .swiper-container-no-flexbox .swiper-slide {
24 | float: left;
25 | }
26 | .swiper-container-vertical > .swiper-wrapper {
27 | -webkit-box-orient: vertical;
28 | -moz-box-orient: vertical;
29 | -ms-flex-direction: column;
30 | -webkit-flex-direction: column;
31 | flex-direction: column;
32 | }
33 | .swiper-wrapper {
34 | position: relative;
35 | width: 100%;
36 | height: 100%;
37 | z-index: 1;
38 | display: -webkit-box;
39 | display: -moz-box;
40 | display: -ms-flexbox;
41 | display: -webkit-flex;
42 | display: flex;
43 | -webkit-transition-property: -webkit-transform;
44 | -moz-transition-property: -moz-transform;
45 | -o-transition-property: -o-transform;
46 | -ms-transition-property: -ms-transform;
47 | transition-property: transform;
48 | -webkit-box-sizing: content-box;
49 | -moz-box-sizing: content-box;
50 | box-sizing: content-box;
51 | }
52 | .swiper-container-android .swiper-slide,
53 | .swiper-wrapper {
54 | -webkit-transform: translate3d(0px, 0, 0);
55 | -moz-transform: translate3d(0px, 0, 0);
56 | -o-transform: translate(0px, 0px);
57 | -ms-transform: translate3d(0px, 0, 0);
58 | transform: translate3d(0px, 0, 0);
59 | }
60 | .swiper-container-multirow > .swiper-wrapper {
61 | -webkit-box-lines: multiple;
62 | -moz-box-lines: multiple;
63 | -ms-flex-wrap: wrap;
64 | -webkit-flex-wrap: wrap;
65 | flex-wrap: wrap;
66 | }
67 | .swiper-container-free-mode > .swiper-wrapper {
68 | -webkit-transition-timing-function: ease-out;
69 | -moz-transition-timing-function: ease-out;
70 | -ms-transition-timing-function: ease-out;
71 | -o-transition-timing-function: ease-out;
72 | transition-timing-function: ease-out;
73 | margin: 0 auto;
74 | }
75 | .swiper-slide {
76 | -webkit-flex-shrink: 0;
77 | -ms-flex: 0 0 auto;
78 | flex-shrink: 0;
79 | width: 100%;
80 | height: 100%;
81 | position: relative;
82 | }
83 | /* Auto Height */
84 | .swiper-container-autoheight,
85 | .swiper-container-autoheight .swiper-slide {
86 | height: auto;
87 | }
88 | .swiper-container-autoheight .swiper-wrapper {
89 | -webkit-box-align: start;
90 | -ms-flex-align: start;
91 | -webkit-align-items: flex-start;
92 | align-items: flex-start;
93 | -webkit-transition-property: -webkit-transform, height;
94 | -moz-transition-property: -moz-transform;
95 | -o-transition-property: -o-transform;
96 | -ms-transition-property: -ms-transform;
97 | transition-property: transform, height;
98 | }
99 | /* a11y */
100 | .swiper-container .swiper-notification {
101 | position: absolute;
102 | left: 0;
103 | top: 0;
104 | pointer-events: none;
105 | opacity: 0;
106 | z-index: -1000;
107 | }
108 | /* IE10 Windows Phone 8 Fixes */
109 | .swiper-wp8-horizontal {
110 | -ms-touch-action: pan-y;
111 | touch-action: pan-y;
112 | }
113 | .swiper-wp8-vertical {
114 | -ms-touch-action: pan-x;
115 | touch-action: pan-x;
116 | }
117 | /* Arrows */
118 | .swiper-button-prev,
119 | .swiper-button-next {
120 | position: absolute;
121 | top: 50%;
122 | width: 27px;
123 | height: 44px;
124 | margin-top: -22px;
125 | z-index: 10;
126 | cursor: pointer;
127 | -moz-background-size: 27px 44px;
128 | -webkit-background-size: 27px 44px;
129 | background-size: 27px 44px;
130 | background-position: center;
131 | background-repeat: no-repeat;
132 | }
133 | .swiper-button-prev.swiper-button-disabled,
134 | .swiper-button-next.swiper-button-disabled {
135 | opacity: 0.35;
136 | cursor: auto;
137 | pointer-events: none;
138 | }
139 | .swiper-button-prev,
140 | .swiper-container-rtl .swiper-button-next {
141 | 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");
142 | left: 10px;
143 | right: auto;
144 | }
145 | .swiper-button-prev.swiper-button-black,
146 | .swiper-container-rtl .swiper-button-next.swiper-button-black {
147 | 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");
148 | }
149 | .swiper-button-prev.swiper-button-white,
150 | .swiper-container-rtl .swiper-button-next.swiper-button-white {
151 | 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");
152 | }
153 | .swiper-button-next,
154 | .swiper-container-rtl .swiper-button-prev {
155 | 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");
156 | right: 10px;
157 | left: auto;
158 | }
159 | .swiper-button-next.swiper-button-black,
160 | .swiper-container-rtl .swiper-button-prev.swiper-button-black {
161 | 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");
162 | }
163 | .swiper-button-next.swiper-button-white,
164 | .swiper-container-rtl .swiper-button-prev.swiper-button-white {
165 | 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");
166 | }
167 | /* Pagination Styles */
168 | .swiper-pagination {
169 | position: absolute;
170 | text-align: center;
171 | -webkit-transition: 300ms;
172 | -moz-transition: 300ms;
173 | -o-transition: 300ms;
174 | transition: 300ms;
175 | -webkit-transform: translate3d(0, 0, 0);
176 | -ms-transform: translate3d(0, 0, 0);
177 | -o-transform: translate3d(0, 0, 0);
178 | transform: translate3d(0, 0, 0);
179 | z-index: 10;
180 | }
181 | .swiper-pagination.swiper-pagination-hidden {
182 | opacity: 0;
183 | }
184 | /* Common Styles */
185 | .swiper-pagination-fraction,
186 | .swiper-pagination-custom,
187 | .swiper-container-horizontal > .swiper-pagination-bullets {
188 | bottom: 10px;
189 | left: 0;
190 | width: 100%;
191 | }
192 | /* Bullets */
193 | .swiper-pagination-bullet {
194 | width: 8px;
195 | height: 8px;
196 | display: inline-block;
197 | border-radius: 100%;
198 | background: #000;
199 | opacity: 0.2;
200 | }
201 | button.swiper-pagination-bullet {
202 | border: none;
203 | margin: 0;
204 | padding: 0;
205 | box-shadow: none;
206 | -moz-appearance: none;
207 | -ms-appearance: none;
208 | -webkit-appearance: none;
209 | appearance: none;
210 | }
211 | .swiper-pagination-clickable .swiper-pagination-bullet {
212 | cursor: pointer;
213 | }
214 | .swiper-pagination-white .swiper-pagination-bullet {
215 | background: #fff;
216 | }
217 | .swiper-pagination-bullet-active {
218 | opacity: 1;
219 | background: #007aff;
220 | }
221 | .swiper-pagination-white .swiper-pagination-bullet-active {
222 | background: #fff;
223 | }
224 | .swiper-pagination-black .swiper-pagination-bullet-active {
225 | background: #000;
226 | }
227 | .swiper-container-vertical > .swiper-pagination-bullets {
228 | right: 10px;
229 | top: 50%;
230 | -webkit-transform: translate3d(0px, -50%, 0);
231 | -moz-transform: translate3d(0px, -50%, 0);
232 | -o-transform: translate(0px, -50%);
233 | -ms-transform: translate3d(0px, -50%, 0);
234 | transform: translate3d(0px, -50%, 0);
235 | }
236 | .swiper-container-vertical > .swiper-pagination-bullets .swiper-pagination-bullet {
237 | margin: 5px 0;
238 | display: block;
239 | }
240 | .swiper-container-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet {
241 | margin: 0 5px;
242 | }
243 | /* Progress */
244 | .swiper-pagination-progress {
245 | background: rgba(0, 0, 0, 0.25);
246 | position: absolute;
247 | }
248 | .swiper-pagination-progress .swiper-pagination-progressbar {
249 | background: #007aff;
250 | position: absolute;
251 | left: 0;
252 | top: 0;
253 | width: 100%;
254 | height: 100%;
255 | -webkit-transform: scale(0);
256 | -ms-transform: scale(0);
257 | -o-transform: scale(0);
258 | transform: scale(0);
259 | -webkit-transform-origin: left top;
260 | -moz-transform-origin: left top;
261 | -ms-transform-origin: left top;
262 | -o-transform-origin: left top;
263 | transform-origin: left top;
264 | }
265 | .swiper-container-rtl .swiper-pagination-progress .swiper-pagination-progressbar {
266 | -webkit-transform-origin: right top;
267 | -moz-transform-origin: right top;
268 | -ms-transform-origin: right top;
269 | -o-transform-origin: right top;
270 | transform-origin: right top;
271 | }
272 | .swiper-container-horizontal > .swiper-pagination-progress {
273 | width: 100%;
274 | height: 4px;
275 | left: 0;
276 | top: 0;
277 | }
278 | .swiper-container-vertical > .swiper-pagination-progress {
279 | width: 4px;
280 | height: 100%;
281 | left: 0;
282 | top: 0;
283 | }
284 | .swiper-pagination-progress.swiper-pagination-white {
285 | background: rgba(255, 255, 255, 0.5);
286 | }
287 | .swiper-pagination-progress.swiper-pagination-white .swiper-pagination-progressbar {
288 | background: #fff;
289 | }
290 | .swiper-pagination-progress.swiper-pagination-black .swiper-pagination-progressbar {
291 | background: #000;
292 | }
293 | /* 3D Container */
294 | .swiper-container-3d {
295 | -webkit-perspective: 1200px;
296 | -moz-perspective: 1200px;
297 | -o-perspective: 1200px;
298 | perspective: 1200px;
299 | }
300 | .swiper-container-3d .swiper-wrapper,
301 | .swiper-container-3d .swiper-slide,
302 | .swiper-container-3d .swiper-slide-shadow-left,
303 | .swiper-container-3d .swiper-slide-shadow-right,
304 | .swiper-container-3d .swiper-slide-shadow-top,
305 | .swiper-container-3d .swiper-slide-shadow-bottom,
306 | .swiper-container-3d .swiper-cube-shadow {
307 | -webkit-transform-style: preserve-3d;
308 | -moz-transform-style: preserve-3d;
309 | -ms-transform-style: preserve-3d;
310 | transform-style: preserve-3d;
311 | }
312 | .swiper-container-3d .swiper-slide-shadow-left,
313 | .swiper-container-3d .swiper-slide-shadow-right,
314 | .swiper-container-3d .swiper-slide-shadow-top,
315 | .swiper-container-3d .swiper-slide-shadow-bottom {
316 | position: absolute;
317 | left: 0;
318 | top: 0;
319 | width: 100%;
320 | height: 100%;
321 | pointer-events: none;
322 | z-index: 10;
323 | }
324 | .swiper-container-3d .swiper-slide-shadow-left {
325 | background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
326 | /* Safari 4+, Chrome */
327 | background-image: -webkit-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
328 | /* Chrome 10+, Safari 5.1+, iOS 5+ */
329 | background-image: -moz-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
330 | /* Firefox 3.6-15 */
331 | background-image: -o-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
332 | /* Opera 11.10-12.00 */
333 | background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
334 | /* Firefox 16+, IE10, Opera 12.50+ */
335 | }
336 | .swiper-container-3d .swiper-slide-shadow-right {
337 | background-image: -webkit-gradient(linear, right top, left top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
338 | /* Safari 4+, Chrome */
339 | background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
340 | /* Chrome 10+, Safari 5.1+, iOS 5+ */
341 | background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
342 | /* Firefox 3.6-15 */
343 | background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
344 | /* Opera 11.10-12.00 */
345 | background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
346 | /* Firefox 16+, IE10, Opera 12.50+ */
347 | }
348 | .swiper-container-3d .swiper-slide-shadow-top {
349 | background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
350 | /* Safari 4+, Chrome */
351 | background-image: -webkit-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
352 | /* Chrome 10+, Safari 5.1+, iOS 5+ */
353 | background-image: -moz-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
354 | /* Firefox 3.6-15 */
355 | background-image: -o-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
356 | /* Opera 11.10-12.00 */
357 | background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
358 | /* Firefox 16+, IE10, Opera 12.50+ */
359 | }
360 | .swiper-container-3d .swiper-slide-shadow-bottom {
361 | background-image: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
362 | /* Safari 4+, Chrome */
363 | background-image: -webkit-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
364 | /* Chrome 10+, Safari 5.1+, iOS 5+ */
365 | background-image: -moz-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
366 | /* Firefox 3.6-15 */
367 | background-image: -o-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
368 | /* Opera 11.10-12.00 */
369 | background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
370 | /* Firefox 16+, IE10, Opera 12.50+ */
371 | }
372 | /* Coverflow */
373 | .swiper-container-coverflow .swiper-wrapper,
374 | .swiper-container-flip .swiper-wrapper {
375 | /* Windows 8 IE 10 fix */
376 | -ms-perspective: 1200px;
377 | }
378 | /* Cube + Flip */
379 | .swiper-container-cube,
380 | .swiper-container-flip {
381 | overflow: visible;
382 | }
383 | .swiper-container-cube .swiper-slide,
384 | .swiper-container-flip .swiper-slide {
385 | pointer-events: none;
386 | -webkit-backface-visibility: hidden;
387 | -moz-backface-visibility: hidden;
388 | -ms-backface-visibility: hidden;
389 | backface-visibility: hidden;
390 | z-index: 1;
391 | }
392 | .swiper-container-cube .swiper-slide .swiper-slide,
393 | .swiper-container-flip .swiper-slide .swiper-slide {
394 | pointer-events: none;
395 | }
396 | .swiper-container-cube .swiper-slide-active,
397 | .swiper-container-flip .swiper-slide-active,
398 | .swiper-container-cube .swiper-slide-active .swiper-slide-active,
399 | .swiper-container-flip .swiper-slide-active .swiper-slide-active {
400 | pointer-events: auto;
401 | }
402 | .swiper-container-cube .swiper-slide-shadow-top,
403 | .swiper-container-flip .swiper-slide-shadow-top,
404 | .swiper-container-cube .swiper-slide-shadow-bottom,
405 | .swiper-container-flip .swiper-slide-shadow-bottom,
406 | .swiper-container-cube .swiper-slide-shadow-left,
407 | .swiper-container-flip .swiper-slide-shadow-left,
408 | .swiper-container-cube .swiper-slide-shadow-right,
409 | .swiper-container-flip .swiper-slide-shadow-right {
410 | z-index: 0;
411 | -webkit-backface-visibility: hidden;
412 | -moz-backface-visibility: hidden;
413 | -ms-backface-visibility: hidden;
414 | backface-visibility: hidden;
415 | }
416 | /* Cube */
417 | .swiper-container-cube .swiper-slide {
418 | visibility: hidden;
419 | -webkit-transform-origin: 0 0;
420 | -moz-transform-origin: 0 0;
421 | -ms-transform-origin: 0 0;
422 | transform-origin: 0 0;
423 | width: 100%;
424 | height: 100%;
425 | }
426 | .swiper-container-cube.swiper-container-rtl .swiper-slide {
427 | -webkit-transform-origin: 100% 0;
428 | -moz-transform-origin: 100% 0;
429 | -ms-transform-origin: 100% 0;
430 | transform-origin: 100% 0;
431 | }
432 | .swiper-container-cube .swiper-slide-active,
433 | .swiper-container-cube .swiper-slide-next,
434 | .swiper-container-cube .swiper-slide-prev,
435 | .swiper-container-cube .swiper-slide-next + .swiper-slide {
436 | pointer-events: auto;
437 | visibility: visible;
438 | }
439 | .swiper-container-cube .swiper-cube-shadow {
440 | position: absolute;
441 | left: 0;
442 | bottom: 0px;
443 | width: 100%;
444 | height: 100%;
445 | background: #000;
446 | opacity: 0.6;
447 | -webkit-filter: blur(50px);
448 | filter: blur(50px);
449 | z-index: 0;
450 | }
451 | /* Fade */
452 | .swiper-container-fade.swiper-container-free-mode .swiper-slide {
453 | -webkit-transition-timing-function: ease-out;
454 | -moz-transition-timing-function: ease-out;
455 | -ms-transition-timing-function: ease-out;
456 | -o-transition-timing-function: ease-out;
457 | transition-timing-function: ease-out;
458 | }
459 | .swiper-container-fade .swiper-slide {
460 | pointer-events: none;
461 | -webkit-transition-property: opacity;
462 | -moz-transition-property: opacity;
463 | -o-transition-property: opacity;
464 | transition-property: opacity;
465 | }
466 | .swiper-container-fade .swiper-slide .swiper-slide {
467 | pointer-events: none;
468 | }
469 | .swiper-container-fade .swiper-slide-active,
470 | .swiper-container-fade .swiper-slide-active .swiper-slide-active {
471 | pointer-events: auto;
472 | }
473 | .swiper-zoom-container {
474 | width: 100%;
475 | height: 100%;
476 | display: -webkit-box;
477 | display: -moz-box;
478 | display: -ms-flexbox;
479 | display: -webkit-flex;
480 | display: flex;
481 | -webkit-box-pack: center;
482 | -moz-box-pack: center;
483 | -ms-flex-pack: center;
484 | -webkit-justify-content: center;
485 | justify-content: center;
486 | -webkit-box-align: center;
487 | -moz-box-align: center;
488 | -ms-flex-align: center;
489 | -webkit-align-items: center;
490 | align-items: center;
491 | text-align: center;
492 | }
493 | .swiper-zoom-container > img,
494 | .swiper-zoom-container > svg,
495 | .swiper-zoom-container > canvas {
496 | max-width: 100%;
497 | max-height: 100%;
498 | object-fit: contain;
499 | }
500 | /* Scrollbar */
501 | .swiper-scrollbar {
502 | border-radius: 10px;
503 | position: relative;
504 | -ms-touch-action: none;
505 | background: rgba(0, 0, 0, 0.1);
506 | }
507 | .swiper-container-horizontal > .swiper-scrollbar {
508 | position: absolute;
509 | left: 1%;
510 | bottom: 3px;
511 | z-index: 50;
512 | height: 5px;
513 | width: 98%;
514 | }
515 | .swiper-container-vertical > .swiper-scrollbar {
516 | position: absolute;
517 | right: 3px;
518 | top: 1%;
519 | z-index: 50;
520 | width: 5px;
521 | height: 98%;
522 | }
523 | .swiper-scrollbar-drag {
524 | height: 100%;
525 | width: 100%;
526 | position: relative;
527 | background: rgba(0, 0, 0, 0.5);
528 | border-radius: 10px;
529 | left: 0;
530 | top: 0;
531 | }
532 | .swiper-scrollbar-cursor-drag {
533 | cursor: move;
534 | }
535 | /* Preloader */
536 | .swiper-lazy-preloader {
537 | width: 42px;
538 | height: 42px;
539 | position: absolute;
540 | left: 50%;
541 | top: 50%;
542 | margin-left: -21px;
543 | margin-top: -21px;
544 | z-index: 10;
545 | -webkit-transform-origin: 50%;
546 | -moz-transform-origin: 50%;
547 | transform-origin: 50%;
548 | -webkit-animation: swiper-preloader-spin 1s steps(12, end) infinite;
549 | -moz-animation: swiper-preloader-spin 1s steps(12, end) infinite;
550 | animation: swiper-preloader-spin 1s steps(12, end) infinite;
551 | }
552 | .swiper-lazy-preloader:after {
553 | display: block;
554 | content: "";
555 | width: 100%;
556 | height: 100%;
557 | 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");
558 | background-position: 50%;
559 | -webkit-background-size: 100%;
560 | background-size: 100%;
561 | background-repeat: no-repeat;
562 | }
563 | .swiper-lazy-preloader-white:after {
564 | 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");
565 | }
566 | @-webkit-keyframes swiper-preloader-spin {
567 | 100% {
568 | -webkit-transform: rotate(360deg);
569 | }
570 | }
571 | @keyframes swiper-preloader-spin {
572 | 100% {
573 | transform: rotate(360deg);
574 | }
575 | }
576 |
--------------------------------------------------------------------------------
/lib/util.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by user on 2017/2/17.
3 | */
4 |
5 | utilObj = {
6 | screenSize () {
7 | var width = window.screen.width;
8 | var height = window.screen.height;
9 | return {width: width, height: height};
10 | }
11 | };
12 | module.exports = utilObj;
13 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "xiaomi",
3 | "version": "1.0.0",
4 | "description": "A Web App By Vue.js",
5 | "author": "liuyun",
6 | "private": true,
7 | "scripts": {
8 | "dev": "node build/dev-server.js",
9 | "build": "node build/build.js"
10 | },
11 | "dependencies": {
12 | "element-ui": "^1.1.6",
13 | "vue": "^2.1.0",
14 | "vue-router": "^2.2.0"
15 | },
16 | "devDependencies": {
17 | "autoprefixer": "^6.4.0",
18 | "babel-core": "^6.0.0",
19 | "babel-eslint": "^7.0.0",
20 | "babel-loader": "^6.0.0",
21 | "babel-plugin-transform-runtime": "^6.0.0",
22 | "babel-preset-es2015": "^6.0.0",
23 | "babel-preset-stage-2": "^6.0.0",
24 | "babel-register": "^6.0.0",
25 | "chalk": "^1.1.3",
26 | "connect-history-api-fallback": "^1.1.0",
27 | "css-loader": "^0.25.0",
28 | "eslint": "^3.7.1",
29 | "eslint-config-standard": "^6.1.0",
30 | "eslint-friendly-formatter": "^2.0.5",
31 | "eslint-loader": "^1.5.0",
32 | "eslint-plugin-html": "^1.3.0",
33 | "eslint-plugin-promise": "^3.4.0",
34 | "eslint-plugin-standard": "^2.0.1",
35 | "eventsource-polyfill": "^0.9.6",
36 | "express": "^4.13.3",
37 | "extract-text-webpack-plugin": "^1.0.1",
38 | "file-loader": "^0.9.0",
39 | "friendly-errors-webpack-plugin": "^1.1.2",
40 | "function-bind": "^1.0.2",
41 | "html-webpack-plugin": "^2.8.1",
42 | "http-proxy-middleware": "^0.17.2",
43 | "json-loader": "^0.5.4",
44 | "less": "^2.7.2",
45 | "less-loader": "^2.2.3",
46 | "opn": "^4.0.2",
47 | "ora": "^0.3.0",
48 | "semver": "^5.3.0",
49 | "shelljs": "^0.7.4",
50 | "url-loader": "^0.5.7",
51 | "vue-loader": "^10.0.0",
52 | "vue-style-loader": "^1.0.0",
53 | "vue-template-compiler": "^2.1.0",
54 | "webpack": "^1.13.2",
55 | "webpack-dev-middleware": "^1.8.3",
56 | "webpack-hot-middleware": "^2.12.2",
57 | "webpack-merge": "^0.14.1"
58 | },
59 | "engines": {
60 | "node": ">= 4.0.0",
61 | "npm": ">= 3.0.0"
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
9 |
--------------------------------------------------------------------------------
/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/beautifulBoys/vue-XiaoMi-Shop/391e3f144a504a668c0cd6b8241eee1cf6a05b94/src/assets/logo.png
--------------------------------------------------------------------------------
/src/components/cart/header.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | 购物车
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
热门搜索
19 |
![]()
20 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
67 |
68 |
194 |
--------------------------------------------------------------------------------
/src/components/goods/buyControl.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
{{ goodsAttr.title }}
5 |
{{ goodsAttr.price }}元
6 |
7 | 【{{ goodsAttr.desc.tag }}】
8 | {{ goodsAttr.desc.sc }}
9 |
10 |
11 |
12 | - {{ item.text }}
15 |
16 |
17 |
18 | - {{ item.text }}
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
53 |
54 |
103 |
--------------------------------------------------------------------------------
/src/components/goods/detail.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 商品详情
5 | 参数
6 |
7 |
8 |
![]()
9 |
10 |
11 |
![]()
12 |
13 |
14 |
15 |
40 |
41 |
75 |
--------------------------------------------------------------------------------
/src/components/goods/img.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
14 |
15 |
16 |
17 |
18 |
50 |
51 |
104 |
109 |
--------------------------------------------------------------------------------
/src/components/index/banner.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
![]()
8 |
9 |
10 |
![]()
11 |
12 |
13 |
14 |
15 |
37 |
38 |
57 |
--------------------------------------------------------------------------------
/src/components/index/body.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
27 |
28 |
33 |
--------------------------------------------------------------------------------
/src/components/index/footer.vue:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
23 |
24 |
79 |
--------------------------------------------------------------------------------
/src/components/index/header.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
登录
14 |
15 |
16 |
17 |
18 |
热门搜索
19 |
![]()
20 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
68 |
69 |
199 |
--------------------------------------------------------------------------------
/src/components/index/intelligenceGoods.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
![]()
5 |
6 |
11 |
12 |
![]()
13 |
14 |
15 | {{ good.title }}
16 | {{ good.desc }}
17 | ¥{{ good.price }}
18 |
19 |
20 |
21 |
22 |
42 |
43 |
121 |
--------------------------------------------------------------------------------
/src/components/index/menu.vue:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 |
22 |
23 |
49 |
--------------------------------------------------------------------------------
/src/components/index/newGoods.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
![]()
5 |
6 |
11 |
12 |
![]()
13 |
14 |
15 | {{ good.title }}
16 | {{ good.desc }}
17 | ¥{{ good.price }}
18 |
19 |
20 |
21 |
22 |
42 |
43 |
121 |
--------------------------------------------------------------------------------
/src/components/index/newHomeGoods.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
![]()
5 |
6 |
11 |
12 |
![]()
13 |
14 |
15 |

16 |
17 |
18 | {{ good.title }}
19 | {{ good.desc }}
20 | ¥{{ good.price }}
21 |
22 |
23 |
24 |
25 |
45 |
46 |
123 |
--------------------------------------------------------------------------------
/src/components/index/starGoods.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
![]()
5 |
6 |
11 |
12 |
![]()
13 |
14 |
15 | {{ good.title }}
16 | {{ good.desc }}
17 | ¥{{ good.price }}
18 |
19 |
20 |
21 |
22 |
42 |
43 |
120 |
--------------------------------------------------------------------------------
/src/components/loading.vue:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
29 |
30 |
63 |
--------------------------------------------------------------------------------
/src/components/model.vue:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | 说明:
4 | 1.标签:vModel
5 | 2.默认状态:checked
6 | 3.是否显示头部:为了友好手机端,默认设置不显示头部(不写就可以了),如需要显示:isHeadShow = true
7 | 4.父组件关闭弹窗操作:this.$refs.{refName}.modelHide()
8 | 5.类型:type = 'pop'、'alert'、'confirm' 三种任选其一。
9 | 6.内容分发:slot为容器。宽度100%,高度自定义
10 |
11 | 7.不明白 参考hello2示例,都有写
12 |
13 | 示例:
14 |
15 |
16 |
17 | 我是一个alert弹窗
18 |
19 |
20 | */
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 | 弹出窗口
33 | x
34 |
35 |
36 |
37 |
38 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
107 |
108 |
109 |
241 |
--------------------------------------------------------------------------------
/src/images/loading.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/beautifulBoys/vue-XiaoMi-Shop/391e3f144a504a668c0cd6b8241eee1cf6a05b94/src/images/loading.gif
--------------------------------------------------------------------------------
/src/images/mi_load.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/beautifulBoys/vue-XiaoMi-Shop/391e3f144a504a668c0cd6b8241eee1cf6a05b94/src/images/mi_load.png
--------------------------------------------------------------------------------
/src/images/mitugongzai.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/beautifulBoys/vue-XiaoMi-Shop/391e3f144a504a668c0cd6b8241eee1cf6a05b94/src/images/mitugongzai.png
--------------------------------------------------------------------------------
/src/images/svg/back.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/images/svg/back1.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/images/svg/cart.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/images/svg/footer_cart.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/images/svg/footer_cart1.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/images/svg/footer_home.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/images/svg/footer_home1.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/images/svg/footer_lei.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/images/svg/footer_lei1.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/images/svg/footer_me.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/images/svg/footer_me1.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/images/svg/home.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/images/svg/mi.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/images/svg/search.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/images/svg/search1.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import App from './App';
3 | import Index from './views/index.vue';
4 | import Goods from './views/goods.vue';
5 | import Cart from './views/cart.vue';
6 |
7 | import VueRouter from 'vue-router';
8 | import Element from 'element-ui';
9 |
10 | Vue.use(VueRouter);
11 | Vue.use(Element);
12 |
13 | const routes = [
14 | {path: '/', redirect: '/index'},
15 | { path: '/index', component: Index },
16 | { path: '/goods', component: Goods },
17 | { path: '/cart', component: Cart }
18 | ];
19 |
20 | const router = new VueRouter({
21 | routes
22 | });
23 |
24 | /* eslint-disable no-new */
25 | new Vue({
26 | router,
27 | el: '#app',
28 | template: '',
29 | components: { App }
30 | });
31 |
--------------------------------------------------------------------------------
/src/views/cart.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
登录后享受更多优惠去登录>
6 |
7 |
8 |
9 |
![]()
10 |
11 |
12 |
{{`${item.title} ${item.rom} ${item.color}`}}
13 |
售价:{{item.price}}元
14 |
15 | -
16 | {{item.buyNum}}
17 | +
18 | 删
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
61 |
62 |
148 |
--------------------------------------------------------------------------------
/src/views/goods.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
14 |
15 |
您选择的产品
16 |
{{ popInfo.title }}
17 |
{{ popInfo.ram }} {{ popInfo.color }}
18 |
19 |
20 |
21 |
22 |
74 |
75 |
149 |
--------------------------------------------------------------------------------
/src/views/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
86 |
87 |
102 |
--------------------------------------------------------------------------------
/static/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/beautifulBoys/vue-XiaoMi-Shop/391e3f144a504a668c0cd6b8241eee1cf6a05b94/static/.gitkeep
--------------------------------------------------------------------------------