no message
Showing
28 changed files
with
896 additions
and
163 deletions
| ... | @@ -763,6 +763,7 @@ | ... | @@ -763,6 +763,7 @@ |
| 763 | "version": "7.4.5", | 763 | "version": "7.4.5", |
| 764 | "resolved": "https://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.4.5.tgz", | 764 | "resolved": "https://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.4.5.tgz", |
| 765 | "integrity": "sha1-WCu1MfX53GfS/LaCl5iU914lPxI=", | 765 | "integrity": "sha1-WCu1MfX53GfS/LaCl5iU914lPxI=", |
| 766 | "dev": true, | ||
| 766 | "requires": { | 767 | "requires": { |
| 767 | "regenerator-runtime": "^0.13.2" | 768 | "regenerator-runtime": "^0.13.2" |
| 768 | } | 769 | } |
| ... | @@ -969,15 +970,11 @@ | ... | @@ -969,15 +970,11 @@ |
| 969 | "integrity": "sha1-aQoUdbhPKohP0HzXl8APXzE1bqg=", | 970 | "integrity": "sha1-aQoUdbhPKohP0HzXl8APXzE1bqg=", |
| 970 | "dev": true | 971 | "dev": true |
| 971 | }, | 972 | }, |
| 972 | "@vant/icons": { | ||
| 973 | "version": "1.1.7", | ||
| 974 | "resolved": "https://registry.npm.taobao.org/@vant/icons/download/@vant/icons-1.1.7.tgz", | ||
| 975 | "integrity": "sha1-KVYa3/+mp1DSedzNvpppt0OTTz8=" | ||
| 976 | }, | ||
| 977 | "@vue/babel-helper-vue-jsx-merge-props": { | 973 | "@vue/babel-helper-vue-jsx-merge-props": { |
| 978 | "version": "1.0.0", | 974 | "version": "1.0.0", |
| 979 | "resolved": "https://registry.npm.taobao.org/@vue/babel-helper-vue-jsx-merge-props/download/@vue/babel-helper-vue-jsx-merge-props-1.0.0.tgz", | 975 | "resolved": "https://registry.npm.taobao.org/@vue/babel-helper-vue-jsx-merge-props/download/@vue/babel-helper-vue-jsx-merge-props-1.0.0.tgz", |
| 980 | "integrity": "sha1-BI/leZWNpAj7eosqPsBQtQpmEEA=" | 976 | "integrity": "sha1-BI/leZWNpAj7eosqPsBQtQpmEEA=", |
| 977 | "dev": true | ||
| 981 | }, | 978 | }, |
| 982 | "@vue/babel-plugin-transform-vue-jsx": { | 979 | "@vue/babel-plugin-transform-vue-jsx": { |
| 983 | "version": "1.0.0", | 980 | "version": "1.0.0", |
| ... | @@ -5412,7 +5409,8 @@ | ... | @@ -5412,7 +5409,8 @@ |
| 5412 | "ansi-regex": { | 5409 | "ansi-regex": { |
| 5413 | "version": "2.1.1", | 5410 | "version": "2.1.1", |
| 5414 | "bundled": true, | 5411 | "bundled": true, |
| 5415 | "dev": true | 5412 | "dev": true, |
| 5413 | "optional": true | ||
| 5416 | }, | 5414 | }, |
| 5417 | "aproba": { | 5415 | "aproba": { |
| 5418 | "version": "1.2.0", | 5416 | "version": "1.2.0", |
| ... | @@ -5433,12 +5431,14 @@ | ... | @@ -5433,12 +5431,14 @@ |
| 5433 | "balanced-match": { | 5431 | "balanced-match": { |
| 5434 | "version": "1.0.0", | 5432 | "version": "1.0.0", |
| 5435 | "bundled": true, | 5433 | "bundled": true, |
| 5436 | "dev": true | 5434 | "dev": true, |
| 5435 | "optional": true | ||
| 5437 | }, | 5436 | }, |
| 5438 | "brace-expansion": { | 5437 | "brace-expansion": { |
| 5439 | "version": "1.1.11", | 5438 | "version": "1.1.11", |
| 5440 | "bundled": true, | 5439 | "bundled": true, |
| 5441 | "dev": true, | 5440 | "dev": true, |
| 5441 | "optional": true, | ||
| 5442 | "requires": { | 5442 | "requires": { |
| 5443 | "balanced-match": "^1.0.0", | 5443 | "balanced-match": "^1.0.0", |
| 5444 | "concat-map": "0.0.1" | 5444 | "concat-map": "0.0.1" |
| ... | @@ -5453,17 +5453,20 @@ | ... | @@ -5453,17 +5453,20 @@ |
| 5453 | "code-point-at": { | 5453 | "code-point-at": { |
| 5454 | "version": "1.1.0", | 5454 | "version": "1.1.0", |
| 5455 | "bundled": true, | 5455 | "bundled": true, |
| 5456 | "dev": true | 5456 | "dev": true, |
| 5457 | "optional": true | ||
| 5457 | }, | 5458 | }, |
| 5458 | "concat-map": { | 5459 | "concat-map": { |
| 5459 | "version": "0.0.1", | 5460 | "version": "0.0.1", |
| 5460 | "bundled": true, | 5461 | "bundled": true, |
| 5461 | "dev": true | 5462 | "dev": true, |
| 5463 | "optional": true | ||
| 5462 | }, | 5464 | }, |
| 5463 | "console-control-strings": { | 5465 | "console-control-strings": { |
| 5464 | "version": "1.1.0", | 5466 | "version": "1.1.0", |
| 5465 | "bundled": true, | 5467 | "bundled": true, |
| 5466 | "dev": true | 5468 | "dev": true, |
| 5469 | "optional": true | ||
| 5467 | }, | 5470 | }, |
| 5468 | "core-util-is": { | 5471 | "core-util-is": { |
| 5469 | "version": "1.0.2", | 5472 | "version": "1.0.2", |
| ... | @@ -5580,7 +5583,8 @@ | ... | @@ -5580,7 +5583,8 @@ |
| 5580 | "inherits": { | 5583 | "inherits": { |
| 5581 | "version": "2.0.3", | 5584 | "version": "2.0.3", |
| 5582 | "bundled": true, | 5585 | "bundled": true, |
| 5583 | "dev": true | 5586 | "dev": true, |
| 5587 | "optional": true | ||
| 5584 | }, | 5588 | }, |
| 5585 | "ini": { | 5589 | "ini": { |
| 5586 | "version": "1.3.5", | 5590 | "version": "1.3.5", |
| ... | @@ -5592,6 +5596,7 @@ | ... | @@ -5592,6 +5596,7 @@ |
| 5592 | "version": "1.0.0", | 5596 | "version": "1.0.0", |
| 5593 | "bundled": true, | 5597 | "bundled": true, |
| 5594 | "dev": true, | 5598 | "dev": true, |
| 5599 | "optional": true, | ||
| 5595 | "requires": { | 5600 | "requires": { |
| 5596 | "number-is-nan": "^1.0.0" | 5601 | "number-is-nan": "^1.0.0" |
| 5597 | } | 5602 | } |
| ... | @@ -5606,6 +5611,7 @@ | ... | @@ -5606,6 +5611,7 @@ |
| 5606 | "version": "3.0.4", | 5611 | "version": "3.0.4", |
| 5607 | "bundled": true, | 5612 | "bundled": true, |
| 5608 | "dev": true, | 5613 | "dev": true, |
| 5614 | "optional": true, | ||
| 5609 | "requires": { | 5615 | "requires": { |
| 5610 | "brace-expansion": "^1.1.7" | 5616 | "brace-expansion": "^1.1.7" |
| 5611 | } | 5617 | } |
| ... | @@ -5613,12 +5619,14 @@ | ... | @@ -5613,12 +5619,14 @@ |
| 5613 | "minimist": { | 5619 | "minimist": { |
| 5614 | "version": "0.0.8", | 5620 | "version": "0.0.8", |
| 5615 | "bundled": true, | 5621 | "bundled": true, |
| 5616 | "dev": true | 5622 | "dev": true, |
| 5623 | "optional": true | ||
| 5617 | }, | 5624 | }, |
| 5618 | "minipass": { | 5625 | "minipass": { |
| 5619 | "version": "2.3.5", | 5626 | "version": "2.3.5", |
| 5620 | "bundled": true, | 5627 | "bundled": true, |
| 5621 | "dev": true, | 5628 | "dev": true, |
| 5629 | "optional": true, | ||
| 5622 | "requires": { | 5630 | "requires": { |
| 5623 | "safe-buffer": "^5.1.2", | 5631 | "safe-buffer": "^5.1.2", |
| 5624 | "yallist": "^3.0.0" | 5632 | "yallist": "^3.0.0" |
| ... | @@ -5637,6 +5645,7 @@ | ... | @@ -5637,6 +5645,7 @@ |
| 5637 | "version": "0.5.1", | 5645 | "version": "0.5.1", |
| 5638 | "bundled": true, | 5646 | "bundled": true, |
| 5639 | "dev": true, | 5647 | "dev": true, |
| 5648 | "optional": true, | ||
| 5640 | "requires": { | 5649 | "requires": { |
| 5641 | "minimist": "0.0.8" | 5650 | "minimist": "0.0.8" |
| 5642 | } | 5651 | } |
| ... | @@ -5717,7 +5726,8 @@ | ... | @@ -5717,7 +5726,8 @@ |
| 5717 | "number-is-nan": { | 5726 | "number-is-nan": { |
| 5718 | "version": "1.0.1", | 5727 | "version": "1.0.1", |
| 5719 | "bundled": true, | 5728 | "bundled": true, |
| 5720 | "dev": true | 5729 | "dev": true, |
| 5730 | "optional": true | ||
| 5721 | }, | 5731 | }, |
| 5722 | "object-assign": { | 5732 | "object-assign": { |
| 5723 | "version": "4.1.1", | 5733 | "version": "4.1.1", |
| ... | @@ -5729,6 +5739,7 @@ | ... | @@ -5729,6 +5739,7 @@ |
| 5729 | "version": "1.4.0", | 5739 | "version": "1.4.0", |
| 5730 | "bundled": true, | 5740 | "bundled": true, |
| 5731 | "dev": true, | 5741 | "dev": true, |
| 5742 | "optional": true, | ||
| 5732 | "requires": { | 5743 | "requires": { |
| 5733 | "wrappy": "1" | 5744 | "wrappy": "1" |
| 5734 | } | 5745 | } |
| ... | @@ -5814,7 +5825,8 @@ | ... | @@ -5814,7 +5825,8 @@ |
| 5814 | "safe-buffer": { | 5825 | "safe-buffer": { |
| 5815 | "version": "5.1.2", | 5826 | "version": "5.1.2", |
| 5816 | "bundled": true, | 5827 | "bundled": true, |
| 5817 | "dev": true | 5828 | "dev": true, |
| 5829 | "optional": true | ||
| 5818 | }, | 5830 | }, |
| 5819 | "safer-buffer": { | 5831 | "safer-buffer": { |
| 5820 | "version": "2.1.2", | 5832 | "version": "2.1.2", |
| ... | @@ -5850,6 +5862,7 @@ | ... | @@ -5850,6 +5862,7 @@ |
| 5850 | "version": "1.0.2", | 5862 | "version": "1.0.2", |
| 5851 | "bundled": true, | 5863 | "bundled": true, |
| 5852 | "dev": true, | 5864 | "dev": true, |
| 5865 | "optional": true, | ||
| 5853 | "requires": { | 5866 | "requires": { |
| 5854 | "code-point-at": "^1.0.0", | 5867 | "code-point-at": "^1.0.0", |
| 5855 | "is-fullwidth-code-point": "^1.0.0", | 5868 | "is-fullwidth-code-point": "^1.0.0", |
| ... | @@ -5869,6 +5882,7 @@ | ... | @@ -5869,6 +5882,7 @@ |
| 5869 | "version": "3.0.1", | 5882 | "version": "3.0.1", |
| 5870 | "bundled": true, | 5883 | "bundled": true, |
| 5871 | "dev": true, | 5884 | "dev": true, |
| 5885 | "optional": true, | ||
| 5872 | "requires": { | 5886 | "requires": { |
| 5873 | "ansi-regex": "^2.0.0" | 5887 | "ansi-regex": "^2.0.0" |
| 5874 | } | 5888 | } |
| ... | @@ -5912,12 +5926,14 @@ | ... | @@ -5912,12 +5926,14 @@ |
| 5912 | "wrappy": { | 5926 | "wrappy": { |
| 5913 | "version": "1.0.2", | 5927 | "version": "1.0.2", |
| 5914 | "bundled": true, | 5928 | "bundled": true, |
| 5915 | "dev": true | 5929 | "dev": true, |
| 5930 | "optional": true | ||
| 5916 | }, | 5931 | }, |
| 5917 | "yallist": { | 5932 | "yallist": { |
| 5918 | "version": "3.0.3", | 5933 | "version": "3.0.3", |
| 5919 | "bundled": true, | 5934 | "bundled": true, |
| 5920 | "dev": true | 5935 | "dev": true, |
| 5936 | "optional": true | ||
| 5921 | } | 5937 | } |
| 5922 | } | 5938 | } |
| 5923 | }, | 5939 | }, |
| ... | @@ -10169,7 +10185,8 @@ | ... | @@ -10169,7 +10185,8 @@ |
| 10169 | "regenerator-runtime": { | 10185 | "regenerator-runtime": { |
| 10170 | "version": "0.13.2", | 10186 | "version": "0.13.2", |
| 10171 | "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.13.2.tgz", | 10187 | "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.13.2.tgz", |
| 10172 | "integrity": "sha1-MuWcmm+5saSv8JtJMMotRHc0NEc=" | 10188 | "integrity": "sha1-MuWcmm+5saSv8JtJMMotRHc0NEc=", |
| 10189 | "dev": true | ||
| 10173 | }, | 10190 | }, |
| 10174 | "regenerator-transform": { | 10191 | "regenerator-transform": { |
| 10175 | "version": "0.14.0", | 10192 | "version": "0.14.0", |
| ... | @@ -10520,7 +10537,8 @@ | ... | @@ -10520,7 +10537,8 @@ |
| 10520 | "version": "4.0.8", | 10537 | "version": "4.0.8", |
| 10521 | "resolved": "https://registry.npm.taobao.org/rx-lite/download/rx-lite-4.0.8.tgz", | 10538 | "resolved": "https://registry.npm.taobao.org/rx-lite/download/rx-lite-4.0.8.tgz", |
| 10522 | "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", | 10539 | "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", |
| 10523 | "dev": true | 10540 | "dev": true, |
| 10541 | "optional": true | ||
| 10524 | }, | 10542 | }, |
| 10525 | "rx-lite-aggregates": { | 10543 | "rx-lite-aggregates": { |
| 10526 | "version": "4.0.8", | 10544 | "version": "4.0.8", |
| ... | @@ -12413,17 +12431,6 @@ | ... | @@ -12413,17 +12431,6 @@ |
| 12413 | "spdx-expression-parse": "^3.0.0" | 12431 | "spdx-expression-parse": "^3.0.0" |
| 12414 | } | 12432 | } |
| 12415 | }, | 12433 | }, |
| 12416 | "vant": { | ||
| 12417 | "version": "1.6.21", | ||
| 12418 | "resolved": "https://registry.npm.taobao.org/vant/download/vant-1.6.21.tgz", | ||
| 12419 | "integrity": "sha1-7MdP1p/ND6EeQX5Q9XaEsFPgyzw=", | ||
| 12420 | "requires": { | ||
| 12421 | "@babel/runtime": "^7.4.3", | ||
| 12422 | "@vant/icons": "1.1.7", | ||
| 12423 | "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0-beta.3", | ||
| 12424 | "vue-lazyload": "1.2.3" | ||
| 12425 | } | ||
| 12426 | }, | ||
| 12427 | "vary": { | 12434 | "vary": { |
| 12428 | "version": "1.1.2", | 12435 | "version": "1.1.2", |
| 12429 | "resolved": "http://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz", | 12436 | "resolved": "http://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz", |
| ... | @@ -12505,11 +12512,6 @@ | ... | @@ -12505,11 +12512,6 @@ |
| 12505 | "integrity": "sha1-J1b0bLMlgFTF9HI96K5+hzAqHM8=", | 12512 | "integrity": "sha1-J1b0bLMlgFTF9HI96K5+hzAqHM8=", |
| 12506 | "dev": true | 12513 | "dev": true |
| 12507 | }, | 12514 | }, |
| 12508 | "vue-lazyload": { | ||
| 12509 | "version": "1.2.3", | ||
| 12510 | "resolved": "https://registry.npm.taobao.org/vue-lazyload/download/vue-lazyload-1.2.3.tgz", | ||
| 12511 | "integrity": "sha1-kB+ewVx+bKeHgaK65KNDaGve2yw=" | ||
| 12512 | }, | ||
| 12513 | "vue-loader": { | 12515 | "vue-loader": { |
| 12514 | "version": "15.7.0", | 12516 | "version": "15.7.0", |
| 12515 | "resolved": "https://registry.npm.taobao.org/vue-loader/download/vue-loader-15.7.0.tgz", | 12517 | "resolved": "https://registry.npm.taobao.org/vue-loader/download/vue-loader-15.7.0.tgz", | ... | ... |
| ... | @@ -21,7 +21,7 @@ | ... | @@ -21,7 +21,7 @@ |
| 21 | "mockjs": "^1.0.1-beta3", | 21 | "mockjs": "^1.0.1-beta3", |
| 22 | "postcss-px2rem": "^0.3.0", | 22 | "postcss-px2rem": "^0.3.0", |
| 23 | "postcss-pxtorem": "^4.0.1", | 23 | "postcss-pxtorem": "^4.0.1", |
| 24 | "vant": "^1.6.21", | 24 | "vant": "^2.2.11", |
| 25 | "vue": "^2.6.10", | 25 | "vue": "^2.6.10", |
| 26 | "vue-router": "^3.0.3", | 26 | "vue-router": "^3.0.3", |
| 27 | "vuex": "^3.0.1" | 27 | "vuex": "^3.0.1" | ... | ... |
| ... | @@ -8,16 +8,15 @@ | ... | @@ -8,16 +8,15 @@ |
| 8 | <meta name="viewport" | 8 | <meta name="viewport" |
| 9 | content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no"> | 9 | content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no"> |
| 10 | <link rel="icon" href="<%= BASE_URL %>favicon.ico"> | 10 | <link rel="icon" href="<%= BASE_URL %>favicon.ico"> |
| 11 | <title>vue-cli3-framework</title> | 11 | <title>宝汇珠宝</title> |
| 12 | </head> | 12 | </head> |
| 13 | 13 | ||
| 14 | <body> | 14 | <body> |
| 15 | <noscript> | 15 | <noscript> |
| 16 | <strong>We're sorry but vue-cli3-framework doesn't work properly without JavaScript enabled. Please enable it to | 16 | <strong>您的浏览器有点历史了,请升级新的浏览器~</strong> |
| 17 | continue.</strong> | ||
| 18 | </noscript> | 17 | </noscript> |
| 19 | <div id="app"></div> | 18 | <div id="app"></div> |
| 20 | <!-- built files will be auto injected --> | 19 | <!-- built files will be auto injected --> |
| 21 | </body> | 20 | </body> |
| 22 | 21 | ||
| 23 | </html> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 22 | </html> | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <div id="app"> | 2 | <div id="app"> |
| 3 | <!-- <div id="nav"> | ||
| 4 | <router-link to="/">Home</router-link> | | ||
| 5 | <router-link to="/about">About</router-link> | ||
| 6 | </div>--> | ||
| 7 | <router-view/> | 3 | <router-view/> |
| 8 | </div> | 4 | </div> |
| 9 | </template> | 5 | </template> |
| ... | @@ -22,6 +18,7 @@ | ... | @@ -22,6 +18,7 @@ |
| 22 | margin: 0; | 18 | margin: 0; |
| 23 | padding: 0; | 19 | padding: 0; |
| 24 | font-size: 20px; | 20 | font-size: 20px; |
| 21 | color: #333333; | ||
| 25 | } | 22 | } |
| 26 | 23 | ||
| 27 | body, | 24 | body, |
| ... | @@ -31,6 +28,12 @@ div { | ... | @@ -31,6 +28,12 @@ div { |
| 31 | padding: 0; | 28 | padding: 0; |
| 32 | } | 29 | } |
| 33 | 30 | ||
| 31 | input { | ||
| 32 | background: none; | ||
| 33 | outline: none; | ||
| 34 | border: none; | ||
| 35 | } | ||
| 36 | |||
| 34 | .app__width { | 37 | .app__width { |
| 35 | width: 750px; | 38 | width: 750px; |
| 36 | } | 39 | } |
| ... | @@ -87,4 +90,28 @@ div { | ... | @@ -87,4 +90,28 @@ div { |
| 87 | height: 20px; | 90 | height: 20px; |
| 88 | } | 91 | } |
| 89 | } | 92 | } |
| 93 | |||
| 94 | // 产品详情页面 | ||
| 95 | .page-product-detail { | ||
| 96 | .van-swipe__indicator { | ||
| 97 | width: 20px; | ||
| 98 | height: 20px; | ||
| 99 | } | ||
| 100 | |||
| 101 | [class*="van-hairline"]::after { | ||
| 102 | border: none; | ||
| 103 | } | ||
| 104 | .van-sticky { | ||
| 105 | border-bottom: 1px solid #ebedf0; | ||
| 106 | } | ||
| 107 | } | ||
| 108 | |||
| 109 | // 我的收藏 | ||
| 110 | .page-favorite { | ||
| 111 | .van-tabs__wrap { | ||
| 112 | } | ||
| 113 | .van-tab { | ||
| 114 | |||
| 115 | } | ||
| 116 | } | ||
| 90 | </style> | 117 | </style> | ... | ... |
| ... | @@ -13,11 +13,17 @@ Vue.config.productionTip = false | ... | @@ -13,11 +13,17 @@ Vue.config.productionTip = false |
| 13 | import { | 13 | import { |
| 14 | Swipe, | 14 | Swipe, |
| 15 | SwipeItem, | 15 | SwipeItem, |
| 16 | Lazyload | 16 | Lazyload, |
| 17 | Tab, | ||
| 18 | Tabs, | ||
| 19 | Sticky | ||
| 17 | } from 'vant'; | 20 | } from 'vant'; |
| 18 | 21 | ||
| 19 | Vue.use(Swipe).use(SwipeItem); | 22 | Vue.use(Swipe).use(SwipeItem); |
| 20 | Vue.use(Lazyload); | 23 | Vue.use(Lazyload); |
| 24 | Vue.use(Tab).use(Tabs); | ||
| 25 | Vue.use(Sticky); | ||
| 26 | |||
| 21 | 27 | ||
| 22 | new Vue({ | 28 | new Vue({ |
| 23 | router, | 29 | router, | ... | ... |
| 1 | import api from '../../api/api' | 1 | import api from '../../api/api' |
| 2 | import { | 2 | import { |
| 3 | httpGet, | 3 | httpGet, |
| 4 | httpPost | 4 | httpPost |
| 5 | } from '../../api/fetch-api.js' | 5 | } from '../../api/fetch-api.js' |
| 6 | 6 | ||
| 7 | export default { | 7 | export default { |
| 8 | data() { | 8 | data() { |
| 9 | return { | 9 | return { |
| 10 | key: 'value' | 10 | key: 'value', |
| 11 | } | 11 | active: 0, |
| 12 | images: [ | ||
| 13 | 'https://img.yzcdn.cn/vant/apple-1.jpg', | ||
| 14 | 'https://img.yzcdn.cn/vant/apple-2.jpg' | ||
| 15 | ], | ||
| 16 | sticky: true, | ||
| 17 | } | ||
| 18 | }, | ||
| 19 | components: {}, | ||
| 20 | methods: { | ||
| 21 | onFavoriteHandler() { | ||
| 22 | |||
| 12 | }, | 23 | }, |
| 13 | components: {}, | 24 | onContactUsHandler() { |
| 14 | methods: { | 25 | |
| 15 | initData() {} | ||
| 16 | }, | 26 | }, |
| 17 | mounted() {}, | ||
| 18 | created() { | ||
| 19 | console.log("demo created"); | ||
| 20 | } | ||
| 21 | } | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 27 | onNavHandler(index, title) { | ||
| 28 | // document.getElementById("scroll" + index).scrollIntoView({ | ||
| 29 | // behavior: "smooth", | ||
| 30 | // }); | ||
| 31 | }, | ||
| 32 | initData() {} | ||
| 33 | }, | ||
| 34 | mounted() {}, | ||
| 35 | created() {} | ||
| 36 | } | ... | ... |
src/pages/favorite/favorite.scss
0 → 100644
| 1 | @import './../../styles/support'; | ||
| 2 | |||
| 3 | .page {} | ||
| 4 | |||
| 5 | .nav { | ||
| 6 | @extend .bb; | ||
| 7 | display: flex; | ||
| 8 | justify-content: center; | ||
| 9 | align-items: center; | ||
| 10 | |||
| 11 | |||
| 12 | &-v-line { | ||
| 13 | width: 4px; | ||
| 14 | height: 45px; | ||
| 15 | background-color: #adadad; | ||
| 16 | } | ||
| 17 | |||
| 18 | &-item { | ||
| 19 | color: #adadad; | ||
| 20 | position: relative; | ||
| 21 | @extend .bb; | ||
| 22 | padding: 0 40; | ||
| 23 | text-align: center; | ||
| 24 | width: 100%; | ||
| 25 | height: 112px; | ||
| 26 | padding-top: 32px; | ||
| 27 | font-size: 30px; | ||
| 28 | |||
| 29 | } | ||
| 30 | |||
| 31 | .active { | ||
| 32 | color: #c28585; | ||
| 33 | |||
| 34 | .under { | ||
| 35 | position: absolute; | ||
| 36 | height: 3px; | ||
| 37 | width: 112px; | ||
| 38 | background-color: #c28585; | ||
| 39 | left: 0; | ||
| 40 | right: 0; | ||
| 41 | bottom: 24px; | ||
| 42 | margin: 0 auto; | ||
| 43 | } | ||
| 44 | } | ||
| 45 | } | ||
| 46 | |||
| 47 | .shop-list { | ||
| 48 | width: $contentWidth; | ||
| 49 | margin: 54px auto 0; | ||
| 50 | } | ||
| 51 | |||
| 52 | // 店铺信息 | ||
| 53 | .shop { | ||
| 54 | |||
| 55 | display: flex; | ||
| 56 | align-items: center; | ||
| 57 | margin: 0 auto 48px; | ||
| 58 | height: auto; | ||
| 59 | |||
| 60 | &-icon { | ||
| 61 | width: 120px; | ||
| 62 | height: 120px; | ||
| 63 | border-radius: 120px; | ||
| 64 | border: solid 1px #333333; | ||
| 65 | } | ||
| 66 | |||
| 67 | &-detail { | ||
| 68 | flex: 1; | ||
| 69 | @extend .bb; | ||
| 70 | height: 120px; | ||
| 71 | padding: 0 12px 0 24px; | ||
| 72 | flex-wrap: wrap; | ||
| 73 | display: flex; | ||
| 74 | align-content: space-between; | ||
| 75 | height: auto; | ||
| 76 | |||
| 77 | div { | ||
| 78 | width: 100%; | ||
| 79 | } | ||
| 80 | |||
| 81 | &-title { | ||
| 82 | font-size: 28px; | ||
| 83 | } | ||
| 84 | |||
| 85 | &-desc { | ||
| 86 | font-size: 18px; | ||
| 87 | } | ||
| 88 | } | ||
| 89 | |||
| 90 | &-btn-wrap { | ||
| 91 | .shop-btn { | ||
| 92 | @include btc(148px, 52px); | ||
| 93 | background-color: #cc9999; | ||
| 94 | border-radius: 52px; | ||
| 95 | color: #ffffff; | ||
| 96 | margin: 12px 0; | ||
| 97 | font-size: 24px; | ||
| 98 | } | ||
| 99 | |||
| 100 | .shop-btn2 { | ||
| 101 | background: transparent; | ||
| 102 | border: solid 1px #ffffff; | ||
| 103 | } | ||
| 104 | } | ||
| 105 | |||
| 106 | |||
| 107 | } |
src/pages/favorite/favorite.vue
0 → 100644
| 1 | |||
| 2 | <template> | ||
| 3 | <div class="page"> | ||
| 4 | <div class="app__bgc bgc"></div> | ||
| 5 | <div class="app__bg bg"></div> | ||
| 6 | <div class="app__content main"> | ||
| 7 | <div class="top-space"></div> | ||
| 8 | <div class="nav"> | ||
| 9 | <div class="nav-item active"> | ||
| 10 | 收藏的店铺 | ||
| 11 | <div class="under"></div> | ||
| 12 | </div> | ||
| 13 | <div class="nav-v-line"></div> | ||
| 14 | <div class="nav-item"> | ||
| 15 | 收藏的商品 | ||
| 16 | <div class="under"></div> | ||
| 17 | </div> | ||
| 18 | </div> | ||
| 19 | <div class="content"> | ||
| 20 | <div class="shop-list"> | ||
| 21 | <div class="shop" v-for="(item,index) in 4" :key="index"> | ||
| 22 | <div class="shop-icon"></div> | ||
| 23 | <div class="shop-detail"> | ||
| 24 | <div class="cTitle shop-detail-title">xxx珠宝首饰有限公司</div> | ||
| 25 | <div class="shop-detail-desc"> | ||
| 26 | <div class="t1">15012341234</div> | ||
| 27 | <div class="t1">广州市番禺区xx路宝汇珠宝交易中心888号</div> | ||
| 28 | <div class="t1">mail@baohui.com</div> | ||
| 29 | </div> | ||
| 30 | </div> | ||
| 31 | <div class="shop-btn-wrap"> | ||
| 32 | <div @click="onFavoriteHandler" class="shop-btn">查看店铺</div> | ||
| 33 | </div> | ||
| 34 | </div> | ||
| 35 | </div> | ||
| 36 | </div> | ||
| 37 | </div> | ||
| 38 | </div> | ||
| 39 | </template> | ||
| 40 | |||
| 41 | <script src="./favorite.js"></script> | ||
| 42 | <style lang="scss" scoped> | ||
| 43 | @import "./favorite.scss"; | ||
| 44 | </style> |
| ... | @@ -16,6 +16,16 @@ export default { | ... | @@ -16,6 +16,16 @@ export default { |
| 16 | }, | 16 | }, |
| 17 | components: {}, | 17 | components: {}, |
| 18 | methods: { | 18 | methods: { |
| 19 | toProduct(item) { | ||
| 20 | this.$router.push({ | ||
| 21 | path: "/product/detail" | ||
| 22 | }) | ||
| 23 | }, | ||
| 24 | toMyFavorite(){ | ||
| 25 | this.$router.push({ | ||
| 26 | path:"/favorite" | ||
| 27 | }) | ||
| 28 | }, | ||
| 19 | initData() {} | 29 | initData() {} |
| 20 | }, | 30 | }, |
| 21 | mounted() {}, | 31 | mounted() {}, | ... | ... |
| 1 | 1 | ||
| 2 | <template> | 2 | <template> |
| 3 | <div class="page page-index"> | 3 | <div class="page cPageBottom page-index"> |
| 4 | <div class="app__bgc bgc"></div> | 4 | <div class="app__bgc bgc"></div> |
| 5 | <div class="app__bg bg"></div> | 5 | <div class="app__bg bg"></div> |
| 6 | <div class="app__content main"> | 6 | <div class="app__content main"> |
| ... | @@ -27,7 +27,7 @@ | ... | @@ -27,7 +27,7 @@ |
| 27 | <div class="sel-item sel-item-4"> | 27 | <div class="sel-item sel-item-4"> |
| 28 | K金<br>首饰 | 28 | K金<br>首饰 |
| 29 | </div> | 29 | </div> |
| 30 | <div class="sel-item sel-item-5"> | 30 | <div class="sel-item sel-item-5" @click="toMyFavorite"> |
| 31 | 我的<br>收藏 | 31 | 我的<br>收藏 |
| 32 | </div> | 32 | </div> |
| 33 | </div> | 33 | </div> |
| ... | @@ -36,19 +36,7 @@ | ... | @@ -36,19 +36,7 @@ |
| 36 | <div class="product"> | 36 | <div class="product"> |
| 37 | <div class="product-title">-- 产品推荐 --</div> | 37 | <div class="product-title">-- 产品推荐 --</div> |
| 38 | <div class="product-list"> | 38 | <div class="product-list"> |
| 39 | <div class="item"> | 39 | <div @click="toProduct(item)" v-for="(item,index) in 6" :key="index" class="item"> |
| 40 | <img class="image" src="https://img.yzcdn.cn/vant/apple-1.jpg" alt=""> | ||
| 41 | <div class="desc">黄金吊坠</div> | ||
| 42 | </div> | ||
| 43 | <div class="item"> | ||
| 44 | <img class="image" src="https://img.yzcdn.cn/vant/apple-1.jpg" alt=""> | ||
| 45 | <div class="desc">黄金吊坠</div> | ||
| 46 | </div> | ||
| 47 | <div class="item"> | ||
| 48 | <img class="image" src="https://img.yzcdn.cn/vant/apple-1.jpg" alt=""> | ||
| 49 | <div class="desc">黄金吊坠</div> | ||
| 50 | </div> | ||
| 51 | <div class="item"> | ||
| 52 | <img class="image" src="https://img.yzcdn.cn/vant/apple-1.jpg" alt=""> | 40 | <img class="image" src="https://img.yzcdn.cn/vant/apple-1.jpg" alt=""> |
| 53 | <div class="desc">黄金吊坠</div> | 41 | <div class="desc">黄金吊坠</div> |
| 54 | </div> | 42 | </div> | ... | ... |
src/pages/my-favorite/index.scss
deleted
100644 → 0
| 1 | @import './../../styles/support'; |
src/pages/my-favorite/index.vue
deleted
100644 → 0
| 1 | |||
| 2 | <template> | ||
| 3 | <div class="page"> | ||
| 4 | <div class="app__bgc bgc"></div> | ||
| 5 | <div class="app__bg bg"></div> | ||
| 6 | <div class="app__content main"> | ||
| 7 | <div class="top-space"></div> | ||
| 8 | <div class="content"> | ||
| 9 | </div> | ||
| 10 | </div> | ||
| 11 | </div> | ||
| 12 | </template> | ||
| 13 | |||
| 14 | <script src="./index.js"></script> | ||
| 15 | <style lang="scss" scoped> | ||
| 16 | // @import './index.scss'; | ||
| 17 | </style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
src/pages/product-detail/index.scss
deleted
100644 → 0
| 1 | @import './../../styles/support'; |
src/pages/product-detail/index.vue
deleted
100644 → 0
| 1 | |||
| 2 | <template> | ||
| 3 | <div class="page"> | ||
| 4 | <div class="app__bgc bgc"></div> | ||
| 5 | <div class="app__bg bg"></div> | ||
| 6 | <div class="app__content main"> | ||
| 7 | <div class="top-space"></div> | ||
| 8 | <div class="content"> | ||
| 9 | </div> | ||
| 10 | </div> | ||
| 11 | </div> | ||
| 12 | </template> | ||
| 13 | |||
| 14 | <script src="./index.js"></script> | ||
| 15 | <style lang="scss" scoped> | ||
| 16 | // @import './index.scss'; | ||
| 17 | </style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | import api from '../../api/api' | 1 | import api from '../../api/api' |
| 2 | import { | 2 | import { |
| 3 | httpGet, | 3 | httpGet, |
| 4 | httpPost | 4 | httpPost |
| 5 | } from '../../api/fetch-api.js' | 5 | } from '../../api/fetch-api.js' |
| 6 | 6 | ||
| 7 | export default { | 7 | export default { |
| 8 | data() { | 8 | data() { |
| 9 | return { | 9 | return { |
| 10 | key: 'value' | 10 | key: 'value', |
| 11 | } | 11 | active: 0, |
| 12 | images: [ | ||
| 13 | 'https://img.yzcdn.cn/vant/apple-1.jpg', | ||
| 14 | 'https://img.yzcdn.cn/vant/apple-2.jpg' | ||
| 15 | ], | ||
| 16 | sticky: true, | ||
| 17 | } | ||
| 18 | }, | ||
| 19 | components: {}, | ||
| 20 | methods: { | ||
| 21 | onNavHandler(index, title) { | ||
| 22 | document.getElementById("scroll" + index).scrollIntoView({ | ||
| 23 | behavior: "smooth", | ||
| 24 | }); | ||
| 12 | }, | 25 | }, |
| 13 | components: {}, | 26 | toTop() { |
| 14 | methods: { | 27 | document.getElementById("scroll0").scrollIntoView({ |
| 15 | initData() {} | 28 | behavior: "smooth", |
| 29 | }); | ||
| 16 | }, | 30 | }, |
| 17 | mounted() {}, | ||
| 18 | created() { | ||
| 19 | console.log("demo created"); | ||
| 20 | } | ||
| 21 | } | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 31 | toShopDetail(){ | ||
| 32 | this.$router.push({ | ||
| 33 | path:"/shop/detail" | ||
| 34 | }) | ||
| 35 | }, | ||
| 36 | initData() {} | ||
| 37 | }, | ||
| 38 | mounted() {}, | ||
| 39 | created() {} | ||
| 40 | } | ... | ... |
src/pages/product-detail/product-detail.scss
0 → 100644
| 1 | @import './../../styles/support'; | ||
| 2 | |||
| 3 | .page {} | ||
| 4 | |||
| 5 | // 分页导航 | ||
| 6 | .nav { | ||
| 7 | .tabs { | ||
| 8 | @extend .bb; | ||
| 9 | padding: 0 50px; | ||
| 10 | background-color: #ffffff; | ||
| 11 | } | ||
| 12 | } | ||
| 13 | |||
| 14 | // 轮播banner | ||
| 15 | .banner { | ||
| 16 | $bannerWid: $screenWidth; | ||
| 17 | $bannerHei: 760px; | ||
| 18 | background-color: #f2f2f2; | ||
| 19 | @extend .bb; | ||
| 20 | width: $bannerWid; | ||
| 21 | height: $bannerHei; | ||
| 22 | |||
| 23 | .swiper { | ||
| 24 | width: $bannerWid; | ||
| 25 | height: $bannerHei; | ||
| 26 | |||
| 27 | .img { | ||
| 28 | width: $bannerWid; | ||
| 29 | height: $bannerHei; | ||
| 30 | } | ||
| 31 | } | ||
| 32 | } | ||
| 33 | |||
| 34 | .content { | ||
| 35 | width: $contentWidth; | ||
| 36 | margin: 0 auto; | ||
| 37 | } | ||
| 38 | |||
| 39 | // 功能导航 | ||
| 40 | .func { | ||
| 41 | margin: 42px auto; | ||
| 42 | display: flex; | ||
| 43 | justify-content: space-between; | ||
| 44 | align-items: center; | ||
| 45 | |||
| 46 | .desc { | ||
| 47 | &-tit {} | ||
| 48 | |||
| 49 | &-desc { | ||
| 50 | margin-top: 12px; | ||
| 51 | } | ||
| 52 | |||
| 53 | } | ||
| 54 | |||
| 55 | .fav { | ||
| 56 | text-align: center; | ||
| 57 | color: #cf9e9e; | ||
| 58 | padding: 0 24px; | ||
| 59 | |||
| 60 | &-icon { | ||
| 61 | @extend .bb; | ||
| 62 | width: 100%; | ||
| 63 | |||
| 64 | .iconfont { | ||
| 65 | font-size: 52px; | ||
| 66 | } | ||
| 67 | } | ||
| 68 | |||
| 69 | .btn { | ||
| 70 | margin-top: 12px; | ||
| 71 | } | ||
| 72 | } | ||
| 73 | } | ||
| 74 | |||
| 75 | // 店铺信息 | ||
| 76 | .shop { | ||
| 77 | margin: 92px auto 0; | ||
| 78 | display: flex; | ||
| 79 | align-items: center; | ||
| 80 | |||
| 81 | &-icon { | ||
| 82 | width: 100px; | ||
| 83 | height: 100px; | ||
| 84 | border-radius: 100px; | ||
| 85 | border: solid 1px #333333; | ||
| 86 | } | ||
| 87 | |||
| 88 | &-detail { | ||
| 89 | flex: 1; | ||
| 90 | @extend .bb; | ||
| 91 | padding-left: 24px; | ||
| 92 | display: flex; | ||
| 93 | align-content: center; | ||
| 94 | flex-wrap: wrap; | ||
| 95 | |||
| 96 | div { | ||
| 97 | width: 100%; | ||
| 98 | margin: 2px 0; | ||
| 99 | } | ||
| 100 | |||
| 101 | &-title { | ||
| 102 | font-size: 28px; | ||
| 103 | } | ||
| 104 | |||
| 105 | &-phone {} | ||
| 106 | } | ||
| 107 | |||
| 108 | &-btn { | ||
| 109 | @include btc(148px, 52px); | ||
| 110 | background-color: #cc9999; | ||
| 111 | border: solid 1px #333333; | ||
| 112 | border-radius: 48px; | ||
| 113 | color: #ffffff; | ||
| 114 | } | ||
| 115 | } | ||
| 116 | |||
| 117 | |||
| 118 | // 商品详情 | ||
| 119 | .detail { | ||
| 120 | margin: 72px auto 0; | ||
| 121 | } | ||
| 122 | |||
| 123 | // 商品参数 | ||
| 124 | .parameter { | ||
| 125 | margin: 72px auto 0; | ||
| 126 | |||
| 127 | &-table { | ||
| 128 | margin-top: 32px; | ||
| 129 | |||
| 130 | &-item { | ||
| 131 | display: flex; | ||
| 132 | border: solid 1px $fontGray; | ||
| 133 | border-bottom: none; | ||
| 134 | height: 48px; | ||
| 135 | |||
| 136 | div { | ||
| 137 | line-height: 48px; | ||
| 138 | @extend .bb; | ||
| 139 | padding: 0 12px; | ||
| 140 | } | ||
| 141 | |||
| 142 | .label { | ||
| 143 | width: 132px; | ||
| 144 | border-right: solid 1px $fontGray; | ||
| 145 | } | ||
| 146 | |||
| 147 | .val { | ||
| 148 | flex: 1; | ||
| 149 | } | ||
| 150 | |||
| 151 | &:last-child { | ||
| 152 | border-bottom: solid 1px $fontGray; | ||
| 153 | } | ||
| 154 | } | ||
| 155 | } | ||
| 156 | } | ||
| 157 | |||
| 158 | // 返回顶部 | ||
| 159 | .top-btn { | ||
| 160 | margin: 72px auto 0; | ||
| 161 | @include btc(232px, 60px); | ||
| 162 | background-color: #1e9ad3; | ||
| 163 | color: #ffffff; | ||
| 164 | border-radius: 8px; | ||
| 165 | } |
src/pages/product-detail/product-detail.vue
0 → 100644
| 1 | |||
| 2 | <template> | ||
| 3 | <div class="page cPageBottom page-product-detail"> | ||
| 4 | <div class="app__bgc bgc"></div> | ||
| 5 | <div class="app__bg bg"></div> | ||
| 6 | <div class="app__content main" id="scroll0"> | ||
| 7 | <div class="top-space"></div> | ||
| 8 | <!-- 分页导航 --> | ||
| 9 | <div class="nav"> | ||
| 10 | <van-sticky> | ||
| 11 | <van-tabs class="tabs" v-model="active" sticky @click="onNavHandler"> | ||
| 12 | <van-tab title="商品"></van-tab> | ||
| 13 | <van-tab title="详情"></van-tab> | ||
| 14 | <van-tab title="参数"></van-tab> | ||
| 15 | </van-tabs> | ||
| 16 | </van-sticky> | ||
| 17 | </div> | ||
| 18 | <!-- banner --> | ||
| 19 | <div class="banner"> | ||
| 20 | <van-swipe indicator-color="#ffcc00" class="swiper" :autoplay="3000"> | ||
| 21 | <van-swipe-item v-for="(image, index) in images" :key="index"> | ||
| 22 | <img class="img" v-lazy="image" /> | ||
| 23 | </van-swipe-item> | ||
| 24 | </van-swipe> | ||
| 25 | </div> | ||
| 26 | <div class="content"> | ||
| 27 | <!-- 功能导航 --> | ||
| 28 | <div class="func"> | ||
| 29 | <div class="desc"> | ||
| 30 | <div class="cTitle desc-title ">黄金吊坠 - 黄金饰品</div> | ||
| 31 | <div class="cFontGray desc-desc">商品关键词描述</div> | ||
| 32 | </div> | ||
| 33 | <div class="fav"> | ||
| 34 | <div class="fav-icon"> | ||
| 35 | <span class="iconfont iconfavoriteborder"></span> | ||
| 36 | </div> | ||
| 37 | <div class="cFontGray fav-btn">收藏</div> | ||
| 38 | </div> | ||
| 39 | </div> | ||
| 40 | <!-- 店铺信息 --> | ||
| 41 | <div class="shop"> | ||
| 42 | <div class="shop-icon"></div> | ||
| 43 | <div class="shop-detail"> | ||
| 44 | <div class="cTitle shop-detail-title">xxx珠宝首饰有限公司</div> | ||
| 45 | <div class="shop-detail-phone">15012341234</div> | ||
| 46 | </div> | ||
| 47 | <div @click="toShopDetail" class="shop-btn">进入店铺</div> | ||
| 48 | </div> | ||
| 49 | <!-- 商铺详情 --> | ||
| 50 | <div class="detail" id="scroll1"> | ||
| 51 | <div class="cTitle detail-title">商品详情</div> | ||
| 52 | <div class="cFontGray detail-desc">暂无详情介绍</div> | ||
| 53 | </div> | ||
| 54 | <!-- 商品参数 --> | ||
| 55 | <div class="parameter" id="scroll2"> | ||
| 56 | <div class="cTitle parameter-title">商品参数 </div> | ||
| 57 | <div class="cFontGray parameter-table"> | ||
| 58 | <div class="parameter-table-item"> | ||
| 59 | <div class="label">label1</div> | ||
| 60 | <div class="val">val1</div> | ||
| 61 | </div> | ||
| 62 | <div class="parameter-table-item"> | ||
| 63 | <div class="label">label2</div> | ||
| 64 | <div class="val">val12</div> | ||
| 65 | </div> | ||
| 66 | <div class="parameter-table-item"> | ||
| 67 | <div class="label">label3</div> | ||
| 68 | <div class="val">val13</div> | ||
| 69 | </div> | ||
| 70 | <div class="parameter-table-item"> | ||
| 71 | <div class="label">label1</div> | ||
| 72 | <div class="val">val1</div> | ||
| 73 | </div> | ||
| 74 | <div class="parameter-table-item"> | ||
| 75 | <div class="label">label2</div> | ||
| 76 | <div class="val">val12</div> | ||
| 77 | </div> | ||
| 78 | <div class="parameter-table-item"> | ||
| 79 | <div class="label">label3</div> | ||
| 80 | <div class="val">val13</div> | ||
| 81 | </div> | ||
| 82 | </div> | ||
| 83 | </div> | ||
| 84 | |||
| 85 | </div> | ||
| 86 | <!-- 返回顶部 --> | ||
| 87 | <div class="top-btn" @click="toTop">返回顶部</div> | ||
| 88 | </div> | ||
| 89 | </div> | ||
| 90 | </template> | ||
| 91 | |||
| 92 | <script src="./product-detail.js"></script> | ||
| 93 | <style lang="scss" scoped> | ||
| 94 | @import "./product-detail.scss"; | ||
| 95 | </style> |
src/pages/shop-detail/index.scss
deleted
100644 → 0
| 1 | @import './../../styles/support'; |
src/pages/shop-detail/index.vue
deleted
100644 → 0
| 1 | |||
| 2 | <template> | ||
| 3 | <div class="page"> | ||
| 4 | <div class="app__bgc bgc"></div> | ||
| 5 | <div class="app__bg bg"></div> | ||
| 6 | <div class="app__content main"> | ||
| 7 | <div class="top-space"></div> | ||
| 8 | <div class="content"> | ||
| 9 | </div> | ||
| 10 | </div> | ||
| 11 | </div> | ||
| 12 | </template> | ||
| 13 | |||
| 14 | <script src="./index.js"></script> | ||
| 15 | <style lang="scss" scoped> | ||
| 16 | // @import './index.scss'; | ||
| 17 | </style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| ... | @@ -12,10 +12,15 @@ export default { | ... | @@ -12,10 +12,15 @@ export default { |
| 12 | }, | 12 | }, |
| 13 | components: {}, | 13 | components: {}, |
| 14 | methods: { | 14 | methods: { |
| 15 | onFavoriteHandler(){ | ||
| 16 | |||
| 17 | }, | ||
| 18 | onContactUsHandler(){ | ||
| 19 | |||
| 20 | }, | ||
| 15 | initData() {} | 21 | initData() {} |
| 16 | }, | 22 | }, |
| 17 | mounted() {}, | 23 | mounted() {}, |
| 18 | created() { | 24 | created() { |
| 19 | console.log("demo created"); | ||
| 20 | } | 25 | } |
| 21 | } | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 26 | } | ... | ... |
src/pages/shop-detail/shop-detail.scss
0 → 100644
| 1 | @import './../../styles/support'; | ||
| 2 | |||
| 3 | |||
| 4 | .page {} | ||
| 5 | |||
| 6 | .top { | ||
| 7 | width: $screenWidth; | ||
| 8 | // height: 300px; | ||
| 9 | background-color: wheat; | ||
| 10 | padding: 16px 0 46px; | ||
| 11 | |||
| 12 | background: url("https://huaban.com/go/?pin_id=506749488") center no-repeat; | ||
| 13 | @extend .bis; | ||
| 14 | |||
| 15 | .space1 { | ||
| 16 | // height: 16px; | ||
| 17 | } | ||
| 18 | |||
| 19 | .search { | ||
| 20 | |||
| 21 | margin: 0 auto; | ||
| 22 | width: 684px; | ||
| 23 | height: 64px; | ||
| 24 | display: flex; | ||
| 25 | justify-content: space-between; | ||
| 26 | background-color: white; | ||
| 27 | border-radius: 64px; | ||
| 28 | |||
| 29 | &-ipt { | ||
| 30 | flex: 1; | ||
| 31 | @extend .bb; | ||
| 32 | padding: 0 32px; | ||
| 33 | height: 64px; | ||
| 34 | |||
| 35 | input { | ||
| 36 | width: 100%; | ||
| 37 | height: 100%; | ||
| 38 | text-align: center; | ||
| 39 | } | ||
| 40 | } | ||
| 41 | |||
| 42 | &-icon { | ||
| 43 | width: 64px; | ||
| 44 | // height: 64px; | ||
| 45 | @extend .fcc; | ||
| 46 | // @extend .bb; | ||
| 47 | // padding: 0 16px; | ||
| 48 | padding-right: 16px; | ||
| 49 | |||
| 50 | |||
| 51 | .iconfont { | ||
| 52 | font-size: 40px; | ||
| 53 | } | ||
| 54 | } | ||
| 55 | } | ||
| 56 | } | ||
| 57 | |||
| 58 | .content {} | ||
| 59 | |||
| 60 | |||
| 61 | |||
| 62 | // 产品推荐 | ||
| 63 | .product { | ||
| 64 | margin: 72px auto 0; | ||
| 65 | width: $contentWidth; | ||
| 66 | |||
| 67 | &-title { | ||
| 68 | text-align: center; | ||
| 69 | font-size: 32px; | ||
| 70 | color: #c78f8f; | ||
| 71 | } | ||
| 72 | |||
| 73 | &-list { | ||
| 74 | margin-top: 20px; | ||
| 75 | display: flex; | ||
| 76 | flex-wrap: wrap; | ||
| 77 | justify-content: space-between; | ||
| 78 | |||
| 79 | $itemWid: 330px; | ||
| 80 | |||
| 81 | .item { | ||
| 82 | width: $itemWid; | ||
| 83 | // height: 440px; | ||
| 84 | background: #F8F8F8; | ||
| 85 | border-radius: 4px; | ||
| 86 | margin-bottom: 32px; | ||
| 87 | padding-bottom: 12px; | ||
| 88 | |||
| 89 | .image { | ||
| 90 | width: $itemWid; | ||
| 91 | height: $itemWid; | ||
| 92 | } | ||
| 93 | |||
| 94 | .desc { | ||
| 95 | @extend .bb; | ||
| 96 | width: 325px; | ||
| 97 | padding: 4px 20px; | ||
| 98 | font-size: 24px; | ||
| 99 | // line-height: 32px; | ||
| 100 | color: #333333; | ||
| 101 | // @include ellipsis(3); | ||
| 102 | } | ||
| 103 | } | ||
| 104 | } | ||
| 105 | } | ||
| 106 | |||
| 107 | |||
| 108 | // 店铺信息 | ||
| 109 | .shop { | ||
| 110 | |||
| 111 | width: $contentWidth; | ||
| 112 | margin: 54px auto 44px; | ||
| 113 | display: flex; | ||
| 114 | align-items: center; | ||
| 115 | |||
| 116 | &-icon { | ||
| 117 | width: 120px; | ||
| 118 | height: 120px; | ||
| 119 | border-radius: 120px; | ||
| 120 | border: solid 1px #333333; | ||
| 121 | } | ||
| 122 | |||
| 123 | &-detail { | ||
| 124 | color: #fdfdfd; | ||
| 125 | flex: 1; | ||
| 126 | @extend .bb; | ||
| 127 | height: 120px; | ||
| 128 | padding: 0 12px 0 24px; | ||
| 129 | flex-wrap: wrap; | ||
| 130 | display: flex; | ||
| 131 | align-content: space-between; | ||
| 132 | height: auto; | ||
| 133 | |||
| 134 | div { | ||
| 135 | width: 100%; | ||
| 136 | } | ||
| 137 | |||
| 138 | &-title { | ||
| 139 | font-size: 28px; | ||
| 140 | } | ||
| 141 | |||
| 142 | &-desc { | ||
| 143 | font-size: 18px; | ||
| 144 | } | ||
| 145 | } | ||
| 146 | |||
| 147 | &-btn-wrap { | ||
| 148 | .shop-btn { | ||
| 149 | @include btc(148px, 52px); | ||
| 150 | background-color: #cc9999; | ||
| 151 | border-radius: 52px; | ||
| 152 | color: #ffffff; | ||
| 153 | margin: 12px 0; | ||
| 154 | font-size: 24px; | ||
| 155 | } | ||
| 156 | |||
| 157 | .shop-btn2 { | ||
| 158 | background: transparent; | ||
| 159 | border: solid 1px #ffffff; | ||
| 160 | } | ||
| 161 | } | ||
| 162 | |||
| 163 | |||
| 164 | } |
src/pages/shop-detail/shop-detail.vue
0 → 100644
| 1 | |||
| 2 | <template> | ||
| 3 | <div class="page cPageBottom page-shop-detail"> | ||
| 4 | <div class="app__bgc bgc"></div> | ||
| 5 | <div class="app__bg bg"></div> | ||
| 6 | <div class="app__content main"> | ||
| 7 | <div class="top-space"></div> | ||
| 8 | <!-- 大标 --> | ||
| 9 | <div class="top"> | ||
| 10 | <div class="space1"></div> | ||
| 11 | <div class="search"> | ||
| 12 | <div class="search-ipt"> | ||
| 13 | <input type="text" placeholder="搜索店铺内单品"> | ||
| 14 | </div> | ||
| 15 | <div class="search-icon"> | ||
| 16 | <span class="iconfont iconicon-test9"></span> | ||
| 17 | </div> | ||
| 18 | </div> | ||
| 19 | <div class="shop"> | ||
| 20 | <div class="shop-icon"></div> | ||
| 21 | <div class="shop-detail"> | ||
| 22 | <div class="shop-detail-title">xxx珠宝首饰有限公司</div> | ||
| 23 | <div class="shop-detail-desc"> | ||
| 24 | <div class="t1">15012341234</div> | ||
| 25 | <div class="t1">广州市番禺区xx路宝汇珠宝交易中心888号</div> | ||
| 26 | <div class="t1">mail@baohui.com</div> | ||
| 27 | </div> | ||
| 28 | </div> | ||
| 29 | <div class="shop-btn-wrap"> | ||
| 30 | <div @click="onFavoriteHandler" class="shop-btn">收藏店铺</div> | ||
| 31 | <div @click="onContactUsHandler" class="shop-btn shop-btn2">联系我们</div> | ||
| 32 | </div> | ||
| 33 | |||
| 34 | </div> | ||
| 35 | </div> | ||
| 36 | <div class="content"> | ||
| 37 | <div class="product"> | ||
| 38 | <div class="product-title">-- 全部商品 --</div> | ||
| 39 | <div class="product-list"> | ||
| 40 | <div class="item"> | ||
| 41 | <img class="image" src="https://img.yzcdn.cn/vant/apple-1.jpg" alt=""> | ||
| 42 | <div class="desc">黄金吊坠</div> | ||
| 43 | </div> | ||
| 44 | <div class="item"> | ||
| 45 | <img class="image" src="https://img.yzcdn.cn/vant/apple-1.jpg" alt=""> | ||
| 46 | <div class="desc">黄金吊坠</div> | ||
| 47 | </div> | ||
| 48 | <div class="item"> | ||
| 49 | <img class="image" src="https://img.yzcdn.cn/vant/apple-1.jpg" alt=""> | ||
| 50 | <div class="desc">黄金吊坠</div> | ||
| 51 | </div> | ||
| 52 | <div class="item"> | ||
| 53 | <img class="image" src="https://img.yzcdn.cn/vant/apple-1.jpg" alt=""> | ||
| 54 | <div class="desc">黄金吊坠</div> | ||
| 55 | </div> | ||
| 56 | </div> | ||
| 57 | </div> | ||
| 58 | </div> | ||
| 59 | </div> | ||
| 60 | </div> | ||
| 61 | </template> | ||
| 62 | |||
| 63 | <script src="./shop-detail.js"></script> | ||
| 64 | <style lang="scss" scoped> | ||
| 65 | @import "./shop-detail.scss"; | ||
| 66 | </style> |
| ... | @@ -13,6 +13,30 @@ const routes = [{ | ... | @@ -13,6 +13,30 @@ const routes = [{ |
| 13 | } | 13 | } |
| 14 | }, | 14 | }, |
| 15 | { | 15 | { |
| 16 | path: '/product/detail', | ||
| 17 | name: 'productDetail', | ||
| 18 | component: () => import('./pages/product-detail/product-detail.vue'), | ||
| 19 | meta: { | ||
| 20 | title: '' | ||
| 21 | } | ||
| 22 | }, | ||
| 23 | { | ||
| 24 | path: '/shop/detail', | ||
| 25 | name: 'shopDetail', | ||
| 26 | component: () => import('./pages/shop-detail/shop-detail.vue'), | ||
| 27 | meta: { | ||
| 28 | title: '' | ||
| 29 | } | ||
| 30 | }, | ||
| 31 | { | ||
| 32 | path: '/favorite', | ||
| 33 | name: 'favorite', | ||
| 34 | component: () => import('./pages/favorite/favorite.vue'), | ||
| 35 | meta: { | ||
| 36 | title: '' | ||
| 37 | } | ||
| 38 | }, | ||
| 39 | { | ||
| 16 | path: '/demo', | 40 | path: '/demo', |
| 17 | name: 'demo', | 41 | name: 'demo', |
| 18 | component: () => import('./pages/demo/demo.vue'), | 42 | component: () => import('./pages/demo/demo.vue'), |
| ... | @@ -47,4 +71,4 @@ router.beforeEach((to, from, next) => { | ... | @@ -47,4 +71,4 @@ router.beforeEach((to, from, next) => { |
| 47 | next(); | 71 | next(); |
| 48 | }); | 72 | }); |
| 49 | 73 | ||
| 50 | export default router; | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 74 | export default router; | ... | ... |
This diff is collapsed.
Click to expand it.
| ... | @@ -80,3 +80,33 @@ | ... | @@ -80,3 +80,33 @@ |
| 80 | background-color: transparent; | 80 | background-color: transparent; |
| 81 | border: 0; | 81 | border: 0; |
| 82 | } | 82 | } |
| 83 | |||
| 84 | // 超过多少行自动省略 默认一行 | ||
| 85 | @mixin ellipsis($line:1) { | ||
| 86 | display: -webkit-box; | ||
| 87 | word-break: break-all; | ||
| 88 | -webkit-box-orient: vertical; | ||
| 89 | -webkit-line-clamp: $line; | ||
| 90 | overflow: hidden; | ||
| 91 | text-overflow: ellipsis; | ||
| 92 | } | ||
| 93 | |||
| 94 | @mixin btc($width, $height) { | ||
| 95 | width: $width; | ||
| 96 | height: $height; | ||
| 97 | line-height: $height; | ||
| 98 | text-align: center; | ||
| 99 | } | ||
| 100 | |||
| 101 | // 通用按钮 | ||
| 102 | @mixin cb($width:320px, $height:84px, $fontSize:32px) { | ||
| 103 | color: #FFFFFF; | ||
| 104 | position: relative; | ||
| 105 | width: $width; | ||
| 106 | height: $height; | ||
| 107 | line-height: $height; | ||
| 108 | text-align: center; | ||
| 109 | font-size: $fontSize; | ||
| 110 | border-radius: 8px; | ||
| 111 | background-color: #3680EB; | ||
| 112 | } | ... | ... |
| 1 | .bis { | 1 | .bis { |
| 2 | background-repeat: no-repeat; | 2 | background-repeat: no-repeat; |
| 3 | background-size: 100% 100%; | 3 | background-size: 100% 100%; |
| 4 | } | 4 | } |
| 5 | 5 | ||
| 6 | //flex 布局和 子元素 对其方式 | 6 | //flex 布局和 子元素 对其方式 |
| 7 | .fl { | 7 | .fl { |
| 8 | display: flex; | 8 | display: flex; |
| 9 | } | 9 | } |
| 10 | 10 | ||
| 11 | .fj { | 11 | .fj { |
| 12 | display: flex; | 12 | display: flex; |
| 13 | justify-content: space-between; | 13 | justify-content: space-between; |
| 14 | } | 14 | } |
| 15 | 15 | ||
| 16 | .fje { | 16 | .fje { |
| 17 | display: flex; | 17 | display: flex; |
| 18 | justify-content: flex-end; | 18 | justify-content: flex-end; |
| 19 | } | 19 | } |
| 20 | 20 | ||
| 21 | //水平和垂直居中 | 21 | //水平和垂直居中 |
| 22 | .fcc { | 22 | .fcc { |
| 23 | display: flex; | 23 | display: flex; |
| 24 | justify-content: center; | 24 | justify-content: center; |
| 25 | align-items: center; | 25 | align-items: center; |
| 26 | } | 26 | } |
| 27 | 27 | ||
| 28 | // 为元素设定的宽度和高度决定了元素的边框盒。 | 28 | // 为元素设定的宽度和高度决定了元素的边框盒。 |
| 29 | .bb { | 29 | .bb { |
| 30 | box-sizing: border-box; | 30 | box-sizing: border-box; |
| 31 | } | 31 | } |
| 32 | 32 | ||
| 33 | // 满屏 | 33 | // 满屏 |
| 34 | .fullp { | 34 | .fullp { |
| 35 | width: 100%; | 35 | width: 100%; |
| 36 | height: 100%; | 36 | height: 100%; |
| 37 | } | 37 | } |
| 38 | 38 | ||
| 39 | .shadow { | 39 | .shadow { |
| 40 | box-shadow: 0 6px 18px 0 rgba(0, 0, 0, 0.10); | 40 | box-shadow: 0 6px 18px 0 rgba(0, 0, 0, 0.10); |
| 41 | border-radius: 8px; | 41 | border-radius: 8px; |
| 42 | } | 42 | } |
| 43 | 43 | ||
| 44 | .linear { | 44 | .linear { |
| 45 | background-image: linear-gradient(to right, #1bade8, #3680EB); | ||
| 46 | } | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 45 | background-image: linear-gradient(to right, #1bade8, #3680EB); | ||
| 46 | } | ||
| 47 | |||
| 48 | .cScreenWidth { | ||
| 49 | width: $screenWidth; | ||
| 50 | } | ||
| 51 | |||
| 52 | .cTitle { | ||
| 53 | font-size: $titleSize; | ||
| 54 | font-weight: bold; | ||
| 55 | } | ||
| 56 | |||
| 57 | |||
| 58 | .cFontGray { | ||
| 59 | color: $fontGray; | ||
| 60 | } | ||
| 61 | |||
| 62 | .cPageBottom { | ||
| 63 | padding-bottom: $pageBottom; | ||
| 64 | } | ... | ... |
| ... | @@ -40,5 +40,9 @@ $fontSizeSmaller: 24px; | ... | @@ -40,5 +40,9 @@ $fontSizeSmaller: 24px; |
| 40 | $fontSizeLarge: 36px; | 40 | $fontSizeLarge: 36px; |
| 41 | $fontSizeLarger: 44px; | 41 | $fontSizeLarger: 44px; |
| 42 | 42 | ||
| 43 | $pageBottom: 80px; | ||
| 43 | $contentWidth: 690px; //内容宽度 | 44 | $contentWidth: 690px; //内容宽度 |
| 44 | $screenWidth: 750px; // 屏幕宽度 | 45 | $screenWidth: 750px; // 屏幕宽度 |
| 46 | |||
| 47 | $titleSize:32px; | ||
| 48 | $fontGray:#b7b7b7; | ... | ... |
-
Please register or sign in to post a comment