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
13 KiB

{"remainingRequest":"/Users/linhuakun/Downloads/coderlhk/codewhy/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/linhuakun/Downloads/coderlhk/codewhy/src/views/detail/Detail.vue?vue&type=script&lang=js&","dependencies":[{"path":"/Users/linhuakun/Downloads/coderlhk/codewhy/src/views/detail/Detail.vue","mtime":1616295817910},{"path":"/Users/linhuakun/Downloads/coderlhk/codewhy/node_modules/babel-loader/lib/index.js","mtime":499162500000},{"path":"/Users/linhuakun/Downloads/coderlhk/codewhy/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/Users/linhuakun/Downloads/coderlhk/codewhy/node_modules/vue-loader/lib/index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCBEZXRhaWxOZXdCYXIgZnJvbSAiQC92aWV3cy9kZXRhaWwvY2hpbGRDb21wcy9EZXRhaWxOZXdCYXIiOwppbXBvcnQgRGV0YWlsU3dpcGVyIGZyb20gIkAvdmlld3MvZGV0YWlsL2NoaWxkQ29tcHMvRGV0YWlsU3dpcGVyIjsKaW1wb3J0IERldGFpbEJhc2VJbmZvIGZyb20gIkAvdmlld3MvZGV0YWlsL2NoaWxkQ29tcHMvRGV0YWlsQmFzZUluZm8iOwppbXBvcnQgRGV0YWlsU2hvcEluZm8gZnJvbSAiQC92aWV3cy9kZXRhaWwvY2hpbGRDb21wcy9EZXRhaWxTaG9wSW5mbyI7CmltcG9ydCBEZXRhaWxHb29kc0luZm8gZnJvbSAiQC92aWV3cy9kZXRhaWwvY2hpbGRDb21wcy9EZXRhaWxHb29kc0luZm8iOwppbXBvcnQgRGV0YWlsUGFyYW1JbmZvIGZyb20gIkAvdmlld3MvZGV0YWlsL2NoaWxkQ29tcHMvRGV0YWlsUGFyYW1JbmZvIjsKaW1wb3J0IERldGFpbENvbW1lbnRJbmZvIGZyb20gIkAvdmlld3MvZGV0YWlsL2NoaWxkQ29tcHMvRGV0YWlsQ29tbWVudEluZm8iOwppbXBvcnQgRGV0YWlsQm90dG9tQmFyIGZyb20gIkAvdmlld3MvZGV0YWlsL2NoaWxkQ29tcHMvRGV0YWlsQm90dG9tQmFyIjsKCmltcG9ydCBiYWNrVG9wIGZyb20gIkAvY29tcG9uZW50cy9jb250ZW50L2JhY2tUb3AvYmFja1RvcCI7CmltcG9ydCBzY3JvbGwgZnJvbSAiQC9jb21wb25lbnRzL2NvbW1vbi9TY3JvbGwvU2Nyb2xsIjsKCmltcG9ydCB7aXRlbUxpc3RlbmVyTWl4aW4sYmFja1RvcE1peGlufSBmcm9tICJAL2NvbW1vbi9taXhpbiI7CmltcG9ydCB7ZGVib3VuY2V9IGZyb20gIkAvY29tbW9uL3V0aWxzIjsKCgppbXBvcnQge2dldERldGFpbH0gZnJvbSAiQC9uZXR3b3JrL2RldGFpbCI7CgoKZXhwb3J0IGRlZmF1bHQgewogIG5hbWU6ICJEZXRhaWwiLAogIGNvbXBvbmVudHM6IHsKICAgIERldGFpbE5ld0JhciwKICAgIERldGFpbFN3aXBlciwKICAgIERldGFpbEJhc2VJbmZvLAogICAgRGV0YWlsU2hvcEluZm8sCiAgICBEZXRhaWxHb29kc0luZm8sCiAgICBEZXRhaWxQYXJhbUluZm8sCiAgICBEZXRhaWxDb21tZW50SW5mbywKICAgIERldGFpbEJvdHRvbUJhciwKCiAgICBiYWNrVG9wLAogICAgc2Nyb2xsLAoKICB9LAogIG1peGluczogW2l0ZW1MaXN0ZW5lck1peGluLGJhY2tUb3BNaXhpbl0sCiAgZGF0YSgpIHsKICAgIHJldHVybiB7CiAgICAgIGlpZDogbnVsbCwKICAgICAgdG9wSW1hZ2VzOiBbXSwKICAgICAgZ29vZHM6IHt9LAogICAgICBzaG9wOiB7fSwKICAgICAgZGV0YWlsSW5mbzogW10sCiAgICAgIHBhcmFtSW5mbzoge30sCiAgICAgIGNvbW1lbnRJbmZvOiB7fSwKICAgICAgcmVjb21tZW5kczogW10sCiAgICAgIHRoZW1lVG9wWXM6IFtdLAogICAgICBnZXRUaGVtZVRvcFk6IG51bGwsCiAgICAgIGN1cnJlbnRJbmRleDowLAoKICAgICAgbWVzc2FnZTonJywKICAgICAgc2hvdzpmYWxzZQogICAgfQogIH0sCiAgY3JlYXRlZCgpIHsKICAvLyAgIC8vaG9tZeS4u+mhteS8oOWFpWlkCiAgICB0aGlzLmlpZCA9IHRoaXMuJHJvdXRlLnBhcmFtcy5pZAogIC8vICAgLy/mlbDmja7nmoTlsZXnpLoKICAgIGdldERldGFpbCh0aGlzLmlpZCkudGhlbihyZXMgPT4gewogICAgICAgICBjb25zdCBkYXRhID0gcmVzLmRhdGEuZGF0YTsKICAvLyAgICAgLy/ova7mkq3lm77nmoTliIfmjaIKICAgICAgICAgdGhpcy50b3BJbWFnZXMgPSBkYXRhLnRvcEJhbm5lcgogIC8vICAgICAvL+WVhuWTgeS7i+e7jQogICAgICAgICAgdGhpcy5nb29kcyA9IGRhdGEuc2hvcE1lc3NhZ2UKICAvLyAgICAgLy/lupfpk7rlkI3nmoTlsZXnpLoKICAgICAgICAgIHRoaXMuc2hvcCA9IGRhdGEuY29udGVudAogIC8vICAgICAvL+epv+edgOWxleekugogICAgICAgICB0aGlzLmRldGFpbEluZm8gPSBkYXRhLnNwZWNpYWwKICAvLyAgICAgLy/llYblk4HmjqjojZDnmoTlsZXnpLoKICAgICAgICAgIC8vIHRoaXMucGFyYW1JbmZvID0gZGF0YS5zcGVjaWFsCiAgICAgICAgdGhpcy5jb21tZW50SW5mbyA9IGRhdGEuY29tbWVudDsKICAgICAgLy8g5a+86Iiq5qCP54K55Ye75YiH5o2iCiAgICAgIHRoaXMuZ2V0VGhlbWVUb3BZID0gZGVib3VuY2UoKCkgPT4gewogICAgICAgIHRoaXMudGhlbWVUb3BZcyA9IFtdCiAgICAgICAgdGhpcy50aGVtZVRvcFlzLnB1c2goMCk7CiAgICAgICAgdGhpcy50aGVtZVRvcFlzLnB1c2godGhpcy4kcmVmcy5jb21tZW50LiRlbC5vZmZzZXRUb3ApCiAgICAgICAgdGhpcy50aGVtZVRvcFlzLnB1c2godGhpcy4kcmVmcy5zaG9wRGV0YWlsLiRlbC5vZmZzZXRUb3ApCiAgICAgICAgdGhpcy50aGVtZVRvcFlzLnB1c2godGhpcy4kcmVmcy5UaXAuJGVsLm9mZnNldFRvcCkKICAgICAgICB0aGlzLnRoZW1lVG9wWXMucHVzaChOdW1iZXIuTUFYX1ZBTFVFKQogICAgICB9LCA1MDApCgogICAgfSkKICB9LAogIG1vdW50ZWQoKSB7CiAgfSwKICBkZXN0cm95ZWQoKSB7CiAgICAvL+aXoGtlZXAtbGl2ZeaXtmFjdGl2YXRlZOaXoOazleS9v+eUqAogICAgdGhpcy4kYnVzLiRvZmYoJ2l0ZW1JbWdMb2FkJywgdGhpcy5pdGVtSW1nTGlzdGVuZXIpCiAgfSwKICBtZXRob2RzOiB7CiAgICAvL+S4iuaLieWbvueJh+WKoOi9vQogICAgZGV0YWlsSW1hZ2Vsb2FkKCkgewogICAgICB0aGlzLml0ZW1JbWdMaXN0ZW5lcigpCiAgICAgIHRoaXMuZ2V0VGhlbWVUb3BZKCkKICAgIH0sCiAgICAvL+WvvOiIquagj+eCueWHu+WIh+aNogogICAgdGl0bGVDbGljayhpbmRleCkgewogICAgICB0aGlzLiRyZWZzLnNjcm9sbC5zY3JvbGxUbygwLCAtdGhpcy50aGVtZVRvcFlzW2luZGV4XSwgMTAwMCk7CiAgICB9LAogICAgbG9hZE1vcmUoKXsKICAgICAgLy8gdGhpcy5nZXRIb21lR29vZHModGhpcy5jdXJyZW50VHlwZSkKICAgICAgdGhpcy4kcmVmcy5zY3JvbGwucmVmcmVzaCgpCiAgICB9LAogICAgICBwdWxsaW5nRG93bigpIHsKICAgICAgdGhpcy5wdWxsaW5nZG93biA9IHRydWU7CiAgICAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgIHRoaXMucHVsbGluZ2Rvd24gPSBmYWxzZTsKICAgICAgICB0aGlzLiRyZWZzLnNjcm9sbC5maW5pc2hQdWxsRG93bigpOwogICAgICB9LCAwKQogICAgfSwKICAgIC8v5L2N572u56e75Yqo5pe25a+86Iiq5qCP6Lef552A56e75YqoCiAgICBwb3NpdGlvblNjcm9sbChwb3NpdGlvbikgewogICAgICBjb25zdCBwb3NpdGlvblkgPSAtcG9zaXRpb24ueQogICAgICBsZXQgbGVuZ3RoID0gdGhpcy50aGVtZVRvcFlzLmxlbmd0aAogICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aC0xOyBpKyspIHsKICAgICAgICBpZih0aGlzLmN1cnJlbnRJbmRleCE9PWkmJihwb3NpdGlvblk+PXRoaXMudGhlbWVUb3BZc1tpXSYmcG9zaXRpb25ZPHRoaXMudGhlbWVUb3BZc1tpKzFdKSkKICAgICAgICB7CiAgICAgICAgICB0aGlzIC5jdXJyZW50SW5kZXg9aTsKICAgICAgICAgIHRoaXMuJHJlZnMubmF2LmN1cnJlbnRJbmRleD10aGlzLmN1cnJlbnRJbmRleAogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIC8vbWl4aW7mt7flhaXlm57pgIDpobbpg6jnmoTmjInpkq4KICAgIHRvdGFsU2Nyb2xsKHBvc2l0aW9uKXsKICAgICAgdGhpcy5wb3NpdGlvblNjcm9sbChwb3NpdGlvbikKICAgICAgdGhpcy5jb250ZW50U2NvbGwocG9zaXRpb24pCiAgICB9LAogIC8vICAgLy/liqDlhaXotK3nianovaYKICAgIGFkZFRvQ2FydCgpewogICAgICAvL+iOt+WPlui0reeJqei9pumcgOimgeWxleekuueahOS4nOilvwogICAgICAgY29uc3QgcHJvZHVjdD17fQogICAgICAgIHByb2R1Y3QuaW1hZ2U9dGhpcy50b3BJbWFnZXNbMF07CiAgICAgICAgcHJvZHVjdC50aXRsZT10aGlzLmdvb2RzLnRpdGxlOwogICAgICAgIHByb2R1Y3QuZGVzYz10aGlzLmdvb2RzLmRlc2M7CiAgICAgICAgcHJvZHVjdC5wcmljZT10aGlzLmdvb2RzLm5ld3ByaWNlOwogICAgICAgIHByb2R1Y3QuaWlkPXRoaXMuaWlkOwogICAgICAgIHRoaXMuJHN0b3JlLmRpc3BhdGNoKCdhZGRDYXJ0Jyxwcm9kdWN0KS50aGVuKHJlcz0+ewogICAgICAgICAgdGhpcy4kdG9hc3Quc2hvdyhyZXMsMjAwMCkKICAgICAgICB9KQogICAgfSwKICAgICAgYnVndGhpbmcoKXsKICAgICAgLy/ojrflj5botK3nianovabpnIDopoHlsZXnpLrnmoTkuJzopb8KICAgICAgIGNvbnN0IHByb2R1Y3Q9e30KICAgICAgICBwcm9kdWN0LmltYWdlPXRoaXMudG9wSW1hZ2VzWzBdOwogICAgICAgIHByb2R1Y3QudGl0bGU9dGhpcy5nb29kcy50aXRsZTsKICAgICAgICBwcm9kdWN0LmRlc2M9dGhpcy5nb29kcy5kZXNjOwogICAgICAgIHByb2R1Y3QucHJpY2U9dGhpcy5nb29kcy5uZXdwcmljZTsKICAgICAgICBwcm9kdWN0LmlpZD10aGlzLmlpZDsKICAgICAgICB0aGlzLiRzdG9yZS5kaXNwYXRjaCgnYWRkQ2FydCcscHJvZHVjdCkudGhlbihyZXM9PnsKICAgICAgICAgIHRoaXMuJHRvYXN0LnNob3cocmVzLDIwMDApCiAgICAgICAgICB0aGlzLiRyb3V0ZXIucHVzaCgnL2NhcnQnKQogICAgICAgIH0pCiAgICB9CiAgfQp9Cg=="},{"version":3,"sources":["Detail.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAwBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;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;;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;AACA;AACA;AACA;AACA;AACA","file":"Detail.vue","sourceRoot":"src/views/detail","sourcesContent":["<template>\n <div class=\"detail\" >\n <DetailNewBar id=\"detail-nav\" @titleClick=\"titleClick\" ref=\"nav\"/>\n <scroll class=\"content\" ref=\"scroll\"\n :probe-type=\"3\"\n :pull-up-load=\"true\"\n @pullingUp=\"loadMore\"\n @pullingDown=\"pullingDown\"\n @scrollw=\"positionScroll\"\n >\n <DetailSwiper :top-images=\"topImages\"/>\n <DetailBaseInfo :goods=\"goods\"/>\n <DetailCommentInfo ref=\"comment\" :comment-info=\"commentInfo\"/>\n <DetailGoodsInfo ref=\"shopDetail\" :detail-info=\"detailInfo\" @detailImageload=\"detailImageload\"/>\n <DetailParamInfo ref=\"Tip\" />\n </scroll>\n <detail-bottom-bar id=\"bottom-nav\" />\n <detail-bottom-bar class=\"bottom-nav\" @addToCart=\"addToCart\" @bugthing=\"bugthing\"/>\n\n <back-top clas=\"backup\" @click.native=\"backClick\" v-show=\"isShowBackTop\"/>\n </div>\n</template>\n\n<script>\nimport DetailNewBar from \"@/views/detail/childComps/DetailNewBar\";\nimport DetailSwiper from \"@/views/detail/childComps/DetailSwiper\";\nimport DetailBaseInfo from \"@/views/detail/childComps/DetailBaseInfo\";\nimport DetailShopInfo from \"@/views/detail/childComps/DetailShopInfo\";\nimport DetailGoodsInfo from \"@/views/detail/childComps/DetailGoodsInfo\";\nimport DetailParamInfo from \"@/views/detail/childComps/DetailParamInfo\";\nimport DetailCommentInfo from \"@/views/detail/childComps/DetailCommentInfo\";\nimport DetailBottomBar from \"@/views/detail/childComps/DetailBottomBar\";\n\nimport backTop from \"@/components/content/backTop/backTop\";\nimport scroll from \"@/components/common/Scroll/Scroll\";\n\nimport {itemListenerMixin,backTopMixin} from \"@/common/mixin\";\nimport {debounce} from \"@/common/utils\";\n\n\nimport {getDetail} from \"@/network/detail\";\n\n\nexport default {\n name: \"Detail\",\n components: {\n DetailNewBar,\n DetailSwiper,\n DetailBaseInfo,\n DetailShopInfo,\n DetailGoodsInfo,\n DetailParamInfo,\n DetailCommentInfo,\n DetailBottomBar,\n\n backTop,\n scroll,\n\n },\n mixins: [itemListenerMixin,backTopMixin],\n data() {\n return {\n iid: null,\n topImages: [],\n goods: {},\n shop: {},\n detailInfo: [],\n paramInfo: {},\n commentInfo: {},\n recommends: [],\n themeTopYs: [],\n getThemeTopY: null,\n currentIndex:0,\n\n message:'',\n show:false\n }\n },\n created() {\n // //home主页传入id\n this.iid = this.$route.params.id\n // //数据的展示\n getDetail(this.iid).then(res => {\n const data = res.data.data;\n // //轮播图的切换\n this.topImages = data.topBanner\n // //商品介绍\n this.goods = data.shopMessage\n // //店铺名的展示\n this.shop = data.content\n // //穿着展示\n this.detailInfo = data.special\n // //商品推荐的展示\n // this.paramInfo = data.special\n this.commentInfo = data.comment;\n // 导航栏点击切换\n this.getThemeTopY = debounce(() => {\n this.themeTopYs = []\n this.themeTopYs.push(0);\n this.themeTopYs.push(this.$refs.comment.$el.offsetTop)\n this.themeTopYs.push(this.$refs.shopDetail.$el.offsetTop)\n this.themeTopYs.push(this.$refs.Tip.$el.offsetTop)\n this.themeTopYs.push(Number.MAX_VALUE)\n }, 500)\n\n })\n },\n mounted() {\n },\n destroyed() {\n //无keep-live时activated无法使用\n this.$bus.$off('itemImgLoad', this.itemImgListener)\n },\n methods: {\n //上拉图片加载\n detailImageload() {\n this.itemImgListener()\n this.getThemeTopY()\n },\n //导航栏点击切换\n titleClick(index) {\n this.$refs.scroll.scrollTo(0, -this.themeTopYs[index], 1000);\n },\n loadMore(){\n // this.getHomeGoods(this.currentType)\n this.$refs.scroll.refresh()\n },\n pullingDown() {\n this.pullingdown = true;\n setTimeout(() => {\n this.pullingdown = false;\n this.$refs.scroll.finishPullDown();\n }, 0)\n },\n //位置移动时导航栏跟着移动\n positionScroll(position) {\n const positionY = -position.y\n let length = this.themeTopYs.length\n for (let i = 0; i < length-1; i++) {\n if(this.currentIndex!==i&&(positionY>=this.themeTopYs[i]&&positionY<this.themeTopYs[i+1]))\n {\n this .currentIndex=i;\n this.$refs.nav.currentIndex=this.currentIndex\n }\n }\n },\n //mixin混入回退顶部的按钮\n totalScroll(position){\n this.positionScroll(position)\n this.contentScoll(position)\n },\n // //加入购物车\n addToCart(){\n //获取购物车需要展示的东西\n const product={}\n product.image=this.topImages[0];\n product.title=this.goods.title;\n product.desc=this.goods.desc;\n product.price=this.goods.newprice;\n product.iid=this.iid;\n this.$store.dispatch('addCart',product).then(res=>{\n this.$toast.show(res,2000)\n })\n },\n bugthing(){\n //获取购物车需要展示的东西\n const product={}\n product.image=this.topImages[0];\n product.title=this.goods.title;\n product.desc=this.goods.desc;\n product.price=this.goods.newprice;\n product.iid=this.iid;\n this.$store.dispatch('addCart',product).then(res=>{\n this.$toast.show(res,2000)\n this.$router.push('/cart')\n })\n }\n }\n}\n</script>\n\n<style scoped>\n.detail{\n background-color: #ffffff;\n height: 100vh;\n position: relative;\n}\n#detail-nav{\n background-color:rgb(245, 243, 243) ; ;\n color:#999;\n}\n.content{\n left: 0;\n right: 0;\n top:44px;\n bottom: 58px;\n overflow: hidden;\n position: absolute;\n}\n.backup{\n z-index: 9;\n}\n</style>\n"]}]}