Commit 7f3de0e04f2a96c41da28eba7b057b00f4954a29
Exists in
master
Merge branch 'master' of http://121.40.31.31:8888/jp/gulu-vue
Showing
4 changed files
Show diff stats
src/pages.json
1 | { | 1 | { |
2 | "pages": [ | 2 | "pages": [ |
3 | { | 3 | { |
4 | "path": "pages/index/index", | 4 | "path": "pages/index/index", |
5 | "style": { | 5 | "style": { |
6 | "navigationBarTitleText": "商城一览" | 6 | "navigationBarTitleText": "商城一览" |
7 | } | 7 | } |
8 | }, | 8 | }, |
9 | { | 9 | { |
10 | "path": "pages/user/user", | 10 | "path": "pages/user/user", |
11 | "style": { | 11 | "style": { |
12 | "navigationBarTitleText": "我的" | 12 | "navigationBarTitleText": "我的" |
13 | } | 13 | } |
14 | }, | 14 | }, |
15 | { | 15 | { |
16 | "path": "pages/addOpticsData/addOpticsData", | 16 | "path": "pages/addOpticsData/addOpticsData", |
17 | "style": { | 17 | "style": { |
18 | "navigationBarTitleText": "验光数据" | 18 | "navigationBarTitleText": "验光数据" |
19 | } | 19 | } |
20 | }, | 20 | }, |
21 | { | 21 | { |
22 | "path": "pages/detailsChoiceArgs/detailsChoiceArgs", | 22 | "path": "pages/detailsChoiceArgs/detailsChoiceArgs", |
23 | "style": { | 23 | "style": { |
24 | "navigationBarTitleText": "镜片名称名称" | 24 | "navigationBarTitleText": "镜片名称名称" |
25 | } | 25 | } |
26 | }, | 26 | }, |
27 | { | 27 | { |
28 | "path": "pages/purchaseLenses/purchaseLenses", | 28 | "path": "pages/purchaseLenses/purchaseLenses", |
29 | "style": { | 29 | "style": { |
30 | "navigationBarTitleText": "参数选择" | 30 | "navigationBarTitleText": "参数选择" |
31 | } | 31 | } |
32 | }, | 32 | }, |
33 | { | 33 | { |
34 | "path": "pages/lensDetails/lensDetails", | 34 | "path": "pages/lensDetails/lensDetails", |
35 | "style": { | 35 | "style": { |
36 | "navigationBarTitleText": "产品详情" | 36 | "navigationBarTitleText": "产品详情" |
37 | } | 37 | } |
38 | }, | 38 | }, |
39 | { | 39 | { |
40 | "path": "pages/details/details", | 40 | "path": "pages/details/details", |
41 | "style": { | 41 | "style": { |
42 | "navigationBarTitleText": "产品详情" | 42 | "navigationBarTitleText": "产品详情" |
43 | } | 43 | } |
44 | }, | 44 | }, |
45 | { | 45 | { |
46 | "path": "pages/myOrderPaying/myOrderPaying", | 46 | "path": "pages/myOrderPaying/myOrderPaying", |
47 | "style": { | 47 | "style": { |
48 | "navigationBarTitleText": "我的订单" | 48 | "navigationBarTitleText": "我的订单" |
49 | } | 49 | } |
50 | }, | 50 | }, |
51 | { | 51 | { |
52 | "path": "pages/myOrder/myOrder", | 52 | "path": "pages/myOrder/myOrder", |
53 | "style": { | 53 | "style": { |
54 | "navigationBarTitleText": "我的订单" | 54 | "navigationBarTitleText": "我的订单" |
55 | } | 55 | } |
56 | }, | 56 | }, |
57 | { | 57 | { |
58 | "path": "pages/cart/cart", | 58 | "path": "pages/cart/cart", |
59 | "style": { | 59 | "style": { |
60 | "navigationBarTitleText": "购物车", | 60 | "navigationBarTitleText": "购物车", |
61 | // "disableScroll":true, | 61 | // "disableScroll":true, |
62 | "app-plus":{ | 62 | "app-plus":{ |
63 | "bounce":"none" | 63 | "bounce":"none" |
64 | } | 64 | } |
65 | } | 65 | } |
66 | }, | 66 | }, |
67 | { | 67 | { |
68 | "path": "pages/frameDetail/frameDetail", | 68 | "path": "pages/frameDetail/frameDetail", |
69 | "style": { | 69 | "style": { |
70 | "navigationBarTitleText": "产品详情" | 70 | "navigationBarTitleText": "产品详情" |
71 | } | 71 | } |
72 | }, | 72 | }, |
73 | // { | 73 | // { |
74 | // "path": "pages/refundProgress/refundProgress", | 74 | // "path": "pages/refundProgress/refundProgress", |
75 | // "style": { | 75 | // "style": { |
76 | // "navigationBarTitleText": "申请退款" | 76 | // "navigationBarTitleText": "申请退款" |
77 | // } | 77 | // } |
78 | // }, | 78 | // }, |
79 | // { | 79 | // { |
80 | // "path": "pages/address/addAddress", | 80 | // "path": "pages/address/addAddress", |
81 | // "style": { | 81 | // "style": { |
82 | // "navigationBarTitleText": "新增地址" | 82 | // "navigationBarTitleText": "新增地址" |
83 | // } | 83 | // } |
84 | // }, | 84 | // }, |
85 | // { | 85 | // { |
86 | // "path": "pages/address/addressList", | 86 | // "path": "pages/address/addressList", |
87 | // "style": { | 87 | // "style": { |
88 | // "navigationBarTitleText": "地址管理" | 88 | // "navigationBarTitleText": "地址管理" |
89 | // } | 89 | // } |
90 | // }, | 90 | // }, |
91 | { | 91 | { |
92 | "path": "pages/confirmOrder/confirmOrder", | 92 | "path": "pages/confirmOrder/confirmOrder", |
93 | "style": { | 93 | "style": { |
94 | "navigationBarTitleText": "确认订单" | 94 | "navigationBarTitleText": "确认订单" |
95 | } | 95 | } |
96 | }, | 96 | }, |
97 | // { | 97 | // { |
98 | // "path": "pages/refundment/refundWays", | 98 | // "path": "pages/refundment/refundWays", |
99 | // "style": { | 99 | // "style": { |
100 | // "navigationBarTitleText": "退款方式" | 100 | // "navigationBarTitleText": "退款方式" |
101 | // } | 101 | // } |
102 | // }, | 102 | // }, |
103 | // { | 103 | // { |
104 | // "path": "pages/refundment/refundment", | 104 | // "path": "pages/refundment/refundment", |
105 | // "style": { | 105 | // "style": { |
106 | // "navigationBarTitleText": "申请退款" | 106 | // "navigationBarTitleText": "申请退款" |
107 | // } | 107 | // } |
108 | // }, | 108 | // }, |
109 | { | 109 | { |
110 | "path": "pages/predelivery/predelivery", | 110 | "path": "pages/predelivery/predelivery", |
111 | "style": { | 111 | "style": { |
112 | "navigationBarTitleText": "待发货" | 112 | "navigationBarTitleText": "待发货" |
113 | } | 113 | } |
114 | }, | 114 | }, |
115 | { | 115 | { |
116 | "path": "pages/customerService/customerService", | 116 | "path": "pages/customerService/customerService", |
117 | "style": { | 117 | "style": { |
118 | "navigationBarTitleText": "在线客服" | 118 | "navigationBarTitleText": "在线客服" |
119 | } | 119 | } |
120 | }, | 120 | }, |
121 | { | 121 | { |
122 | "path": "pages/detailStandard/detailStandard_sun", | 122 | "path": "pages/detailStandard/detailStandard_sun", |
123 | "style": { | 123 | "style": { |
124 | "navigationBarTitleText": "太阳镜选购页" | 124 | "navigationBarTitleText": "太阳镜选购页" |
125 | } | 125 | } |
126 | }, | 126 | }, |
127 | { | 127 | { |
128 | "path": "pages/detailStandard/detailStandard_k", | 128 | "path": "pages/detailStandard/detailStandard_k", |
129 | "style": { | 129 | "style": { |
130 | "navigationBarTitleText": "镜框选购页" | 130 | "navigationBarTitleText": "镜框选购页" |
131 | } | 131 | } |
132 | }, | 132 | }, |
133 | { | 133 | { |
134 | "path": "pages/newOpticsData/newOpticsData", | 134 | "path": "pages/newOpticsData/newOpticsData", |
135 | "style": { | 135 | "style": { |
136 | "navigationBarTitleText": "验光数据" | 136 | "navigationBarTitleText": "验光数据" |
137 | } | 137 | } |
138 | } | 138 | } |
139 | ], | 139 | ], |
140 | "subpackages": [ | 140 | "subpackages": [ |
141 | { | 141 | { |
142 | "root": "pages/refundment", | 142 | "root": "pages/refundment", |
143 | "pages": [ | 143 | "pages": [ |
144 | "pages/refundment/refundWays", | 144 | "pages/refundment/refundWays", |
145 | "pages/refundment/refundment", | 145 | "pages/refundment/refundment", |
146 | "pages/refundProgress/refundProgress" | 146 | "pages/refundProgress/refundProgress" |
147 | ] | 147 | ] |
148 | }, | 148 | }, |
149 | { | 149 | { |
150 | "root": "pages/address", | 150 | "root": "pages/address", |
151 | "name": "pack2", | 151 | "name": "pack2", |
152 | "pages": [ | 152 | "pages": [ |
153 | "pages/address/addAddress", | 153 | "pages/address/addAddress", |
154 | "pages/address/addressList" | 154 | "pages/address/addressList" |
155 | ] | 155 | ] |
156 | } | 156 | } |
157 | ], | 157 | ], |
158 | "globalStyle": { | 158 | "globalStyle": { |
159 | "navigationBarTextStyle": "black", | 159 | "navigationBarTextStyle": "black", |
160 | "navigationBarTitleText": "uni-app", | 160 | "navigationBarTitleText": "uni-app", |
161 | "navigationBarBackgroundColor": "#F8F8F8", | 161 | "navigationBarBackgroundColor": "#F8F8F8", |
162 | "backgroundColor": "#F8F8F8" | 162 | "backgroundColor": "#F8F8F8" |
163 | }, | 163 | }, |
164 | "tabBar": { | 164 | "tabBar": { |
165 | "color": "#C0C4CC", | 165 | "color": "#C0C4CC", |
166 | "selectedColor": "#fa436a", | 166 | "selectedColor": "#fa436a", |
167 | "borderStyle": "black", | 167 | "borderStyle": "black", |
168 | "backgroundColor": "#ffffff", | 168 | "backgroundColor": "#ffffff", |
169 | "list": [ | 169 | "list": [ |
170 | { | 170 | { |
171 | "pagePath": "pages/index/index", | 171 | "pagePath": "pages/index/index", |
172 | "iconPath": "static/tab-home.png", | 172 | "iconPath": "static/tab-home.png", |
173 | "selectedIconPath": "static/tab-home-current.png", | 173 | "selectedIconPath": "static/tab-home-current.png", |
174 | "text": "首页" | 174 | "text": "首页" |
175 | }, | 175 | }, |
176 | { | 176 | { |
177 | "pagePath": "pages/cart/cart", | 177 | "pagePath": "pages/cart/cart", |
178 | "iconPath": "static/tab-cart.png", | 178 | "iconPath": "static/tab-cart.png", |
179 | "selectedIconPath": "static/tab-cart-current.png", | 179 | "selectedIconPath": "static/tab-cart-current.png", |
180 | "text": "购物车" | 180 | "text": "购物车" |
181 | }, | 181 | }, |
182 | { | 182 | { |
183 | "pagePath": "pages/user/user", | 183 | "pagePath": "pages/user/user", |
184 | "iconPath": "static/tab-my.png", | 184 | "iconPath": "static/tab-my.png", |
185 | "selectedIconPath": "static/tab-my-current.png", | 185 | "selectedIconPath": "static/tab-my-current.png", |
186 | "text": "我的" | 186 | "text": "我的" |
187 | } | 187 | } |
188 | ] | 188 | ] |
189 | }, | 189 | }, |
190 | "condition": { | 190 | "condition": { |
191 | "current": 0, | 191 | "current": 0, |
192 | "list": [ | 192 | "list": [ |
193 | // { | 193 | // { |
194 | // "name": "首页", | 194 | // "name": "首页", |
195 | // "path": "pages/test/index", | 195 | // "path": "pages/test/index", |
196 | // "query": "" | 196 | // "query": "" |
197 | // }, | 197 | // }, |
198 | { | 198 | { |
199 | "name": "首页", | 199 | "name": "首页", |
200 | "path": "pages/index/index", | 200 | "path": "pages/index/index", |
201 | "query": "" | 201 | "query": "" |
202 | }, | 202 | }, |
203 | { | 203 | { |
204 | "name": "产品详情", | 204 | "name": "产品详情", |
205 | "path": "pages/details/details", | ||
206 | "query": "" | ||
207 | }, | ||
208 | { | ||
209 | "name": "旧版产品详情", | ||
205 | "path": "pages/details/details", | 210 | "path": "pages/frameDetail/frameDetail", |
206 | "query": "" | 211 | "query": "" |
207 | }, | 212 | }, |
208 | { | 213 | { |
209 | "name": "镜片、美瞳参数选择", | 214 | "name": "镜片、美瞳参数选择", |
210 | "path": "pages/purchaseLenses/purchaseLenses", | 215 | "path": "pages/purchaseLenses/purchaseLenses", |
211 | "query": "" | 216 | "query": "" |
212 | }, | 217 | }, |
213 | { | 218 | { |
214 | "name": "确认订单", | 219 | "name": "确认订单", |
215 | "path": "pages/confirmOrder/confirmOrder", | 220 | "path": "pages/confirmOrder/confirmOrder", |
216 | "query": "" | 221 | "query": "" |
217 | }, | 222 | }, |
218 | { | 223 | { |
219 | "name": "新增地址", | 224 | "name": "新增地址", |
220 | "path": "pages/address/addAddress", | 225 | "path": "pages/address/addAddress", |
221 | "query": "" | 226 | "query": "" |
222 | }, | 227 | }, |
223 | { | 228 | { |
224 | "name": "地址管理", | 229 | "name": "地址管理", |
225 | "path": "pages/address/addressList", | 230 | "path": "pages/address/addressList", |
226 | "query": "" | 231 | "query": "" |
227 | }, | 232 | }, |
228 | { | 233 | { |
229 | "name": "我的订单", | 234 | "name": "我的订单", |
230 | "path": "pages/myOrder/myOrder", | 235 | "path": "pages/myOrder/myOrder", |
231 | "query": "" | 236 | "query": "" |
232 | }, | 237 | }, |
233 | { | 238 | { |
234 | "name": "待付款订单详情", | 239 | "name": "待付款订单详情", |
235 | "path": "pages/myOrderPaying/myOrderPaying", | 240 | "path": "pages/myOrderPaying/myOrderPaying", |
236 | "query": "" | 241 | "query": "" |
237 | }, | 242 | }, |
238 | { | 243 | { |
239 | "name": "我的", | 244 | "name": "我的", |
240 | "path": "pages/user/user", | 245 | "path": "pages/user/user", |
241 | "query": "" | 246 | "query": "" |
242 | } | 247 | } |
243 | ] | 248 | ] |
244 | } | 249 | } |
245 | } | 250 | } |
src/pages/details/components/Introduce.vue
File was created | 1 | <template> | |
2 | <view class="introduce"> | ||
3 | <!-- 迭代时建议配合接口修改 为数组 --> | ||
4 | <view v-if="tag.prod_tag_age && tag.prod_tag_age.length !== 0"> | ||
5 | <view> | ||
6 | 年龄:<view | ||
7 | v-for="(item,index) in tag.prod_tag_age" | ||
8 | :key="index" | ||
9 | > | ||
10 | {{item.label}}<text v-if="index !== tag.prod_tag_age.length - 1">/</text> | ||
11 | </view> | ||
12 | </view> | ||
13 | </view> | ||
14 | <view v-if="tag.prod_tag_color && tag.prod_tag_color.length !== 0"> | ||
15 | <view> | ||
16 | 颜色:<view | ||
17 | v-for="(item,index) in tag.prod_tag_color" | ||
18 | :key="index" | ||
19 | > | ||
20 | {{item.label}}<text v-if="index !== tag.prod_tag_color.length - 1">/</text> | ||
21 | </view> | ||
22 | </view> | ||
23 | </view> | ||
24 | <view v-if="tag.prod_tag_face && tag.prod_tag_face.length !== 0"> | ||
25 | <view> | ||
26 | 脸型:<view | ||
27 | v-for="(item,index) in tag.prod_tag_face" | ||
28 | :key="index" | ||
29 | > | ||
30 | {{item.label}}<text v-if="index !== tag.prod_tag_face.length - 1">/</text> | ||
31 | </view> | ||
32 | </view> | ||
33 | </view> | ||
34 | <view v-if="tag.prod_tag_freesend && tag.prod_tag_freesend.length !== 0"> | ||
35 | <view> | ||
36 | 赠品:<view | ||
37 | v-for="(item,index) in tag.prod_tag_freesend" | ||
38 | :key="index" | ||
39 | > | ||
40 | {{item.label}}<text v-if="index !== tag.prod_tag_freesend.length - 1">/</text> | ||
41 | </view> | ||
42 | </view> | ||
43 | </view> | ||
44 | <view v-if="tag.prod_tag_insurance && tag.prod_tag_insurance.length !== 0"> | ||
45 | <view> | ||
46 | 保险:<view | ||
47 | v-for="(item,index) in tag.prod_tag_insurance" | ||
48 | :key="index" | ||
49 | > | ||
50 | {{item.label}}<text v-if="index !== tag.prod_tag_insurance.length - 1">/</text> | ||
51 | </view> | ||
52 | </view> | ||
53 | </view> | ||
54 | <view v-if="tag.prod_tag_metal && tag.prod_tag_metal.length !== 0"> | ||
55 | <view> | ||
56 | 材质:<view | ||
57 | v-for="(item,index) in tag.prod_tag_metal" | ||
58 | :key="index" | ||
59 | > | ||
60 | {{item.label}}<text v-if="index !== tag.prod_tag_metal.length - 1">/</text> | ||
61 | </view> | ||
62 | </view> | ||
63 | </view> | ||
64 | <view v-if="tag.prod_tag_personal && tag.prod_tag_personal.length !== 0"> | ||
65 | <view> | ||
66 | 个性:<view | ||
67 | v-for="(item,index) in tag.prod_tag_personal" | ||
68 | :key="index" | ||
69 | > | ||
70 | {{item.label}}<text v-if="index !== tag.prod_tag_personal.length - 1">/</text> | ||
71 | </view> | ||
72 | </view> | ||
73 | </view> | ||
74 | <view v-if="tag.prod_tag_sense && tag.prod_tag_sense.length !== 0"> | ||
75 | <view> | ||
76 | 场景:<view | ||
77 | v-for="(item,index) in tag.prod_tag_sense" | ||
78 | :key="index" | ||
79 | > | ||
80 | {{item.label}}<text v-if="index !== tag.prod_tag_sense.length - 1">/</text> | ||
81 | </view> | ||
82 | </view> | ||
83 | </view> | ||
84 | <view v-if="tag.prod_tag_sex && tag.prod_tag_sex.length !== 0"> | ||
85 | <view> | ||
86 | 性别:<view | ||
87 | v-for="(item,index) in tag.prod_tag_sex" | ||
88 | :key="index" | ||
89 | > | ||
90 | {{item.label}}<text v-if="index !== tag.prod_tag_sex.length - 1">/</text> | ||
91 | </view> | ||
92 | </view> | ||
93 | </view> | ||
94 | <view v-if="tag.prod_tag_style && tag.prod_tag_style.length !== 0"> | ||
95 | <view> | ||
96 | 风格:<view | ||
97 | v-for="(item,index) in tag.prod_tag_style" | ||
98 | :key="index" | ||
99 | > | ||
100 | {{item.label}}<text v-if="index !== tag.prod_tag_style.length - 1">/</text> | ||
101 | </view> | ||
102 | </view> | ||
103 | </view> | ||
104 | <view v-if="tag.prod_tag_weight && tag.prod_tag_weight.length !== 0"> | ||
105 | <view> | ||
106 | 重量:<view | ||
107 | v-for="(item,index) in tag.prod_tag_weight" | ||
108 | :key="index" | ||
109 | > | ||
110 | {{item.label}}<text v-if="index !== tag.prod_tag_weight.length - 1">/</text> | ||
111 | </view> | ||
112 | </view> | ||
113 | </view> | ||
114 | </view> | ||
115 | </template> | ||
116 | |||
117 | <script> | ||
118 | export default { | ||
119 | props: { | ||
120 | tag: Object, | ||
121 | }, | ||
122 | created() { | ||
123 | console.log('lalal') | ||
124 | console.log('tag', this) | ||
125 | }, | ||
126 | updated() { | ||
127 | console.log('lalal-2') | ||
128 | console.log('tag-2', this.tag) | ||
129 | }, | ||
130 | } | ||
131 | </script> | ||
132 | |||
133 | <style lang="scss" scoped> | ||
134 | .introduce { | ||
135 | margin-bottom: 4px; | ||
136 | view { | ||
137 | display: flex; | ||
138 | align-content: center; | ||
139 | font-size: 14px; | ||
140 | color: #333333; | ||
141 | } | ||
142 | span { | ||
143 | margin-left: 6px; | ||
144 | margin-right: 5px; | ||
145 | font-family: "PingFangSC-Regular"; | ||
146 | } | ||
147 | } | ||
148 | </style> | ||
149 |
src/pages/details/details.vue
1 | <template> | 1 | <template> |
2 | <view class="container"> | 2 | <view class="container"> |
3 | <!-- 基础信息 --> | ||
3 | <view class="basic_info"> | 4 | <view class="basic_info"> |
4 | <!-- 轮播图 --> | 5 | <!-- 轮播图 --> |
5 | <swiper | 6 | <swiper |
6 | class="swiperImage" | 7 | class="swiperImage" |
7 | :indicator-dots="true" | 8 | :indicator-dots="true" |
8 | :autoplay="true" | 9 | :autoplay="true" |
9 | :interval="4000" | 10 | :interval="4000" |
10 | :duration="500" | 11 | :duration="500" |
11 | > | 12 | > |
12 | <swiper-item | 13 | <swiper-item |
13 | v-for="(item, index) in carousel" | 14 | v-for="(item, index) in carousel" |
14 | :key="index" | 15 | :key="index" |
15 | > | 16 | > |
16 | <image | 17 | <image |
17 | :src="item" | 18 | :src="item" |
18 | mode="scaleToFill" | 19 | mode="scaleToFill" |
19 | ></image> | 20 | ></image> |
20 | </swiper-item> | 21 | </swiper-item> |
21 | </swiper> | 22 | </swiper> |
22 | <!-- 产品价格及购买人数 --> | 23 | <!-- 产品价格及购买人数 --> |
23 | <view class="info_pay"> | 24 | <view class="info_pay"> |
24 | <view>¥{{goodsInfo.price || '暂无'}}<span | 25 | <view>¥{{goodsInfo.price || '暂无'}}<span |
25 | v-if="goodsInfo.discountPrice" | 26 | v-if="goodsInfo.discountPrice" |
26 | class="info_pay_discount" | 27 | class="info_pay_discount" |
27 | >¥{{goodsInfo.discountPrice}}</span></view> | 28 | >¥{{goodsInfo.discountPrice}}</span></view> |
28 | <span class="info_pay_number">{{goodsInfo.tradeNumber || '暂无'}}人购买过</span> | 29 | <span class="info_pay_number">{{goodsInfo.tradeNumber || '暂无'}}人购买过</span> |
29 | </view> | 30 | </view> |
30 | <!-- 产品名称 --> | 31 | <!-- 产品名称 --> |
31 | <view class="info_name"> | 32 | <view class="info_name"> |
32 | <text class="info_name_name">{{goodsInfo.name || '暂无'}}</text> | 33 | <text class="info_name_name">{{goodsInfo.name || '暂无'}}</text> |
33 | <view class="info_name_share"> | 34 | <view class="info_name_share"> |
34 | <image src="/static/img/detail/share-icon.png"></image> | 35 | <image src="/static/img/detail/share-icon.png"></image> |
35 | <text>分享</text> | 36 | <text>分享</text> |
36 | </view> | 37 | </view> |
37 | </view> | 38 | </view> |
38 | <!-- 产品售后信息 --> | 39 | <!-- 产品售后信息 --> |
39 | <view class="info_after"> | 40 | <view class="info_after"> |
40 | <span>支持7天无理由退货</span> | 41 | <span>支持7天无理由退货</span> |
41 | <span>顺丰发货</span> | 42 | <span>顺丰发货</span> |
42 | <span>30天质量保证</span> | 43 | <span>30天质量保证</span> |
43 | </view> | 44 | </view> |
44 | </view> | 45 | </view> |
46 | <!-- 详细信息 --> | ||
45 | <view class="detail_info"> | 47 | <view class="detail_info"> |
46 | <!-- 详细信息菜单 --> | 48 | <!-- 详细信息菜单 --> |
47 | <view class="screen_bar"> | 49 | <view class="screen_bar"> |
48 | <view | 50 | <view |
49 | v-for="item in screenItems" | 51 | v-for="(item, index) in screenItems" |
50 | :key="item.current" | 52 | :key="index" |
51 | @click="tabChange(item.current)" | 53 | @click="tabChange(index)" |
52 | > | 54 | > |
53 | <view | 55 | <view |
54 | class="screen_item" | 56 | class="screen_item" |
55 | v-bind:class="{ item_active: item_current === item.current }" | 57 | v-bind:class="{ item_active: item_current === index }" |
56 | >{{ item.text || '暂无' }}</view> | 58 | >{{ screenItems[index] || '暂无' }}</view> |
59 | </view> | ||
60 | </view> | ||
61 | <!-- 商品介绍 --> | ||
62 | <view | ||
63 | class="screen_item" | ||
64 | v-if="item_current === 0" | ||
65 | > | ||
66 | <Introduce :tag="tag" /> | ||
67 | </view> | ||
68 | <!-- 规格参数 --> | ||
69 | <view | ||
70 | class="screen_item" | ||
71 | v-if="item_current === 1" | ||
72 | > | ||
73 | <view class="specification"> | ||
74 | <view | ||
75 | class="spe_item" | ||
76 | v-for="(item, index) in specification" | ||
77 | :key="index" | ||
78 | > | ||
79 | <image | ||
80 | class="spe_image" | ||
81 | v-bind:src="item.img" | ||
82 | ></image> | ||
83 | <span>{{item.standard || '暂无'}}</span> | ||
84 | <span>{{item.slength || '暂无'}}</span> | ||
85 | </view> | ||
57 | </view> | 86 | </view> |
58 | </view> | 87 | </view> |
59 | <!-- 售后保障 --> | 88 | <!-- 售后保障 --> |
60 | <view | 89 | <view |
61 | class="screen_item" | 90 | class="screen_item" |
62 | v-if="item_current === 2" | 91 | v-if="item_current === 2" |
63 | > | 92 | > |
64 | <AfterSails /> | 93 | <AfterSails /> |
65 | </view> | 94 | </view> |
66 | </view> | 95 | </view> |
96 | <!-- 评价 --> | ||
97 | <template v-if="item_current !== 2"> | ||
98 | <view class="evaluate"> | ||
99 | <!-- 标题 --> | ||
100 | <view class="evaluate_title"> | ||
101 | <view><span>宝贝好评率</span><span class="title_rate">{{evaluate.rate}}</span></view> | ||
102 | <!-- 星星 --> | ||
103 | <view class="evaluate_star"> | ||
104 | <view | ||
105 | class="star" | ||
106 | v-for="(item, index) in evaluate.star" | ||
107 | :key="index" | ||
108 | > | ||
109 | <image | ||
110 | src="../../static/img/detail/d_star.png" | ||
111 | mode="aspectFill" | ||
112 | style="height: 26rpx; width: 28rpx;" | ||
113 | ></image> | ||
114 | </view> | ||
115 | </view> | ||
116 | </view> | ||
117 | <!-- 标签 --> | ||
118 | <view class="evaluate_tag"> | ||
119 | <view | ||
120 | v-for="(item, index) in evaluate.tag" | ||
121 | :key="index" | ||
122 | >{{item.name}}</view> | ||
123 | </view> | ||
124 | </view> | ||
125 | </template> | ||
126 | <!-- 商品详情页 --> | ||
127 | <template v-if="current !==2"> | ||
128 | <view class="more_info"> | ||
129 | <view | ||
130 | class="more_fixed1" | ||
131 | @click="consolg(goodInfo.prodIntro1)" | ||
132 | > | ||
133 | <image src="/static/img/detail/hr.png"></image> | ||
134 | <view>商品详情</view> | ||
135 | <image src="/static/img/detail/hr.png"></image> | ||
136 | </view> | ||
137 | <view | ||
138 | class="more_all" | ||
139 | v-html="more" | ||
140 | > | ||
141 | </view> | ||
142 | </view> | ||
143 | </template> | ||
144 | <!-- 底部菜单 --> | ||
145 | <view class="menu"> | ||
146 | <view | ||
147 | @tap="toCart()" | ||
148 | class="menu_1" | ||
149 | > | ||
150 | <view class="cart_icon"> | ||
151 | <image src="/static/tab-cart.png" /> | ||
152 | <text>{{cartNumber}}</text> | ||
153 | </view> | ||
154 | <view class="menu_image">购物车</view> | ||
155 | </view> | ||
156 | <view class="menu_2"> | ||
157 | <view | ||
158 | class="menu_input" | ||
159 | @tap="showBottom(1)" | ||
160 | >加入购物车</view> | ||
161 | <view | ||
162 | class="menu_now" | ||
163 | @click="showBottom(2)" | ||
164 | >立即购买</view> | ||
165 | </view> | ||
166 | </view> | ||
67 | </view> | 167 | </view> |
68 | </template> | 168 | </template> |
69 | 169 | ||
70 | <script> | 170 | <script> |
71 | import store from '@/store' | 171 | import store from '@/store' |
72 | import AfterSails from './components/AfterSails' | 172 | import Introduce from './components/Introduce' // 商品介绍基本信息 |
173 | import AfterSails from './components/AfterSails' // 售后保障组件 | ||
73 | // import BottomSheet from '@/components/BottomSheet.vue' | 174 | // import BottomSheet from '@/components/BottomSheet.vue' |
74 | 175 | ||
75 | export default { | 176 | export default { |
76 | components: { | 177 | components: { |
178 | Introduce, | ||
77 | AfterSails, | 179 | AfterSails, |
78 | }, | 180 | }, |
79 | data () { | 181 | data () { |
80 | return { | 182 | return { |
81 | pid: 7, // 产品ID | 183 | pid: 7, // 产品ID |
82 | skId: undefined, // skuId | 184 | skId: undefined, // skuId |
83 | // 详细信息菜单 | 185 | // 详细信息菜单 |
84 | item_current: 0, | 186 | item_current: 0, |
85 | screenItems: [ | 187 | screenItems: [ |
86 | { current: 0, text: '商品介绍' }, | 188 | '商品介绍', |
87 | { current: 1, text: '规格参数' }, | 189 | '规格参数', |
88 | { current: 2, text: '售后保障' }, | 190 | '售后保障', |
89 | ], | 191 | ], |
90 | } | 192 | } |
91 | }, | 193 | }, |
92 | onLoad({ pid = this.pid, sk_id: skId }) { | 194 | onLoad({ pid = this.pid, sk_id: skId }) { |
195 | // 根据页面传参请求页面数据 | ||
93 | this.pid = pid | 196 | this.pid = pid |
94 | this.skId = skId | 197 | this.skId = skId |
95 | 198 | ||
96 | // 获取产品详情 | 199 | // 获取产品详情 |
97 | this.getDetails({ pid, skId }) | 200 | this.getDetails({ pid, skId }) |
201 | // 获取购物车数据 | ||
202 | this.getCartNum() | ||
98 | }, | 203 | }, |
99 | computed: { | 204 | computed: { |
100 | // 获取轮播图数据 | 205 | // 获取轮播图数据 |
101 | carousel() { | 206 | carousel() { |
102 | return this.$store.state.details.carousel | 207 | return this.$store.state.details.carousel |
103 | }, | 208 | }, |
104 | // 商品基本信息 | 209 | // 商品基本信息 |
105 | goodsInfo() { | 210 | goodsInfo() { |
106 | return this.$store.state.details.goodsInfo | 211 | return this.$store.state.details.goodsInfo |
107 | }, | 212 | }, |
213 | // 商品介绍商品标签 | ||
214 | tag() { | ||
215 | return this.$store.state.details.tag | ||
216 | }, | ||
217 | // 规格参数 | ||
218 | specification() { | ||
219 | return this.$store.state.details.specification | ||
220 | }, | ||
221 | // 评价 | ||
222 | evaluate() { | ||
223 | return this.$store.state.details.evaluate | ||
224 | }, | ||
225 | // 商品详情 | ||
226 | more() { | ||
227 | return this.$store.state.details.more | ||
228 | }, | ||
229 | // 购物车数目 | ||
230 | cartNumber() { | ||
231 | return this.$store.state.details.cartNumber | ||
232 | }, | ||
108 | }, | 233 | }, |
109 | methods: { | 234 | methods: { |
110 | // 获取产品详情 | 235 | // 获取产品详情 |
111 | getDetails({ pid, skId }) { | 236 | getDetails({ pid, skId }) { |
112 | store.dispatch('details/details', { | 237 | store.dispatch('details/details', { |
113 | pid, | 238 | pid, |
114 | sk_id: skId, | 239 | sk_id: skId, |
115 | }) | 240 | }) |
116 | }, | 241 | }, |
242 | // 获取购物车数目 | ||
243 | getCartNum() { | ||
244 | store.dispatch('details/getCartNumber') | ||
245 | }, | ||
117 | // 切换详细信息菜单 | 246 | // 切换详细信息菜单 |
118 | tabChange (e) { | 247 | tabChange (e) { |
119 | if (this.current !== e) { | 248 | if (this.current !== e) { |
120 | this.item_current = e | 249 | this.item_current = e |
121 | } | 250 | } |
122 | }, | 251 | }, |
123 | }, | 252 | }, |
124 | } | 253 | } |
125 | </script> | 254 | </script> |
126 | 255 | ||
127 | <style lang="scss"> | 256 | <style lang="scss"> |
128 | .container { | 257 | .container { |
129 | background-color: #f8f8f8; | 258 | background-color: #f8f8f8; |
130 | font-family: "PingFangSC-Regular"; | 259 | font-family: "PingFangSC-Regular"; |
131 | // 板块样式 | 260 | // 板块样式 |
132 | > view { | 261 | > view { |
133 | background: #ffffff; | 262 | background: #ffffff; |
134 | margin-bottom: 10px; | 263 | margin-bottom: 10px; |
135 | padding: 8px 20px 8px 20px; | 264 | padding: 8px 20px 8px 20px; |
136 | box-sizing: border-box; | 265 | box-sizing: border-box; |
137 | } | 266 | } |
138 | // 基础信息板块 | 267 | // 基础信息板块 |
139 | .basic_info { | 268 | .basic_info { |
140 | // 轮播图 | 269 | // 轮播图 |
141 | .swiperImage { | 270 | .swiperImage { |
142 | width: 684rpx; | 271 | width: 684rpx; |
143 | height: 480rpx; | 272 | height: 480rpx; |
144 | image { | 273 | image { |
145 | max-width: 100%; | 274 | max-width: 100%; |
146 | max-height: 100%; | 275 | max-height: 100%; |
147 | border-radius: 16rpx; | 276 | border-radius: 16rpx; |
148 | } | 277 | } |
149 | } | 278 | } |
150 | // 产品价格及购买人数 | 279 | // 产品价格及购买人数 |
151 | .info_pay { | 280 | .info_pay { |
152 | color: #eb5d3b; | 281 | color: #eb5d3b; |
153 | font-size: 18px; | 282 | font-size: 18px; |
154 | margin-top: 5px; | 283 | margin-top: 5px; |
155 | font-family: "PingFangSC-Semibold"; | 284 | font-family: "PingFangSC-Semibold"; |
156 | display: flex; | 285 | display: flex; |
157 | justify-content: space-between; | 286 | justify-content: space-between; |
158 | .info_pay_discount { | 287 | .info_pay_discount { |
159 | text-decoration: line-through; | 288 | text-decoration: line-through; |
160 | margin-left: 8rpx; | 289 | margin-left: 8rpx; |
161 | color: #999; | 290 | color: #999; |
162 | font-size: 14px; | 291 | font-size: 14px; |
163 | } | 292 | } |
164 | .info_pay_number { | 293 | .info_pay_number { |
165 | color: #999; | 294 | color: #999; |
166 | font-size: 14px; | 295 | font-size: 14px; |
167 | } | 296 | } |
168 | } | 297 | } |
169 | // 产品名称 | 298 | // 产品名称 |
170 | .info_name { | 299 | .info_name { |
171 | margin-top: 5px; | 300 | margin-top: 5px; |
172 | display: flex; | 301 | display: flex; |
173 | justify-content: space-between; | 302 | justify-content: space-between; |
174 | .info_name_name { | 303 | .info_name_name { |
175 | margin-right: 10px; | 304 | margin-right: 10px; |
176 | font-size: 16px; | 305 | font-size: 16px; |
177 | font-family: "PingFangSC-Semibold"; | 306 | font-family: "PingFangSC-Semibold"; |
178 | max-width: 592rpx; | 307 | max-width: 592rpx; |
179 | } | 308 | } |
180 | .info_name_share { | 309 | .info_name_share { |
181 | display: flex; | 310 | display: flex; |
182 | flex-direction: column; | 311 | flex-direction: column; |
183 | justify-content: space-between; | 312 | justify-content: space-between; |
184 | align-items: center; | 313 | align-items: center; |
185 | margin-top: 14rpx; | 314 | margin-top: 14rpx; |
186 | > image { | 315 | > image { |
187 | height: 40rpx; | 316 | height: 40rpx; |
188 | width: 40rpx; | 317 | width: 40rpx; |
189 | } | 318 | } |
190 | > text { | 319 | > text { |
191 | font-family: PingFangSC-Regular; | 320 | font-family: PingFangSC-Regular; |
192 | font-size: 12px; | 321 | font-size: 12px; |
193 | color: #999; | 322 | color: #999; |
194 | letter-spacing: -0.23px; | 323 | letter-spacing: -0.23px; |
195 | } | 324 | } |
196 | } | 325 | } |
197 | } | 326 | } |
198 | // 售后服务 | 327 | // 售后服务 |
199 | .info_after { | 328 | .info_after { |
200 | font-size: 10px; | 329 | font-size: 10px; |
201 | color: #999; | 330 | color: #999; |
202 | margin-top: 20rpx; | 331 | margin-top: 20rpx; |
203 | > span { | 332 | > span { |
204 | height: 14px; | 333 | height: 14px; |
205 | margin-right: 10px; | 334 | margin-right: 10px; |
206 | } | 335 | } |
207 | } | 336 | } |
208 | } | 337 | } |
209 | // 详细信息 | 338 | // 详细信息 |
210 | .detail_info { | 339 | .detail_info { |
340 | margin-bottom: 20rpx; | ||
211 | .screen_bar { | 341 | .screen_bar { |
212 | width: 670rpx; | 342 | width: 670rpx; |
213 | margin-top: 20rpx; | 343 | margin-top: 20rpx; |
214 | margin-bottom: 24rpx; | 344 | margin-bottom: 24rpx; |
215 | display: flex; | 345 | display: flex; |
216 | flex-direction: row; | 346 | flex-direction: row; |
217 | justify-content: space-between; | 347 | justify-content: space-between; |
218 | align-items: center; | 348 | align-items: center; |
219 | font-size: 14px; | 349 | font-size: 14px; |
220 | color: #333333; | 350 | color: #333333; |
221 | transition: all 0.2s; | 351 | transition: all 0.2s; |
222 | } | 352 | } |
223 | .item_active { | 353 | .item_active { |
224 | border-bottom: 4rpx solid #ff6b4a; | 354 | border-bottom: 4rpx solid #ff6b4a; |
225 | } | 355 | } |
226 | .screen_item { | 356 | .screen_item { |
227 | font-size: 32rpx; | 357 | font-size: 32rpx; |
228 | color: #333333; | 358 | color: #333333; |
229 | display: flex; | 359 | display: flex; |
230 | transition: all 0.2s; | 360 | transition: all 0.2s; |
361 | // 规格参数 | ||
362 | .specification { | ||
363 | margin-bottom: 4px; | ||
364 | .spe_item { | ||
365 | image { | ||
366 | width: 50px; | ||
367 | height: 25px; | ||
368 | margin-right: 6px; | ||
369 | vertical-align: middle; | ||
370 | } | ||
371 | span { | ||
372 | margin-left: 24rpx; | ||
373 | } | ||
374 | } | ||
375 | } | ||
376 | } | ||
377 | // | ||
378 | } | ||
379 | // 宝贝好评率 | ||
380 | .evaluate { | ||
381 | .evaluate_title { | ||
382 | font-size: 14px; | ||
383 | color: #333333; | ||
384 | display: flex; | ||
385 | justify-content: space-between; | ||
386 | .title_rate { | ||
387 | margin-left: 10rpx; | ||
388 | } | ||
389 | .evaluate_star { | ||
390 | width: 90px; | ||
391 | display: flex; | ||
392 | align-items: center; | ||
393 | justify-content: space-between; | ||
394 | } | ||
395 | view { | ||
396 | font-size: 14px; | ||
397 | color: #333333; | ||
398 | font-weight: bold; | ||
399 | } | ||
400 | } | ||
401 | .evaluate_tag { | ||
402 | view { | ||
403 | display: inline-block; | ||
404 | margin-right: 20rpx; | ||
405 | min-width: 180rpx; | ||
406 | margin-top: 10px; | ||
407 | height: 48rpx; | ||
408 | background: #f2f2f2; | ||
409 | border-radius: 2px; | ||
410 | font-family: PingFangSC-Regular; | ||
411 | font-size: 12px; | ||
412 | color: #666666; | ||
413 | letter-spacing: -0.23px; | ||
414 | text-align: center; | ||
415 | padding: 0 48rpx; | ||
416 | line-height: 48rpx; | ||
417 | } | ||
418 | } | ||
419 | } | ||
420 | // 商品详情 | ||
421 | .more_info { | ||
422 | .more_fixed1 { | ||
423 | display: flex; | ||
424 | justify-content: space-between; | ||
425 | align-content: center; | ||
426 | margin-bottom: 12px; | ||
427 | view { | ||
428 | font-size: 14px; | ||
429 | color: #333333; | ||
430 | font-weight: bold; | ||
431 | font-family: "PingFangSC-Medium"; | ||
432 | line-height: 24px; | ||
433 | } | ||
434 | image { | ||
435 | width: 240rpx; | ||
436 | height: 3px; | ||
437 | margin-top: 10px; | ||
438 | } | ||
439 | } | ||
440 | .more_all { | ||
441 | width: 100%; | ||
442 | margin-top: 30rpx; | ||
443 | margin-right: 30rpx; | ||
444 | margin-bottom: 180rpx; | ||
445 | font-family: "PingFangSC-Regular"; | ||
446 | } | ||
447 | } | ||
448 | // 菜单 | ||
449 | .menu { | ||
450 | position: fixed; | ||
451 | bottom: 0; | ||
452 | height: 74px; | ||
453 | width: 100%; | ||
454 | background: #ffffff; | ||
455 | padding: 20px 20px 8px 20px; | ||
456 | font-family: "PingFangSC-Regular"; | ||
457 | box-sizing: border-box; | ||
458 | display: flex; | ||
459 | justify-content: space-between; | ||
460 | align-content: center; | ||
461 | margin: 0; | ||
462 | .menu_1 { | ||
463 | width: 20%; | ||
464 | height: 100%; | ||
465 | text-align: center; | ||
466 | color: #989898; | ||
467 | .cart_icon { | ||
468 | position: relative; | ||
469 | text { | ||
470 | position: absolute; | ||
471 | color: white; | ||
472 | font-size: 17px; | ||
473 | background-color: red; | ||
474 | min-height: 24px; | ||
475 | min-width: 24px; | ||
476 | line-height: 24px; | ||
477 | right: -12%; | ||
478 | top: -12px; | ||
479 | text-align: center; | ||
480 | border-radius: 24px; | ||
481 | padding: 2px; | ||
482 | } | ||
483 | } | ||
484 | } | ||
485 | image { | ||
486 | width: 42%; | ||
487 | height: 26px; | ||
488 | } | ||
489 | .menu_image { | ||
490 | font-size: 12px; | ||
491 | text-align: center; | ||
492 | } | ||
493 | .menu_2 { | ||
494 | width: 74%; | ||
495 | height: 86%; | ||
496 | display: grid; | ||
497 | grid-template-columns: 50% 50%; | ||
498 | } | ||
499 | .menu_input { | ||
500 | display: inline-flex; | ||
501 | align-items: center; | ||
502 | justify-content: space-around; | ||
503 | background: #fff0ec; | ||
504 | font-size: 16px; | ||
505 | color: #ff6b4a; | ||
506 | border-radius: 20px 0 0 20px; | ||
507 | } | ||
508 | .menu_now { | ||
509 | display: inline-flex; | ||
510 | align-items: center; | ||
511 | justify-content: space-around; | ||
512 | background: #ff6b4a; | ||
513 | font-size: 16px; | ||
514 | color: #ffffff; | ||
515 | border-radius: 0 20px 20px 0; | ||
231 | } | 516 | } |
232 | } | 517 | } |
233 | } | 518 | } |
234 | </style> | 519 | </style> |
235 | 520 |
src/store/modules/details.js
1 | import urlAlias from '../url' | 1 | import urlAlias from '../url' |
2 | import request from '../request' | 2 | import request from '../request' |
3 | 3 | ||
4 | const { | 4 | const { |
5 | read, | 5 | read, |
6 | cartList, | ||
6 | } = urlAlias | 7 | } = urlAlias |
7 | 8 | ||
8 | const state = { | 9 | const state = { |
9 | // 轮播图 | 10 | // 轮播图 |
10 | carousel: [ | 11 | carousel: [ |
11 | '/static/img/detail/d9.png', | 12 | '/static/img/detail/d9.png', |
12 | ], | 13 | ], |
13 | // 商品基本信息 | 14 | // 商品基本信息 |
14 | goodsInfo: { | 15 | goodsInfo: { |
15 | name: '暂无名称', | 16 | name: '暂无名称', |
16 | price: '暂无价格', | 17 | price: '暂无价格', |
17 | discountPrice: undefined, | 18 | discountPrice: undefined, |
18 | tradeNumber: undefined, | 19 | tradeNumber: undefined, |
19 | }, | 20 | }, |
21 | // 商品介绍 | ||
22 | tag: { | ||
23 | prod_tag_style: [{ | ||
24 | label: '青春学子风', | ||
25 | value: '54', | ||
26 | }], | ||
27 | }, | ||
28 | // 规格参数 | ||
29 | specification: [ | ||
30 | { key: 'frame_width', img: '/static/img/detail/d2.png', standard: '框架宽', slength: '139mm' }, | ||
31 | { key: 'glass_width', img: '/static/img/detail/d3.png', standard: '镜片宽', slength: '51mm' }, | ||
32 | { key: 'glass_height', img: '/static/img/detail/d4.png', standard: '镜片高', slength: '45mm' }, | ||
33 | { key: 'nose_width', img: '/static/img/detail/d5.png', standard: '鼻架宽', slength: '19mm' }, | ||
34 | { key: 'leg_long', img: '/static/img/detail/d6.png', standard: '框架耳长', slength: '138mm' }, | ||
35 | { key: 'weight', img: '/static/img/detail/d7.png', standard: '框架重', slength: '19克(grams)' }, | ||
36 | ], | ||
37 | // 评价 | ||
38 | evaluate: { | ||
39 | rate: '100%', | ||
40 | star: 5, | ||
41 | tag: [{ name: '价格实惠' }], | ||
42 | }, | ||
43 | // 商品详情 | ||
44 | more: '', | ||
45 | // 购物车数目 | ||
46 | cartNumber: 0, | ||
20 | } | 47 | } |
21 | 48 | ||
22 | const mutations = { | 49 | const mutations = { |
23 | INIT: (state, { carousel, goodsInfo }) => { | 50 | INIT: (state, { carousel, goodsInfo, tag, specification, evaluate, more }) => { |
24 | state.carousel = carousel | 51 | state.carousel = carousel |
25 | state.goodsInfo = goodsInfo | 52 | state.goodsInfo = goodsInfo |
53 | state.tag = tag | ||
54 | state.specification = specification | ||
55 | state.evaluate = evaluate | ||
56 | state.more = more | ||
57 | }, | ||
58 | CART: (state, number) => { | ||
59 | state.cartNumber = number | ||
26 | }, | 60 | }, |
27 | } | 61 | } |
28 | 62 | ||
29 | const actions = { | 63 | const actions = { |
30 | details({ commit }, param) { | 64 | // 获取详情 |
65 | details({ commit, rootState }, param) { | ||
31 | return new Promise((resolve, reject) => request({ | 66 | return new Promise((resolve, reject) => request({ |
32 | url: read, | 67 | url: read, |
33 | data: param, | 68 | data: param, |
34 | success: ({ data: { data } }) => { | 69 | success: ({ data: { data } }) => { |
70 | console.log('data.tag', data.tag) | ||
71 | // 规格参数设置 | ||
72 | const specification = rootState.details.specification | ||
73 | const parameter = { | ||
74 | frame_width: data.frame_width, | ||
75 | glass_width: data.glass_width, | ||
76 | glass_height: data.glass_height, | ||
77 | nose_width: data.nose_width, | ||
78 | leg_long: data.leg_long, | ||
79 | weight: data.weight, | ||
80 | } | ||
81 | for (let index = 0; index < specification.length; index++) { | ||
82 | if (specification[index].key !== 'weight') { | ||
83 | specification[index].slength = `${parameter[specification[index].key]}mm` | ||
84 | } else { | ||
85 | specification[index].slength = `${parameter[specification[index].key]}克(grams)` | ||
86 | } | ||
87 | } | ||
88 | |||
35 | commit('INIT', { | 89 | commit('INIT', { |
36 | carousel: data.pics, | 90 | carousel: data.pics, |
37 | goodsInfo: { | 91 | goodsInfo: { |
38 | name: data.p_name, | 92 | name: data.p_name, |
39 | price: data.priceArea.Min_Price, | 93 | price: data.priceArea.Min_Price, |
40 | discountPrice: data.priceArea.Min_Price - Number(data.priceArea.discount), | 94 | discountPrice: data.priceArea.Min_Price - Number(data.priceArea.discount), |
41 | tradeNumber: data.trade_num, | 95 | tradeNumber: data.trade_num, |
42 | }, | 96 | }, |
97 | tag: data.tag, | ||
98 | specification, | ||
99 | evaluate: { | ||
100 | rate: data.judgeInfo.good, | ||
101 | tag: data.judge_tag, | ||
102 | star: parseInt(5 * Number(data.judgeInfo.good.slice(0, -1)) / 100), | ||
103 | }, | ||
104 | more: data.prodIntro1.replace(/\<img/gi, '<img style="max-width:100%;height:auto"'), | ||
43 | }) | 105 | }) |
44 | resolve(data) | 106 | resolve(data) |
45 | }, | 107 | }, |
46 | fail: (res) => { | 108 | fail: (res) => { |
47 | console.log('fail status ===>', res) | 109 | console.log('fail status ===>', res) |
48 | }, | 110 | }, |
49 | })) | 111 | })) |
50 | }, | 112 | }, |
113 | // 获取购物车列表 | ||
114 | getCartNumber({ commit }, param) { | ||
115 | return new Promise((resolve) => request({ | ||
116 | url: cartList, | ||
117 | data: param, | ||
118 | success: ({ data: { data } }) => { | ||
119 | console.log('cartData', data) | ||
120 | let number = 0 | ||
121 | for (let index = 0; index < data.length; index++) { | ||
122 | number += Number(data[index].num) | ||
123 | } | ||
124 | commit('CART', number) | ||
125 | }, | ||
126 | })) | ||
127 | }, | ||
51 | } | 128 | } |
52 | 129 | ||
53 | export default { | 130 | export default { |
54 | namespaced: true, | 131 | namespaced: true, |
55 | state, | 132 | state, |
56 | mutations, | 133 | mutations, |
57 | actions, | 134 | actions, |
58 | } | 135 | } |
59 | 136 |