Authored by OF1706

n

... ... @@ -165,7 +165,7 @@ const selectProduct = (req, res) => {
/**
* 修改购物车商品数量
*/
const modifyProduct = (req, res, next) => {
const modifyProductNum = (req, res, next) => {
let uid = req.user.uid;
let shoppingKey = helper.getShoppingKeyByCookie(req);
... ... @@ -311,6 +311,23 @@ const getIncreasePurchase = (req, res) => {
});
};
// 修改购物车商品颜色和尺寸
const modifyProduct = (req, res, next) => {
const uid = req.user && req.user.uid;
const shoppingKey = helper.getShoppingKeyByCookie(req);
// 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) => {
/*if (result.code === 200) {
} else {
res.json(result);
}*/
res.send(result);
}).catch(next);
};
module.exports = {
getProductInfo,
getProductData,
... ... @@ -319,11 +336,12 @@ module.exports = {
cartTotal,
setShoppingCookie,
selectProduct,
modifyProduct,
modifyProductNum,
removeProduct,
moveToFav,
checkFav,
getTogetherProduct,
getRecommendProductAction,
getIncreasePurchase
getIncreasePurchase,
modifyProduct
};
... ...
... ... @@ -564,6 +564,38 @@ const newPreference = (channel, uid, udid, recPos, limit) => {
return api.get('', param);
};
/**
* 修改商品颜色和尺寸
* @function modifyProduct
* @param { Number } uid 用户ID
* @param { String } swapData 商品修改信息
* @param { String } shoppingKey 未登录用户唯一识别码
* @return { Object } 接口返回单个商品修改结果
*/
const modifyProduct = (options) => {
let params = {
method: 'app.Shopping.swap'
};
_.merge(params, {
swap_data: options.swapData
});
if (options.uid) {
_.merge(params, {
uid: options.uid
});
}
if (options.shoppingKey) {
_.merge(params, {
shopping_key: options.shoppingKey
});
}
return api.get('', params);
};
module.exports = {
cartData,
addToCart,
... ... @@ -586,5 +618,6 @@ module.exports = {
savePrePayInfo,
addTicket,
checkUserIsFavProductList,
newPreference
newPreference,
modifyProduct
};
... ...
... ... @@ -820,6 +820,11 @@ const getRecommendProduct = (channel, uid, udid, page) => {
})();
};
const modifyProduct = (param) => {
return cartApi.modifyProduct(param);
};
module.exports = {
getProductInfoAsync, // 获取某一个商品详情主页面
getCartData,
... ... @@ -830,5 +835,6 @@ module.exports = {
removeFromCart,
addToFav,
checkUserIsFav,
getRecommendProduct
getRecommendProduct,
modifyProduct
};
... ...
... ... @@ -52,61 +52,4 @@
<span class="cart-del-btn">删除</span>
<span class="cart-col-btn">移入收藏</span>
</div>
<div class="goods-choose-box none" id="goodsChoose">
<div class="goods-info">
<div class="dl choose-color">
<div class="dd">颜色:</div>
<div class="dt active">
<img src="#"/>
</div>
<div class="dt">
<img src="#"/>
</div>
<div class="dt">
<img src="#"/>
</div>
</div>
<div class="dl choose-size">
<div class="dd">尺码:</div>
<div class="choose-size-detail">
<div class="dt active">
40
</div>
<div class="dt">
42
</div>
<div class="dt">
44
</div>
<div class="dt">
46
</div>
<div class="dt disabled">
48
</div>
</div>
</div>
<div class="button-group">
<button class="button-sure">确定</button>
<button class="button-cancel">取消</button>
</div>
</div>
<div class="goods-info-bigImg">
<div class="bigImg">
<img src="#"/>
</div>
<div class="bigImg none">
<img src="#"/>
</div>
<div class="bigImg none">
<img src="#"/>
</div>
<div class="bigImg none">
<img src="#"/>
</div>
<div class="bigImg none">
<img src="#"/>
</div>
</div>
</div>
</li>
... ...
No preview for this file type
... ... @@ -2,11 +2,7 @@
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>
<<<<<<< HEAD
Created by FontForge 20120731 at Fri Dec 30 17:59:57 2016
=======
Created by FontForge 20120731 at Fri Jan 6 16:35:29 2017
>>>>>>> 01504b9ffb57840ea020ad6141c7b32753e14078
Created by FontForge 20120731 at Mon Jan 9 15:15:32 2017
By admin
</metadata>
<defs>
... ... @@ -243,14 +239,11 @@ d="M512 832q-91 0 -174 -35.5t-143 -95.5t-95 -143t-35 -174t35 -174t95 -142.5t143
<glyph glyph-name="jia" unicode="&#xe645;"
d="M512 832q-91 0 -174 -35.5t-143 -95.5t-95.5 -142.5t-35.5 -173.5t35.5 -173.5t95.5 -142.5t143 -95.5t174 -35.5t174 35.5t143 95.5t95.5 142.5t35.5 173.5t-35.5 173.5t-95.5 142.5t-143 95.5t-174 35.5v0zM753 351h-207v-207h-68v207h-207v68h207v207h68v-207h207v-68
v0zM753 351z" />
<<<<<<< HEAD
=======
<glyph glyph-name="focus" unicode="&#xe68e;" horiz-adv-x="1122"
d="M793 798q92 0 150.5 -65t58.5 -161q0 -82 -54 -145l-398 -413l-399 413q-53 63 -53 145q0 96 58 161t150 65q43 0 90 -22t79 -52t53.5 -58.5t21.5 -42.5q0 14 21 42.5t53.5 58.5t79 52t89.5 22zM793 896q-63 0 -127 -30t-116 -78q-53 48 -117 78t-127 30
q-131 0 -218.5 -92.5t-87.5 -231.5q0 -118 76 -208l3 -3l2 -2l398 -413l71 -73l70 73l398 413l3 2l2 3q76 90 76 208q0 139 -87.5 231.5t-218.5 92.5v0z" />
<glyph glyph-name="focused" unicode="&#xe68f;" horiz-adv-x="1122"
d="M793 896q-63 0 -127 -30t-116 -78q-53 48 -117 78t-127 30q-131 0 -218.5 -92.5t-87.5 -231.5q0 -118 76 -208l3 -3l2 -2l398 -413l71 -73l70 73l398 413l3 2l2 3q76 90 76 208q0 139 -87.5 231.5t-218.5 92.5v0z" />
>>>>>>> 01504b9ffb57840ea020ad6141c7b32753e14078
<glyph glyph-name="wenhao1" unicode="&#xe628;"
d="M512 886q-102 0 -195 -39.5t-160.5 -107t-107 -160.5t-39.5 -195t39.5 -195t107 -160.5t160.5 -107t195 -39.5t195 39.5t160.5 107t107 160.5t39.5 195t-39.5 195t-107 160.5t-160.5 107t-195 39.5zM521 -15q-34 0 -58.5 24t-24.5 58.5t24.5 58.5t58.5 24t58 -24t24 -58
q1 -34 -23.5 -58.5t-58.5 -24.5zM738 477q-17 -34 -67 -83q-45 -43 -60 -61q-12 -16 -17 -35q-6 -22 -6 -61l1 -31h-142v30q0 56 9 90q11 38 30 64q17 23 62 71q43 44 52 60q8 13 8 44q0 28 -20 51q-20 21 -61 21q-29 0 -48.5 -9.5t-28.5 -27.5t-12.5 -36t-3.5 -43v-30h-142
... ... @@ -273,8 +266,6 @@ d="M947 179q31 0 54 -23t23 -53.5t-23 -53.5t-54 -23h-51q31 0 54 -23t23 -54t-23 -5
q0 -136 -26 -205h256q31 0 54 -23t23 -53.5t-23 -53.5t-54 -23h51q31 0 54 -23t23 -54t-23 -54t-54 -23zM102.5 -128q-42.5 0 -72.5 30t-30 72v410q0 42 30 72t72.5 30t72.5 -30t30 -72v-410q0 -42 -30 -72t-72.5 -30z" />
<glyph glyph-name="juxingkaobei" unicode="&#xe6bc;"
d="M186 2l391 382l-391 382l131 130l521 -512l-521 -512z" />
<<<<<<< HEAD
=======
<glyph glyph-name="shang" unicode="&#xe6c0;"
d="M958 179q0 -15 -10.5 -25.5t-25.5 -10.5t-26 10l-384 384l-384 -384q-11 -10 -26 -10t-25.5 10.5t-10.5 25.5t11 26l409 410q11 10 26 10t26 -10l409 -410q11 -11 11 -26z" />
<glyph glyph-name="xia" unicode="&#xe6c1;"
... ... @@ -310,6 +301,5 @@ q-42 -57 -105.5 -93.5t-135.5 -46.5q-72 -9 -141 9t-126 61q-19 14 -44 10.5t-39 -23
<glyph glyph-name="yz" unicode="&#xe6d2;"
d="M255 743q113 85 252.5 96.5t262.5 -51.5l83 83q25 25 63 12q18 0 28.5 -15t10.5 -36v-248q0 -24 -17 -40.5t-41 -16.5h-254q-38 0 -57 38q-12 48 12 64l70 70q-79 35 -174 22t-169 -73q-78 -59 -115.5 -148.5t-26 -186t71.5 -174.5q43 -57 106.5 -93.5t135.5 -46.5
q71 -9 140 9t127 61q19 14 43.5 10.5t39 -23t10.5 -44t-23 -38.5q-133 -102 -293 -102q-44 0 -63 6q-97 15 -179.5 62t-139.5 123q-78 106 -92.5 235t35.5 248t153 197z" />
>>>>>>> 01504b9ffb57840ea020ad6141c7b32753e14078
</font>
</defs></svg>
... ...
No preview for this file type
No preview for this file type
<!-- 凑单 -->
<div class="detail-body" id="goodsTogetherDetail">
<div class="slide-img">
<p>选赠品:<em><span>1元加价购</span><code>|</code><span>59元加价购</span><code>|</code><span>99元加价购</span></em></p>
<p>选赠品:<em><span class="active">1元加价购</span><code>|</code><span>59元加价购</span><code>|</code><span>99元加价购</span></em></p>
<div class="side-img-dd">
<ul class="">
<ul class="img-list">
<li class="img-item">
<span class="hide goods-id">{{goods_id}}</span>
<div class="good">
... ... @@ -207,15 +207,15 @@
<dt>
<div class="amount_wrapper">
<input type="text" id="num" class="num" value="1" readonly="readonly">
<i class="amount cut"></i>
<i class="amount add"></i>
<a class="amount cut"><i class="iconfont">&#xe6c0;</i></a>
<a class="amount add"><i class="iconfont">&#xe6c1;</i></a>
</div>
</dt>
</dl>
</div>
<div class="submit">
<button class="btn-red"><i class="addCart"></i>添加到购物车</button>
<button class="btn-favCount"><i class="favCount"></i>收藏商品</button>
<button class="btn-red"><i class="addCart iconfont">&#xe600;</i>添加到购物车</button>
<button class="btn-favCount"><i class="favCount iconfont">&#xe68f;</i>收藏商品</button>
</div>
</div>
<div class="detail-size">
... ...
<div class="goods-choose-box">
<div class="goods-info">
<div class="dl choose-color">
<div class="dd">颜色:</div>
{{#each colors}}
<div class="dt {{#if focus}} active current-color{{/if}} {{#if disable}} disabled{{/if}}"
data-pic="{{image pic 100 134}}"
data-pid="{{pid}}"
data-
{{!--data-target="{{proId}}-color-{{@index}}"
data-title="{{this.color}}" --}}
data-color="{{name}}" data-total="{{total}}"
title="{{title}}">
<img src="{{src}}"/>
</div>
{{/each}}
</div>
<div class="dl choose-size">
<div class="dd">尺码:</div>
{{#each colors}}
<div class="size-row {{#unless focus}} hide{{/unless}}">
<div class="choose-size-detail">
{{#each sizes}}
<div class="dt active"
{{#unless num}}class="disable"{{/unless}}
data-sku="{{sku}}"
data-num="{{num}}"
data-name="{{name}}">{{name}}</div>
{{/each}}
</div>
</div>
{{/each}}
<!--<div class="dt active">
40
</div>
<div class="dt">
42
</div>
<div class="dt">
44
</div>
<div class="dt">
46
</div>
<div class="dt disabled">
48
</div>-->
</div>
<div class="button-group">
<button class="button-sure">确定</button>
<button class="button-cancel">取消</button>
</div>
</div>
<div class="goods-info-bigImg">
{{# colors}}
<div class="bigImg {{#unless focus}} hide{{/unless}}">
{{#if focus}}
{{# thumbs}}
<img class="thumb" src="{{image img 100 134}}" data-shower="{{shower}}">
{{/ thumbs}}
{{^}}
{{# thumbs}}
<img class="thumb lazy" data-original="{{img}}" data-shower="{{shower}}">
{{/ thumbs}}
{{/if}}
</div>
{{/ colors}}
<!--<div class="bigImg">
<img src="#"/>
<img src="{{image defaultImg 100 134}}" class="img-preview" title="{{defaultColor}}"/>
</div>
<div class="bigImg none">
<img src="#"/>
</div>
<div class="bigImg none">
<img src="#"/>
</div>
<div class="bigImg none">
<img src="#"/>
</div>
<div class="bigImg none">
<img src="#"/>
</div>-->
</div>
</div>
... ...

48.1 KB | W: | H:

47.4 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
... ... @@ -211,12 +211,15 @@ function parseProductInfo(productInfo, defaultInfo) {
// 迭代每一种颜色
filterSet.push({
proId: res.id,
color: color.color,
sizes: color.sizes,
pic: color.thumbs[0],
selectable: color.total > 0,
rgb: color.rgb
pid: productInfo.productId,
skn: productInfo.skn,
name: color.name,
src: color.src,
focus: color.focus,
title: color.title,
sizes: color.size,
pic: color.thumbs[0].shower,
selectable: color.total > 0
});
}
}
... ... @@ -259,7 +262,7 @@ function parseProductInfo(productInfo, defaultInfo) {
function renderAndShowSelWin($edit, pinfo) {
$edit.find('.goods-choose-box').remove();
var $selWin = selColorWinTpl(pinfo).appendTo($edit);
var $selWin = $(selColorWinTpl(pinfo)).appendTo($edit);
$selWin.show();
}
... ...
... ... @@ -469,4 +469,4 @@ $('.shop-cart').on('click', giftBtn, function() {
});
// require('./cart-action');
require('./cart-action');
... ...
... ... @@ -159,7 +159,8 @@
.order{
color: #999;
font-size: 13px;
zoom: 1;
*zoom: 1;
min-height: 145px;
&:after {
content: '';
display:block;
... ... @@ -193,14 +194,20 @@
dd.showSizeBox {
line-height: 23px;
}
dt.showSizeBox {
*zoom: 1;
&:after {
content: '';
display: block;
clear: both;
height: auto;
overflow: hidden;
dt{
.showSizeBox {
*zoom: 1;
&:after {
content: '';
display: block;
clear: both;
height: auto;
overflow: hidden;
}
&+p{
margin-top: 5px;
margin-bottom: 10px;
}
}
}
... ... @@ -267,7 +274,7 @@
.amount_wrapper {
position: relative;
width: 52px;
width: 56px;
height: 23px;
line-height: 23px;
display: inline-block;
... ... @@ -275,20 +282,31 @@
position: absolute;
right: 0;
border: 1px solid #eaeceb;
width: 10px;
height: 10px;
display: inline;
width: 13px;
height: 11px;
display: inline-block;
cursor: pointer;
background-position: center center;
background-repeat: no-repeat;
i{
width: 12px;
height: 23px;
font-size: 12px;
color: #666;
display: inline-block;
}
}
.cut {
top: 0;
background: url(/cart/minus.png);
i{
position: absolute;
top: -6px;
}
}
.add {
bottom: 0;
background: url(/cart/plus.png);
bottom: -2px;
i{
position: absolute;
top: -6px;
}
}
.num {
width: 38px;
... ... @@ -305,6 +323,7 @@
}
.submit {
margin-top: 15px;
text-align: left;
button {
width: 140px;
... ... @@ -316,21 +335,16 @@
background-color: #fff;
box-sizing: border-box;
outline: none;
cursor: pointer;
i{
width: 16px;
height: 16px;
display: inline-block;
vertical-align: top;
margin-right: 8px;
margin-top: 2px;
background-repeat: no-repeat;
background-position: middle middle;
&.addCart{
background-image: url(/cart/addCart.png);
}
&.favCount{
background-image: url(/cart/pavCount.png);
}
}
.favCount {
color: #b0b0b0;
}
&.btn-grey {
background-color: #b0b0b0;
... ... @@ -421,10 +435,13 @@
line-height: 20px;
vertical-align: middle;
}
.active {
color: #d0021b;
}
code {
font-size: 18px;
font-weight:300;
color: #333;
font-weight: 300;
color: #000;
height: 20px;
line-height: 20px;
vertical-align: middle;
... ...
... ... @@ -809,6 +809,7 @@
display:inline-block;
border: 1px dashed transparent;
box-sizing: border-box;
cursor: pointer;
&:hover {
border-color: #d0021b !important;
i {
... ... @@ -865,6 +866,7 @@
border: 1px solid #000;
background-color: #fff;
z-index: 20;
display:none;
&:after{
position: absolute;
top: 100px;
... ...