├── .babelrc
├── .editorconfig
├── .gitignore
├── .postcssrc.js
├── README.md
├── build
├── build.js
├── check-versions.js
├── dev-client.js
├── dev-server.js
├── utils.js
├── vue-loader.conf.js
├── webpack.base.conf.js
├── webpack.dev.conf.js
└── webpack.prod.conf.js
├── config
├── dev.env.js
├── index.js
└── prod.env.js
├── index.html
├── package-lock.json
├── package.json
├── src
├── App.vue
├── assets
│ ├── css
│ │ ├── base.css
│ │ ├── jm_GoodsTopBox.css
│ │ ├── jm_topbar.css
│ │ └── stylexm.css
│ ├── img
│ │ ├── 1.jpg
│ │ ├── 2.jpg
│ │ ├── 3.jpg
│ │ ├── bg-thin.jpg
│ │ ├── chevron-left.png
│ │ ├── chevron-right.png
│ │ ├── goodstopbox_1.jpg
│ │ ├── icon-mi.png
│ │ ├── icon-search-white.png
│ │ ├── icon-search.png
│ │ ├── thin-tv01.png
│ │ ├── thin-tv02.png
│ │ ├── top-end.jpg
│ │ ├── top-tv.png
│ │ ├── top-yu.jpg
│ │ ├── tverweima.png
│ │ ├── vedio.png
│ │ └── win.gif
│ ├── js
│ │ ├── gVerify.js
│ │ ├── jquery-3.1.1.js
│ │ └── sectionSlide.js
│ ├── logo.png
│ └── style
│ │ └── font-awesome-4.7.0
│ │ ├── HELP-US-OUT.txt
│ │ ├── css
│ │ ├── font-awesome.css
│ │ └── font-awesome.min.css
│ │ ├── fonts
│ │ ├── FontAwesome.otf
│ │ ├── fontawesome-webfont.eot
│ │ ├── fontawesome-webfont.svg
│ │ ├── fontawesome-webfont.ttf
│ │ ├── fontawesome-webfont.woff
│ │ └── fontawesome-webfont.woff2
│ │ ├── less
│ │ ├── animated.less
│ │ ├── bordered-pulled.less
│ │ ├── core.less
│ │ ├── fixed-width.less
│ │ ├── font-awesome.less
│ │ ├── icons.less
│ │ ├── larger.less
│ │ ├── list.less
│ │ ├── mixins.less
│ │ ├── path.less
│ │ ├── rotated-flipped.less
│ │ ├── screen-reader.less
│ │ ├── stacked.less
│ │ └── variables.less
│ │ └── scss
│ │ ├── _animated.scss
│ │ ├── _bordered-pulled.scss
│ │ ├── _core.scss
│ │ ├── _fixed-width.scss
│ │ ├── _icons.scss
│ │ ├── _larger.scss
│ │ ├── _list.scss
│ │ ├── _mixins.scss
│ │ ├── _path.scss
│ │ ├── _rotated-flipped.scss
│ │ ├── _screen-reader.scss
│ │ ├── _stacked.scss
│ │ ├── _variables.scss
│ │ └── font-awesome.scss
├── components
│ ├── First.vue
│ ├── Goods.vue
│ ├── GoodsAccessories.vue
│ ├── GoodsAround.vue
│ ├── GoodsCollocation.vue
│ ├── GoodsContent.vue
│ ├── GoodsDetail.vue
│ ├── GoodsTopBox.vue
│ ├── Hello.vue
│ ├── HotProduct.vue
│ ├── NavBar.vue
│ ├── Recommand.vue
│ ├── TopBanner.vue
│ ├── TopBar.vue
│ ├── TopHeader.vue
│ ├── TopSub.vue
│ ├── Video.vue
│ ├── common
│ │ ├── GoodsContentSlide.vue
│ │ ├── GoodsHeader.vue
│ │ ├── GoodsLeft.vue
│ │ ├── GoodsRight.vue
│ │ ├── GoodsTop.vue
│ │ ├── slide.vue
│ │ ├── yxmvideo1.vue
│ │ ├── yxmvideo2.vue
│ │ ├── yxmvideo3.vue
│ │ └── yxmvideo4.vue
│ ├── detail
│ │ ├── NavBar.vue
│ │ ├── mitv.vue
│ │ ├── sectionAtions.vue
│ │ ├── sectionAtoms.vue
│ │ ├── sectionChildren.vue
│ │ ├── sectionChip.vue
│ │ ├── sectionFeatures.vue
│ │ ├── sectionFooter.vue
│ │ ├── sectionHdzone.vue
│ │ ├── sectionInstall.vue
│ │ ├── sectionPlace.vue
│ │ ├── sectionReading.vue
│ │ ├── sectionRecommend.vue
│ │ ├── sectionScreen.vue
│ │ ├── sectionSmart.vue
│ │ ├── sectionSound.vue
│ │ ├── sectionStory.vue
│ │ ├── sectionThin.vue
│ │ ├── sectionTop.vue
│ │ ├── sectionVip.vue
│ │ └── sectionVoice.vue
│ ├── mi-footer.vue
│ ├── mi_login.vue
│ ├── mi_regist.vue
│ └── yxmvideo.vue
├── global
│ └── api.js
├── jquery-1.11.3.js
├── main.js
└── router
│ └── index.js
├── static
├── .gitkeep
├── data
│ ├── Recommand.json
│ ├── goodscontent.json
│ ├── goodtop-box.json
│ └── yxmdata.json
└── font-awesome-4.7.0
│ ├── HELP-US-OUT.txt
│ ├── css
│ ├── font-awesome.css
│ └── font-awesome.min.css
│ ├── fonts
│ ├── FontAwesome.otf
│ ├── fontawesome-webfont.eot
│ ├── fontawesome-webfont.svg
│ ├── fontawesome-webfont.ttf
│ ├── fontawesome-webfont.woff
│ └── fontawesome-webfont.woff2
│ ├── less
│ ├── animated.less
│ ├── bordered-pulled.less
│ ├── core.less
│ ├── fixed-width.less
│ ├── font-awesome.less
│ ├── icons.less
│ ├── larger.less
│ ├── list.less
│ ├── mixins.less
│ ├── path.less
│ ├── rotated-flipped.less
│ ├── screen-reader.less
│ ├── stacked.less
│ └── variables.less
│ └── scss
│ ├── _animated.scss
│ ├── _bordered-pulled.scss
│ ├── _core.scss
│ ├── _fixed-width.scss
│ ├── _icons.scss
│ ├── _larger.scss
│ ├── _list.scss
│ ├── _mixins.scss
│ ├── _path.scss
│ ├── _rotated-flipped.scss
│ ├── _screen-reader.scss
│ ├── _stacked.scss
│ ├── _variables.scss
│ └── font-awesome.scss
└── 文档
├── 交付文档
├── YZC999.pptx
├── 代码自测结果表.xlsx
├── 周均梅个人文档
│ ├── 个人日报_周均梅.xlsx
│ ├── 周均梅-.实训调查报告.xlsx
│ ├── 周均梅-个人总结报告.xlsx
│ └── 周均梅实训总结.docx
├── 杨晓敏个人文档
│ ├── 个人日报_杨晓敏 .xlsx
│ ├── 杨晓敏个人总结报告.xlsx
│ ├── 杨晓敏学员实训总结.docx
│ └── 杨晓敏实训调查报告.xlsx
├── 概要设计说明书.docx
├── 用户手册.docx
├── 详细设计说明书.docx
├── 软件需求规格说明书.docx
├── 问题管理表 .xlsx
├── 陈秋宇个人文档
│ ├── 个人报告_陈秋宇.xlsx
│ ├── 陈秋宇个人总结报告.xlsx
│ ├── 陈秋宇实训总结.docx
│ └── 陈秋宇实训调查报告.xlsx
├── 项目周报.xlsx
└── 项目总结报告.xlsx
├── 交付文档模板
├── 01.软件需求规格说明书(模板).docx
├── 03.详细设计说明书.docx
├── 04.代码自测结果表(模板).xlsx
├── 05.用户手册(模板).docx
├── 06.个人日报 .xlsx
├── 07.项目周报.xlsx
├── 10.项目总结报告.xlsx
├── 11.个人总结报告.xlsx
├── 12.项目汇报答辩(不限模板与格式).pptx
├── ~$.概要设计说明书(模板).docx
├── 【样例】04.学员实训总结(模板).docx
├── 【样例】05.实训调查报告(模板).xlsx
├── 概要设计说明书.docx
└── 问题管理表.xlsx
└── 项目组内文档
├── ~$高仿小米官网的进度.xlsx
└── 高仿小米官网的进度.xlsx
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | ["env", {
4 | "modules": false,
5 | "targets": {
6 | "browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
7 | }
8 | }],
9 | "stage-2"
10 | ],
11 | "plugins": ["transform-runtime"],
12 | "env": {
13 | "test": {
14 | "presets": ["env", "stage-2"],
15 | "plugins": ["istanbul"]
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/.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 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules/
3 | dist/
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 |
8 | # Editor directories and files
9 | .idea
10 | *.suo
11 | *.ntvs*
12 | *.njsproj
13 | *.sln
14 |
--------------------------------------------------------------------------------
/.postcssrc.js:
--------------------------------------------------------------------------------
1 | // https://github.com/michael-ciniawsky/postcss-load-config
2 |
3 | module.exports = {
4 | "plugins": {
5 | // to edit target browsers: use "browserslist" field in package.json
6 | "autoprefixer": {}
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # mi_vue
2 |
3 | > A Vue.js project
4 |
5 | ## Build Setup
6 |
7 | ``` bash
8 | # install dependencies
9 | npm install
10 |
11 | # serve with hot reload at localhost:8080
12 | npm run dev
13 |
14 | # build for production with minification
15 | npm run build
16 |
17 | # build for production and view the bundle analyzer report
18 | npm run build --report
19 | ```
20 |
21 | For detailed explanation on how things work, checkout the [guide](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader).
22 |
--------------------------------------------------------------------------------
/build/build.js:
--------------------------------------------------------------------------------
1 | require('./check-versions')()
2 |
3 | process.env.NODE_ENV = 'production'
4 |
5 | var ora = require('ora')
6 | var rm = require('rimraf')
7 | var path = require('path')
8 | var chalk = require('chalk')
9 | var webpack = require('webpack')
10 | var config = require('../config')
11 | var webpackConfig = require('./webpack.prod.conf')
12 |
13 | var spinner = ora('building for production...')
14 | spinner.start()
15 |
16 | rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {
17 | if (err) throw err
18 | webpack(webpackConfig, function (err, stats) {
19 | spinner.stop()
20 | if (err) throw err
21 | process.stdout.write(stats.toString({
22 | colors: true,
23 | modules: false,
24 | children: false,
25 | chunks: false,
26 | chunkModules: false
27 | }) + '\n\n')
28 |
29 | console.log(chalk.cyan(' Build complete.\n'))
30 | console.log(chalk.yellow(
31 | ' Tip: built files are meant to be served over an HTTP server.\n' +
32 | ' Opening index.html over file:// won\'t work.\n'
33 | ))
34 | })
35 | })
36 |
--------------------------------------------------------------------------------
/build/check-versions.js:
--------------------------------------------------------------------------------
1 | var chalk = require('chalk')
2 | var semver = require('semver')
3 | var packageConfig = require('../package.json')
4 | var shell = require('shelljs')
5 | function exec (cmd) {
6 | return require('child_process').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 |
17 | if (shell.which('npm')) {
18 | versionRequirements.push({
19 | name: 'npm',
20 | currentVersion: exec('npm --version'),
21 | versionRequirement: packageConfig.engines.npm
22 | })
23 | }
24 |
25 | module.exports = function () {
26 | var warnings = []
27 | for (var i = 0; i < versionRequirements.length; i++) {
28 | var mod = versionRequirements[i]
29 | if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) {
30 | warnings.push(mod.name + ': ' +
31 | chalk.red(mod.currentVersion) + ' should be ' +
32 | chalk.green(mod.versionRequirement)
33 | )
34 | }
35 | }
36 |
37 | if (warnings.length) {
38 | console.log('')
39 | console.log(chalk.yellow('To use this template, you must update following to modules:'))
40 | console.log()
41 | for (var i = 0; i < warnings.length; i++) {
42 | var warning = warnings[i]
43 | console.log(' ' + warning)
44 | }
45 | console.log()
46 | process.exit(1)
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/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 |
3 | var config = require('../config')
4 | if (!process.env.NODE_ENV) {
5 | process.env.NODE_ENV = JSON.parse(config.dev.env.NODE_ENV)
6 | }
7 |
8 | var opn = require('opn')
9 | var path = require('path')
10 | var express = require('express')
11 | var webpack = require('webpack')
12 | var proxyMiddleware = require('http-proxy-middleware')
13 | var webpackConfig = require('./webpack.dev.conf')
14 |
15 | // default port where dev server listens for incoming traffic
16 | var port = process.env.PORT || config.dev.port
17 | // automatically open browser, if not set will be false
18 | var autoOpenBrowser = !!config.dev.autoOpenBrowser
19 | // Define HTTP proxies to your custom API backend
20 | // https://github.com/chimurai/http-proxy-middleware
21 | var proxyTable = config.dev.proxyTable
22 |
23 | var app = express()
24 | var compiler = webpack(webpackConfig)
25 |
26 | var devMiddleware = require('webpack-dev-middleware')(compiler, {
27 | publicPath: webpackConfig.output.publicPath,
28 | quiet: true
29 | })
30 |
31 | var hotMiddleware = require('webpack-hot-middleware')(compiler, {
32 | log: () => {},
33 | heartbeat: 2000
34 | })
35 | // force page reload when html-webpack-plugin template changes
36 | compiler.plugin('compilation', function (compilation) {
37 | compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) {
38 | hotMiddleware.publish({ action: 'reload' })
39 | cb()
40 | })
41 | })
42 |
43 | // proxy api requests
44 | Object.keys(proxyTable).forEach(function (context) {
45 | var options = proxyTable[context]
46 | if (typeof options === 'string') {
47 | options = { target: options }
48 | }
49 | app.use(proxyMiddleware(options.filter || context, options))
50 | })
51 |
52 | // handle fallback for HTML5 history API
53 | app.use(require('connect-history-api-fallback')())
54 |
55 | // serve webpack bundle output
56 | app.use(devMiddleware)
57 |
58 | // enable hot-reload and state-preserving
59 | // compilation error display
60 | app.use(hotMiddleware)
61 |
62 | // serve pure static assets
63 | var staticPath = path.posix.join(config.dev.assetsPublicPath, config.dev.assetsSubDirectory)
64 | app.use(staticPath, express.static('./static'))
65 |
66 | var uri = 'http://localhost:' + port
67 |
68 | var _resolve
69 | var readyPromise = new Promise(resolve => {
70 | _resolve = resolve
71 | })
72 |
73 | console.log('> Starting dev server...')
74 | devMiddleware.waitUntilValid(() => {
75 | console.log('> Listening at ' + uri + '\n')
76 | // when env is testing, don't need open it
77 | if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') {
78 | opn(uri)
79 | }
80 | _resolve()
81 | })
82 |
83 | var server = app.listen(port)
84 |
85 | module.exports = {
86 | ready: readyPromise,
87 | close: () => {
88 | server.close()
89 | }
90 | }
91 |
--------------------------------------------------------------------------------
/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 |
15 | var cssLoader = {
16 | loader: 'css-loader',
17 | options: {
18 | minimize: process.env.NODE_ENV === 'production',
19 | sourceMap: options.sourceMap
20 | }
21 | }
22 |
23 | // generate loader string to be used with extract text plugin
24 | function generateLoaders (loader, loaderOptions) {
25 | var loaders = [cssLoader]
26 | if (loader) {
27 | loaders.push({
28 | loader: loader + '-loader',
29 | options: Object.assign({}, loaderOptions, {
30 | sourceMap: options.sourceMap
31 | })
32 | })
33 | }
34 |
35 | // Extract CSS when that option is specified
36 | // (which is the case during production build)
37 | if (options.extract) {
38 | return ExtractTextPlugin.extract({
39 | use: loaders,
40 | fallback: 'vue-style-loader'
41 | })
42 | } else {
43 | return ['vue-style-loader'].concat(loaders)
44 | }
45 | }
46 |
47 | // https://vue-loader.vuejs.org/en/configurations/extract-css.html
48 | return {
49 | css: generateLoaders(),
50 | postcss: generateLoaders(),
51 | less: generateLoaders('less'),
52 | sass: generateLoaders('sass', { indentedSyntax: true }),
53 | scss: generateLoaders('sass'),
54 | stylus: generateLoaders('stylus'),
55 | styl: generateLoaders('stylus')
56 | }
57 | }
58 |
59 | // Generate loaders for standalone style files (outside of .vue)
60 | exports.styleLoaders = function (options) {
61 | var output = []
62 | var loaders = exports.cssLoaders(options)
63 | for (var extension in loaders) {
64 | var loader = loaders[extension]
65 | output.push({
66 | test: new RegExp('\\.' + extension + '$'),
67 | use: loader
68 | })
69 | }
70 | return output
71 | }
72 |
--------------------------------------------------------------------------------
/build/vue-loader.conf.js:
--------------------------------------------------------------------------------
1 | var utils = require('./utils')
2 | var config = require('../config')
3 | var isProduction = process.env.NODE_ENV === 'production'
4 |
5 | module.exports = {
6 | loaders: utils.cssLoaders({
7 | sourceMap: isProduction
8 | ? config.build.productionSourceMap
9 | : config.dev.cssSourceMap,
10 | extract: isProduction
11 | }),
12 | transformToRequire: {
13 | video: 'src',
14 | source: 'src',
15 | img: 'src',
16 | image: 'xlink:href'
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/build/webpack.base.conf.js:
--------------------------------------------------------------------------------
1 | var path = require('path')
2 | var utils = require('./utils')
3 | var config = require('../config')
4 | var vueLoaderConfig = require('./vue-loader.conf')
5 |
6 | function resolve (dir) {
7 | return path.join(__dirname, '..', dir)
8 | }
9 | console.log("-----------------------------------",process.env.NODE_ENV)
10 |
11 |
12 | module.exports = {
13 | entry: {
14 | app: './src/main.js'
15 | },
16 | output: {
17 | path: config.build.assetsRoot,
18 | filename: '[name].js',
19 | publicPath: process.env.NODE_ENV === 'production'
20 | ? config.build.assetsPublicPath
21 | : config.dev.assetsPublicPath
22 | },
23 | resolve: {
24 | extensions: ['.js', '.vue', '.json'],
25 | alias: {
26 | 'vue$': 'vue/dist/vue.esm.js',
27 | '@': resolve('src')
28 | }
29 | },
30 | module: {
31 | rules: [
32 | {
33 | test: /\.vue$/,
34 | loader: 'vue-loader',
35 | options: vueLoaderConfig
36 | },
37 | {
38 | test: /\.js$/,
39 | loader: 'babel-loader',
40 | include: [resolve('src'), resolve('test')]
41 | },
42 | {
43 | test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
44 | loader: 'url-loader',
45 | options: {
46 | limit: 10000,
47 | name: utils.assetsPath('img/[name].[hash:7].[ext]')
48 | }
49 | },
50 | {
51 | test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,
52 | loader: 'url-loader',
53 | options: {
54 | limit: 10000,
55 | name: utils.assetsPath('media/[name].[hash:7].[ext]')
56 | }
57 | },
58 | {
59 | test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
60 | loader: 'url-loader',
61 | options: {
62 | limit: 10000,
63 | name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
64 | }
65 | }
66 | ]
67 | }
68 | }
69 |
--------------------------------------------------------------------------------
/build/webpack.dev.conf.js:
--------------------------------------------------------------------------------
1 | var utils = require('./utils')
2 | var webpack = require('webpack')
3 | var config = require('../config')
4 | var merge = require('webpack-merge')
5 | var baseWebpackConfig = require('./webpack.base.conf')
6 | var HtmlWebpackPlugin = require('html-webpack-plugin')
7 | var FriendlyErrorsPlugin = 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 | rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap })
17 | },
18 | // cheap-module-eval-source-map is faster for development
19 | devtool: '#cheap-module-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.HotModuleReplacementPlugin(),
26 | new webpack.NoEmitOnErrorsPlugin(),
27 | // https://github.com/ampedandwired/html-webpack-plugin
28 | new HtmlWebpackPlugin({
29 | filename: 'index.html',
30 | template: 'index.html',
31 | inject: true
32 | }),
33 | new FriendlyErrorsPlugin()
34 | ]
35 | })
36 |
--------------------------------------------------------------------------------
/build/webpack.prod.conf.js:
--------------------------------------------------------------------------------
1 | var path = require('path')
2 | var utils = require('./utils')
3 | var webpack = require('webpack')
4 | var config = require('../config')
5 | var merge = require('webpack-merge')
6 | var baseWebpackConfig = require('./webpack.base.conf')
7 | var CopyWebpackPlugin = require('copy-webpack-plugin')
8 | var HtmlWebpackPlugin = require('html-webpack-plugin')
9 | var ExtractTextPlugin = require('extract-text-webpack-plugin')
10 | var OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin')
11 |
12 | var env = config.build.env
13 |
14 | var webpackConfig = merge(baseWebpackConfig, {
15 | module: {
16 | rules: utils.styleLoaders({
17 | sourceMap: config.build.productionSourceMap,
18 | extract: true
19 | })
20 | },
21 | devtool: config.build.productionSourceMap ? '#source-map' : false,
22 | output: {
23 | path: config.build.assetsRoot,
24 | filename: utils.assetsPath('js/[name].[chunkhash].js'),
25 | chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')
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 | sourceMap: true
37 | }),
38 | // extract css into its own file
39 | new ExtractTextPlugin({
40 | filename: utils.assetsPath('css/[name].[contenthash].css')
41 | }),
42 | // Compress extracted CSS. We are using this plugin so that possible
43 | // duplicated CSS from different components can be deduped.
44 | new OptimizeCSSPlugin({
45 | cssProcessorOptions: {
46 | safe: true
47 | }
48 | }),
49 | // generate dist index.html with correct asset hash for caching.
50 | // you can customize output by editing /index.html
51 | // see https://github.com/ampedandwired/html-webpack-plugin
52 | new HtmlWebpackPlugin({
53 | filename: config.build.index,
54 | template: 'index.html',
55 | inject: true,
56 | minify: {
57 | removeComments: true,
58 | collapseWhitespace: true,
59 | removeAttributeQuotes: true
60 | // more options:
61 | // https://github.com/kangax/html-minifier#options-quick-reference
62 | },
63 | // necessary to consistently work with multiple chunks via CommonsChunkPlugin
64 | chunksSortMode: 'dependency'
65 | }),
66 | // split vendor js into its own file
67 | new webpack.optimize.CommonsChunkPlugin({
68 | name: 'vendor',
69 | minChunks: function (module, count) {
70 | // any required modules inside node_modules are extracted to vendor
71 | return (
72 | module.resource &&
73 | /\.js$/.test(module.resource) &&
74 | module.resource.indexOf(
75 | path.join(__dirname, '../node_modules')
76 | ) === 0
77 | )
78 | }
79 | }),
80 | // extract webpack runtime and module manifest to its own file in order to
81 | // prevent vendor hash from being updated whenever app bundle is updated
82 | new webpack.optimize.CommonsChunkPlugin({
83 | name: 'manifest',
84 | chunks: ['vendor']
85 | }),
86 | // copy custom static assets
87 | new CopyWebpackPlugin([
88 | {
89 | from: path.resolve(__dirname, '../static'),
90 | to: config.build.assetsSubDirectory,
91 | ignore: ['.*']
92 | }
93 | ])
94 | ]
95 | })
96 |
97 | if (config.build.productionGzip) {
98 | var CompressionWebpackPlugin = require('compression-webpack-plugin')
99 |
100 | webpackConfig.plugins.push(
101 | new CompressionWebpackPlugin({
102 | asset: '[path].gz[query]',
103 | algorithm: 'gzip',
104 | test: new RegExp(
105 | '\\.(' +
106 | config.build.productionGzipExtensions.join('|') +
107 | ')$'
108 | ),
109 | threshold: 10240,
110 | minRatio: 0.8
111 | })
112 | )
113 | }
114 |
115 | if (config.build.bundleAnalyzerReport) {
116 | var BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
117 | webpackConfig.plugins.push(new BundleAnalyzerPlugin())
118 | }
119 |
120 | module.exports = webpackConfig
121 |
--------------------------------------------------------------------------------
/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 | staticPath: './static',
12 | productionSourceMap: true,
13 | // Gzip off by default as many popular static hosts such as
14 | // Surge or Netlify already gzip all static assets for you.
15 | // Before setting to `true`, make sure to:
16 | // npm install --save-dev compression-webpack-plugin
17 | productionGzip: false,
18 | productionGzipExtensions: ['js', 'css'],
19 | // Run the build command with an extra argument to
20 | // View the bundle analyzer report after build finishes:
21 | // `npm run build --report`
22 | // Set to `true` or `false` to always turn it on or off
23 | bundleAnalyzerReport: process.env.npm_config_report
24 | },
25 | dev: {
26 | env: require('./dev.env'),
27 | port: 8090,
28 | autoOpenBrowser: true,
29 | assetsSubDirectory: 'static',
30 | assetsPublicPath: '/',
31 | staticPath: '/static/',
32 | proxyTable: {},
33 | // CSS Sourcemaps off by default because relative paths are "buggy"
34 | // with this option, according to the CSS-Loader README
35 | // (https://github.com/webpack/css-loader#sourcemaps)
36 | // In our experience, they generally work as expected,
37 | // just be aware of this issue when enabling this option.
38 | cssSourceMap: false
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/config/prod.env.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | NODE_ENV: '"production"'
3 | }
4 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | mi_vue
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
22 |
23 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "mi_vue",
3 | "version": "1.0.0",
4 | "description": "A Vue.js project",
5 | "author": "cqu <1300084719@qq.com>",
6 | "private": true,
7 | "scripts": {
8 | "dev": "node build/dev-server.js",
9 | "start": "node build/dev-server.js",
10 | "build": "node build/build.js"
11 | },
12 | "dependencies": {
13 | "element-ui": "^1.4.1",
14 | "vue": "^2.3.3",
15 | "vue-resource": "^1.3.4",
16 | "vue-router": "^2.6.0",
17 | "vue-video-player": "^3.1.4"
18 | },
19 | "devDependencies": {
20 | "autoprefixer": "^7.1.2",
21 | "babel-core": "^6.22.1",
22 | "babel-loader": "^7.1.1",
23 | "babel-plugin-transform-runtime": "^6.22.0",
24 | "babel-preset-env": "^1.3.2",
25 | "babel-preset-stage-2": "^6.22.0",
26 | "babel-register": "^6.22.0",
27 | "chalk": "^2.0.1",
28 | "connect-history-api-fallback": "^1.3.0",
29 | "copy-webpack-plugin": "^4.0.1",
30 | "css-loader": "^0.28.0",
31 | "cssnano": "^3.10.0",
32 | "eventsource-polyfill": "^0.9.6",
33 | "express": "^4.14.1",
34 | "extract-text-webpack-plugin": "^2.0.0",
35 | "file-loader": "^0.11.1",
36 | "friendly-errors-webpack-plugin": "^1.1.3",
37 | "html-webpack-plugin": "^2.28.0",
38 | "http-proxy-middleware": "^0.17.3",
39 | "webpack-bundle-analyzer": "^2.2.1",
40 | "semver": "^5.3.0",
41 | "shelljs": "^0.7.6",
42 | "opn": "^5.1.0",
43 | "optimize-css-assets-webpack-plugin": "^2.0.0",
44 | "ora": "^1.2.0",
45 | "rimraf": "^2.6.0",
46 | "url-loader": "^0.5.8",
47 | "vue-loader": "^12.1.0",
48 | "vue-style-loader": "^3.0.1",
49 | "vue-template-compiler": "^2.3.3",
50 | "webpack": "^2.6.1",
51 | "webpack-dev-middleware": "^1.10.0",
52 | "webpack-hot-middleware": "^2.18.0",
53 | "webpack-merge": "^4.1.0"
54 | },
55 | "engines": {
56 | "node": ">= 4.0.0",
57 | "npm": ">= 3.0.0"
58 | },
59 | "browserslist": [
60 | "> 1%",
61 | "last 2 versions",
62 | "not ie <= 8"
63 | ]
64 | }
65 |
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
16 |
17 |
32 |
--------------------------------------------------------------------------------
/src/assets/css/base.css:
--------------------------------------------------------------------------------
1 | *{
2 | margin: 0;
3 | padding: 0;
4 | }
5 | html {
6 | width: 100%;
7 | height: 100%;
8 | }
9 |
10 | body {
11 | font-family: Helvetica, Arial, "Microsoft Yahei", "Hiragino Sans GB", "Heiti SC", "WenQuanYi Micro Hei", sans-serif;
12 | width: 100%;
13 | height: 100%;
14 | }
15 |
16 | ul {
17 | margin: 0;
18 | padding: 0;
19 | list-style: none;
20 | }
21 |
22 | .clearfix:after {
23 | content: ".";
24 | display: block;
25 | height: 0;
26 | clear: both;
27 | visibility: hidden
28 | }
29 | .clearfix {
30 | *+height: 1%;
31 | }
32 |
33 | a {
34 | text-decoration: none;
35 | color: #333;
36 | }
37 |
--------------------------------------------------------------------------------
/src/assets/css/jm_GoodsTopBox.css:
--------------------------------------------------------------------------------
1 | ul {
2 | margin: 0;
3 | padding: 0;
4 | list-style: none;
5 | }
6 |
7 | .clearfix:after {
8 | content: ".";
9 | display: block;
10 | height: 0;
11 | clear: both;
12 | visibility: hidden
13 | }
14 | .clearfix {
15 | *+height: 1%;
16 | }
17 |
18 | a {
19 | text-decoration: none;
20 | color: #333;
21 | }
22 |
23 | .box-container{
24 | width: 100%;
25 | height: auto;
26 | background-color: #f5f5f5;
27 | /*margin-bottom: 26px;*/
28 | padding-top: 60px;
29 | }
30 |
31 | .boxs{
32 | width: 90%;
33 | height: auto;
34 | margin: 0 auto;
35 | position: relative;
36 | }
37 |
38 | .boxs-top{
39 | width: 100%;
40 | height: 58px;
41 | }
42 |
43 | .top-title{
44 | color: #333333;
45 | float: left;
46 | font-size: 22px;
47 | font-weight: 200;
48 | line-height: 58px;
49 | margin:0;
50 | }
51 |
52 | .top-sub{
53 | color: #424242;
54 | float: right;
55 | display: block;
56 | font-size: 16px;
57 | line-height: 58px;
58 | cursor: pointer;
59 | }
60 | .top-sub:hover{
61 | color: #ff6700;
62 | }
63 |
64 | .sub-icon{
65 | color: #b0b0b0;
66 | font-size: 20px;
67 | }
68 | .sub-icon:hover{
69 | color: #ff6700;
70 | }
71 |
72 | .box-left{
73 | float: left;
74 | width: 20%;
75 | height: 614px;
76 | cursor: pointer;
77 | transition:all 0.3s;
78 | }
79 | .box-left img{
80 | width: 100%;
81 | height: 614px;
82 | }
83 | .box-left:hover,.box-item:hover{
84 | transform: translateY(-1px);
85 | box-shadow: 5px 5px 20px #ccc;
86 | }
87 |
88 | .box-right{
89 | float: left;
90 | width: 80%;
91 | height: 628px;
92 | }
93 |
94 | .box-list{
95 | width: 100%;
96 | height: 100%;
97 | background: #f5f5f5;
98 | display: flex;
99 | justify-content:flex-start;
100 | flex-flow:row wrap;
101 | list-style: none;
102 | }
103 |
104 | /*.box-item{
105 | width: 234px;
106 | height: 260px;
107 | padding: 20px 0;
108 | background: #fff;
109 | position: relative;
110 | margin: 0 0 14px 20px;
111 | transition:all 0.3s;
112 | }*/
113 | .box-item{
114 | width: 23%;
115 | height: auto;
116 | padding: 20px 0;
117 | background: #fff;
118 | position: relative;
119 | margin-left: 2%;
120 | margin-bottom: 16px;
121 | -webkit-transition: all 0.3s;
122 | transition: all 0.3s;
123 | }
124 |
125 | .discount-label{
126 | width: 64px;
127 | height: 20px;
128 | line-height: 20px;
129 | position: absolute;
130 | top: 0;
131 | left: 50%;
132 | margin-left: -32px;
133 | font-size: 12px;
134 | color: #fff;
135 | text-align: center;
136 | z-index: 4;
137 | }
138 |
139 | .free { background-color: #ffac13; }
140 | .new { background-color: #83c44e; }
141 | .discount { background-color: #e53935; }
142 |
143 |
144 | .old-price{
145 | color: #b0b0b0;
146 | text-decoration: line-through;
147 | }
148 |
149 | .box-right img{
150 | display: block;
151 | width: 160px;
152 | height: 160px;
153 | margin: 0 auto;
154 | }
155 |
156 | .box-title{
157 | font-size: 14px;
158 | color: #333;
159 | text-align: center;
160 | font-weight: normal;
161 | }
162 |
163 | .box-desc{
164 | height: 18px;
165 | font-size: 12px;
166 | text-align: center;
167 | color: #b0b0b0;
168 | overflow: hidden;
169 | margin: 0 10px 10px;
170 | text-overflow:ellipsis;
171 | white-space: nowrap;
172 | }
173 |
174 | .box-price{
175 | color: #ff6700;
176 | font-size: 14px;
177 | text-align: center;
178 | }
179 |
180 |
181 | /*@import url(https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.css);*/
--------------------------------------------------------------------------------
/src/assets/css/jm_topbar.css:
--------------------------------------------------------------------------------
1 | body{
2 | margin: 0 0;
3 | }
4 | .clearfix:after {
5 | content: ".";
6 | display: block;
7 | height: 0;
8 | clear: both;
9 | visibility: hidden
10 | }
11 | .clearfix {
12 | *+height: 1%;
13 | }
14 |
15 |
16 | .top-container{
17 | width: 100%;
18 | height: 40px;
19 | background-color: #333333;
20 | }
21 |
22 | .jm .top-bar{
23 | width: 90%;
24 | margin: 0 auto;
25 | position: relative;
26 | font-size: 12px;
27 | z-index: 11;
28 | }
29 |
30 | .jm .topbar-nav{
31 | float: left;
32 | display: inline-block;
33 | height: 40px;
34 | line-height: 40px;
35 | overflow: hidden;
36 | }
37 |
38 | .jm .nav-wrap{
39 | display: inline-block;
40 | margin: 0;
41 | padding: 0;
42 | list-style: none;
43 | }
44 |
45 | .jm .nav-wrap>.nav{
46 | display: inline-block;
47 | text-decoration: none;
48 | height: 40px;
49 | line-height: 40px;
50 | padding-left: 5px;
51 | }
52 |
53 | .jm .nav-wrap>.nav>.nav-name{
54 | display: inline-block;
55 | text-decoration: none;
56 | font-size: 12px;
57 | color: #b0b0b0;
58 |
59 | }
60 | .jm .nav-wrap>.nav>.nav-name:hover{
61 | color: #fff;
62 | }
63 |
64 | .jm .nav-wrap>.nav>.nav-separate{
65 | display: inline-block;
66 | color: #b0b0b0;
67 | margin-left: 5px;
68 | }
69 |
70 |
71 | .jm .topbar-info{
72 | position: absolute;
73 | top: 0;
74 | right: 140px;
75 | height: 40px;
76 | line-height: 40px;
77 | }
78 |
79 | .jm .topbar-info>a{
80 | color: #b0b0b0;
81 | text-decoration: none;
82 | }
83 | .jm .topbar-info a:hover{
84 | color: #ffffff;
85 | }
86 |
87 | .jm .topbar-info>.nav-separate,.nav-wrap>.nav-separate{
88 | color: #b0b0b0;
89 | }
90 |
91 | .jm .topbar-cart{
92 | position: relative;
93 | float: right;
94 | width: 120px;
95 | height: 40px;
96 | line-height: 40px;
97 | cursor: pointer;
98 | background: #424242;
99 | }
100 |
101 | .jm .topbar-cart>.active{
102 | background: #ffffff;
103 | }
104 |
105 | .jm .topbar-cart>.cart :hover{
106 | color: #ff6700;
107 | }
108 |
109 | .jm .topbar-cart>.cart>a{
110 | display: block;
111 | width: 100%;
112 | height: 100%;
113 | padding-left: 40px;
114 | color: #b0b0b0;
115 | text-decoration: none;
116 | box-sizing:border-box;
117 | }
118 |
119 | .jm .topbar-cart>.cart>span{
120 | color: #b0b0b0;
121 | }
122 |
123 | .jm .topbar-cart>.cart>.icon-cart{
124 | position: absolute;
125 | left: 15px;
126 | top:10px;
127 | font-size: 20px;
128 | color: #b0b0b0;
129 | }
130 |
131 | .jm .topbar-cart>.cart-list{
132 | position: absolute;
133 | width: 316px;
134 | height: 96px;
135 | top: 40px;
136 | right: 0;
137 | line-height: 96px;
138 | text-align: center;
139 | color: #b0b0b0;
140 | background: #ffffff;
141 | box-shadow: 0 0 5px #ccc;
142 | overflow: hidden;
143 | z-index: 10;
144 | }
145 |
146 | .jm .cart-list.fadein-transition{
147 | transition: all 10s ease;
148 | height: 96px;
149 | }
150 |
151 | .jm .fadein-enter, .fadein-leave{
152 | height: 0;
153 | }
154 |
155 |
156 | /*@import url(https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.css);*/
--------------------------------------------------------------------------------
/src/assets/img/1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/src/assets/img/1.jpg
--------------------------------------------------------------------------------
/src/assets/img/2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/src/assets/img/2.jpg
--------------------------------------------------------------------------------
/src/assets/img/3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/src/assets/img/3.jpg
--------------------------------------------------------------------------------
/src/assets/img/bg-thin.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/src/assets/img/bg-thin.jpg
--------------------------------------------------------------------------------
/src/assets/img/chevron-left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/src/assets/img/chevron-left.png
--------------------------------------------------------------------------------
/src/assets/img/chevron-right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/src/assets/img/chevron-right.png
--------------------------------------------------------------------------------
/src/assets/img/goodstopbox_1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/src/assets/img/goodstopbox_1.jpg
--------------------------------------------------------------------------------
/src/assets/img/icon-mi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/src/assets/img/icon-mi.png
--------------------------------------------------------------------------------
/src/assets/img/icon-search-white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/src/assets/img/icon-search-white.png
--------------------------------------------------------------------------------
/src/assets/img/icon-search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/src/assets/img/icon-search.png
--------------------------------------------------------------------------------
/src/assets/img/thin-tv01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/src/assets/img/thin-tv01.png
--------------------------------------------------------------------------------
/src/assets/img/thin-tv02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/src/assets/img/thin-tv02.png
--------------------------------------------------------------------------------
/src/assets/img/top-end.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/src/assets/img/top-end.jpg
--------------------------------------------------------------------------------
/src/assets/img/top-tv.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/src/assets/img/top-tv.png
--------------------------------------------------------------------------------
/src/assets/img/top-yu.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/src/assets/img/top-yu.jpg
--------------------------------------------------------------------------------
/src/assets/img/tverweima.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/src/assets/img/tverweima.png
--------------------------------------------------------------------------------
/src/assets/img/vedio.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/src/assets/img/vedio.png
--------------------------------------------------------------------------------
/src/assets/img/win.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/src/assets/img/win.gif
--------------------------------------------------------------------------------
/src/assets/js/gVerify.js:
--------------------------------------------------------------------------------
1 | !(function(window, document) {
2 | function GVerify(options) { //创建一个图形验证码对象,接收options对象为参数
3 | this.options = { //默认options参数值
4 | id: "", //容器Id
5 | canvasId: "verifyCanvas", //canvas的ID
6 | width: "100", //默认canvas宽度
7 | height: "30", //默认canvas高度
8 | type: "blend", //图形验证码默认类型blend:数字字母混合类型、number:纯数字、letter:纯字母
9 | code: ""
10 | }
11 |
12 | if(Object.prototype.toString.call(options) == "[object Object]"){//判断传入参数类型
13 | for(var i in options) { //根据传入的参数,修改默认参数值
14 | this.options[i] = options[i];
15 | }
16 | }else{
17 | this.options.id = options;
18 | }
19 |
20 | this.options.numArr = "0,1,2,3,4,5,6,7,8,9".split(",");
21 | this.options.letterArr = getAllLetter();
22 |
23 | this._init();
24 | this.refresh();
25 | }
26 |
27 | GVerify.prototype = {
28 | /**版本号**/
29 | version: '1.0.0',
30 |
31 | /**初始化方法**/
32 | _init: function() {
33 | var con = document.getElementById(this.options.id);
34 | var canvas = document.createElement("canvas");
35 | this.options.width = con.offsetWidth > 0 ? con.offsetWidth : "100";
36 | this.options.height = con.offsetHeight > 0 ? con.offsetHeight : "30";
37 | canvas.id = this.options.canvasId;
38 | canvas.width = this.options.width;
39 | canvas.height = this.options.height;
40 | canvas.style.cursor = "pointer";
41 | canvas.innerHTML = "您的浏览器版本不支持canvas";
42 | con.appendChild(canvas);
43 | var parent = this;
44 | canvas.onclick = function(){
45 | parent.refresh();
46 | }
47 | },
48 |
49 | /**生成验证码**/
50 | refresh: function() {
51 | var canvas = document.getElementById(this.options.canvasId);
52 | if(canvas.getContext) {
53 | var ctx = canvas.getContext('2d');
54 | }
55 | ctx.textBaseline = "middle";
56 |
57 | ctx.fillStyle = randomColor(180, 240);
58 | ctx.fillRect(0, 0, this.options.width, this.options.height);
59 |
60 | if(this.options.type == "blend") { //判断验证码类型
61 | var txtArr = this.options.numArr.concat(this.options.letterArr);
62 | } else if(this.options.type == "number") {
63 | var txtArr = this.options.numArr;
64 | } else {
65 | var txtArr = this.options.letterArr;
66 | }
67 |
68 | for(var i = 1; i <= 4; i++) {
69 | var txt = txtArr[randomNum(0, txtArr.length)];
70 | this.options.code += txt;
71 | ctx.font = randomNum(this.options.height/2, this.options.height) + 'px SimHei'; //随机生成字体大小
72 | ctx.fillStyle = randomColor(50, 160); //随机生成字体颜色
73 | ctx.shadowOffsetX = randomNum(-3, 3);
74 | ctx.shadowOffsetY = randomNum(-3, 3);
75 | ctx.shadowBlur = randomNum(-3, 3);
76 | ctx.shadowColor = "rgba(0, 0, 0, 0.3)";
77 | var x = this.options.width / 5 * i;
78 | var y = this.options.height / 2;
79 | var deg = randomNum(-30, 30);
80 | /**设置旋转角度和坐标原点**/
81 | ctx.translate(x, y);
82 | ctx.rotate(deg * Math.PI / 180);
83 | ctx.fillText(txt, 0, 0);
84 | /**恢复旋转角度和坐标原点**/
85 | ctx.rotate(-deg * Math.PI / 180);
86 | ctx.translate(-x, -y);
87 | }
88 | /**绘制干扰线**/
89 | for(var i = 0; i < 4; i++) {
90 | ctx.strokeStyle = randomColor(40, 180);
91 | ctx.beginPath();
92 | ctx.moveTo(randomNum(0, this.options.width), randomNum(0, this.options.height));
93 | ctx.lineTo(randomNum(0, this.options.width), randomNum(0, this.options.height));
94 | ctx.stroke();
95 | }
96 | /**绘制干扰点**/
97 | for(var i = 0; i < this.options.width/4; i++) {
98 | ctx.fillStyle = randomColor(0, 255);
99 | ctx.beginPath();
100 | ctx.arc(randomNum(0, this.options.width), randomNum(0, this.options.height), 1, 0, 2 * Math.PI);
101 | ctx.fill();
102 | }
103 | },
104 |
105 | /**验证验证码**/
106 | validate: function(code){
107 | var code = code.toLowerCase();
108 | var v_code = this.options.code.toLowerCase();
109 | if(code == v_code){
110 | return true;
111 | }else{
112 | return false;
113 | }
114 | }
115 | }
116 | /**生成字母数组**/
117 | function getAllLetter() {
118 | var letterStr = "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z";
119 | return letterStr.split(",");
120 | }
121 | /**生成一个随机数**/
122 | function randomNum(min, max) {
123 | return Math.floor(Math.random() * (max - min) + min);
124 | }
125 | /**生成一个随机色**/
126 | function randomColor(min, max) {
127 | var r = randomNum(min, max);
128 | var g = randomNum(min, max);
129 | var b = randomNum(min, max);
130 | return "rgb(" + r + "," + g + "," + b + ")";
131 | }
132 | window.GVerify = GVerify;
133 | })(window, document);
--------------------------------------------------------------------------------
/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/src/assets/logo.png
--------------------------------------------------------------------------------
/src/assets/style/font-awesome-4.7.0/HELP-US-OUT.txt:
--------------------------------------------------------------------------------
1 | I hope you love Font Awesome. If you've found it useful, please do me a favor and check out my latest project,
2 | Fort Awesome (https://fortawesome.com). It makes it easy to put the perfect icons on your website. Choose from our awesome,
3 | comprehensive icon sets or copy and paste your own.
4 |
5 | Please. Check it out.
6 |
7 | -Dave Gandy
8 |
--------------------------------------------------------------------------------
/src/assets/style/font-awesome-4.7.0/fonts/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/src/assets/style/font-awesome-4.7.0/fonts/FontAwesome.otf
--------------------------------------------------------------------------------
/src/assets/style/font-awesome-4.7.0/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/src/assets/style/font-awesome-4.7.0/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/src/assets/style/font-awesome-4.7.0/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/src/assets/style/font-awesome-4.7.0/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/src/assets/style/font-awesome-4.7.0/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/src/assets/style/font-awesome-4.7.0/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/src/assets/style/font-awesome-4.7.0/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/src/assets/style/font-awesome-4.7.0/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/src/assets/style/font-awesome-4.7.0/less/animated.less:
--------------------------------------------------------------------------------
1 | // Animated Icons
2 | // --------------------------
3 |
4 | .@{fa-css-prefix}-spin {
5 | -webkit-animation: fa-spin 2s infinite linear;
6 | animation: fa-spin 2s infinite linear;
7 | }
8 |
9 | .@{fa-css-prefix}-pulse {
10 | -webkit-animation: fa-spin 1s infinite steps(8);
11 | animation: fa-spin 1s infinite steps(8);
12 | }
13 |
14 | @-webkit-keyframes fa-spin {
15 | 0% {
16 | -webkit-transform: rotate(0deg);
17 | transform: rotate(0deg);
18 | }
19 | 100% {
20 | -webkit-transform: rotate(359deg);
21 | transform: rotate(359deg);
22 | }
23 | }
24 |
25 | @keyframes fa-spin {
26 | 0% {
27 | -webkit-transform: rotate(0deg);
28 | transform: rotate(0deg);
29 | }
30 | 100% {
31 | -webkit-transform: rotate(359deg);
32 | transform: rotate(359deg);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/assets/style/font-awesome-4.7.0/less/bordered-pulled.less:
--------------------------------------------------------------------------------
1 | // Bordered & Pulled
2 | // -------------------------
3 |
4 | .@{fa-css-prefix}-border {
5 | padding: .2em .25em .15em;
6 | border: solid .08em @fa-border-color;
7 | border-radius: .1em;
8 | }
9 |
10 | .@{fa-css-prefix}-pull-left { float: left; }
11 | .@{fa-css-prefix}-pull-right { float: right; }
12 |
13 | .@{fa-css-prefix} {
14 | &.@{fa-css-prefix}-pull-left { margin-right: .3em; }
15 | &.@{fa-css-prefix}-pull-right { margin-left: .3em; }
16 | }
17 |
18 | /* Deprecated as of 4.4.0 */
19 | .pull-right { float: right; }
20 | .pull-left { float: left; }
21 |
22 | .@{fa-css-prefix} {
23 | &.pull-left { margin-right: .3em; }
24 | &.pull-right { margin-left: .3em; }
25 | }
26 |
--------------------------------------------------------------------------------
/src/assets/style/font-awesome-4.7.0/less/core.less:
--------------------------------------------------------------------------------
1 | // Base Class Definition
2 | // -------------------------
3 |
4 | .@{fa-css-prefix} {
5 | display: inline-block;
6 | font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration
7 | font-size: inherit; // can't have font-size inherit on line above, so need to override
8 | text-rendering: auto; // optimizelegibility throws things off #1094
9 | -webkit-font-smoothing: antialiased;
10 | -moz-osx-font-smoothing: grayscale;
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/src/assets/style/font-awesome-4.7.0/less/fixed-width.less:
--------------------------------------------------------------------------------
1 | // Fixed Width Icons
2 | // -------------------------
3 | .@{fa-css-prefix}-fw {
4 | width: (18em / 14);
5 | text-align: center;
6 | }
7 |
--------------------------------------------------------------------------------
/src/assets/style/font-awesome-4.7.0/less/font-awesome.less:
--------------------------------------------------------------------------------
1 | /*!
2 | * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4 | */
5 |
6 | @import "variables.less";
7 | @import "mixins.less";
8 | @import "path.less";
9 | @import "core.less";
10 | @import "larger.less";
11 | @import "fixed-width.less";
12 | @import "list.less";
13 | @import "bordered-pulled.less";
14 | @import "animated.less";
15 | @import "rotated-flipped.less";
16 | @import "stacked.less";
17 | @import "icons.less";
18 | @import "screen-reader.less";
19 |
--------------------------------------------------------------------------------
/src/assets/style/font-awesome-4.7.0/less/larger.less:
--------------------------------------------------------------------------------
1 | // Icon Sizes
2 | // -------------------------
3 |
4 | /* makes the font 33% larger relative to the icon container */
5 | .@{fa-css-prefix}-lg {
6 | font-size: (4em / 3);
7 | line-height: (3em / 4);
8 | vertical-align: -15%;
9 | }
10 | .@{fa-css-prefix}-2x { font-size: 2em; }
11 | .@{fa-css-prefix}-3x { font-size: 3em; }
12 | .@{fa-css-prefix}-4x { font-size: 4em; }
13 | .@{fa-css-prefix}-5x { font-size: 5em; }
14 |
--------------------------------------------------------------------------------
/src/assets/style/font-awesome-4.7.0/less/list.less:
--------------------------------------------------------------------------------
1 | // List Icons
2 | // -------------------------
3 |
4 | .@{fa-css-prefix}-ul {
5 | padding-left: 0;
6 | margin-left: @fa-li-width;
7 | list-style-type: none;
8 | > li { position: relative; }
9 | }
10 | .@{fa-css-prefix}-li {
11 | position: absolute;
12 | left: -@fa-li-width;
13 | width: @fa-li-width;
14 | top: (2em / 14);
15 | text-align: center;
16 | &.@{fa-css-prefix}-lg {
17 | left: (-@fa-li-width + (4em / 14));
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/assets/style/font-awesome-4.7.0/less/mixins.less:
--------------------------------------------------------------------------------
1 | // Mixins
2 | // --------------------------
3 |
4 | .fa-icon() {
5 | display: inline-block;
6 | font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration
7 | font-size: inherit; // can't have font-size inherit on line above, so need to override
8 | text-rendering: auto; // optimizelegibility throws things off #1094
9 | -webkit-font-smoothing: antialiased;
10 | -moz-osx-font-smoothing: grayscale;
11 |
12 | }
13 |
14 | .fa-icon-rotate(@degrees, @rotation) {
15 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})";
16 | -webkit-transform: rotate(@degrees);
17 | -ms-transform: rotate(@degrees);
18 | transform: rotate(@degrees);
19 | }
20 |
21 | .fa-icon-flip(@horiz, @vert, @rotation) {
22 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)";
23 | -webkit-transform: scale(@horiz, @vert);
24 | -ms-transform: scale(@horiz, @vert);
25 | transform: scale(@horiz, @vert);
26 | }
27 |
28 |
29 | // Only display content to screen readers. A la Bootstrap 4.
30 | //
31 | // See: http://a11yproject.com/posts/how-to-hide-content/
32 |
33 | .sr-only() {
34 | position: absolute;
35 | width: 1px;
36 | height: 1px;
37 | padding: 0;
38 | margin: -1px;
39 | overflow: hidden;
40 | clip: rect(0,0,0,0);
41 | border: 0;
42 | }
43 |
44 | // Use in conjunction with .sr-only to only display content when it's focused.
45 | //
46 | // Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
47 | //
48 | // Credit: HTML5 Boilerplate
49 |
50 | .sr-only-focusable() {
51 | &:active,
52 | &:focus {
53 | position: static;
54 | width: auto;
55 | height: auto;
56 | margin: 0;
57 | overflow: visible;
58 | clip: auto;
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/src/assets/style/font-awesome-4.7.0/less/path.less:
--------------------------------------------------------------------------------
1 | /* FONT PATH
2 | * -------------------------- */
3 |
4 | @font-face {
5 | font-family: 'FontAwesome';
6 | src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}');
7 | src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'),
8 | url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'),
9 | url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'),
10 | url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'),
11 | url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg');
12 | // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts
13 | font-weight: normal;
14 | font-style: normal;
15 | }
16 |
--------------------------------------------------------------------------------
/src/assets/style/font-awesome-4.7.0/less/rotated-flipped.less:
--------------------------------------------------------------------------------
1 | // Rotated & Flipped Icons
2 | // -------------------------
3 |
4 | .@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); }
5 | .@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); }
6 | .@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); }
7 |
8 | .@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); }
9 | .@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); }
10 |
11 | // Hook for IE8-9
12 | // -------------------------
13 |
14 | :root .@{fa-css-prefix}-rotate-90,
15 | :root .@{fa-css-prefix}-rotate-180,
16 | :root .@{fa-css-prefix}-rotate-270,
17 | :root .@{fa-css-prefix}-flip-horizontal,
18 | :root .@{fa-css-prefix}-flip-vertical {
19 | filter: none;
20 | }
21 |
--------------------------------------------------------------------------------
/src/assets/style/font-awesome-4.7.0/less/screen-reader.less:
--------------------------------------------------------------------------------
1 | // Screen Readers
2 | // -------------------------
3 |
4 | .sr-only { .sr-only(); }
5 | .sr-only-focusable { .sr-only-focusable(); }
6 |
--------------------------------------------------------------------------------
/src/assets/style/font-awesome-4.7.0/less/stacked.less:
--------------------------------------------------------------------------------
1 | // Stacked Icons
2 | // -------------------------
3 |
4 | .@{fa-css-prefix}-stack {
5 | position: relative;
6 | display: inline-block;
7 | width: 2em;
8 | height: 2em;
9 | line-height: 2em;
10 | vertical-align: middle;
11 | }
12 | .@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x {
13 | position: absolute;
14 | left: 0;
15 | width: 100%;
16 | text-align: center;
17 | }
18 | .@{fa-css-prefix}-stack-1x { line-height: inherit; }
19 | .@{fa-css-prefix}-stack-2x { font-size: 2em; }
20 | .@{fa-css-prefix}-inverse { color: @fa-inverse; }
21 |
--------------------------------------------------------------------------------
/src/assets/style/font-awesome-4.7.0/scss/_animated.scss:
--------------------------------------------------------------------------------
1 | // Spinning Icons
2 | // --------------------------
3 |
4 | .#{$fa-css-prefix}-spin {
5 | -webkit-animation: fa-spin 2s infinite linear;
6 | animation: fa-spin 2s infinite linear;
7 | }
8 |
9 | .#{$fa-css-prefix}-pulse {
10 | -webkit-animation: fa-spin 1s infinite steps(8);
11 | animation: fa-spin 1s infinite steps(8);
12 | }
13 |
14 | @-webkit-keyframes fa-spin {
15 | 0% {
16 | -webkit-transform: rotate(0deg);
17 | transform: rotate(0deg);
18 | }
19 | 100% {
20 | -webkit-transform: rotate(359deg);
21 | transform: rotate(359deg);
22 | }
23 | }
24 |
25 | @keyframes fa-spin {
26 | 0% {
27 | -webkit-transform: rotate(0deg);
28 | transform: rotate(0deg);
29 | }
30 | 100% {
31 | -webkit-transform: rotate(359deg);
32 | transform: rotate(359deg);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/assets/style/font-awesome-4.7.0/scss/_bordered-pulled.scss:
--------------------------------------------------------------------------------
1 | // Bordered & Pulled
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-border {
5 | padding: .2em .25em .15em;
6 | border: solid .08em $fa-border-color;
7 | border-radius: .1em;
8 | }
9 |
10 | .#{$fa-css-prefix}-pull-left { float: left; }
11 | .#{$fa-css-prefix}-pull-right { float: right; }
12 |
13 | .#{$fa-css-prefix} {
14 | &.#{$fa-css-prefix}-pull-left { margin-right: .3em; }
15 | &.#{$fa-css-prefix}-pull-right { margin-left: .3em; }
16 | }
17 |
18 | /* Deprecated as of 4.4.0 */
19 | .pull-right { float: right; }
20 | .pull-left { float: left; }
21 |
22 | .#{$fa-css-prefix} {
23 | &.pull-left { margin-right: .3em; }
24 | &.pull-right { margin-left: .3em; }
25 | }
26 |
--------------------------------------------------------------------------------
/src/assets/style/font-awesome-4.7.0/scss/_core.scss:
--------------------------------------------------------------------------------
1 | // Base Class Definition
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix} {
5 | display: inline-block;
6 | font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration
7 | font-size: inherit; // can't have font-size inherit on line above, so need to override
8 | text-rendering: auto; // optimizelegibility throws things off #1094
9 | -webkit-font-smoothing: antialiased;
10 | -moz-osx-font-smoothing: grayscale;
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/src/assets/style/font-awesome-4.7.0/scss/_fixed-width.scss:
--------------------------------------------------------------------------------
1 | // Fixed Width Icons
2 | // -------------------------
3 | .#{$fa-css-prefix}-fw {
4 | width: (18em / 14);
5 | text-align: center;
6 | }
7 |
--------------------------------------------------------------------------------
/src/assets/style/font-awesome-4.7.0/scss/_larger.scss:
--------------------------------------------------------------------------------
1 | // Icon Sizes
2 | // -------------------------
3 |
4 | /* makes the font 33% larger relative to the icon container */
5 | .#{$fa-css-prefix}-lg {
6 | font-size: (4em / 3);
7 | line-height: (3em / 4);
8 | vertical-align: -15%;
9 | }
10 | .#{$fa-css-prefix}-2x { font-size: 2em; }
11 | .#{$fa-css-prefix}-3x { font-size: 3em; }
12 | .#{$fa-css-prefix}-4x { font-size: 4em; }
13 | .#{$fa-css-prefix}-5x { font-size: 5em; }
14 |
--------------------------------------------------------------------------------
/src/assets/style/font-awesome-4.7.0/scss/_list.scss:
--------------------------------------------------------------------------------
1 | // List Icons
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-ul {
5 | padding-left: 0;
6 | margin-left: $fa-li-width;
7 | list-style-type: none;
8 | > li { position: relative; }
9 | }
10 | .#{$fa-css-prefix}-li {
11 | position: absolute;
12 | left: -$fa-li-width;
13 | width: $fa-li-width;
14 | top: (2em / 14);
15 | text-align: center;
16 | &.#{$fa-css-prefix}-lg {
17 | left: -$fa-li-width + (4em / 14);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/assets/style/font-awesome-4.7.0/scss/_mixins.scss:
--------------------------------------------------------------------------------
1 | // Mixins
2 | // --------------------------
3 |
4 | @mixin fa-icon() {
5 | display: inline-block;
6 | font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration
7 | font-size: inherit; // can't have font-size inherit on line above, so need to override
8 | text-rendering: auto; // optimizelegibility throws things off #1094
9 | -webkit-font-smoothing: antialiased;
10 | -moz-osx-font-smoothing: grayscale;
11 |
12 | }
13 |
14 | @mixin fa-icon-rotate($degrees, $rotation) {
15 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})";
16 | -webkit-transform: rotate($degrees);
17 | -ms-transform: rotate($degrees);
18 | transform: rotate($degrees);
19 | }
20 |
21 | @mixin fa-icon-flip($horiz, $vert, $rotation) {
22 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)";
23 | -webkit-transform: scale($horiz, $vert);
24 | -ms-transform: scale($horiz, $vert);
25 | transform: scale($horiz, $vert);
26 | }
27 |
28 |
29 | // Only display content to screen readers. A la Bootstrap 4.
30 | //
31 | // See: http://a11yproject.com/posts/how-to-hide-content/
32 |
33 | @mixin sr-only {
34 | position: absolute;
35 | width: 1px;
36 | height: 1px;
37 | padding: 0;
38 | margin: -1px;
39 | overflow: hidden;
40 | clip: rect(0,0,0,0);
41 | border: 0;
42 | }
43 |
44 | // Use in conjunction with .sr-only to only display content when it's focused.
45 | //
46 | // Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
47 | //
48 | // Credit: HTML5 Boilerplate
49 |
50 | @mixin sr-only-focusable {
51 | &:active,
52 | &:focus {
53 | position: static;
54 | width: auto;
55 | height: auto;
56 | margin: 0;
57 | overflow: visible;
58 | clip: auto;
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/src/assets/style/font-awesome-4.7.0/scss/_path.scss:
--------------------------------------------------------------------------------
1 | /* FONT PATH
2 | * -------------------------- */
3 |
4 | @font-face {
5 | font-family: 'FontAwesome';
6 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}');
7 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'),
8 | url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'),
9 | url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'),
10 | url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'),
11 | url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg');
12 | // src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts
13 | font-weight: normal;
14 | font-style: normal;
15 | }
16 |
--------------------------------------------------------------------------------
/src/assets/style/font-awesome-4.7.0/scss/_rotated-flipped.scss:
--------------------------------------------------------------------------------
1 | // Rotated & Flipped Icons
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); }
5 | .#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); }
6 | .#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); }
7 |
8 | .#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); }
9 | .#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); }
10 |
11 | // Hook for IE8-9
12 | // -------------------------
13 |
14 | :root .#{$fa-css-prefix}-rotate-90,
15 | :root .#{$fa-css-prefix}-rotate-180,
16 | :root .#{$fa-css-prefix}-rotate-270,
17 | :root .#{$fa-css-prefix}-flip-horizontal,
18 | :root .#{$fa-css-prefix}-flip-vertical {
19 | filter: none;
20 | }
21 |
--------------------------------------------------------------------------------
/src/assets/style/font-awesome-4.7.0/scss/_screen-reader.scss:
--------------------------------------------------------------------------------
1 | // Screen Readers
2 | // -------------------------
3 |
4 | .sr-only { @include sr-only(); }
5 | .sr-only-focusable { @include sr-only-focusable(); }
6 |
--------------------------------------------------------------------------------
/src/assets/style/font-awesome-4.7.0/scss/_stacked.scss:
--------------------------------------------------------------------------------
1 | // Stacked Icons
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-stack {
5 | position: relative;
6 | display: inline-block;
7 | width: 2em;
8 | height: 2em;
9 | line-height: 2em;
10 | vertical-align: middle;
11 | }
12 | .#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x {
13 | position: absolute;
14 | left: 0;
15 | width: 100%;
16 | text-align: center;
17 | }
18 | .#{$fa-css-prefix}-stack-1x { line-height: inherit; }
19 | .#{$fa-css-prefix}-stack-2x { font-size: 2em; }
20 | .#{$fa-css-prefix}-inverse { color: $fa-inverse; }
21 |
--------------------------------------------------------------------------------
/src/assets/style/font-awesome-4.7.0/scss/font-awesome.scss:
--------------------------------------------------------------------------------
1 | /*!
2 | * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4 | */
5 |
6 | @import "variables";
7 | @import "mixins";
8 | @import "path";
9 | @import "core";
10 | @import "larger";
11 | @import "fixed-width";
12 | @import "list";
13 | @import "bordered-pulled";
14 | @import "animated";
15 | @import "rotated-flipped";
16 | @import "stacked";
17 | @import "icons";
18 | @import "screen-reader";
19 |
--------------------------------------------------------------------------------
/src/components/First.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
33 |
34 |
49 |
--------------------------------------------------------------------------------
/src/components/Goods.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
37 |
38 |
44 |
--------------------------------------------------------------------------------
/src/components/GoodsContent.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | -
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
79 |
80 |
88 |
--------------------------------------------------------------------------------
/src/components/GoodsDetail.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
24 |
25 |
31 |
--------------------------------------------------------------------------------
/src/components/GoodsTopBox.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
15 |
16 |
44 |
45 |
46 |
47 |
48 |
49 |
81 |
82 |
--------------------------------------------------------------------------------
/src/components/Hello.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
{{ msg }}
4 |
Essential Links
5 |
13 |
Ecosystem
14 |
20 |
21 |
22 |
23 |
33 |
34 |
35 |
54 |
--------------------------------------------------------------------------------
/src/components/HotProduct.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
{{title}}
5 |
6 | -
7 |
8 |
9 |
10 |
{{item.review}}
11 |
来自{{item.author}}的评论
12 |
{{item.name}}
13 |
{{item.price}}元
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
38 |
39 |
105 |
--------------------------------------------------------------------------------
/src/components/NavBar.vue:
--------------------------------------------------------------------------------
1 |
2 |
27 |
28 |
29 |
40 |
--------------------------------------------------------------------------------
/src/components/Recommand.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
为你推荐
5 |
6 |
7 |
8 |
9 |
10 |
11 | -
12 |
13 |
14 | {{item.name}}
15 |
16 | {{item.price}}元
17 | {{item.favorable}}人评论
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
76 |
77 |
137 |
--------------------------------------------------------------------------------
/src/components/TopBar.vue:
--------------------------------------------------------------------------------
1 |
2 |
48 |
49 |
50 |
95 |
96 |
--------------------------------------------------------------------------------
/src/components/TopSub.vue:
--------------------------------------------------------------------------------
1 |
2 |
70 |
71 |
72 |
73 |
86 |
87 |
207 |
--------------------------------------------------------------------------------
/src/components/common/GoodsContentSlide.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
{{ content.title }}
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
40 |
41 |
46 |
47 |
48 |
49 |
50 |
80 |
81 |
--------------------------------------------------------------------------------
/src/components/common/GoodsHeader.vue:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
20 |
21 |
--------------------------------------------------------------------------------
/src/components/common/GoodsLeft.vue:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
11 |
21 |
22 |
--------------------------------------------------------------------------------
/src/components/common/GoodsTop.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
{{ topTitle }}
4 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/src/components/common/slide.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
30 |
31 |
53 |
--------------------------------------------------------------------------------
/src/components/common/yxmvideo1.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
10 |
11 |
12 |
13 |
14 |
32 |
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/src/components/common/yxmvideo2.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
10 |
11 |
12 |
13 |
14 |
32 |
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/src/components/common/yxmvideo3.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
10 |
11 |
12 |
13 |
14 |
32 |
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/src/components/common/yxmvideo4.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
10 |
11 |
12 |
13 |
14 |
32 |
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/src/components/detail/NavBar.vue:
--------------------------------------------------------------------------------
1 |
2 |
27 |
28 |
29 |
40 |
--------------------------------------------------------------------------------
/src/components/detail/mitv.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
77 |
78 |
94 |
--------------------------------------------------------------------------------
/src/components/detail/sectionAtions.vue:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/src/components/detail/sectionAtions.vue
--------------------------------------------------------------------------------
/src/components/detail/sectionAtoms.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | 我是sectionAtoms
4 |
5 |
6 |
7 |
14 |
15 |
22 |
--------------------------------------------------------------------------------
/src/components/detail/sectionChildren.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | 全新的儿童模式
7 |
8 | 宝宝更开心,妈妈更放心
9 |
10 |
携手全国知名的儿童专家,推出科学的儿童电视模式,让妈妈更放心。
11 |
12 | -
13 |
14 | {{item.name}}
15 | {{item.tips}}
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/src/components/detail/sectionChip.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | {{ chiptit1 }}
{{ chiptit2 }}
7 |
8 |
9 | {{ chiptit3 }}
10 |
11 |
12 | -
13 |
{{ chip.t1 }}
14 | {{ chip.t2 }}
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
39 |
40 |
--------------------------------------------------------------------------------
/src/components/detail/sectionFeatures.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | -
6 |
7 |
8 | {{feat.text1}}
{{feat.text2}}
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
32 |
33 |
93 |
--------------------------------------------------------------------------------
/src/components/detail/sectionFooter.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
11 |
12 |
31 |
32 |
33 |
34 |
35 |
36 |
50 |
51 |
130 |
131 |
--------------------------------------------------------------------------------
/src/components/detail/sectionHdzone.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | {{hdtit1}}
7 |
8 |
9 | {{hdtit2}}
{{hdtit3}}
10 |
11 |
12 |
13 |
18 |
19 |
20 |
21 |
41 |
42 |
--------------------------------------------------------------------------------
/src/components/detail/sectionInstall.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | 我是sectionInstall
4 |
5 |
6 |
7 |
14 |
15 |
22 |
--------------------------------------------------------------------------------
/src/components/detail/sectionPlace.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | 令好莱坞导演称赞的
7 |
8 | 杜比全景声第一次进入客厅
9 |
10 |
全球每56个影厅中,只有1个是杜比全景声影厅,如今你在客厅就能体验到它的震撼。
11 |
了解杜比全景声 >
12 |
13 | -
14 | 杜比全景声
15 | 声音全方位萦绕
16 |
17 | -
18 |
19 | 向上反射技术
20 | 增加来自头顶的声音
21 |
22 | -
23 | 3D声场
24 | 13个发声单元
25 |
26 | -
27 | 音域宽广
28 |
29 | 30Hz-22KHz
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/src/components/detail/sectionReading.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | 我是sectionReading
4 |
5 |
6 |
7 |
14 |
15 |
22 |
--------------------------------------------------------------------------------
/src/components/detail/sectionRecommend.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
{{ retit1 }}
5 |
{{ retit2 }}
6 |
7 |
8 |
9 |
10 |
11 |
21 |
22 |
--------------------------------------------------------------------------------
/src/components/detail/sectionScreen.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | 我是sectionScreen
4 |
5 |
6 |
7 |
14 |
15 |
22 |
--------------------------------------------------------------------------------
/src/components/detail/sectionSmart.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {{ smarttit1 }}
{{ smarttit2 }}
6 |
7 |
{{ smarttit3 }}
8 |
9 |
10 | -
11 |
12 | {{ smart.titles }}
13 | {{ smart.tips }}
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
50 |
51 |
--------------------------------------------------------------------------------
/src/components/detail/sectionSound.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
大电视变身小管家
你的声音就是遥控器
6 |
按住遥控器语音键,就能对你家的智能设备发号施令。
7 |
8 | -
9 |
10 | {{item.text}}
11 |
12 |
13 |
14 |
15 | - 打开空气净化器
16 | - 打开米家台灯
17 | - 打开插座
18 | - 打开墙壁开关
19 | - 空调温度设置为25度
20 | - 打开家里的摄像头
21 | - 扫地
22 | - 米家IH电饭煲 烹饪完成
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/src/components/detail/sectionStory.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | 我是sectionStory
4 |
5 |
6 |
7 |
14 |
15 |
22 |
23 |
--------------------------------------------------------------------------------
/src/components/detail/sectionThin.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
4.9mm,我所向往的向往
7 |
超薄,晶莹剔透得如玻璃一般,它既是电视,也是一件令人向往的艺术品。
8 |
了解设计和工艺 >
9 |
10 | -
11 | 4.9mm
12 | 极超薄
13 |
14 | -
15 | 无边框
16 | 沉浸式设计
17 |
18 |
19 |
20 |
21 |
25 |
26 |
27 |
28 |
29 |
36 |
37 |
164 |
--------------------------------------------------------------------------------
/src/components/detail/sectionVip.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | 小米电视会员权益
9 |
10 | 一个会员,双重特权
11 |
12 |
13 | 成为小米电视会员之后,就能享受“小米电视会员年卡(原价498元)+爱奇艺VIP会员年卡(原价198元)”双卡
14 |
15 | 的全部权益,价值696元,随电视加价购可享受小米补贴价,超值特惠首年仅需199元。
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
31 |
32 |
39 |
--------------------------------------------------------------------------------
/src/components/detail/sectionVoice.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | 我是sectionVoice
4 |
5 |
6 |
7 |
14 |
15 |
22 |
--------------------------------------------------------------------------------
/src/components/mi_login.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
16 |
17 |
18 |
20 |
21 |
22 |
23 |
24 | 登录
25 |
26 |
27 | 取消
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |

36 |
37 |
38 |
39 |
58 |
59 |
60 |
61 |
80 |
81 |
82 |
83 |
84 |
193 |
194 |
--------------------------------------------------------------------------------
/src/components/yxmvideo.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Base Config / 基本示例
6 |
7 |
10 | code
11 |
12 |
13 |
14 |
32 |
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/src/global/api.js:
--------------------------------------------------------------------------------
1 | //接口配置
2 |
3 | //把全体接口封装在的前端配置文件(序号与接口文档一一对应),多个环境配置时可快速切换整站式的全部接口,不用逐个页面去改。
4 | const config = require('../../config');
5 |
6 | let url = {
7 | apiUrl: "/ccp-web/api", //接口路径
8 | //ctxPath: "/ccp-web/dist", //tomcat服务dist目录
9 | ctxPath: "/dist", //node服务dist目录
10 |
11 | //staticPath:config.dev.staticPath, //开发环境静态资源路径
12 | staticPath: process.env.NODE_ENV !== 'development' ? config.build.staticPath: config.dev.staticPath
13 | };
14 |
15 | //----------------请注意:如果正式环境,不需要本地json数据模拟,请删除以上代码和api中的模拟接口。----------------
16 |
17 |
18 | export const api = {
19 |
20 | //'login':'http://localhost:80/dataJson/login.json',//ngxin
21 | 'goodtopbox':url.staticPath+'/data/goodtop-box.json',//获取goodtop-box模拟接口
22 | 'Recommand':url.staticPath+'/data/Recommand.json',//Recommand模拟接口
23 | 'yxmdata':url.staticPath+'/data/yxmdata.json'//yxmdata模拟接口
24 |
25 | }
--------------------------------------------------------------------------------
/src/main.js:
--------------------------------------------------------------------------------
1 | // The Vue build version to load with the `import` command
2 | // (runtime-only or standalone) has been set in webpack.base.conf with an alias.
3 | import Vue from 'vue'
4 | import App from './App'
5 | import router from './router'
6 | import VueResource from 'vue-resource'
7 |
8 | import ElementUI from 'element-ui'
9 | import VueVideoPlayer from 'vue-video-player'
10 | import 'element-ui/lib/theme-default/index.css'
11 |
12 |
13 | import './assets/js/jquery-3.1.1.js'
14 | import './assets/js/gVerify.js'
15 | import './assets/css/base.css'
16 |
17 | Vue.use(VueVideoPlayer)
18 | Vue.use(ElementUI)
19 | Vue.use(VueResource)
20 |
21 |
22 | Vue.config.productionTip = false
23 |
24 | /* eslint-disable no-new */
25 | new Vue({
26 | el: '#app',
27 | router,
28 | template: '',
29 | components: { App }
30 | })
31 |
--------------------------------------------------------------------------------
/src/router/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import Router from 'vue-router'
3 | import First from '@/components/First'
4 | import Regist from '@/components/mi_regist'
5 | import Login from '@/components/mi_login'
6 | import GoodsDetail from '@/components/GoodsDetail'
7 |
8 | Vue.use(Router)
9 |
10 | // const User = {
11 | // template: `
12 | //
13 | //
User {{ $route.params.id }}
14 | //
15 | //
16 | // `
17 | // }
18 | const router = new Router({
19 | routes: [
20 | {
21 | // 重定向到首页
22 | path: '/',
23 | redirect: '/First'
24 | },
25 | {
26 | path: '/First',
27 | component: First
28 | },
29 | {
30 | path: '/mi_regist',
31 | component: Regist
32 | },
33 | {
34 | path:'/mi_login',
35 | component:Login
36 | },
37 | {
38 | path:'/GoodsDetail',
39 | component:GoodsDetail
40 | }
41 | // {
42 | // path: '/user',
43 | // component: User,
44 | // children:[
45 | // { path: 'mi_regist', component: Regist }
46 | // ]
47 | // }
48 | ]
49 | })
50 |
51 | export default router;
52 | // const app = new Vue({
53 | // router
54 | // }).$mount('#app')
55 |
--------------------------------------------------------------------------------
/static/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/static/.gitkeep
--------------------------------------------------------------------------------
/static/data/Recommand.json:
--------------------------------------------------------------------------------
1 | {
2 | "recomends": [
3 | {
4 | "sourceUrl": "//item.mi.com/1154300011.html",
5 | "imgUrl": "//i1.mifile.cn/a1/T1.VVgBjAT1RXrhCrK.jpg?width=140&height=140",
6 | "name": "小米电视主机",
7 | "price": "999",
8 | "favorable": "102"
9 | },
10 | {
11 | "sourceUrl": "//item.mi.com/1153300030.html",
12 | "imgUrl": "//i1.mifile.cn/a1/T1LrdvBbAT1RXrhCrK.jpg?width=140&height=140",
13 | "name": "小米手环",
14 | "price": "69",
15 | "favorable": "11.8万"
16 | },
17 | {
18 | "sourceUrl": "//item.mi.com/1155100006.html",
19 | "imgUrl": "//i1.mifile.cn/a1/T1_tEgBmVv1RXrhCrK.jpg?width=140&height=140",
20 | "name": "米兔儿童电话手表",
21 | "price": "299",
22 | "favorable": "7865"
23 | },
24 | {
25 | "sourceUrl": "//item.mi.com/1154100018.html",
26 | "imgUrl": "//i1.mifile.cn/a1/T1TpZ_ByYv1R4cSCrK.png?width=140&height=140",
27 | "name": "小米低音炮",
28 | "price": "599",
29 | "favorable": "4908"
30 | },
31 | {
32 | "sourceUrl": "//item.mi.com/1155100011.html",
33 | "imgUrl": "//i1.mifile.cn/a1/T1CDbjBgAT1RXrhCrK.jpg?width=140&height=140",
34 | "name": "90分旅行箱 24寸",
35 | "price": "349",
36 | "favorable": "1.1万"
37 | },
38 | {
39 | "sourceUrl": "//item.mi.com/1154900069.html",
40 | "imgUrl": "//i1.mifile.cn/a1/T1PyZ_Bjdv1RXrhCrK.jpg?width=140&height=140",
41 | "name": "小米智能插座 基础版",
42 | "price": "49",
43 | "favorable": "8622"
44 | },
45 | {
46 | "sourceUrl": "//item.mi.com/1162100021.html",
47 | "imgUrl": "//i1.mifile.cn/a1/pms_1464071511.37197399.jpg?width=140&height=140",
48 | "name": "米家 LED 智能台灯",
49 | "price": "169",
50 | "favorable": "4268人好评"
51 | },
52 | {
53 | "sourceUrl": "//item.mi.com/1153700018.html",
54 | "imgUrl": "//i1.mifile.cn/a1/T1Ay_gBKKv1RXrhCrK.jpg?width=140&height=140",
55 | "name": "90分旅行箱 20寸",
56 | "price": "299",
57 | "favorable": "1.5万"
58 | },
59 | {
60 | "sourceUrl": "//item.mi.com/1161200004.html",
61 | "imgUrl": "//i1.mifile.cn/a1/T1WxYvB_xv1RXrhCrK.jpg?width=140&height=140",
62 | "name": "小米活塞耳机 基础版",
63 | "price": "29",
64 | "favorable": "5.5万"
65 | },
66 | {
67 | "sourceUrl": "//item.mi.com/1153300025.html",
68 | "imgUrl": "//i1.mifile.cn/a1/T1tzL_BjYT1RXrhCrK.jpg?width=140&height=140",
69 | "name": "学院风简约双肩包",
70 | "price": "59",
71 | "favorable": "1.8万"
72 | },
73 | {
74 | "sourceUrl": "//item.mi.com/1154300036.html",
75 | "imgUrl": "//i1.mifile.cn/a1/T1F5K_BjVv1RXrhCrK.jpg?width=140&height=140",
76 | "name": "小米小钢炮蓝牙音箱2",
77 | "price": "129",
78 | "favorable": "1.2万"
79 | },
80 | {
81 | "sourceUrl": "//item.mi.com/1162900011.html",
82 | "imgUrl": "//i1.mifile.cn/a1/pms_1470793898.34754317.jpg?width=140&height=140",
83 | "name": "90分金属旅行箱",
84 | "price": "1799",
85 | "favorable": "23"
86 | },
87 | {
88 | "sourceUrl": "//item.mi.com/1153800044.html",
89 | "imgUrl": "//i1.mifile.cn/a1/T1MDK_B_YT1RXrhCrK.jpg?width=140&height=140",
90 | "name": "小米蓝牙音箱",
91 | "price": "199",
92 | "favorable": " 1.9万"
93 | },
94 | {
95 | "sourceUrl": "//item.mi.com/1161200013.html",
96 | "imgUrl": "//i1.mifile.cn/a1/T1FtKgBvZv1RXrhCrK.jpg?width=140&height=140",
97 | "name": "小米多功能都市休闲胸包",
98 | "price": "69",
99 | "favorable": "9453"
100 | },
101 | {
102 | "sourceUrl": "//item.mi.com/1161800001.html",
103 | "imgUrl": "//i1.mifile.cn/a1/T1HQA_BCd_1RXrhCrK.jpg?width=140&height=140",
104 | "name": "米家iHealth血压计",
105 | "price": "399",
106 | "favorable": "1529"
107 | },
108 | {
109 | "sourceUrl": "//item.mi.com/1153900041.html",
110 | "imgUrl": "//i1.mifile.cn/a1/T1JJ__BbYT1RXrhCrK.jpg?width=140&height=140",
111 | "name": "小米净水器滤芯",
112 | "price": "59",
113 | "favorable": "6640"
114 | },
115 | {
116 | "sourceUrl": "//item.mi.com/1162800007.html",
117 | "imgUrl": "//i1.mifile.cn/a1/pms_1468287589.40786199.jpg?width=140&height=140",
118 | "name": "米家随身风扇",
119 | "price": "19.9",
120 | "favorable": "4522"
121 | },
122 | {
123 | "sourceUrl": "//item.mi.com/1160800073.html",
124 | "imgUrl": "//i1.mifile.cn/a1/T1N5KjB_dT1RXrhCrK.jpg?width=140&height=140",
125 | "name": "小米家庭音响 金属版",
126 | "price": "899",
127 | "favorable": "0"
128 | },
129 | {
130 | "sourceUrl": "//item.mi.com/1161000003.html",
131 | "imgUrl": "//i1.mifile.cn/a1/T1LpWjB4bv1RXrhCrK.jpg?width=140&height=140",
132 | "name": "小米空气净化器滤芯 经济版",
133 | "price": "129",
134 | "favorable": "473"
135 | },
136 | {
137 | "sourceUrl": "//item.mi.com/1161200073.html",
138 | "imgUrl": "//i1.mifile.cn/a1/T1bED_B__v1RXrhCrK.jpg?width=140&height=140",
139 | "name": "小蚁摄像机储存套装(夜视+8GB)",
140 | "price": " 165.9",
141 | "favorable": "0"
142 | }
143 | ]
144 | }
--------------------------------------------------------------------------------
/static/data/goodscontent.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "title":"图书",
4 | "type":"book",
5 | "list": [
6 | {
7 | "sourceUrl": "http://www.duokan.com/book/115222",
8 | "title": "哈利·波特与魔法石",
9 | "desc": "哈利波特来了",
10 | "imgUrl": "//i3.mifile.cn/a4/8e3584b6-3169-41c6-9356-939ec79aac2b",
11 | "type": "0"
12 | },
13 |
14 | {
15 | "sourceUrl": "http://www.duokan.com/special/7812",
16 | "title": "特价专区",
17 | "desc": "精选畅销好书,特价促销,天天更新,天天特价!",
18 | "price": "限时优惠",
19 | "imgUrl": "//i3.mifile.cn/a4/T1dlVgBbbT1RXrhCrK.jpg",
20 | "type": "1"},
21 |
22 | {
23 | "sourceUrl": "http://www.duokan.com/list/9-1",
24 | "title": "杂志专区",
25 | "desc": "纸媒杂志+互联网杂志,你想看的这都有!",
26 | "price": "同步新刊上线",
27 | "imgUrl": "//i3.mifile.cn/a4/T1R3WgBjKT1RXrhCrK.jpg",
28 | "type": "1"},
29 |
30 | {
31 | "sourceUrl": "http://www.duokan.com/list/1-1?from=xiaomi",
32 | "desc1": "海量好书,享受精品阅读时光",
33 | "desc2": "漂亮的中文排版,千万读者选择!",
34 | "btnTxt": "前往多看阅读",
35 | "price": "限时优惠",
36 | "imgUrl": "//s01.mifile.cn/i/index/more-duokan.jpg",
37 | "type": "2"
38 | }
39 | ]
40 | },
41 |
42 | {
43 | "title":"MIUI主题",
44 | "type":"theme",
45 | "list": [
46 | {
47 | "sourceUrl": "http://zhuti.xiaomi.com/detail/4ecf4ebb-7cba-4142-96aa-6b8deb2426ef",
48 | "title": "新世纪福音战士OL",
49 | "desc": "EVA手游正版授权,同名主题,高能来袭!",
50 | "price": "免费",
51 | "imgUrl": "http://i3.mifile.cn/a4/7d47dde1-60fb-4ff3-8fa1-364cfc452457",
52 | "type": "1"
53 | },
54 |
55 | {
56 | "sourceUrl": "http://zhuti.xiaomi.com/detail/d6277519-ca46-420c-ab09-060f6d293f94",
57 | "title": "世界就在这里",
58 | "desc": "“青春的世界里,每一刻都要用尽全力欢呼”",
59 | "price": "免费",
60 | "imgUrl": "http://i3.mifile.cn/a4/b2c8ca37-4ba8-4af8-b87e-91847980a278",
61 | "type": "1"
62 | },
63 |
64 | {
65 | "sourceUrl": "http://zhuti.xiaomi.com/detail/13df18d4-e52c-4a61-82e3-97014f21bd77",
66 | "title": "不悔剑三",
67 | "desc": "精品剑网三同人主题 浪漫武侠 共闯天涯",
68 | "price": "3米币",
69 | "imgUrl": "http://i3.mifile.cn/a4/10af68f9-3012-48bb-85b1-ad3b0646dfdb",
70 | "type": "1"
71 | },
72 |
73 | {
74 | "sourceUrl": "http://zhuti.xiaomi.com/?from=mi",
75 | "desc1": "众多个性主题、百变锁屏与自由桌面",
76 | "desc2": "让你的手机与众不同!",
77 | "btnTxt": "前往MIUI主题市场",
78 | "price": "限时优惠",
79 | "imgUrl": "//s01.mifile.cn/i/index/more-duokan.jpg",
80 | "type": "2"
81 | }
82 | ]
83 | },
84 |
85 | {
86 | "title":"游戏",
87 | "type":"game",
88 | "list": [
89 | {
90 | "sourceUrl": "http://ljm.mi.com/?channel=meng_1084_1_android",
91 | "title": "老九门",
92 | "desc": "盗墓笔记前传上线",
93 | "price": "免费",
94 | "imgUrl": "http://i3.mifile.cn/a4/6032cb36-587f-4366-89ef-aefed2546552",
95 | "type": "1"
96 | },
97 |
98 | {
99 | "sourceUrl": "http://game.xiaomi.com/miyou/index.html",
100 | "title": "米柚手游模拟器",
101 | "desc": "在电脑上玩遍小米所有手游",
102 | "price": "免费",
103 | "imgUrl": "//i3.mifile.cn/a4/T1czW_BXCv1R4cSCrK.png",
104 | "type": "1"
105 | },
106 |
107 | {
108 | "sourceUrl": "http://game.xiaomi.com/app-appdetail--app_id__581412.html",
109 | "title": "剑侠情缘",
110 | "desc": "玩剑侠情缘手游,领666壕礼!!",
111 | "price": "免费",
112 | "imgUrl": "http://i3.mifile.cn/a4/010948ae-bd48-49c6-af12-4ec8c4a0c829",
113 | "type": "1"
114 | },
115 |
116 | {
117 | "sourceUrl": "http://game.xiaomi.com/index.php?c=index&a=run",
118 | "desc1": "免费下载海量的手机游戏",
119 | "desc2": "天天都有现金福利赠送",
120 | "btnTxt": "前往小米游戏商店",
121 | "price": "限时优惠",
122 | "imgUrl": "//s01.mifile.cn/i/index/more-game.jpg",
123 | "type": "2"
124 | }
125 | ]
126 | },
127 |
128 | {
129 | "title":"应用",
130 | "type":"app",
131 | "list": [
132 | {
133 | "sourceUrl": "http://app.mi.com/subject/168797",
134 | "title": "2015年度应用",
135 | "desc": "2015年度应用",
136 | "price": "免费",
137 | "imgUrl": "//i3.mifile.cn/a4/T1YyJgBCYv1R4cSCrK.png",
138 | "type": "1"
139 | },
140 |
141 | {
142 | "sourceUrl": "http://app.mi.com/subject/168798",
143 | "title": "2015年度游戏",
144 | "desc": "2015年度游戏",
145 | "price": "免费",
146 | "imgUrl": "//i3.mifile.cn/a4/T1eaxgB4Ev1R4cSCrK.png",
147 | "type": "1"
148 | },
149 |
150 | {
151 | "sourceUrl": "http://app.mi.com/subject/167924",
152 | "title": "小米应用",
153 | "desc": "小米出品 必属精品",
154 | "price": "免费",
155 | "imgUrl": "//i3.mifile.cn/a4/T15VZvB5Kv1R4cSCrK.png",
156 | "type": "1"
157 | },
158 |
159 | {
160 | "sourceUrl": "http://app.mi.com/?from=mi",
161 | "desc1": "帮助小米手机和其他安卓手机用户",
162 | "desc2": "发现好用的安卓应用",
163 | "btnTxt": "前往小米应用商店",
164 | "price": "限时优惠",
165 | "imgUrl": "//s01.mifile.cn/i/index/more-app.jpg",
166 | "type": "2"
167 | }
168 | ]
169 | }
170 | ]
--------------------------------------------------------------------------------
/static/data/goodtop-box.json:
--------------------------------------------------------------------------------
1 | [
2 | { "sourceUrl":"#",
3 | "title":"小米电视机4 65英寸",
4 | "desc":"8月1日-3日买就送三年小米电视会员",
5 | "imgUrl":"http://i1.mifile.cn/a1/pms_1495074053.84174465!220x220.jpg",
6 | "price":"9999",
7 | "discountType": "free",
8 | "discount": "免邮费"
9 | },
10 |
11 | {
12 | "sourceUrl":"#",
13 | "imgUrl":"http://i3.mifile.cn/a4/2b69b930-a2fd-4d09-a46a-8690cb79f764",
14 | "title":"电助力折叠自行车",
15 | "desc":"力矩传感电助力,让城市出行轻松有趣",
16 | "price":"149"
17 | },
18 |
19 | {
20 | "sourceUrl":"#",
21 | "imgUrl":"http://i1.mifile.cn/a1/pms_1464615180.86261317!220x220.jpg",
22 | "title":"#",
23 | "desc":"能说会道,宝宝的好玩伴",
24 | "price":"199",
25 | "discountType": "new",
26 | "discount": "新品"
27 | },
28 |
29 | {
30 | "sourceUrl":"#",
31 | "imgUrl":"http://i1.mifile.cn/a1/T1GxCvBghT1RXrhCrK!220x220.jpg",
32 | "title":"Yeelight床头灯",
33 | "desc":"触摸式操作体验,给卧室1600万种颜色",
34 | "price":"249"},
35 |
36 | {
37 | "sourceUrl":"#",
38 | "imgUrl":"http://i1.mifile.cn/a1/pms_1479190789.95594557!220x220.jpg",
39 | "title":"小米盒子3s",
40 | "desc":"4k超高清机顶盒,64位处理器",
41 | "price":"329"},
42 |
43 | {
44 | "sourceUrl":"#",
45 | "imgUrl":"http://i3.mifile.cn/a4/T1rQAgB7Av1RXrhCrK.jpg",
46 | "title":"小米路由器3",
47 | "desc":"四天线设计,更安全更稳定",
48 | "price":"149"},
49 |
50 | {
51 | "sourceUrl":"#",
52 | "imgUrl":"http://i1.mifile.cn/a1/T1OVC_ByY_1RXrhCrK!220x220.jpg",
53 | "title":"米家压力IH电饭煲",
54 | "desc":"只能烹饪,3L容量",
55 | "price":"899",
56 | "oldPrice":"1199",
57 | "discountType": "discount",
58 | "discount": "享9折"
59 | },
60 |
61 | {
62 | "sourceUrl":"#",
63 | "imgUrl":"http://i1.mifile.cn/a1/pms_1488272686.62666302!220x220.jpg",
64 | "title":"小米米家电动滑板车",
65 | "desc":"极简几何设计,1分钟轻松上手",
66 | "price":"1999",
67 | "discountType": "new",
68 | "discount": "新品"
69 | }
70 |
71 | ]
--------------------------------------------------------------------------------
/static/data/yxmdata.json:
--------------------------------------------------------------------------------
1 | [
2 |
3 | {
4 |
5 | "aa":[
6 | {"sourceUrl": "//item.mi.com/1160800014.html", "rightimgurl": "//i1.mifile.cn/a1/T12AWgB5Vv1RXrhCrK!220x220.jpg", "title": "小米手机5 智能翻盖保护套", "price": "49元", "heat": "1.5万评价",
7 | "reviewDesc": "很不错,很好用。已推荐朋友使用。", "reviewAuthor": "舊時書生", "reviewStatus": true},
8 | {"sourceUrl": "//item.mi.com/1161600009.html", "rightimgurl": "//i1.mifile.cn/a1/T1XVWjBCYv1RXrhCrK!220x220.jpg", "title": "小米Max 智能显示保护套", "price": "59元", "heat": "4179评价",
9 | "reviewDesc": "这个唤醒保护套功能还真不错~~给家人买的,等米MAX...", "reviewAuthor": "姮Fiona.mo", "reviewStatus": true},
10 | {"sourceUrl": "//item.mi.com/1162500028.html", "rightimgurl": "//i1.mifile.cn/a1/pms_1469787847.44636521!220x220.jpg", "title": "红米Pro 智能显示保护套", "price": "49元", "heat": "190评价",
11 | "reviewDesc": "又是一款精品,喜欢,小米值得拥有!", "reviewAuthor": "174473315", "reviewStatus": true, "discountType": "new", "discount": "新品"},
12 | {"sourceUrl": "//item.mi.com/1161200045.html", "rightimgurl": "//i1.mifile.cn/a1/T18sWvBTxv1RXrhCrK!220x220.jpg", "title": "红米3高配版 炫彩翻盖保护套", "price": "2939元", "heat": "4775评价",
13 | "reviewDesc": "这个我感觉是我买的性价比最好的手机外套了", "reviewAuthor": "煎饼", "reviewStatus": true, "oldprice": "39", "discountType": "discount", "discount": "享8折"},
14 | {"sourceUrl": "//item.mi.com/1154800016.html", "rightimgurl": "//i1.mifile.cn/a1/T10Eb_BmAv1RXrhCrK!220x220.jpg", "title": "红米Note3 炫彩翻页保护套", "price": "39元", "heat": "2.2万评价",
15 | "reviewDesc": "大小合适,特别好,质量和颜色都非常棒", "reviewAuthor": "142010366", "reviewStatus": true},
16 | {"sourceUrl": "//item.mi.com/1160100013.html", "rightimgurl": "//i3.mifile.cn/a4/T1WLx_BgVv1RXrhCrK.jpg", "title": "红米3标准版 炫彩翻盖保护套", "price": "29元", "heat": "6908评价",
17 | "reviewDesc": "很好的手机保护套,质量ok ", "reviewAuthor": "binarystar1989", "reviewStatus": true, "oldprice": "39", "discountType": "discount", "discount": "享8折"},
18 | {"sourceUrl": "//item.mi.com/1142900047.html", "rightimgurl": "//i1.mifile.cn/a1/T11eEvBmYT1RXrhCrK!220x220.jpg", "title": "小米手机4 智能唤醒翻盖保护套", "price": "1549元", "heat": "11.5万评价",
19 | "reviewDesc": "小米4保护套一下买了两个,玫红和柠檬绿,生活如此多娇!", "reviewAuthor": "゛ロ隹╲ー", "reviewStatus": true, "oldprice": "49", "discountType": "discount", "discount": "享4折"},
20 | {"moreUrl": "//list.mi.com/7", "sourceUrl": "//item.mi.com/1155100020.html", "rightimgurl": "//i1.mifile.cn/a1/T1QKJ_BvLv1RXrhCrK!220x220.jpg", "title": "平板2保护套", "price": "69元" ,"heat": "1.9万评价"}
21 |
22 | ],
23 |
24 | "bb":[
25 | {"sourceUrl": "//item.mi.com/1160800004.html", "rightimgurl": "//i3.mifile.cn/a4/T1cVLjBX_v1RXrhCrK.jpg", "title": "小米手机5 极薄防蓝光贴膜", "price": "49元", "heat": "6324评价",
26 | "reviewDesc": "我用过最好的产品!性能彪悍,工艺精湛,美美美", "reviewAuthor": "川四大", "reviewStatus": true},
27 | {"sourceUrl": "//item.mi.com/1161600029.html", "rightimgurl": "//i1.mifile.cn/a1/T1y7JQBbCT1RXrhCrK!220x220.jpg", "title":" 小米Max 标准高透贴膜" , "price": "19元", "heat": "6384评价",
28 | "reviewDesc": "说是高透就是高透,贴上贴膜,带领领略高透滴全世界~~" , "reviewAuthor": "148800310", "reviewStatus": true},
29 | {"sourceUrl": "//item.mi.com/1154800022.html", "rightimgurl": "//i1.mifile.cn/a1/T1SSJ_B4E_1RXrhCrK!220x220.jpg", "title": "小米平板2 标准高透贴膜", "price": "29元", "heat": "1290评价",
30 | "reviewDesc": "挺好用的,发货也快,清晰!", "reviewAuthor": "卖蘑菇的小和尚", "reviewStatus": true},
31 | {"sourceUrl": "//item.mi.com/1154800026.html", "rightimgurl": "//i3.mifile.cn/a4/T1qdEgBKKv1RXrhCrK.jpg", "title": "红米Note3 钢化玻璃膜", "price": "19元", "heat": "3.6万评价",
32 | "reviewDesc": "钢化膜表面很光滑,和手机屏幕玻璃一样,很好", "reviewAuthor": "Pioneer77", "reviewStatus": true},
33 | {"sourceUrl": "//item.mi.com/1160100021.html", "rightimgurl": "//i1.mifile.cn/a1/T1g7J_BsLv1RXrhCrK!220x220.jpg", "title": "红米手机3 钢化玻璃膜", "price": "9.9元", "heat": "7582评价",
34 | "reviewDesc": "很好,容易贴上,触感不错", "reviewAuthor": "247292055", "reviewStatus": true},
35 | {"sourceUrl": "//item.mi.com/1160800006.html", "rightimgurl": "//i1.mifile.cn/a1/T1t2K_B4L_1RXrhCrK!220x220.jpg", "title": "小米手机5 钢化玻璃贴膜", "price": "29元", "heat": "2.9万评价",
36 | "reviewDesc": "膜的质量很好,不粘指纹,", "reviewAuthor": " 乱世风凌乱", "reviewStatus": true},
37 | {"sourceUrl": "//item.mi.com/1162500021.html", "rightimgurl": "//i1.mifile.cn/a1/pms_1469787992.44385373!220x220.jpg", "title": "红米Pro 标准高透贴膜", "price": "19元", "heat": "437评价",
38 | "reviewDesc": "很好,物流非常快,还有贴膜的方法,并且附赠两张贴膜放...", "reviewAuthor": "1123887372", "reviewStatus": true},
39 | {"moreUrl": "//list.mi.com/9", "sourceUrl": "//item.mi.com/1160800005.html", "rightimgurl": "//i1.mifile.cn/a1/T1keE_BsJv1RXrhCrK!220x220.jpg ", "title": "小米手机5 标准高透贴膜", "price": "19元" ,"heat": "1.9万评价"}
40 |
41 | ],
42 |
43 |
44 | "cc":[
45 | {"sourceUrl": "//item.mi.com/1152500016.html", "rightimgurl": "//i1.mifile.cn/a1/T1xXxQBCVT1RXrhCrK!220x220.jpg", "title": "小蚁蓝牙遥控器", "price": "39元", "heat": "2778评价",
46 | "reviewDesc": "宝贝挺好的,开始联不上,把相机固件升级了才能联上,非...", "reviewAuthor": "老叶8", "reviewStatus": true},
47 | {"sourceUrl": "//item.mi.com/1153300036.html", "rightimgurl": "//i1.mifile.cn/a1/T1j_D_BQWT1RXrhCrK!220x220.jpg", "title": "指环式防滑手机支架", "price": "12.5元", "heat": "8087评价",
48 | "reviewDesc": "很好的设计,太实用了,更方便单手操作了,不用担心手机...", "reviewAuthor": "疯流涕淌王", "reviewStatus": true},
49 | {"sourceUrl": "//www.mi.com/shb/", "rightimgurl": "//i1.mifile.cn/a1/T1WTEvBmKT1RXrhCrK!220x220.jpg", "title": "小米蓝牙手柄", "price": "99元", "heat": "2.7万评价",
50 | "reviewDesc": "手感超好,联上小米电视玩游戏超爽,就是电视端游戏有待...", "reviewAuthor": "陈峪汀", "reviewStatus": true},
51 | {"sourceUrl": "//item.mi.com/1154200029.html", "rightimgurl": "//i1.mifile.cn/a1/T11oW_B4dv1RXrhCrK!220x220.jpg", "title": "蓝牙语音体感遥控器", "price": "99元", "heat": "2387评价",
52 | "reviewDesc": "好使~方便~语音更好!呵呵,支持小米!!!", "reviewAuthor": "静一licf", "reviewStatus": true},
53 | {"sourceUrl": "//item.mi.com/1153900018.html", "rightimgurl": "//i1.mifile.cn/a1/T1juCgBgxT1RXrhCrK!220x220.jpg", "title": "手机USB Type-C数据线", "price": "39元", "heat": "1.4万评价",
54 | "reviewDesc": "很好用的数据线,充电传输都很好", "reviewAuthor": "103898410", "reviewStatus": true},
55 | {"sourceUrl": "//item.mi.com/1150500009.html", "rightimgurl": "//i1.mifile.cn/a1/T13y_vBgJT1RXrhCrK!220x220.jpg", "title": "小米千兆网线", "price": "14.9元", "heat": "3万评价",
56 | "reviewDesc": "早点出多好啊!盒子不卡了!电脑下载不卡顿了!神药啊!...", "reviewAuthor": "水云间789", "reviewStatus": true},
57 | {"sourceUrl": "//item.mi.com/1154100024.html", "rightimgurl": "//i1.mifile.cn/a1/T1Zp__B5Ev1RXrhCrK!220x220.jpg", "title": "ZMI无限拓展数据线", "price": "29元", "heat": "4719评价",
58 | "reviewDesc": "长度够用,牢固,质量不错", "reviewAuthor": "396139651", "reviewStatus": true},
59 | {"moreUrl": "//list.mi.com/others", "sourceUrl": "//item.mi.com/1154900025.html", "rightimgurl": "//i1.mifile.cn/a1/T1_7KgB4Jv1RXrhCrK!220x220.jpg", "title": "青米USB快速充电数据线", "price": "24.9元" ,"heat": "1.9万评价"}
60 | ]
61 |
62 |
63 |
64 |
65 |
66 |
67 | }
68 | ]
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
--------------------------------------------------------------------------------
/static/font-awesome-4.7.0/HELP-US-OUT.txt:
--------------------------------------------------------------------------------
1 | I hope you love Font Awesome. If you've found it useful, please do me a favor and check out my latest project,
2 | Fort Awesome (https://fortawesome.com). It makes it easy to put the perfect icons on your website. Choose from our awesome,
3 | comprehensive icon sets or copy and paste your own.
4 |
5 | Please. Check it out.
6 |
7 | -Dave Gandy
8 |
--------------------------------------------------------------------------------
/static/font-awesome-4.7.0/fonts/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/static/font-awesome-4.7.0/fonts/FontAwesome.otf
--------------------------------------------------------------------------------
/static/font-awesome-4.7.0/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/static/font-awesome-4.7.0/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/static/font-awesome-4.7.0/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/static/font-awesome-4.7.0/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/static/font-awesome-4.7.0/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/static/font-awesome-4.7.0/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/static/font-awesome-4.7.0/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/static/font-awesome-4.7.0/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/static/font-awesome-4.7.0/less/animated.less:
--------------------------------------------------------------------------------
1 | // Animated Icons
2 | // --------------------------
3 |
4 | .@{fa-css-prefix}-spin {
5 | -webkit-animation: fa-spin 2s infinite linear;
6 | animation: fa-spin 2s infinite linear;
7 | }
8 |
9 | .@{fa-css-prefix}-pulse {
10 | -webkit-animation: fa-spin 1s infinite steps(8);
11 | animation: fa-spin 1s infinite steps(8);
12 | }
13 |
14 | @-webkit-keyframes fa-spin {
15 | 0% {
16 | -webkit-transform: rotate(0deg);
17 | transform: rotate(0deg);
18 | }
19 | 100% {
20 | -webkit-transform: rotate(359deg);
21 | transform: rotate(359deg);
22 | }
23 | }
24 |
25 | @keyframes fa-spin {
26 | 0% {
27 | -webkit-transform: rotate(0deg);
28 | transform: rotate(0deg);
29 | }
30 | 100% {
31 | -webkit-transform: rotate(359deg);
32 | transform: rotate(359deg);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/static/font-awesome-4.7.0/less/bordered-pulled.less:
--------------------------------------------------------------------------------
1 | // Bordered & Pulled
2 | // -------------------------
3 |
4 | .@{fa-css-prefix}-border {
5 | padding: .2em .25em .15em;
6 | border: solid .08em @fa-border-color;
7 | border-radius: .1em;
8 | }
9 |
10 | .@{fa-css-prefix}-pull-left { float: left; }
11 | .@{fa-css-prefix}-pull-right { float: right; }
12 |
13 | .@{fa-css-prefix} {
14 | &.@{fa-css-prefix}-pull-left { margin-right: .3em; }
15 | &.@{fa-css-prefix}-pull-right { margin-left: .3em; }
16 | }
17 |
18 | /* Deprecated as of 4.4.0 */
19 | .pull-right { float: right; }
20 | .pull-left { float: left; }
21 |
22 | .@{fa-css-prefix} {
23 | &.pull-left { margin-right: .3em; }
24 | &.pull-right { margin-left: .3em; }
25 | }
26 |
--------------------------------------------------------------------------------
/static/font-awesome-4.7.0/less/core.less:
--------------------------------------------------------------------------------
1 | // Base Class Definition
2 | // -------------------------
3 |
4 | .@{fa-css-prefix} {
5 | display: inline-block;
6 | font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration
7 | font-size: inherit; // can't have font-size inherit on line above, so need to override
8 | text-rendering: auto; // optimizelegibility throws things off #1094
9 | -webkit-font-smoothing: antialiased;
10 | -moz-osx-font-smoothing: grayscale;
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/static/font-awesome-4.7.0/less/fixed-width.less:
--------------------------------------------------------------------------------
1 | // Fixed Width Icons
2 | // -------------------------
3 | .@{fa-css-prefix}-fw {
4 | width: (18em / 14);
5 | text-align: center;
6 | }
7 |
--------------------------------------------------------------------------------
/static/font-awesome-4.7.0/less/font-awesome.less:
--------------------------------------------------------------------------------
1 | /*!
2 | * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4 | */
5 |
6 | @import "variables.less";
7 | @import "mixins.less";
8 | @import "path.less";
9 | @import "core.less";
10 | @import "larger.less";
11 | @import "fixed-width.less";
12 | @import "list.less";
13 | @import "bordered-pulled.less";
14 | @import "animated.less";
15 | @import "rotated-flipped.less";
16 | @import "stacked.less";
17 | @import "icons.less";
18 | @import "screen-reader.less";
19 |
--------------------------------------------------------------------------------
/static/font-awesome-4.7.0/less/larger.less:
--------------------------------------------------------------------------------
1 | // Icon Sizes
2 | // -------------------------
3 |
4 | /* makes the font 33% larger relative to the icon container */
5 | .@{fa-css-prefix}-lg {
6 | font-size: (4em / 3);
7 | line-height: (3em / 4);
8 | vertical-align: -15%;
9 | }
10 | .@{fa-css-prefix}-2x { font-size: 2em; }
11 | .@{fa-css-prefix}-3x { font-size: 3em; }
12 | .@{fa-css-prefix}-4x { font-size: 4em; }
13 | .@{fa-css-prefix}-5x { font-size: 5em; }
14 |
--------------------------------------------------------------------------------
/static/font-awesome-4.7.0/less/list.less:
--------------------------------------------------------------------------------
1 | // List Icons
2 | // -------------------------
3 |
4 | .@{fa-css-prefix}-ul {
5 | padding-left: 0;
6 | margin-left: @fa-li-width;
7 | list-style-type: none;
8 | > li { position: relative; }
9 | }
10 | .@{fa-css-prefix}-li {
11 | position: absolute;
12 | left: -@fa-li-width;
13 | width: @fa-li-width;
14 | top: (2em / 14);
15 | text-align: center;
16 | &.@{fa-css-prefix}-lg {
17 | left: (-@fa-li-width + (4em / 14));
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/static/font-awesome-4.7.0/less/mixins.less:
--------------------------------------------------------------------------------
1 | // Mixins
2 | // --------------------------
3 |
4 | .fa-icon() {
5 | display: inline-block;
6 | font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration
7 | font-size: inherit; // can't have font-size inherit on line above, so need to override
8 | text-rendering: auto; // optimizelegibility throws things off #1094
9 | -webkit-font-smoothing: antialiased;
10 | -moz-osx-font-smoothing: grayscale;
11 |
12 | }
13 |
14 | .fa-icon-rotate(@degrees, @rotation) {
15 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})";
16 | -webkit-transform: rotate(@degrees);
17 | -ms-transform: rotate(@degrees);
18 | transform: rotate(@degrees);
19 | }
20 |
21 | .fa-icon-flip(@horiz, @vert, @rotation) {
22 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)";
23 | -webkit-transform: scale(@horiz, @vert);
24 | -ms-transform: scale(@horiz, @vert);
25 | transform: scale(@horiz, @vert);
26 | }
27 |
28 |
29 | // Only display content to screen readers. A la Bootstrap 4.
30 | //
31 | // See: http://a11yproject.com/posts/how-to-hide-content/
32 |
33 | .sr-only() {
34 | position: absolute;
35 | width: 1px;
36 | height: 1px;
37 | padding: 0;
38 | margin: -1px;
39 | overflow: hidden;
40 | clip: rect(0,0,0,0);
41 | border: 0;
42 | }
43 |
44 | // Use in conjunction with .sr-only to only display content when it's focused.
45 | //
46 | // Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
47 | //
48 | // Credit: HTML5 Boilerplate
49 |
50 | .sr-only-focusable() {
51 | &:active,
52 | &:focus {
53 | position: static;
54 | width: auto;
55 | height: auto;
56 | margin: 0;
57 | overflow: visible;
58 | clip: auto;
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/static/font-awesome-4.7.0/less/path.less:
--------------------------------------------------------------------------------
1 | /* FONT PATH
2 | * -------------------------- */
3 |
4 | @font-face {
5 | font-family: 'FontAwesome';
6 | src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}');
7 | src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'),
8 | url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'),
9 | url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'),
10 | url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'),
11 | url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg');
12 | // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts
13 | font-weight: normal;
14 | font-style: normal;
15 | }
16 |
--------------------------------------------------------------------------------
/static/font-awesome-4.7.0/less/rotated-flipped.less:
--------------------------------------------------------------------------------
1 | // Rotated & Flipped Icons
2 | // -------------------------
3 |
4 | .@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); }
5 | .@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); }
6 | .@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); }
7 |
8 | .@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); }
9 | .@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); }
10 |
11 | // Hook for IE8-9
12 | // -------------------------
13 |
14 | :root .@{fa-css-prefix}-rotate-90,
15 | :root .@{fa-css-prefix}-rotate-180,
16 | :root .@{fa-css-prefix}-rotate-270,
17 | :root .@{fa-css-prefix}-flip-horizontal,
18 | :root .@{fa-css-prefix}-flip-vertical {
19 | filter: none;
20 | }
21 |
--------------------------------------------------------------------------------
/static/font-awesome-4.7.0/less/screen-reader.less:
--------------------------------------------------------------------------------
1 | // Screen Readers
2 | // -------------------------
3 |
4 | .sr-only { .sr-only(); }
5 | .sr-only-focusable { .sr-only-focusable(); }
6 |
--------------------------------------------------------------------------------
/static/font-awesome-4.7.0/less/stacked.less:
--------------------------------------------------------------------------------
1 | // Stacked Icons
2 | // -------------------------
3 |
4 | .@{fa-css-prefix}-stack {
5 | position: relative;
6 | display: inline-block;
7 | width: 2em;
8 | height: 2em;
9 | line-height: 2em;
10 | vertical-align: middle;
11 | }
12 | .@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x {
13 | position: absolute;
14 | left: 0;
15 | width: 100%;
16 | text-align: center;
17 | }
18 | .@{fa-css-prefix}-stack-1x { line-height: inherit; }
19 | .@{fa-css-prefix}-stack-2x { font-size: 2em; }
20 | .@{fa-css-prefix}-inverse { color: @fa-inverse; }
21 |
--------------------------------------------------------------------------------
/static/font-awesome-4.7.0/scss/_animated.scss:
--------------------------------------------------------------------------------
1 | // Spinning Icons
2 | // --------------------------
3 |
4 | .#{$fa-css-prefix}-spin {
5 | -webkit-animation: fa-spin 2s infinite linear;
6 | animation: fa-spin 2s infinite linear;
7 | }
8 |
9 | .#{$fa-css-prefix}-pulse {
10 | -webkit-animation: fa-spin 1s infinite steps(8);
11 | animation: fa-spin 1s infinite steps(8);
12 | }
13 |
14 | @-webkit-keyframes fa-spin {
15 | 0% {
16 | -webkit-transform: rotate(0deg);
17 | transform: rotate(0deg);
18 | }
19 | 100% {
20 | -webkit-transform: rotate(359deg);
21 | transform: rotate(359deg);
22 | }
23 | }
24 |
25 | @keyframes fa-spin {
26 | 0% {
27 | -webkit-transform: rotate(0deg);
28 | transform: rotate(0deg);
29 | }
30 | 100% {
31 | -webkit-transform: rotate(359deg);
32 | transform: rotate(359deg);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/static/font-awesome-4.7.0/scss/_bordered-pulled.scss:
--------------------------------------------------------------------------------
1 | // Bordered & Pulled
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-border {
5 | padding: .2em .25em .15em;
6 | border: solid .08em $fa-border-color;
7 | border-radius: .1em;
8 | }
9 |
10 | .#{$fa-css-prefix}-pull-left { float: left; }
11 | .#{$fa-css-prefix}-pull-right { float: right; }
12 |
13 | .#{$fa-css-prefix} {
14 | &.#{$fa-css-prefix}-pull-left { margin-right: .3em; }
15 | &.#{$fa-css-prefix}-pull-right { margin-left: .3em; }
16 | }
17 |
18 | /* Deprecated as of 4.4.0 */
19 | .pull-right { float: right; }
20 | .pull-left { float: left; }
21 |
22 | .#{$fa-css-prefix} {
23 | &.pull-left { margin-right: .3em; }
24 | &.pull-right { margin-left: .3em; }
25 | }
26 |
--------------------------------------------------------------------------------
/static/font-awesome-4.7.0/scss/_core.scss:
--------------------------------------------------------------------------------
1 | // Base Class Definition
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix} {
5 | display: inline-block;
6 | font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration
7 | font-size: inherit; // can't have font-size inherit on line above, so need to override
8 | text-rendering: auto; // optimizelegibility throws things off #1094
9 | -webkit-font-smoothing: antialiased;
10 | -moz-osx-font-smoothing: grayscale;
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/static/font-awesome-4.7.0/scss/_fixed-width.scss:
--------------------------------------------------------------------------------
1 | // Fixed Width Icons
2 | // -------------------------
3 | .#{$fa-css-prefix}-fw {
4 | width: (18em / 14);
5 | text-align: center;
6 | }
7 |
--------------------------------------------------------------------------------
/static/font-awesome-4.7.0/scss/_larger.scss:
--------------------------------------------------------------------------------
1 | // Icon Sizes
2 | // -------------------------
3 |
4 | /* makes the font 33% larger relative to the icon container */
5 | .#{$fa-css-prefix}-lg {
6 | font-size: (4em / 3);
7 | line-height: (3em / 4);
8 | vertical-align: -15%;
9 | }
10 | .#{$fa-css-prefix}-2x { font-size: 2em; }
11 | .#{$fa-css-prefix}-3x { font-size: 3em; }
12 | .#{$fa-css-prefix}-4x { font-size: 4em; }
13 | .#{$fa-css-prefix}-5x { font-size: 5em; }
14 |
--------------------------------------------------------------------------------
/static/font-awesome-4.7.0/scss/_list.scss:
--------------------------------------------------------------------------------
1 | // List Icons
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-ul {
5 | padding-left: 0;
6 | margin-left: $fa-li-width;
7 | list-style-type: none;
8 | > li { position: relative; }
9 | }
10 | .#{$fa-css-prefix}-li {
11 | position: absolute;
12 | left: -$fa-li-width;
13 | width: $fa-li-width;
14 | top: (2em / 14);
15 | text-align: center;
16 | &.#{$fa-css-prefix}-lg {
17 | left: -$fa-li-width + (4em / 14);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/static/font-awesome-4.7.0/scss/_mixins.scss:
--------------------------------------------------------------------------------
1 | // Mixins
2 | // --------------------------
3 |
4 | @mixin fa-icon() {
5 | display: inline-block;
6 | font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration
7 | font-size: inherit; // can't have font-size inherit on line above, so need to override
8 | text-rendering: auto; // optimizelegibility throws things off #1094
9 | -webkit-font-smoothing: antialiased;
10 | -moz-osx-font-smoothing: grayscale;
11 |
12 | }
13 |
14 | @mixin fa-icon-rotate($degrees, $rotation) {
15 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})";
16 | -webkit-transform: rotate($degrees);
17 | -ms-transform: rotate($degrees);
18 | transform: rotate($degrees);
19 | }
20 |
21 | @mixin fa-icon-flip($horiz, $vert, $rotation) {
22 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)";
23 | -webkit-transform: scale($horiz, $vert);
24 | -ms-transform: scale($horiz, $vert);
25 | transform: scale($horiz, $vert);
26 | }
27 |
28 |
29 | // Only display content to screen readers. A la Bootstrap 4.
30 | //
31 | // See: http://a11yproject.com/posts/how-to-hide-content/
32 |
33 | @mixin sr-only {
34 | position: absolute;
35 | width: 1px;
36 | height: 1px;
37 | padding: 0;
38 | margin: -1px;
39 | overflow: hidden;
40 | clip: rect(0,0,0,0);
41 | border: 0;
42 | }
43 |
44 | // Use in conjunction with .sr-only to only display content when it's focused.
45 | //
46 | // Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
47 | //
48 | // Credit: HTML5 Boilerplate
49 |
50 | @mixin sr-only-focusable {
51 | &:active,
52 | &:focus {
53 | position: static;
54 | width: auto;
55 | height: auto;
56 | margin: 0;
57 | overflow: visible;
58 | clip: auto;
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/static/font-awesome-4.7.0/scss/_path.scss:
--------------------------------------------------------------------------------
1 | /* FONT PATH
2 | * -------------------------- */
3 |
4 | @font-face {
5 | font-family: 'FontAwesome';
6 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}');
7 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'),
8 | url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'),
9 | url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'),
10 | url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'),
11 | url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg');
12 | // src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts
13 | font-weight: normal;
14 | font-style: normal;
15 | }
16 |
--------------------------------------------------------------------------------
/static/font-awesome-4.7.0/scss/_rotated-flipped.scss:
--------------------------------------------------------------------------------
1 | // Rotated & Flipped Icons
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); }
5 | .#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); }
6 | .#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); }
7 |
8 | .#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); }
9 | .#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); }
10 |
11 | // Hook for IE8-9
12 | // -------------------------
13 |
14 | :root .#{$fa-css-prefix}-rotate-90,
15 | :root .#{$fa-css-prefix}-rotate-180,
16 | :root .#{$fa-css-prefix}-rotate-270,
17 | :root .#{$fa-css-prefix}-flip-horizontal,
18 | :root .#{$fa-css-prefix}-flip-vertical {
19 | filter: none;
20 | }
21 |
--------------------------------------------------------------------------------
/static/font-awesome-4.7.0/scss/_screen-reader.scss:
--------------------------------------------------------------------------------
1 | // Screen Readers
2 | // -------------------------
3 |
4 | .sr-only { @include sr-only(); }
5 | .sr-only-focusable { @include sr-only-focusable(); }
6 |
--------------------------------------------------------------------------------
/static/font-awesome-4.7.0/scss/_stacked.scss:
--------------------------------------------------------------------------------
1 | // Stacked Icons
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-stack {
5 | position: relative;
6 | display: inline-block;
7 | width: 2em;
8 | height: 2em;
9 | line-height: 2em;
10 | vertical-align: middle;
11 | }
12 | .#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x {
13 | position: absolute;
14 | left: 0;
15 | width: 100%;
16 | text-align: center;
17 | }
18 | .#{$fa-css-prefix}-stack-1x { line-height: inherit; }
19 | .#{$fa-css-prefix}-stack-2x { font-size: 2em; }
20 | .#{$fa-css-prefix}-inverse { color: $fa-inverse; }
21 |
--------------------------------------------------------------------------------
/static/font-awesome-4.7.0/scss/font-awesome.scss:
--------------------------------------------------------------------------------
1 | /*!
2 | * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4 | */
5 |
6 | @import "variables";
7 | @import "mixins";
8 | @import "path";
9 | @import "core";
10 | @import "larger";
11 | @import "fixed-width";
12 | @import "list";
13 | @import "bordered-pulled";
14 | @import "animated";
15 | @import "rotated-flipped";
16 | @import "stacked";
17 | @import "icons";
18 | @import "screen-reader";
19 |
--------------------------------------------------------------------------------
/文档/交付文档/YZC999.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/文档/交付文档/YZC999.pptx
--------------------------------------------------------------------------------
/文档/交付文档/代码自测结果表.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/文档/交付文档/代码自测结果表.xlsx
--------------------------------------------------------------------------------
/文档/交付文档/周均梅个人文档/个人日报_周均梅.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/文档/交付文档/周均梅个人文档/个人日报_周均梅.xlsx
--------------------------------------------------------------------------------
/文档/交付文档/周均梅个人文档/周均梅-.实训调查报告.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/文档/交付文档/周均梅个人文档/周均梅-.实训调查报告.xlsx
--------------------------------------------------------------------------------
/文档/交付文档/周均梅个人文档/周均梅-个人总结报告.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/文档/交付文档/周均梅个人文档/周均梅-个人总结报告.xlsx
--------------------------------------------------------------------------------
/文档/交付文档/周均梅个人文档/周均梅实训总结.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/文档/交付文档/周均梅个人文档/周均梅实训总结.docx
--------------------------------------------------------------------------------
/文档/交付文档/杨晓敏个人文档/个人日报_杨晓敏 .xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/文档/交付文档/杨晓敏个人文档/个人日报_杨晓敏 .xlsx
--------------------------------------------------------------------------------
/文档/交付文档/杨晓敏个人文档/杨晓敏个人总结报告.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/文档/交付文档/杨晓敏个人文档/杨晓敏个人总结报告.xlsx
--------------------------------------------------------------------------------
/文档/交付文档/杨晓敏个人文档/杨晓敏学员实训总结.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/文档/交付文档/杨晓敏个人文档/杨晓敏学员实训总结.docx
--------------------------------------------------------------------------------
/文档/交付文档/杨晓敏个人文档/杨晓敏实训调查报告.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/文档/交付文档/杨晓敏个人文档/杨晓敏实训调查报告.xlsx
--------------------------------------------------------------------------------
/文档/交付文档/概要设计说明书.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/文档/交付文档/概要设计说明书.docx
--------------------------------------------------------------------------------
/文档/交付文档/用户手册.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/文档/交付文档/用户手册.docx
--------------------------------------------------------------------------------
/文档/交付文档/详细设计说明书.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/文档/交付文档/详细设计说明书.docx
--------------------------------------------------------------------------------
/文档/交付文档/软件需求规格说明书.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/文档/交付文档/软件需求规格说明书.docx
--------------------------------------------------------------------------------
/文档/交付文档/问题管理表 .xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/文档/交付文档/问题管理表 .xlsx
--------------------------------------------------------------------------------
/文档/交付文档/陈秋宇个人文档/个人报告_陈秋宇.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/文档/交付文档/陈秋宇个人文档/个人报告_陈秋宇.xlsx
--------------------------------------------------------------------------------
/文档/交付文档/陈秋宇个人文档/陈秋宇个人总结报告.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/文档/交付文档/陈秋宇个人文档/陈秋宇个人总结报告.xlsx
--------------------------------------------------------------------------------
/文档/交付文档/陈秋宇个人文档/陈秋宇实训总结.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/文档/交付文档/陈秋宇个人文档/陈秋宇实训总结.docx
--------------------------------------------------------------------------------
/文档/交付文档/陈秋宇个人文档/陈秋宇实训调查报告.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/文档/交付文档/陈秋宇个人文档/陈秋宇实训调查报告.xlsx
--------------------------------------------------------------------------------
/文档/交付文档/项目周报.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/文档/交付文档/项目周报.xlsx
--------------------------------------------------------------------------------
/文档/交付文档/项目总结报告.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/文档/交付文档/项目总结报告.xlsx
--------------------------------------------------------------------------------
/文档/交付文档模板/01.软件需求规格说明书(模板).docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/文档/交付文档模板/01.软件需求规格说明书(模板).docx
--------------------------------------------------------------------------------
/文档/交付文档模板/03.详细设计说明书.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/文档/交付文档模板/03.详细设计说明书.docx
--------------------------------------------------------------------------------
/文档/交付文档模板/04.代码自测结果表(模板).xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/文档/交付文档模板/04.代码自测结果表(模板).xlsx
--------------------------------------------------------------------------------
/文档/交付文档模板/05.用户手册(模板).docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/文档/交付文档模板/05.用户手册(模板).docx
--------------------------------------------------------------------------------
/文档/交付文档模板/06.个人日报 .xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/文档/交付文档模板/06.个人日报 .xlsx
--------------------------------------------------------------------------------
/文档/交付文档模板/07.项目周报.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/文档/交付文档模板/07.项目周报.xlsx
--------------------------------------------------------------------------------
/文档/交付文档模板/10.项目总结报告.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/文档/交付文档模板/10.项目总结报告.xlsx
--------------------------------------------------------------------------------
/文档/交付文档模板/11.个人总结报告.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/文档/交付文档模板/11.个人总结报告.xlsx
--------------------------------------------------------------------------------
/文档/交付文档模板/12.项目汇报答辩(不限模板与格式).pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/文档/交付文档模板/12.项目汇报答辩(不限模板与格式).pptx
--------------------------------------------------------------------------------
/文档/交付文档模板/~$.概要设计说明书(模板).docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/文档/交付文档模板/~$.概要设计说明书(模板).docx
--------------------------------------------------------------------------------
/文档/交付文档模板/【样例】04.学员实训总结(模板).docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/文档/交付文档模板/【样例】04.学员实训总结(模板).docx
--------------------------------------------------------------------------------
/文档/交付文档模板/【样例】05.实训调查报告(模板).xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/文档/交付文档模板/【样例】05.实训调查报告(模板).xlsx
--------------------------------------------------------------------------------
/文档/交付文档模板/概要设计说明书.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/文档/交付文档模板/概要设计说明书.docx
--------------------------------------------------------------------------------
/文档/交付文档模板/问题管理表.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/文档/交付文档模板/问题管理表.xlsx
--------------------------------------------------------------------------------
/文档/项目组内文档/~$高仿小米官网的进度.xlsx:
--------------------------------------------------------------------------------
1 | admin a d m i n
--------------------------------------------------------------------------------
/文档/项目组内文档/高仿小米官网的进度.xlsx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YZC999/mi-vue/92a5a43aad87262dd40daf2ca81f5bbb467f1c40/文档/项目组内文档/高仿小米官网的进度.xlsx
--------------------------------------------------------------------------------