├── .env.test ├── .gitignore ├── README.md ├── babel.config.js ├── package-lock.json ├── package.json ├── public ├── favicon.ico ├── imgs │ ├── ads │ │ ├── ads-1.png │ │ ├── ads-2.jpg │ │ ├── ads-3.png │ │ └── ads-4.jpg │ ├── banner-1.png │ ├── detail │ │ ├── icon-loc.png │ │ ├── item-price.jpeg │ │ ├── phone-1.jpg │ │ ├── phone-2.jpg │ │ ├── phone-3.jpg │ │ └── phone-4.jpg │ ├── icon-15day.png │ ├── icon-7day.png │ ├── icon-add.png │ ├── icon-arrow.png │ ├── icon-cart-checked.png │ ├── icon-cart-hover.png │ ├── icon-cart.png │ ├── icon-close.png │ ├── icon-down.png │ ├── icon-gou.png │ ├── icon-loc.png │ ├── icon-no-data.png │ ├── icon-post.png │ ├── icon-search.png │ ├── icon-setting.png │ ├── item-box-1.png │ ├── item-box-2.png │ ├── item-box-3.jpg │ ├── item-box-4.jpg │ ├── loading-svg │ │ ├── loading-balls.svg │ │ ├── loading-bars.svg │ │ ├── loading-bubbles.svg │ │ ├── loading-cubes.svg │ │ ├── loading-cylon-red.svg │ │ ├── loading-cylon.svg │ │ ├── loading-spin.svg │ │ ├── loading-spinning-bubbles.svg │ │ └── loading-spokes.svg │ ├── login-bg.jpg │ ├── login-logo.png │ ├── logo-footer.png │ ├── logo-mi.png │ ├── mi-home.png │ ├── mi-logo.png │ ├── mix-alpha.jpg │ ├── nav-img │ │ ├── nav-1.png │ │ ├── nav-2.png │ │ ├── nav-3-1.jpg │ │ ├── nav-3-2.jpg │ │ ├── nav-3-3.png │ │ ├── nav-3-4.jpg │ │ ├── nav-3-5.jpg │ │ ├── nav-3-6.png │ │ ├── nav-3.png │ │ ├── nav-4.png │ │ ├── nav-5.png │ │ ├── nav-6-1.webp │ │ ├── nav-6-2.png │ │ ├── nav-6-3.webp │ │ ├── nav-6-4.webp │ │ ├── nav-6-5.png │ │ ├── nav-6-6.png │ │ └── nav-6.png │ ├── pay │ │ ├── icon-ali.png │ │ ├── icon-qrcode.png │ │ ├── icon-scan.png │ │ └── icon-wechat.png │ ├── product │ │ ├── gallery-1.png │ │ ├── gallery-2.png │ │ ├── gallery-3.png │ │ ├── gallery-4.png │ │ ├── gallery-5.jpg │ │ ├── gallery-6.jpg │ │ ├── product-bg-1.png │ │ ├── product-bg-2.png │ │ ├── product-bg-3.png │ │ └── video.mp4 │ └── slider │ │ ├── slide-1.jpg │ │ ├── slide-2.jpg │ │ ├── slide-3.jpg │ │ ├── slide-4.jpg │ │ └── slide-5.jpg ├── index.html └── mock │ └── user │ └── login.json ├── src ├── App.vue ├── api │ └── index.js ├── assets │ └── scss │ │ ├── base.scss │ │ ├── button.scss │ │ ├── config.scss │ │ ├── mixin.scss │ │ ├── modal.scss │ │ └── reset.scss ├── components │ ├── Loading.vue │ ├── Modal.vue │ ├── NavFooter.vue │ ├── NavHeader.vue │ ├── NoData.vue │ ├── OrderHeader.vue │ ├── ProductParam.vue │ ├── ScanPayCode.vue │ └── serviceBar.vue ├── env.js ├── main.js ├── mock │ └── api.js ├── pages │ ├── alipay.vue │ ├── cart.vue │ ├── detail.vue │ ├── home.vue │ ├── index.vue │ ├── login.vue │ ├── order.vue │ ├── orderConfirm.vue │ ├── orderList.vue │ ├── orderPay.vue │ ├── product.vue │ └── register.vue ├── router.js ├── storage │ └── index.js ├── store │ ├── action.js │ ├── index.js │ └── mutations.js └── util │ └── index.js └── vue.config.js /.env.test: -------------------------------------------------------------------------------- 1 | NODE_ENV='test' -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /dist 4 | 5 | # local env files 6 | .env.local 7 | .env.*.local 8 | 9 | # Log files 10 | npm-debug.log* 11 | yarn-debug.log* 12 | yarn-error.log* 13 | 14 | # Editor directories and files 15 | .idea 16 | .vscode 17 | *.suo 18 | *.ntvs* 19 | *.njsproj 20 | *.sln 21 | *.sw? 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # mall 2 | 3 | ## Project setup 4 | ``` 5 | npm install 6 | ``` 7 | 8 | ### Compiles and hot-reloads for development 9 | ``` 10 | npm run serve 11 | ``` 12 | 13 | ### Compiles and minifies for production 14 | ``` 15 | npm run build 16 | ``` 17 | 18 | ### Lints and fixes files 19 | ``` 20 | npm run lint 21 | ``` 22 | 23 | ### Customize configuration 24 | See [Configuration Reference](https://cli.vuejs.org/config/). 25 | -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/cli-plugin-babel/preset' 4 | ], 5 | "plugins": [ 6 | [ 7 | "component", 8 | { 9 | "libraryName": "element-ui", 10 | "styleLibraryName": "theme-chalk" 11 | } 12 | ] 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mall", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "serve": "vue-cli-service serve --mode=development", 7 | "test": "vue-cli-service serve --mode=test", 8 | "build": "vue-cli-service build --mode=production", 9 | "lint": "vue-cli-service lint" 10 | }, 11 | "dependencies": { 12 | "@babel/plugin-syntax-dynamic-import": "^7.8.3", 13 | "axios": "^0.19.2", 14 | "core-js": "^3.6.4", 15 | "qrcode": "^1.4.4", 16 | "vue": "^2.6.11", 17 | "vue-router": "^3.1.6", 18 | "vuex": "^3.3.0" 19 | }, 20 | "devDependencies": { 21 | "@vue/cli-plugin-babel": "^4.3.0", 22 | "@vue/cli-plugin-eslint": "^4.3.0", 23 | "@vue/cli-service": "^4.3.0", 24 | "babel-eslint": "^10.1.0", 25 | "babel-plugin-component": "^1.1.1", 26 | "element-ui": "^2.13.1", 27 | "eslint": "^6.7.2", 28 | "eslint-plugin-vue": "^6.2.2", 29 | "jsonp": "^0.2.1", 30 | "mockjs": "^1.1.0", 31 | "node-sass": "^4.14.0", 32 | "sass-loader": "^8.0.2", 33 | "vue-awesome-swiper": "^3.1.3", 34 | "vue-axios": "^2.1.5", 35 | "vue-cookie": "^1.1.4", 36 | "vue-lazyload": "^1.3.3", 37 | "vue-template-compiler": "^2.6.11" 38 | }, 39 | "eslintConfig": { 40 | "root": true, 41 | "env": { 42 | "node": true 43 | }, 44 | "extends": [ 45 | "plugin:vue/essential", 46 | "eslint:recommended" 47 | ], 48 | "parserOptions": { 49 | "parser": "babel-eslint" 50 | }, 51 | "rules": {} 52 | }, 53 | "browserslist": [ 54 | "> 1%", 55 | "last 2 versions", 56 | "not dead" 57 | ] 58 | } 59 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/favicon.ico -------------------------------------------------------------------------------- /public/imgs/ads/ads-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/ads/ads-1.png -------------------------------------------------------------------------------- /public/imgs/ads/ads-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/ads/ads-2.jpg -------------------------------------------------------------------------------- /public/imgs/ads/ads-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/ads/ads-3.png -------------------------------------------------------------------------------- /public/imgs/ads/ads-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/ads/ads-4.jpg -------------------------------------------------------------------------------- /public/imgs/banner-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/banner-1.png -------------------------------------------------------------------------------- /public/imgs/detail/icon-loc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/detail/icon-loc.png -------------------------------------------------------------------------------- /public/imgs/detail/item-price.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/detail/item-price.jpeg -------------------------------------------------------------------------------- /public/imgs/detail/phone-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/detail/phone-1.jpg -------------------------------------------------------------------------------- /public/imgs/detail/phone-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/detail/phone-2.jpg -------------------------------------------------------------------------------- /public/imgs/detail/phone-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/detail/phone-3.jpg -------------------------------------------------------------------------------- /public/imgs/detail/phone-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/detail/phone-4.jpg -------------------------------------------------------------------------------- /public/imgs/icon-15day.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/icon-15day.png -------------------------------------------------------------------------------- /public/imgs/icon-7day.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/icon-7day.png -------------------------------------------------------------------------------- /public/imgs/icon-add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/icon-add.png -------------------------------------------------------------------------------- /public/imgs/icon-arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/icon-arrow.png -------------------------------------------------------------------------------- /public/imgs/icon-cart-checked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/icon-cart-checked.png -------------------------------------------------------------------------------- /public/imgs/icon-cart-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/icon-cart-hover.png -------------------------------------------------------------------------------- /public/imgs/icon-cart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/icon-cart.png -------------------------------------------------------------------------------- /public/imgs/icon-close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/icon-close.png -------------------------------------------------------------------------------- /public/imgs/icon-down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/icon-down.png -------------------------------------------------------------------------------- /public/imgs/icon-gou.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/icon-gou.png -------------------------------------------------------------------------------- /public/imgs/icon-loc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/icon-loc.png -------------------------------------------------------------------------------- /public/imgs/icon-no-data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/icon-no-data.png -------------------------------------------------------------------------------- /public/imgs/icon-post.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/icon-post.png -------------------------------------------------------------------------------- /public/imgs/icon-search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/icon-search.png -------------------------------------------------------------------------------- /public/imgs/icon-setting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/icon-setting.png -------------------------------------------------------------------------------- /public/imgs/item-box-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/item-box-1.png -------------------------------------------------------------------------------- /public/imgs/item-box-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/item-box-2.png -------------------------------------------------------------------------------- /public/imgs/item-box-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/item-box-3.jpg -------------------------------------------------------------------------------- /public/imgs/item-box-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/item-box-4.jpg -------------------------------------------------------------------------------- /public/imgs/loading-svg/loading-balls.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /public/imgs/loading-svg/loading-bars.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /public/imgs/loading-svg/loading-bubbles.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 9 | 10 | 11 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /public/imgs/loading-svg/loading-cubes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /public/imgs/loading-svg/loading-cylon-red.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /public/imgs/loading-svg/loading-cylon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /public/imgs/loading-svg/loading-spin.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /public/imgs/loading-svg/loading-spinning-bubbles.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /public/imgs/loading-svg/loading-spokes.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /public/imgs/login-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/login-bg.jpg -------------------------------------------------------------------------------- /public/imgs/login-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/login-logo.png -------------------------------------------------------------------------------- /public/imgs/logo-footer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/logo-footer.png -------------------------------------------------------------------------------- /public/imgs/logo-mi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/logo-mi.png -------------------------------------------------------------------------------- /public/imgs/mi-home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/mi-home.png -------------------------------------------------------------------------------- /public/imgs/mi-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/mi-logo.png -------------------------------------------------------------------------------- /public/imgs/mix-alpha.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/mix-alpha.jpg -------------------------------------------------------------------------------- /public/imgs/nav-img/nav-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/nav-img/nav-1.png -------------------------------------------------------------------------------- /public/imgs/nav-img/nav-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/nav-img/nav-2.png -------------------------------------------------------------------------------- /public/imgs/nav-img/nav-3-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/nav-img/nav-3-1.jpg -------------------------------------------------------------------------------- /public/imgs/nav-img/nav-3-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/nav-img/nav-3-2.jpg -------------------------------------------------------------------------------- /public/imgs/nav-img/nav-3-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/nav-img/nav-3-3.png -------------------------------------------------------------------------------- /public/imgs/nav-img/nav-3-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/nav-img/nav-3-4.jpg -------------------------------------------------------------------------------- /public/imgs/nav-img/nav-3-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/nav-img/nav-3-5.jpg -------------------------------------------------------------------------------- /public/imgs/nav-img/nav-3-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/nav-img/nav-3-6.png -------------------------------------------------------------------------------- /public/imgs/nav-img/nav-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/nav-img/nav-3.png -------------------------------------------------------------------------------- /public/imgs/nav-img/nav-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/nav-img/nav-4.png -------------------------------------------------------------------------------- /public/imgs/nav-img/nav-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/nav-img/nav-5.png -------------------------------------------------------------------------------- /public/imgs/nav-img/nav-6-1.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/nav-img/nav-6-1.webp -------------------------------------------------------------------------------- /public/imgs/nav-img/nav-6-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/nav-img/nav-6-2.png -------------------------------------------------------------------------------- /public/imgs/nav-img/nav-6-3.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/nav-img/nav-6-3.webp -------------------------------------------------------------------------------- /public/imgs/nav-img/nav-6-4.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/nav-img/nav-6-4.webp -------------------------------------------------------------------------------- /public/imgs/nav-img/nav-6-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/nav-img/nav-6-5.png -------------------------------------------------------------------------------- /public/imgs/nav-img/nav-6-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/nav-img/nav-6-6.png -------------------------------------------------------------------------------- /public/imgs/nav-img/nav-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/nav-img/nav-6.png -------------------------------------------------------------------------------- /public/imgs/pay/icon-ali.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/pay/icon-ali.png -------------------------------------------------------------------------------- /public/imgs/pay/icon-qrcode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/pay/icon-qrcode.png -------------------------------------------------------------------------------- /public/imgs/pay/icon-scan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/pay/icon-scan.png -------------------------------------------------------------------------------- /public/imgs/pay/icon-wechat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/pay/icon-wechat.png -------------------------------------------------------------------------------- /public/imgs/product/gallery-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/product/gallery-1.png -------------------------------------------------------------------------------- /public/imgs/product/gallery-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/product/gallery-2.png -------------------------------------------------------------------------------- /public/imgs/product/gallery-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/product/gallery-3.png -------------------------------------------------------------------------------- /public/imgs/product/gallery-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/product/gallery-4.png -------------------------------------------------------------------------------- /public/imgs/product/gallery-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/product/gallery-5.jpg -------------------------------------------------------------------------------- /public/imgs/product/gallery-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/product/gallery-6.jpg -------------------------------------------------------------------------------- /public/imgs/product/product-bg-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/product/product-bg-1.png -------------------------------------------------------------------------------- /public/imgs/product/product-bg-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/product/product-bg-2.png -------------------------------------------------------------------------------- /public/imgs/product/product-bg-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/product/product-bg-3.png -------------------------------------------------------------------------------- /public/imgs/product/video.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/product/video.mp4 -------------------------------------------------------------------------------- /public/imgs/slider/slide-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/slider/slide-1.jpg -------------------------------------------------------------------------------- /public/imgs/slider/slide-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/slider/slide-2.jpg -------------------------------------------------------------------------------- /public/imgs/slider/slide-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/slider/slide-3.jpg -------------------------------------------------------------------------------- /public/imgs/slider/slide-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/slider/slide-4.jpg -------------------------------------------------------------------------------- /public/imgs/slider/slide-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/public/imgs/slider/slide-5.jpg -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | <%= htmlWebpackPlugin.options.title %> 9 | 10 | 11 | 14 |
15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /public/mock/user/login.json: -------------------------------------------------------------------------------- 1 | { 2 | "status": 0, 3 | "data": { 4 | "id": 12, 5 | "username": "admin", 6 | "email": "admin@51purse.com", 7 | "phone": null, 8 | "role": 0, 9 | "createTime": 1479048325000, 10 | "updateTime": 1479048325000 11 | } 12 | } -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 41 | 42 | 48 | -------------------------------------------------------------------------------- /src/api/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/src/api/index.js -------------------------------------------------------------------------------- /src/assets/scss/base.scss: -------------------------------------------------------------------------------- 1 | @import './mixin.scss'; 2 | .container { 3 | width: 1226px; 4 | margin: 0 auto; 5 | } 6 | 7 | a { 8 | img { 9 | width: 100%; 10 | height: 100%; 11 | } 12 | } 13 | input { 14 | outline: none; 15 | box-sizing: border-box; 16 | font-size: 14px; 17 | } 18 | .fl { 19 | float: left; 20 | } 21 | .fr { 22 | float: right; 23 | } 24 | .clearfix::before, .clearfix::after { 25 | content: ''; 26 | display: table; 27 | } 28 | .clearfix::after { 29 | clear: both; 30 | } 31 | 32 | 33 | // 公共logo部分 34 | .header-logo { 35 | width: 55px; 36 | height: 55px; 37 | background-color: #f60; 38 | .logo-icon { 39 | display: inline-block; 40 | width: 110px; 41 | height: 55px; 42 | 43 | &::before { 44 | content: ""; 45 | @include bgImg(55px, 55px, "/imgs/mi-logo.png", 55px); 46 | transition: margin 0.2s; 47 | } 48 | 49 | &::after { 50 | content: ""; 51 | @include bgImg(55px, 55px, "/imgs/mi-home.png", 55px); 52 | } 53 | 54 | &:hover::before { 55 | margin-left: -55px; 56 | transition: margin 0.2s; 57 | } 58 | } 59 | } -------------------------------------------------------------------------------- /src/assets/scss/button.scss: -------------------------------------------------------------------------------- 1 | .btn { 2 | display: inline-block; 3 | width: 110px; 4 | line-height: 30px; 5 | text-align: center; 6 | background-color: $colorA; 7 | color: $colorG; 8 | border: none; 9 | cursor: pointer; 10 | } 11 | 12 | .btn-default { 13 | background-color: #b0b0b0; 14 | color: $colorG; 15 | } 16 | 17 | .btn-large { 18 | width: 202px; 19 | @include hl(50px, 50px); 20 | font-size: $fontH; 21 | } 22 | .btn-huge { 23 | width: 300px; 24 | @include hl(54px, 54px); 25 | font-size: $fontI; 26 | } 27 | 28 | .btn-group { 29 | @include wh(100%, auto); 30 | margin: 0 auto; 31 | .btn{ 32 | margin-right: 20px; 33 | &:last-child{ 34 | margin-right: 0; 35 | } 36 | } 37 | .cancel-btn { 38 | background-color: #b0b0b0; 39 | } 40 | } -------------------------------------------------------------------------------- /src/assets/scss/config.scss: -------------------------------------------------------------------------------- 1 | /* 2 | 样式规范表 3 | */ 4 | $min-width:1226px; //容器安全区域宽度 5 | 6 | // 常规字体大小设置 7 | $fontA: 80px; //产品站大标题 8 | $fontB: 38px; //产品站标题 9 | $fontC: 28px; //导航标题 10 | $fontD: 26px; //产品站副标题 11 | $fontE: 24px; 12 | $fontF: 22px; 13 | $fontG: 20px; //用在较为重要的文字、操作按钮 14 | $fontH: 18px; //用于大多数文字 15 | $fontI: 16px; //用于辅助性文字 16 | $fontJ: 14px; //用于一般文字 17 | $fontK: 12px; //系统默认大小 18 | 19 | // 常规配色设置 20 | $colorA: #FF6600 !default; //用于需要突出和强调的文字、按钮和icon 21 | $colorB: #333333 !default; //用于较为重要的文字信息、内页标题等 22 | $colorC: #666666 !default; //用于普通段落信息 引导词 23 | $colorD: #999999 !default; //用于辅助、次要的文字信息、普通按钮的描边 24 | $colorE: #cccccc !default; //用于特别弱的文字 25 | $colorF: #d7d7d7 !default; //用于列表分割线、标签秒变 26 | $colorG: #ffffff !default; //用于导航栏文字、按钮文字、白色背景 27 | $colorH: #e5e5e5 !default; //用于上下模块分割线 28 | $colorI: #000000 !default; //纯黑色背景,用于遮罩层 29 | $colorJ: #F5F5F5 !default; //弹框标题背景色 30 | $colorK: #FFFAF7 !default; //订单标题背景色 -------------------------------------------------------------------------------- /src/assets/scss/mixin.scss: -------------------------------------------------------------------------------- 1 | // flex布局复用 2 | @mixin flex($hov:space-between, $col:center ) { 3 | display: flex; 4 | justify-content: $hov; 5 | align-items: $col; 6 | } 7 | 8 | // 背景图片复用 9 | @mixin bgImg($w:0, $h:0, $src:'', $size: contain) { 10 | display: inline-block; 11 | width: $w; 12 | height: $h; 13 | background: url($src) no-repeat center; 14 | background-size: $size; 15 | } 16 | 17 | // 设定宽高 18 | @mixin wh($w:100%, $h:100%) { 19 | width: $w; 20 | height: $h; 21 | } 22 | 23 | // 设定定位 24 | @mixin position($pos:absolute, $top:0, $left:0) { 25 | position: $pos; 26 | top: $top; 27 | left: $left; 28 | } 29 | 30 | // 设定定位 31 | @mixin positionR($pos:absolute, $bottom:0, $right:0) { 32 | position: $pos; 33 | bottom: $bottom; 34 | right: $right; 35 | } 36 | 37 | // 设定图片定位 38 | @mixin positionImg($pos:absolute, $top:0, $right:0, $w:100%, $h:100%, $img:'') { 39 | position: $pos; 40 | top: $top; 41 | right: $right; 42 | width: $w; 43 | height: $h; 44 | background: url($img) no-repeat center; 45 | background-size: contain; 46 | } 47 | @mixin positionImgLeft($pos:absolute, $top:0, $left:0, $w:100%, $h:100%, $img:'') { 48 | position: $pos; 49 | top: $top; 50 | left: $left; 51 | width: $w; 52 | height: $h; 53 | background: url($img) no-repeat center; 54 | background-size: contain; 55 | } 56 | 57 | // 设定高和行高 58 | @mixin hl($height:100%, $line-height: 100%) { 59 | height: $height; 60 | line-height: $line-height; 61 | } 62 | 63 | // 设定高度和字体大小 64 | @mixin hf($h, $f) { 65 | height: $h; 66 | font-size: $f; 67 | } 68 | 69 | // 设定边框 70 | @mixin bd($big:1px, $line:solid, $color:#e5e5e5) { 71 | border: $big $line $color; 72 | } 73 | 74 | // 图片/高度 75 | @mixin bgh($img, $h:0) { 76 | background: url($img) no-repeat center; 77 | height: $h; 78 | } -------------------------------------------------------------------------------- /src/assets/scss/modal.scss: -------------------------------------------------------------------------------- 1 | .modal { 2 | z-index: 99; 3 | @include wh(100%, 100%); 4 | @include position(fixed); 5 | transition: all .5s; 6 | .mask { 7 | @include wh(100%, 100%); 8 | @include position(fixed); 9 | background-color: $colorI; 10 | opacity: .5; 11 | } 12 | 13 | &.slide-enter-active { 14 | top: 0; 15 | } 16 | &.slide-leave-active { 17 | top: -100%; 18 | } 19 | &.slide-enter { 20 | top: -100%; 21 | } 22 | 23 | .modal-dialog { 24 | @include position(absolute, 40%, 50%); 25 | @include wh(660px, auto); 26 | background-color: $colorG; 27 | transform: translate(-50%, -50%); 28 | 29 | .modal-header { 30 | @include hl(60px, 60px); 31 | background-color: $colorJ; 32 | font-size: $fontI; 33 | padding: 0 25px; 34 | 35 | .icon-close { 36 | @include positionImg(absolute, 23px, 25px, 14px, 14px, '/imgs/icon-close.png'); 37 | transition: all .5s; 38 | &:hover { 39 | transform: scale(1.5); 40 | } 41 | } 42 | } 43 | 44 | .modal-body { 45 | padding: 42px 40px 54px; 46 | font-size: $fontJ; 47 | } 48 | 49 | .modal-footer { 50 | @include hl(82px, 82px); 51 | text-align: center; 52 | background-color: $colorJ; 53 | } 54 | } 55 | } -------------------------------------------------------------------------------- /src/assets/scss/reset.scss: -------------------------------------------------------------------------------- 1 | body,div,p,h1,h2,h3,h4,h5,h6,ul,li,dl,dt,a,input,button,textarea,select{ 2 | margin: 0; 3 | padding: 0; 4 | outline: none; 5 | } 6 | html,body{ 7 | font-family:Helvetica Neue,Helvetica,Arial,Microsoft Yahei,Hiragino Sans GB,Heiti SC,WenQuanYi Micro Hei,sans-serif; 8 | color: #333333; 9 | background-color: #ffffff; 10 | min-width: 1226px; 11 | font-size: 12px; 12 | } 13 | a{ 14 | text-decoration: none; 15 | } 16 | ul,li{ 17 | list-style: none; 18 | } 19 | input{ 20 | font: normal; 21 | } 22 | input:focus,a:focus{ 23 | outline: none; 24 | } 25 | -------------------------------------------------------------------------------- /src/components/Loading.vue: -------------------------------------------------------------------------------- 1 | 6 | 11 | -------------------------------------------------------------------------------- /src/components/Modal.vue: -------------------------------------------------------------------------------- 1 | 25 | 26 | 51 | 52 | -------------------------------------------------------------------------------- /src/components/NavFooter.vue: -------------------------------------------------------------------------------- 1 | 22 | 23 | 24 | 29 | 30 | -------------------------------------------------------------------------------- /src/components/NavHeader.vue: -------------------------------------------------------------------------------- 1 | 100 | 101 | 102 | 230 | 231 | -------------------------------------------------------------------------------- /src/components/NoData.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 13 | 14 | -------------------------------------------------------------------------------- /src/components/OrderHeader.vue: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 35 | 36 | -------------------------------------------------------------------------------- /src/components/ProductParam.vue: -------------------------------------------------------------------------------- 1 | 17 | 18 | 43 | 44 | -------------------------------------------------------------------------------- /src/components/ScanPayCode.vue: -------------------------------------------------------------------------------- 1 | 17 | 28 | -------------------------------------------------------------------------------- /src/components/serviceBar.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 15 | 20 | 21 | -------------------------------------------------------------------------------- /src/env.js: -------------------------------------------------------------------------------- 1 | let baseURL; 2 | switch (process.env.NODE_ENV) { 3 | case 'development': 4 | baseURL = 'http://dev-mall-pre.springboot.cn/api'; 5 | break; 6 | case 'test': 7 | baseURL = 'http://test-mall-pre.springboot.cn/api'; 8 | break; 9 | case 'prod': 10 | baseURL = 'http://prod-mall-pre.springboot.cn/api'; 11 | break; 12 | default: 13 | baseURL = 'http://mall-pre.springboot.cn/api'; 14 | } 15 | 16 | export default { 17 | baseURL 18 | } -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import router from './router' 3 | import axios from 'axios' 4 | import VueAxios from 'vue-axios' 5 | import VueLazyLoad from 'vue-lazyload' 6 | import VueCookie from 'vue-cookie' 7 | import store from './store' 8 | import { Message } from 'element-ui' 9 | import 'element-ui/lib/theme-chalk/index.css'; 10 | import App from './App.vue' 11 | // import env from './env' 12 | 13 | // mock开关 14 | const mock = false; 15 | if (mock) { 16 | require('./mock/api'); 17 | } 18 | 19 | // 根据前端的跨域方式做调整 /a/b : /api/a/b => /a/b 20 | axios.defaults.baseURL = '/api'; 21 | axios.defaults.timeout = 8000; 22 | // 根据环境变量获取不同的请求地址 23 | // axios.defaults.baseURL = env.baseURL; 24 | 25 | // 接口错误拦截 26 | axios.interceptors.response.use(function(response) { 27 | let res = response.data; 28 | let path = location.hash; 29 | if (res.status === 0) { 30 | return res.data; 31 | } else if (res.status === 10) { 32 | if (path != '#/index') { 33 | window.location.href = '/#/login'; 34 | } 35 | return Promise.reject(res); 36 | } else { 37 | this.$message.warning(res.msg); 38 | return Promise.reject(res); 39 | } 40 | }, (error) => { 41 | let res = error.response; 42 | Message.error(res.data.message); 43 | return Promise.reject(error); 44 | }) 45 | Vue.use(VueAxios, axios); 46 | Vue.use(VueLazyLoad, { 47 | loading: '/imgs/loading-svg/loading-bars.svg' 48 | }); 49 | Vue.use(VueCookie); 50 | Vue.prototype.$message = Message; 51 | Vue.config.productionTip = false 52 | 53 | new Vue({ 54 | router, 55 | store, 56 | render: h => h(App), 57 | }).$mount('#app') 58 | 59 | -------------------------------------------------------------------------------- /src/mock/api.js: -------------------------------------------------------------------------------- 1 | import Mock from 'mockjs' 2 | Mock.mock('/api/user/login', { 3 | "status": 0, 4 | "data": { 5 | "id": 12, 6 | "username": "admin", 7 | "email": "admin@51purse.com", 8 | "phone": null, 9 | "role": 0, 10 | "createTime": 1479048325000, 11 | "updateTime": 1479048325000 12 | } 13 | }) -------------------------------------------------------------------------------- /src/pages/alipay.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 49 | -------------------------------------------------------------------------------- /src/pages/cart.vue: -------------------------------------------------------------------------------- 1 | 77 | 78 | 79 | 196 | 197 | -------------------------------------------------------------------------------- /src/pages/detail.vue: -------------------------------------------------------------------------------- 1 | 90 | 91 | 92 | 149 | 150 | -------------------------------------------------------------------------------- /src/pages/home.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 10 | 21 | 22 | -------------------------------------------------------------------------------- /src/pages/index.vue: -------------------------------------------------------------------------------- 1 | 185 | 186 | 187 | 348 | 349 | -------------------------------------------------------------------------------- /src/pages/login.vue: -------------------------------------------------------------------------------- 1 | 41 | 42 | 77 | 78 | -------------------------------------------------------------------------------- /src/pages/order.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 10 | 30 | 31 | 35 | -------------------------------------------------------------------------------- /src/pages/orderConfirm.vue: -------------------------------------------------------------------------------- 1 | 190 | 191 | 192 | 338 | 339 | -------------------------------------------------------------------------------- /src/pages/orderList.vue: -------------------------------------------------------------------------------- 1 | 64 | 65 | 66 | 125 | 126 | -------------------------------------------------------------------------------- /src/pages/orderPay.vue: -------------------------------------------------------------------------------- 1 | 84 | 85 | 86 | 188 | 189 | -------------------------------------------------------------------------------- /src/pages/product.vue: -------------------------------------------------------------------------------- 1 | 73 | 74 | 75 | 124 | 125 | -------------------------------------------------------------------------------- /src/pages/register.vue: -------------------------------------------------------------------------------- 1 | 31 | 32 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /src/router.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Router from 'vue-router' 3 | import Home from './pages/home' 4 | import Index from './pages/index' 5 | 6 | 7 | Vue.use(Router); 8 | 9 | export default new Router({ 10 | routes: [ 11 | { 12 | path: '/', 13 | name: 'home', 14 | component: Home, 15 | redirect: '/index', 16 | children: [ 17 | { 18 | path: '/index', 19 | name: 'index', 20 | component: Index, 21 | }, 22 | { 23 | path: '/product/:id', 24 | name: 'product', 25 | component: () => import('./pages/product.vue') 26 | }, 27 | { 28 | path: '/detail/:id', 29 | name: 'detail', 30 | component: () => import('./pages/detail.vue') 31 | } 32 | ] 33 | }, 34 | { 35 | path: '/cart', 36 | name: 'cart', 37 | component: () => import('./pages/cart.vue') 38 | }, 39 | { 40 | path: '/login', 41 | name: 'login', 42 | component: () => import('./pages/login.vue') 43 | }, 44 | { 45 | path: '/register', 46 | name: 'register', 47 | component: () => import('./pages/register.vue'), 48 | }, 49 | { 50 | path: '/order', 51 | name: 'order', 52 | component: () => import('./pages/order.vue'), 53 | children: [ 54 | { 55 | path: 'list', 56 | name: 'order-list', 57 | component: () => import('./pages/orderList.vue') 58 | }, 59 | { 60 | path: 'confirm', 61 | name: 'order-confirm', 62 | component: () => import('./pages/orderConfirm.vue') 63 | }, 64 | { 65 | path: 'pay', 66 | name: 'order-pay', 67 | component: () => import('./pages/orderPay.vue') 68 | }, 69 | { 70 | path: 'alipay', 71 | name: 'alipay', 72 | component: () => import('./pages/alipay.vue') 73 | } 74 | ] 75 | } 76 | ] 77 | }) 78 | -------------------------------------------------------------------------------- /src/storage/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Storage封装 3 | */ 4 | const STORAGE_KEY = 'mall'; 5 | export default{ 6 | // 存储值 7 | setItem(key, value, module_name) { 8 | if (module_name) { 9 | let val = this.getItem(module_name); 10 | val[key] = value; 11 | this.setItem(module_name, val); 12 | } else { 13 | let val = this.getStorage(); 14 | val[key] = value; 15 | window.sessionStorage.setItem(STORAGE_KEY, JSON.stringify(val)) 16 | } 17 | }, 18 | // 获取某一个模块下面的属性: user下面的userName 19 | getItem(key, module_name) { 20 | if (module_name){ 21 | let val = this.getItem(module_name); 22 | if (val) return val[key]; 23 | } 24 | return this.getStorage()[key]; 25 | }, 26 | getStorage() { 27 | return JSON.parse(window.sessionStorage.getItem(STORAGE_KEY) || '{}') 28 | }, 29 | clear(key, module_name) { 30 | let val = this.getStorage(); 31 | if (module_name) { 32 | if (!val[module_name]) return; 33 | delete val[module_name][key]; 34 | } else { 35 | delete val[key] 36 | } 37 | window.sessionStorage.setItem(STORAGE_KEY, JSON.stringify(val)) 38 | } 39 | } -------------------------------------------------------------------------------- /src/store/action.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 商城Vuex-actions 3 | */ 4 | export default { 5 | saveUserName(context, username) { 6 | context.commit('saveUserName', username); 7 | }, 8 | saveCartCount(context, count) { 9 | context.commit('saveCartCount', count); 10 | }, 11 | } -------------------------------------------------------------------------------- /src/store/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Vuex from 'vuex' 3 | import mutations from './mutations' 4 | import actions from './action' 5 | Vue.use(Vuex); 6 | 7 | const state = { 8 | username: '', // 登录用户名 9 | cartCount: 0, // 购物车商品数量 10 | } 11 | export default new Vuex.Store({ 12 | state, 13 | mutations, 14 | actions 15 | }) -------------------------------------------------------------------------------- /src/store/mutations.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 商城Vuex-mutations 3 | */ 4 | export default { 5 | saveUserName(state, username) { 6 | state.username = username; 7 | }, 8 | saveCartCount(state, count) { 9 | state.cartCount = count; 10 | }, 11 | } -------------------------------------------------------------------------------- /src/util/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/it-beige/miMall/5d2ff3182dfcac7f2a223e94be45f39166da0f2a/src/util/index.js -------------------------------------------------------------------------------- /vue.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | devServer: { 3 | host: 'localhost', 4 | port: 8080, 5 | proxy: { 6 | '/api': { 7 | target: 'http://mall-pre.springboot.cn', 8 | changeOrigin: true, 9 | pathRewrite: { 10 | '/api': '' 11 | } 12 | } 13 | } 14 | }, 15 | productionSourceMap: false 16 | } --------------------------------------------------------------------------------