From fadf85592d5e5ef0cae9b74026bdf21c520bc93e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E5=8D=8E=E7=84=9C?= Date: Tue, 13 Oct 2020 19:48:09 +0800 Subject: [PATCH] supmall --- .editorconfig | 9 + package-lock.json | 215 ++++++---- package.json | 6 +- public/favicon.ico | Bin 4286 -> 0 bytes public/index.html | 2 +- public/logo.png | Bin 0 -> 2782 bytes src/App.vue | 20 +- src/assets/css/base.css | 66 ++++ src/assets/css/normalize.css | 341 ++++++++++++++++ src/assets/img/cart/tick.svg | 1 + src/assets/img/common/back.svg | 1 + src/assets/img/common/collect.svg | 1 + src/assets/img/common/placeholder.png | Bin 0 -> 5121 bytes src/assets/img/common/top.png | Bin 0 -> 2661 bytes src/assets/img/detail/detail_bottom.png | Bin 0 -> 8292 bytes src/assets/img/home/recommend_bg.jpg | Bin 0 -> 57946 bytes src/assets/img/tabbar/cart.svg | 18 + src/assets/img/tabbar/cart_active.svg | 18 + src/assets/img/tabbar/category.svg | 21 + src/assets/img/tabbar/category_active.svg | 21 + src/assets/img/tabbar/home.svg | 19 + src/assets/img/tabbar/home_active.svg | 19 + src/assets/img/tabbar/profile.svg | 19 + src/assets/img/tabbar/profile_active.svg | 19 + src/assets/logo.png | Bin 6849 -> 0 bytes src/common/const.js | 0 src/common/mixin.js | 38 ++ src/common/utils.js | 37 ++ src/components/HelloWorld.vue | 57 --- src/components/common/Scroll/Scroll.vue | 65 +++ src/components/common/navbar/NavBar.vue | 29 ++ src/components/common/swiper/Swiper.vue | 371 ++++++++++++++++++ src/components/common/swiper/SwiperItem.vue | 22 ++ src/components/common/swiper/index.js | 6 + src/components/common/tabbar/TabBar.vue | 24 ++ src/components/common/tabbar/TabBarItem.vue | 53 +++ src/components/content/backTop/backTop.vue | 23 ++ src/components/content/goods/GoodsList.vue | 32 ++ .../content/goods/GoodsListItem.vue | 85 ++++ .../content/mainTabbar/MainTabBar.vue | 42 ++ .../content/tabControl/TabControl.vue | 55 +++ src/main.js | 3 + src/network/detail.js | 50 +++ src/network/home.js | 18 + src/network/request.js | 26 ++ src/router/index.js | 41 ++ src/views/cart/Cart.vue | 15 + src/views/category/Category.vue | 152 +++++++ src/views/detail/Detail.vue | 168 ++++++++ .../detail/childComps/DetailBaseInfo.vue | 103 +++++ .../detail/childComps/DetailBottomBar.vue | 91 +++++ .../detail/childComps/DetailCommentInfo.vue | 118 ++++++ .../detail/childComps/DetailGoodsInfo.vue | 90 +++++ src/views/detail/childComps/DetailNewBar.vue | 56 +++ .../detail/childComps/DetailParamInfo.vue | 68 ++++ .../detail/childComps/DetailShopInfo.vue | 157 ++++++++ src/views/detail/childComps/DetailSwiper.vue | 35 ++ src/views/home/Home.vue | 173 ++++++++ .../home/childComps/HomeRecommendView.vue | 42 ++ src/views/home/childComps/HomeSwiper.vue | 45 +++ src/views/home/childComps/HomefeatureView.vue | 20 + src/views/profile/Profile.vue | 15 + vue.config.js | 13 + 63 files changed, 3098 insertions(+), 156 deletions(-) create mode 100644 .editorconfig delete mode 100644 public/favicon.ico create mode 100644 public/logo.png create mode 100644 src/assets/css/base.css create mode 100644 src/assets/css/normalize.css create mode 100644 src/assets/img/cart/tick.svg create mode 100644 src/assets/img/common/back.svg create mode 100644 src/assets/img/common/collect.svg create mode 100644 src/assets/img/common/placeholder.png create mode 100644 src/assets/img/common/top.png create mode 100644 src/assets/img/detail/detail_bottom.png create mode 100644 src/assets/img/home/recommend_bg.jpg create mode 100644 src/assets/img/tabbar/cart.svg create mode 100644 src/assets/img/tabbar/cart_active.svg create mode 100644 src/assets/img/tabbar/category.svg create mode 100644 src/assets/img/tabbar/category_active.svg create mode 100644 src/assets/img/tabbar/home.svg create mode 100644 src/assets/img/tabbar/home_active.svg create mode 100644 src/assets/img/tabbar/profile.svg create mode 100644 src/assets/img/tabbar/profile_active.svg delete mode 100644 src/assets/logo.png create mode 100644 src/common/const.js create mode 100644 src/common/mixin.js create mode 100644 src/common/utils.js delete mode 100644 src/components/HelloWorld.vue create mode 100644 src/components/common/Scroll/Scroll.vue create mode 100644 src/components/common/navbar/NavBar.vue create mode 100644 src/components/common/swiper/Swiper.vue create mode 100644 src/components/common/swiper/SwiperItem.vue create mode 100644 src/components/common/swiper/index.js create mode 100644 src/components/common/tabbar/TabBar.vue create mode 100644 src/components/common/tabbar/TabBarItem.vue create mode 100644 src/components/content/backTop/backTop.vue create mode 100644 src/components/content/goods/GoodsList.vue create mode 100644 src/components/content/goods/GoodsListItem.vue create mode 100644 src/components/content/mainTabbar/MainTabBar.vue create mode 100644 src/components/content/tabControl/TabControl.vue create mode 100644 src/network/detail.js create mode 100644 src/network/home.js create mode 100644 src/network/request.js create mode 100644 src/router/index.js create mode 100644 src/views/cart/Cart.vue create mode 100644 src/views/category/Category.vue create mode 100644 src/views/detail/Detail.vue create mode 100644 src/views/detail/childComps/DetailBaseInfo.vue create mode 100644 src/views/detail/childComps/DetailBottomBar.vue create mode 100644 src/views/detail/childComps/DetailCommentInfo.vue create mode 100644 src/views/detail/childComps/DetailGoodsInfo.vue create mode 100644 src/views/detail/childComps/DetailNewBar.vue create mode 100644 src/views/detail/childComps/DetailParamInfo.vue create mode 100644 src/views/detail/childComps/DetailShopInfo.vue create mode 100644 src/views/detail/childComps/DetailSwiper.vue create mode 100644 src/views/home/Home.vue create mode 100644 src/views/home/childComps/HomeRecommendView.vue create mode 100644 src/views/home/childComps/HomeSwiper.vue create mode 100644 src/views/home/childComps/HomefeatureView.vue create mode 100644 src/views/profile/Profile.vue create mode 100644 vue.config.js diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..9d08a1a8 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,9 @@ +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true diff --git a/package-lock.json b/package-lock.json index 9648a22b..eaa5d09b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1687,6 +1687,17 @@ "integrity": "sha1-4a1IbmxUUBY0xsOXxcEh2qODYHw=", "dev": true }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.2.1.tgz", + "integrity": "sha1-kK51xCTQCNJiTFvynq0xd+v881k=", + "dev": true, + "optional": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, "cacache": { "version": "13.0.1", "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-13.0.1.tgz?cache=0&sync_timestamp=1594428010987&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-13.0.1.tgz", @@ -1713,6 +1724,34 @@ "unique-filename": "^1.1.1" } }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz", + "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", + "dev": true, + "optional": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, + "optional": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true, + "optional": true + }, "find-cache-dir": { "version": "3.3.1", "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-3.3.1.tgz", @@ -1734,6 +1773,25 @@ "path-exists": "^4.0.0" } }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1596294337050&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true, + "optional": true + }, + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-2.0.0.tgz", + "integrity": "sha1-5MrOW4FtQloWa18JfhDNErNgZLA=", + "dev": true, + "optional": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, "locate-path": { "version": "5.0.0", "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz", @@ -1798,6 +1856,16 @@ "minipass": "^3.1.1" } }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1598611730985&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "optional": true, + "requires": { + "has-flag": "^4.0.0" + } + }, "terser-webpack-plugin": { "version": "2.3.8", "resolved": "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-2.3.8.tgz?cache=0&sync_timestamp=1600532057758&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-2.3.8.tgz", @@ -1814,6 +1882,18 @@ "terser": "^4.6.12", "webpack-sources": "^1.4.3" } + }, + "vue-loader-v16": { + "version": "npm:vue-loader@16.0.0-beta.8", + "resolved": "https://registry.npm.taobao.org/vue-loader/download/vue-loader-16.0.0-beta.8.tgz?cache=0&sync_timestamp=1600850425972&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-loader%2Fdownload%2Fvue-loader-16.0.0-beta.8.tgz", + "integrity": "sha1-H1I9n+qOjG5PW7mf12gWWvWEWHk=", + "dev": true, + "optional": true, + "requires": { + "chalk": "^4.1.0", + "hash-sum": "^2.0.0", + "loader-utils": "^2.0.0" + } } } }, @@ -2397,6 +2477,15 @@ "integrity": "sha1-4eguTz6Zniz9YbFhKA0WoRH4ZCg=", "dev": true }, + "axios": { + "version": "0.18.0", + "resolved": "https://registry.npm.taobao.org/axios/download/axios-0.18.0.tgz?cache=0&sync_timestamp=1597979584536&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faxios%2Fdownload%2Faxios-0.18.0.tgz", + "integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=", + "requires": { + "follow-redirects": "^1.3.0", + "is-buffer": "^1.1.5" + } + }, "babel-loader": { "version": "8.1.0", "resolved": "https://registry.npm.taobao.org/babel-loader/download/babel-loader-8.1.0.tgz", @@ -2419,6 +2508,27 @@ "object.assign": "^4.1.0" } }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-2.6.11.tgz?cache=0&sync_timestamp=1586450527243&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.11.tgz", + "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=" + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.11.1.tgz", + "integrity": "sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk=" + } + } + }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz", @@ -2501,6 +2611,14 @@ "tweetnacl": "^0.14.3" } }, + "better-scroll": { + "version": "1.13.2", + "resolved": "https://registry.npm.taobao.org/better-scroll/download/better-scroll-1.13.2.tgz", + "integrity": "sha1-MebgiM8tI85I5S+tbMWRNP/rL1Y=", + "requires": { + "babel-runtime": "^6.0.0" + } + }, "bfj": { "version": "6.1.2", "resolved": "https://registry.npm.taobao.org/bfj/download/bfj-6.1.2.tgz", @@ -3394,6 +3512,12 @@ "integrity": "sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A=", "dev": true }, + "components": { + "version": "0.1.0", + "resolved": "https://registry.npm.taobao.org/components/download/components-0.1.0.tgz", + "integrity": "sha1-IFfAjpx78mYv7slcSeX/Kpq4XtU=", + "dev": true + }, "compressible": { "version": "2.0.18", "resolved": "https://registry.npm.taobao.org/compressible/download/compressible-2.0.18.tgz", @@ -5095,8 +5219,7 @@ "follow-redirects": { "version": "1.13.0", "resolved": "https://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.13.0.tgz?cache=0&sync_timestamp=1597057988030&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.13.0.tgz", - "integrity": "sha1-tC6Nk6Kn7qXtiGM2dtZZe8jjhNs=", - "dev": true + "integrity": "sha1-tC6Nk6Kn7qXtiGM2dtZZe8jjhNs=" }, "for-in": { "version": "1.0.2", @@ -5942,8 +6065,7 @@ "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz", - "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=", - "dev": true + "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=" }, "is-callable": { "version": "1.2.2", @@ -10279,87 +10401,10 @@ } } }, - "vue-loader-v16": { - "version": "npm:vue-loader@16.0.0-beta.8", - "resolved": "https://registry.npm.taobao.org/vue-loader/download/vue-loader-16.0.0-beta.8.tgz?cache=0&sync_timestamp=1600850425972&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-loader%2Fdownload%2Fvue-loader-16.0.0-beta.8.tgz", - "integrity": "sha1-H1I9n+qOjG5PW7mf12gWWvWEWHk=", - "dev": true, - "optional": true, - "requires": { - "chalk": "^4.1.0", - "hash-sum": "^2.0.0", - "loader-utils": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.2.1.tgz", - "integrity": "sha1-kK51xCTQCNJiTFvynq0xd+v881k=", - "dev": true, - "optional": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz", - "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", - "dev": true, - "optional": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dev": true, - "optional": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", - "dev": true, - "optional": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1596294337050&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "dev": true, - "optional": true - }, - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-2.0.0.tgz", - "integrity": "sha1-5MrOW4FtQloWa18JfhDNErNgZLA=", - "dev": true, - "optional": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1598611730985&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "dev": true, - "optional": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } + "vue-router": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/vue-router/download/vue-router-3.0.2.tgz?cache=0&sync_timestamp=1601637530869&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-router%2Fdownload%2Fvue-router-3.0.2.tgz", + "integrity": "sha1-3txnr+bE4rwlaCyLHCqMDXx+Vr4=" }, "vue-style-loader": { "version": "4.1.2", diff --git a/package.json b/package.json index a5926821..4a20d469 100644 --- a/package.json +++ b/package.json @@ -7,12 +7,16 @@ "build": "vue-cli-service build" }, "dependencies": { + "axios": "^0.18.0", + "better-scroll": "^1.13.2", "core-js": "^3.6.5", - "vue": "^2.6.11" + "vue": "^2.6.11", + "vue-router": "^3.0.2" }, "devDependencies": { "@vue/cli-plugin-babel": "^4.5.0", "@vue/cli-service": "^4.5.0", + "components": "^0.1.0", "vue-template-compiler": "^2.6.11" } } diff --git a/public/favicon.ico b/public/favicon.ico deleted file mode 100644 index df36fcfb72584e00488330b560ebcf34a41c64c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4286 zcmds*O-Phc6o&64GDVCEQHxsW(p4>LW*W<827=Unuo8sGpRux(DN@jWP-e29Wl%wj zY84_aq9}^Am9-cWTD5GGEo#+5Fi2wX_P*bo+xO!)p*7B;iKlbFd(U~_d(U?#hLj56 zPhFkj-|A6~Qk#@g^#D^U0XT1cu=c-vu1+SElX9NR;kzAUV(q0|dl0|%h|dI$%VICy zJnu2^L*Te9JrJMGh%-P79CL0}dq92RGU6gI{v2~|)p}sG5x0U*z<8U;Ij*hB9z?ei z@g6Xq-pDoPl=MANPiR7%172VA%r)kevtV-_5H*QJKFmd;8yA$98zCxBZYXTNZ#QFk2(TX0;Y2dt&WitL#$96|gJY=3xX zpCoi|YNzgO3R`f@IiEeSmKrPSf#h#Qd<$%Ej^RIeeYfsxhPMOG`S`Pz8q``=511zm zAm)MX5AV^5xIWPyEu7u>qYs?pn$I4nL9J!=K=SGlKLXpE<5x+2cDTXq?brj?n6sp= zphe9;_JHf40^9~}9i08r{XM$7HB!`{Ys~TK0kx<}ZQng`UPvH*11|q7&l9?@FQz;8 zx!=3<4seY*%=OlbCbcae?5^V_}*K>Uo6ZWV8mTyE^B=DKy7-sdLYkR5Z?paTgK-zyIkKjIcpyO z{+uIt&YSa_$QnN_@t~L014dyK(fOOo+W*MIxbA6Ndgr=Y!f#Tokqv}n<7-9qfHkc3 z=>a|HWqcX8fzQCT=dqVbogRq!-S>H%yA{1w#2Pn;=e>JiEj7Hl;zdt-2f+j2%DeVD zsW0Ab)ZK@0cIW%W7z}H{&~yGhn~D;aiP4=;m-HCo`BEI+Kd6 z={Xwx{TKxD#iCLfl2vQGDitKtN>z|-AdCN|$jTFDg0m3O`WLD4_s#$S diff --git a/public/index.html b/public/index.html index 41235286..8f58b91c 100644 --- a/public/index.html +++ b/public/index.html @@ -4,7 +4,7 @@ - + <%= htmlWebpackPlugin.options.title %> diff --git a/public/logo.png b/public/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..65158d89384fd44ff32870e4d2ef341e9609b0b7 GIT binary patch literal 2782 zcmbtWdpMM7A2yUtXdM!1%QWOX=L0iLBWC0@a+o5l8Z$35A9L85VVn=GL=MFg66H`> zm6D2R?Is&GIyj46XIeQ#*ooCQ+O+$}ckMsld%f@bJkRg?-S=}p_w#$M>q&BPKCHZ5 zd%KK`jIzBQ*-hFaHok50(!YnSYFKY(mHj@bP zz)}%Zz74=)+l31N_i$$#BRr6SXF^B^!Iq%}DFFu%(ZQjdAg+)QN`!pmB}n@lVK@Z* zF+~(eg#0DSlj;Jt;RygR7KVc|kZ2Ux3=czM@hEeQDHw%7;@}7j9Epb_(FEy>L4ZF! z5b10Jra!@rZ2M_0>4*qni9~z?94;1%VPZ6lCkT*Y@pw1_1xKNv(hR6Dj4PstLb*cS zO$IU`WC+-N5u3*aZ!psRc)=nfM5^?!C2;su>StoE@RLze%iy7OJ{$={z&V_ab$!eh zirj#|W&F=y{sy z!{u7kI2tA@!nVzto{c?N_}eq#<#XeMlMlC9&OD72{uZ%Pmo01;x6iG$uMDfGm*?Iu z(}CSVxFKg7r}UvF6s@j3E4?$CO$`3=L}cTuD3ZPM&w`Y#h_U!`kW2J- zm?QGh*lZ>$r4KQ3PF`NC^+Uo7hgoj<&p8vgN3JG8RoXL>=4D8+A4Q&$EK=4~5S;Z9 zCtWg9Z86%}cOf|u#{NCa?xZ2veBN~@(Q>PlVnz-@>s z{r$ifCMTKW`Px?b0eIz0_YK&^G)acQbZqYT<0l?n6`X?vZ{ChyqQi-cwEr?D#RD8XuB0SU07M@J!t+da+d#d;|@vk?y~K&ZNNN!NRg z1aB8O$@v{2r}wIt_C!gRGfNSqkisizQ>AAoh9#$x&wA216u&|TX3noV1CC?f@e}RE zKm6L;#>382@SY0b7Hq>%i zO81{Ubo98`lc?62qtu!HLMDwKNXrTnDz^sv%KU3(UXVq}H(_h_(L5u%){EGK z>9}KHa~HO3RzSMfT6S}b;`(sGqyw?DsS2dWGF|m~bk3EX{L7z*3n~W@(+{08auB(e zE+ly0(1~%Q678J=n4`R2lQCAmee%+B%qr?uoiEk8rVw;n{!X*yNX&S?3p^|~{i%Ve zwpEoaKBW7Dywg`jR&ELNeZqkv5a-)>{g<-3&!%iC%(JAC;J+1aZOZ_S9}QPlSh&0} zs(u$F0Bef(b~!&oX$nTUPLtQ%o9X6yrk-`R-JtN9`1vV~7yN^(aYcTA4%}BP;4ljG zm7`mXo}WozD40#+oQJ`;y8qbcrP4P*GH>p%=*hn7UHzcvf+FA*^J}yZJ?cF_KcFRc zW@z7c3C5A%jP2@Q#N?&t+P7x?uISzLP}1M4GGq4=HyIkE`Fgph%!YUHS}?oqVC6tX zA*i~bt(9f@Zop;=@OTgNFR6PMf_ZLI-eA|WBY3e~E9Tu6%S*v-Vanww32}8q=bqs- zMtxbnwu~b8c3l-L3|#RpQETuoTd_CT<)k4|^O?&0681Q%a6b$5%kW)zPsJHWr<8sD z-h16anXl-D-3T3)%i&}LPbUh76m;8zj|Q4}c~40y*Kba5>$taf&LKwDB!oJ)bO5(U``C}qKI}|t zR7=}kLLX6jp0n%_l}?(gRLPZ9u}k%6!hh)2w@Ye%Z#rmlx8E&Z`=pC+Ut-#uUDXBM zx@ z^TH{c@`hk`gh$cKs}8P&_-Yj$*}HQuRH>=I?7V$_kJb1Q&7Se8kOP>SVO)JB^l7R4 zyTu2l9e=t-MCfvzXJ>ogZ1?W+&<|bCe#+!48PC&*hWl@vxbwt7)3~ahhFLk`8;f*)bBQJh^O!p=7+U=D-O+o^y2rvZ zpHP%Em(?tFP1p+$ucB-wKeQYY6Ln|HW3XkToKaiZQOE0xO&88<+my!lwuTAw`iU!uOPwg3PC literal 0 HcmV?d00001 diff --git a/src/App.vue b/src/App.vue index 55df3153..71e08a64 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,28 +1,24 @@ diff --git a/src/assets/css/base.css b/src/assets/css/base.css new file mode 100644 index 00000000..3c31bd72 --- /dev/null +++ b/src/assets/css/base.css @@ -0,0 +1,66 @@ +@import "./normalize.css"; + +:root { + --color-text: #666; + --color-high-text: #ff5777; + --color-tint: #ff8198; + --color-background: #fff; + --font-size: 14px; + --line-height: 1.5; +} + +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: "Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif; + user-select: none; /* 禁止用户鼠标在页面上选中文字/图片等 */ + -webkit-tap-highlight-color: transparent; /* webkit是苹果浏览器引擎,tap点击,highlight背景高亮,color颜色,颜色用数值调节 */ + background: var(--color-background); + color: var(--color-text); + width: 100vw; +} + +a { + color: var(--color-text); + text-decoration: none; +} + + +.clear-fix::after { + clear: both; + content: ''; + display: block; + width: 0; + height: 0; + visibility: hidden; +} + +.clear-fix { + zoom: 1; +} + +.arrow-right { + border-top: 1px solid #999; + border-left: 1px solid #999; + width: 9px; + height: 9px; + background-color: transparent; + transform: rotate(135deg); + display: inline-block; + margin-left: .1rem; +} + +.left { + float: left; +} + +.right { + float: right; +} + diff --git a/src/assets/css/normalize.css b/src/assets/css/normalize.css new file mode 100644 index 00000000..47b010e4 --- /dev/null +++ b/src/assets/css/normalize.css @@ -0,0 +1,341 @@ +/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */ + +/* Document + ========================================================================== */ + +/** + * 1. Correct the line height in all browsers. + * 2. Prevent adjustments of font size after orientation changes in iOS. + */ + +html { + line-height: 1.15; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/* Sections + ========================================================================== */ + +/** + * Remove the margin in all browsers. + */ + +body { + margin: 0; +} + +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/* Grouping content + ========================================================================== */ + +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ + +hr { + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ + overflow: visible; /* 2 */ +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +pre { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Remove the gray background on active links in IE 10. + */ + +a { + background-color: transparent; +} + +/** + * 1. Remove the bottom border in Chrome 57- + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ + +abbr[title] { + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + text-decoration: underline dotted; /* 2 */ +} + +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ + +b, +strong { + font-weight: bolder; +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +code, +kbd, +samp { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/** + * Add the correct font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove the border on images inside links in IE 10. + */ + +img { + border-style: none; +} + +/* Forms + ========================================================================== */ + +/** + * 1. Change the font styles in all browsers. + * 2. Remove the margin in Firefox and Safari. + */ + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 1 */ + line-height: 1.15; /* 1 */ + margin: 0; /* 2 */ +} + +/** + * Show the overflow in IE. + * 1. Show the overflow in Edge. + */ + +button, +input { /* 1 */ + overflow: visible; +} + +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ + +button, +select { /* 1 */ + text-transform: none; +} + +/** + * Correct the inability to style clickable types in iOS and Safari. + */ + +button, +[type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; +} + +/** + * Remove the inner border and padding in Firefox. + */ + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; +} + +/** + * Restore the focus styles unset by the previous rule. + */ + +button:-moz-focusring, +[type="button"]:-moz-focusring, +[type="reset"]:-moz-focusring, +[type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; +} + +/** + * Correct the padding in Firefox. + */ + +fieldset { + padding: 0.35em 0.75em 0.625em; +} + +/** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ + +legend { + box-sizing: border-box; /* 1 */ + color: inherit; /* 2 */ + display: table; /* 1 */ + max-width: 100%; /* 1 */ + padding: 0; /* 3 */ + white-space: normal; /* 1 */ +} + +/** + * Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ + +progress { + vertical-align: baseline; +} + +/** + * Remove the default vertical scrollbar in IE 10+. + */ + +textarea { + overflow: auto; +} + +/** + * 1. Add the correct box sizing in IE 10. + * 2. Remove the padding in IE 10. + */ + +[type="checkbox"], +[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ + +[type="search"] { + -webkit-appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ +} + +/** + * Remove the inner padding in Chrome and Safari on macOS. + */ + +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ + +::-webkit-file-upload-button { + -webkit-appearance: button; /* 1 */ + font: inherit; /* 2 */ +} + +/* Interactive + ========================================================================== */ + +/* + * Add the correct display in Edge, IE 10+, and Firefox. + */ + +details { + display: block; +} + +/* + * Add the correct display in all browsers. + */ + +summary { + display: list-item; +} + +/* Misc + ========================================================================== */ + +/** + * Add the correct display in IE 10+. + */ + +template { + display: none; +} + +/** + * Add the correct display in IE 10. + */ + +[hidden] { + display: none; +} diff --git a/src/assets/img/cart/tick.svg b/src/assets/img/cart/tick.svg new file mode 100644 index 00000000..f8812a29 --- /dev/null +++ b/src/assets/img/cart/tick.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/img/common/back.svg b/src/assets/img/common/back.svg new file mode 100644 index 00000000..b0962864 --- /dev/null +++ b/src/assets/img/common/back.svg @@ -0,0 +1 @@ + diff --git a/src/assets/img/common/collect.svg b/src/assets/img/common/collect.svg new file mode 100644 index 00000000..7677c4fe --- /dev/null +++ b/src/assets/img/common/collect.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/img/common/placeholder.png b/src/assets/img/common/placeholder.png new file mode 100644 index 0000000000000000000000000000000000000000..6df54a7c6e2da2ac93b911ca488272dc2f998db9 GIT binary patch literal 5121 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 literal 0 HcmV?d00001 diff --git a/src/assets/img/common/top.png b/src/assets/img/common/top.png new file mode 100644 index 0000000000000000000000000000000000000000..c75bd734a98117559d266c6065200024bd7ba2c3 GIT binary patch literal 2661 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 aKmcp_w$e#{mje7?AS|&qXKFE?H~$ChkiJC# literal 0 HcmV?d00001 diff --git a/src/assets/img/detail/detail_bottom.png b/src/assets/img/detail/detail_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..a73cf6e42cef3163a282cc05e4b415c5a705228f GIT binary patch literal 8292 zcmYj%byQSg_wK+D0|?B}4Gt+FB{4L}5K0Kb&?!hr4J9HS(jZ7lmk18sLl2;Yq$u6p zol@TUe!uVDb=Uc0pLNbz?_T@t_j&f&&puJwTB@YP48#Bcfb^Lf{3X`%0{}SuAOh?e z`c$VLYY1MctHJ^Q{&VED6(<1zZ1m6IihA#6_OpGGnU$xH0$+G7`r760C57REaBzw8 z+VQ%ea8P7k0gDh%u5@L3Y?+RJ$LcPi5*m#M`lJES`A+(Gg#ZK>SDb#P00-4@B)oo_ z+HbSrGH*6=sp>s4H+`uv+%zJYBE4O-Gx-7`d;Vu^ya2VQ^=iQ}C^*{WiWNft(k6!H zF+-A8aV4%+9NFEsva-FJA2GD9jL%y?6e&pE+JP`6H2ft5Ie27So;%b_k?R9#hje61 z%ls7T&?y7>T4=>?08fZ4o0J5<2tR{48oB&zV&(?UQHUZGv}nKe3c@F$(V$HXM7{YY zykR|%`nV-f=$O1TT(I@1%iYmg>1^>|lod`v$3H@h@ho!r18pj~SldIOgoH#O>y$b? zCsV?8VP$x8b11XX5S|0Ph_3KI4BFkXxE;^ny7z~Y~HZ;usyJm;=%Zf>>?VSA?s z$3^(7!C9X4$mr|pp6dDg`!^KdT#qA7k)8O3W7}uHpzg6K7T_R(luc12zk|I!%$1D+ zRbJkvh#1-TgpteeK|g-mv3~vfbzsLq^KQm9ek*dhD^%}X8ncahLp*G>gpcsofV1#D zdgQZry<6$Zq|uNQc>h;y+DUx)n{^PmXVQdO#jg2rQts`Vg)Hvm_&9SV>arBY2bDzl ztH4=+_o*6O|Eg{JKW%gZE;u)Hd|eQ7x$?v?@%NG4dScW@sY$5Y^ZA?{or z>NaAaHC)%(|I9mS`shDs%;N$LR9~ETW0UW9)&`9mYi~~YX0j9>9!`zs2mMLHRbHw~l-{@WB7+v|j$l%V2i5@%B% zo4iepw68oUiri}TIc*n!@)a<$8dh0$o|yrp&EPDNW2O*c&+UiayXu3v^73k2Np`q_ zi18@QPmf_qyA!oe6}QURv1><>beUS|kxEs|AWrqvHPgwv2S-#wk8?-ltL%Rj2zQgV z{Kx$DyT`F)IMPEP#*5SVjXv#eUz@kpXSy_hD{5`MrGoeneIB2gd4Gchs=5tRB&Piw z7P0U+tU8x(*1bl$E@D@O912%y~`3z3(;05-;Hy35}|D4bhg>EOc1}yuV!r+ z#H|wO!ho}+nLS1)RfW=u4v1jJ?ldiHbkJ%sYc*6Sp=UHW_!*$*v(+S$X|swZ3MOJb zSmlV$`+Q!ihQ4d!8LnvmiS+kxb8vFH4XeLs-NJD#`Sz`;rM-ROqD0tQoIr8(5c{+XCq;DH_*I#$M6S`gCETem-gx|Zz7P0Tnd zuVrJC%ZP=jt!GFg8aOjHw(`KJJCR@!_X3v&#~T*!kz9Ylh`QEcYu~Pfx_5thmUIvm zqkxTI8tt~)8+?lJG9ToDlG9ncxSL%PjhwcFWk*d&NlAYW<$juQ@O6U^gcVb16%(H{tZYZDKS=c?pVyph2d10=ONO zU$FLoL#NVcDfoymE(C`^VaHA*CAm6fAV?608uQ##K+$NRHDHdlIF~Jp7XOL|{DPRZ z@B>CEm7>92;-?#a?=WVQ9mb>%dnCs{=AC$CKl%Q}!`@5nc%`i=f1Ni+f0;+^T+tmO zObj`}NR~XFc`st}WgHrz)FRm)p&;c~ccq>z;4`p{fRdYUP~5sm*O;UYJu3VXZy5gm zj|8n%ous zR2a5-{L`!M2i_$&Vdfg%lq%%tFR@|-gQY>`{=O&6mU(n6ODf6DRsi}8Dqi@z)R$T~ z3vt=GRZQh;xXH~ppGy*xy5@9kla|w*7fcwdYN`f)91;@M`$I>?T`4C2Kuk!4Iijdb z_Wgv9Iu;!pT$Hu(IDeEf2dAtbikUQ0tlYD_Yh*uy1%w}cyv(SK0cmoe=_>EEO*v#f zWf7G5SJIPM%7#4wZQeBlfKE?gWXt=P8PuJG8^7b^C!1sgDbrTL6CJ%(xrFzl^VsV=1E%IU|) zu|ok*z=6Mw-A4!kK@r~8q)0z_YMT>87!O1C3Dp|JlVM~Ba(Jj)@TNp4No2#-x&&U1 zT8lpMCgKme5G)6y?PN#3UvOtwf$2fW5&gH54s^C-AH6Zxyxlhk6o0Dt>Ig?S-51+c z1aCT^zC82)uH-%nW5O2%_SL(6u0LJaN-Nj{;<-EXF-0H~X|vxg9DPYaE=q)!+rq6= z-1a5e^0%Fi378Y;&rF@CR<+x|<@PGWUJu6%Ojyj^ial96FVEu)=G_Ury<=gE4!!vC#AxA+koDov;R1VM^94L|2^~ajb`@)e%ze!d9}r0CX1dEVYZkQb)9>m zpkMio$n24jGQxSn#DDZ#0lIg;s{jT0O**oafXUmCWPbLC37_uEV<~V3-+VV^Nk{7n z)x5}jwi|I~y1h~%w-?dpsaHzW+O0_T<5T|JZB}v^dyL9Mb}RV`uqpK?0SzXge)o#i zV~jtY56O62^>qhNAl!x<<)~=R0IPz4&NxOt1`h)z(QV^^u-^XJKnkienb3Db)~zd4 zYUnCAY0){-B2KGr4qWJAo;&$et)d*EpFs4M*PlSpcnaq5nt%qUDBAC+!|=|vEH!+( z%_` z4Fje6CWTM7S-M7aSXkgrI^WQ_?jKC!+*AJ4AFzJ$-553Pmr+#%?Rzy`$wkUb@^6Kk~PlIMw^XTlw%p!sH5xk`2gT>UdvX zXr_)duzpha$qWv1hnt01-_Gh>94|D{5#01J78ABUqmsfY1@{0D>UBl*b~cNO{#|-* zC|XC^s?_o$DpywgYXy#=z5D^}*CLI^3iBTqfR+j@jMh9bgD}^32z*5}`Wx~X=tDnV zTE&pkjk`~rpV>Gbnw}zLr%~rLKxXgtMvf2~4;fJPgfDT+16+D)A*ByWF zRyhTHV+E~$Py7wTKOf;KcTV!Gwk_)-BPXi}x#R1GhvS;`tv%mz{rF5FNkJfT?7<4* zjTp*<-pq>_Wo`EJWl@-ktc&VeCm9}Ubf@!-__Gmyyut^@koPom4McTBVUAJ%Nb4?u zUbcFM_fZsY^zl&m#z9$8(Q$wiaQl4xj$Ul-N2|Myj4cgi7c6ZKY{SxUGMLGO4M|=|1 z5%?Nsa%mTuxoQLZoT6eq~Sg9)IcswnxnWLUzd74V-1ZB}}xTjVNVv3Dt# z1Y{s7ejHlDWXZYWKK!g1b!iwNX`QW$_q?!-jq=a!fLv@##SqGnPy~h7kCP`KrAhcFZQTl_CL)=!t>O!7G?-$*8Z z3}Ff79h`HdulT*A^5F&nKTtRy2=gtMQ??p;`>`6iO5C@;Y;tPlgi!nd3J669J{@Gy zOKVe6ZzwJNEl_SL@O1Fik(s60=O@IBjfzr~4R0qxb^`F;v;TzQ-be(zKQ2s8dxfMn z)l5ouwO$h&ePkI(D%HaL-0Irq>ezKTaeO}bOYr3NtRq|2zA0_PTN-g^5;4XZFT%vt z<2_dGdGf?_*h_Wwuk^%m5j8l8g3uEJ)RSLJ0SS~d!-V4ey`|k@uvJVe2N=B4&C1nam<6nnn4Z03ldz}wA>iYGT3^7XE&2fEUzm8Tdy13(mzOCkS zOq=&>h#D z7wLR~WyXkT`^juLko97g^1zqDd=VU8^9d}PO`^COU^eG}NpicrA<9%EI4GOqvYtp= z(|RSPm&_qO=>CF*vD@nxG8}1i5R6H7VP}>mKJcS6b{EQL;QfiYe3(s|ed2POE#%lJ z-mO!ccc42D^i|~iSP_0QmaVq@bJ;M{>~6X|uT)zSysqTDo*2?eArEps{#+vVAS49( zDXj-xA{V7H6nq0fs1WEedNb}>lt|Amb}GA@H4?MRn~(n;;K;G*4LNRaOj2JNueQu)eiF!;{uy3p!t- z$$?2MdbjZ|EUAxBUU|(49xzM3#jvy+Hgx#n#>NZJIK;YdCfC}A>Ijc$Q@_DCpjXR* z=j+W6xu65y|A?RNs(OIo<| zBv#CQjoJ*eQpMRJTM@g>FQi71T>X8bmP8Xhf(LDJeI$7=@@i=6m=ehgn1IcK+9B{= zZ7T3|?Cve2{5z&~`AFMfx6gl;BblPo78u=3EvfAv^NwhL0{Q-)k6S(?;>Q&j=P6#@ zO&M*V&!@##y1{K?+esBv8O$kZ!-GNhQq&Y+0<;1Jze*T6xnkS`Vs|J+?ct=|I7|Xs zCwp|UO!$7p<3=D~fJ4G$kSbFBfW5CHm{jB!kG9w=+ro=NHr1d5oR=Y6;>nXB3tu$r zYMJUd3E|)ku0X}#N4T`XG5^~sUiotum7~dU)UG@PYe0q z=Z=Cnn4t9N2WvT2{+a=ee~uJHg)BGi(61YRBN>klM0)hE(lM7AuPrexF;xGv^gQI9 z!OYRh7mfe+qW@XwknevTw;0Y12zIn)FVKmkKQL)j$$S@;_4G>fyZig;9ly`;jEs!A zBrU0JZ&fC@@B2NU1*|!54m$!X4>wpVP>raa?`C3sBDRBcECE-`O_vM4htfqwMdVEt zv-uJpv(Am@AXDJ227;TxS|1pwkH}5rdrC~_xZlso$r+K7oNQ{Lum9GGH)W>%^#F}b zrT={GE^I&Zxm0|p@Yg}(8%OKGU<|>em%LrM|M=w{gn5_(g6+RccUDpF6E=O)>_pN} zH;1!Jt$XTR%Qg?Dstda{n@kUgmtc7a_;APtX`|}Pg0es}cm=@aM8~3;-ChG@1pZhVadiBk9 zb!Q)~d*knH9UQ(r78F#4!TN926QER2A$)wzV7-L=;hY z6UJrrbk_E7-gKSH2(%tOwH?VBLLo|#W@&KfF9Mg?W5hYW<9@N(WOlp5@2``SBXxaiIU1nyWuQJCZDxL=gFpum`Ez)u(aUC z)a2x&+tU$?Q4~wx<*x%M)7-2QZ!&Dg&I@Yc_djB#>skKU0rY)T&41Zt7k;zDOx*JO$)zRxbwJ zc)@I?+Med4n4>cyTiK!Bs+WP1X#;UMLh-A5lrDy7U3dT&G^ak*Pi`?)^RFMv;-$`b zOt5c|LpCKJNEJ8&AR+d!>Wyb!bC(?37M*rVbrP4RK{H=LELWg3h<71u7-L`BDwfZb z=|*$Tvkm(=$uWJIieQpzH}5vrdNi57R#yH|n39rG8P6yYkJZDI2G&bZsDk?X6gH6DLGuCa>0dt&k#xWJ zb7;2?N(dH(YQ?{+$KQnnyd^j!{j&ZZd{ z@jOT=szLZIQ}JVNJ+CrU0MFQUEE@>>PFWW(`)zCM8XDX$rtOlR7kw%(FSmnBY8Rn$ z&;40PPQj2*{Wh6CR1n4=wCzX(bMtomyr!n6ld5jA*_(nGfmf#+L*FkZPi16AZp!K} z)iy73S`_d|f+D z?mAPqT@uGAF*Y_9vfFIvNEDLy649%A+=g#iGrgzpxW5C33I|{vrInety*GAnaIk{N zQlN?HIH6b_))^(mj0TnP+B0#Xb|k}Gqsyb@;_odmDNvC|4FZDgS1b3^P8Y_G&RwUi zcCo^NoVR#)m&!J8oJ4|k!VZgBN>H;DQQzMHB>&x>;=>-N4crMN^(PFho3qHiKg*t& zQ9+bL5@Qhc58e&YdBBc*9QQRLTmP`~JOONC=Eb+2>LAxx$(IOqy>kc#lGqW`XNEE! z`}5~4<>cgqzUOnCn3z~^+s#2s5vK50xBMn-_%U<^PZ1dsUio+xHZ1u~Z|5s^I8rKY z)rB{-dFt&vhdyS+vf-vw{F5iyT9awX$#vs?lU}U4YqR_MbJIy#b$A70T*-e? zUbJE`vEdMl`9?--D$KcmE}LJQ6BbkC@hq~}wd?EaloOQ}^1><4Ux%_?rA6}NzcqHW zc0>vvfsh5lUsbv#x+I=o*$z_TzxIDr#ha*>Re?$hWdrf@@hxhPOJiB$Z)HzU&z0gK z?nG2yI#guZIJ2azY;MVCffCEc@lSK7yqLHfeAZ6?is^pU_`C2uiqfdomelR{T+@e` zHS?tfEzLKyI^*1wQQwo?fVyU8n!37_=^9_Vy|B>IMAynIf`#6n*}pxQdnT3b;sIoH z7c8&Gf(^@+nc~g`O-<=-7c-?p(^33@&=j=&51|jet4soXe1*-;3<%C_ty*kx!9v$9 zYpO0Bb4qlX1Lwq(`S)qxw=yE!Lj#K{F4+OSugGn|~9zI&O) z3ct&lJP7ZRQ#e~oV(x7c&mEa8Gif|3a!#}6VkSH3q*jEy}NN#{uFukycn z3%AMG^jY*a^DYp!g;X_H!J0o9;ps*8Vd+5cx;@a*uL>hh#^}VAWHpXLVA(iTV3J9tB_){^cdyeV&s>VpfTI@e+$GRTCY48EP>t#OQhXEMyy>R=;K# z3SB$((Jwb1XLiaJDUk*G@(z5+!za_3l?3r+qCO3*6Cef&@J&IpnX4?JcD4J0KV7CN z4zgUXPsuzbM3!2@2cDmu=XK-C%$<(mYu+6JKmOskMgr8&&KPF55_66Zdr)VeE$u8H z?p*hV@`OHi1SV<~!sXh^6hz%_fy$GB_$<1r4RCQk;A+iA_C|hFR zHSpWhN1#mRUY{8{B@d5NgN)3~%h=x5w;v+aqUsxHN~$K>*KY1-(3HD3%kP>^U>C&i zCT1+Y?HG78&9#~ecz+b$V1_&s3L$|Ps`Q-tcTm878mqs4yY4q7{hmK*DJk>%`uY<^WKEP@8e7P`x;ni^*TsNM z?8izQs-WOiu7SDF>sLlb=?A##%K#JQwa1S8F~?{%yQLLq5fsTyA34O!eG5A?T>^Kx za{XAmd-HJ4Ydbe={-5vGqHP2)O-re0{(}RmSr6g;=HKgLlt9eE{tJdXvNl9B)e&=- za9x*RyA#(O%bk2(AdS80m*YZEV{$Afxhc@}*=5TdX=XUK3?c9t2EOe$quzf(Jr`t1 z*viONx%^(k8|~4@aB#4sh-$88tM)~BEh@t0WSb>Y<8~-}lqQoq%3(*#;H~avJnggb4v%zh!XL*eK7?&)@~u zf{g|lk%5*K-32#>b<87R+ccn8HPDqKtCPvWC;VcBf<=BblXUq3J7&=v$BF;=a)_M% z!O_{)p;^tz7hPlE{qwI6Gnl^k1OJ*mJSI*;1uvjyC65RqY42iZK5WOw2V@eyFU-Gd zIeYT<;nDpsS9$O9eGrpttlu9tiV3-=FWf!Pq?blW>6bdU4*M}yO1h>UHgA(@@EyoO zSLQR)u@;A${$nGf+20-NR2;}Pr0NeP5%a!yrUS4&#M14Yi0Q$4?#;3}8J8N>WfeND zWQUx%wdzzAaCIAURmtKc^Wop4@r#_AO4Mlt4B(K@}|( z#%024FRW)7ygxPcua?XO&(2seeVk`lDI67)qva`)FqXH>_RJ!YB|m?hJ~23XAsqD_ zlxF206R(7b3u`}htn)Q1488-IRAq!Xo?_}T>#;}Lh|MyyuPvRHmUiC&aw_P#Tc9Vi zi$AlWCT#ASmbimXIQC_h2+#j*1CWp_f6o7Jz(gCoXz=pCT|(QyKf(cCkJgNe&pz1S P1^~~Lwcr&`Ekphf5n}av literal 0 HcmV?d00001 diff --git a/src/assets/img/home/recommend_bg.jpg b/src/assets/img/home/recommend_bg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4533eb6cfc9f90bbd72dbd608dc3a6f5ab260a38 GIT binary patch literal 57946 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�sj$0P!qq!CN`^dD`mOqBZ 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 N{>qL>T)TTV@h|5`h7AA! literal 0 HcmV?d00001 diff --git a/src/assets/img/tabbar/cart.svg b/src/assets/img/tabbar/cart.svg new file mode 100644 index 00000000..69916f7a --- /dev/null +++ b/src/assets/img/tabbar/cart.svg @@ -0,0 +1,18 @@ + + + + +Created by potrace 1.15, written by Peter Selinger 2001-2017 + + + + + diff --git a/src/assets/img/tabbar/cart_active.svg b/src/assets/img/tabbar/cart_active.svg new file mode 100644 index 00000000..ee79a987 --- /dev/null +++ b/src/assets/img/tabbar/cart_active.svg @@ -0,0 +1,18 @@ + + + + +Created by potrace 1.15, written by Peter Selinger 2001-2017 + + + + + diff --git a/src/assets/img/tabbar/category.svg b/src/assets/img/tabbar/category.svg new file mode 100644 index 00000000..14febb99 --- /dev/null +++ b/src/assets/img/tabbar/category.svg @@ -0,0 +1,21 @@ + + + + +Created by potrace 1.15, written by Peter Selinger 2001-2017 + + + + + + + + diff --git a/src/assets/img/tabbar/category_active.svg b/src/assets/img/tabbar/category_active.svg new file mode 100644 index 00000000..4e84fca0 --- /dev/null +++ b/src/assets/img/tabbar/category_active.svg @@ -0,0 +1,21 @@ + + + + +Created by potrace 1.15, written by Peter Selinger 2001-2017 + + + + + + + + diff --git a/src/assets/img/tabbar/home.svg b/src/assets/img/tabbar/home.svg new file mode 100644 index 00000000..9a670e28 --- /dev/null +++ b/src/assets/img/tabbar/home.svg @@ -0,0 +1,19 @@ + + + + +Created by potrace 1.15, written by Peter Selinger 2001-2017 + + + + + diff --git a/src/assets/img/tabbar/home_active.svg b/src/assets/img/tabbar/home_active.svg new file mode 100644 index 00000000..4375ec74 --- /dev/null +++ b/src/assets/img/tabbar/home_active.svg @@ -0,0 +1,19 @@ + + + + +Created by potrace 1.15, written by Peter Selinger 2001-2017 + + + + + diff --git a/src/assets/img/tabbar/profile.svg b/src/assets/img/tabbar/profile.svg new file mode 100644 index 00000000..4a5dcd07 --- /dev/null +++ b/src/assets/img/tabbar/profile.svg @@ -0,0 +1,19 @@ + + + + +Created by potrace 1.15, written by Peter Selinger 2001-2017 + + + + + diff --git a/src/assets/img/tabbar/profile_active.svg b/src/assets/img/tabbar/profile_active.svg new file mode 100644 index 00000000..6a16c228 --- /dev/null +++ b/src/assets/img/tabbar/profile_active.svg @@ -0,0 +1,19 @@ + + + + +Created by potrace 1.15, written by Peter Selinger 2001-2017 + + + + + diff --git a/src/assets/logo.png b/src/assets/logo.png deleted file mode 100644 index f3d2503fc2a44b5053b0837ebea6e87a2d339a43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6849 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 + refresh() + } + + this.$bus.$on('itemImgLoad',this.itemImgListener) + + } +} +export const backTopMixin={ + data(){ + return{ + isShowBackTop:false, + tabOffsetTop:0, + isTabFixed:false, + } + }, + methods:{ + backClick(){ + this.$refs.scroll.scrollTo(0,0) + }, + contentScoll(position){ + this.isShowBackTop=(-position.y)>1000 + this.isTabFixed=(-position.y)>this.tabOffsetTop + }, + } +} diff --git a/src/common/utils.js b/src/common/utils.js new file mode 100644 index 00000000..6ac1d39e --- /dev/null +++ b/src/common/utils.js @@ -0,0 +1,37 @@ +export function debounce(func,delay){ + let timer=null + //...args多个参数 delay是延迟执行 但timer已经赋值 再次传入timer清空 + return function (...args){ + if(timer) clearTimeout(timer) + + timer=setTimeout(()=>{ + func.apply(this,args) + },delay) + } +} + +export function formatDate(date, fmt) { + if (/(y+)/.test(fmt)) { + fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length)); + } + let o = { + 'M+': date.getMonth() + 1, + 'd+': date.getDate(), + 'h+': date.getHours(), + 'm+': date.getMinutes(), + 's+': date.getSeconds() + }; + for (let k in o) { + if (new RegExp(`(${k})`).test(fmt)) { + let str = o[k] + ''; + fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : padLeftZero(str)); + } + } + return fmt; +} + +function padLeftZero (str) { + return ('00' + str).substr(str.length); +} + + diff --git a/src/components/HelloWorld.vue b/src/components/HelloWorld.vue deleted file mode 100644 index 7fd2dc57..00000000 --- a/src/components/HelloWorld.vue +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - diff --git a/src/components/common/Scroll/Scroll.vue b/src/components/common/Scroll/Scroll.vue new file mode 100644 index 00000000..56382d16 --- /dev/null +++ b/src/components/common/Scroll/Scroll.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/src/components/common/navbar/NavBar.vue b/src/components/common/navbar/NavBar.vue new file mode 100644 index 00000000..48e740f9 --- /dev/null +++ b/src/components/common/navbar/NavBar.vue @@ -0,0 +1,29 @@ + + + + + diff --git a/src/components/common/swiper/Swiper.vue b/src/components/common/swiper/Swiper.vue new file mode 100644 index 00000000..ef2142b3 --- /dev/null +++ b/src/components/common/swiper/Swiper.vue @@ -0,0 +1,371 @@ + + + + + diff --git a/src/components/common/swiper/SwiperItem.vue b/src/components/common/swiper/SwiperItem.vue new file mode 100644 index 00000000..5ad3e73e --- /dev/null +++ b/src/components/common/swiper/SwiperItem.vue @@ -0,0 +1,22 @@ + + + + + diff --git a/src/components/common/swiper/index.js b/src/components/common/swiper/index.js new file mode 100644 index 00000000..5eec1951 --- /dev/null +++ b/src/components/common/swiper/index.js @@ -0,0 +1,6 @@ +import Swiper from './Swiper' +import SwiperItem from './SwiperItem' + +export { + Swiper, SwiperItem +} diff --git a/src/components/common/tabbar/TabBar.vue b/src/components/common/tabbar/TabBar.vue new file mode 100644 index 00000000..b1a700fd --- /dev/null +++ b/src/components/common/tabbar/TabBar.vue @@ -0,0 +1,24 @@ + + + + + diff --git a/src/components/common/tabbar/TabBarItem.vue b/src/components/common/tabbar/TabBarItem.vue new file mode 100644 index 00000000..b1cd7f6c --- /dev/null +++ b/src/components/common/tabbar/TabBarItem.vue @@ -0,0 +1,53 @@ + + + + + diff --git a/src/components/content/backTop/backTop.vue b/src/components/content/backTop/backTop.vue new file mode 100644 index 00000000..9e87c395 --- /dev/null +++ b/src/components/content/backTop/backTop.vue @@ -0,0 +1,23 @@ + + + + + diff --git a/src/components/content/goods/GoodsList.vue b/src/components/content/goods/GoodsList.vue new file mode 100644 index 00000000..0e79cea0 --- /dev/null +++ b/src/components/content/goods/GoodsList.vue @@ -0,0 +1,32 @@ + + + + + diff --git a/src/components/content/goods/GoodsListItem.vue b/src/components/content/goods/GoodsListItem.vue new file mode 100644 index 00000000..27e6825d --- /dev/null +++ b/src/components/content/goods/GoodsListItem.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/src/components/content/mainTabbar/MainTabBar.vue b/src/components/content/mainTabbar/MainTabBar.vue new file mode 100644 index 00000000..bb96f3ac --- /dev/null +++ b/src/components/content/mainTabbar/MainTabBar.vue @@ -0,0 +1,42 @@ + + + + + diff --git a/src/components/content/tabControl/TabControl.vue b/src/components/content/tabControl/TabControl.vue new file mode 100644 index 00000000..33273ef7 --- /dev/null +++ b/src/components/content/tabControl/TabControl.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/src/main.js b/src/main.js index 63eb05f7..dc2ca82b 100644 --- a/src/main.js +++ b/src/main.js @@ -1,8 +1,11 @@ import Vue from 'vue' import App from './App.vue' +import router from './router' Vue.config.productionTip = false +Vue.prototype.$bus = new Vue() new Vue({ render: h => h(App), + router, }).$mount('#app') diff --git a/src/network/detail.js b/src/network/detail.js new file mode 100644 index 00000000..1cf2ae08 --- /dev/null +++ b/src/network/detail.js @@ -0,0 +1,50 @@ +import {request} from "@/network/request"; + +export function getDetail(iid){ + return request({ + url:'/detail', + params:{ + iid + } + }) +} + +export function getRecommend(){ + return request({ + url:'/recommend' + }) +} + +export class Goods{ + constructor(itemInfo, columns, services) { + this.title = itemInfo.title; + this.desc = itemInfo.desc; + this.newPrice = itemInfo.price; + this.oldPrice = itemInfo.oldPrice; + this.discount = itemInfo.discountDesc; + this.columns = columns; + this.services = services; + this.nowPrice = itemInfo.highNowPrice; + } +} + +export class Shop { + constructor(shopInfo) { + this.logo = shopInfo.shopLogo; + this.name = shopInfo.name; + this.fans = shopInfo.cFans; + this.sells = shopInfo.cSells; + this.score = shopInfo.score; + this.goodsCount = shopInfo.cGoods + } +} + +export class GoodsParam { + constructor(info, rule) { + // 注: images可能没有值(某些商品有值, 某些没有值) + this.image = info.images ? info.images[0] : ''; + this.infos = info.set; + this.sizes = rule.tables; + } +} + diff --git a/src/network/home.js b/src/network/home.js new file mode 100644 index 00000000..96b51eb4 --- /dev/null +++ b/src/network/home.js @@ -0,0 +1,18 @@ +import {request} from "@/network/request"; + +export function getHomeMutidata(){ + return request({ + url:'/home/multidata' + }) +} +export function getHomeGoods(type,page){ + return request({ + url:'/home/data', + params:{ + type, + page + } + }) +} + + diff --git a/src/network/request.js b/src/network/request.js new file mode 100644 index 00000000..3548bd08 --- /dev/null +++ b/src/network/request.js @@ -0,0 +1,26 @@ +import axios from 'axios' + +export function request(config){ + const instance =axios.create({ + baseURL:'http://152.136.185.210:8000/api/w6', + timeout:5000 + }) + + // //拦截 + // instance.interceptors.request.use(config=>{ + // console.log(config); + // return config + // }, + // err=>{ + // // console.log(err) + // }) + // + // instance.interceptors.request.use(res=>{ + // return res.get + // },err=>{ + // console.log(err); + // }) + + return instance(config) +} + diff --git a/src/router/index.js b/src/router/index.js new file mode 100644 index 00000000..41c7db47 --- /dev/null +++ b/src/router/index.js @@ -0,0 +1,41 @@ +import Vue from 'vue' +import Router from 'vue-router' + +const Home=()=>import('../views/home/Home') +const Category=()=>import('../views/category/Category') +const Cart=()=>import('../views/cart/Cart') +const Profile=()=>import('../views/profile/Profile') +const Detail=()=>import('../views/detail/Detail') +Vue.use(Router) + +const routes=[ + { + path:'', + redirect:'/home' + }, + { + path:'/home', + component:Home + }, + { + path:'/category', + component:Category + }, + { + path:'/cart', + component:Cart + }, + { + path: '/profile', + component: Profile + }, + { + path: '/detail/:iid', + component: Detail + } +] +const router =new Router({ + routes, + mode:'history' +}) +export default router diff --git a/src/views/cart/Cart.vue b/src/views/cart/Cart.vue new file mode 100644 index 00000000..5c66266d --- /dev/null +++ b/src/views/cart/Cart.vue @@ -0,0 +1,15 @@ + + + + + diff --git a/src/views/category/Category.vue b/src/views/category/Category.vue new file mode 100644 index 00000000..dd0ba701 --- /dev/null +++ b/src/views/category/Category.vue @@ -0,0 +1,152 @@ + + + + + diff --git a/src/views/detail/Detail.vue b/src/views/detail/Detail.vue new file mode 100644 index 00000000..ad0ff5e9 --- /dev/null +++ b/src/views/detail/Detail.vue @@ -0,0 +1,168 @@ + + + + + diff --git a/src/views/detail/childComps/DetailBaseInfo.vue b/src/views/detail/childComps/DetailBaseInfo.vue new file mode 100644 index 00000000..427dace4 --- /dev/null +++ b/src/views/detail/childComps/DetailBaseInfo.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/src/views/detail/childComps/DetailBottomBar.vue b/src/views/detail/childComps/DetailBottomBar.vue new file mode 100644 index 00000000..bb74ab50 --- /dev/null +++ b/src/views/detail/childComps/DetailBottomBar.vue @@ -0,0 +1,91 @@ + + + + + diff --git a/src/views/detail/childComps/DetailCommentInfo.vue b/src/views/detail/childComps/DetailCommentInfo.vue new file mode 100644 index 00000000..b543bfe8 --- /dev/null +++ b/src/views/detail/childComps/DetailCommentInfo.vue @@ -0,0 +1,118 @@ + + + + + diff --git a/src/views/detail/childComps/DetailGoodsInfo.vue b/src/views/detail/childComps/DetailGoodsInfo.vue new file mode 100644 index 00000000..ea409cac --- /dev/null +++ b/src/views/detail/childComps/DetailGoodsInfo.vue @@ -0,0 +1,90 @@ + + + + + diff --git a/src/views/detail/childComps/DetailNewBar.vue b/src/views/detail/childComps/DetailNewBar.vue new file mode 100644 index 00000000..4150fa05 --- /dev/null +++ b/src/views/detail/childComps/DetailNewBar.vue @@ -0,0 +1,56 @@ + + + + + diff --git a/src/views/detail/childComps/DetailParamInfo.vue b/src/views/detail/childComps/DetailParamInfo.vue new file mode 100644 index 00000000..d9bf83f8 --- /dev/null +++ b/src/views/detail/childComps/DetailParamInfo.vue @@ -0,0 +1,68 @@ + + + + + diff --git a/src/views/detail/childComps/DetailShopInfo.vue b/src/views/detail/childComps/DetailShopInfo.vue new file mode 100644 index 00000000..bd713182 --- /dev/null +++ b/src/views/detail/childComps/DetailShopInfo.vue @@ -0,0 +1,157 @@ + + + + + diff --git a/src/views/detail/childComps/DetailSwiper.vue b/src/views/detail/childComps/DetailSwiper.vue new file mode 100644 index 00000000..80836f00 --- /dev/null +++ b/src/views/detail/childComps/DetailSwiper.vue @@ -0,0 +1,35 @@ + + + + + diff --git a/src/views/home/Home.vue b/src/views/home/Home.vue new file mode 100644 index 00000000..62e9bf27 --- /dev/null +++ b/src/views/home/Home.vue @@ -0,0 +1,173 @@ + + + + + diff --git a/src/views/home/childComps/HomeRecommendView.vue b/src/views/home/childComps/HomeRecommendView.vue new file mode 100644 index 00000000..830ce244 --- /dev/null +++ b/src/views/home/childComps/HomeRecommendView.vue @@ -0,0 +1,42 @@ + + + + + diff --git a/src/views/home/childComps/HomeSwiper.vue b/src/views/home/childComps/HomeSwiper.vue new file mode 100644 index 00000000..750885d1 --- /dev/null +++ b/src/views/home/childComps/HomeSwiper.vue @@ -0,0 +1,45 @@ + + + + + diff --git a/src/views/home/childComps/HomefeatureView.vue b/src/views/home/childComps/HomefeatureView.vue new file mode 100644 index 00000000..25209bb4 --- /dev/null +++ b/src/views/home/childComps/HomefeatureView.vue @@ -0,0 +1,20 @@ + + + + + diff --git a/src/views/profile/Profile.vue b/src/views/profile/Profile.vue new file mode 100644 index 00000000..c0c5932c --- /dev/null +++ b/src/views/profile/Profile.vue @@ -0,0 +1,15 @@ + + + + + diff --git a/vue.config.js b/vue.config.js new file mode 100644 index 00000000..f1c70093 --- /dev/null +++ b/vue.config.js @@ -0,0 +1,13 @@ +module.exports={ + configureWebpack:{ + resolve:{ + alias:{ + 'assets':'@/assets', + 'common':'@/common', + 'components':'@/components', + 'network':'@/network', + 'views':'@/views', + } + } + } +}