├── 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 | ![](https://github.com/dengbaoling/IMAGES/blob/master/2017-12-14_201252.png) 23 | ![](https://github.com/dengbaoling/IMAGES/blob/master/2017-12-14_201301.png) 24 | ![](https://github.com/dengbaoling/IMAGES/blob/master/2017-12-14_201313.png) 25 | ![](https://github.com/dengbaoling/IMAGES/blob/master/2017-12-14_201323.png) 26 | ![](https://github.com/dengbaoling/IMAGES/blob/master/2017-12-14_201340.png) 27 | 28 | ![](https://github.com/dengbaoling/IMAGES/blob/master/2017-12-14_201419.png) 29 | ![](https://github.com/dengbaoling/IMAGES/blob/master/2017-12-14_201439.png) 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 | 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 | 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 | 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 | 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 | 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 | 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 |
9 |
10 | logo 11 |

12 | Edit src/App.js and save to reload. 13 |

14 | 20 | Learn React 21 | 22 |
23 |
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 | 2 | 3 | 4 | 5 | 6 | 7 | 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 | 11 | 12 | 22 | 23 | -------------------------------------------------------------------------------- /vue_mint_app/src/components/FooterBar.vue: -------------------------------------------------------------------------------- 1 | 41 | 42 | 61 | 62 | -------------------------------------------------------------------------------- /vue_mint_app/src/components/headerOne.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 32 | 33 | -------------------------------------------------------------------------------- /vue_mint_app/src/components/headerTwo.vue: -------------------------------------------------------------------------------- 1 | 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 | 11 | 28 | 31 | 32 | -------------------------------------------------------------------------------- /vue_mint_app/src/pages/Globaldata.vue: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | -------------------------------------------------------------------------------- /vue_mint_app/src/pages/fabu.vue: -------------------------------------------------------------------------------- 1 | 11 | 28 | 31 | 32 | -------------------------------------------------------------------------------- /vue_mint_app/src/pages/item.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 14 | 15 | 18 | -------------------------------------------------------------------------------- /vue_mint_app/src/pages/load.vue: -------------------------------------------------------------------------------- 1 | 2 | 32 | 93 | 151 | 152 | 153 | 154 | 155 | -------------------------------------------------------------------------------- /vue_mint_app/src/pages/login.vue: -------------------------------------------------------------------------------- 1 | 30 | 31 | 90 | 91 | 148 | -------------------------------------------------------------------------------- /vue_mint_app/src/pages/mifenka.vue: -------------------------------------------------------------------------------- 1 | 11 | 28 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /vue_mint_app/src/pages/need.vue: -------------------------------------------------------------------------------- 1 | 11 | 26 | 28 | 29 | -------------------------------------------------------------------------------- /vue_mint_app/src/pages/news.vue: -------------------------------------------------------------------------------- 1 | 26 | 70 | 98 | -------------------------------------------------------------------------------- /vue_mint_app/src/pages/qiangou.vue: -------------------------------------------------------------------------------- 1 | 11 | 80 | 83 | 84 | -------------------------------------------------------------------------------- /vue_mint_app/src/pages/tool.vue: -------------------------------------------------------------------------------- 1 | 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 --------------------------------------------------------------------------------