Authored by 王水玲

不支持7天无理由退换货

@@ -577,7 +577,6 @@ const getChangeGoodsList = (orderCode, uid) => { @@ -577,7 +577,6 @@ const getChangeGoodsList = (orderCode, uid) => {
577 }; 577 };
578 let data; 578 let data;
579 579
580 -  
581 if (result && result.data) { 580 if (result && result.data) {
582 data = result.data;// camelCase(result.data); 581 data = result.data;// camelCase(result.data);
583 data.hidePrice = true; 582 data.hidePrice = true;
@@ -592,6 +591,7 @@ const getChangeGoodsList = (orderCode, uid) => { @@ -592,6 +591,7 @@ const getChangeGoodsList = (orderCode, uid) => {
592 data.goods_list.forEach(good => { 591 data.goods_list.forEach(good => {
593 let cnAlphabet = good.cn_alphabet ? good.cn_alphabet : ''; 592 let cnAlphabet = good.cn_alphabet ? good.cn_alphabet : '';
594 593
  594 + good.isLimitSkn = good.is_limit_skn === 'Y'; // is_limit_skn=Y 不支持7天无理由退换货
595 good.showCheckbox = true; 595 good.showCheckbox = true;
596 good.hidePrice = true; 596 good.hidePrice = true;
597 good.buyNumber = 1; 597 good.buyNumber = 1;
@@ -13,5 +13,14 @@ @@ -13,5 +13,14 @@
13 {{#if buy_number}} 13 {{#if buy_number}}
14 <p class="bold buy-number"><span class="iconfont">&#xe61d;</span>{{buy_number}}</p> 14 <p class="bold buy-number"><span class="iconfont">&#xe61d;</span>{{buy_number}}</p>
15 {{/if}} 15 {{/if}}
  16 + {{#if isLimitSkn}}
  17 + <div class="not-limit-txt">
  18 + 该商品不支持7天无理由退换
  19 + <i class="helper-icon iconfont">&#xe612;</i>
  20 + <span class="helper-txt">
  21 + 该商品非质量问题不支持退换货,如有疑问,请联系客服。
  22 + </span>
  23 + </div>
  24 + {{/if}}
16 </div> 25 </div>
17 </div> 26 </div>
@@ -9,13 +9,20 @@ @@ -9,13 +9,20 @@
9 <ul class="goods-header"> 9 <ul class="goods-header">
10 <li class="info">商品信息</li> 10 <li class="info">商品信息</li>
11 <li class="reason">退货原因</li> 11 <li class="reason">退货原因</li>
12 - <li class="num">退货数量</li> 12 + <li class="num hide">退货数量</li>
13 <li class="price">单价</li> 13 <li class="price">单价</li>
14 </ul> 14 </ul>
15 15
16 {{# goods}} 16 {{# goods}}
17 <div class="goods-item clearfix"> 17 <div class="goods-item clearfix">
18 - <div class="check" data-skn="{{skn}}" data-skc="{{skc}}" data-sku="{{sku}}" data-price="{{price}}" data-type="{{typeId}}">{{> icon/checkbox}}</div> 18 + <div class="check {{#if limitReturn}}disabled{{/if}}"
  19 + data-skn="{{skn}}"
  20 + data-skc="{{skc}}"
  21 + data-sku="{{sku}}"
  22 + data-price="{{price}}"
  23 + data-type="{{typeId}}">
  24 + {{> icon/checkbox}}
  25 + </div>
19 <div class="img"> 26 <div class="img">
20 <a href="{{https href}}" title="{{name}}" target="_blank"> 27 <a href="{{https href}}" title="{{name}}" target="_blank">
21 <img class="lazy" data-original="{{image img 70 90}}"> 28 <img class="lazy" data-original="{{image img 70 90}}">
@@ -27,17 +34,17 @@ @@ -27,17 +34,17 @@
27 <p>×{{num}}</p> 34 <p>×{{num}}</p>
28 </div> 35 </div>
29 <div class="reason"> 36 <div class="reason">
30 - <select class="refund-reason"> 37 + <select class="refund-reason {{#if limitReturn}}disabled{{/if}}" {{#if limitReturn}}disabled{{/if}}>
31 <option>选择退款原因</option> 38 <option>选择退款原因</option>
32 {{# reasonList}} 39 {{# reasonList}}
33 <option value="{{id}}">{{name}}</option> 40 <option value="{{id}}">{{name}}</option>
34 {{/ reasonList}} 41 {{/ reasonList}}
35 </select> 42 </select>
36 </div> 43 </div>
37 - <div class="num">  
38 - <span class="iconfont">&#xe621;</span> 44 + <div class="num hide">
  45 + <span class="iconfont {{#if limitReturn}}disabled{{/if}}">&#xe621;</span>
39 <input type="text" value="{{num}}" readonly="readonly"> 46 <input type="text" value="{{num}}" readonly="readonly">
40 - <span class="iconfont">&#xe61f;</span> 47 + <span class="iconfont {{#if limitReturn}}disabled{{/if}}">&#xe61f;</span>
41 </div> 48 </div>
42 <div class="price">¥{{round price 2}}</div> 49 <div class="price">¥{{round price 2}}</div>
43 {{#if limitReturn}} 50 {{#if limitReturn}}
@@ -47,8 +54,7 @@ @@ -47,8 +54,7 @@
47 <i class="iconfont">&#xe612;</i> 54 <i class="iconfont">&#xe612;</i>
48 <div class="limit-return-wrap"> 55 <div class="limit-return-wrap">
49 <div class="code-horn"></div> 56 <div class="code-horn"></div>
50 - <p>考虑到个人卫生,例如内衣、内裤、袜子等贴身塑身类商品,不支持无理由退换货</p>  
51 - <p>香水、香薰、化妆品等特殊商品,无质量问题,不支持无理由退换货</p> 57 + <p>该商品非质量问题不支持退换货,如有疑问,请联系客服。</p>
52 </div> 58 </div>
53 </span> 59 </span>
54 </div> 60 </div>
@@ -13,44 +13,41 @@ @@ -13,44 +13,41 @@
13 <li class="change-num hide">换货数量</li> 13 <li class="change-num hide">换货数量</li>
14 </ul> 14 </ul>
15 {{#goods_list}} 15 {{#goods_list}}
16 - <div class="change-info-box">  
17 - <div class="table-body">  
18 - <div class="goods-container no-price" data-goods-id="{{goods_id}}" data-sku="{{productSku}}" data-id="{{product_id}}" data-skn="{{productSkn}}" data-goods-type="{{goods_type_id}}" data-price="{{last_price}}" data-skc={{productSkc}}>  
19 - {{# showCheckbox}}  
20 - <span class="checkbox-box">  
21 - {{> icon/checkbox}}  
22 - </span>  
23 - {{/ showCheckbox}}  
24 - {{> order/good-info}}  
25 - <div class="sub-column">  
26 - {{# ../this}}  
27 - {{> returns/change-reason}}  
28 - {{/ ../this}} 16 + <div class="change-info-box">
  17 + <div class="table-body">
  18 + <div class="goods-container no-price" data-goods-id="{{goods_id}}" data-sku="{{productSku}}" data-id="{{product_id}}" data-skn="{{productSkn}}" data-goods-type="{{goods_type_id}}" data-price="{{last_price}}" data-skc={{productSkc}}>
  19 + {{# showCheckbox}}
  20 + <span class="checkbox-box {{#if isLimitSkn}}disabled{{/if}}">
  21 + {{> icon/checkbox}}
  22 + </span>
  23 + {{/ showCheckbox}}
  24 + {{> order/good-info}}
  25 + <div class="sub-column">
  26 + {{> returns/change-reason}}
  27 + </div>
  28 + <div class="sub-column number">
  29 + <span class="minus">-</span>
  30 + <span class="value">{{changeNum}}</span>
  31 + <span class="plus">+</span>
  32 + </div>
29 </div> 33 </div>
30 - <div class="sub-column number">  
31 - <span class="minus">-</span>  
32 - <span class="value">{{changeNum}}</span>  
33 - <span class="plus">+</span>  
34 - </div>  
35 - </div>  
36 - </div>  
37 - <div class="form hide">  
38 - <div class="group color">  
39 - <span class="title">  
40 - <span class="asterisk">*</span>  
41 - 换货Color: <span class="color-text" data-color={{color_name}}>{{color_name}}</span>  
42 - </span>  
43 </div> 34 </div>
44 - <div class="group size">  
45 - <span class="title">  
46 - <span class="asterisk">*</span>  
47 - 换货Size: <span class="size-text" data-size="{{size_name}}">{{size_name}}</span>  
48 - </span> 35 + <div class="form hide">
  36 + <div class="group color">
  37 + <span class="title">
  38 + <span class="asterisk">*</span>
  39 + 换货Color: <span class="color-text" data-color={{color_name}}>{{color_name}}</span>
  40 + </span>
  41 + </div>
  42 + <div class="group size">
  43 + <span class="title">
  44 + <span class="asterisk">*</span>
  45 + 换货Size: <span class="size-text" data-size="{{size_name}}">{{size_name}}</span>
  46 + </span>
  47 + </div>
49 </div> 48 </div>
  49 + {{> returns/special-reason}}
50 </div> 50 </div>
51 - {{> returns/special-reason}}  
52 - </div>  
53 -  
54 {{/goods_list}} 51 {{/goods_list}}
55 </div> 52 </div>
56 </div> 53 </div>
1 -<select class="exchange-reasons" name="exchange-reasons"> 1 +<select class="exchange-reasons" name="exchange-reasons" {{#if isLimitSkn}}disabled{{/if}}>
2 <option value="0">请选择换货原因</option> 2 <option value="0">请选择换货原因</option>
3 - {{# exchange_reason}} 3 + {{# @root.content.returnsChange.exchange_reason}}
4 <option value="{{id}}" {{#if isSpecial}}class="is-special"{{/if}}>{{name}}</option> 4 <option value="{{id}}" {{#if isSpecial}}class="is-special"{{/if}}>{{name}}</option>
5 - {{/ exchange_reason}} 5 + {{/ @root.content.returnsChange.exchange_reason}}
6 </select> 6 </select>
@@ -63,7 +63,31 @@ const getProductInfo = (req, res, next) => { @@ -63,7 +63,31 @@ const getProductInfo = (req, res, next) => {
63 }).catch(next); 63 }).catch(next);
64 }; 64 };
65 65
  66 +/**
  67 + * 特殊商品退换货
  68 + */
  69 +const fetchReturn = (req, res, next) => {
  70 + let skn = req.query.skn || 0;
  71 +
  72 + if (!skn) {
  73 + return {
  74 + code: 400,
  75 + message: '商品数据出错'
  76 + };
  77 + }
  78 +
  79 + return item.fetchReturn(skn).then(result => {
  80 + return res.json({
  81 + code: 200,
  82 + data: {
  83 + result: result
  84 + }
  85 + });
  86 + }).catch(next);
  87 +};
  88 +
66 module.exports = { 89 module.exports = {
67 index, // 商品详情页 90 index, // 商品详情页
68 - getProductInfo // 获取商品信息接口 91 + getProductInfo, // 获取商品信息接口
  92 + fetchReturn
69 }; 93 };
@@ -6,6 +6,7 @@ @@ -6,6 +6,7 @@
6 'use strict'; 6 'use strict';
7 7
8 const api = global.yoho.API; 8 const api = global.yoho.API;
  9 +const config = global.yoho.config;
9 const SingleAPI = global.yoho.SingleAPI; 10 const SingleAPI = global.yoho.SingleAPI;
10 11
11 /** 12 /**
@@ -110,11 +111,20 @@ const getBrandBannerAsync = brandId => { @@ -110,11 +111,20 @@ const getBrandBannerAsync = brandId => {
110 }); 111 });
111 }; 112 };
112 113
  114 +// 退换支持
  115 +const isSupportReturnedSale = skn => {
  116 + return api.get('', {
  117 + method: 'app.product.refundExchange',
  118 + product_skn: skn
  119 + }, config.apiCache);
  120 +};
  121 +
113 module.exports = { 122 module.exports = {
114 getProductBaseAsync, // 获取商品基本信息 123 getProductBaseAsync, // 获取商品基本信息
115 getUserIsFav, // 获取商品用户收藏信息 124 getUserIsFav, // 获取商品用户收藏信息
116 getsizeInfoAsync, // 获取商品尺码信息 125 getsizeInfoAsync, // 获取商品尺码信息
117 getComfortAsync, // 获取商品材质信息 126 getComfortAsync, // 获取商品材质信息
118 getModelTryAsync, // 获取商品模特试穿信息 127 getModelTryAsync, // 获取商品模特试穿信息
119 - getBrandBannerAsync // 获取品牌Banner信息 128 + getBrandBannerAsync, // 获取品牌Banner信息
  129 + isSupportReturnedSale // 是否支持退换货
120 }; 130 };
@@ -161,7 +161,15 @@ const getProductInfo = (productId, skn, uid) => { @@ -161,7 +161,15 @@ const getProductInfo = (productId, skn, uid) => {
161 }); 161 });
162 }; 162 };
163 163
  164 +/**
  165 + * 是否支持退换货,true 支持,false 不支持
  166 + */
  167 +const fetchReturn = (skn) => {
  168 + return itemApi.isSupportReturnedSale(skn).then(result => _.get(result, `data.${skn}`, 'N') === 'N' ? 'Y' : 'N');
  169 +};
  170 +
164 module.exports = { 171 module.exports = {
165 getProductItemData, 172 getProductItemData,
166 - getProductInfo 173 + getProductInfo,
  174 + fetchReturn
167 }; 175 };
@@ -23,6 +23,7 @@ router.get('/list/new', list.newPage); // 新品列表页 @@ -23,6 +23,7 @@ router.get('/list/new', list.newPage); // 新品列表页
23 router.get(/\/pro_([\d]+)_([\d]+)\/(.*)/, item.index); // 商品详情routers 23 router.get(/\/pro_([\d]+)_([\d]+)\/(.*)/, item.index); // 商品详情routers
24 router.post('/item/togglecollect', auth, fav.product); // 商品详情页 24 router.post('/item/togglecollect', auth, fav.product); // 商品详情页
25 router.get('/item/getProductInfo', item.getProductInfo); // 商品详情信息 25 router.get('/item/getProductInfo', item.getProductInfo); // 商品详情信息
  26 +router.get('/item/fetchReturn', item.fetchReturn); // 7天无理由退换货
26 27
27 router.get('/shop/query/all', shop.indexQuery); 28 router.get('/shop/query/all', shop.indexQuery);
28 router.get('/shop/:domain/list', shop.list); 29 router.get('/shop/:domain/list', shop.list);
@@ -36,4 +37,6 @@ router.get('/getRecommendProduct', recommend.getRecommendProduct); @@ -36,4 +37,6 @@ router.get('/getRecommendProduct', recommend.getRecommendProduct);
36 router.get('/getRecommendShop', recommend.getRecommendShop); 37 router.get('/getRecommendShop', recommend.getRecommendShop);
37 router.get('/recentPreview', recommend.recentPreview); 38 router.get('/recentPreview', recommend.recentPreview);
38 39
  40 +
  41 +
39 module.exports = router; 42 module.exports = router;
@@ -7,7 +7,7 @@ @@ -7,7 +7,7 @@
7 {{> path-nav}} 7 {{> path-nav}}
8 8
9 {{# goodInfo}} 9 {{# goodInfo}}
10 - <div class="product-main clearfix" data-id="{{id}}"> 10 + <div class="product-main clearfix" data-id="{{id}}" data-skn="{{productSkn}}">
11 <div class="thumbs left clearfix"> 11 <div class="thumbs left clearfix">
12 <div class="thumb-show right"> 12 <div class="thumb-show right">
13 <img id="main-thumb" src="{{image img 482 643}}" style="display: block;"> 13 <img id="main-thumb" src="{{image img 482 643}}" style="display: block;">
@@ -300,6 +300,16 @@ @@ -300,6 +300,16 @@
300 <div class="detail-content">{{{content}}}</div> 300 <div class="detail-content">{{{content}}}</div>
301 </div> 301 </div>
302 {{/ details}} 302 {{/ details}}
  303 +
  304 + <div class="info-block">
  305 + <div class="block-title">
  306 + <label class="title-wrapper">
  307 + <div class="en">GUARANTEE</div>
  308 + <div class="cn">售后保障</div>
  309 + </label>
  310 + </div>
  311 + <div id="saleReturn" class="support-returned-service"></div>
  312 + </div>
303 </div> 313 </div>
304 <div class="recommend-product"></div> 314 <div class="recommend-product"></div>
305 </div> 315 </div>
@@ -22,6 +22,7 @@ const index = (req, res, next) => { @@ -22,6 +22,7 @@ const index = (req, res, next) => {
22 let data = result.data; 22 let data = result.data;
23 23
24 if (data.goods_list && data.goods_list.length > 0) { 24 if (data.goods_list && data.goods_list.length > 0) {
  25 +
25 // 设置头部路径索引focus 26 // 设置头部路径索引focus
26 data.bcNavFocus = 2; 27 data.bcNavFocus = 2;
27 28
@@ -63,6 +64,11 @@ const index = (req, res, next) => { @@ -63,6 +64,11 @@ const index = (req, res, next) => {
63 data.delivery_address.address = cleanHtml.htmlDecode(data.delivery_address.address); 64 data.delivery_address.address = cleanHtml.htmlDecode(data.delivery_address.address);
64 } 65 }
65 66
  67 + // is_limit_skn=Y 不支持7天无理由退换货
  68 + _.forEach(data.goods_list, item => {
  69 + item.isLimitSkn = item.is_limit_skn === 'Y';
  70 + });
  71 +
66 res.header('Cache-Control', 'no-store'); 72 res.header('Cache-Control', 'no-store');
67 res.display('order', { 73 res.display('order', {
68 content: data, 74 content: data,
@@ -98,6 +98,9 @@ @@ -98,6 +98,9 @@
98 <p class="brand-and-name inline-block"> 98 <p class="brand-and-name inline-block">
99 <a class="brand-name" href="{{https brandUrl}}" target="_blank">{{brand_name}}</a> 99 <a class="brand-name" href="{{https brandUrl}}" target="_blank">{{brand_name}}</a>
100 <a class="name" href="{{https link}}" target="_blank">{{product_name}}</a> 100 <a class="name" href="{{https link}}" target="_blank">{{product_name}}</a>
  101 + {{#isLimitSkn}}
  102 + <span class="not-support-return"><i class="not-return-icon"></i>不支持7天无理由退换</span>
  103 + {{/isLimitSkn}}
101 </p> 104 </p>
102 <p class="color-size"> 105 <p class="color-size">
103 <span class="color">颜色:{{color_name}}</span> 106 <span class="color">颜色:{{color_name}}</span>
@@ -22,15 +22,15 @@ module.exports = { @@ -22,15 +22,15 @@ module.exports = {
22 }, 22 },
23 cookieDomain: 'yohoblk.com', 23 cookieDomain: 'yohoblk.com',
24 domains: { 24 domains: {
25 - //singleApi: 'http://single.yoho.cn/',  
26 - //api: 'http://api.yoho.yohoops.org/',  
27 - //service: 'http://service.yoho.yohoops.org/',  
28 - //search: 'http://search.yohoops.org/yohosearch/' 25 + // singleApi: 'http://single.yoho.cn/',
  26 + // api: 'http://api.yoho.yohoops.org/',
  27 + // service: 'http://service.yoho.yohoops.org/',
  28 + // search: 'http://search.yohoops.org/yohosearch/'
29 29
30 - api: 'http://api-test3.yohops.com:9999/',  
31 - service: 'http://service-test3.yohops.com:9999/',  
32 - liveApi: 'http://testapi.live.yohops.com:9999/',  
33 - singleApi: 'http://api-test3.yohops.com:9999/' 30 + api: 'http://api-test3.yohops.com:9999/',
  31 + service: 'http://service-test3.yohops.com:9999/',
  32 + liveApi: 'http://testapi.live.yohops.com:9999/',
  33 + singleApi: 'http://api-test3.yohops.com:9999/'
34 }, 34 },
35 useOneapm: false, 35 useOneapm: false,
36 useCache: false, 36 useCache: false,
@@ -2,4 +2,4 @@ @@ -2,4 +2,4 @@
2 <span class="iconfont checkbox checked">&#xe602;</span> 2 <span class="iconfont checkbox checked">&#xe602;</span>
3 {{^}} 3 {{^}}
4 <span class="iconfont checkbox">&#xe601;</span> 4 <span class="iconfont checkbox">&#xe601;</span>
5 -{{/if}}  
  5 +{{/if}}

241 Bytes | W: | H:

25.4 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin

693 Bytes | W: | H:

1.44 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
@@ -26,6 +26,10 @@ var jQuery = require('yoho-jquery'); @@ -26,6 +26,10 @@ var jQuery = require('yoho-jquery');
26 var ele = this; 26 var ele = this;
27 var _checked; 27 var _checked;
28 28
  29 + if ($(ele).hasClass('disabled')) {
  30 + return;
  31 + }
  32 +
29 options = $.extend({}, defaults, $(this).data('options'), defaultsHtml[type], options); 33 options = $.extend({}, defaults, $(this).data('options'), defaultsHtml[type], options);
30 34
31 _checked = options.checked || $('.iconfont', this).hasClass('checked'); 35 _checked = options.checked || $('.iconfont', this).hasClass('checked');
@@ -28,6 +28,7 @@ var $addToBag = $('#add-to-bag'), @@ -28,6 +28,7 @@ var $addToBag = $('#add-to-bag'),
28 $soldOut = $('#sold-out'); 28 $soldOut = $('#sold-out');
29 29
30 var $sizeInfo = $('.size-info'); 30 var $sizeInfo = $('.size-info');
  31 +var $saleReturn = $('#saleReturn');
31 32
32 var $thumbCur = $('.thumb-wrap .cur'); // 当前选中展示图片 33 var $thumbCur = $('.thumb-wrap .cur'); // 当前选中展示图片
33 34
@@ -38,6 +39,7 @@ var noticeFn = handlebars.compile($('#arrival-notice-tpl').html() || ''), @@ -38,6 +39,7 @@ var noticeFn = handlebars.compile($('#arrival-notice-tpl').html() || ''),
38 39
39 var thumbsLoaded = [], 40 var thumbsLoaded = [],
40 id = $main.data('id'), 41 id = $main.data('id'),
  42 + skn = $main.data('skn'),
41 introHtml; 43 introHtml;
42 44
43 require('yoho-jquery-nanoscroller'); 45 require('yoho-jquery-nanoscroller');
@@ -362,3 +364,23 @@ if ($(window).height() < 800) { @@ -362,3 +364,23 @@ if ($(window).height() < 800) {
362 introHtml = $('#intro-full-hide').html(); 364 introHtml = $('#intro-full-hide').html();
363 365
364 chooseDefaultSize(); // 如果size只有一个则默认选中 366 chooseDefaultSize(); // 如果size只有一个则默认选中
  367 +
  368 +
  369 +// 特殊商品退换货
  370 +function fetchReturn() {
  371 + return $.ajax({
  372 + type: 'GET',
  373 + url: '/product/item/fetchReturn',
  374 + data: {
  375 + skn: skn
  376 + }
  377 + }).then(function(result) {
  378 + if (result.code === 200) {
  379 + if (result.data.result === 'N') {
  380 + $saleReturn.removeClass().addClass('not-support-returned-service');
  381 + }
  382 + }
  383 + });
  384 +}
  385 +
  386 +fetchReturn();
@@ -165,6 +165,48 @@ @@ -165,6 +165,48 @@
165 margin-bottom: $smallSpace; 165 margin-bottom: $smallSpace;
166 } 166 }
167 } 167 }
  168 +
  169 + .not-limit-txt {
  170 + color: #379ed6;
  171 + font-size: 12px;
  172 + clear: both;
  173 + cursor: pointer;
  174 + position: relative;
  175 + }
  176 +
  177 + .not-limit-txt:hover {
  178 + .helper-txt {
  179 + display: block;
  180 + }
  181 + }
  182 +
  183 + .helper-icon {
  184 + font-size: 14px;
  185 + color: #379ed6;
  186 + }
  187 +
  188 + .helper-txt {
  189 + width: 166px;
  190 + height: 68px;
  191 + border: 2px solid #bbb;
  192 + padding: 10px 15px;
  193 + box-sizing: border-box;
  194 + position: absolute;
  195 + top: -2px;
  196 + left: 180px;
  197 + background: #fff;
  198 + display: none;
  199 + }
  200 +
  201 + .helper-txt:before {
  202 + content: "";
  203 + background: url("/me/code-horn.png") no-repeat;
  204 + width: 7px;
  205 + height: 12px;
  206 + position: absolute;
  207 + left: -7px;
  208 + top: 6px;
  209 + }
168 } 210 }
169 211
170 .sub-column { 212 .sub-column {
@@ -80,12 +80,33 @@ @@ -80,12 +80,33 @@
80 } 80 }
81 } 81 }
82 82
  83 + .checkbox-box {
  84 + &.disabled {
  85 + .checkbox {
  86 + color: #eee;
  87 + }
  88 + }
  89 + }
  90 +
  91 + .exchange-reasons {
  92 + width: 130px;
  93 + height: 28px;
  94 + padding: 0 5px;
  95 + border: 1px solid #1b1b1b;
  96 + margin-top: 35px;
  97 +
  98 + &:disabled {
  99 + border-color: #eee;
  100 + color: #a2a2a2;
  101 + }
  102 + }
  103 +
83 .iconfont { 104 .iconfont {
84 &.checkbox { 105 &.checkbox {
85 position: relative; 106 position: relative;
86 - top: -70px; 107 + top: -38px;
87 margin-right: 10px; 108 margin-right: 10px;
88 - font-size: 14px; 109 + font-size: 18px;
89 cursor: pointer; 110 cursor: pointer;
90 } 111 }
91 } 112 }
@@ -154,6 +175,7 @@ @@ -154,6 +175,7 @@
154 .input-group { 175 .input-group {
155 margin-bottom: 10px; 176 margin-bottom: 10px;
156 } 177 }
  178 +
157 label { 179 label {
158 width: 75px; 180 width: 75px;
159 display: inline-block; 181 display: inline-block;
@@ -32,6 +32,14 @@ @@ -32,6 +32,14 @@
32 float: left; 32 float: left;
33 width: 172px; 33 width: 172px;
34 text-align: center; 34 text-align: center;
  35 +
  36 + &:last-child {
  37 + float: right;
  38 + }
  39 + }
  40 +
  41 + .reason {
  42 + width: 330px;
35 } 43 }
36 44
37 .info { 45 .info {
@@ -54,10 +62,24 @@ @@ -54,10 +62,24 @@
54 text-align: center; 62 text-align: center;
55 } 63 }
56 64
  65 + .price {
  66 + float: right;
  67 + }
  68 +
  69 + .reason {
  70 + width: 330px;
  71 + }
  72 +
57 .check { 73 .check {
58 width: 56px; 74 width: 56px;
59 } 75 }
60 76
  77 + .disabled {
  78 + .checkbox {
  79 + color: #eee;
  80 + }
  81 + }
  82 +
61 .checkbox { 83 .checkbox {
62 font-size: 18px; 84 font-size: 18px;
63 cursor: pointer; 85 cursor: pointer;
@@ -90,6 +112,11 @@ @@ -90,6 +112,11 @@
90 text-align: center; 112 text-align: center;
91 } 113 }
92 114
  115 + .num > .disabled {
  116 + background: #eee;
  117 + color: #fff;
  118 + }
  119 +
93 .num > .iconfont { 120 .num > .iconfont {
94 width: 20px; 121 width: 20px;
95 font-size: 12px; 122 font-size: 12px;
@@ -142,16 +169,22 @@ @@ -142,16 +169,22 @@
142 height: 28px; 169 height: 28px;
143 padding: 0 5px; 170 padding: 0 5px;
144 border: 1px solid #eee; 171 border: 1px solid #eee;
  172 +
  173 + &.disabled {
  174 + border-color: #eee;
  175 + color: #a2a2a2;
  176 + }
145 } 177 }
146 } 178 }
147 179
148 .limit-return-wrap { 180 .limit-return-wrap {
149 - width: 280px;  
150 - line-height: 1.5; 181 + width: 166px;
  182 + height: 68px;
  183 + line-height: 16px;
  184 + border: 2px solid #bbb;
  185 + padding: 10px 15px;
151 background: #fff; 186 background: #fff;
152 - padding: 10px;  
153 color: #1d1d1d; 187 color: #1d1d1d;
154 - border: 2px solid #bcbcbc;  
155 position: absolute; 188 position: absolute;
156 left: 100%; 189 left: 100%;
157 top: -8px; 190 top: -8px;
@@ -509,6 +509,20 @@ @@ -509,6 +509,20 @@
509 line-height: 18px; 509 line-height: 18px;
510 } 510 }
511 } 511 }
  512 +
  513 + .support-returned-service {
  514 + width: 544px;
  515 + height: 23px;
  516 + margin: 35px auto;
  517 + background: url("/product/service.jpg") no-repeat;
  518 + }
  519 +
  520 + .not-support-returned-service {
  521 + width: 544px;
  522 + height: 23px;
  523 + margin: 35px auto;
  524 + background: url("/product/limit.jpg") no-repeat;
  525 + }
512 } 526 }
513 } 527 }
514 528
@@ -459,6 +459,25 @@ @@ -459,6 +459,25 @@
459 font-size: 14px; 459 font-size: 14px;
460 } 460 }
461 461
  462 + .not-support-return {
  463 + font-size: 12px;
  464 + color: #797979;
  465 + clear: both;
  466 + display: block;
  467 + padding: 20px 0;
  468 +
  469 + .not-return-icon {
  470 + float: left;
  471 + display: block;
  472 + width: 16px;
  473 + height: 14px;
  474 + margin-right: 5px;
  475 + background: url("/shopping/not-limit.jpg") no-repeat;
  476 + position: relative;
  477 + top: -3px;
  478 + }
  479 + }
  480 +
462 .name { 481 .name {
463 display: inline-block; 482 display: inline-block;
464 font-size: 12px; 483 font-size: 12px;