forked from zhongyuanhaiju/uniapp
140 lines
3.8 KiB
JavaScript
140 lines
3.8 KiB
JavaScript
export default {
|
|
data() {
|
|
return {
|
|
goodsRoute: '/pages_promotion/seckill/detail',
|
|
posterApi: '/seckill/api/seckillgoods/poster',
|
|
seckill_id: 0,
|
|
}
|
|
},
|
|
onLoad(data) {
|
|
this.seckill_id = data.seckill_id || 0;
|
|
if (data.id) {
|
|
this.seckill_id = data.id;
|
|
}
|
|
// 小程序扫码进入
|
|
if (data.scene) {
|
|
var sceneParams = decodeURIComponent(data.scene);
|
|
sceneParams = sceneParams.split('&');
|
|
if (sceneParams.length) {
|
|
sceneParams.forEach(item => {
|
|
if (item.indexOf('id') != -1) this.seckill_id = item.split('-')[1];
|
|
});
|
|
}
|
|
}
|
|
},
|
|
onShow() {
|
|
//同步获取商品详情
|
|
this.getGoodsSkuDetail();
|
|
},
|
|
methods: {
|
|
// 获取秒杀商品详情
|
|
async getGoodsSkuDetail() {
|
|
let res = await this.$api.sendRequest({
|
|
url: '/seckill/api/seckillgoods/detail',
|
|
async: false,
|
|
data: {
|
|
seckill_id: this.seckill_id
|
|
},
|
|
});
|
|
|
|
let data = res.data;
|
|
if (data.goods_sku_detail != null) {
|
|
this.goodsSkuDetail = data.goods_sku_detail;
|
|
this.shopInfo = data.shop_info;
|
|
this.skuId = this.goodsSkuDetail.sku_id;
|
|
|
|
let time = new Date(res.timestamp * 1000);
|
|
let currentTime = time.getHours() * 60 * 60 + time.getMinutes() * 60 + time.getSeconds();
|
|
if (this.goodsSkuDetail.seckill_start_time <= currentTime && currentTime < this.goodsSkuDetail
|
|
.seckill_end_time) {
|
|
this.goodsSkuDetail.discountTimeMachine = this.$util.countDown(this.goodsSkuDetail
|
|
.seckill_end_time - currentTime);
|
|
} else if (this.goodsSkuDetail.seckill_start_time > currentTime && currentTime < this.goodsSkuDetail
|
|
.seckill_end_time) {
|
|
this.$util.showToast({
|
|
title: "限时秒杀活动还未开始",
|
|
});
|
|
setTimeout(() => {
|
|
this.$util.redirectTo('/pages/goods/detail', {
|
|
goods_id: this.goodsSkuDetail.goods_id
|
|
}, 'redirectTo');
|
|
}, 1000);
|
|
} else if (currentTime < this.goodsSkuDetail.seckill_start_time && currentTime > this.goodsSkuDetail
|
|
.seckill_end_time) {
|
|
this.$util.showToast({
|
|
title: "限时秒杀活动已结束",
|
|
});
|
|
setTimeout(() => {
|
|
this.$util.redirectTo('/pages/goods/detail', {
|
|
goods_id: this.goodsSkuDetail.goods_id
|
|
}, 'redirectTo');
|
|
}, 1000);
|
|
}
|
|
|
|
// 分享参数、链接
|
|
this.shareQuery = 'seckill_id=' + this.seckill_id
|
|
this.shareUrl = this.goodsRoute + '?' + this.shareQuery;
|
|
|
|
// 在线客服聊天参数
|
|
this.chatRoomParams = {
|
|
sku_id: this.goodsSkuDetail.sku_id,
|
|
type: 'seckill',
|
|
type_id: this.goodsSkuDetail.seckill_id
|
|
};
|
|
|
|
// 海报参数
|
|
this.posterParams = {
|
|
id: this.goodsSkuDetail.goods_id
|
|
};
|
|
|
|
// #ifdef MP-WEIXIN
|
|
this.getShareImg();
|
|
// #endif
|
|
|
|
// 处理商品数据
|
|
this.handleGoodsSkuData();
|
|
|
|
this.goodsSkuDetail.show_price = this.goodsSkuDetail.seckill_price;
|
|
this.goodsSkuDetail.save_price = (this.goodsSkuDetail.price - this.goodsSkuDetail.seckill_price) >
|
|
0 ? (this.goodsSkuDetail
|
|
.price - this.goodsSkuDetail.seckill_price).toFixed(2) : 0;
|
|
|
|
if (this.$refs.loadingCover) this.$refs.loadingCover.hide();
|
|
} else {
|
|
this.$util.redirectTo('/pages_tool/goods/not_exist', {}, 'redirectTo');
|
|
}
|
|
},
|
|
// 秒杀
|
|
seckill() {
|
|
if (!uni.getStorageSync('token')) {
|
|
if (!this.source_member) {
|
|
this.$refs.login.open(this.shareUrl);
|
|
} else {
|
|
this.$refs.login.open(this.shareUrl + '&source_member=' + this.source_member);
|
|
}
|
|
return;
|
|
}
|
|
this.$refs.goodsSku.show("seckill", () => {
|
|
this.getCartCount();
|
|
});
|
|
},
|
|
/**
|
|
* 获取分享图
|
|
*/
|
|
getShareImg(){
|
|
let posterParams = {
|
|
id: this.goodsSkuDetail.goods_id
|
|
};
|
|
this.$api.sendRequest({
|
|
url: '/seckill/api/seckillgoods/shareimg',
|
|
data: {
|
|
qrcode_param: JSON.stringify(posterParams)
|
|
},
|
|
success: res => {
|
|
if (res.code == 0) this.shareImg = res.data.path;
|
|
}
|
|
})
|
|
}
|
|
}
|
|
}
|