...
|
...
|
@@ -3,8 +3,10 @@ |
|
|
*/
|
|
|
|
|
|
var $ = require('yoho-jquery');
|
|
|
var Dialog = require('../common/dialog').Dialog;
|
|
|
var Alert = Dialog.Alert;
|
|
|
|
|
|
// var Dialog = require('../common/dialog').Dialog;
|
|
|
var Alert = require('../common/dialog').Alert;
|
|
|
var Confirm = require('../common/dialog').Confirm;
|
|
|
|
|
|
var $cartnewTips = $('.cartnew-tips'),
|
|
|
$payWapper = $('.pay-wapper'),
|
...
|
...
|
@@ -140,6 +142,7 @@ var cartItemNumChg = (function(data) { |
|
|
url: '/cart/index/modify',
|
|
|
data: data
|
|
|
}).then(function(d) {
|
|
|
alert(JSON.stringify(d));
|
|
|
if (d.code === 200) {
|
|
|
window.history.go(0);
|
|
|
} else {
|
...
|
...
|
@@ -227,7 +230,8 @@ function parseProductInfo(productInfo, defaultInfo) { |
|
|
// 默认选中用户选择的sku,若已售罄或下架,则选中列表中第一个非售罄的sku
|
|
|
for (index = 0; index < filterSet.length; index++) {
|
|
|
curColor = filterSet[index];
|
|
|
if (!hasActiveColor && curColor.color === defaultInfo.color) {
|
|
|
|
|
|
if (!hasActiveColor && String(curColor.name) === String(defaultInfo.color)) {
|
|
|
curColor.active = true;
|
|
|
curColor.hasActiveColor = hasActiveColor = true;
|
|
|
|
...
|
...
|
@@ -235,8 +239,10 @@ function parseProductInfo(productInfo, defaultInfo) { |
|
|
}
|
|
|
|
|
|
curSize = curColor.sizes;
|
|
|
|
|
|
for (sizeIdx = 0; sizeIdx < curSize.length; sizeIdx++) {
|
|
|
if (curColor.hasActiveColor && curSize[sizeIdx].name === defaultInfo.size) {
|
|
|
if (curColor.hasActiveColor && curSize[sizeIdx].sku === defaultInfo.sku) {
|
|
|
// console.log(curSize[sizeIdx]);
|
|
|
curSize[sizeIdx].sizeFocus = true;
|
|
|
break;
|
|
|
}
|
...
|
...
|
@@ -259,10 +265,32 @@ function parseProductInfo(productInfo, defaultInfo) { |
|
|
};
|
|
|
}
|
|
|
|
|
|
function renderAndShowSelWin($edit, pinfo) {
|
|
|
function updateCartItem(newSku, oldSku) {
|
|
|
|
|
|
$edit.find('.goods-choose-box').remove();
|
|
|
var $selWin = $(selColorWinTpl(pinfo)).appendTo($edit);
|
|
|
$.ajax({
|
|
|
type: 'POST',
|
|
|
url: '/shopping/cart/updateProduct',
|
|
|
data: {
|
|
|
swapData: JSON.stringify([{
|
|
|
buy_number: '1',
|
|
|
selected: 'Y',
|
|
|
new_product_sku: newSku,
|
|
|
old_product_sku: oldSku
|
|
|
}])
|
|
|
}
|
|
|
}).then(function(d) {
|
|
|
if (d.code === 200) {
|
|
|
window.history.go(0);
|
|
|
} else {
|
|
|
new Alert(d.message === '' ? '修改商品失败哦~~' : d.message).show();
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
function renderAndShowSelWin($item, pinfo) {
|
|
|
|
|
|
$item.find('.goods-choose-box').remove();
|
|
|
var $selWin = $(selColorWinTpl(pinfo)).appendTo($item);
|
|
|
$selWin.show();
|
|
|
}
|
|
|
|
...
|
...
|
@@ -485,13 +513,15 @@ var Cart = { |
|
|
var $this = $(this);
|
|
|
var $item = $this.closest('li[data-role="pitem"]');
|
|
|
var pinfo = $this.data('_p_info');
|
|
|
var $selWin = $this.find('.goods-choose-box');
|
|
|
var $selWin = $item.find('.goods-choose-box');
|
|
|
var pid = $item.data('pid');
|
|
|
var skn = $item.data('skn');
|
|
|
var sku = $item.data('id');
|
|
|
var defaultInfo = {
|
|
|
color: $this.find('.default-color').text(),
|
|
|
size: $this.find('.default-size').text(),
|
|
|
color: $item.data('color'),
|
|
|
size: $item.data('size'),
|
|
|
pid: pid,
|
|
|
sku: sku,
|
|
|
skn: skn
|
|
|
};
|
|
|
|
...
|
...
|
@@ -504,18 +534,65 @@ var Cart = { |
|
|
getProductInfo(pid, skn).done(function(productInfo) {
|
|
|
|
|
|
pinfo = parseProductInfo(productInfo, defaultInfo);
|
|
|
|
|
|
$this.data('_p_info', pinfo);
|
|
|
renderAndShowSelWin($this, pinfo);
|
|
|
renderAndShowSelWin($item, pinfo);
|
|
|
}).fail(function() {
|
|
|
new Alert('此商品无法编辑颜色和尺寸').show();
|
|
|
});
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
renderAndShowSelWin($this, pinfo);
|
|
|
renderAndShowSelWin($item, pinfo);
|
|
|
},
|
|
|
editColorOrSize: function(productId, skn, defaultColor, defaultSize, editTarget) {
|
|
|
editColorOrSize: function() {
|
|
|
|
|
|
var $this = $(this);
|
|
|
var $item = $this.closest('li[data-role="pitem"]');
|
|
|
var pid = $item.data('pid');
|
|
|
var oldSku = $item.data('id');
|
|
|
var $size = $this.closest('.goods-choose-box').find('.choose-size .dt.active');
|
|
|
var newSku = $size.data('sku');
|
|
|
|
|
|
// 没有重新选择颜色-尺码,则不用重新请求显示
|
|
|
if (!oldSku || !newSku || oldSku === newSku) {
|
|
|
Cart._hideColorSizePanel($item);
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
updateCartItem(newSku, oldSku);
|
|
|
},
|
|
|
_hideColorSizePanel: function($item) {
|
|
|
$item.find('.goods-choose-box').hide();
|
|
|
$item.find('.pay-pro-detail').removeClass('active');
|
|
|
},
|
|
|
hideColorSizePanel: function(event) {
|
|
|
var $this = $(this);
|
|
|
|
|
|
event.stopPropagation();
|
|
|
Cart._hideColorSizePanel($this.closest('li[data-role="pitem"]'));
|
|
|
},
|
|
|
selectColor: function() {
|
|
|
var $this = $(this);
|
|
|
var index = $this.index('.dt');
|
|
|
var $srows = $this.closest('.goods-info').find('.choose-size .size-row');
|
|
|
|
|
|
if ($this.hasClass('active')) return;
|
|
|
|
|
|
$this.siblings('.dt').remove('active');
|
|
|
$this.addClass('active');
|
|
|
|
|
|
$srows.find('.dt').removeClass('active');
|
|
|
$srows.hide();
|
|
|
$srows.indexOf(index).show();
|
|
|
|
|
|
},
|
|
|
selectSize: function() {
|
|
|
|
|
|
var $this = $(this);
|
|
|
|
|
|
$this.siblings('.dt').removeClass('active');
|
|
|
$this.addClass('active');
|
|
|
},
|
|
|
submit: function() {
|
|
|
/* understock = '';
|
...
|
...
|
@@ -570,6 +647,11 @@ $cartnewSum.on('click', '.clean-all-disable', Cart.cleanAllDisable); |
|
|
$('.btn_account').on('click', Cart.submit); // 结算
|
|
|
|
|
|
$payWapper.on('click', 'li[data-role="pitem"] .pay-pro-detail', Cart.showColorSizePanel);
|
|
|
$payWapper.on('click', 'li[data-role="pitem"] .button-cancel', Cart.hideColorSizePanel);
|
|
|
$payWapper.on('click', 'li[data-role="pitem"] .button-sure', Cart.editColorOrSize);
|
|
|
$payWapper.on('click', 'li[data-role="pitem"] .goods-choose-box .choose-color .dt', Cart.selectColor);
|
|
|
$payWapper.on('click', 'li[data-role="pitem"] .goods-choose-box .choose-size .dt', Cart.selectSize);
|
|
|
|
|
|
|
|
|
// / 绑定颜色尺码弹窗事件 begin
|
|
|
/*
|
...
|
...
|
|