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
12 KiB
1 line
12 KiB
{"remainingRequest":"/Users/linhuakun/Downloads/nodejs/codewhy/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/linhuakun/Downloads/nodejs/codewhy/src/views/detail/Detail.vue?vue&type=script&lang=js&","dependencies":[{"path":"/Users/linhuakun/Downloads/nodejs/codewhy/src/views/detail/Detail.vue","mtime":1607666509055},{"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:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCBEZXRhaWxOZXdCYXIgZnJvbSAiQC92aWV3cy9kZXRhaWwvY2hpbGRDb21wcy9EZXRhaWxOZXdCYXIiOwppbXBvcnQgRGV0YWlsU3dpcGVyIGZyb20gIkAvdmlld3MvZGV0YWlsL2NoaWxkQ29tcHMvRGV0YWlsU3dpcGVyIjsKaW1wb3J0IERldGFpbEJhc2VJbmZvIGZyb20gIkAvdmlld3MvZGV0YWlsL2NoaWxkQ29tcHMvRGV0YWlsQmFzZUluZm8iOwppbXBvcnQgRGV0YWlsU2hvcEluZm8gZnJvbSAiQC92aWV3cy9kZXRhaWwvY2hpbGRDb21wcy9EZXRhaWxTaG9wSW5mbyI7CmltcG9ydCBEZXRhaWxHb29kc0luZm8gZnJvbSAiQC92aWV3cy9kZXRhaWwvY2hpbGRDb21wcy9EZXRhaWxHb29kc0luZm8iOwppbXBvcnQgRGV0YWlsUGFyYW1JbmZvIGZyb20gIkAvdmlld3MvZGV0YWlsL2NoaWxkQ29tcHMvRGV0YWlsUGFyYW1JbmZvIjsKaW1wb3J0IERldGFpbENvbW1lbnRJbmZvIGZyb20gIkAvdmlld3MvZGV0YWlsL2NoaWxkQ29tcHMvRGV0YWlsQ29tbWVudEluZm8iOwppbXBvcnQgRGV0YWlsQm90dG9tQmFyIGZyb20gIkAvdmlld3MvZGV0YWlsL2NoaWxkQ29tcHMvRGV0YWlsQm90dG9tQmFyIjsKCmltcG9ydCBiYWNrVG9wIGZyb20gIkAvY29tcG9uZW50cy9jb250ZW50L2JhY2tUb3AvYmFja1RvcCI7CmltcG9ydCBHb29kc0xpc3QgZnJvbSAiQC9jb21wb25lbnRzL2NvbnRlbnQvZ29vZHMvR29vZHNMaXN0IjsKaW1wb3J0IHNjcm9sbCBmcm9tICJAL2NvbXBvbmVudHMvY29tbW9uL1Njcm9sbC9TY3JvbGwiOwoKaW1wb3J0IHtpdGVtTGlzdGVuZXJNaXhpbixiYWNrVG9wTWl4aW59IGZyb20gIkAvY29tbW9uL21peGluIjsKaW1wb3J0IHtkZWJvdW5jZX0gZnJvbSAiQC9jb21tb24vdXRpbHMiOwoKaW1wb3J0IHtnZXREZXRhaWwsIEdvb2RzLCBTaG9wLCBHb29kc1BhcmFtLCBnZXRSZWNvbW1lbmR9IGZyb20gIkAvbmV0d29yay9kZXRhaWwiOwoKCmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAiRGV0YWlsIiwKICBjb21wb25lbnRzOiB7CiAgICBEZXRhaWxOZXdCYXIsCiAgICBEZXRhaWxTd2lwZXIsCiAgICBEZXRhaWxCYXNlSW5mbywKICAgIERldGFpbFNob3BJbmZvLAogICAgRGV0YWlsR29vZHNJbmZvLAogICAgRGV0YWlsUGFyYW1JbmZvLAogICAgRGV0YWlsQ29tbWVudEluZm8sCiAgICBEZXRhaWxCb3R0b21CYXIsCgogICAgYmFja1RvcCwKICAgIEdvb2RzTGlzdCwKICAgIHNjcm9sbCwKCiAgfSwKICBtaXhpbnM6IFtpdGVtTGlzdGVuZXJNaXhpbixiYWNrVG9wTWl4aW5dLAogIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICBpaWQ6IG51bGwsCiAgICAgIHRvcEltYWdlczogW10sCiAgICAgIGdvb2RzOiB7fSwKICAgICAgc2hvcDoge30sCiAgICAgIGRldGFpbEluZm86IHt9LAogICAgICBwYXJhbUluZm86IHt9LAogICAgICBjb21tZW50SW5mbzoge30sCiAgICAgIHJlY29tbWVuZHM6IFtdLAogICAgICB0aGVtZVRvcFlzOiBbXSwKICAgICAgZ2V0VGhlbWVUb3BZOiBudWxsLAogICAgICBjdXJyZW50SW5kZXg6MCwKCiAgICAgIG1lc3NhZ2U6JycsCiAgICAgIHNob3c6ZmFsc2UKICAgIH0KICB9LAogIGNyZWF0ZWQoKSB7CiAgICAvL2hvbWXkuLvpobXkvKDlhaVpaWQKICAgIHRoaXMuaWlkID0gdGhpcy4kcm91dGUucGFyYW1zLmlpZAogICAgLy/mlbDmja7nmoTlsZXnpLoKICAgIGdldERldGFpbCh0aGlzLmlpZCkudGhlbihyZXMgPT4gewogICAgICBjb25zdCBkYXRhID0gcmVzLmRhdGEucmVzdWx0CiAgICAgIC8v6L2u5pKt5Zu+55qE5YiH5o2iCiAgICAgIHRoaXMudG9wSW1hZ2VzID0gZGF0YS5pdGVtSW5mby50b3BJbWFnZXMKICAgICAgLy/llYblk4Hku4vnu40KICAgICAgdGhpcy5nb29kcyA9IG5ldyBHb29kcyhkYXRhLml0ZW1JbmZvLCBkYXRhLmNvbHVtbnMsIGRhdGEuc2hvcEluZm8uc2VydmljZXMpCiAgICAgIC8v5bqX6ZO65ZCN55qE5bGV56S6CiAgICAgIHRoaXMuc2hvcCA9IG5ldyBTaG9wKGRhdGEuc2hvcEluZm8pCiAgICAgIC8v56m/552A5bGV56S6CiAgICAgIHRoaXMuZGV0YWlsSW5mbyA9IGRhdGEuZGV0YWlsSW5mbwogICAgICAvL+WVhuWTgeaOqOiNkOeahOWxleekugogICAgICB0aGlzLnBhcmFtSW5mbyA9IG5ldyBHb29kc1BhcmFtKGRhdGEuaXRlbVBhcmFtcy5pbmZvLCBkYXRhLml0ZW1QYXJhbXMucnVsZSkKCiAgICAgIGlmIChkYXRhLnJhdGUubGlzdCkgewogICAgICAgIHRoaXMuY29tbWVudEluZm8gPSBkYXRhLnJhdGUubGlzdFswXTsKICAgICAgfQogICAgICAvL+WvvOiIquagj+eCueWHu+WIh+aNogogICAgICB0aGlzLmdldFRoZW1lVG9wWSA9IGRlYm91bmNlKCgpID0+IHsKICAgICAgICB0aGlzLnRoZW1lVG9wWXMgPSBbXQogICAgICAgIHRoaXMudGhlbWVUb3BZcy5wdXNoKDApOwogICAgICAgIHRoaXMudGhlbWVUb3BZcy5wdXNoKHRoaXMuJHJlZnMucGFyYW1zLiRlbC5vZmZzZXRUb3ApCiAgICAgICAgdGhpcy50aGVtZVRvcFlzLnB1c2godGhpcy4kcmVmcy5jb21tZW50LiRlbC5vZmZzZXRUb3ApCiAgICAgICAgdGhpcy50aGVtZVRvcFlzLnB1c2godGhpcy4kcmVmcy5yZWNvbW1lbmQuJGVsLm9mZnNldFRvcCkKICAgICAgICB0aGlzLnRoZW1lVG9wWXMucHVzaChOdW1iZXIuTUFYX1ZBTFVFKQogICAgICB9LCA1MDApCgogICAgfSkKICAgIC8v6I635Y+W6K+E6K6655qE5pWw5o2uCiAgICBnZXRSZWNvbW1lbmQoKS50aGVuKHJlcyA9PiB7CiAgICAgIHRoaXMucmVjb21tZW5kcyA9IHJlcy5kYXRhLmRhdGEubGlzdAogICAgfSkKICB9LAogIG1vdW50ZWQoKSB7CiAgfSwKICBkZXN0cm95ZWQoKSB7CiAgICAvL+aXoGtlZXAtbGl2ZeaXtmFjdGl2YXRlZOaXoOazleS9v+eUqAogICAgdGhpcy4kYnVzLiRvZmYoJ2l0ZW1JbWdMb2FkJywgdGhpcy5pdGVtSW1nTGlzdGVuZXIpCiAgfSwKICBtZXRob2RzOiB7CiAgICAvL+S4iuaLieWbvueJh+WKoOi9vQogICAgZGV0YWlsSW1hZ2Vsb2FkKCkgewogICAgICB0aGlzLml0ZW1JbWdMaXN0ZW5lcigpCiAgICAgIHRoaXMuZ2V0VGhlbWVUb3BZKCkKICAgIH0sCiAgICAvL+WvvOiIquagj+eCueWHu+WIh+aNogogICAgdGl0bGVDbGljayhpbmRleCkgewogICAgICB0aGlzLiRyZWZzLnNjcm9sbC5zY3JvbGxUbygwLCAtdGhpcy50aGVtZVRvcFlzW2luZGV4XSwgMTAwMCk7CiAgICB9LAogICAgLy/kvY3nva7np7vliqjml7blr7zoiKrmoI/ot5/nnYDnp7vliqgKICAgIHBvc2l0aW9uU2Nyb2xsKHBvc2l0aW9uKSB7CiAgICAgIGNvbnN0IHBvc2l0aW9uWSA9IC1wb3NpdGlvbi55CiAgICAgIGxldCBsZW5ndGggPSB0aGlzLnRoZW1lVG9wWXMubGVuZ3RoCiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoLTE7IGkrKykgewogICAgICAgIGlmKHRoaXMuY3VycmVudEluZGV4IT09aSYmKHBvc2l0aW9uWT49dGhpcy50aGVtZVRvcFlzW2ldJiZwb3NpdGlvblk8dGhpcy50aGVtZVRvcFlzW2krMV0pKQogICAgICAgIHsKICAgICAgICAgIHRoaXMgLmN1cnJlbnRJbmRleD1pOwogICAgICAgICAgdGhpcy4kcmVmcy5uYXYuY3VycmVudEluZGV4PXRoaXMuY3VycmVudEluZGV4CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgLy9taXhpbua3t+WFpeWbnumAgOmhtumDqOeahOaMiemSrgogICAgdG90YWxTY3JvbGwocG9zaXRpb24pewogICAgICB0aGlzLnBvc2l0aW9uU2Nyb2xsKHBvc2l0aW9uKQogICAgICB0aGlzLmNvbnRlbnRTY29sbChwb3NpdGlvbikKICAgIH0sCiAgICAvL+WKoOWFpei0reeJqei9pgogICAgYWRkVG9DYXJ0KCl7CiAgICAgIC8v6I635Y+W6LSt54mp6L2m6ZyA6KaB5bGV56S655qE5Lic6KW/CiAgICAgICBjb25zdCBwcm9kdWN0PXt9CiAgICAgICAgcHJvZHVjdC5pbWFnZT10aGlzLnRvcEltYWdlc1swXTsKICAgICAgICBwcm9kdWN0LnRpdGxlPXRoaXMuZGV0YWlsSW5mby50aXRsZTsKICAgICAgICBwcm9kdWN0LmRlc2M9dGhpcy5kZXRhaWxJbmZvLmRlc2M7CiAgICAgICAgcHJvZHVjdC5wcmljZT10aGlzLmdvb2RzLm5vd1ByaWNlOwogICAgICAgIHByb2R1Y3QuaWlkPXRoaXMuaWlkOwogICAgICAgIHRoaXMuJHN0b3JlLmRpc3BhdGNoKCdhZGRDYXJ0Jyxwcm9kdWN0KS50aGVuKHJlcz0+ewogICAgICAgICAgdGhpcy4kdG9hc3Quc2hvdyhyZXMsMjAwMCkKICAgICAgICB9KQogICAgfQogIH0KfQo="},{"version":3,"sources":["Detail.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAsBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;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;;AAEA;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","file":"Detail.vue","sourceRoot":"src/views/detail","sourcesContent":["<template>\n <div id=\"detail\" >\n <DetailNewBar class=\"detail-nav\" @titleClick=\"titleClick\" ref=\"nav\"/>\n <scroll class=\"content\"\n ref=\"scroll\"\n @scroll=\"totalScroll\"\n :probe-type=\"3\" >\n <DetailSwiper :top-images=\"topImages\"/>\n <DetailBaseInfo :goods=\"goods\"/>\n <DetailShopInfo :shop=\"shop\" />\n <DetailGoodsInfo :detail-info=\"detailInfo\" @detailImageload=\"detailImageload\"/>\n <DetailParamInfo ref=\"params\" :param-info=\"paramInfo\"/>\n <DetailCommentInfo ref=\"comment\" :comment-info=\"commentInfo\"/>\n <GoodsList ref=\"recommend\" :goods=\"recommends\"></GoodsList>\n </scroll>\n <detail-bottom-bar class=\"bottom-nav\" @addToCart=\"addToCart\"/>\n\n <back-top @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 GoodsList from \"@/components/content/goods/GoodsList\";\nimport scroll from \"@/components/common/Scroll/Scroll\";\n\nimport {itemListenerMixin,backTopMixin} from \"@/common/mixin\";\nimport {debounce} from \"@/common/utils\";\n\nimport {getDetail, Goods, Shop, GoodsParam, getRecommend} 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 GoodsList,\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主页传入iid\n this.iid = this.$route.params.iid\n //数据的展示\n getDetail(this.iid).then(res => {\n const data = res.data.result\n //轮播图的切换\n this.topImages = data.itemInfo.topImages\n //商品介绍\n this.goods = new Goods(data.itemInfo, data.columns, data.shopInfo.services)\n //店铺名的展示\n this.shop = new Shop(data.shopInfo)\n //穿着展示\n this.detailInfo = data.detailInfo\n //商品推荐的展示\n this.paramInfo = new GoodsParam(data.itemParams.info, data.itemParams.rule)\n\n if (data.rate.list) {\n this.commentInfo = data.rate.list[0];\n }\n //导航栏点击切换\n this.getThemeTopY = debounce(() => {\n this.themeTopYs = []\n this.themeTopYs.push(0);\n this.themeTopYs.push(this.$refs.params.$el.offsetTop)\n this.themeTopYs.push(this.$refs.comment.$el.offsetTop)\n this.themeTopYs.push(this.$refs.recommend.$el.offsetTop)\n this.themeTopYs.push(Number.MAX_VALUE)\n }, 500)\n\n })\n //获取评论的数据\n getRecommend().then(res => {\n this.recommends = res.data.data.list\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 //位置移动时导航栏跟着移动\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.detailInfo.title;\n product.desc=this.detailInfo.desc;\n product.price=this.goods.nowPrice;\n product.iid=this.iid;\n this.$store.dispatch('addCart',product).then(res=>{\n this.$toast.show(res,2000)\n })\n }\n }\n}\n</script>\n\n<style scoped>\n#detail{\n position: relative;\n z-index: 9;\n background-color: #ffffff;\n height: 100vh;\n}\n.detail-nav{\n position: relative;\n z-index: 9;\n background-color: #ffffff;\n}\n.content{\n height: calc(100% - 96px);\n position: relative;\n}\n</style>\n"]}]} |