Commit 0d9ad2c78d80a262406da9721beb0e4f7f930455

Authored by 王强
2 parents 9744d74c 8382bce0

Merge branch 'version_2.0.0_optimization_mall_update' of http://bj.gitlab.cnlive…

….com/w-front-end/select_good into version_2.0.0_optimization_mall_update
src/components/addressToast/addressToast.vue
@@ -244,7 +244,7 @@ export default { @@ -244,7 +244,7 @@ export default {
244 window.location.href = 244 window.location.href =
245 window.location.href.split("?")[0] + 245 window.location.href.split("?")[0] +
246 "?uid=" + 246 "?uid=" +
247 - this.getStore("uid") 247 + this.getStore("uid") + "&goodsId=" + this.$route.query.goodsId
248 } 248 }
249 }, 249 },
250 /** 250 /**
src/pages/goodDetails/goodDetails.less
1 .good-details-box{ 1 .good-details-box{
2 padding-bottom: 130px; 2 padding-bottom: 130px;
  3 + .goods-img{
  4 + display: block;
  5 + width: 100%;
  6 + height:750px
  7 + }
3 .main-box{ 8 .main-box{
4 .title{ 9 .title{
5 font-size: 34px; 10 font-size: 34px;
@@ -50,7 +55,6 @@ @@ -50,7 +55,6 @@
50 .goods-info{ 55 .goods-info{
51 margin: 30px; 56 margin: 30px;
52 width: 690px; 57 width: 690px;
53 - height: 1653px;  
54 background: #FFFFFF; 58 background: #FFFFFF;
55 box-shadow: 0px 0px 16px 0px rgba(0, 0, 0, 0.06); 59 box-shadow: 0px 0px 16px 0px rgba(0, 0, 0, 0.06);
56 border-radius: 24px; 60 border-radius: 24px;
src/pages/goodDetails/goodDetails.vue
@@ -18,20 +18,21 @@ @@ -18,20 +18,21 @@
18 > 18 >
19 </back-box> 19 </back-box>
20 <!--轮播--> 20 <!--轮播-->
21 - <swiper 21 + <!-- <swiper
22 :style=" 22 :style="
23 'margin-top:' + 23 'margin-top:' +
24 ($parent.isBack && isCNLive.value ? 62 : 10) + 24 ($parent.isBack && isCNLive.value ? 62 : 10) +
25 'px' 25 'px'
26 " 26 "
27 - v-if="goodsInfo && goodsInfo.simg" 27 + v-if="simgList"
28 :swipers="goodsInfo.simg" 28 :swipers="goodsInfo.simg"
29 :isPointsMall= 'true' 29 :isPointsMall= 'true'
30 :options="{ 30 :options="{
31 showIndicators: true 31 showIndicators: true
32 }" 32 }"
33 > 33 >
34 - </swiper> 34 + </swiper> -->
  35 + <img v-if="goodsInfo && goodsInfo.simg" class="goods-img" :src="goodsInfo.simg" alt=""/>
35 <!-- 内容 --> 36 <!-- 内容 -->
36 <div class="main-box"> 37 <div class="main-box">
37 <!-- 标题 --> 38 <!-- 标题 -->
@@ -41,7 +42,7 @@ @@ -41,7 +42,7 @@
41 <!-- 积分 --> 42 <!-- 积分 -->
42 <div class="title-t"> 43 <div class="title-t">
43 <span v-if="goodsInfo && goodsInfo.prices" class="price">¥{{goodsInfo.prices}}</span> 44 <span v-if="goodsInfo && goodsInfo.prices" class="price">¥{{goodsInfo.prices}}</span>
44 - <span class="integral">15000</span> 45 + <span v-if="goodsInfo && goodsInfo.num" class="integral">{{goodsInfo.num}}</span>
45 <span class="integral-in">积分</span> 46 <span class="integral-in">积分</span>
46 </div> 47 </div>
47 <!-- 商品信息 --> 48 <!-- 商品信息 -->
@@ -49,23 +50,27 @@ @@ -49,23 +50,27 @@
49 <div class="good-title"> 50 <div class="good-title">
50 <span class="left"></span>商品详情<span class="right"></span> 51 <span class="left"></span>商品详情<span class="right"></span>
51 </div> 52 </div>
52 - <div class="good-desc">  
53 - 商品详情的文字内容的书写的的位置,商品详情的文字内容的书写的位置,商品详情的文字内容的书写的位置,商品详情的文字内容的书写的位置 53 + <div v-if="goodsInfo && goodsInfo.content" :v-html="goodsInfo.content" class="good-desc">
54 </div> 54 </div>
55 <div class="good-title"> 55 <div class="good-title">
56 <span class="left"></span>兑换规则<span class="right"></span> 56 <span class="left"></span>兑换规则<span class="right"></span>
57 </div> 57 </div>
58 <div class="good-desc"> 58 <div class="good-desc">
59 - <div class="text-left">商品详情的文字内容的书写的的位置,商品详情的文字内容的书写的位置,商品详情的文字内容的书写的位置,商品详情的文字内容的书写的位置</div>  
60 - <div class="text-left">  
61 - <span>· 正版授权</span>  
62 - 所售商品均已官方授权,请放心购买;  
63 - </div>  
64 - <div class="text-left">  
65 - <span>· 正品保障</span>  
66 - 独家正品保障。 59 + <div v-if="goodsInfo && goodsInfo.shop_type && goodsInfo.shop_type == 1 || goodsInfo.shop_type == 2">
  60 + <div class="text-left">
  61 + 兑换此积分即可0元购买该商品;<br>
  62 + 仅限此商品使用,兑换后7天内有效;
  63 + </div>
  64 + <div class="text-left">
  65 + <span>· 正版授权</span>
  66 + 所售商品均已官方授权,请放心购买;
  67 + </div>
  68 + <div class="text-left">
  69 + <span>· 正品保障</span>
  70 + 独家正品保障。
  71 + </div>
67 </div> 72 </div>
68 - <div v-show="goodsInfo && goodsInfo.shop_type == 2" class="text-left"> 73 + <div v-if="goodsInfo && goodsInfo.shop_type && goodsInfo.shop_type == 2" class="text-left">
69 1、 您兑换的音频内容,音频上线期间可长期收听;<br> 74 1、 您兑换的音频内容,音频上线期间可长期收听;<br>
70 2、 兑换后暂不支持退款,感谢您的支持;<br> 75 2、 兑换后暂不支持退款,感谢您的支持;<br>
71 3、 兑换完成后若显示异常,请10分钟之后尝试;<br> 76 3、 兑换完成后若显示异常,请10分钟之后尝试;<br>
@@ -82,8 +87,8 @@ @@ -82,8 +87,8 @@
82 </div> 87 </div>
83 <!-- 像是商品推荐 --> 88 <!-- 像是商品推荐 -->
84 <!-- 商品样式 7 列表 --> 89 <!-- 商品样式 7 列表 -->
85 - <column-list-box class="column-list-box" v-if="similarGoods && similarGoods.list && similarGoods.list.length" @jump="toDetail"  
86 - :lists="similarGoods" 90 + <column-list-box class="column-list-box" v-if="goodsInfo && goodsInfo.list && goodsInfo.list.length" @jump="toDetail"
  91 + :lists="goodsInfo"
87 com="7"> 92 com="7">
88 </column-list-box> 93 </column-list-box>
89 </div> 94 </div>
@@ -113,8 +118,8 @@ export default { @@ -113,8 +118,8 @@ export default {
113 banner: null, 118 banner: null,
114 goodsInfo: null, 119 goodsInfo: null,
115 backs: null, // 后退按钮组 120 backs: null, // 后退按钮组
116 - similarGoods: null, // 相似商品  
117 pointsToast_control: this.$route.query.pointsToast_control, 121 pointsToast_control: this.$route.query.pointsToast_control,
  122 + isExchange: false, // 是否已经兑换
118 } 123 }
119 }, 124 },
120 //部件 125 //部件
@@ -154,47 +159,109 @@ export default { @@ -154,47 +159,109 @@ export default {
154 }) 159 })
155 }, 160 },
156 // 兑换 161 // 兑换
157 - exchange (item) {  
158 - // 1月3号到1月31号才能领取  
159 - // if (item.shop_type == 2) {  
160 - this.pointsToast_control = true;  
161 - // 礼品兑换弹框派发  
162 - this.$refs.itemsInfo.getItemInfo(item)  
163 - // } else {  
164 - // // 显示查看地址弹框  
165 - // let options = {  
166 - // title: "奖励已过领取时间",  
167 - // message: "领取时间: 2021-01-03至01-31",  
168 - // messageAlign: "center",  
169 - // confirmButtonText: "知道了"  
170 - // };  
171 - // // 调用showModal层参数  
172 - // this.$set(this.$parent, "showOptions", options);  
173 - // // 显示通用浮层  
174 - // this.$parent.$refs.showModal.showLayer();  
175 -  
176 - // } 162 + exchange () {
  163 + // 提示用积分兑换兑换
  164 + let options = {
  165 + title: "",
  166 + message: "确定使用" + this.goodsInfo.num + "积分兑换?",
  167 + confirmButtonText: "确定",
  168 + confirmButtonCallback: this.callAppModalCallback,
  169 + showCancelButton: true,
  170 + cancelButtonText: "取消"
  171 + };
  172 + // 调用showModal层参数
  173 + this.$set(this.$parent, "showOptions", options);
  174 + // 显示通用浮层
  175 + this.$parent.$refs.showModal.showLayer();
  176 + },
  177 + // 确定兑换回调
  178 + callAppModalCallback () {
  179 + // isExchange为false才可兑换防止连续点击
  180 + if (!this.isExchange) {
  181 + // 兑换
  182 + this.addIntegralOrder();
  183 + }
177 }, 184 },
178 /** 185 /**
179 - * 积分商品详情页页面接口 186 + * 积分商品详情页页面接口
  187 + */
  188 + addIntegralOrder () {
  189 + // 加载中提示
  190 + Indicator.open("加载中...");
  191 + // 获取证书请求接口
  192 + this.http("/Api/" + this.getApiVersion().LuckDraw + "/addIntegralOrder", {
  193 + uid: this.getStore("uid"),
  194 + id: this.$route.query.goodsId, // 商品ID
  195 + num: 1
  196 + }, this.addIntegralOrderCallback, {
  197 + method: "POST"
  198 + });
  199 + },
  200 +
  201 + /**
  202 + * 积分商品详情页页面接口回调
  203 + * @param {Object} res [服务器返回数据]
  204 + * @param {Object} ext [扩展参数]
180 */ 205 */
181 - getGoodsInfo () { 206 + addIntegralOrderCallback (res, ext) {
  207 +
  208 + // 加载完成
  209 + Indicator.close();
182 210
183 - // 校验登录  
184 - if (this.$parent.checkLogin()) { 211 + // 返回处理
  212 + if (res.code == 200) {
  213 + // 解构数据
  214 + let { data: datas } = res;
  215 + // 方式连续点击兑换
  216 + this.isExchange = true;
  217 + // 两秒后可继续兑换
  218 + let _this = this
  219 + setTimeout(function () {
  220 + this.isExchange = false;
  221 + }, 1500);
  222 + // 显示查看地址弹框
  223 + let options = {
  224 + message: "兑换成功",
  225 + messageAlign: "center",
  226 + confirmButtonText: "我知道了",
  227 + // confirmButtonCallback: (datas.shop_type == 1) ? this.addAddressCallback(datas.shop_type) : ""
  228 + };
  229 + this.$set(this.$parent, "showOptions", options);
  230 + // 显示通用浮层
  231 + this.$parent.$refs.showModal.showLayer();
  232 + } else if (res.code == 400) {
185 233
186 - // 加载中提示  
187 - Indicator.open("加载中..."); 234 + // 获取积分商品详情页失败
  235 + Toast(res.message);
  236 + } else {
188 237
189 - // 获取证书请求接口  
190 - this.http("/Api/" + this.getApiVersion().LuckDraw + "/integralGoodsInfo", {  
191 - uid: this.getStore("uid"),  
192 - id: this.$route.query.goodsId // 商品ID  
193 - }, this.getGoodsInfoCallback, {  
194 - method: "POST"  
195 - }); 238 + // 获取积分商品详情页失败
  239 + Toast("获取积分商品详情页失败");
196 } 240 }
197 }, 241 },
  242 + // 填写地址
  243 + addAddressCallback (shopType) {
  244 + debugger
  245 + // 如果是实物弹起填写地址弹窗
  246 + if (shopType == 1) {
  247 + this.pointsToast_control = true;
  248 + // 礼品兑换弹框派发
  249 + this.$refs.itemsInfo.getItemInfo(this.goodsInfo)
  250 + }
  251 + },
  252 + /**
  253 + * 积分商品详情页页面接口
  254 + */
  255 + getGoodsInfo () {
  256 + // 加载中提示
  257 + Indicator.open("加载中...");
  258 + // 获取证书请求接口
  259 + this.http("/Api/" + this.getApiVersion().LuckDraw + "/integralGoodsInfo", {
  260 + id: this.$route.query.goodsId // 商品ID
  261 + }, this.getGoodsInfoCallback, {
  262 + method: "POST"
  263 + });
  264 + },
198 265
199 /** 266 /**
200 * 积分商品详情页页面接口回调 267 * 积分商品详情页页面接口回调
@@ -211,13 +278,9 @@ export default { @@ -211,13 +278,9 @@ export default {
211 278
212 // 解构数据 279 // 解构数据
213 let { data: datas } = res; 280 let { data: datas } = res;
214 -  
215 - /* 获取banner */  
216 - this.goodsInfo = datas  
217 /* 获取详细信息 */ 281 /* 获取详细信息 */
218 - 282 + this.goodsInfo = datas
219 /* 相似商品 */ 283 /* 相似商品 */
220 -  
221 } else if (res.code == 400) { 284 } else if (res.code == 400) {
222 285
223 // 获取积分商品详情页失败 286 // 获取积分商品详情页失败
@@ -266,77 +329,6 @@ export default { @@ -266,77 +329,6 @@ export default {
266 329
267 // 设置标题 330 // 设置标题
268 this.$set(this.backs, 'title', '积分商品详情页'); 331 this.$set(this.backs, 'title', '积分商品详情页');
269 - // 临时,实物商品列表  
270 - this.$set(this, 'similarGoods', {  
271 - list: [  
272 - {  
273 - activity: "0",  
274 - activity_desc: "",  
275 - addtime: "1604544867",  
276 - ads: "23123",  
277 - code: "160454486791776561000",  
278 - id: "9525539",  
279 - price: "0.01",  
280 - prices: "0.00",  
281 - shop_type: "1",  
282 - simg: "https://wjjtest.ys2.cnliveimg.com/802/shop/img/2020/11/05/5fa3695e39ae6.png",  
283 - stock: "0",  
284 - stoptime: "0",  
285 - title: "aabbsdf350ml",  
286 - grade: 1500, // 积分  
287 - time_state: 2,  
288 - stock: 0  
289 - },  
290 - {  
291 - activity: "0",  
292 - activity_desc: "",  
293 - addtime: "1604544867",  
294 - ads: "23123",  
295 - code: "160454486791776561000",  
296 - id: "9525539",  
297 - price: "0.01",  
298 - prices: "0.00",  
299 - shop_type: "1",  
300 - simg: "https://wjjtest.ys2.cnliveimg.com/802/shop/img/2020/11/05/5fa3695e39ae6.png",  
301 - stock: "0",  
302 - stoptime: "0",  
303 - title: "aabbsdf350ml",  
304 - grade: 1500 // 积分  
305 - },  
306 - {  
307 - activity: "0",  
308 - activity_desc: "",  
309 - addtime: "1604544867",  
310 - ads: "23123",  
311 - code: "160454486791776561000",  
312 - id: "9525539",  
313 - price: "0.01",  
314 - prices: "0.00",  
315 - shop_type: "1",  
316 - simg: "https://wjjtest.ys2.cnliveimg.com/802/shop/img/2020/11/05/5fa3695e39ae6.png",  
317 - stock: "0",  
318 - stoptime: "0",  
319 - title: "aabbsdf350ml",  
320 - grade: 1500 // 积分  
321 - },  
322 - {  
323 - activity: "0",  
324 - activity_desc: "",  
325 - addtime: "1604544867",  
326 - ads: "23123",  
327 - code: "160454486791776561000",  
328 - id: "9525539",  
329 - price: "0.01",  
330 - prices: "0.00",  
331 - shop_type: "1",  
332 - simg: "https://wjjtest.ys2.cnliveimg.com/802/shop/img/2020/11/05/5fa3695e39ae6.png",  
333 - stock: "0",  
334 - stoptime: "0",  
335 - title: "aabbsdf350ml",  
336 - grade: 1500 // 积分  
337 - }  
338 - ]  
339 - });  
340 } 332 }
341 333
342 }, 334 },
src/pages/pointsMall/pointsMall.vue
@@ -111,6 +111,8 @@ @@ -111,6 +111,8 @@
111 111
112 <script> 112 <script>
113 import { Toast, Indicator } from "mint-ui"; 113 import { Toast, Indicator } from "mint-ui";
  114 +import callAppBox from "@/components/callAppBox/callAppBox";
  115 +import backBox from "@/components/backBox/backBox";
114 import goodsItem2 from "@/components/goodsItem_2/goodsItem_2"; 116 import goodsItem2 from "@/components/goodsItem_2/goodsItem_2";
115 import columnListBox from "@/components/columnListBox/columnListBox"; 117 import columnListBox from "@/components/columnListBox/columnListBox";
116 export default { 118 export default {
@@ -128,6 +130,8 @@ export default { @@ -128,6 +130,8 @@ export default {
128 }, 130 },
129 //部件 131 //部件
130 components: { 132 components: {
  133 + callAppBox,
  134 + backBox,
131 goodsItem2, 135 goodsItem2,
132 columnListBox 136 columnListBox
133 }, 137 },
@@ -150,7 +154,7 @@ export default { @@ -150,7 +154,7 @@ export default {
150 this.$router.push({ 154 this.$router.push({
151 path: '/pointsExchangeRecords', 155 path: '/pointsExchangeRecords',
152 query: { 156 query: {
153 - uid: this.$route.query.uid || 0, 157 + uid: this.getStore("uid"),
154 } 158 }
155 }) 159 })
156 }, 160 },
@@ -181,6 +185,7 @@ export default { @@ -181,6 +185,7 @@ export default {
181 path: '/goodDetails', 185 path: '/goodDetails',
182 query: { 186 query: {
183 goodsId: item.id, 187 goodsId: item.id,
  188 + uid: this.getStore("uid")
184 } 189 }
185 }) 190 })
186 }, 191 },