Authored by 郭成尧

css

... ... @@ -2,7 +2,7 @@
* @Author: Targaryen
* @Date: 2017-06-21 10:15:38
* @Last Modified by: Targaryen
* @Last Modified time: 2017-06-21 16:20:42
* @Last Modified time: 2017-06-21 18:11:32
*/
const co = require('bluebird').coroutine;
const headerModel = require('../../../doraemon/models/header');
... ...
... ... @@ -127,8 +127,7 @@ exports.orderEnsure = (req, res, next) => {
module: 'cart',
page: 'order-ensure',
width750: true,
title: '确认订单',
localCss: true
title: '确认订单'
};
res.render('order-ensure', viewData);
... ...
... ... @@ -2,9 +2,535 @@
* @Author: Targaryen
* @Date: 2017-06-21 10:30:21
* @Last Modified by: Targaryen
* @Last Modified time: 2017-06-21 16:32:13
* @Last Modified time: 2017-06-21 18:03:11
*/
require('buynow/order-ensure.page.css');
const $ = require('yoho-jquery');
const lazyLoad = require('yoho-jquery-lazyload');
const cookie = require('yoho-cookie');
let tip = require('plugin/tip'),
loading = require('plugin/loading'),
order = require('../cart/order-info'),
richTip = require('plugin/rich-tip');
let $invoice = $('.invoice'),
$couponUse = $('.coupon-use.used'),
$addressWrap = $('.address-wrap'),
$coinCheck = $('.coin-check'),
$coinLi = $('li.coin'),
$subBlock = $('.sub-block'),
$ticketsMobile = $('#mobile'),
payType,
queryString = $.queryString(),
orderInfo = order.orderInfo,
isSubmiting,
dispatchInfo,
total,
isTickets = $('#ticketsPage').val(),
productSku = $('#productSku').val(),
buyNumber = $('#buyNumber').val(),
headerTop = $('#yoho-header').outerHeight(),
isYohoCoinClick = $coinLi.data('yoho-coin-click') * 1, // 判断有货币是否可以单击
addressTop = $('.address-wrap').outerHeight(),
$message = $('#msg'),
$noPrintPrice = $('.no-print-price');
require('common');
lazyLoad();
function getQueryParam() {
let queryArray = location.search.substr(1).split('&'),
i,
subArr = [],
obj = {};
for (i = 0; i < queryArray.length; i++) {
subArr = queryArray[i].split('=');
obj[subArr[0]] = subArr[1];
subArr = [];
}
return obj;
}
function isLimitGood() {
return getQueryParam().limitproductcode;
}
if (window.getUid() !== orderInfo('uid')) {
order.init();
window.location.reload();
}
if ($couponUse.data('name') !== orderInfo('couponName')) {
orderInfo('couponCode', null);
orderInfo('couponName', null);
}
// 来自购物车的链接默认不使用优惠券
if (document.referrer && document.referrer.indexOf('/cart/index/index') !== -1) {
orderInfo('couponCode', null);
orderInfo('couponName', null);
}
isLimitGood() && (function() {
let a = [];
let data = getQueryParam();
data.type = 'limitcode';
a.push(data);
orderInfo('skuList', JSON.stringify(a));
orderInfo('limitUrlSufix', location.search);
}());
if (queryString.cartType || queryString.carttype || !orderInfo('cartType')) {
orderInfo('cartType', queryString.cartType || queryString.carttype || 'ordinary');
}
$('.checkbox').on('touchstart', function(e) {
let $this = $(this);
if ($(e.target).closest('.coin-check').length && !isYohoCoinClick) {
return true;
}
if ($this.hasClass('icon-cb-radio')) {
$this.removeClass('icon-cb-radio').addClass('icon-radio');
return;
}
if ($this.hasClass('icon-radio')) {
$this.removeClass('icon-radio').addClass('icon-cb-radio');
}
});
$invoice.on('touchend', '.checkbox', function() {
let $this = $(this);
if ($this.hasClass('icon-cb-radio')) {
$invoice.addClass('focus');
orderInfo('invoiceText', '');
orderInfo('invoiceType', '7');
orderInfo('receiverMobile', $('.user-mobile').val());
orderInfo('invoicesType', '2');
orderInfo('invoiceTitle', '个人');
}
if ($this.hasClass('icon-radio')) {
$invoice.removeClass('focus');
orderInfo('invoiceText', null);
orderInfo('invoiceType', null);
orderInfo('receiverMobile', null);
orderInfo('invoicesType', null);
orderInfo('invoiceTitle', null);
}
});
function updateDeliverId(id) {
let $moreJit = $('.more-jit a').get(0),
url;
if ($moreJit) {
url = $moreJit.href;
} else {
return;
}
if (url.indexOf('deliveryId') < 0) {
$moreJit.href = url + '&deliveryId=' + id;
} else {
$moreJit.href = url.replace(/deliveryId=(\d)/, 'deliveryId=' + id);
}
}
function orderCompute() {
let yohoCoin = orderInfo('yohoCoin'),
deliverId = orderInfo('deliveryId'),
data = {
cartType: orderInfo('cartType') || 'ordinary',
deliveryId: orderInfo('deliveryId'),
paymentType: orderInfo('paymentType'),
couponCode: orderInfo('couponCode'),
yohoCoin: yohoCoin,
skuList: isLimitGood() ? orderInfo('skuList') : void 0
};
// 门票
if (isTickets) {
data = {
type: 'tickets',
productSku: productSku,
buyNumber: buyNumber,
yohoCoin: yohoCoin
};
}
loading.showLoadingMask();
$.ajax({
method: 'POST',
url: '/cart/index/new/orderCompute',
data: data
}).then(function(res) {
if ($.type(res) !== 'object') {
window.location.reload();
} else {
if (typeof res.last_order_amount !== 'undefined') {
res.last_order_amount = (+res.last_order_amount).toFixed(2);
}
if (res.use_yoho_coin) {
$coinCheck.find('em').html('- ¥ ' + res.use_yoho_coin);
$coinCheck.find('em').show();
}
$coinLi.find('.msg').html(res.yohoCoinCompute.yohoCoinMsg);
isYohoCoinClick = res.yohoCoinCompute.yohoCoinClick * 1;
$('.coin').data('yoho-coin', res.yohoCoinCompute.yohoCoin);
total = '';
if (res.promotion_formula_list) {
$.each(res.promotion_formula_list, function(index, value) {
total += '<li>' +
'<p>' + value.promotion + '</p>' +
'<span>' + value.promotion_amount + '</span>' +
'</li>';
});
$('.price-cost span').html('¥' + res.last_order_amount);
$('.bill span').html('¥' + res.last_order_amount);
$('.total').html(total);
}
updateDeliverId(deliverId);
}
}).fail(function() {
window.location.reload();
}).always(function() {
loading.hideLoadingMask();
});
}
function submitOrder() {
let invoiceText = $invoice.find('[name="invoice-title"]').val() || orderInfo('invoiceText'),
msg = $('#msg').find('input').val() || orderInfo('msg');
if (isSubmiting) {
return false;
}
if (msg) {
if (msg.length > 40) {
tip.show('留言不得超过40个汉字');
return;
}
}
loading.showLoadingMask();
isSubmiting = true;
$.ajax({
method: 'POST',
url: '/cart/index/new/orderSub',
data: {
addressId: orderInfo('addressId'),
cartType: orderInfo('cartType') || 'ordinary',
deliveryId: orderInfo('deliveryId'),
deliveryTimeId: orderInfo('deliveryTimeId'),
invoiceText: orderInfo('invoice') ? invoiceText : null,
invoiceType: orderInfo('invoice') ? ($invoice.find('.invoice-type').val() ||
orderInfo('invoiceType')) : null,
msg: msg,
isPrintPrice: orderInfo('isPrintPrice'),
paymentTypeId: orderInfo('paymentTypeId'),
paymentType: orderInfo('paymentType'), // 支付方式
couponCode: orderInfo('couponCode'),
yohoCoin: orderInfo('yohoCoin'),
skuList: isLimitGood() ? orderInfo('skuList') : void 0
}
}).then(function(res) {
let url;
if (!res) {
tip.show('系统繁忙,请稍后再试!');
return;
}
if (res.code === 200) {
if (payType === 2) {
// 货到付款的进入订单页面
url = '/home/orderDetail?order_code=' + res.data.order_code;
} else {
url = '/home/orders/paynew?order_code=' + res.data.order_code;
}
/* tar add 161116 */
if (window._yas && window._yas.sendCustomInfo) {
window._yas.sendCustomInfo({
op: 'YB_SC_TOPAY_CLICK',
param: JSON.stringify({
C_ID: window._ChannelVary[cookie.get('_Channel')],
ORDER_CODE: res.data.order_code + '',
PRD_NUM: $('#goods-num').val(),
ORDER_AMOUNT: res.data.order_amount
})
}, true);
}
/* tar add 170426 品众代码去除 */
/* tar note 170601 品众代码恢复 */
if (window._fxcmd) {
window._fxcmd.push(['trackOrder', {
oid: res.data.order_code,
otp: res.data.order_amount,
u_info: cookie.get('_UID'),
u_type: cookie.get('_isNewUser') ? 1 : 0
}, []]);
}
cookie.remove(['order-info', 'activity-info']);
window.location.href = url;
} else if (res.code === 409) {
richTip.show(res.message, res.buttons);
} else if (res.message) {
tip.show(res.message);
}
}).fail(function() {
tip.show('系统繁忙,请稍后再试!');
}).always(function() {
isSubmiting = false;
loading.hideLoadingMask();
});
}
// 界面点击,状态存 cookie
if (!orderInfo('addressId')) {
orderInfo('addressId', $addressWrap.data('id'));
}
$('.delivery-id').on('touchend', 'li', function() {
orderInfo('deliveryId', $(this).data('id'));
// 实付金额发生变化,使用有货币为0
orderInfo('yohoCoin', 0);
$('.coin').find('.checkbox').removeClass('icon-cb-radio').addClass('icon-radio');
orderCompute();
});
$('.payment-type').on('touchend', 'li', function() {
let $paymentType = $('.icon-cb-radio', this);
orderInfo('paymentTypeId', $paymentType.data('id')); // 支付方式id
orderInfo('paymentType', $paymentType.data('payment-type')); // 支付方式
});
$('.dispatch-time').on('touchend', 'li', function() {
orderInfo('deliveryTimeId', $(this).data('id'));
});
$('.yoho-coin-help-dialog-bg, .yoho-coin-footer').on('touchend', function(e) {
e.preventDefault();
$('.yoho-coin-help-dialog-bg').addClass('hide');
$('.yoho-coin-help-dialog').addClass('hide');
});
$('.coin').on('touchend', function(e) {
let $this = $(this);
if ($(e.target).closest('.yoho-coin-help').length) {
$('.yoho-coin-help-dialog-bg').removeClass('hide');
$('.yoho-coin-help-dialog').removeClass('hide');
return true;
}
if ($(e.target).closest('.coin-check').length <= 0) {
return false;
}
if (!isYohoCoinClick) {
return true;
}
if ($this.find('.checkbox').hasClass('icon-cb-radio')) {
orderInfo('yohoCoin', $this.data('yoho-coin'));
$this.find('.can-use').hide();
} else {
orderInfo('yohoCoin', 0);
$this.find('.coin-check em').hide();
$this.find('.can-use').show();
$this.find('.used').hide();
}
orderCompute();
});
$invoice.on('touchend', '.checkbox', function(e) {
let $this = $(this);
orderInfo('invoice', $this.hasClass('icon-cb-radio'));
e.preventDefault();
e.stopPropagation();
});
/**
* 是否打印价格
*/
$noPrintPrice.on('touchend', '.checkbox', function(e) {
let $this = $(this);
orderInfo('isPrintPrice', $this.hasClass('icon-cb-radio') ? 'N' : 'Y');
e.preventDefault();
e.stopPropagation();
});
$invoice.find('[name="invoice-title"]').on('blur', function() {
orderInfo('invoiceText', $(this).val());
}).end().find('.invoice-type').on('change', function() {
orderInfo('invoiceType', $(this).val());
});
$('#msg').find('textarea').on('blur', function() {
orderInfo('msg', $(this).val());
});
$('form').on('submit', function() {
return false;
});
// xwg 2016/3/21 13:22
$('.dispatch').on('touchend', 'h3', function() {
if ($(this).siblings('ul').is(':hidden')) {
$('.dispatch h3').removeClass('border-none');
$(this).addClass('border-none');
$('.down').removeClass('hide');
$('.up').addClass('hide');
$('.up', this).removeClass('hide');
$('.down', this).addClass('hide');
$('.dispatch ul').hide();
$(this).siblings('ul').show();
} else {
$(this).removeClass('border-none');
$('.down', this).removeClass('hide');
$('.up', this).addClass('hide');
$(this).siblings('ul').hide();
}
});
$subBlock.on('touchstart', 'li', function() {
// 送货时间提示语li,不响应事件
if ($(this).hasClass('dispatch-time-info')) {
return true;
}
$.each($(this).parents('ul').find('i'), function() {
$(this).parents('ul').find('i').removeClass('icon-cb-radio').addClass('icon-radio');
});
let self = $(this);
setTimeout(function() {
self.parents('ul').hide();
}, 300);
$('.down').removeClass('hide');
$('.up').addClass('hide');
$('.dispatch h3').removeClass('border-none');
dispatchInfo = $(this).find('span').html();
$(this).parents('.sub-block').find('h3 span').html(dispatchInfo);
if ($(this).find('i').hasClass('icon-cb-radio')) {
$(this).find('i').addClass('icon-radio');
} else if ($(this).find('i').hasClass('icon-radio')) {
$(this).find('i').addClass('icon-cb-radio');
}
});
$('.bill a').on('touchstart', function() {
let $paymentType;
if (isTickets) {
ticketsConfirm(); // eslint-disable-line
return;
}
$paymentType = $('.payment-type .icon-cb-radio');
orderInfo('paymentTypeId', $paymentType.data('id')); // 支付方式id
orderInfo('paymentType', $paymentType.data('payment-type')); // 支付方式
payType = $paymentType.data('payment-type');
submitOrder();
});
function phoneHidden(phone) {
phone = phone || '';
return phone.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2');
}
$('.info-phone').html(phoneHidden($('.info-phone').html()));
if (orderInfo('address') && orderInfo('address').is_support === 'N') {
orderInfo('deliveryId', $('.delivery-id .icon-cb-radio').data('id'));
orderCompute();
}
// 电子票下单
function ticketsConfirm() {
let data = {
productSku: productSku,
buyNumber: buyNumber,
mobile: $ticketsMobile.val(),
useYohoCoin: orderInfo('yohoCoin')
};
if (!$ticketsMobile.val()) {
tip.show('手机号必填');
return;
}
$.ajax({
url: '/cart/index/submitTicket',
type: 'POST',
dataType: 'json',
data: data,
success: function(ticket) {
// 下单成功调整支付页面
if (ticket.code === 200) {
window.location.href = '/home/orders/paynew?order_code=' + ticket.data.order_code;
} else {
tip.show(ticket.message);
}
},
error: function() {
tip.show('网络异常~');
}
});
}
// 校验手机号
$ticketsMobile.blur(function() {
let reg = /^[0123456789]{1,30}$/;
let mobile = $ticketsMobile.val();
if (!reg.test(mobile)) {
tip.show('手机号码不正确!');
}
});
// 留言点击滚动屏幕
$message.on('click', function() {
$('html,body').animate({
scrollTop: $message.offset().top
}, 500);
});
$(window).scroll(function() {
if ($(this).scrollTop() >= (headerTop + addressTop)) {
$('.address-bottom').show();
} else {
$('.address-bottom').hide();
}
});
lazyLoad($('img.lazy'));
... ...
... ... @@ -2,10 +2,6 @@
* @Author: Targaryen
* @Date: 2017-06-21 10:31:10
* @Last Modified by: Targaryen
* @Last Modified time: 2017-06-21 17:34:05
* @Last Modified time: 2017-06-21 18:04:31
*/
@import "../cart/order-ensure.css";
.easy-pay-orderensure {
background-color: #fff;
}
... ...