Authored by OF1706

n

... ... @@ -4,7 +4,9 @@
{{#if skn}}data-skn="{{skn}}"{{/if}}
{{#if sku}}data-sku="{{sku}}"{{/if}}
{{#if productNum}}data-productnum="{{productNum}}"{{/if}}
{{#if goodsType}}data-goodstype="{{goodsType}}"{{/if}} >
{{#if goodsType}}data-goodstype="{{goodsType}}"{{/if}}
data-color="{{productColor}}"
data-size="{{productSize}}">
<div class="pay-pro td" style="width: 45%;">
<i class="cart-item-check iconfont {{#isChecked}}cart-item-checked{{/isChecked}}"
readonly="readonly" data-goodstype="{{goodsType}}"
... ... @@ -15,7 +17,7 @@
</a>
<p class="pay-pro-info">
<a href="{{link}}" target="_blank">{{productTitle}}</a>
<em class="pay-pro-detail"><span><b title="{{productColor}}">颜色:红色{{productColor}}</b> 尺码:{{productSize}}<i class="iconfont">&#xe6c7;</i></span></em>
<em class="pay-pro-detail"><span><b title="{{productColor}}">颜色:{{productColor}}</b> 尺码:{{productSize}}<i class="iconfont">&#xe6c7;</i></span></em>
</p>
</div>
<div class="product-price td" style="width:17%;">¥{{productPrice}}
... ...
... ... @@ -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
/*
... ...