...
|
...
|
@@ -2,7 +2,7 @@ |
|
|
* @Author: Targaryen
|
|
|
* @Date: 2017-06-23 11:43:44
|
|
|
* @Last Modified by: Targaryen
|
|
|
* @Last Modified time: 2017-06-27 14:58:41
|
|
|
* @Last Modified time: 2017-07-24 17:49:36
|
|
|
*/
|
|
|
require('cart/select-coupon.page.css');
|
|
|
const qs = require('yoho-qs');
|
...
|
...
|
@@ -12,17 +12,26 @@ let $ = require('yoho-jquery'), |
|
|
tip = require('plugin/tip'),
|
|
|
conponTmpl = require('cart/select-coupon/coupon.hbs'),
|
|
|
conponNotAvaliableTmpl = require('cart/select-coupon/coupon-not-avaliable.hbs'),
|
|
|
orderInfo = require('./order-info').orderInfo;
|
|
|
orderInfo = require('cart/buynow/order-info').orderInfo;
|
|
|
|
|
|
require('plugin/tab');
|
|
|
|
|
|
let isGetData;
|
|
|
|
|
|
let $newCoupon = $('#new-coupon'),
|
|
|
linkUrl = document.referrer,
|
|
|
$couponList = $('#coupon-list');
|
|
|
linkUrl = document.referrer;
|
|
|
let $couponAvailable = $('#couponAvailable');
|
|
|
let $couponUnavailable = $('#couponUnavailable');
|
|
|
let $useCoupon = $('#useCoupon');
|
|
|
let $notUseCoupon = $('#notUseCoupon');
|
|
|
|
|
|
// let $couponUsableUsual;
|
|
|
// let $couponUsableFree;
|
|
|
|
|
|
let winH = $(window).height();
|
|
|
|
|
|
require('common');
|
|
|
require('cart/cartbuynow/select-coupon');
|
|
|
|
|
|
function fixedLayOut() {
|
|
|
let $null = $('.null'),
|
...
|
...
|
@@ -48,6 +57,9 @@ function goToBack() { |
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 输入优惠券码兑换优惠券
|
|
|
*/
|
|
|
$newCoupon.on('submit', function() {
|
|
|
let $this = $(this);
|
|
|
let couponCode = $this.find('[name="couponCode"]').val();
|
...
|
...
|
@@ -64,16 +76,14 @@ $newCoupon.on('submit', function() { |
|
|
buy_number: qs.buy_number
|
|
|
}
|
|
|
}).then(function(res) {
|
|
|
if (res.message) {
|
|
|
tip.show(res.message);
|
|
|
}
|
|
|
if (res.code === 200) {
|
|
|
tip.show('优惠券可用');
|
|
|
|
|
|
// 实付金额发生变化,使用有货币为0
|
|
|
orderInfo('use_yoho_coin', 0);
|
|
|
orderInfo('coupon_code', res.data.coupon_code);
|
|
|
orderInfo('couponName', res.data.coupon_title);
|
|
|
goToBack();
|
|
|
} else {
|
|
|
tip.show(res.message);
|
|
|
setTimeout(function() {
|
|
|
location.reload();
|
|
|
}, 500);
|
|
|
}
|
|
|
}).fail(function() {
|
|
|
tip.show('网络错误');
|
...
|
...
|
@@ -81,101 +91,108 @@ $newCoupon.on('submit', function() { |
|
|
return false;
|
|
|
});
|
|
|
|
|
|
$couponList.on('touchstart', '.employ-main', function() {
|
|
|
let $this = $(this);
|
|
|
|
|
|
$this.siblings().removeClass('focus');
|
|
|
$this.addClass('focus');
|
|
|
}).on('touchend touchcancel', '.employ-main', function() {
|
|
|
let $this = $(this);
|
|
|
/**
|
|
|
* 使用优惠券
|
|
|
*/
|
|
|
$useCoupon.on('click', function() {
|
|
|
let couponCodeArray = [];
|
|
|
|
|
|
$this.siblings().removeClass('focus');
|
|
|
$this.removeClass('focus');
|
|
|
});
|
|
|
if (orderInfo('usable_usual_code')) {
|
|
|
couponCodeArray.push(orderInfo('usable_usual_code'));
|
|
|
}
|
|
|
|
|
|
$('body').on('touchend', '.not-use', function() {
|
|
|
orderInfo('coupon_code', null);
|
|
|
orderInfo('couponName', null);
|
|
|
if (orderInfo('usable_free_code')) {
|
|
|
couponCodeArray.push(orderInfo('usable_free_code'));
|
|
|
}
|
|
|
|
|
|
// 实付金额发生变化,使用有货币为0
|
|
|
orderInfo('use_yoho_coin', 0);
|
|
|
orderInfo('coupon_code', couponCodeArray.join(','));
|
|
|
goToBack();
|
|
|
});
|
|
|
|
|
|
$newCoupon.find('input').on('input', function() {
|
|
|
if ($(this).val() !== '') {
|
|
|
$newCoupon.find('.submit').css('background', '#444');
|
|
|
} else {
|
|
|
$newCoupon.find('.submit').css('background', '#b0b0b0');
|
|
|
}
|
|
|
/**
|
|
|
* 不使用优惠券
|
|
|
*/
|
|
|
$notUseCoupon.on('click', function() {
|
|
|
orderInfo('coupon_code', null);
|
|
|
orderInfo('usable_usual_code', null);
|
|
|
orderInfo('usable_free_code', null);
|
|
|
goToBack();
|
|
|
});
|
|
|
|
|
|
/**
|
|
|
* 优惠券列表处理
|
|
|
* @param {*} allCoupons
|
|
|
*/
|
|
|
function getCouponHandle(allCoupons) {
|
|
|
let notAvailableCoupons,
|
|
|
coupons;
|
|
|
|
|
|
// 把可用和不可用的优惠券分离出来
|
|
|
notAvailableCoupons = allCoupons.unusableCoupons;
|
|
|
coupons = allCoupons.usableCoupons;
|
|
|
|
|
|
// 没有优惠券
|
|
|
if (!(notAvailableCoupons.length || coupons.length)) {
|
|
|
$('.coupon-wrap').html($('#tmpl-no-coupon').html());
|
|
|
fixedLayOut();
|
|
|
return;
|
|
|
}
|
|
|
let availableCoupons = allCoupons.availableCoupons;
|
|
|
let usableFreesCoupons = allCoupons.usableFreesCoupons;
|
|
|
let notAvailableCoupons = allCoupons.notAvailableCoupons;
|
|
|
|
|
|
$.each(availableCoupons, function(i, coupon) {
|
|
|
coupon.couponValue = Math.floor(coupon.couponValue);
|
|
|
});
|
|
|
|
|
|
$.each(coupons, function(i, coupon) {
|
|
|
$.each(usableFreesCoupons, function(i, coupon) {
|
|
|
coupon.couponValue = Math.floor(coupon.couponValue);
|
|
|
coupon.couponDetailInfomation = coupon.couponName;
|
|
|
});
|
|
|
|
|
|
$.each(notAvailableCoupons, function(i, coupon) {
|
|
|
coupon.couponValue = Math.floor(coupon.couponValue);
|
|
|
coupon.couponDetailInfomation = coupon.couponName;
|
|
|
});
|
|
|
|
|
|
$couponUnavailable.append(conponNotAvaliableTmpl({
|
|
|
notAvailableCoupons: notAvailableCoupons
|
|
|
}));
|
|
|
|
|
|
// 没有优惠券
|
|
|
if (!(availableCoupons.length || usableFreesCoupons.length)) {
|
|
|
$('#couponAvailable').html($('#tmplNoCoupon').html());
|
|
|
fixedLayOut();
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
// 渲染可用的优惠券
|
|
|
$couponList.append(conponTmpl({
|
|
|
coupons: coupons
|
|
|
})).find('.employ-main').on('touchstart', function() {
|
|
|
let couponCode = $(this).data('coupon-code');
|
|
|
|
|
|
$.ajax({
|
|
|
method: 'POST',
|
|
|
url: '/cart/index/buynow/useCoupon',
|
|
|
data: {
|
|
|
product_sku: qs.product_sku,
|
|
|
buy_number: qs.buy_number,
|
|
|
coupon_code: couponCode
|
|
|
}
|
|
|
}).then(function(res) {
|
|
|
if (res.code === 200) {
|
|
|
orderInfo('coupon_code', res.data.coupon_code);
|
|
|
orderInfo('couponName', res.data.coupon_title);
|
|
|
|
|
|
// 实付金额发生变化,使用有货币为0
|
|
|
orderInfo('use_yoho_coin', 0);
|
|
|
goToBack();
|
|
|
} else if (res.message) {
|
|
|
tip.show(res.message);
|
|
|
$couponAvailable.append(conponTmpl({
|
|
|
availableCoupons: availableCoupons,
|
|
|
usableFreesCoupons: usableFreesCoupons
|
|
|
})).find('.coupon').on('touchstart', function() {
|
|
|
let $theCoupon = $(this);
|
|
|
let $theCouponCheckBox = $theCoupon.find('.checkbox');
|
|
|
|
|
|
let couponCode = $theCoupon.data('code');
|
|
|
|
|
|
// 操作前的选中状态
|
|
|
let beforeIsChecked = $theCouponCheckBox.hasClass('icon-cb-radio');
|
|
|
|
|
|
if ($theCoupon.hasClass('usable-usual')) {
|
|
|
if (beforeIsChecked) {
|
|
|
$theCouponCheckBox.removeClass('icon-cb-radio').addClass('icon-radio');
|
|
|
|
|
|
orderInfo('usable_usual_code', null);
|
|
|
} else {
|
|
|
$('.usable-usual').find('.checkbox').removeClass('icon-cb-radio').addClass('icon-radio');
|
|
|
$theCouponCheckBox.removeClass('icon-radio').addClass('icon-cb-radio');
|
|
|
|
|
|
orderInfo('usable_usual_code', couponCode);
|
|
|
}
|
|
|
}).fail(function() {
|
|
|
tip.show('网络错误');
|
|
|
});
|
|
|
});
|
|
|
} else if ($theCoupon.hasClass('usable-free')) {
|
|
|
if (beforeIsChecked) {
|
|
|
$theCouponCheckBox.removeClass('icon-cb-radio').addClass('icon-radio');
|
|
|
|
|
|
if (notAvailableCoupons.length) {
|
|
|
$('.not-avaliable-coupon-line').show();
|
|
|
}
|
|
|
$('#coupon-list-not').append(conponNotAvaliableTmpl({
|
|
|
notAvailableCoupons: notAvailableCoupons
|
|
|
}));
|
|
|
window.rePosFooter();
|
|
|
orderInfo('usable_free_code', null);
|
|
|
} else {
|
|
|
$('.usable-free').find('.checkbox').removeClass('icon-cb-radio').addClass('icon-radio');
|
|
|
$theCouponCheckBox.removeClass('icon-radio').addClass('icon-cb-radio');
|
|
|
|
|
|
orderInfo('usable_free_code', couponCode);
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取优惠券列表
|
|
|
*/
|
|
|
function getCouponData() {
|
|
|
|
|
|
if (isGetData) {
|
...
|
...
|
@@ -193,7 +210,9 @@ function getCouponData() { |
|
|
buy_number: qs.buy_number
|
|
|
},
|
|
|
dataType: 'json'
|
|
|
}).then(getCouponHandle).always(function() {
|
|
|
}).then(getCouponHandle).fail(function() {
|
|
|
tip.show('加载优惠券失败');
|
|
|
}).always(function() {
|
|
|
isGetData = false;
|
|
|
loading.hideLoadingMask();
|
|
|
});
|
...
|
...
|
|