├── LICENSE
├── README.md
├── mpvue_shop
├── .babelrc
├── .editorconfig
├── .eslintignore
├── .eslintrc.js
├── .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
├── dist
│ └── static
│ │ └── images
│ │ ├── down-logo.png
│ │ ├── ka.png
│ │ ├── lipin.png
│ │ ├── news.png
│ │ ├── no-order.png
│ │ ├── refresh-logo.gif
│ │ ├── select.png
│ │ ├── tab.png
│ │ ├── tab1.png
│ │ ├── tab3.png
│ │ ├── tab3_.png
│ │ ├── tab4.png
│ │ ├── tab4_.png
│ │ ├── tab5.png
│ │ ├── tab5_.png
│ │ ├── tab_1.png
│ │ ├── tab_2.png
│ │ └── xianshi.png
├── index.html
├── package.json
├── project.config.json
├── src
│ ├── App.vue
│ ├── app.json
│ ├── components
│ │ └── card.vue
│ ├── main.js
│ ├── pages
│ │ ├── counter
│ │ │ ├── index.vue
│ │ │ ├── main.js
│ │ │ └── store.js
│ │ ├── details
│ │ │ ├── index.vue
│ │ │ ├── main.js
│ │ │ └── main.json
│ │ ├── fenlei
│ │ │ ├── index.vue
│ │ │ ├── main.js
│ │ │ └── main.json
│ │ ├── home
│ │ │ ├── index.vue
│ │ │ ├── main.js
│ │ │ └── main.json
│ │ ├── index
│ │ │ ├── index.vue
│ │ │ └── main.js
│ │ ├── logs
│ │ │ ├── index.vue
│ │ │ ├── main.js
│ │ │ └── main.json
│ │ ├── myself
│ │ │ ├── index.vue
│ │ │ ├── main.js
│ │ │ └── main.json
│ │ ├── news
│ │ │ ├── index.vue
│ │ │ ├── main.js
│ │ │ └── main.json
│ │ └── newsdetails
│ │ │ ├── index.vue
│ │ │ ├── main.js
│ │ │ └── main.json
│ ├── store
│ │ └── index.js
│ └── utils
│ │ ├── index.js
│ │ └── wx.js
└── static
│ ├── .gitkeep
│ └── images
│ ├── album-ajtd.png
│ ├── album-emoji.png
│ ├── album-lt.png
│ ├── album-xxy.png
│ ├── all_chat@3x.png
│ ├── bainji_pressed.png
│ ├── bianji_normal.png
│ ├── browse.png
│ ├── center_jiahao.png
│ ├── center_jiahao@3x.png
│ ├── chat-face@3x.png
│ ├── code.png
│ ├── daka_normal.png
│ ├── daka_pressed.png
│ ├── daka_search@3x.png
│ ├── daka_xiaosanjiao@3x.png
│ ├── default-icon.png
│ ├── delete.png
│ ├── dingwei.png
│ ├── dingwei@3x.png
│ ├── down-logo.png
│ ├── edit.png
│ ├── emoji.png
│ ├── erweima.png
│ ├── erweima@3x.png
│ ├── eye_c@3x.png
│ ├── eye_o.png
│ ├── eye_o@3x.png
│ ├── fangkeyuebao_bg.png
│ ├── forwarding.png
│ ├── getVip.png
│ ├── gou_b@3x.png
│ ├── gou_h@3x.png
│ ├── hangye.png
│ ├── hangye@3x.png
│ ├── headportrait_blue@2x.png
│ ├── headportrait_blue@3x.png
│ ├── henader.png
│ ├── icon_add.png
│ ├── integral.png
│ ├── intro.png
│ ├── ka.png
│ ├── keyboard.png
│ ├── label.png
│ ├── lipin.png
│ ├── liulanliang@3x.png
│ ├── love.png
│ ├── love_g@3x.png
│ ├── love_o@3x.png
│ ├── message.png
│ ├── mingpian_normal.png
│ ├── mingpian_pressed.png
│ ├── month.png
│ ├── more.png
│ ├── namebox_camera.png
│ ├── namebox_me@3x.png
│ ├── namebox_search.png
│ ├── namebox_shape_blue_right@3x.png
│ ├── news.png
│ ├── news_icon_love_empty_blue@3x.png
│ ├── news_icon_love_gray@3x.png
│ ├── news_icon_love_orange@3x.png
│ ├── news_icon_search@3x.png
│ ├── news_icon_share@3x.png
│ ├── no-order.png
│ ├── noMessage.png
│ ├── no_one.png
│ ├── no_three.png
│ ├── no_two.png
│ ├── phone.png
│ ├── phone@3x.png
│ ├── photo.png
│ ├── picture@3x.png
│ ├── refresh-logo.gif
│ ├── right.png
│ ├── search.png
│ ├── select.png
│ ├── setting_icon_close@3x.png
│ ├── setting_icon_open@3x.png
│ ├── tab.png
│ ├── tab1.png
│ ├── tab3.png
│ ├── tab3_.png
│ ├── tab4.png
│ ├── tab4_.png
│ ├── tab5.png
│ ├── tab_1.png
│ ├── tab_2.png
│ ├── takingpicture_circle_bg@3x.png
│ ├── takingpictures_camera@3x.png
│ ├── takingpictures_pencil@3x.png
│ ├── tianjia@3x.png
│ ├── tiejia_0@3x.png
│ ├── tiejia_g@3x.png
│ ├── v_normal@3x.png
│ ├── v_pressed@3x.png
│ ├── vedio@3x.png
│ ├── video.png
│ ├── vip.png
│ ├── vip1.png
│ ├── vipone.png
│ ├── vipone1.png
│ ├── voice.png
│ ├── weixin.png
│ ├── weixin@3x.png
│ ├── wode_normal.png
│ ├── wode_pressed.png
│ ├── xianshi.png
│ ├── xiaosanjiao.png
│ ├── year.png
│ ├── youxiang.png
│ ├── youxiang@3x.png
│ ├── zixun_normal.png
│ └── zixun_pressed.png
├── react
└── react_shop
│ ├── README.md
│ ├── package-lock.json
│ ├── package.json
│ ├── public
│ ├── favicon.ico
│ ├── index.html
│ └── manifest.json
│ └── src
│ ├── App.css
│ ├── App.js
│ ├── App.test.js
│ ├── index.css
│ ├── index.js
│ ├── logo.svg
│ └── serviceWorker.js
└── vue_mint_app
├── .babelrc
├── .cache
├── 0044526e50b5d8d725efa9f3f6e95ff790724b7305c7d267ae15818cb65b4e64.js
├── 0d7d6e8d1b0b608c5c3af159eafe823ff3d86c1a7affbfc7670c29c630e0254d.js
├── 10ba3ef31c22612fdf4bd8c4355cf3fea8fa8bbc273268ec2f06d514f7ab9474.js
├── 2559636b52baae701917f188e04d1b325c8f62dfda1faf4cc84de9ead5e17609.js
├── 2da12180c0c5a9ef64ed9256cf97483d161f86aee37d58f52841e4829951fb62.js
├── 30e0454c3068719d6715072c22c99ab5edb8df55ca1b26271d0a74e3bfd7025f.js
├── 39ff0f9bd989efa2cae649337acd7676fa1667a79cdc86cc3b2a6bb6db61d16d.js
├── 47818b30e6fc64a1f806f19fa08ee6b270e473db12a295997720b2d8535e25d2.js
├── 49122289f6abba1d961e3e196f6e343ddd2910bc8df62182d1575828658a1491.js
├── 5fb889e37e68eed9386f136a9a8741e87031d1c57d74a6b108c191600a2a45fe.js
├── 66cf49723a48e39b2705718e3bd435c818a7b1cec3acf4aa441ce043c160df4c.js
├── 795d061eef82514e6acd440598d4f4322caadc8df936ff400f1e3f061921ba9a.js
├── 810cf7bcd6a1b99dfde956fd27710e4ddd0a316ab0ae59ac77e75a66599686c6.js
├── 86bf78a0e4797e6fa67854708c4b72e189056de6882648c97f273c9a94bd0958.js
├── 8db6f343414b87e986bf939cc9dbc173ada727aed95bf3c8e41d253915475024.js
├── 9cd290b24ca14527464db7cf85e0430c036dcc35031a04039b375d904efb25ca.js
├── a3230c818062bf7b790d134ebe65fff35268fc5099f5f14c9d2d04d0916259c2.js
├── c4784f648c7efcdb667683a15f1594cadd8b4f2788c070d6a0b242c6e3b689ee.js
├── c79fca38bd82859fbcb7b7fd3a3f96e38c49f2c6fb1415afb6b98f8644e33e69.js
├── d022d919ef3b0e0af213a25600716ae406b3993ea3a659bf9f2854be1b0d6aab.js
└── fd6043e5de10248d0821d2fdfef7d8dd37da4ea8ed16209659234ed62b9d94a3.js
├── .editorconfig
├── .eslintrc.json
├── .gitignore
├── .postcssrc.js
├── .project
├── build
├── build.js
├── check-versions.js
├── logo.png
├── utils.js
├── vue-loader.conf.js
├── webpack.base.conf.js
├── webpack.dev.conf.js
├── webpack.prod.conf.js
└── webpack.test.conf.js
├── config
├── dev.env.js
├── index.js
├── prod.env.js
├── test.env.js
└── vsconsole.js
├── index.html
├── manifest.json
├── package-lock.json
├── package.json
├── src
├── App.vue
├── components
│ ├── FooterBar.vue
│ ├── headerOne.vue
│ └── headerTwo.vue
├── main.js
├── pages
│ ├── 404.vue
│ ├── Globaldata.vue
│ ├── all_order.vue
│ ├── cart.vue
│ ├── choose.vue
│ ├── details.vue
│ ├── fabu.vue
│ ├── fenlei.vue
│ ├── item.vue
│ ├── load.vue
│ ├── login.vue
│ ├── main.vue
│ ├── mifenka.vue
│ ├── my.vue
│ ├── need.vue
│ ├── news.vue
│ ├── qiangou.vue
│ ├── scrolldrop.vue
│ └── tool.vue
├── router
│ └── index.js
├── store
│ └── index.js
└── utils
│ ├── api.js
│ └── rem.js
└── static
├── .gitkeep
├── css
├── main.css
└── reset.css
├── data
├── address3.json
└── address4.json
├── font
└── iconfont.css
├── home.png
├── home_selected.png
├── images
├── down-logo.png
├── ka.png
├── lipin.png
├── news.png
├── no-order.png
├── refresh-logo.gif
├── select.png
├── tab.png
├── tab1.png
├── tab3.png
├── tab3_.png
├── tab4.png
├── tab4_.png
├── tab5.png
├── tab5_.png
├── tab_1.png
├── tab_2.png
└── xianshi.png
├── search.png
├── search_selected.png
├── user.png
└── user_selected.png
/README.md:
--------------------------------------------------------------------------------
1 | # VUE-shop
2 | VUE做的移动小商场
3 | # vue全家桶做的手机商场主要用了
4 | # vue
5 | # vuex状态管理模式,
6 | # axios 是一个基于 promise 的 HTTP 库
7 | # vue-router路由管理器
8 | # mint-ui 饿了么一款移动端组件
9 | # vconsole
10 | # mock数据,
11 | # localstorage缓存数据,
12 | # BetterScroll 的滚动体验
13 | ### 主要的功能有轮播,选购手机,列表,
14 | ### 商品详情
15 | ### 加入购物车
16 | ### 删除购物车
17 | ### 模拟支付
18 | ### 个人中心
19 | ### 资讯中心
20 | ### 订单列表
21 | ### 使用vconsole真机调试
22 | 
23 | 
24 | 
25 | 
26 | 
27 |
28 | 
29 | 
30 |
--------------------------------------------------------------------------------
/mpvue_shop/.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 |
--------------------------------------------------------------------------------
/mpvue_shop/.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 |
--------------------------------------------------------------------------------
/mpvue_shop/.eslintignore:
--------------------------------------------------------------------------------
1 | build/*.js
2 | config/*.js
3 |
--------------------------------------------------------------------------------
/mpvue_shop/.eslintrc.js:
--------------------------------------------------------------------------------
1 | // http://eslint.org/docs/user-guide/configuring
2 |
3 | module.exports = {
4 | root: true,
5 | parser: 'babel-eslint',
6 | parserOptions: {
7 | sourceType: 'module'
8 | },
9 | env: {
10 | browser: false,
11 | node: true,
12 | es6: true
13 | },
14 | // https://github.com/standard/standard/blob/master/docs/RULES-en.md
15 | extends: 'standard',
16 | // required to lint *.vue files
17 | plugins: [
18 | 'html'
19 | ],
20 | // add your custom rules here
21 | 'rules': {
22 | // allow paren-less arrow functions
23 | 'arrow-parens': 0,
24 | // allow async-await
25 | 'generator-star-spacing': 0,
26 | // allow debugger during development
27 | 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0
28 | },
29 | globals: {
30 | App: true,
31 | Page: true,
32 | wx: true,
33 | getApp: true,
34 | getPage: true,
35 | requirePlugin: true
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/mpvue_shop/.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 |
--------------------------------------------------------------------------------
/mpvue_shop/.postcssrc.js:
--------------------------------------------------------------------------------
1 | // https://github.com/michael-ciniawsky/postcss-load-config
2 |
3 | module.exports = {
4 | "plugins": {
5 | "postcss-mpvue-wxss": {}
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/mpvue_shop/README.md:
--------------------------------------------------------------------------------
1 | # mpvuedemo
2 |
3 | > A Mpvue 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 |
--------------------------------------------------------------------------------
/mpvue_shop/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, '*'), 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 | if (stats.hasErrors()) {
30 | console.log(chalk.red(' Build failed with errors.\n'))
31 | process.exit(1)
32 | }
33 |
34 | console.log(chalk.cyan(' Build complete.\n'))
35 | console.log(chalk.yellow(
36 | ' Tip: built files are meant to be served over an HTTP server.\n' +
37 | ' Opening index.html over file:// won\'t work.\n'
38 | ))
39 | })
40 | })
41 |
--------------------------------------------------------------------------------
/mpvue_shop/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 |
--------------------------------------------------------------------------------
/mpvue_shop/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 |
--------------------------------------------------------------------------------
/mpvue_shop/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 portfinder = require('portfinder')
14 | var webpackConfig = require('./webpack.dev.conf')
15 |
16 | // default port where dev server listens for incoming traffic
17 | var port = process.env.PORT || config.dev.port
18 | // automatically open browser, if not set will be false
19 | var autoOpenBrowser = !!config.dev.autoOpenBrowser
20 | // Define HTTP proxies to your custom API backend
21 | // https://github.com/chimurai/http-proxy-middleware
22 | var proxyTable = config.dev.proxyTable
23 |
24 | var app = express()
25 | var compiler = webpack(webpackConfig)
26 |
27 | // var devMiddleware = require('webpack-dev-middleware')(compiler, {
28 | // publicPath: webpackConfig.output.publicPath,
29 | // quiet: true
30 | // })
31 |
32 | // var hotMiddleware = require('webpack-hot-middleware')(compiler, {
33 | // log: false,
34 | // heartbeat: 2000
35 | // })
36 | // force page reload when html-webpack-plugin template changes
37 | // compiler.plugin('compilation', function (compilation) {
38 | // compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) {
39 | // hotMiddleware.publish({ action: 'reload' })
40 | // cb()
41 | // })
42 | // })
43 |
44 | // proxy api requests
45 | Object.keys(proxyTable).forEach(function (context) {
46 | var options = proxyTable[context]
47 | if (typeof options === 'string') {
48 | options = { target: options }
49 | }
50 | app.use(proxyMiddleware(options.filter || context, options))
51 | })
52 |
53 | // handle fallback for HTML5 history API
54 | app.use(require('connect-history-api-fallback')())
55 |
56 | // serve webpack bundle output
57 | // app.use(devMiddleware)
58 |
59 | // enable hot-reload and state-preserving
60 | // compilation error display
61 | // app.use(hotMiddleware)
62 |
63 | // serve pure static assets
64 | var staticPath = path.posix.join(config.dev.assetsPublicPath, config.dev.assetsSubDirectory)
65 | app.use(staticPath, express.static('./static'))
66 |
67 | // var uri = 'http://localhost:' + port
68 |
69 | var _resolve
70 | var readyPromise = new Promise(resolve => {
71 | _resolve = resolve
72 | })
73 |
74 | // console.log('> Starting dev server...')
75 | // devMiddleware.waitUntilValid(() => {
76 | // console.log('> Listening at ' + uri + '\n')
77 | // // when env is testing, don't need open it
78 | // if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') {
79 | // opn(uri)
80 | // }
81 | // _resolve()
82 | // })
83 |
84 | module.exports = new Promise((resolve, reject) => {
85 | portfinder.basePort = port
86 | portfinder.getPortPromise()
87 | .then(newPort => {
88 | if (port !== newPort) {
89 | console.log(`${port}端口被占用,开启新端口${newPort}`)
90 | }
91 | var server = app.listen(newPort, 'localhost')
92 | // for 小程序的文件保存机制
93 | require('webpack-dev-middleware-hard-disk')(compiler, {
94 | publicPath: webpackConfig.output.publicPath,
95 | quiet: true
96 | })
97 | resolve({
98 | ready: readyPromise,
99 | close: () => {
100 | server.close()
101 | }
102 | })
103 | }).catch(error => {
104 | console.log('没有找到空闲端口,请打开任务管理器杀死进程端口再试', error)
105 | })
106 | })
107 |
--------------------------------------------------------------------------------
/mpvue_shop/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 | var postcssLoader = {
24 | loader: 'postcss-loader',
25 | options: {
26 | sourceMap: true
27 | }
28 | }
29 |
30 | var px2rpxLoader = {
31 | loader: 'px2rpx-loader',
32 | options: {
33 | baseDpr: 1,
34 | rpxUnit: 0.5
35 | }
36 | }
37 |
38 | // generate loader string to be used with extract text plugin
39 | function generateLoaders (loader, loaderOptions) {
40 | var loaders = [cssLoader, px2rpxLoader, postcssLoader]
41 | if (loader) {
42 | loaders.push({
43 | loader: loader + '-loader',
44 | options: Object.assign({}, loaderOptions, {
45 | sourceMap: options.sourceMap
46 | })
47 | })
48 | }
49 |
50 | // Extract CSS when that option is specified
51 | // (which is the case during production build)
52 | if (options.extract) {
53 | return ExtractTextPlugin.extract({
54 | use: loaders,
55 | fallback: 'vue-style-loader'
56 | })
57 | } else {
58 | return ['vue-style-loader'].concat(loaders)
59 | }
60 | }
61 |
62 | // https://vue-loader.vuejs.org/en/configurations/extract-css.html
63 | return {
64 | css: generateLoaders(),
65 | wxss: generateLoaders(),
66 | postcss: generateLoaders(),
67 | less: generateLoaders('less'),
68 | sass: generateLoaders('sass', { indentedSyntax: true }),
69 | scss: generateLoaders('sass'),
70 | stylus: generateLoaders('stylus'),
71 | styl: generateLoaders('stylus')
72 | }
73 | }
74 |
75 | // Generate loaders for standalone style files (outside of .vue)
76 | exports.styleLoaders = function (options) {
77 | var output = []
78 | var loaders = exports.cssLoaders(options)
79 | for (var extension in loaders) {
80 | var loader = loaders[extension]
81 | output.push({
82 | test: new RegExp('\\.' + extension + '$'),
83 | use: loader
84 | })
85 | }
86 | return output
87 | }
88 |
--------------------------------------------------------------------------------
/mpvue_shop/build/vue-loader.conf.js:
--------------------------------------------------------------------------------
1 | var utils = require('./utils')
2 | var config = require('../config')
3 | // var isProduction = process.env.NODE_ENV === 'production'
4 | // for mp
5 | var isProduction = true
6 |
7 | module.exports = {
8 | loaders: utils.cssLoaders({
9 | sourceMap: isProduction
10 | ? config.build.productionSourceMap
11 | : config.dev.cssSourceMap,
12 | extract: isProduction
13 | }),
14 | transformToRequire: {
15 | video: 'src',
16 | source: 'src',
17 | img: 'src',
18 | image: 'xlink:href'
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/mpvue_shop/build/webpack.base.conf.js:
--------------------------------------------------------------------------------
1 | var path = require('path')
2 | var fs = require('fs')
3 | var utils = require('./utils')
4 | var config = require('../config')
5 | var vueLoaderConfig = require('./vue-loader.conf')
6 | var MpvuePlugin = require('webpack-mpvue-asset-plugin')
7 | var glob = require('glob')
8 | var CopyWebpackPlugin = require('copy-webpack-plugin')
9 | var relative = require('relative')
10 |
11 | function resolve (dir) {
12 | return path.join(__dirname, '..', dir)
13 | }
14 |
15 | function getEntry (rootSrc) {
16 | var map = {};
17 | glob.sync(rootSrc + '/pages/**/main.js')
18 | .forEach(file => {
19 | var key = relative(rootSrc, file).replace('.js', '');
20 | map[key] = file;
21 | })
22 | return map;
23 | }
24 |
25 | const appEntry = { app: resolve('./src/main.js') }
26 | const pagesEntry = getEntry(resolve('./src'), 'pages/**/main.js')
27 | const entry = Object.assign({}, appEntry, pagesEntry)
28 |
29 | module.exports = {
30 | // 如果要自定义生成的 dist 目录里面的文件路径,
31 | // 可以将 entry 写成 {'toPath': 'fromPath'} 的形式,
32 | // toPath 为相对于 dist 的路径, 例:index/demo,则生成的文件地址为 dist/index/demo.js
33 | entry,
34 | target: require('mpvue-webpack-target'),
35 | output: {
36 | path: config.build.assetsRoot,
37 | filename: '[name].js',
38 | publicPath: process.env.NODE_ENV === 'production'
39 | ? config.build.assetsPublicPath
40 | : config.dev.assetsPublicPath
41 | },
42 | resolve: {
43 | extensions: ['.js', '.vue', '.json'],
44 | alias: {
45 | 'vue': 'mpvue',
46 | '@': resolve('src')
47 | },
48 | symlinks: false,
49 | aliasFields: ['mpvue', 'weapp', 'browser'],
50 | mainFields: ['browser', 'module', 'main']
51 | },
52 | module: {
53 | rules: [
54 | {
55 | test: /\.(js|vue)$/,
56 | loader: 'eslint-loader',
57 | enforce: 'pre',
58 | include: [resolve('src'), resolve('test')],
59 | options: {
60 | formatter: require('eslint-friendly-formatter')
61 | }
62 | },
63 | {
64 | test: /\.vue$/,
65 | loader: 'mpvue-loader',
66 | options: vueLoaderConfig
67 | },
68 | {
69 | test: /\.js$/,
70 | include: [resolve('src'), resolve('test')],
71 | use: [
72 | 'babel-loader',
73 | {
74 | loader: 'mpvue-loader',
75 | options: {
76 | checkMPEntry: true
77 | }
78 | },
79 | ]
80 | },
81 | {
82 | test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
83 | loader: 'url-loader',
84 | options: {
85 | limit: 10000,
86 | name: utils.assetsPath('img/[name].[ext]')
87 | }
88 | },
89 | {
90 | test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,
91 | loader: 'url-loader',
92 | options: {
93 | limit: 10000,
94 | name: utils.assetsPath('media/[name].[ext]')
95 | }
96 | },
97 | {
98 | test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
99 | loader: 'url-loader',
100 | options: {
101 | limit: 10000,
102 | name: utils.assetsPath('fonts/[name].[ext]')
103 | }
104 | }
105 | ]
106 | },
107 | plugins: [
108 | new MpvuePlugin(),
109 | new CopyWebpackPlugin([{
110 | from: '**/*.json',
111 | to: ''
112 | }], {
113 | context: 'src/'
114 | }),
115 | new CopyWebpackPlugin([
116 | {
117 | from: path.resolve(__dirname, '../static'),
118 | to: path.resolve(__dirname, '../dist/static'),
119 | ignore: ['.*']
120 | }
121 | ])
122 | ]
123 | }
124 |
--------------------------------------------------------------------------------
/mpvue_shop/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 | // copy from ./webpack.prod.conf.js
10 | var path = require('path')
11 | var ExtractTextPlugin = require('extract-text-webpack-plugin')
12 | var CopyWebpackPlugin = require('copy-webpack-plugin')
13 | var OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin')
14 |
15 | // add hot-reload related code to entry chunks
16 | // Object.keys(baseWebpackConfig.entry).forEach(function (name) {
17 | // baseWebpackConfig.entry[name] = ['./build/dev-client'].concat(baseWebpackConfig.entry[name])
18 | // })
19 |
20 | module.exports = merge(baseWebpackConfig, {
21 | module: {
22 | rules: utils.styleLoaders({
23 | sourceMap: config.dev.cssSourceMap,
24 | extract: true
25 | })
26 | },
27 | // cheap-module-eval-source-map is faster for development
28 | // devtool: '#cheap-module-eval-source-map',
29 | devtool: '#source-map',
30 | output: {
31 | path: config.build.assetsRoot,
32 | // filename: utils.assetsPath('[name].[chunkhash].js'),
33 | // chunkFilename: utils.assetsPath('[id].[chunkhash].js')
34 | filename: utils.assetsPath('[name].js'),
35 | chunkFilename: utils.assetsPath('[id].js')
36 | },
37 | plugins: [
38 | new webpack.DefinePlugin({
39 | 'process.env': config.dev.env
40 | }),
41 |
42 | // copy from ./webpack.prod.conf.js
43 | // extract css into its own file
44 | new ExtractTextPlugin({
45 | // filename: utils.assetsPath('[name].[contenthash].css')
46 | filename: utils.assetsPath('[name].wxss')
47 | }),
48 | // Compress extracted CSS. We are using this plugin so that possible
49 | // duplicated CSS from different components can be deduped.
50 | new OptimizeCSSPlugin({
51 | cssProcessorOptions: {
52 | safe: true
53 | }
54 | }),
55 | new webpack.optimize.CommonsChunkPlugin({
56 | name: 'common/vendor',
57 | minChunks: function (module, count) {
58 | // any required modules inside node_modules are extracted to vendor
59 | return (
60 | module.resource &&
61 | /\.js$/.test(module.resource) &&
62 | module.resource.indexOf('node_modules') >= 0
63 | ) || count > 1
64 | }
65 | }),
66 | new webpack.optimize.CommonsChunkPlugin({
67 | name: 'common/manifest',
68 | chunks: ['common/vendor']
69 | }),
70 |
71 | // https://github.com/glenjamin/webpack-hot-middleware#installation--usage
72 | // new webpack.HotModuleReplacementPlugin(),
73 | new webpack.NoEmitOnErrorsPlugin(),
74 | // https://github.com/ampedandwired/html-webpack-plugin
75 | // new HtmlWebpackPlugin({
76 | // filename: 'index.html',
77 | // template: 'index.html',
78 | // inject: true
79 | // }),
80 | new FriendlyErrorsPlugin()
81 | ]
82 | })
83 |
--------------------------------------------------------------------------------
/mpvue_shop/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 UglifyJsPlugin = require('uglifyjs-webpack-plugin')
8 | var CopyWebpackPlugin = require('copy-webpack-plugin')
9 | // var HtmlWebpackPlugin = require('html-webpack-plugin')
10 | var ExtractTextPlugin = require('extract-text-webpack-plugin')
11 | var OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin')
12 |
13 | var env = config.build.env
14 |
15 | var webpackConfig = merge(baseWebpackConfig, {
16 | module: {
17 | rules: utils.styleLoaders({
18 | sourceMap: config.build.productionSourceMap,
19 | extract: true
20 | })
21 | },
22 | devtool: config.build.productionSourceMap ? '#source-map' : false,
23 | output: {
24 | path: config.build.assetsRoot,
25 | // filename: utils.assetsPath('[name].[chunkhash].js'),
26 | // chunkFilename: utils.assetsPath('[id].[chunkhash].js')
27 | filename: utils.assetsPath('[name].js'),
28 | chunkFilename: utils.assetsPath('[id].js')
29 | },
30 | plugins: [
31 | // http://vuejs.github.io/vue-loader/en/workflow/production.html
32 | new webpack.DefinePlugin({
33 | 'process.env': env
34 | }),
35 | new UglifyJsPlugin({
36 | sourceMap: true
37 | }),
38 | // extract css into its own file
39 | new ExtractTextPlugin({
40 | // filename: utils.assetsPath('[name].[contenthash].css')
41 | filename: utils.assetsPath('[name].wxss')
42 | }),
43 | // Compress extracted CSS. We are using this plugin so that possible
44 | // duplicated CSS from different components can be deduped.
45 | new OptimizeCSSPlugin({
46 | cssProcessorOptions: {
47 | safe: true
48 | }
49 | }),
50 | // generate dist index.html with correct asset hash for caching.
51 | // you can customize output by editing /index.html
52 | // see https://github.com/ampedandwired/html-webpack-plugin
53 | // new HtmlWebpackPlugin({
54 | // filename: config.build.index,
55 | // template: 'index.html',
56 | // inject: true,
57 | // minify: {
58 | // removeComments: true,
59 | // collapseWhitespace: true,
60 | // removeAttributeQuotes: true
61 | // // more options:
62 | // // https://github.com/kangax/html-minifier#options-quick-reference
63 | // },
64 | // // necessary to consistently work with multiple chunks via CommonsChunkPlugin
65 | // chunksSortMode: 'dependency'
66 | // }),
67 | // keep module.id stable when vender modules does not change
68 | new webpack.HashedModuleIdsPlugin(),
69 | // split vendor js into its own file
70 | new webpack.optimize.CommonsChunkPlugin({
71 | name: 'common/vendor',
72 | minChunks: function (module, count) {
73 | // any required modules inside node_modules are extracted to vendor
74 | return (
75 | module.resource &&
76 | /\.js$/.test(module.resource) &&
77 | module.resource.indexOf('node_modules') >= 0
78 | ) || count > 1
79 | }
80 | }),
81 | // extract webpack runtime and module manifest to its own file in order to
82 | // prevent vendor hash from being updated whenever app bundle is updated
83 | new webpack.optimize.CommonsChunkPlugin({
84 | name: 'common/manifest',
85 | chunks: ['common/vendor']
86 | })
87 | ]
88 | })
89 |
90 | // if (config.build.productionGzip) {
91 | // var CompressionWebpackPlugin = require('compression-webpack-plugin')
92 |
93 | // webpackConfig.plugins.push(
94 | // new CompressionWebpackPlugin({
95 | // asset: '[path].gz[query]',
96 | // algorithm: 'gzip',
97 | // test: new RegExp(
98 | // '\\.(' +
99 | // config.build.productionGzipExtensions.join('|') +
100 | // ')$'
101 | // ),
102 | // threshold: 10240,
103 | // minRatio: 0.8
104 | // })
105 | // )
106 | // }
107 |
108 | if (config.build.bundleAnalyzerReport) {
109 | var BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
110 | webpackConfig.plugins.push(new BundleAnalyzerPlugin())
111 | }
112 |
113 | module.exports = webpackConfig
114 |
--------------------------------------------------------------------------------
/mpvue_shop/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 |
--------------------------------------------------------------------------------
/mpvue_shop/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: '',
10 | assetsPublicPath: '/',
11 | productionSourceMap: false,
12 | // Gzip off by default as many popular static hosts such as
13 | // Surge or Netlify already gzip all static assets for you.
14 | // Before setting to `true`, make sure to:
15 | // npm install --save-dev compression-webpack-plugin
16 | productionGzip: false,
17 | productionGzipExtensions: ['js', 'css'],
18 | // Run the build command with an extra argument to
19 | // View the bundle analyzer report after build finishes:
20 | // `npm run build --report`
21 | // Set to `true` or `false` to always turn it on or off
22 | bundleAnalyzerReport: process.env.npm_config_report
23 | },
24 | dev: {
25 | env: require('./dev.env'),
26 | port: 8080,
27 | // 在小程序开发者工具中不需要自动打开浏览器
28 | autoOpenBrowser: false,
29 | assetsSubDirectory: '',
30 | assetsPublicPath: '/',
31 | proxyTable: {},
32 | // CSS Sourcemaps off by default because relative paths are "buggy"
33 | // with this option, according to the CSS-Loader README
34 | // (https://github.com/webpack/css-loader#sourcemaps)
35 | // In our experience, they generally work as expected,
36 | // just be aware of this issue when enabling this option.
37 | cssSourceMap: false
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/mpvue_shop/config/prod.env.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | NODE_ENV: '"production"'
3 | }
4 |
--------------------------------------------------------------------------------
/mpvue_shop/dist/static/images/down-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/dist/static/images/down-logo.png
--------------------------------------------------------------------------------
/mpvue_shop/dist/static/images/ka.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/dist/static/images/ka.png
--------------------------------------------------------------------------------
/mpvue_shop/dist/static/images/lipin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/dist/static/images/lipin.png
--------------------------------------------------------------------------------
/mpvue_shop/dist/static/images/news.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/dist/static/images/news.png
--------------------------------------------------------------------------------
/mpvue_shop/dist/static/images/no-order.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/dist/static/images/no-order.png
--------------------------------------------------------------------------------
/mpvue_shop/dist/static/images/refresh-logo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/dist/static/images/refresh-logo.gif
--------------------------------------------------------------------------------
/mpvue_shop/dist/static/images/select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/dist/static/images/select.png
--------------------------------------------------------------------------------
/mpvue_shop/dist/static/images/tab.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/dist/static/images/tab.png
--------------------------------------------------------------------------------
/mpvue_shop/dist/static/images/tab1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/dist/static/images/tab1.png
--------------------------------------------------------------------------------
/mpvue_shop/dist/static/images/tab3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/dist/static/images/tab3.png
--------------------------------------------------------------------------------
/mpvue_shop/dist/static/images/tab3_.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/dist/static/images/tab3_.png
--------------------------------------------------------------------------------
/mpvue_shop/dist/static/images/tab4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/dist/static/images/tab4.png
--------------------------------------------------------------------------------
/mpvue_shop/dist/static/images/tab4_.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/dist/static/images/tab4_.png
--------------------------------------------------------------------------------
/mpvue_shop/dist/static/images/tab5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/dist/static/images/tab5.png
--------------------------------------------------------------------------------
/mpvue_shop/dist/static/images/tab5_.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/dist/static/images/tab5_.png
--------------------------------------------------------------------------------
/mpvue_shop/dist/static/images/tab_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/dist/static/images/tab_1.png
--------------------------------------------------------------------------------
/mpvue_shop/dist/static/images/tab_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/dist/static/images/tab_2.png
--------------------------------------------------------------------------------
/mpvue_shop/dist/static/images/xianshi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/dist/static/images/xianshi.png
--------------------------------------------------------------------------------
/mpvue_shop/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | mpvuedemo
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/mpvue_shop/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "mpvuedemo",
3 | "version": "1.0.0",
4 | "description": "A Mpvue project",
5 | "author": "",
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 | "lint": "eslint --fix --ext .js,.vue src"
12 | },
13 | "dependencies": {
14 | "axios": "^0.18.0",
15 | "babel-polyfill": "^6.26.0",
16 | "flyio": "^0.6.1",
17 | "mint-ui": "^2.2.13",
18 | "mpvue": "^1.0.11",
19 | "vuex": "^3.0.1"
20 | },
21 | "devDependencies": {
22 | "babel-core": "^6.22.1",
23 | "babel-eslint": "^8.2.3",
24 | "babel-loader": "^7.1.1",
25 | "babel-plugin-transform-runtime": "^6.22.0",
26 | "babel-preset-env": "^1.3.2",
27 | "babel-preset-stage-2": "^6.22.0",
28 | "babel-register": "^6.22.0",
29 | "chalk": "^2.4.0",
30 | "connect-history-api-fallback": "^1.3.0",
31 | "copy-webpack-plugin": "^4.5.1",
32 | "css-loader": "^0.28.11",
33 | "cssnano": "^3.10.0",
34 | "eslint": "^4.19.1",
35 | "eslint-config-standard": "^11.0.0",
36 | "eslint-friendly-formatter": "^4.0.1",
37 | "eslint-loader": "^2.0.0",
38 | "eslint-plugin-html": "^4.0.3",
39 | "eslint-plugin-import": "^2.11.0",
40 | "eslint-plugin-node": "^6.0.1",
41 | "eslint-plugin-promise": "^3.4.0",
42 | "eslint-plugin-standard": "^3.0.1",
43 | "eventsource-polyfill": "^0.9.6",
44 | "express": "^4.16.3",
45 | "extract-text-webpack-plugin": "^3.0.2",
46 | "file-loader": "^1.1.11",
47 | "friendly-errors-webpack-plugin": "^1.7.0",
48 | "glob": "^7.1.2",
49 | "html-webpack-plugin": "^3.2.0",
50 | "http-proxy-middleware": "^0.18.0",
51 | "mptoast": "^1.1.3",
52 | "mpvue-loader": "^1.1.2",
53 | "mpvue-template-compiler": "^1.0.11",
54 | "mpvue-webpack-target": "^1.0.0",
55 | "optimize-css-assets-webpack-plugin": "^3.2.0",
56 | "ora": "^2.0.0",
57 | "portfinder": "^1.0.13",
58 | "postcss-loader": "^2.1.4",
59 | "postcss-mpvue-wxss": "^1.0.0",
60 | "prettier": "~1.12.1",
61 | "px2rpx-loader": "^0.1.10",
62 | "relative": "^3.0.2",
63 | "rimraf": "^2.6.0",
64 | "semver": "^5.3.0",
65 | "shelljs": "^0.8.1",
66 | "uglifyjs-webpack-plugin": "^1.2.5",
67 | "url-loader": "^1.0.1",
68 | "vue-style-loader": "^4.1.0",
69 | "webpack": "^3.11.0",
70 | "webpack-bundle-analyzer": "^2.2.1",
71 | "webpack-dev-middleware-hard-disk": "^1.12.0",
72 | "webpack-merge": "^4.1.0",
73 | "webpack-mpvue-asset-plugin": "^0.1.1"
74 | },
75 | "engines": {
76 | "node": ">= 4.0.0",
77 | "npm": ">= 3.0.0"
78 | },
79 | "browserslist": [
80 | "> 1%",
81 | "last 2 versions",
82 | "not ie <= 8"
83 | ]
84 | }
85 |
--------------------------------------------------------------------------------
/mpvue_shop/project.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "项目配置文件",
3 | "packOptions": {
4 | "ignore": []
5 | },
6 | "setting": {
7 | "urlCheck": false,
8 | "es6": false,
9 | "postcss": true,
10 | "minified": true,
11 | "newFeature": true,
12 | "nodeModules": true
13 | },
14 | "compileType": "miniprogram",
15 | "libVersion": "2.2.5",
16 | "appid": "wx17f52e65bb225c6e",
17 | "projectname": "mpvue_shop",
18 | "svr": "",
19 | "client": "",
20 | "qcloudRoot": "",
21 | "miniprogramRoot": "./dist/",
22 | "pluginRoot": "",
23 | "debugOptions": {
24 | "hidedInDevtools": []
25 | },
26 | "scripts": {},
27 | "condition": {
28 | "search": {
29 | "current": -1,
30 | "list": []
31 | },
32 | "conversation": {
33 | "current": -1,
34 | "list": []
35 | },
36 | "plugin": {
37 | "current": -1,
38 | "list": []
39 | },
40 | "game": {
41 | "list": []
42 | },
43 | "miniprogram": {
44 | "current": -1,
45 | "list": []
46 | }
47 | }
48 | }
--------------------------------------------------------------------------------
/mpvue_shop/src/App.vue:
--------------------------------------------------------------------------------
1 |
13 |
14 |
32 |
--------------------------------------------------------------------------------
/mpvue_shop/src/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "pages": [
3 | "pages/home/main",
4 | "pages/fenlei/main",
5 | "pages/news/main",
6 | "pages/newsdetails/main",
7 | "pages/details/main",
8 | "pages/index/main",
9 | "pages/logs/main",
10 | "pages/counter/main"
11 |
12 | ],
13 | "window": {
14 | "backgroundTextStyle": "light",
15 | "navigationBarBackgroundColor": "#fff",
16 | "navigationBarTitleText": "shop",
17 | "navigationBarTextStyle": "black"
18 | },
19 | "tabBar": {
20 | "selectedColor": "#4667f6",
21 | "color": "#444",
22 | "list": [{
23 | "pagePath": "pages/home/main",
24 | "text": "首页",
25 | "iconPath": "static/images/tab1.png",
26 | "selectedIconPath": "static/images/tab_1.png"
27 | },
28 | {
29 | "pagePath": "pages/fenlei/main",
30 | "text": "分类",
31 | "iconPath": "static/images/tab.png",
32 | "selectedIconPath": "static/images/tab_2.png"
33 | },
34 | {
35 | "pagePath": "pages/news/main",
36 | "text": "新闻",
37 | "iconPath": "static/images/tab5.png",
38 | "selectedIconPath": "static/images/tab_5.png"
39 | }
40 | ]
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/mpvue_shop/src/components/card.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
14 |
15 |
20 |
--------------------------------------------------------------------------------
/mpvue_shop/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import App from './App'
3 | import Vuex from 'vuex'
4 | var Fly = require('flyio/dist/npm/wx')
5 | var fly = new Fly()
6 | Vue.prototype.$http = fly
7 |
8 | Vue.config.productionTip = false
9 | Vue.use(Vuex)
10 | App.mpType = 'app'
11 | const app = new Vue(App)
12 | app.$mount()
13 |
--------------------------------------------------------------------------------
/mpvue_shop/src/pages/counter/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
Vuex counter:{{ count }}
4 |
5 |
6 |
7 |
8 |
9 |
去往首页
10 |
11 |
12 |
13 |
33 |
34 |
47 |
--------------------------------------------------------------------------------
/mpvue_shop/src/pages/counter/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import App from './index'
3 |
4 | const app = new Vue(App)
5 | app.$mount()
6 |
--------------------------------------------------------------------------------
/mpvue_shop/src/pages/counter/store.js:
--------------------------------------------------------------------------------
1 | // https://vuex.vuejs.org/zh-cn/intro.html
2 | // make sure to call Vue.use(Vuex) if using a module system
3 | import Vue from 'vue'
4 | import Vuex from 'vuex'
5 |
6 | Vue.use(Vuex)
7 |
8 | const store = new Vuex.Store({
9 | state: {
10 | count: 0
11 | },
12 | mutations: {
13 | increment: (state) => {
14 | const obj = state
15 | obj.count += 1
16 | },
17 | decrement: (state) => {
18 | const obj = state
19 | obj.count -= 1
20 | }
21 | }
22 | })
23 |
24 | export default store
25 |
--------------------------------------------------------------------------------
/mpvue_shop/src/pages/details/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import App from './index'
3 |
4 | const app = new Vue(App)
5 | app.$mount()
6 |
--------------------------------------------------------------------------------
/mpvue_shop/src/pages/details/main.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "详情"
3 | }
--------------------------------------------------------------------------------
/mpvue_shop/src/pages/fenlei/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import App from './index'
3 |
4 | const app = new Vue(App)
5 | app.$mount()
6 |
--------------------------------------------------------------------------------
/mpvue_shop/src/pages/fenlei/main.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "分类"
3 | }
--------------------------------------------------------------------------------
/mpvue_shop/src/pages/home/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import App from './index'
3 |
4 | const app = new Vue(App)
5 | app.$mount()
6 |
--------------------------------------------------------------------------------
/mpvue_shop/src/pages/home/main.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "首页"
3 | }
4 |
--------------------------------------------------------------------------------
/mpvue_shop/src/pages/index/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
![]()
6 |
7 |
8 |
9 |
10 |
11 |
16 |
17 |
21 |
去往Vuex示例页面
22 |
23 |
24 |
25 |
68 |
69 |
106 |
--------------------------------------------------------------------------------
/mpvue_shop/src/pages/index/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import App from './index'
3 |
4 | const app = new Vue(App)
5 | app.$mount()
6 |
--------------------------------------------------------------------------------
/mpvue_shop/src/pages/logs/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
18 |
19 |
--------------------------------------------------------------------------------
/mpvue_shop/src/pages/logs/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import App from './index'
3 |
4 | const app = new Vue(App)
5 | app.$mount()
6 |
--------------------------------------------------------------------------------
/mpvue_shop/src/pages/logs/main.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "查看启动日志"
3 | }
4 |
--------------------------------------------------------------------------------
/mpvue_shop/src/pages/myself/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import App from './index'
3 |
4 | const app = new Vue(App)
5 | app.$mount()
6 |
--------------------------------------------------------------------------------
/mpvue_shop/src/pages/myself/main.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "查看启动日志"
3 | }
4 |
--------------------------------------------------------------------------------
/mpvue_shop/src/pages/news/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
21 |
22 |
23 |
59 |
126 |
--------------------------------------------------------------------------------
/mpvue_shop/src/pages/news/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import App from './index'
3 |
4 | const app = new Vue(App)
5 | app.$mount()
6 |
--------------------------------------------------------------------------------
/mpvue_shop/src/pages/news/main.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "新闻"
3 | }
--------------------------------------------------------------------------------
/mpvue_shop/src/pages/newsdetails/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | {{item.title}}
7 |
8 |
9 | {{item.time}}
10 |
11 | {{newsdetails.boxs}}
12 |
13 |
14 | {{box.p}}
15 |
16 |
17 |
![]()
18 |
19 |
20 |
21 |
22 |
23 |
61 |
96 |
--------------------------------------------------------------------------------
/mpvue_shop/src/pages/newsdetails/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import App from './index'
3 |
4 | const app = new Vue(App)
5 | app.$mount()
6 |
--------------------------------------------------------------------------------
/mpvue_shop/src/pages/newsdetails/main.json:
--------------------------------------------------------------------------------
1 | {
2 | "navigationBarTitleText": "详情"
3 | }
4 |
--------------------------------------------------------------------------------
/mpvue_shop/src/store/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import Vuex from 'vuex'
3 | import {
4 | stat
5 | } from 'fs'
6 |
7 | Vue.use(Vuex)
8 |
9 | const store = new Vuex.Store({
10 | state: {
11 | // state访问状态对象
12 | logindata: localStorage['logindata'] ? JSON.parse(localStorage['logindata']) : [],
13 | count: 1,
14 | carts: localStorage['carts'] ? JSON.parse(localStorage['carts']) : [],
15 | addorders: localStorage['addorders']
16 | ? JSON.parse(localStorage['addorders']) : []
17 | },
18 | // Mutations修改状态
19 | // 同步状态
20 | mutations: {
21 | // 加入购物车
22 | addcarts: function (state, data) {
23 | console.log(data)
24 | state.carts.push(data)
25 | console.log(state.carts)
26 | localStorage.setItem('carts', JSON.stringify(state.carts))
27 | },
28 | // 加入订单
29 | addorder: function (state, data) {
30 | console.log(data)
31 | state.addorders.push(data)
32 | console.log(state.addorders)
33 | localStorage.setItem('addorders', JSON.stringify(state.addorders))
34 | },
35 | // 计算加
36 | add (state, index) {
37 | state.carts[index].value++
38 | console.log('加')
39 | console.log(state.carts[index].value)
40 | console.log(state.carts)
41 | },
42 | // 计算减
43 | reduce (state, index) {
44 | if (state.carts[index].value == 1) {
45 | state.carts[index].value == 1
46 | console.log('减')
47 | } else {
48 | state.carts[index].value--
49 | console.log('减')
50 | console.log(state.carts[index].value)
51 | }
52 | },
53 | // 删除购物车中的某个数据
54 | shanchu (state, index) {
55 | state.carts.splice(index, 1)
56 | console.log(state.carts)
57 | localStorage.setItem('carts', JSON.stringify(state.carts))
58 | },
59 | // 清除购物车
60 | settlement (state, index) {
61 | // 第一种使用这种清除 localStorage.clear();
62 | // 另一种给空覆盖
63 | state.carts = []
64 | localStorage.setItem('carts', JSON.stringify(state.carts))
65 | // localStorage注意是json对象转字符串,getitem时要字符串转对象
66 | // 清除localstorage
67 | },
68 | // 设置登录的数据
69 | setData: function (state) {
70 | this.state.logindata.push('111')
71 | localStorage.setItem('logindata', JSON.stringify(state.logindata))
72 | console.log(this.state.logindata, 'state33333')
73 | }
74 | // 设置退出的数据
75 | // checkoutData: function(state) {
76 | // state.logindata = [];
77 | // localStorage.setItem("logindata", JSON.stringify(state.logindata));
78 | // console.log(state, 'state2222')
79 | // }
80 |
81 | },
82 | // getters计算过滤操作
83 |
84 | // 购物车中常见的合计?数量改变时的合计
85 | getters: {
86 |
87 | // heji:state=>{
88 | // var sum=0;
89 | // state.carts.forEach((cart)=>{
90 | // sum+=cart.price*cart.value
91 | // })
92 | // return sum
93 | // },
94 | },
95 |
96 | // actions异步修改状态
97 | actions: {
98 |
99 | }
100 | })
101 | export default store
102 |
--------------------------------------------------------------------------------
/mpvue_shop/src/utils/index.js:
--------------------------------------------------------------------------------
1 | function formatNumber (n) {
2 | const str = n.toString()
3 | return str[1] ? str : `0${str}`
4 | }
5 |
6 | export function formatTime (date) {
7 | const year = date.getFullYear()
8 | const month = date.getMonth() + 1
9 | const day = date.getDate()
10 |
11 | const hour = date.getHours()
12 | const minute = date.getMinutes()
13 | const second = date.getSeconds()
14 |
15 | const t1 = [year, month, day].map(formatNumber).join('/')
16 | const t2 = [hour, minute, second].map(formatNumber).join(':')
17 |
18 | return `${t1} ${t2}`
19 | }
20 |
21 | const ERR_OK = 200
22 | const request = (url, data = {}, method) => new Promise((resolve, reject) => {
23 | wx.request({
24 | url,
25 | data,
26 | method,
27 | success: res => resolve(res.data),
28 | fail: res => reject(res)
29 | })
30 | })
31 |
32 | export default {
33 | formatNumber,
34 | formatTime,
35 | request,
36 | ERR_OK
37 | }
38 |
--------------------------------------------------------------------------------
/mpvue_shop/src/utils/wx.js:
--------------------------------------------------------------------------------
1 | export const getStorage = theKey => new Promise((resolve, reject) => {
2 | wx.getStorage({
3 | key: theKey,
4 | success (res) {
5 | resolve(res.data)
6 | },
7 | fail (e) {
8 | reject(e)
9 | }
10 | })
11 | })
12 |
13 | export const setStorage = (theKey, theValue) => new Promise((resolve, reject) => {
14 | wx.setStorage({
15 | key: theKey,
16 | data: theValue,
17 | success () {
18 | resolve()
19 | },
20 | fail (e) {
21 | reject(e)
22 | }
23 | })
24 | })
25 |
26 | export const getLocation = () => new Promise((resolve) => {
27 | wx.getLocation({
28 | success ({ latitude, longitude, speed, accuracy }) {
29 | resolve({ latitude, longitude, speed, accuracy })
30 | },
31 | fail () {
32 | resolve({
33 | latitude: -999,
34 | longitude: -999
35 | })
36 | }
37 | })
38 | })
39 |
40 | export const chooseLocation = () => new Promise((resolve, reject) => {
41 | wx.chooseLocation({
42 | success (res) {
43 | resolve(res)
44 | },
45 | fail (e) {
46 | reject(e)
47 | }
48 | })
49 | })
50 |
51 | export const removeStorage = theKey => new Promise((resolve, reject) => {
52 | wx.removeStorage({
53 | key: theKey,
54 | success (res) {
55 | resolve(res.data)
56 | },
57 | fail (e) {
58 | reject(e)
59 | }
60 | })
61 | })
62 |
63 | export const clearStorage = () => new Promise((resolve, reject) => {
64 | try {
65 | wx.clearStorageSync()
66 | resolve()
67 | } catch (e) {
68 | reject(e)
69 | }
70 | })
71 |
72 | export const login = () => new Promise((resolve, reject) => {
73 | wx.login({
74 | success (res) {
75 | resolve(res)
76 | },
77 | fail (e) {
78 | reject(e)
79 | }
80 | })
81 | })
82 |
83 | export const request = obj => new Promise((resolve, reject) => {
84 | wx.request({
85 | url: obj.url,
86 | data: obj.data,
87 | header: { 'content-type': 'application/x-www-form-urlencoded', ...obj.header },
88 | method: obj.method,
89 | success (res) {
90 | resolve(res.data.data)
91 | },
92 | fail (e) {
93 | console.log(e)
94 | reject(e)
95 | }
96 | })
97 | })
98 |
99 | export const chooseImage = (count = 1, sourceType = ['album']) => new Promise((resolve, reject) => {
100 | wx.chooseImage({
101 | count,
102 | sourceType,
103 | success (res) {
104 | resolve(res)
105 | },
106 | fail (e) {
107 | reject(e)
108 | }
109 | })
110 | })
111 |
112 | export const showShareMenu = () => {
113 | return wx.showShareMenu
114 | }
115 |
116 | export const pageScrollTo = () => {
117 | return wx.pageScrollTo
118 | }
119 |
120 | export const getUserInfo = (obj) => new Promise((resolve, reject) => {
121 | wx.getUserInfo({
122 | ...obj,
123 | success (res) {
124 | resolve(res)
125 | },
126 | fail (e) {
127 | reject(e)
128 | }
129 | })
130 | })
131 |
132 | export const alert = (content) => {
133 | wx.showModal({
134 | title: '',
135 | content,
136 | showCancel: false
137 | })
138 | }
139 |
140 | export const navigateTo = (url) => {
141 | wx.navigateTo({
142 | url
143 | })
144 | }
145 |
146 | export const redirectTo = (redirectUrl) => {
147 | wx.redirectTo({
148 | url: redirectUrl
149 | })
150 | }
151 |
152 | export const startPullDownRefresh = () => new Promise((resolve, reject) => {
153 | wx.startPullDownRefresh({
154 | success (res) {
155 | resolve(res)
156 | },
157 | fail (e) {
158 | reject(e)
159 | }
160 | })
161 | })
162 |
163 | export const stopPullDownRefresh = () => new Promise((resolve, reject) => {
164 | wx.stopPullDownRefresh({
165 | success (res) {
166 | resolve(res)
167 | },
168 | fail (e) {
169 | reject(e)
170 | }
171 | })
172 | })
173 |
174 | export const uploadFile = (obj) => new Promise((resolve, reject) => {
175 | wx.uploadFile({
176 | ...obj,
177 | success (res) {
178 | resolve(res)
179 | },
180 | fail (e) {
181 | reject(e)
182 | }
183 | })
184 | })
185 |
186 | export default {
187 | getStorage,
188 | setStorage,
189 | getLocation,
190 | chooseLocation,
191 | removeStorage,
192 | clearStorage,
193 | login,
194 | request,
195 | chooseImage,
196 | showShareMenu,
197 | pageScrollTo,
198 | getUserInfo,
199 | alert,
200 | navigateTo,
201 | redirectTo,
202 | startPullDownRefresh,
203 | stopPullDownRefresh,
204 | uploadFile
205 | }
206 |
--------------------------------------------------------------------------------
/mpvue_shop/static/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/.gitkeep
--------------------------------------------------------------------------------
/mpvue_shop/static/images/album-ajtd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/album-ajtd.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/album-emoji.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/album-emoji.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/album-lt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/album-lt.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/album-xxy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/album-xxy.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/all_chat@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/all_chat@3x.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/bainji_pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/bainji_pressed.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/bianji_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/bianji_normal.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/browse.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/browse.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/center_jiahao.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/center_jiahao.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/center_jiahao@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/center_jiahao@3x.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/chat-face@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/chat-face@3x.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/code.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/code.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/daka_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/daka_normal.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/daka_pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/daka_pressed.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/daka_search@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/daka_search@3x.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/daka_xiaosanjiao@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/daka_xiaosanjiao@3x.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/default-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/default-icon.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/delete.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/dingwei.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/dingwei.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/dingwei@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/dingwei@3x.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/down-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/down-logo.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/edit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/edit.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/emoji.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/emoji.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/erweima.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/erweima.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/erweima@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/erweima@3x.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/eye_c@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/eye_c@3x.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/eye_o.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/eye_o.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/eye_o@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/eye_o@3x.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/fangkeyuebao_bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/fangkeyuebao_bg.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/forwarding.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/forwarding.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/getVip.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/getVip.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/gou_b@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/gou_b@3x.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/gou_h@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/gou_h@3x.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/hangye.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/hangye.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/hangye@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/hangye@3x.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/headportrait_blue@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/headportrait_blue@2x.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/headportrait_blue@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/headportrait_blue@3x.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/henader.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/henader.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/icon_add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/icon_add.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/integral.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/integral.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/intro.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/intro.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/ka.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/ka.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/keyboard.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/keyboard.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/label.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/label.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/lipin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/lipin.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/liulanliang@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/liulanliang@3x.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/love.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/love.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/love_g@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/love_g@3x.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/love_o@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/love_o@3x.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/message.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/message.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/mingpian_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/mingpian_normal.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/mingpian_pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/mingpian_pressed.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/month.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/month.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/more.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/more.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/namebox_camera.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/namebox_camera.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/namebox_me@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/namebox_me@3x.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/namebox_search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/namebox_search.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/namebox_shape_blue_right@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/namebox_shape_blue_right@3x.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/news.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/news.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/news_icon_love_empty_blue@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/news_icon_love_empty_blue@3x.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/news_icon_love_gray@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/news_icon_love_gray@3x.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/news_icon_love_orange@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/news_icon_love_orange@3x.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/news_icon_search@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/news_icon_search@3x.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/news_icon_share@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/news_icon_share@3x.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/no-order.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/no-order.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/noMessage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/noMessage.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/no_one.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/no_one.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/no_three.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/no_three.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/no_two.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/no_two.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/phone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/phone.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/phone@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/phone@3x.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/photo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/photo.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/picture@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/picture@3x.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/refresh-logo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/refresh-logo.gif
--------------------------------------------------------------------------------
/mpvue_shop/static/images/right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/right.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/search.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/select.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/setting_icon_close@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/setting_icon_close@3x.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/setting_icon_open@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/setting_icon_open@3x.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/tab.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/tab.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/tab1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/tab1.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/tab3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/tab3.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/tab3_.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/tab3_.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/tab4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/tab4.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/tab4_.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/tab4_.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/tab5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/tab5.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/tab_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/tab_1.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/tab_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/tab_2.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/takingpicture_circle_bg@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/takingpicture_circle_bg@3x.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/takingpictures_camera@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/takingpictures_camera@3x.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/takingpictures_pencil@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/takingpictures_pencil@3x.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/tianjia@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/tianjia@3x.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/tiejia_0@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/tiejia_0@3x.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/tiejia_g@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/tiejia_g@3x.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/v_normal@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/v_normal@3x.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/v_pressed@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/v_pressed@3x.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/vedio@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/vedio@3x.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/video.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/video.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/vip.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/vip.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/vip1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/vip1.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/vipone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/vipone.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/vipone1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/vipone1.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/voice.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/voice.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/weixin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/weixin.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/weixin@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/weixin@3x.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/wode_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/wode_normal.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/wode_pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/wode_pressed.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/xianshi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/xianshi.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/xiaosanjiao.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/xiaosanjiao.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/year.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/year.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/youxiang.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/youxiang.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/youxiang@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/youxiang@3x.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/zixun_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/zixun_normal.png
--------------------------------------------------------------------------------
/mpvue_shop/static/images/zixun_pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/mpvue_shop/static/images/zixun_pressed.png
--------------------------------------------------------------------------------
/react/react_shop/README.md:
--------------------------------------------------------------------------------
1 | This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
2 |
3 | ## Available Scripts
4 |
5 | In the project directory, you can run:
6 |
7 | ### `npm start`
8 |
9 | Runs the app in the development mode.
10 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser.
11 |
12 | The page will reload if you make edits.
13 | You will also see any lint errors in the console.
14 |
15 | ### `npm test`
16 |
17 | Launches the test runner in the interactive watch mode.
18 | See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
19 |
20 | ### `npm run build`
21 |
22 | Builds the app for production to the `build` folder.
23 | It correctly bundles React in production mode and optimizes the build for the best performance.
24 |
25 | The build is minified and the filenames include the hashes.
26 | Your app is ready to be deployed!
27 |
28 | See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
29 |
30 | ### `npm run eject`
31 |
32 | **Note: this is a one-way operation. Once you `eject`, you can’t go back!**
33 |
34 | If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
35 |
36 | Instead, it will copy all the configuration files and the transitive dependencies (Webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.
37 |
38 | You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.
39 |
40 | ## Learn More
41 |
42 | You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
43 |
44 | To learn React, check out the [React documentation](https://reactjs.org/).
45 |
46 | ### Code Splitting
47 |
48 | This section has moved here: https://facebook.github.io/create-react-app/docs/code-splitting
49 |
50 | ### Analyzing the Bundle Size
51 |
52 | This section has moved here: https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size
53 |
54 | ### Making a Progressive Web App
55 |
56 | This section has moved here: https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app
57 |
58 | ### Advanced Configuration
59 |
60 | This section has moved here: https://facebook.github.io/create-react-app/docs/advanced-configuration
61 |
62 | ### Deployment
63 |
64 | This section has moved here: https://facebook.github.io/create-react-app/docs/deployment
65 |
66 | ### `npm run build` fails to minify
67 |
68 | This section has moved here: https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify
69 |
--------------------------------------------------------------------------------
/react/react_shop/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "react_shop",
3 | "version": "0.1.0",
4 | "private": true,
5 | "dependencies": {
6 | "react": "^16.8.6",
7 | "react-dom": "^16.8.6",
8 | "react-scripts": "2.1.8"
9 | },
10 | "scripts": {
11 | "start": "react-scripts start",
12 | "build": "react-scripts build",
13 | "test": "react-scripts test",
14 | "eject": "react-scripts eject"
15 | },
16 | "eslintConfig": {
17 | "extends": "react-app"
18 | },
19 | "browserslist": [
20 | ">0.2%",
21 | "not dead",
22 | "not ie <= 11",
23 | "not op_mini all"
24 | ]
25 | }
26 |
--------------------------------------------------------------------------------
/react/react_shop/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/react/react_shop/public/favicon.ico
--------------------------------------------------------------------------------
/react/react_shop/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
10 |
11 |
15 |
16 |
25 | React App
26 |
27 |
28 |
29 |
30 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/react/react_shop/public/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "short_name": "React App",
3 | "name": "Create React App Sample",
4 | "icons": [
5 | {
6 | "src": "favicon.ico",
7 | "sizes": "64x64 32x32 24x24 16x16",
8 | "type": "image/x-icon"
9 | }
10 | ],
11 | "start_url": ".",
12 | "display": "standalone",
13 | "theme_color": "#000000",
14 | "background_color": "#ffffff"
15 | }
16 |
--------------------------------------------------------------------------------
/react/react_shop/src/App.css:
--------------------------------------------------------------------------------
1 | .App {
2 | text-align: center;
3 | }
4 |
5 | .App-logo {
6 | animation: App-logo-spin infinite 20s linear;
7 | height: 40vmin;
8 | pointer-events: none;
9 | }
10 |
11 | .App-header {
12 | background-color: #282c34;
13 | min-height: 100vh;
14 | display: flex;
15 | flex-direction: column;
16 | align-items: center;
17 | justify-content: center;
18 | font-size: calc(10px + 2vmin);
19 | color: white;
20 | }
21 |
22 | .App-link {
23 | color: #61dafb;
24 | }
25 |
26 | @keyframes App-logo-spin {
27 | from {
28 | transform: rotate(0deg);
29 | }
30 | to {
31 | transform: rotate(360deg);
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/react/react_shop/src/App.js:
--------------------------------------------------------------------------------
1 | import React, { Component } from 'react';
2 | import logo from './logo.svg';
3 | import './App.css';
4 |
5 | class App extends Component {
6 | render() {
7 | return (
8 |
24 | );
25 | }
26 | }
27 |
28 | export default App;
29 |
--------------------------------------------------------------------------------
/react/react_shop/src/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ReactDOM from 'react-dom';
3 | import App from './App';
4 |
5 | it('renders without crashing', () => {
6 | const div = document.createElement('div');
7 | ReactDOM.render(, div);
8 | ReactDOM.unmountComponentAtNode(div);
9 | });
10 |
--------------------------------------------------------------------------------
/react/react_shop/src/index.css:
--------------------------------------------------------------------------------
1 | body {
2 | margin: 0;
3 | padding: 0;
4 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen",
5 | "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue",
6 | sans-serif;
7 | -webkit-font-smoothing: antialiased;
8 | -moz-osx-font-smoothing: grayscale;
9 | }
10 |
11 | code {
12 | font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New",
13 | monospace;
14 | }
15 |
--------------------------------------------------------------------------------
/react/react_shop/src/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ReactDOM from 'react-dom';
3 | import './index.css';
4 | import App from './App';
5 | import * as serviceWorker from './serviceWorker';
6 |
7 | ReactDOM.render(, document.getElementById('root'));
8 |
9 | // If you want your app to work offline and load faster, you can change
10 | // unregister() to register() below. Note this comes with some pitfalls.
11 | // Learn more about service workers: https://bit.ly/CRA-PWA
12 | serviceWorker.unregister();
13 |
--------------------------------------------------------------------------------
/react/react_shop/src/logo.svg:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/vue_mint_app/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | ["env", {
4 | "modules": false
5 | }],
6 | "stage-2"
7 | ],
8 | "plugins": ["transform-runtime"],
9 | "env": {
10 | "test": {
11 | "presets": ["env", "stage-2"],
12 | "plugins": ["transform-es2015-modules-commonjs", "dynamic-import-node"]
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/vue_mint_app/.cache/0044526e50b5d8d725efa9f3f6e95ff790724b7305c7d267ae15818cb65b4e64.js:
--------------------------------------------------------------------------------
1 | {"source":"webpackJsonp([12],{\"5CHw\":function(t,e,n){var a=n(\"SXBS\");\"string\"==typeof a&&(a=[[t.i,a,\"\"]]),a.locals&&(t.exports=a.locals);n(\"FIqI\")(\"6321da53\",a,!0,{})},SXBS:function(t,e,n){(t.exports=n(\"UTlt\")(!1)).push([t.i,\"\",\"\"])},c5Mg:function(t,e,n){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var a={components:{\"v-header\":n(\"uv94\").a},data:function(){return{newTitle:\"404\"}}},s={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n(\"div\",{staticClass:\"fabu\"},[n(\"v-header\",{attrs:{title:t.newTitle}}),t._v(\" \"),n(\"div\",{staticClass:\"cons\"},[t._v(\"\\n 页面找不到\\n \")])],1)},staticRenderFns:[]};var r=n(\"C7Lr\")(a,s,!1,function(t){n(\"5CHw\")},\"data-v-4dc7ae07\",null);e.default=r.exports}});"}
--------------------------------------------------------------------------------
/vue_mint_app/.cache/10ba3ef31c22612fdf4bd8c4355cf3fea8fa8bbc273268ec2f06d514f7ab9474.js:
--------------------------------------------------------------------------------
1 | {"source":"webpackJsonp([0],{\"12X8\":function(t,e,a){(t.exports=a(\"UTlt\")(!1)).push([t.i,\".tool_header[data-v-6723c58a]{height:.88rem;background:#fff;font-size:.32rem;display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;padding-left:.2rem;position:fixed;top:0;left:0;width:98%;z-index:998}.spas[data-v-6723c58a]{display:inline-block;padding-left:.2rem}.zanweifu[data-v-6723c58a]{margin-top:.88rem}\",\"\"])},\"31Jl\":function(t,e,a){(t.exports=a(\"UTlt\")(!1)).push([t.i,\"header[data-v-6e5bdc82]{height:.88rem;background:#fff;font-size:.32rem;color:#353535;display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;position:fixed;top:0;left:0;width:100vw;z-index:99}.fz[data-v-6e5bdc82]{font-size:.48rem;color:#353535;padding-left:.2rem}.title[data-v-6e5bdc82]{display:inline-block;padding-left:.2rem}.zanweifu[data-v-6e5bdc82]{margin-top:.88rem}\",\"\"])},\"45hz\":function(t,e,a){var i=a(\"12X8\");\"string\"==typeof i&&(i=[[t.i,i,\"\"]]),i.locals&&(t.exports=i.locals);a(\"FIqI\")(\"1a43ebfd\",i,!0,{})},EqU6:function(t,e,a){\"use strict\";var i={name:\"headerTwo\",data:function(){return{name:\"\"}},props:{title:String},computed:{newTitle:function(){return this.title}}},n={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a(\"div\",[a(\"header\",[a(\"div\",{staticClass:\"tool_header\"},[a(\"span\",{staticClass:\"spas\"},[t._v(t._s(t.newTitle))])])]),t._v(\" \"),a(\"div\",{staticClass:\"zanweifu\"})])},staticRenderFns:[]};var s=a(\"C7Lr\")(i,n,!1,function(t){a(\"45hz\")},\"data-v-6723c58a\",null);e.a=s.exports},L5lh:function(t,e,a){var i=a(\"31Jl\");\"string\"==typeof i&&(i=[[t.i,i,\"\"]]),i.locals&&(t.exports=i.locals);a(\"FIqI\")(\"7ae28ad5\",i,!0,{})},uv94:function(t,e,a){\"use strict\";var i={name:\"header\",data:function(){return{name:\"\"}},props:{title:String},computed:{newTitle:function(){return this.title}}},n={render:function(){var e=this,t=e.$createElement,a=e._self._c||t;return a(\"div\",[a(\"header\",[a(\"i\",{staticClass:\"iconfont icon-fanhui fz\",on:{click:function(t){return e.$router.go(-1)}}}),e._v(\" \"),a(\"span\",{staticClass:\"title\"},[e._v(\"\\n \"+e._s(e.newTitle)+\"\\n \")])]),e._v(\" \"),a(\"div\",{staticClass:\"zanweifu\"})])},staticRenderFns:[]};var s=a(\"C7Lr\")(i,n,!1,function(t){a(\"L5lh\")},\"data-v-6e5bdc82\",null);e.a=s.exports}});"}
--------------------------------------------------------------------------------
/vue_mint_app/.cache/2559636b52baae701917f188e04d1b325c8f62dfda1faf4cc84de9ead5e17609.js:
--------------------------------------------------------------------------------
1 | {"source":"!function(d){var i=window.webpackJsonp;window.webpackJsonp=function(e,n,t){for(var r,a,c,o=0,f=[];o
2 |
3 | vue_mint_app
4 |
5 |
6 |
7 |
8 |
9 | com.aptana.ide.core.unifiedBuilder
10 |
11 |
12 |
13 |
14 | com.pandora.projects.ui.MKeyBuilder
15 |
16 |
17 |
18 |
19 |
20 | com.pandora.projects.ui.MKeyNature
21 | com.aptana.projects.webnature
22 |
23 |
24 |
25 | 1516173187836
26 |
27 | 26
28 |
29 | org.eclipse.ui.ide.multiFilter
30 | 1.0-name-matches-false-false-node_modules
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/vue_mint_app/build/build.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | require('./check-versions')()
3 |
4 | process.env.NODE_ENV = 'production'
5 |
6 | const ora = require('ora')
7 | const rm = require('rimraf')
8 | const path = require('path')
9 | const chalk = require('chalk')
10 | const webpack = require('webpack')
11 | const config = require('../config')
12 | const webpackConfig = require('./webpack.prod.conf')
13 |
14 | const spinner = ora('building for production...')
15 | spinner.start()
16 |
17 | rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {
18 | if (err) throw err
19 | webpack(webpackConfig, (err, stats) => {
20 | spinner.stop()
21 | if (err) throw err
22 | process.stdout.write(stats.toString({
23 | colors: true,
24 | modules: false,
25 | children: false,
26 | chunks: false,
27 | chunkModules: false
28 | }) + '\n\n')
29 |
30 | if (stats.hasErrors()) {
31 | console.log(chalk.red(' Build failed with errors.\n'))
32 | process.exit(1)
33 | }
34 |
35 | console.log(chalk.cyan(' Build complete.\n'))
36 | console.log(chalk.yellow(
37 | ' Tip: built files are meant to be served over an HTTP server.\n' +
38 | ' Opening index.html over file:// won\'t work.\n'
39 | ))
40 | })
41 | })
42 |
--------------------------------------------------------------------------------
/vue_mint_app/build/check-versions.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | const chalk = require('chalk')
3 | const semver = require('semver')
4 | const packageConfig = require('../package.json')
5 | const shell = require('shelljs')
6 |
7 | function exec (cmd) {
8 | return require('child_process').execSync(cmd).toString().trim()
9 | }
10 |
11 | const versionRequirements = [
12 | {
13 | name: 'node',
14 | currentVersion: semver.clean(process.version),
15 | versionRequirement: packageConfig.engines.node
16 | }
17 | ]
18 |
19 | if (shell.which('npm')) {
20 | versionRequirements.push({
21 | name: 'npm',
22 | currentVersion: exec('npm --version'),
23 | versionRequirement: packageConfig.engines.npm
24 | })
25 | }
26 |
27 | module.exports = function () {
28 | const warnings = []
29 |
30 | for (let i = 0; i < versionRequirements.length; i++) {
31 | const mod = versionRequirements[i]
32 |
33 | if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) {
34 | warnings.push(mod.name + ': ' +
35 | chalk.red(mod.currentVersion) + ' should be ' +
36 | chalk.green(mod.versionRequirement)
37 | )
38 | }
39 | }
40 |
41 | if (warnings.length) {
42 | console.log('')
43 | console.log(chalk.yellow('To use this template, you must update following to modules:'))
44 | console.log()
45 |
46 | for (let i = 0; i < warnings.length; i++) {
47 | const warning = warnings[i]
48 | console.log(' ' + warning)
49 | }
50 |
51 | console.log()
52 | process.exit(1)
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/vue_mint_app/build/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/vue_mint_app/build/logo.png
--------------------------------------------------------------------------------
/vue_mint_app/build/utils.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | const path = require('path')
3 | const config = require('../config')
4 | const ExtractTextPlugin = require('extract-text-webpack-plugin')
5 | const packageConfig = require('../package.json')
6 |
7 | exports.assetsPath = function (_path) {
8 | const assetsSubDirectory = process.env.NODE_ENV === 'production'
9 | ? config.build.assetsSubDirectory
10 | : config.dev.assetsSubDirectory
11 |
12 | return path.posix.join(assetsSubDirectory, _path)
13 | }
14 |
15 | exports.cssLoaders = function (options) {
16 | options = options || {}
17 |
18 | const cssLoader = {
19 | loader: 'css-loader',
20 | options: {
21 | sourceMap: options.sourceMap
22 | }
23 | }
24 |
25 | const postcssLoader = {
26 | loader: 'postcss-loader',
27 | options: {
28 | sourceMap: options.sourceMap
29 | }
30 | }
31 |
32 | // generate loader string to be used with extract text plugin
33 | function generateLoaders (loader, loaderOptions) {
34 | const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader]
35 |
36 | if (loader) {
37 | loaders.push({
38 | loader: loader + '-loader',
39 | options: Object.assign({}, loaderOptions, {
40 | sourceMap: options.sourceMap
41 | })
42 | })
43 | }
44 |
45 | // Extract CSS when that option is specified
46 | // (which is the case during production build)
47 | if (options.extract) {
48 | return ExtractTextPlugin.extract({
49 | use: loaders,
50 | fallback: 'vue-style-loader'
51 | })
52 | } else {
53 | return ['vue-style-loader'].concat(loaders)
54 | }
55 | }
56 |
57 | // https://vue-loader.vuejs.org/en/configurations/extract-css.html
58 | return {
59 | css: generateLoaders(),
60 | postcss: generateLoaders(),
61 | less: generateLoaders('less'),
62 | sass: generateLoaders('sass', { indentedSyntax: true }),
63 | scss: generateLoaders('sass'),
64 | stylus: generateLoaders('stylus'),
65 | styl: generateLoaders('stylus')
66 | }
67 | }
68 |
69 | // Generate loaders for standalone style files (outside of .vue)
70 | exports.styleLoaders = function (options) {
71 | const output = []
72 | const loaders = exports.cssLoaders(options)
73 |
74 | for (const extension in loaders) {
75 | const loader = loaders[extension]
76 | output.push({
77 | test: new RegExp('\\.' + extension + '$'),
78 | use: loader
79 | })
80 | }
81 |
82 | return output
83 | }
84 |
85 | exports.createNotifierCallback = () => {
86 | const notifier = require('node-notifier')
87 |
88 | return (severity, errors) => {
89 | if (severity !== 'error') return
90 |
91 | const error = errors[0]
92 | const filename = error.file && error.file.split('!').pop()
93 |
94 | notifier.notify({
95 | title: packageConfig.name,
96 | message: severity + ': ' + error.name,
97 | subtitle: filename || '',
98 | icon: path.join(__dirname, 'logo.png')
99 | })
100 | }
101 | }
102 |
--------------------------------------------------------------------------------
/vue_mint_app/build/vue-loader.conf.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | const utils = require('./utils')
3 | const config = require('../config')
4 | const isProduction = process.env.NODE_ENV === 'production'
5 | const sourceMapEnabled = isProduction
6 | ? config.build.productionSourceMap
7 | : config.dev.cssSourceMap
8 |
9 | module.exports = {
10 | loaders: utils.cssLoaders({
11 | sourceMap: sourceMapEnabled,
12 | extract: isProduction
13 | }),
14 | cssSourceMap: sourceMapEnabled,
15 | cacheBusting: config.dev.cacheBusting,
16 | transformToRequire: {
17 | video: ['src', 'poster'],
18 | source: 'src',
19 | img: 'src',
20 | image: 'xlink:href'
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/vue_mint_app/build/webpack.base.conf.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | const path = require('path')
3 | const utils = require('./utils')
4 | const config = require('../config')
5 | const vueLoaderConfig = require('./vue-loader.conf')
6 |
7 |
8 |
9 | function resolve(dir) {
10 | return path.join(__dirname, '..', dir)
11 | }
12 |
13 | const createLintingRule = () => ({
14 | test: /\.(js|vue)$/,
15 | loader: 'eslint-loader',
16 | enforce: 'pre',
17 | include: [resolve('src'), resolve('test')],
18 | options: {
19 | formatter: require('eslint-friendly-formatter'),
20 | emitWarning: !config.dev.showEslintErrorsInOverlay
21 | }
22 | })
23 |
24 | module.exports = {
25 | context: path.resolve(__dirname, '../'),
26 | entry: {
27 | app: './src/main.js'
28 | },
29 | output: {
30 | path: config.build.assetsRoot,
31 | filename: '[name].js',
32 | publicPath: process.env.NODE_ENV === 'production' ?
33 | config.build.assetsPublicPath : config.dev.assetsPublicPath
34 | },
35 | resolve: {
36 | extensions: ['.js', '.vue', '.json'],
37 | alias: {
38 | 'vue$': 'vue/dist/vue.esm.js',
39 | '@': resolve('src'),
40 | },
41 | modules: [
42 | resolve('src'),
43 | resolve('node_modules')
44 | ], //配置路径
45 |
46 | },
47 | module: {
48 | rules: [{
49 | test: /\.vue$/,
50 | loader: 'vue-loader',
51 | options: {
52 | vueLoaderConfig,
53 | postcss: [require('autoprefixer')({ browsers: ['last 10 Chrome versions', 'last 5 Firefox versions', 'Safari >= 6', 'ie> 9'] })]
54 | }
55 | },
56 | {
57 | test: /\.js$/,
58 | loader: 'babel-loader',
59 | include: [resolve('src'), resolve('test')]
60 | },
61 | {
62 | test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
63 | loader: 'url-loader',
64 | options: {
65 | limit: 10000,
66 | name: utils.assetsPath('img/[name].[hash:7].[ext]')
67 | }
68 | },
69 | {
70 | test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,
71 | loader: 'url-loader',
72 | options: {
73 | limit: 10000,
74 | name: utils.assetsPath('media/[name].[hash:7].[ext]')
75 | }
76 | },
77 | {
78 | test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
79 | loader: 'url-loader',
80 | options: {
81 | limit: 10000,
82 | name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
83 | }
84 | }
85 | ]
86 | },
87 | node: {
88 | // prevent webpack from injecting useless setImmediate polyfill because Vue
89 | // source contains it (although only uses it if it's native).
90 | setImmediate: false,
91 | // prevent webpack from injecting mocks to Node native modules
92 | // that does not make sense for the client
93 | dgram: 'empty',
94 | fs: 'empty',
95 | net: 'empty',
96 | tls: 'empty',
97 | child_process: 'empty'
98 | }
99 | }
--------------------------------------------------------------------------------
/vue_mint_app/build/webpack.dev.conf.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | const utils = require('./utils')
3 | const webpack = require('webpack')
4 | const config = require('../config')
5 | const merge = require('webpack-merge')
6 | const baseWebpackConfig = require('./webpack.base.conf')
7 | const HtmlWebpackPlugin = require('html-webpack-plugin')
8 | const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')
9 | const portfinder = require('portfinder')
10 | const HOST = process.env.HOST
11 | const PORT = process.env.PORT && Number(process.env.PORT)
12 |
13 | const devWebpackConfig = merge(baseWebpackConfig, {
14 | module: {
15 | rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap, usePostCSS: true })
16 | },
17 | // cheap-module-eval-source-map is faster for development
18 | devtool: config.dev.devtool,
19 |
20 | // these devServer options should be customized in /config/index.js
21 | devServer: {
22 | clientLogLevel: 'warning',
23 | historyApiFallback: true,
24 | hot: true,
25 | compress: true,
26 | host: HOST || config.dev.host,
27 | port: PORT || config.dev.port,
28 | open: config.dev.autoOpenBrowser,
29 | overlay: config.dev.errorOverlay
30 | ? { warnings: false, errors: true }
31 | : false,
32 | publicPath: config.dev.assetsPublicPath,
33 | proxy: config.dev.proxyTable,
34 | quiet: true, // necessary for FriendlyErrorsPlugin
35 | watchOptions: {
36 | poll: config.dev.poll,
37 | }
38 | },
39 | plugins: [
40 | new webpack.DefinePlugin({
41 | 'process.env': require('../config/dev.env')
42 | }),
43 | new webpack.HotModuleReplacementPlugin(),
44 | new webpack.NamedModulesPlugin(), // HMR shows correct file names in console on update.
45 | new webpack.NoEmitOnErrorsPlugin(),
46 | // https://github.com/ampedandwired/html-webpack-plugin
47 | new HtmlWebpackPlugin({
48 | filename: 'index.html',
49 | template: 'index.html',
50 | inject: true
51 | }),
52 | ]
53 | })
54 |
55 | module.exports = new Promise((resolve, reject) => {
56 | portfinder.basePort = process.env.PORT || config.dev.port
57 | portfinder.getPort((err, port) => {
58 | if (err) {
59 | reject(err)
60 | } else {
61 | // publish the new Port, necessary for e2e tests
62 | process.env.PORT = port
63 | // add port to devServer config
64 | devWebpackConfig.devServer.port = port
65 |
66 | // Add FriendlyErrorsPlugin
67 | devWebpackConfig.plugins.push(new FriendlyErrorsPlugin({
68 | compilationSuccessInfo: {
69 | messages: [`Your application is running here: http://${devWebpackConfig.devServer.host}:${port}`],
70 | },
71 | onErrors: config.dev.notifyOnErrors
72 | ? utils.createNotifierCallback()
73 | : undefined
74 | }))
75 |
76 | resolve(devWebpackConfig)
77 | }
78 | })
79 | })
80 |
--------------------------------------------------------------------------------
/vue_mint_app/build/webpack.test.conf.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | // This is the webpack config used for unit tests.
3 |
4 | const utils = require('./utils')
5 | const webpack = require('webpack')
6 | const merge = require('webpack-merge')
7 | const baseWebpackConfig = require('./webpack.base.conf')
8 |
9 | const webpackConfig = merge(baseWebpackConfig, {
10 | // use inline sourcemap for karma-sourcemap-loader
11 | module: {
12 | rules: utils.styleLoaders()
13 | },
14 | devtool: '#inline-source-map',
15 | resolveLoader: {
16 | alias: {
17 | // necessary to to make lang="scss" work in test when using vue-loader's ?inject option
18 | // see discussion at https://github.com/vuejs/vue-loader/issues/724
19 | 'scss-loader': 'sass-loader'
20 | }
21 | },
22 | plugins: [
23 | new webpack.DefinePlugin({
24 | 'process.env': require('../config/test.env')
25 | })
26 | ]
27 | })
28 |
29 | // no need for app entry during tests
30 | delete webpackConfig.entry
31 |
32 | module.exports = webpackConfig
33 |
--------------------------------------------------------------------------------
/vue_mint_app/config/dev.env.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | const merge = require('webpack-merge')
3 | const prodEnv = require('./prod.env')
4 |
5 | module.exports = merge(prodEnv, {
6 | NODE_ENV: '"development"'
7 | })
8 |
--------------------------------------------------------------------------------
/vue_mint_app/config/index.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | // Template version: 1.2.5
3 | // see http://vuejs-templates.github.io/webpack for documentation.
4 |
5 | const path = require('path')
6 |
7 | module.exports = {
8 | dev: {
9 |
10 | // Paths
11 | assetsSubDirectory: 'static',
12 | assetsPublicPath: '/',
13 | proxyTable: {},
14 |
15 | // Various Dev Server settings
16 | host: 'localhost', // can be overwritten by process.env.HOST
17 | port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
18 | autoOpenBrowser: true, //自动启动浏览器
19 | errorOverlay: true,
20 | notifyOnErrors: true,
21 | poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions-
22 |
23 | // Use Eslint Loader?
24 | // If true, your code will be linted during bundling and
25 | // linting errors and warnings will be shown in the console.
26 | useEslint: true,
27 | // If true, eslint errors and warnings will also be shown in the error overlay
28 | // in the browser.
29 | showEslintErrorsInOverlay: false,
30 |
31 | /**
32 | * Source Maps
33 | */
34 |
35 | // https://webpack.js.org/configuration/devtool/#development
36 | devtool: 'eval-source-map',
37 |
38 | // If you have problems debugging vue-files in devtools,
39 | // set this to false - it *may* help
40 | // https://vue-loader.vuejs.org/en/options.html#cachebusting
41 | cacheBusting: true,
42 |
43 | // CSS Sourcemaps off by default because relative paths are "buggy"
44 | // with this option, according to the CSS-Loader README
45 | // (https://github.com/webpack/css-loader#sourcemaps)
46 | // In our experience, they generally work as expected,
47 | // just be aware of this issue when enabling this option.
48 | cssSourceMap: false,
49 | },
50 |
51 | build: {
52 | // Template for index.html
53 | index: path.resolve(__dirname, '../dist/index.html'),
54 |
55 | // Paths
56 | assetsRoot: path.resolve(__dirname, '../dist'),
57 | assetsSubDirectory: 'static',
58 | assetsPublicPath: './',
59 |
60 | /**
61 | * Source Maps
62 | */
63 |
64 | productionSourceMap: false, //不生成.map文件
65 | // https://webpack.js.org/configuration/devtool/#production
66 | devtool: '#source-map',
67 |
68 | // Gzip off by default as many popular static hosts such as
69 | // Surge or Netlify already gzip all static assets for you.
70 | // Before setting to `true`, make sure to:
71 | // npm install --save-dev compression-webpack-plugin
72 | productionGzip: true, //压缩代码
73 | productionGzipExtensions: ['js', 'css'],
74 |
75 | // Run the build command with an extra argument to
76 | // View the bundle analyzer report after build finishes:
77 | // `npm run build --report`
78 | // Set to `true` or `false` to always turn it on or off
79 | bundleAnalyzerReport: process.env.npm_config_report
80 | }
81 | }
--------------------------------------------------------------------------------
/vue_mint_app/config/prod.env.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | module.exports = {
3 | NODE_ENV: '"production"'
4 | }
5 |
--------------------------------------------------------------------------------
/vue_mint_app/config/test.env.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | const merge = require('webpack-merge')
3 | const devEnv = require('./dev.env')
4 |
5 | module.exports = merge(devEnv, {
6 | NODE_ENV: '"testing"'
7 | })
8 |
--------------------------------------------------------------------------------
/vue_mint_app/config/vsconsole.js:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/vue_mint_app/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
22 | vue练习小商城
23 |
24 |
25 |
26 |
27 |
28 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/vue_mint_app/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vue_mint_app",
3 | "version": "1.0.0",
4 | "description": "A Vue.js project",
5 | "author": "zhuzhudengbaoling <2239146847@qq.com>",
6 | "private": true,
7 | "scripts": {
8 | "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
9 | "start": "npm run dev",
10 | "build": "node build/build.js",
11 | "lint": "eslint --fix --ext .vue,.js ./src"
12 | },
13 | "transformModules": {
14 | "cube-ui": {
15 | "transform": "cube-ui/src/modules/${member}",
16 | "kebabCase": true
17 | }
18 | },
19 | "dependencies": {
20 | "axios": "^0.17.1",
21 | "babel-polyfill": "^6.26.0",
22 | "compression-webpack-plugin": "^1.1.11",
23 | "cube-ui": "^1.12.13",
24 | "fastclick": "^1.0.6",
25 | "lib-flexible": "^0.3.2",
26 | "mint-ui": "^2.2.12",
27 | "sosh": "^1.1.1",
28 | "soshm": "^1.1.3",
29 | "stylus": "^0.54.5",
30 | "stylus-loader": "^3.0.2",
31 | "vconsole": "^3.2.0",
32 | "vue": "^2.5.2",
33 | "vue-resource": "^1.3.4",
34 | "vue-router": "^3.0.1",
35 | "vue-social-sharing": "^2.3.3",
36 | "vuex": "^3.0.1"
37 | },
38 | "devDependencies": {
39 | "autoprefixer": "^7.2.5",
40 | "babel-core": "^6.22.1",
41 | "babel-eslint": "^9.0.0",
42 | "babel-jest": "^21.0.2",
43 | "babel-loader": "^7.1.1",
44 | "babel-plugin-dynamic-import-node": "^1.2.0",
45 | "babel-plugin-transform-es2015-modules-commonjs": "^6.26.0",
46 | "babel-plugin-transform-runtime": "^6.22.0",
47 | "babel-preset-env": "^1.3.2",
48 | "babel-preset-stage-2": "^6.22.0",
49 | "babel-register": "^6.22.0",
50 | "better-scroll": "^1.8.0",
51 | "chalk": "^2.0.1",
52 | "chromedriver": "^2.27.2",
53 | "copy-webpack-plugin": "^4.0.1",
54 | "cross-spawn": "^5.0.1",
55 | "css-loader": "^0.28.0",
56 | "eslint": "^5.5.0",
57 | "eslint-plugin-html": "^4.0.5",
58 | "eventsource-polyfill": "^0.9.6",
59 | "extract-text-webpack-plugin": "^3.0.0",
60 | "file-loader": "^1.1.4",
61 | "friendly-errors-webpack-plugin": "^1.6.1",
62 | "html-webpack-plugin": "^2.30.1",
63 | "jest": "^21.2.0",
64 | "jest-serializer-vue": "^0.3.0",
65 | "nightwatch": "^0.9.12",
66 | "node-notifier": "^5.1.2",
67 | "optimize-css-assets-webpack-plugin": "^3.2.0",
68 | "ora": "^1.2.0",
69 | "portfinder": "^1.0.13",
70 | "postcss-import": "^11.0.0",
71 | "postcss-loader": "^2.0.10",
72 | "pre-commit": "^1.2.2",
73 | "rimraf": "^2.6.0",
74 | "selenium-server": "^3.0.1",
75 | "semver": "^5.3.0",
76 | "shelljs": "^0.7.6",
77 | "stylus": "^0.54.5",
78 | "stylus-loader": "^2.1.1",
79 | "uglifyjs-webpack-plugin": "^1.1.1",
80 | "url-loader": "^0.5.8",
81 | "vue-jest": "^1.0.2",
82 | "vue-loader": "^13.3.0",
83 | "vue-scroller": "^2.2.4",
84 | "vue-style-loader": "^3.0.1",
85 | "vue-template-compiler": "^2.5.2",
86 | "webpack": "^3.6.0",
87 | "webpack-bundle-analyzer": "^2.9.0",
88 | "webpack-dev-server": "^2.9.1",
89 | "webpack-merge": "^4.1.0",
90 | "webpack-parallel-uglify-plugin": "^1.1.0",
91 | "webpack-post-compile-plugin": "^0.4.1",
92 | "webpack-transform-modules-plugin": "^0.3.5"
93 | },
94 | "engines": {
95 | "node": ">= 4.0.0",
96 | "npm": ">= 3.0.0"
97 | },
98 | "browserslist": [
99 | "> 1%",
100 | "last 2 versions",
101 | "not ie <= 8"
102 | ]
103 | }
104 |
--------------------------------------------------------------------------------
/vue_mint_app/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
22 |
23 |
--------------------------------------------------------------------------------
/vue_mint_app/src/components/FooterBar.vue:
--------------------------------------------------------------------------------
1 |
2 |
40 |
41 |
42 |
61 |
62 |
--------------------------------------------------------------------------------
/vue_mint_app/src/components/headerOne.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | {{newTitle}}
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
32 |
33 |
--------------------------------------------------------------------------------
/vue_mint_app/src/components/headerTwo.vue:
--------------------------------------------------------------------------------
1 |
2 |
12 |
13 |
14 |
32 |
33 |
56 |
--------------------------------------------------------------------------------
/vue_mint_app/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from "vue";
2 | import App from "./App";
3 | import router from "./router";
4 | import store from "./store";
5 | import Vuex from "vuex";
6 | // import "./utils/rem.js";
7 | import { getHttp, postHttp } from "./utils/api";
8 | //定义全局变量
9 | Vue.prototype.$getHttp = getHttp;
10 | Vue.prototype.$postHttp = postHttp;
11 | import "babel-polyfill";
12 | import { Lazyload } from "mint-ui"; //懒加载
13 | Vue.use(Lazyload, {
14 | //懒加载声明错误图和占位图
15 | preLoad: 1,
16 | error:
17 | "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1519390533134&di=8fffb0fa229df0c0a2c1baf625353498&imgtype=0&src=http%3A%2F%2Fimg.zcool.cn%2Fcommunity%2F01067e58edf49da8012049efa65a00.gif",
18 | loading:
19 | "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1519390533134&di=8fffb0fa229df0c0a2c1baf625353498&imgtype=0&src=http%3A%2F%2Fimg.zcool.cn%2Fcommunity%2F01067e58edf49da8012049efa65a00.gif"
20 | });
21 | Vue.use(Vuex);
22 | import Mint from "mint-ui";
23 | import "mint-ui/lib/style.css";
24 | Vue.use(Mint);
25 | // 滴滴ui
26 | // import Cube from 'cube-ui'
27 | // Vue.use(Cube)
28 | // 上拉下拉组件
29 | import VueScroller from 'vue-scroller'
30 | Vue.use(VueScroller)
31 | // 解决移动端300s延迟
32 | import fastclick from "fastclick";
33 | fastclick.attach(document.body); //解决移动端点击事件200ms延迟
34 | Vue.config.productionTip = true;
35 | //引入请求
36 | import axios from "axios";
37 | Vue.prototype.$http = axios;
38 | /*vConsole */
39 | import Vconsole from "vconsole";
40 | let vConsole = new Vconsole();
41 | export default vConsole;
42 | /* eslint-disable no-new */
43 | new Vue({
44 | el: "#app",
45 | router,
46 | store,
47 | template: "",
48 | render: h => h(App),
49 | components: {
50 | App
51 | }
52 | });
53 |
--------------------------------------------------------------------------------
/vue_mint_app/src/pages/404.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | 页面找不到
8 |
9 |
10 |
11 |
28 |
31 |
32 |
--------------------------------------------------------------------------------
/vue_mint_app/src/pages/Globaldata.vue:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
--------------------------------------------------------------------------------
/vue_mint_app/src/pages/fabu.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | 这是发布页面
8 |
9 |
10 |
11 |
28 |
31 |
32 |
--------------------------------------------------------------------------------
/vue_mint_app/src/pages/item.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
14 |
15 |
18 |
--------------------------------------------------------------------------------
/vue_mint_app/src/pages/load.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
Pull up
5 |
在列表底部, 按住 - 上拉 - 释放可以获取更多数据
6 |
translate : {{ translate }}
7 |
8 | translateScale : {{ moveTranslate }}
9 |
10 |
11 |
12 |
15 |
16 | ❤
17 |
18 |
19 |
20 |
21 |
22 | ↑
23 |
24 |
25 |
26 | 加载完成没有更多数据
27 |
28 |
29 |
30 |
31 |
32 |
93 |
151 |
152 |
153 |
154 |
155 |
--------------------------------------------------------------------------------
/vue_mint_app/src/pages/login.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
Admin
4 |
5 |
6 | 用户名
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | 密码
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | 登录
24 |
25 |
26 | 退出登录
27 |
28 |
29 |
30 |
31 |
90 |
91 |
148 |
--------------------------------------------------------------------------------
/vue_mint_app/src/pages/mifenka.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | 这是米粉卡页面
8 |
9 |
10 |
11 |
28 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/vue_mint_app/src/pages/need.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | 想要
8 |
9 |
10 |
11 |
26 |
28 |
29 |
--------------------------------------------------------------------------------
/vue_mint_app/src/pages/news.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 新闻详情
6 |
7 |
8 |
9 | {{item.title}}
10 |
11 |
12 | {{item.time}}
13 |
14 | {{newsdetails.boxs}}
15 |
16 |
17 | {{box.p}}
18 |
19 |
20 |
![]()
21 |
22 |
23 |
24 |
25 |
26 |
70 |
98 |
--------------------------------------------------------------------------------
/vue_mint_app/src/pages/qiangou.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | 这是抢购页面
8 |
9 |
10 |
11 |
80 |
83 |
84 |
--------------------------------------------------------------------------------
/vue_mint_app/src/pages/tool.vue:
--------------------------------------------------------------------------------
1 |
2 |
26 |
27 |
28 |
80 |
139 |
--------------------------------------------------------------------------------
/vue_mint_app/src/router/index.js:
--------------------------------------------------------------------------------
1 | import Vue from "vue";
2 | import Router from "vue-router";
3 | import FooterBar from "@/components/FooterBar";
4 | const main = resolve => require(['../pages/main.vue'], resolve);
5 | const tool = resolve => require(['../pages/tool.vue'], resolve);
6 | const my = resolve => require(['../pages/my.vue'], resolve);
7 | const details = resolve => require(['../pages/details.vue'], resolve);
8 | const choose = resolve => require(['../pages/choose.vue'], resolve);
9 | const cart = resolve => require(['../pages/cart.vue'], resolve);
10 | const all_order = resolve => require(['../pages/all_order.vue'], resolve);
11 | const news = resolve => require(['../pages/news.vue'], resolve);
12 | const need = resolve => require(['../pages/need.vue'], resolve);
13 | const qiangou = resolve => require(['../pages/qiangou.vue'], resolve);
14 | const fabu = resolve => require(['../pages/fabu.vue'], resolve);
15 | const mifenka = resolve => require(['../pages/mifenka.vue'], resolve);
16 | const fenlei = resolve => require(['../pages/fenlei.vue'], resolve);
17 |
18 | const login = resolve => require(['../pages/login.vue'], resolve);
19 | const notfound = resolve => require(['../pages/404.vue'], resolve);
20 | const scrolldrop = resolve => require(['../pages/scrolldrop.vue'], resolve);
21 | // import load from "../pages/load.vue";
22 | const load = resolve => require(['../pages/load.vue'], resolve);
23 | Vue.use(Router);
24 | export default new Router({
25 | // mode: "history", //改为history.路由中没有#号
26 | routes: [
27 | // {
28 | // path: "/",
29 | // name: "login",
30 | // component: login,
31 |
32 | // },
33 | {
34 | path: "/login",
35 | name: "login",
36 | component: login,
37 |
38 | },
39 | {
40 | path: "/",
41 | name: "main",
42 | component: main
43 | },
44 | {
45 | path: "/main",
46 | name: "main",
47 | component: main
48 | },
49 | {
50 | path: "/fenlei",
51 | name: "fenlei",
52 | component: fenlei
53 | },
54 | {
55 | path: "/tool",
56 | name: "tool",
57 | component: tool
58 | },
59 | {
60 | path: "/cart",
61 | name: "cart",
62 | component: cart
63 | },
64 | {
65 | path: "/my",
66 | name: "my",
67 | component: my
68 | },
69 | {
70 | path: "/choose",
71 | name: "choose",
72 | component: choose
73 | },
74 | {
75 | path: "/details",
76 | name: "details",
77 | component: details
78 | },
79 | {
80 | path: "/all_order",
81 | name: "all_order",
82 | component: all_order
83 | },
84 | {
85 | path: "/news",
86 | name: "news",
87 | component: news
88 | },
89 | {
90 | path: "/need",
91 | name: "need",
92 | component: need
93 | },
94 | {
95 | path: "/qiangou",
96 | name: "qiangou",
97 | component: qiangou
98 | },
99 | {
100 | path: "/fabu",
101 | name: "fabu",
102 | component: fabu
103 | },
104 | {
105 | path: "/mifenka",
106 | name: "mifenka",
107 | component: mifenka
108 | },
109 | {
110 | path: "/load",
111 | name: "load",
112 | component: load
113 | },
114 | {
115 | path: "/scrolldrop",
116 | name: "scrolldrop",
117 | component: scrolldrop
118 | },
119 | {
120 | path: "*",
121 | name: "notfound",
122 | component: notfound
123 | },
124 |
125 | ]
126 | });
--------------------------------------------------------------------------------
/vue_mint_app/src/store/index.js:
--------------------------------------------------------------------------------
1 | import Vue from "vue";
2 | import Vuex from "vuex";
3 | import {
4 | stat
5 | } from "fs";
6 |
7 | Vue.use(Vuex);
8 |
9 | const store = new Vuex.Store({
10 | state: {
11 | //state访问状态对象
12 | logindata: localStorage["logindata"] ? JSON.parse(localStorage["logindata"]) : [],
13 | count: 1,
14 | carts: localStorage["carts"] ? JSON.parse(localStorage["carts"]) : [],
15 | addorders: localStorage["addorders"] ?
16 | JSON.parse(localStorage["addorders"]) : []
17 | },
18 | //Mutations修改状态
19 | // 同步状态
20 | mutations: {
21 | //加入购物车
22 | addcarts: function(state, data) {
23 | console.log(data);
24 | state.carts.push(data);
25 | console.log(state.carts);
26 | localStorage.setItem("carts", JSON.stringify(state.carts));
27 | },
28 | //加入订单
29 | addorder: function(state, data) {
30 | console.log(data);
31 | state.addorders.push(data);
32 | console.log(state.addorders);
33 | localStorage.setItem("addorders", JSON.stringify(state.addorders));
34 | },
35 | // 计算加
36 | add(state, index) {
37 | state.carts[index].value++;
38 | console.log("加");
39 | console.log(state.carts[index].value);
40 | console.log(state.carts);
41 | },
42 | //计算减
43 | reduce(state, index) {
44 | if (state.carts[index].value == 1) {
45 | state.carts[index].value == 1;
46 | console.log("减");
47 | } else {
48 | state.carts[index].value--;
49 | console.log("减");
50 | console.log(state.carts[index].value);
51 | }
52 | },
53 | // 删除购物车中的某个数据
54 | shanchu(state, index) {
55 | state.carts.splice(index, 1);
56 | console.log(state.carts);
57 | localStorage.setItem("carts", JSON.stringify(state.carts));
58 | },
59 | // 清除购物车
60 | settlement(state, index) {
61 | // 第一种使用这种清除 localStorage.clear();
62 | // 另一种给空覆盖
63 | state.carts = [];
64 | localStorage.setItem("carts", JSON.stringify(state.carts));
65 | // localStorage注意是json对象转字符串,getitem时要字符串转对象
66 | //清除localstorage
67 | },
68 | // 设置登录的数据
69 | setData: function(state) {
70 | this.state.logindata.push("111")
71 | localStorage.setItem("logindata", JSON.stringify(state.logindata));
72 | console.log(this.state.logindata, 'state33333')
73 | },
74 | // 设置退出的数据
75 | // checkoutData: function(state) {
76 | // state.logindata = [];
77 | // localStorage.setItem("logindata", JSON.stringify(state.logindata));
78 | // console.log(state, 'state2222')
79 | // }
80 |
81 | },
82 | //getters计算过滤操作
83 |
84 |
85 | // 购物车中常见的合计?数量改变时的合计
86 | getters: {
87 |
88 | // heji:state=>{
89 | // var sum=0;
90 | // state.carts.forEach((cart)=>{
91 | // sum+=cart.price*cart.value
92 | // })
93 | // return sum
94 | // },
95 | },
96 |
97 | //actions异步修改状态
98 | actions: {
99 |
100 | }
101 | });
102 | export default store;
--------------------------------------------------------------------------------
/vue_mint_app/src/utils/api.js:
--------------------------------------------------------------------------------
1 | import axios from "axios";
2 | import { MessageBox, Indicator } from "mint-ui";
3 | axios.defaults.timeout = 50000;
4 | axios.defaults.baseURL = "";
5 | //http request 拦截器
6 | // axios.interceptors.request.use(
7 | // config => {
8 | // // const token = getCookie('名称');注意使用的时候需要引入cookie方法,推荐js-cookie
9 | // config.data = JSON.stringify(config.data);
10 | // config.headers = {
11 | // 'Content-Type': 'application/x-www-form-urlencoded'
12 | // }
13 | // // if(token){
14 | // // config.params = {'token':token}
15 | // // }
16 | // return config;
17 | // },
18 | // error => {
19 | // return Promise.reject(err);
20 | // }
21 | // );
22 |
23 | //http response 拦截器
24 | // axios.interceptors.response.use(
25 | // response => {
26 | // if (response.data.errCode == 2) {
27 | // router.push({
28 | // path: "/login",
29 | // querry: { redirect: router.currentRoute.fullPath }//从哪个页面跳转
30 | // })
31 | // }
32 | // return response;
33 | // },
34 | // error => {
35 | // return Promise.reject(error)
36 | // }
37 | // )
38 |
39 | /**
40 | * 封装get方法
41 | * @param url
42 | * @param data
43 | * @returns {Promise}
44 | */
45 |
46 | export function getHttp(url, params = {}) {
47 | // 创建动画mint-ui
48 | Indicator.open({
49 | text: "加载中...",
50 | spinnerType: "fading-circle"
51 | });
52 | return new Promise((resolve, reject) => {
53 | axios
54 | .get(url, {
55 | params: params
56 | })
57 | .then(response => {
58 | resolve(response.data);
59 | Indicator.close(); // // 关闭动画
60 | })
61 | .catch(err => {
62 | reject(err);
63 | Indicator.close(); // // 关闭动画
64 |
65 | MessageBox.alert("message", err);
66 | });
67 | });
68 | }
69 |
70 | /**
71 | * 封装post请求
72 | * @param url
73 | * @param data
74 | * @returns {Promise}
75 | */
76 |
77 | export function postHttp(url, data = {}) {
78 | // 创建动画mint-ui
79 | Indicator.open({
80 | text: "加载中...",
81 | spinnerType: "fading-circle"
82 | });
83 | return new Promise((resolve, reject) => {
84 | axios.post(url, data).then(
85 | response => {
86 | resolve(response.data);
87 | Indicator.close(); // // 关闭动画
88 | },
89 | err => {
90 | reject(err);
91 | MessageBox.alert("message", err);
92 | Indicator.close(); // // 关闭动画
93 | }
94 | );
95 | });
96 | }
97 |
98 | /**
99 | * 封装patch请求
100 | * @param url
101 | * @param data
102 | * @returns {Promise}
103 | */
104 |
105 | // export function patch(url, data = {}) {
106 | // return new Promise((resolve, reject) => {
107 | // axios.patch(url, data)
108 | // .then(response => {
109 | // resolve(response.data);
110 | // }, err => {
111 | // reject(err)
112 | // })
113 | // })
114 | // }
115 |
116 | // /**
117 | // * 封装put请求
118 | // * @param url
119 | // * @param data
120 | // * @returns {Promise}
121 | // */
122 |
123 | // export function put(url, data = {}) {
124 | // return new Promise((resolve, reject) => {
125 | // axios.put(url, data)
126 | // .then(response => {
127 | // resolve(response.data);
128 | // }, err => {
129 | // reject(err)
130 | // })
131 | // })
132 | // }
133 |
--------------------------------------------------------------------------------
/vue_mint_app/src/utils/rem.js:
--------------------------------------------------------------------------------
1 | // (function() {
2 | // var docEl = document.documentElement;
3 | // var resize = "orientationchange" in window ? "orientationchange" : "resize";
4 | // var setRem = function() {
5 | // var screenWidth = docEl.clientWidth || window.screen.width || 360;
6 | // // 750 PSD宽度(可变的)
7 | // docEl.style.fontSize = (100 * screenWidth) / 750 + "px";
8 | // };
9 | // window.addEventListener("resize", setRem, false);
10 | // setRem();
11 | // })(); // 用法psd量出来的像素距离 除以100 比如psd: 100px 转换后 1rem;
12 | function e () {
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/vue_mint_app/static/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/vue_mint_app/static/.gitkeep
--------------------------------------------------------------------------------
/vue_mint_app/static/css/main.css:
--------------------------------------------------------------------------------
1 | body {
2 | margin-bottom: 1.16rem;
3 | font-size: 16px;
4 | background: #F4F4F4;
5 | }
6 |
7 | .mint-tab-item-label {
8 | color: #353535 !important;
9 | }
--------------------------------------------------------------------------------
/vue_mint_app/static/css/reset.css:
--------------------------------------------------------------------------------
1 | /*
2 | html5doctor.com Reset Stylesheet
3 | v1.4.1
4 | 2010-03-01
5 | Author: Richard Clark - http://richclarkdesign.com
6 | */
7 |
8 | html,
9 | body,
10 | div,
11 | span,
12 | object,
13 | iframe,
14 | h1,
15 | h2,
16 | h3,
17 | h4,
18 | h5,
19 | h6,
20 | p,
21 | blockquote,
22 | pre,
23 | abbr,
24 | address,
25 | cite,
26 | code,
27 | del,
28 | dfn,
29 | em,
30 | img,
31 | ins,
32 | kbd,
33 | q,
34 | samp,
35 | small,
36 | strong,
37 | sub,
38 | sup,
39 | var,
40 | b,
41 | i,
42 | dl,
43 | dt,
44 | dd,
45 | ol,
46 | ul,
47 | li,
48 | fieldset,
49 | form,
50 | label,
51 | legend,
52 | table,
53 | caption,
54 | tbody,
55 | tfoot,
56 | thead,
57 | tr,
58 | th,
59 | td,
60 | article,
61 | aside,
62 | canvas,
63 | details,
64 | figcaption,
65 | figure,
66 | footer,
67 | header,
68 | hgroup,
69 | menu,
70 | nav,
71 | section,
72 | summary,
73 | time,
74 | mark,
75 | audio,
76 | video {
77 | border: 0;
78 | outline: 0;
79 | background: transparent;
80 | }
81 |
82 | a {
83 | text-decoration: none;
84 | }
85 |
86 | *,
87 | ::before,
88 | ::after {
89 | margin: 0;
90 | padding: 0;
91 | /*清除移动端默认的点击高亮效果*/
92 | -webkit-tap-highlight-color: transparent;
93 | /*设置以边框开始计算宽度*/
94 | -webkit-box-sizing: border-box;
95 | box-sizing: border-box;
96 | }
97 |
98 | :focus {
99 | outline: 1;
100 | }
101 |
102 | article,
103 | aside,
104 | canvas,
105 | details,
106 | figcaption,
107 | figure,
108 | footer,
109 | header,
110 | hgroup,
111 | menu,
112 | nav,
113 | section,
114 | summary {
115 | display: block;
116 | }
117 |
118 | ul li {
119 | list-style: none;
120 | }
121 |
122 | blockquote,
123 | q {
124 | quotes: none;
125 | }
126 |
127 | blockquote:before,
128 | blockquote:after,
129 | q:before,
130 | q:after {
131 | content: '';
132 | content: none;
133 | }
134 |
135 | ins {
136 | background-color: #ff9;
137 | color: #000;
138 | text-decoration: none;
139 | }
140 |
141 | mark {
142 | background-color: #ff9;
143 | color: #000;
144 | font-style: italic;
145 | font-weight: bold;
146 | }
147 |
148 | del {
149 | text-decoration: line-through;
150 | }
151 |
152 | abbr[title],
153 | dfn[title] {
154 | border-bottom: 1px dotted #000;
155 | cursor: help;
156 | }
157 |
158 | table {
159 | border-collapse: collapse;
160 | border-spacing: 0;
161 | }
162 |
163 | hr {
164 | display: block;
165 | height: 1px;
166 | border: 0;
167 | border-top: 1px solid #cccccc;
168 | margin: 1em 0;
169 | padding: 0;
170 | }
171 |
172 | input,
173 | select {
174 | vertical-align: middle;
175 | border: 0;
176 | outline: none;
177 | /*清除移动端默认的表单样式*/
178 | -webkit-appearance: none;
179 | }
--------------------------------------------------------------------------------
/vue_mint_app/static/home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/vue_mint_app/static/home.png
--------------------------------------------------------------------------------
/vue_mint_app/static/home_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/vue_mint_app/static/home_selected.png
--------------------------------------------------------------------------------
/vue_mint_app/static/images/down-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/vue_mint_app/static/images/down-logo.png
--------------------------------------------------------------------------------
/vue_mint_app/static/images/ka.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/vue_mint_app/static/images/ka.png
--------------------------------------------------------------------------------
/vue_mint_app/static/images/lipin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/vue_mint_app/static/images/lipin.png
--------------------------------------------------------------------------------
/vue_mint_app/static/images/news.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/vue_mint_app/static/images/news.png
--------------------------------------------------------------------------------
/vue_mint_app/static/images/no-order.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/vue_mint_app/static/images/no-order.png
--------------------------------------------------------------------------------
/vue_mint_app/static/images/refresh-logo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/vue_mint_app/static/images/refresh-logo.gif
--------------------------------------------------------------------------------
/vue_mint_app/static/images/select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/vue_mint_app/static/images/select.png
--------------------------------------------------------------------------------
/vue_mint_app/static/images/tab.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/vue_mint_app/static/images/tab.png
--------------------------------------------------------------------------------
/vue_mint_app/static/images/tab1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/vue_mint_app/static/images/tab1.png
--------------------------------------------------------------------------------
/vue_mint_app/static/images/tab3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/vue_mint_app/static/images/tab3.png
--------------------------------------------------------------------------------
/vue_mint_app/static/images/tab3_.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/vue_mint_app/static/images/tab3_.png
--------------------------------------------------------------------------------
/vue_mint_app/static/images/tab4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/vue_mint_app/static/images/tab4.png
--------------------------------------------------------------------------------
/vue_mint_app/static/images/tab4_.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/vue_mint_app/static/images/tab4_.png
--------------------------------------------------------------------------------
/vue_mint_app/static/images/tab5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/vue_mint_app/static/images/tab5.png
--------------------------------------------------------------------------------
/vue_mint_app/static/images/tab5_.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/vue_mint_app/static/images/tab5_.png
--------------------------------------------------------------------------------
/vue_mint_app/static/images/tab_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/vue_mint_app/static/images/tab_1.png
--------------------------------------------------------------------------------
/vue_mint_app/static/images/tab_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/vue_mint_app/static/images/tab_2.png
--------------------------------------------------------------------------------
/vue_mint_app/static/images/xianshi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/vue_mint_app/static/images/xianshi.png
--------------------------------------------------------------------------------
/vue_mint_app/static/search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/vue_mint_app/static/search.png
--------------------------------------------------------------------------------
/vue_mint_app/static/search_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/vue_mint_app/static/search_selected.png
--------------------------------------------------------------------------------
/vue_mint_app/static/user.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/vue_mint_app/static/user.png
--------------------------------------------------------------------------------
/vue_mint_app/static/user_selected.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dbl520/VUE-shop/880f6deb7cc9692b08a1327ae383e291dde2a7a1/vue_mint_app/static/user_selected.png
--------------------------------------------------------------------------------