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":1609772621361},{"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:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCBOYXZCYXIgZnJvbSAiQC9jb21wb25lbnRzL2NvbW1vbi9uYXZiYXIvTmF2QmFyIjsKaW1wb3J0IHNjcm9sbCBmcm9tICJAL2NvbXBvbmVudHMvY29tbW9uL1Njcm9sbC9TY3JvbGwiOwppbXBvcnQgVGFiQ29udHJvbCBmcm9tICJAL2NvbXBvbmVudHMvY29udGVudC90YWJDb250cm9sL1RhYkNvbnRyb2wiOwppbXBvcnQgR29vZHNMaXN0IGZyb20gIkAvY29tcG9uZW50cy9jb250ZW50L2dvb2RzL0dvb2RzTGlzdCI7CmltcG9ydCBHb29kc0xpc3RJdGVtIGZyb20gIkAvY29tcG9uZW50cy9jb250ZW50L2dvb2RzL0dvb2RzTGlzdEl0ZW0iOwppbXBvcnQgYmFja1RvcCBmcm9tICJAL2NvbXBvbmVudHMvY29udGVudC9iYWNrVG9wL2JhY2tUb3AiOwoKaW1wb3J0IEhvbWVTd2lwZXIgZnJvbSAiLi9jaGlsZENvbXBzL0hvbWVTd2lwZXIiOwppbXBvcnQgSG9tZVJlY29tbWVuZFZpZXcgZnJvbSAiLi9jaGlsZENvbXBzL0hvbWVSZWNvbW1lbmRWaWV3IjsKaW1wb3J0IEhvbWVmZWF0dXJlVmlldyBmcm9tICIuL2NoaWxkQ29tcHMvSG9tZWZlYXR1cmVWaWV3IjsKCmltcG9ydCB7Z2V0SG9tZUdvb2RzLGdldEhvbWVNdXRpZGF0YX0gZnJvbSAiQC9uZXR3b3JrL2hvbWUiOwppbXBvcnQge2l0ZW1MaXN0ZW5lck1peGluLGJhY2tUb3BNaXhpbn0gZnJvbSAiQC9jb21tb24vbWl4aW4iOwoKZXhwb3J0IGRlZmF1bHQgewogIG5hbWU6ICJIb21lIiwKICBjb21wb25lbnRzOiB7CiAgICBOYXZCYXIsCiAgICBzY3JvbGwsCiAgICBUYWJDb250cm9sLAogICAgR29vZHNMaXN0LAogICAgR29vZHNMaXN0SXRlbSwKICAgIGJhY2tUb3AsCgoKICAgIEhvbWVTd2lwZXIsCiAgICBIb21lUmVjb21tZW5kVmlldywKICAgIEhvbWVmZWF0dXJlVmlldywKICB9LAogIGRhdGEoKXsKICAgIHJldHVybnsKICAgICAgYmFubmVyczpbXSwKICAgICAgcmVjb21tZW5kczpbXSwKICAgICAgZ29vZHM6ewogICAgICAgICdwb3AnOntwYWdlOjAsbGlzdDpbXX0sCiAgICAgICAgJ25ldyc6e3BhZ2U6MCxsaXN0OltdfSwKICAgICAgICAnc2VsbCc6e3BhZ2U6MCxsaXN0OltdfSwKICAgICAgfSwKICAgICAgY3VycmVudFR5cGU6J3BvcCcsCiAgICAgIC8vIHJlc3VsdDpudWxsCiAgICAgIHB1bGxpbmdkb3duOmZhbHNlLAogICAgfQogIH0sCiAgbWl4aW5zOltpdGVtTGlzdGVuZXJNaXhpbixiYWNrVG9wTWl4aW5dLAogIC8v57uE5Lu25Yqg6L295a6M6L+Q6KGM77yM55Sf5ZG95ZGo5pyf5Ye95pWwRG9tCiAgY3JlYXRlZCgpIHsKICAgIHRoaXMuZ2V0SG9tZUdvb2RzKCdwb3AnKQogICAgdGhpcy5nZXRIb21lR29vZHMoJ25ldycpCiAgICB0aGlzLmdldEhvbWVHb29kcygnc2VsbCcpCgogICAgZ2V0SG9tZU11dGlkYXRhKCkudGhlbihyZXM9PnsKICAgICAgLy/ova7mkq3lm77mlbDmja7or7fmsYIKICAgICAgdGhpcy5iYW5uZXJzPXJlcy5kYXRhLmRhdGEuYmFubmVyLmxpc3Q7CiAgICAgIC8v5o6o6I2Q5Zu+54mH55qE5pWw5o2u6K+35rGCCiAgICAgIHRoaXMucmVjb21tZW5kcz1yZXMuZGF0YS5kYXRhLnJlY29tbWVuZC5saXN0OwogICAgfSkKICB9LAogIG1vdW50ZWQoKSB7CiAgfSwKICBtZXRob2RzOnsKICAgIC8v5ZWG5ZOB55qE5Yqg6L295pu05aSaCiAgICBnZXRIb21lR29vZHModHlwZSl7CiAgICAgIGNvbnN0ICBwYWdlPXRoaXMuZ29vZHNbdHlwZV0ucGFnZSsxCiAgICAgIGdldEhvbWVHb29kcyh0eXBlLHBhZ2UpLnRoZW4ocmVzPT57CiAgICAgICAgdGhpcy5nb29kc1t0eXBlXS5saXN0LnB1c2goLi4ucmVzLmRhdGEuZGF0YS5saXN0KQogICAgICAgIHRoaXMuZ29vZHNbdHlwZV0ucGFnZSs9MQogICAgICAgIHRoaXMuJHJlZnMuc2Nyb2xsLmZpbmlzaFB1bGxVcCgpCiAgICAgIH0pCiAgICB9LAogICAgLy/kuovku7bnm5HlkKwKICAgIHRhYkNsaWNrKGluZGV4KXsKICAgICAgc3dpdGNoIChpbmRleCl7CiAgICAgICAgY2FzZSAwOgogICAgICAgICAgdGhpcy5jdXJyZW50VHlwZT0ncG9wJwogICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgY2FzZSAxOgogICAgICAgICAgdGhpcy5jdXJyZW50VHlwZT0nbmV3JwogICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgY2FzZSAyOgogICAgICAgICAgdGhpcy5jdXJyZW50VHlwZT0nc2VsbCcKICAgICAgICAgICAgICBicmVhawogICAgICB9CiAgICAgIC8v5LiJ56eN57G75Z6L55qE5YiH5o2iCiAgICAgIHRoaXMuJHJlZnMudGFiQ29udHJvbDEuY3VycmVudEluZGV4PWluZGV4OwogICAgICB0aGlzLiRyZWZzLnRhYkNvbnRyb2wyLmN1cnJlbnRJbmRleD1pbmRleDsKICAgIH0sCiAgICAvL+S4iuaLieWKoOi9veabtOWkmgogICAgbG9hZE1vcmUoKXsKICAgICAgdGhpcy5nZXRIb21lR29vZHModGhpcy5jdXJyZW50VHlwZSkKICAgICAgdGhpcy4kcmVmcy5zY3JvbGwucmVmcmVzaCgpCiAgICB9LAogICAgLy/ova7mkq3lm77nmoTliIfmjaIKICAgIHN3aXBlckltYWdlTG9hZCgpewogICAgICB0aGlzLnRhYk9mZnNldFRvcD10aGlzLiRyZWZzLnRhYkNvbnRyb2wyLiRlbC5vZmZzZXRUb3AKICAgIH0sCiAgICAgIHB1bGxpbmdEb3duKCkgewogICAgICB0aGlzLnB1bGxpbmdkb3duID0gdHJ1ZTsKICAgICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgdGhpcy5wdWxsaW5nZG93biA9IGZhbHNlOwogICAgICAgIHRoaXMuJHJlZnMuc2Nyb2xsLmZpbmlzaFB1bGxEb3duKCk7CiAgICAgIH0sIDEwMDApCiAgICB9CiAgfSwKICBjb21wdXRlZDp7CiAgICBzaG93R29vZHMoKXsKICAgICAgcmV0dXJuIHRoaXMuZ29vZHNbdGhpcy5jdXJyZW50VHlwZV0ubGlzdAogICAgfSwKICAgIC8v5YiH5o2i5p2/5Z2X5pe277yM5Zue5p2l5L+d5a2Y5b2T5YmN55qE5L2N572uCiAgICBhY3RpdmF0ZWQoKXsKICAgICAgdGhpcy4kcmVmcy5zY3JvbGwucmVmcmVzaCgpCiAgICAgIHRoaXMuJHJlZnMuc2Nyb2xsLnNjcm9sbFRvKDAsdGhpcy5zYXZlWSwwKQogICAgfSwKICAgIGRlYWN0aXZhdGVkKCl7CiAgICAgIHRoaXMuc2F2ZVkgPSB0aGlzLiRyZWZzLnNjcm9sbC5nZXRTY3JvbGxZKCkKICAgICAgLy/liKTmlq3lvZPliY3lk6rkuKrlm77niYfliqDovb3nm5HlkKwKICAgICAgdGhpcy4kYnVzLiRvZmYoJ2l0ZW1JbWdMb2FkJyx0aGlzLml0ZW1JbWdMaXN0ZW5lcikKICAgIH0KICB9Cn0K"},{"version":3,"sources":["Home.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA;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 @scrollw=\"contentScoll\">\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 font-size: 10px;\n color: rgb(150, 138, 138);\n}\n</style>\n"]}]}