Authored by 刘传洋

m

... ... @@ -101,7 +101,7 @@ const cart = (req, res, next) => {
});
}
service.getCartData(uid, shoppingKey, cartDelList)
service.getCartData(uid, shoppingKey)
.then(ret => {
if (req.query.json === '1') {
... ... @@ -141,8 +141,11 @@ const cartAdd = (req, res) => {
let goodsType = req.body.goodsType || 0;
let promotionId = req.body.promotionId || 0;
let isEdit = req.body.isEdit || 0;
let cartDelList = req.cookies['cart-del-list'];
let result = yield service.addToCart(productSku, buyNumber, goodsType, isEdit, promotionId, uid, shoppingKey);
let result = yield service.addToCart(productSku, buyNumber,
goodsType, isEdit, promotionId,
uid, shoppingKey, cartDelList);
// 设置加入购物车凭证到客户端浏览器
if (!shoppingKey && result && result.data && result.data.shopping_key) {
... ... @@ -208,8 +211,9 @@ const modifyProductNum = (req, res, next) => {
let sku = req.body.sku;
let increaseNum = req.body.increaseNum || null;
let decreaseNum = req.body.decreaseNum || null;
let cartDelList = req.cookies['cart-del-list'];
return service.modifyProductNum(uid, sku, increaseNum, decreaseNum, shoppingKey)
return service.modifyProductNum(uid, sku, increaseNum, decreaseNum, shoppingKey, cartDelList)
.then(ret => {
if (ret && ret.code === 200) {
return setShoppingCookie(req, res).then(() => {
... ... @@ -235,11 +239,19 @@ const removeProduct = (req, res) => {
let shoppingKey = helper.getShoppingKeyByCookie(req);
let skuList = req.body.skuList;
let hasPromotion = true;
let cartDelList = req.body.cartDelList;
// let cartDelList = req.cookies['cart-del-list'];
let ret = yield service.removeFromCart(uid, shoppingKey, skuList, hasPromotion);
let ret = yield service.removeFromCart(uid, shoppingKey, skuList, hasPromotion, cartDelList);
if (ret && ret.code === 200) {
yield setShoppingCookie(req, res);
res.cookie('cart-del-list', cartDelList, {
domain: '.yohobuy.com',
path: '/'
});
}
return res.send(ret);
... ... @@ -258,8 +270,9 @@ const moveToFav = (req, res) => {
// let shoppingKey = helper.getShoppingKeyByCookie(req);
let skuList = req.body.skuList;
let hasPromotion = req.body.hasPromotion || false;
let cartDelList = req.cookies['cart-del-list'];
let ret = yield service.addToFav(uid, skuList, hasPromotion);
let ret = yield service.addToFav(uid, skuList, hasPromotion, cartDelList);
if (ret && ret.code === 200) {
yield setShoppingCookie(req, res);
... ... @@ -356,11 +369,12 @@ const getIncreasePurchase = (req, res) => {
const modifyProduct = (req, res, next) => {
const uid = req.user && req.user.uid;
const shoppingKey = helper.getShoppingKeyByCookie(req);
let cartDelList = req.cookies['cart-del-list'];
// swapData => [{"buy_number":"1","selected":"Y","new_product_sku":"735172","old_product_sku":"735171"}]
const swapData = req.body.swapData;
service.modifyProduct({swapData, shoppingKey, uid}).then((result) => {
service.modifyProduct({swapData, shoppingKey, uid}, uid, shoppingKey, cartDelList).then((result) => {
/* if (result.code === 200) {
} else {
... ... @@ -378,8 +392,9 @@ const swapGift = (req, res, next) => {
let promotionId = req.body.promotionId;
let newSkn = req.body.newSkn;
let newSku = req.body.newSku;
let cartDelList = req.cookies['cart-del-list'];
service.swapGift(uid, shoppingKey, promotionId, newSkn, newSku)
service.swapGift(uid, shoppingKey, promotionId, newSkn, newSku, cartDelList)
.then(ret => {
res.send(ret);
}).catch(next);
... ...
... ... @@ -76,10 +76,11 @@ const addToCart = (productSku, buyNumber,
* @param bool $hasPromotion 是否有促销ID
* @return array 购物车接口返回的数据
*/
const selectGoods = (uid, sku, shoppingKey, hasPromotion) => {
const selectGoods = (uid, sku, shoppingKey /*, hasPromotion*/) => {
let param = {
method: hasPromotion ? 'app.Shopping.selectedAndCart' : 'app.Shopping.selected',
// method: hasPromotion ? 'app.Shopping.selectedAndCart' : 'app.Shopping.selected',
method: 'app.Shopping.selectedAndQryCart',
product_sku_list: sku
};
... ... @@ -104,10 +105,11 @@ const selectGoods = (uid, sku, shoppingKey, hasPromotion) => {
* @param bool $hasPromotion 是否有促销ID
* @return array 接口返回的数据
*/
const removeFromCart = (uid, shoppingKey, skuList, hasPromotion) =>{
const removeFromCart = (uid, shoppingKey, skuList /*, hasPromotion*/ ) =>{
let param = {
method: hasPromotion ? 'app.Shopping.removeAndCart' : 'app.Shopping.remove',
// method: hasPromotion ? 'app.Shopping.removeAndCart' : 'app.Shopping.remove',
method: 'app.Shopping.removeAndQryCart',
product_sku_list: skuList
};
... ... @@ -129,10 +131,11 @@ const removeFromCart = (uid, shoppingKey, skuList, hasPromotion) =>{
* @param bool $hasPromotion 是否有促销ID
* @return array 接口返回的数据
*/
const addToFav = (uid, skuList, hasPromotion) =>{
const addToFav = (uid, skuList /*, hasPromotion*/ ) =>{
let param = {
method: hasPromotion ? 'app.Shopping.addfavoriteAndCart' : 'app.Shopping.addfavorite',
// method: hasPromotion ? 'app.Shopping.addfavoriteAndCart' : 'app.Shopping.addfavorite',
method: 'app.Shopping.addfavoriteAndQryCart',
product_sku_list: skuList,
uid: uid
};
... ...
... ... @@ -439,7 +439,7 @@ const getCartCount = (uid, shoppingKey) => {
* @param string $shoppingKey 购物车在浏览器的唯一识别码,可以不传
* @return array 加入购物车接口返回的数据
*/
const addToCart = (productSku, buyNumber, goodsType, isEdit, promotionId, uid, shoppingKey) => {
const addToCart = (productSku, buyNumber, goodsType, isEdit, promotionId, uid, shoppingKey, cartDelList) => {
return co(function * () {
let result = {
... ... @@ -454,9 +454,13 @@ const addToCart = (productSku, buyNumber, goodsType, isEdit, promotionId, uid, s
let ret = yield cartApi.addToCart(productSku, buyNumber, goodsType, isEdit, promotionId, uid, shoppingKey);
if (ret && ret.code) {
result = ret;
result = {
code: ret.code,
data: yield getCartData(uid, shoppingKey, cartDelList)
};
}
/* if (empty($addCart) || (isset($addCart['code']) && $addCart['code'] !== 200) ) {
UdpLog::info('【购物车】校验参数传递auth','productSku:'.$productSku.'buyNumber:'.$buyNumber.
'goodsType:'.$goodsType,'isEdit:'.$isEdit.'promotionId:'.$promotionId.'uid:'.$uid.'shoppingKey:'.$shoppingKey);
... ... @@ -517,7 +521,7 @@ const selectGoods = (uid, skuList, shoppingKey, hasPromotion, cartDelList) => {
* @param string $shoppingKey 未登录用户唯一识别码
* @return array 接口返回的数据
*/
const modifyProductNum = (uid, sku, increaseNum, decreaseNum, shoppingKey) => {
const modifyProductNum = (uid, sku, increaseNum, decreaseNum, shoppingKey, cartDelList) => {
return co(function * () {
let result = {
... ... @@ -530,10 +534,13 @@ const modifyProductNum = (uid, sku, increaseNum, decreaseNum, shoppingKey) => {
return result;
}
let modify = yield cartApi.modifyProductNum(uid, sku, increaseNum, decreaseNum, shoppingKey);
let ret = yield cartApi.modifyProductNum(uid, sku, increaseNum, decreaseNum, shoppingKey);
if (modify && modify.code) {
result = modify;
if (ret && ret.code) {
result = {
code: ret.code,
data: yield getCartData(uid, shoppingKey, cartDelList)
};
}/* else {
UdpLog::info('【购物车】校验参数传递auth', 'uid:' . $uid . 'sku:' . $sku, 'increaseNum:'
. $increaseNum . 'decreaseNum:' . $decreaseNum . 'shoppingKey:' . $shoppingKey);
... ... @@ -554,7 +561,7 @@ const modifyProductNum = (uid, sku, increaseNum, decreaseNum, shoppingKey) => {
* @param bool hasPromotion 标识是不是有promotion_id参数, 后端会去调用不同的接口
* @return array 接口返回的数据
*/
const removeFromCart = (uid, shoppingKey, skuList, hasPromotion) => {
const removeFromCart = (uid, shoppingKey, skuList, hasPromotion, cartDelList) => {
return co(function * () {
let result = {
... ... @@ -567,14 +574,13 @@ const removeFromCart = (uid, shoppingKey, skuList, hasPromotion) => {
return result;
}
let remove = yield cartApi.removeFromCart(uid, shoppingKey, skuList, hasPromotion);
let ret = yield cartApi.removeFromCart(uid, shoppingKey, skuList, hasPromotion);
if (remove && remove.code) {
result.code = remove.code;
result.message = remove.message;
if (remove.data && remove.data.goods_count) {
result.totalGoodsNum = remove.data.goods_count;
}
if (ret && ret.code) {
result = {
code: ret.code,
data: chelper.formatCart(ret, uid, shoppingKey, cartDelList)
};
}/* else {
UdpLog::info('【购物车】校验参数传递auth', 'uid:' . $uid . 'skuList:' .
$skuList . 'shoppingKey:' . $shoppingKey . 'hasPromotion:' . $hasPromotion);
... ... @@ -592,7 +598,7 @@ const removeFromCart = (uid, shoppingKey, skuList, hasPromotion) => {
* @param bool hasPromotion 标识是不是有promotion_id参数, 后端会去调用不同的接口
* @return array 接口返回的数据
*/
const addToFav = (uid, skuList, hasPromotion) => {
const addToFav = (uid, skuList, hasPromotion, cartDelList) => {
return co(function * () {
let result = {
... ... @@ -617,10 +623,13 @@ const addToFav = (uid, skuList, hasPromotion) => {
return result;
}
let add = yield cartApi.addToFav(uid, skuList, hasPromotion);
let ret = yield cartApi.addToFav(uid, skuList, hasPromotion);
if (add && add.code) {
result = add;
if (ret && ret.code) {
result = {
code: ret.code,
data: chelper.formatCart(ret, uid, null, cartDelList)
};
}/* else {
UdpLog::info('【购物车】校验参数传递auth', 'uid:' . $uid . 'skuList:' . $skuList . 'hasPromotion:' . $hasPromotion);
}*/
... ... @@ -831,13 +840,47 @@ const getTogetherProduct = (page) => {
})();
};
const modifyProduct = (param) => {
const modifyProduct = (param, uid, shoppingKey, cartDelList) => {
return cartApi.modifyProduct(param);
return co(function * () {
let result = {
code: 400,
message: ERROR_400_MESSAGE
};
let ret = yield cartApi.modifyProduct(param);
if (ret && ret.code) {
result = {
code: ret.code,
data: yield getCartData(uid, shoppingKey, cartDelList)
};
}
return result;
})();
};
const swapGift = (uid, shoppingKey, promotionId, newSkn, newSku) => {
return cartApi.swapGift(uid, shoppingKey, promotionId, newSkn, newSku);
const swapGift = (uid, shoppingKey, promotionId, newSkn, newSku, cartDelList) => {
return co(function * () {
let result = {
code: 400,
message: ERROR_400_MESSAGE
};
let ret = yield cartApi.swapGift(uid, shoppingKey, promotionId, newSkn, newSku);
if (ret && ret.code) {
result = {
code: ret.code,
data: yield getCartData(uid, shoppingKey, cartDelList)
};
}
return result;
})();
};
const queryUserPromotionGift = (promotionId, uid, shoppingKey) => {
... ...
... ... @@ -52,7 +52,7 @@
<ul class="none">
{{#promotionInfos}}
<li>{{promotionTitle}}
{{>cart-promotion-btn}}
{{>mix/cart/cart-promotion-btn}}
{{#if isNotReach}}
<a class="btn-clear blue order-pay-link" target="_blank" href="{{promotionPageUrl}}">去凑单&nbsp;></a>
{{/if}}
... ...
... ... @@ -12,8 +12,7 @@ var RAlert = rDialog.RAlert;
var Cart;
var $cartnewTips = $('.cartnew-tips'),
$payWapper = $('.pay-wapper'),
$cartnewSum = $('.cartnew-sum');
$cartListWrap = $('#Y_CartListWrap');
// 关闭温馨提示
$cartnewTips.find('.btn_close').click(function() {
... ... @@ -22,7 +21,7 @@ $cartnewTips.find('.btn_close').click(function() {
// 滚动到第一个选中的商品
/* function scrollToFirst() {
var $selected = $payWapper.find('li[data-role="pitem"] .cart-item-check.cart-item-checked:eq(0)');
var $selected = $cartListWrap.find('li[data-role="pitem"] .cart-item-check.cart-item-checked:eq(0)');
var top = 0;
if ($selected.length > 0) {
... ... @@ -77,12 +76,12 @@ Cart = {
var $this = $(this);
var selected;
var selectArray = [];
var $noStores = $payWapper.find('[data-role=cart-item-check][data-tipnostore]');
var $noStores = $cartListWrap.find('[data-role=cart-item-check][data-tipnostore]');
$this.toggleClass('cart-item-checked');
selected = $this.hasClass('cart-item-checked') ? 'Y' : 'N';
$payWapper.find('li[data-role=pitem]').each(function() {
$cartListWrap.find('li[data-role=pitem]').each(function() {
var $t = $(this);
if ($t.data('id')) {
... ... @@ -153,7 +152,7 @@ Cart = {
var PromotionArray = [];
var content = '<div><i class="iconfont">&#xe684;</i>删除商品</div><p>确定从购物车中删除所有选中商品?</p>'; //eslint-disable-line
$payWapper.find('[data-role=cart-item-check]').each(function() {
$cartListWrap.find('[data-role=cart-item-check]').each(function() {
var $chk = $(this);
var $item = $chk.closest('[data-role=pitem]');
... ... @@ -194,7 +193,7 @@ Cart = {
var selectArray = [];
var PromotionArray = [];
$payWapper.find('.tr-disabled[data-role=pitem]').each(function() {
$cartListWrap.find('.tr-disabled[data-role=pitem]').each(function() {
var $item = $(this);
... ... @@ -252,7 +251,7 @@ Cart = {
var selectArray = [];
$payWapper.find('[data-role=cart-item-check]').each(function() {
$cartListWrap.find('[data-role=cart-item-check]').each(function() {
var $chk = $(this);
var $item = $chk.closest('li[data-role=pitem]');
... ... @@ -403,19 +402,19 @@ Cart = {
}
};
$payWapper.on('click', 'li[data-role="pitem"] .cart-item-check', Cart.toggleSelectOne); // 单选
$payWapper.on('click', '[data-role=cart-del-btn]', Cart.del); // 删除商品
$payWapper.on('click', '[data-role=cart-mov2fav-btn]', Cart.toFav); // 移入收藏夹
$payWapper.on('click', '.minus, .plus', Cart.modNum); // 修改购物车数量
$payWapper.on('click', '.cart-title .cart-item-check', Cart.toggleSelectAll); // 全选
$cartnewSum.on('click', '.cart-item-check', Cart.toggleSelectAll); // 全选
$cartnewSum.on('click', '.delete-all-sel', Cart.delAll); // 批量删除商品
$cartnewSum.on('click', '.remove-all-2fav', Cart.toFavAll); // 批量移入收藏夹商品
$cartnewSum.on('click', '.clean-all-disable', Cart.cleanAllDisable);
$('#Y_SubmitBtn').on('click', Cart.submit); // 结算
$cartListWrap.on('click', 'li[data-role="pitem"] .cart-item-check', Cart.toggleSelectOne); // 单选
$cartListWrap.on('click', '[data-role=cart-del-btn]', Cart.del); // 删除商品
$cartListWrap.on('click', '[data-role=cart-mov2fav-btn]', Cart.toFav); // 移入收藏夹
$cartListWrap.on('click', '.minus, .plus', Cart.modNum); // 修改购物车数量
$cartListWrap.on('click', '.cart-title .cart-item-check', Cart.toggleSelectAll); // 全选
$cartListWrap.on('click', '.cartnew-sum .cart-item-check', Cart.toggleSelectAll); // 全选
$cartListWrap.on('click', '.cartnew-sum .delete-all-sel', Cart.delAll); // 批量删除商品
$cartListWrap.on('click', '.cartnew-sum .remove-all-2fav', Cart.toFavAll); // 批量移入收藏夹商品
$cartListWrap.on('click', '.cartnew-sum .clean-all-disable', Cart.cleanAllDisable);
$cartListWrap.on('click', '#Y_SubmitBtn', Cart.submit); // 结算
// 重新加入购物车
$('#Y_delReselWrap').on('click', '[data-role=readd2cart]', Cart.reAdd2Cart);
$('#Y_delReselWrap').on('click', '[data-role=reFav]', Cart.reFav);
$cartListWrap.on('click', '#Y_delReselWrap [data-role=readd2cart]', Cart.reAdd2Cart);
$cartListWrap.on('click', '#Y_delReselWrap [data-role=reFav]', Cart.reFav);
module.exports = Cart;
... ...
... ... @@ -42,7 +42,6 @@ function choiceOut(items) {
}).then(function(d) {
if (d.code === 200) {
// window.history.go(0);
// console.log(cartListTpl(d.data));
$('#Y_CartListWrap').html(cartListTpl(d.data));
}
}).always(function() {
... ... @@ -74,7 +73,8 @@ function cartItemDel(items, type, cookieList) {
url: type === true ? CART_ITEM_DEL_URL : CART_ITEM_FAV_URL,
data: {
skuList: JSON.stringify(selList),
hasPromotion: hasPromotion
hasPromotion: hasPromotion,
cartDelList: JSON.stringify(cookieList)
},
beforeSend: function() {
$('.loading').css({
... ... @@ -84,21 +84,23 @@ function cartItemDel(items, type, cookieList) {
}
}).then(function(d) {
if (d.code === 200) {
if (cookieList) {
/*if (cookieList) {
window.setCookie('cart-del-list', JSON.stringify(cookieList), {
domain: '.yohobuy.com',
path: '/'
});
}
window.history.go(0);
}*/
// window.history.go(0);
$('#Y_CartListWrap').html(cartListTpl(d.data));
} else if (d.code === 300) {
$('.loading').hide();
new Alert(d.message).show();
} else if (d.code === 403) {
if (d.data.url) {
window.location = d.data.url;
}
}
}).always(function() {
$('.loading').hide();
});
}
... ... @@ -122,7 +124,8 @@ cartItemNumChg = (function() {
}).then(function(d) {
if (d.code === 200) {
window.history.go(0);
// window.history.go(0);
$('#Y_CartListWrap').html(cartListTpl(d.data));
} else {
new Alert(d.message === '' ? '加入购物车失败哦~~' : d.message).show();
}
... ... @@ -146,13 +149,14 @@ function getProductInfo(pid, skn) {
// 加入购物车,弹出框中加入购物车
function addcart(data, cookieList) {
$.ajax({
return $.ajax({
type: 'POST',
url: '/cart/cart/add',
data: data
}).then(function(d) {
if (d.code === 200) {
window.history.go(0);
// window.history.go(0);
$('#Y_CartListWrap').html(cartListTpl(d.data));
if (cookieList) {
window.setCookie('cart-del-list', JSON.stringify(cookieList), {
domain: '.yohobuy.com',
... ... @@ -247,7 +251,7 @@ function parseProductInfo(productInfo, defaultInfo) {
function updateCartItem(newSku, oldSku) {
$.ajax({
return $.ajax({
type: 'POST',
url: '/cart/cart/updateProduct',
data: {
... ... @@ -260,7 +264,8 @@ function updateCartItem(newSku, oldSku) {
}
}).then(function(d) {
if (d.code === 200) {
window.history.go(0);
// window.history.go(0);
$('#Y_CartListWrap').html(cartListTpl(d.data));
} else {
new Alert(d.message === '' ? '修改商品失败哦~~' : d.message).show();
}
... ... @@ -269,7 +274,7 @@ function updateCartItem(newSku, oldSku) {
function updateCartGiftItem(promotionId, newSkn, newSku) {
$.ajax({
return $.ajax({
type: 'POST',
url: '/cart/cart/swapGift',
data: {
... ... @@ -279,7 +284,8 @@ function updateCartGiftItem(promotionId, newSkn, newSku) {
}
}).then(function(d) {
if (d.code === 200) {
window.history.go(0);
// window.history.go(0);
$('#Y_CartListWrap').html(cartListTpl(d.data));
} else {
new Alert(d.message === '' ? '修改商品失败哦~~' : d.message).show();
}
... ...
... ... @@ -6,7 +6,7 @@ var $ = require('yoho-jquery'),
capi = require('./cart-api'),
dialog = require('../common/dialog'),
Alert = dialog.Alert,
$payWapper = $('.pay-wapper'),
$cartListWrap = $('#Y_CartListWrap'),
selColorWinTpl = require('hbs/cart/select-color-panel.hbs'),
ColorPanelAction;
... ... @@ -42,7 +42,7 @@ ColorPanelAction = {
skn: skn
};
$payWapper.find('.pay-pro-detail').removeClass('active');
$cartListWrap.find('.pay-pro-detail').removeClass('active');
if ($selWin && $selWin.length && $selWin.is(':visible')) {
$selWin.hide();
... ... @@ -50,7 +50,7 @@ ColorPanelAction = {
}
$item.find('.pay-pro-detail').addClass('active');
$payWapper.find('.goods-choose-box').hide();
$cartListWrap.find('.goods-choose-box').hide();
if (!pinfo) {
capi.getProductInfo(pid, skn).done(function(productInfo) {
... ... @@ -134,8 +134,8 @@ ColorPanelAction = {
};
/** 重新选择商品颜色尺码 **/
$payWapper.on('click', 'li[data-role="pitem"] .pay-pro-detail', ColorPanelAction.showColorSizePanel);
$payWapper.on('click', 'li[data-role="pitem"] .button-cancel', ColorPanelAction.hideColorSizePanel);
$payWapper.on('click', 'li[data-role="pitem"] .button-sure', ColorPanelAction.editColorOrSize);
$payWapper.on('click', 'li[data-role="pitem"] .goods-choose-box .choose-color .dt', ColorPanelAction.selectColor);
$payWapper.on('click', 'li[data-role="pitem"] .goods-choose-box .choose-size .dt', ColorPanelAction.selectSize);
$cartListWrap.on('click', 'li[data-role="pitem"] .pay-pro-detail', ColorPanelAction.showColorSizePanel);
$cartListWrap.on('click', 'li[data-role="pitem"] .button-cancel', ColorPanelAction.hideColorSizePanel);
$cartListWrap.on('click', 'li[data-role="pitem"] .button-sure', ColorPanelAction.editColorOrSize);
$cartListWrap.on('click', 'li[data-role="pitem"] .goods-choose-box .choose-color .dt', ColorPanelAction.selectColor);
$cartListWrap.on('click', 'li[data-role="pitem"] .goods-choose-box .choose-size .dt', ColorPanelAction.selectSize);
... ...
... ... @@ -8,7 +8,7 @@ var $ = require('yoho-jquery'),
giftsWinTpl = require('hbs/cart/cart-gifts-win-tpl.hbs'),
productInfoTpl = require('hbs/cart/cart-product-info-tpl.hbs');
var $payWapper = $('.pay-wapper'),
var $cartListWrap = $('#Y_CartListWrap'),
$goodsSelWin = $('#Y_goodsSelectWin'),
GoodsWinAction,
... ... @@ -353,12 +353,16 @@ GoodsWinAction = {
// 替换促销商品
if (isSwap) {
capi.updateCartGiftItem(promotionId, skn, sku);
capi.updateCartGiftItem(promotionId, skn, sku).then(function(){
capi.hideMDialog('#Y_goodsSelectWinDialog');
});
} else {
capi.addcart({
productSku: sku,
buyNumber: $num.val(),
promotionId: promotionId
}).then(function(){
capi.hideMDialog('#Y_goodsSelectWinDialog');
});
}
}
... ... @@ -367,7 +371,7 @@ GoodsWinAction = {
/** 弹窗事件绑定 **/
$payWapper./* find('li[data-role="pitem"]').*/on('click', giftBtn.join(','), GoodsWinAction.showGiftWin);
$cartListWrap./* find('li[data-role="pitem"]').*/on('click', giftBtn.join(','), GoodsWinAction.showGiftWin);
// $goodsSelWin.on('click', '.close', GoodsWinAction.closeWin);
$goodsSelWin.on('click', '.slide-img .img-list .img-item', GoodsWinAction.changeGoods);
... ...