1
1
<template >
2
2
<div id =" detail" >
3
3
<detail-nav-bar class =" detail-nav" ></detail-nav-bar >
4
- <scroll class =" content" >
5
- <detail-swiper :topImg =" topImg" >npm</detail-swiper >
4
+ <!-- 加载图片后计算高度,初始化滚动失败, -->
5
+ <scroll class =" wrapper" ref =" scroll" >
6
+ <detail-swiper :top-img =" topImg" >npm</detail-swiper >
6
7
<detail-base-info :goods =" goods" ></detail-base-info >
7
8
<detail-shop-info :shop =" shop" ></detail-shop-info >
9
+ <detail-image-info :detail-info =" detailInfo" ></detail-image-info >
10
+ <detail-item-params :detail-params =" itemParams" ></detail-item-params >
11
+ <detail-info-comment :comment =" commentInfo" ></detail-info-comment >
12
+ <goods-list :goods =" recommends" ></goods-list >
8
13
</scroll >
9
-
10
14
</div >
11
15
</template >
12
-
13
16
<script >
14
17
import DetailNavBar from ' ./childComps/DetailNavBar.vue'
15
18
import DetailSwiper from ' ./childComps/DetailSwiper.vue'
16
- import {getDetail ,Goods ,Shop } from ' network/detail'
19
+ import {getDetail ,Goods ,Shop , getRecommend } from ' network/detail'
17
20
import DetailBaseInfo from ' ./childComps/DetailBaseInfo.vue'
18
21
import DetailShopInfo from ' ./childComps/DetailShopInfo'
19
22
import Scroll from ' components/common/scroll/Scroll'
23
+ import DetailImageInfo from ' ./childComps/DetailImageInfo.vue'
24
+ import DetailItemParams from ' ./childComps/DetailItemParams.vue'
25
+ import DetailInfoComment from ' ./childComps/DetailInfoComment.vue'
26
+ import GoodsList from ' components/content/goods/GoodsList.vue'
20
27
export default {
21
28
name: ' Detail' , // 使用keep-alive必须加name
22
29
components: {
@@ -25,8 +32,10 @@ export default {
25
32
DetailBaseInfo,
26
33
DetailShopInfo,
27
34
Scroll,
28
-
29
-
35
+ DetailImageInfo,
36
+ DetailItemParams,
37
+ DetailInfoComment,
38
+ GoodsList
30
39
31
40
},
32
41
data (){
@@ -35,45 +44,71 @@ export default {
35
44
topImg: null ,
36
45
goods: {},
37
46
shop: {},
47
+ detailInfo: {},
48
+ itemParams: {},
49
+ commentInfo: {},
50
+ recommends: []
38
51
}
39
52
},
40
53
created (){
54
+ // console.log("created");
41
55
// 保存商品id
42
56
this .iid = this .$route .params .iid ;
43
- // console.log('created')
44
-
57
+ // console.log('created')
45
58
// 请求商品图片
46
59
getDetail (this .iid ).then (res => {
47
60
const data = res .result
48
- this .topImg = res .result .itemInfo .topImages
61
+ this .topImg = res .result .itemInfo .topImages ;
49
62
// console.log(res.result);
50
63
// 获取商品数据
51
- this .goods = new Goods (data .itemInfo ,data .columns ,data .shopInfo .services )
64
+ this .goods = new Goods (data .itemInfo ,data .columns ,data .shopInfo .services );
52
65
// 请求店铺信息
53
- this .shop = new Shop (data .shopInfo )
66
+ this .shop = new Shop (data .shopInfo );
54
67
// console.log(this.shop);
68
+ // 取出商品详情信息
69
+ this .detailInfo = data .detailInfo ;
70
+ // 取出参数信息
71
+ this .itemParams = data .itemParams ;
72
+ // 取出评论信息
73
+ // console.log(data.rate);
74
+ if (data .rate .cRate !== 0 ){
75
+
76
+ this .commentInfo = data .rate .list [0 ];
77
+ // console.log(this.commentInfo);
78
+ }
79
+ }),
80
+ getRecommend ().then (res => {
81
+ // console.log(res);
82
+ // console.log(res.data.list);
83
+ this .recommends = res .data .list ;
55
84
})
56
-
57
-
58
-
85
+ },
86
+ mounted (){
87
+ // 监听图片刷新
88
+ this .$bus .$on (" imageLoad" ,()=> {
89
+ console .log (" detail里面组件监听" );
90
+ this .$refs .scroll .refresh (); // 重新计算高度
91
+ })
92
+ // this.$bus.$on("detailImgLoad",()=>{
93
+ // console.log("detailImgload里面组件监听");
94
+ // this.$refs.scroll.refresh(); //重新计算高度
95
+ // })
59
96
}
60
-
97
+ // updated(){
98
+ // this.$refs.scroll.refresh(); //重新计算高度
99
+ // }
61
100
}
62
101
</script >
63
102
64
103
<style scoped>
65
-
66
104
#detail {
67
105
position : relative ;
68
106
z-index : 9 ;
69
107
background-color :#fff ;
70
108
height : 100vh ;
71
109
}
72
- .content {
73
- position :relative ;
74
- bottom :49px ;
75
- right : 0 ;
76
- left : 0 ;
110
+ .wrapper {
111
+ height : calc ( 100% - 48px );
77
112
overflow : hidden ;
78
113
79
114
}
0 commit comments