You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1 line
11 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

{"remainingRequest":"/Users/linhuakun/Downloads/nodejs/codewhy/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/linhuakun/Downloads/nodejs/codewhy/src/views/home/Home.vue?vue&type=script&lang=js&","dependencies":[{"path":"/Users/linhuakun/Downloads/nodejs/codewhy/src/views/home/Home.vue","mtime":1608892673285},{"path":"/Users/linhuakun/Downloads/nodejs/codewhy/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/Users/linhuakun/Downloads/nodejs/codewhy/node_modules/babel-loader/lib/index.js","mtime":499162500000},{"path":"/Users/linhuakun/Downloads/nodejs/codewhy/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/Users/linhuakun/Downloads/nodejs/codewhy/node_modules/vue-loader/lib/index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCBOYXZCYXIgZnJvbSAiQC9jb21wb25lbnRzL2NvbW1vbi9uYXZiYXIvTmF2QmFyIjsKaW1wb3J0IHNjcm9sbCBmcm9tICJAL2NvbXBvbmVudHMvY29tbW9uL1Njcm9sbC9TY3JvbGwiOwppbXBvcnQgVGFiQ29udHJvbCBmcm9tICJAL2NvbXBvbmVudHMvY29udGVudC90YWJDb250cm9sL1RhYkNvbnRyb2wiOwppbXBvcnQgR29vZHNMaXN0IGZyb20gIkAvY29tcG9uZW50cy9jb250ZW50L2dvb2RzL0dvb2RzTGlzdCI7CmltcG9ydCBHb29kc0xpc3RJdGVtIGZyb20gIkAvY29tcG9uZW50cy9jb250ZW50L2dvb2RzL0dvb2RzTGlzdEl0ZW0iOwppbXBvcnQgYmFja1RvcCBmcm9tICJAL2NvbXBvbmVudHMvY29udGVudC9iYWNrVG9wL2JhY2tUb3AiOwoKaW1wb3J0IEhvbWVTd2lwZXIgZnJvbSAiLi9jaGlsZENvbXBzL0hvbWVTd2lwZXIiOwppbXBvcnQgSG9tZVJlY29tbWVuZFZpZXcgZnJvbSAiLi9jaGlsZENvbXBzL0hvbWVSZWNvbW1lbmRWaWV3IjsKaW1wb3J0IEhvbWVmZWF0dXJlVmlldyBmcm9tICIuL2NoaWxkQ29tcHMvSG9tZWZlYXR1cmVWaWV3IjsKCmltcG9ydCB7Z2V0SG9tZUdvb2RzLGdldEhvbWVNdXRpZGF0YX0gZnJvbSAiQC9uZXR3b3JrL2hvbWUiOwppbXBvcnQge2l0ZW1MaXN0ZW5lck1peGluLGJhY2tUb3BNaXhpbn0gZnJvbSAiQC9jb21tb24vbWl4aW4iOwoKZXhwb3J0IGRlZmF1bHQgewogIG5hbWU6ICJIb21lIiwKICBjb21wb25lbnRzOiB7CiAgICBOYXZCYXIsCiAgICBzY3JvbGwsCiAgICBUYWJDb250cm9sLAogICAgR29vZHNMaXN0LAogICAgR29vZHNMaXN0SXRlbSwKICAgIGJhY2tUb3AsCgoKICAgIEhvbWVTd2lwZXIsCiAgICBIb21lUmVjb21tZW5kVmlldywKICAgIEhvbWVmZWF0dXJlVmlldywKICB9LAogIGRhdGEoKXsKICAgIHJldHVybnsKICAgICAgYmFubmVyczpbXSwKICAgICAgcmVjb21tZW5kczpbXSwKICAgICAgZ29vZHM6ewogICAgICAgICdwb3AnOntwYWdlOjAsbGlzdDpbXX0sCiAgICAgICAgJ25ldyc6e3BhZ2U6MCxsaXN0OltdfSwKICAgICAgICAnc2VsbCc6e3BhZ2U6MCxsaXN0OltdfSwKICAgICAgfSwKICAgICAgY3VycmVudFR5cGU6J3BvcCcsCiAgICAgIC8vIHJlc3VsdDpudWxsCiAgICAgIHB1bGxpbmdkb3duOmZhbHNlCiAgICB9CiAgfSwKICBtaXhpbnM6W2l0ZW1MaXN0ZW5lck1peGluLGJhY2tUb3BNaXhpbl0sCiAgLy/nu4Tku7bliqDovb3lrozov5DooYzvvIznlJ/lkb3lkajmnJ/lh73mlbBEb20KICBjcmVhdGVkKCkgewogICAgdGhpcy5nZXRIb21lR29vZHMoJ3BvcCcpCiAgICB0aGlzLmdldEhvbWVHb29kcygnbmV3JykKICAgIHRoaXMuZ2V0SG9tZUdvb2RzKCdzZWxsJykKCiAgICBnZXRIb21lTXV0aWRhdGEoKS50aGVuKHJlcz0+ewogICAgICAvL+i9ruaSreWbvuaVsOaNruivt+axggogICAgICB0aGlzLmJhbm5lcnM9cmVzLmRhdGEuZGF0YS5iYW5uZXIubGlzdDsKICAgICAgLy/mjqjojZDlm77niYfnmoTmlbDmja7or7fmsYIKICAgICAgdGhpcy5yZWNvbW1lbmRzPXJlcy5kYXRhLmRhdGEucmVjb21tZW5kLmxpc3Q7CiAgICB9KQogIH0sCiAgbW91bnRlZCgpIHsKICB9LAogIG1ldGhvZHM6ewogICAgLy/llYblk4HnmoTliqDovb3mm7TlpJoKICAgIGdldEhvbWVHb29kcyh0eXBlKXsKICAgICAgY29uc3QgIHBhZ2U9dGhpcy5nb29kc1t0eXBlXS5wYWdlKzEKICAgICAgZ2V0SG9tZUdvb2RzKHR5cGUscGFnZSkudGhlbihyZXM9PnsKICAgICAgICB0aGlzLmdvb2RzW3R5cGVdLmxpc3QucHVzaCguLi5yZXMuZGF0YS5kYXRhLmxpc3QpCiAgICAgICAgdGhpcy5nb29kc1t0eXBlXS5wYWdlKz0xCiAgICAgICAgdGhpcy4kcmVmcy5zY3JvbGwuZmluaXNoUHVsbFVwKCkKICAgICAgfSkKICAgIH0sCiAgICAvL+S6i+S7tuebkeWQrAogICAgdGFiQ2xpY2soaW5kZXgpewogICAgICBzd2l0Y2ggKGluZGV4KXsKICAgICAgICBjYXNlIDA6CiAgICAgICAgICB0aGlzLmN1cnJlbnRUeXBlPSdwb3AnCiAgICAgICAgICAgICAgYnJlYWsKICAgICAgICBjYXNlIDE6CiAgICAgICAgICB0aGlzLmN1cnJlbnRUeXBlPSduZXcnCiAgICAgICAgICAgICAgYnJlYWsKICAgICAgICBjYXNlIDI6CiAgICAgICAgICB0aGlzLmN1cnJlbnRUeXBlPSdzZWxsJwogICAgICAgICAgICAgIGJyZWFrCiAgICAgIH0KICAgICAgLy/kuInnp43nsbvlnovnmoTliIfmjaIKICAgICAgdGhpcy4kcmVmcy50YWJDb250cm9sMS5jdXJyZW50SW5kZXg9aW5kZXg7CiAgICAgIHRoaXMuJHJlZnMudGFiQ29udHJvbDIuY3VycmVudEluZGV4PWluZGV4OwogICAgfSwKICAgIC8v5LiK5ouJ5Yqg6L295pu05aSaCiAgICBsb2FkTW9yZSgpewogICAgICB0aGlzLmdldEhvbWVHb29kcyh0aGlzLmN1cnJlbnRUeXBlKQogICAgICB0aGlzLiRyZWZzLnNjcm9sbC5yZWZyZXNoKCkKICAgIH0sCiAgICAvL+i9ruaSreWbvueahOWIh+aNogogICAgc3dpcGVySW1hZ2VMb2FkKCl7CiAgICAgIHRoaXMudGFiT2Zmc2V0VG9wPXRoaXMuJHJlZnMudGFiQ29udHJvbDIuJGVsLm9mZnNldFRvcAogICAgfSwKICAgICAgcHVsbGluZ0Rvd24oKSB7CiAgICAgIHRoaXMucHVsbGluZ2Rvd24gPSB0cnVlOwogICAgICBzZXRUaW1lb3V0KCgpID0+IHsKICAgICAgICB0aGlzLnB1bGxpbmdkb3duID0gZmFsc2U7CiAgICAgICAgdGhpcy4kcmVmcy5zY3JvbGwuZmluaXNoUHVsbERvd24oKTsKICAgICAgfSwgMTAwMCkKICAgIH0KICB9LAogIGNvbXB1dGVkOnsKICAgIHNob3dHb29kcygpewogICAgICByZXR1cm4gdGhpcy5nb29kc1t0aGlzLmN1cnJlbnRUeXBlXS5saXN0CiAgICB9LAogICAgLy/liIfmjaLmnb/lnZfml7bvvIzlm57mnaXkv53lrZjlvZPliY3nmoTkvY3nva4KICAgIGFjdGl2YXRlZCgpewogICAgICB0aGlzLiRyZWZzLnNjcm9sbC5yZWZyZXNoKCkKICAgICAgdGhpcy4kcmVmcy5zY3JvbGwuc2Nyb2xsVG8oMCx0aGlzLnNhdmVZLDApCiAgICB9LAogICAgZGVhY3RpdmF0ZWQoKXsKICAgICAgdGhpcy5zYXZlWSA9IHRoaXMuJHJlZnMuc2Nyb2xsLmdldFNjcm9sbFkoKQogICAgICAvL+WIpOaWreW9k+WJjeWTquS4quWbvueJh+WKoOi9veebkeWQrAogICAgICB0aGlzLiRidXMuJG9mZignaXRlbUltZ0xvYWQnLHRoaXMuaXRlbUltZ0xpc3RlbmVyKQogICAgfQogIH0KfQo="},{"version":3,"sources":["Home.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"Home.vue","sourceRoot":"src/views/home","sourcesContent":["<template>\n <div class=\"home\">\n <NavBar class=\"nav-bar\"><div slot=\"center\">购物街</div> </NavBar>\n <TabControl :titles=\"['流行','新款','精选']\"\n @tabClick=\"tabClick\"\n ref=\"tabControl1\"\n class=\"tab-control\"\n v-show=\"isTabFixed\"></TabControl>\n <scroll class=\"content\" ref=\"scroll\"\n :probe-type=\"3\"\n :pull-up-load=\"true\"\n @pullingUp=\"loadMore\"\n @pullingDown=\"pullingDown\">\n <div class=\"pulldown\" v-show=\"pullingdown\"><span>Loading...</span></div>\n <home-swiper :banners=\"banners\" @swiperImageLoad=\"swiperImageLoad\"></home-swiper>\n <home-recommend-view :recommends=\"recommends\"></home-recommend-view>\n <HomefeatureView></HomefeatureView>\n <TabControl :titles=\"['流行','新款','精选']\"\n @tabClick=\"tabClick\"\n ref=\"tabControl2\"\n class=\"tab-control\"></TabControl>\n <GoodsList :goods=\"showGoods\"></GoodsList>\n </scroll>\n <back-top @click.native=\"backClick\" v-show=\"isShowBackTop\"/>\n </div>\n</template>\n\n<script>\nimport NavBar from \"@/components/common/navbar/NavBar\";\nimport scroll from \"@/components/common/Scroll/Scroll\";\nimport TabControl from \"@/components/content/tabControl/TabControl\";\nimport GoodsList from \"@/components/content/goods/GoodsList\";\nimport GoodsListItem from \"@/components/content/goods/GoodsListItem\";\nimport backTop from \"@/components/content/backTop/backTop\";\n\nimport HomeSwiper from \"./childComps/HomeSwiper\";\nimport HomeRecommendView from \"./childComps/HomeRecommendView\";\nimport HomefeatureView from \"./childComps/HomefeatureView\";\n\nimport {getHomeGoods,getHomeMutidata} from \"@/network/home\";\nimport {itemListenerMixin,backTopMixin} from \"@/common/mixin\";\n\nexport default {\n name: \"Home\",\n components: {\n NavBar,\n scroll,\n TabControl,\n GoodsList,\n GoodsListItem,\n backTop,\n\n\n HomeSwiper,\n HomeRecommendView,\n HomefeatureView,\n },\n data(){\n return{\n banners:[],\n recommends:[],\n goods:{\n 'pop':{page:0,list:[]},\n 'new':{page:0,list:[]},\n 'sell':{page:0,list:[]},\n },\n currentType:'pop',\n // result:null\n pullingdown:false\n }\n },\n mixins:[itemListenerMixin,backTopMixin],\n //组件加载完运行生命周期函数Dom\n created() {\n this.getHomeGoods('pop')\n this.getHomeGoods('new')\n this.getHomeGoods('sell')\n\n getHomeMutidata().then(res=>{\n //轮播图数据请求\n this.banners=res.data.data.banner.list;\n //推荐图片的数据请求\n this.recommends=res.data.data.recommend.list;\n })\n },\n mounted() {\n },\n methods:{\n //商品的加载更多\n getHomeGoods(type){\n const page=this.goods[type].page+1\n getHomeGoods(type,page).then(res=>{\n this.goods[type].list.push(...res.data.data.list)\n this.goods[type].page+=1\n this.$refs.scroll.finishPullUp()\n })\n },\n //事件监听\n tabClick(index){\n switch (index){\n case 0:\n this.currentType='pop'\n break\n case 1:\n this.currentType='new'\n break\n case 2:\n this.currentType='sell'\n break\n }\n //三种类型的切换\n this.$refs.tabControl1.currentIndex=index;\n this.$refs.tabControl2.currentIndex=index;\n },\n //上拉加载更多\n loadMore(){\n this.getHomeGoods(this.currentType)\n this.$refs.scroll.refresh()\n },\n //轮播图的切换\n swiperImageLoad(){\n this.tabOffsetTop=this.$refs.tabControl2.$el.offsetTop\n },\n pullingDown() {\n this.pullingdown = true;\n setTimeout(() => {\n this.pullingdown = false;\n this.$refs.scroll.finishPullDown();\n }, 1000)\n }\n },\n computed:{\n showGoods(){\n return this.goods[this.currentType].list\n },\n //切换板块时,回来保存当前的位置\n activated(){\n this.$refs.scroll.refresh()\n this.$refs.scroll.scrollTo(0,this.saveY,0)\n },\n deactivated(){\n this.saveY = this.$refs.scroll.getScrollY()\n //判断当前哪个图片加载监听\n this.$bus.$off('itemImgLoad',this.itemImgListener)\n }\n }\n}\n</script>\n\n<style scoped>\n.home{\n height: 100vh;\n position: relative;\n}\n.nav-bar {\n background-color: var(--color-tint);\n color: #fff;\n /*font-weight: 700;*/\n /*position: fixed;*/\n /*left: 0;*/\n /*right: 0;*/\n /*top:0;*/\n /*z-index: 9;*/\n}\n.content{\n left: 0;\n right: 0;\n top:44px;\n bottom: 49px;\n overflow: hidden;\n position: absolute;\n}\n/*.content{*/\n/* height:calc(100% - 93px);*/\n/* overflow: hidden;*/\n/* margin-top: 44px;*/\n/*}*/\n.tab-control{\n position: relative;\n z-index: 24;\n}\n.pulldown {\n color: black;\n text-align: center;\n top: 30px;\n z-index: 100;\n}\n</style>\n"]}]}