|
|
const tip = require('plugin/tip');
|
|
|
|
|
|
$(window).on('seckill', function() {
|
|
|
$('.btn-c').before('<a href="https://union.yoho.cn/union/app-downloads.html" class="seckill-download-app">下载APP购买</a>');
|
|
|
$('.btn-c').remove();
|
|
|
});
|
|
|
|
|
|
// 调用秒杀js
|
|
|
// $(window).on('seckill', function(event, detailData) {
|
|
|
|
|
|
// /**
|
|
|
// * [秒抢页面js]
|
|
|
// * author: 李靖<jing.li@yoho.cn>
|
|
|
// * date: 2016/09/08
|
|
|
// */
|
|
|
|
|
|
// let $ = require('yoho-jquery'),
|
|
|
// tip = require('plugin/tip');
|
|
|
|
|
|
// let seckillObj = {};
|
|
|
|
|
|
// let offsetTime = 0;
|
|
|
|
|
|
// let nowTime = 0;
|
|
|
|
|
|
// let startTime = 0;
|
|
|
|
|
|
// let endTime = 0,
|
|
|
// diffTime = 0; // 误差时间
|
|
|
|
|
|
// let dateText = 0,
|
|
|
// newDate = 0,
|
|
|
// newMonth = 0,
|
|
|
// newDay = 0,
|
|
|
// newHour = 0,
|
|
|
// newMinus = 0;
|
|
|
|
|
|
|
|
|
// let secKillPrice = 0;
|
|
|
|
|
|
// // 隐藏折扣信息
|
|
|
// $('.good-detail-page').addClass('hide-discount');
|
|
|
|
|
|
// require('common');
|
|
|
|
|
|
// seckillObj = {
|
|
|
// el: {
|
|
|
// iScroll: null,
|
|
|
// currentTick: null
|
|
|
// },
|
|
|
|
|
|
// startTick: function(status, offTime) {
|
|
|
// let that = this,
|
|
|
// $el = this.el,
|
|
|
// day = parseInt(offTime / (60 * 60 * 24), 10),
|
|
|
// hour = parseInt(offTime % (60 * 60 * 24) / (60 * 60), 10),
|
|
|
// minute = parseInt(offTime % (60 * 60) / 60, 10),
|
|
|
// second = offTime % 60;
|
|
|
|
|
|
// let $elem = status === 0 ? $('.seckill-count-num') : $('.end-time');
|
|
|
|
|
|
// if (offTime >= -1) {
|
|
|
// if (day <= 0) {
|
|
|
// $('.day-c').addClass('hide');
|
|
|
// }
|
|
|
// $elem.find('.tick.day').text(that.formatNumber(day));
|
|
|
// $elem.find('.tick.hour').text(that.formatNumber(hour));
|
|
|
// $elem.find('.tick.minute').text(that.formatNumber(minute));
|
|
|
// $elem.find('.tick.second').text(that.formatNumber(second));
|
|
|
|
|
|
// if (offTime <= -1) { // 结束倒计时刷新状态
|
|
|
// window.location.reload();
|
|
|
// } else {
|
|
|
// $el.currentTick = setTimeout(function() {
|
|
|
// that.startTick(status, --offTime);
|
|
|
// }, 1000);
|
|
|
// }
|
|
|
// }
|
|
|
|
|
|
// },
|
|
|
// formatNumber: (number) => {
|
|
|
// if (number < 0) {
|
|
|
// return '00';
|
|
|
// } else if (number < 10) {
|
|
|
// return '0' + number;
|
|
|
// } else {
|
|
|
// return number;
|
|
|
// }
|
|
|
// },
|
|
|
// };
|
|
|
|
|
|
// $(
|
|
|
// function() {
|
|
|
// $('#goodsDiscount').hide(); // 隐藏折扣楼层
|
|
|
// $('.cart-bar').hide();
|
|
|
// $('.current-price').hide();
|
|
|
// let ajaxUrl = '/product/seckillDetail/seckillData/' + $('#productSkn').val();
|
|
|
// let timestamp = Date.parse(new Date());
|
|
|
|
|
|
// $.ajax({
|
|
|
// type: 'GET',
|
|
|
// url: ajaxUrl + '?tamp=' + timestamp,
|
|
|
// success: function(data) {
|
|
|
|
|
|
// // 秒杀是否结束
|
|
|
// if (data === '' || data.status === 0 || data.status === 3) {
|
|
|
// window.location.replace('/product/' + $('#productSkn').val() + '.html'); // 商品url改版
|
|
|
|
|
|
// // $('.sold-out').hide();
|
|
|
// // $('.cart-bar a:first').append('<a href="javascript:;" class="sold-out">已售罄</a>');
|
|
|
// // $('.addto-cart').hide();
|
|
|
// // $('.cart-bar').show();
|
|
|
// // $('.current-price').show();
|
|
|
// } else {
|
|
|
|
|
|
// // 秒杀开始前
|
|
|
// if (data.status === 1) {
|
|
|
// $('.cart-bar').before(
|
|
|
// '<div class="seckill-count">' +
|
|
|
// '<div class="seckill-count-bg"></div>' +
|
|
|
// '<div class="seckill-count-num">距秒杀开始:' +
|
|
|
// '<span class="day-c"><i class="tick day">00</i>天</span>' +
|
|
|
// '<i class="tick hour">00</i>时' +
|
|
|
// '<i class="tick minute">00</i>分' +
|
|
|
// '<i class="tick second">00</i>秒' +
|
|
|
// '</div>' +
|
|
|
// '</div>'
|
|
|
// );
|
|
|
// $('.current-price').text('¥' + data.secKillPrice).show();
|
|
|
// $('.price-date').eq(0).append(
|
|
|
// '<div class="seckill-time notStart">' +
|
|
|
// '<span class="seckill-time-pic">秒杀预告</span>' +
|
|
|
// '<span class="seckill-time-c">月日</span>' +
|
|
|
// '</div>'
|
|
|
// );
|
|
|
// $('.sold-out').hide();
|
|
|
// $('.btn-c').append('<a href="javascript:;" class="sold-out">即将开抢</a>');
|
|
|
// $('.addto-cart').hide();
|
|
|
// $('.cart-bar').show();
|
|
|
// $('.current-price').show();
|
|
|
// timeInit(data); // eslint-disable-line
|
|
|
// }
|
|
|
|
|
|
// // 秒杀进行中
|
|
|
// if (data.status === 2) {
|
|
|
// $('#addtoCart').off('touchstart');
|
|
|
|
|
|
// // 插入倒计时
|
|
|
// addTimeout($('.price-date').eq(0)); // eslint-disable-line
|
|
|
|
|
|
// let chosePanel = require('common/chose-panel-new');
|
|
|
// let seckillData = data.secKillSku;
|
|
|
|
|
|
// detailData.cartInfo.skus.forEach(
|
|
|
// function(val) {
|
|
|
// seckillData.forEach(
|
|
|
// function(item) {
|
|
|
// if (val.skuId === item.productSku) {
|
|
|
// val.storage = item.storageNum;
|
|
|
// }
|
|
|
// }
|
|
|
// );
|
|
|
// }
|
|
|
// );
|
|
|
|
|
|
// $('#addtoCart').on('touchstart', function() {
|
|
|
// $('.cart-bar').hide();
|
|
|
// chosePanel.show({
|
|
|
// data: detailData,
|
|
|
// disableNum: true
|
|
|
// }).then(result => {
|
|
|
// $('.cart-bar').show();
|
|
|
// if (result && result.sku) {
|
|
|
// window.location.href = '/cart/index/seckill?skn=' +
|
|
|
// $('#productSkn').val() + '&sku=' + result.sku.skuId;
|
|
|
// }
|
|
|
// }, () => {
|
|
|
// $('.cart-bar').show();
|
|
|
// });
|
|
|
// $('.text-info').append($('.seckill-time').clone());
|
|
|
// $('.chose-items .num').find('.clearfix').append(
|
|
|
// '<span class="limit-num-text">限购1件</span>'
|
|
|
// );
|
|
|
// $('.sale-price').text('¥' + secKillPrice).show();
|
|
|
// return false;
|
|
|
// });
|
|
|
|
|
|
|
|
|
// secKillPrice = toDecimal2(data.secKillPrice); // eslint-disable-line
|
|
|
// $('.current-price').text('¥' + secKillPrice).show();
|
|
|
// $('.left-num').hide();
|
|
|
// $('.btn-plus').removeClass('btn-plus');
|
|
|
// $('.addto-cart').text('立即购买');
|
|
|
// $('#chose-btn-sure').text('立即购买').addClass('isSecKill');
|
|
|
// $('.cart-bar').show();
|
|
|
// let seckillNum = 0;
|
|
|
|
|
|
// for (let i = 0; i < data.secKillSku.length; i++) {
|
|
|
// seckillNum = seckillNum + data.secKillSku[i].storageNum;
|
|
|
// }
|
|
|
// if (seckillNum === 0) {
|
|
|
// $('.sold-out').hide();
|
|
|
// $('.btn-c').append('<a href="javascript:;" class="sold-out">已售罄</a>');
|
|
|
// $('.addto-cart').hide();
|
|
|
// }
|
|
|
// $('.current-price').show();
|
|
|
// timeInit(data); // eslint-disable-line
|
|
|
// }
|
|
|
|
|
|
// }
|
|
|
// },
|
|
|
// error: function() {
|
|
|
// tip.show('网络异常~');
|
|
|
// }
|
|
|
// });
|
|
|
|
|
|
// }
|
|
|
// );
|
|
|
|
|
|
// // function seckHide() {
|
|
|
// // $('.chose-panel .size-list ul').each(
|
|
|
// // function() {
|
|
|
// // hideNum = 0;
|
|
|
// // $(this).find('li').each(
|
|
|
// // function() {
|
|
|
// // if ($(this).hasClass('hide')) {
|
|
|
// // oneIndex = $(this).index() + 1;
|
|
|
// // twoIndex = $(this).parent('ul').index() - 2;
|
|
|
// // $('.color-list ul:eq(' + oneIndex + ') li:eq(' + twoIndex + ')').hide();
|
|
|
// // } else {
|
|
|
// // hideNum++;
|
|
|
// // }
|
|
|
// // }
|
|
|
// // );
|
|
|
// // if (hideNum === 0) {
|
|
|
// // hideIndex = $(this).index() - 2;
|
|
|
// // $('.color-list ul:first li:eq(' + hideIndex + ')').hide();
|
|
|
// // }
|
|
|
// // }
|
|
|
// // );
|
|
|
|
|
|
// // $('.chose-panel .color-list ul').each(
|
|
|
// // function() {
|
|
|
// // hideNum = 0;
|
|
|
// // $(this).find('li').each(
|
|
|
// // function() {
|
|
|
// // if ($(this).hasClass('hide')) {
|
|
|
// // oneIndex = $(this).index() + 1;
|
|
|
// // twoIndex = $(this).parent('ul').index() - 2;
|
|
|
// // $('.size-list ul:eq(' + oneIndex + ') li:eq(' + twoIndex + ')').hide();
|
|
|
// // } else {
|
|
|
// // hideNum++;
|
|
|
// // }
|
|
|
// // }
|
|
|
// // );
|
|
|
// // if (hideNum === 0) {
|
|
|
// // hideIndex = $(this).index() - 2;
|
|
|
// // $('.size-list ul:first li:eq(' + hideIndex + ')').hide();
|
|
|
// // }
|
|
|
// // }
|
|
|
// // );
|
|
|
// // }
|
|
|
|
|
|
// function addTimeout(obj) {
|
|
|
// obj.append(
|
|
|
// '<div class="seckill-time seckill-time-border">' +
|
|
|
// '<span>距结束 </span>' +
|
|
|
// '<span class="end-time">' +
|
|
|
// '<i class="tick day hide">00</i>' +
|
|
|
// '<i class="tick hour">00</i>:' +
|
|
|
// '<i class="tick minute">00</i>:' +
|
|
|
// '<i class="tick second">00</i>' +
|
|
|
// '</span>' +
|
|
|
// '</div>'
|
|
|
// );
|
|
|
// }
|
|
|
|
|
|
// // 强制保留2位小数点
|
|
|
// function toDecimal2(num) {
|
|
|
// let f = parseFloat(num);
|
|
|
|
|
|
// if (isNaN(f)) {
|
|
|
// return false;
|
|
|
// }
|
|
|
// f = Math.round(num * 100) / 100;
|
|
|
// let s = f.toString();
|
|
|
// let rs = s.indexOf('.');
|
|
|
|
|
|
// if (rs < 0) {
|
|
|
// rs = s.length;
|
|
|
// s += '.';
|
|
|
// }
|
|
|
// while (s.length <= rs + 2) {
|
|
|
// s += '0';
|
|
|
// }
|
|
|
// return s;
|
|
|
// }
|
|
|
|
|
|
// function timeInit(data) {
|
|
|
// let status = 0;
|
|
|
|
|
|
// startTime = data.startTime;
|
|
|
// endTime = data.endTime;
|
|
|
// diffTime = data.currentTime;
|
|
|
// nowTime = diffTime;
|
|
|
// if (startTime > nowTime) {
|
|
|
// offsetTime = startTime - nowTime;
|
|
|
// } else if (nowTime > startTime && nowTime < endTime) {
|
|
|
// offsetTime = endTime - nowTime;
|
|
|
// status = 1;
|
|
|
// }
|
|
|
$(function() {
|
|
|
$('#goodsDiscount').hide(); // 隐藏折扣楼层
|
|
|
$('.current-price').hide();
|
|
|
let ajaxUrl = '/product/seckillDetail/seckillData/' + $('#productSkn').val();
|
|
|
let timestamp = Date.parse(new Date());
|
|
|
|
|
|
$.ajax({
|
|
|
type: 'GET',
|
|
|
url: ajaxUrl + '?tamp=' + timestamp,
|
|
|
success: function(data) {
|
|
|
let secKillPrice = toDecimal2(data.secKillPrice); // eslint-disable-line
|
|
|
|
|
|
if (secKillPrice) {
|
|
|
$('.current-price').before('<h1 class="seckill-price" style="display: inline-block;"></h1>').hide();
|
|
|
$('.current-price').remove();
|
|
|
$('.seckill-price').text('¥' + secKillPrice).show();
|
|
|
} else {
|
|
|
$('.current-price').show();
|
|
|
}
|
|
|
},
|
|
|
error: function() {
|
|
|
tip.show('网络异常~');
|
|
|
}
|
|
|
});
|
|
|
});
|
|
|
|
|
|
// dateText = Number(data.startTime * 1000);
|
|
|
// newDate = new Date(dateText);
|
|
|
// newMonth = newDate.getMonth() + 1;
|
|
|
// newDay = newDate.getDate();
|
|
|
// newHour = newDate.getHours();
|
|
|
// newMinus = newDate.getMinutes();
|
|
|
// if (newMinus === 0) {
|
|
|
// newMinus = '00';
|
|
|
// }
|
|
|
// $('.notStart').find('.seckill-time-c').text(newMonth + '月' + newDay + '日' + newHour + ':' + newMinus);
|
|
|
// seckillObj.startTick(status, offsetTime);
|
|
|
// }
|
|
|
// });
|
|
|
// 强制保留2位小数点
|
|
|
function toDecimal2(num) {
|
|
|
let f = parseFloat(num);
|
|
|
|
|
|
if (isNaN(f)) {
|
|
|
return false;
|
|
|
}
|
|
|
f = Math.round(num * 100) / 100;
|
|
|
let s = f.toString();
|
|
|
let rs = s.indexOf('.');
|
|
|
|
|
|
if (rs < 0) {
|
|
|
rs = s.length;
|
|
|
s += '.';
|
|
|
}
|
|
|
while (s.length <= rs + 2) {
|
|
|
s += '0';
|
|
|
}
|
|
|
return s;
|
|
|
}
|
|
|
|
|
|
// 调用新商品详情页js
|
|
|
require('./new-detail'); |
|
|
|
...
|
...
|
|