Authored by hongweigao

Merge branch 'hotfix/studentsText' of http://git.yoho.cn/fe/yohobuy-node into hotfix/studentsText

1 <div class="floor-ad"> 1 <div class="floor-ad">
2 - <a href="{{url}}" target= "_blank"><img class="lazy" data-original="{{image2 src w=1150 h=129}}"/></a> 2 + <a href="{{url}}" target= "_blank" title="{{title}}"><img class="lazy" data-original="{{image2 src w=1150 h=129}}" alt="{{alt}}"/></a>
3 </div> 3 </div>
1 <div class="debris-slider clearfix"> 1 <div class="debris-slider clearfix">
2 <div class="left-col col"> 2 <div class="left-col col">
3 {{# left}} 3 {{# left}}
4 - <a href="{{url}}" target="_blank">  
5 - <img class="lazy" data-original="{{image2 img w=280 h=265}}"> 4 + <a href="{{url}}" target="_blank" title="{{title}}">
  5 + <img class="lazy" data-original="{{image2 img w=280 h=265}}" alt="{{alt}}">
6 </a> 6 </a>
7 {{/ left}} 7 {{/ left}}
8 </div> 8 </div>
@@ -10,8 +10,8 @@ @@ -10,8 +10,8 @@
10 <ul class="slide-wrapper"> 10 <ul class="slide-wrapper">
11 {{# center}} 11 {{# center}}
12 <li> 12 <li>
13 - <a href="{{url}}" target="_blank">  
14 - <img class="lazy" data-original="{{image2 img w=570 h=633}}"> 13 + <a href="{{url}}" target="_blank" title="{{title}}">
  14 + <img class="lazy" data-original="{{image2 img w=570 h=633}}" alt="{{alt}}">
15 </a> 15 </a>
16 </li> 16 </li>
17 {{/ center}} 17 {{/ center}}
@@ -27,11 +27,11 @@ @@ -27,11 +27,11 @@
27 </div> 27 </div>
28 <div class="right-col col"> 28 <div class="right-col col">
29 {{# right}} 29 {{# right}}
30 - <a href="{{url}}" target="_blank"> 30 + <a href="{{url}}" target="_blank" title="{{title}}">
31 {{#if @first}} 31 {{#if @first}}
32 - <img class="lazy" data-original="{{image2 img w=280 h=449}}"> 32 + <img class="lazy" data-original="{{image2 img w=280 h=449}}" alt="{{alt}}">
33 {{^}} 33 {{^}}
34 - <img class="lazy" data-original="{{image2 img w=280 h=265}}"> 34 + <img class="lazy" data-original="{{image2 img w=280 h=265}}" alt="{{alt}}">
35 {{/if}} 35 {{/if}}
36 </a> 36 </a>
37 {{/ right}} 37 {{/ right}}
@@ -3,8 +3,8 @@ @@ -3,8 +3,8 @@
3 <ul class="img-list imgopacity clearfix"> 3 <ul class="img-list imgopacity clearfix">
4 {{# imgBrand}} 4 {{# imgBrand}}
5 <li class="img-item"> 5 <li class="img-item">
6 - <a href="{{url}}" target= "_blank">  
7 - <img data-original="{{image src 378 175}}" src="{{image2 src w=378 h=175}}" alt=""> 6 + <a href="{{url}}" target= "_blank" title="{{title}}">
  7 + <img data-original="{{image src 378 175}}" src="{{image2 src w=378 h=175}}" alt="{{alt}}">
8 </a> 8 </a>
9 </li> 9 </li>
10 {{/ imgBrand}} 10 {{/ imgBrand}}
@@ -17,14 +17,14 @@ @@ -17,14 +17,14 @@
17 <div class="tpl-brands imgopacity clearfix"> 17 <div class="tpl-brands imgopacity clearfix">
18 <ul> 18 <ul>
19 {{#each brands}} 19 {{#each brands}}
20 - <li><a title="{{title}}" href="{{url}}" target= "_blank"><img class="lazy" data-original="{{image2 img w=378 h=248}}"/></a></li> 20 + <li><a title="{{title}}" href="{{url}}" target= "_blank"><img class="lazy" data-original="{{image2 img w=378 h=248}}" alt="{{alt}}"/></a></li>
21 {{/each}} 21 {{/each}}
22 </ul> 22 </ul>
23 </div> 23 </div>
24 <div class="tpl-types imgopacity clearfix"> 24 <div class="tpl-types imgopacity clearfix">
25 <ul> 25 <ul>
26 {{#each types}} 26 {{#each types}}
27 - <li><a title="{{title}}" href="{{url}}" target= "_blank"><img class="lazy" data-original="{{image2 img w=185 h=248}}"/></a></li> 27 + <li><a title="{{title}}" href="{{url}}" target= "_blank"><img class="lazy" data-original="{{image2 img w=185 h=248}}" alt="{{alt}}"/></a></li>
28 {{/each}} 28 {{/each}}
29 </ul> 29 </ul>
30 </div> 30 </div>
@@ -32,7 +32,7 @@ @@ -32,7 +32,7 @@
32 <div class="tpl-products imgopacity clearfix"> 32 <div class="tpl-products imgopacity clearfix">
33 <ul> 33 <ul>
34 {{#each products}} 34 {{#each products}}
35 - <li><a href="{{url}}" title="{{title}}" target= "_blank"><img class="lazy" data-original="{{image2 src w=222 h=298}}"/></a></li> 35 + <li><a href="{{url}}" title="{{title}}" target= "_blank"><img class="lazy" data-original="{{image2 src w=222 h=298}}" alt="{{alt}}"/></a></li>
36 {{/each}} 36 {{/each}}
37 </ul> 37 </ul>
38 </div> 38 </div>
@@ -3,9 +3,9 @@ @@ -3,9 +3,9 @@
3 <ul class="g-list imgopacity"> 3 <ul class="g-list imgopacity">
4 {{#each imgHot}} 4 {{#each imgHot}}
5 {{#if big}} 5 {{#if big}}
6 - <li><a class="impo{{@index}}" href="{{url}}" target= "_blank"><img class="lazy" data-original="{{image2 src w=378 h=248}}"/></a></li> 6 + <li><a class="impo{{@index}}" href="{{url}}" target= "_blank" title="{{title}}"><img class="lazy" data-original="{{image2 src w=378 h=248}}" alt="{{alt}}"/></a></li>
7 {{^}} 7 {{^}}
8 - <li><a class="impo{{@index}}" href="{{url}}" target= "_blank"><img class="lazy" data-original="{{image2 src w=185 h=248}}"/></a></li> 8 + <li><a class="impo{{@index}}" href="{{url}}" target= "_blank" title="{{title}}"><img class="lazy" data-original="{{image2 src w=185 h=248}}" alt="{{alt}}"/></a></li>
9 {{/if}} 9 {{/if}}
10 {{/each}} 10 {{/each}}
11 </ul> 11 </ul>
@@ -2,8 +2,8 @@ @@ -2,8 +2,8 @@
2 {{#brandLogos}} 2 {{#brandLogos}}
3 {{#if isBrand}} 3 {{#if isBrand}}
4 <li data-page="{{pageNum}}"> 4 <li data-page="{{pageNum}}">
5 - <a href="{{href}}" target="_blank">  
6 - <img class="lazy" data-original="{{image2 img}}" alt=""> 5 + <a href="{{href}}" target="_blank" title="{{title}}">
  6 + <img class="lazy" data-original="{{image2 img}}" alt="{{alt}}">
7 </a> 7 </a>
8 </li> 8 </li>
9 {{/if}} 9 {{/if}}
@@ -13,8 +13,8 @@ @@ -13,8 +13,8 @@
13 <a class="next iconfont" href="javascript:;">&#xe608;</a> 13 <a class="next iconfont" href="javascript:;">&#xe608;</a>
14 </li> 14 </li>
15 <li data-page="{{pageNum}}"> 15 <li data-page="{{pageNum}}">
16 - <a href="{{href}}" target="_blank">  
17 - <img class="lazy" data-original="{{image2 img}}" alt=""> 16 + <a href="{{href}}" target="_blank" title="{{title}}">
  17 + <img class="lazy" data-original="{{image2 img}}" alt="{{alt}}">
18 </a> 18 </a>
19 </li> 19 </li>
20 {{/if}} 20 {{/if}}
@@ -24,8 +24,8 @@ @@ -24,8 +24,8 @@
24 </li> 24 </li>
25 {{#if hasNext}} 25 {{#if hasNext}}
26 <li data-page="{{pageNum}}"> 26 <li data-page="{{pageNum}}">
27 - <a href="{{href}}" target="_blank">  
28 - <img class="lazy" data-original="{{image2 img}}" alt=""> 27 + <a href="{{href}}" target="_blank" title="{{title}}">
  28 + <img class="lazy" data-original="{{image2 img}}" alt="{{alt}}">
29 </a> 29 </a>
30 </li> 30 </li>
31 {{/if}} 31 {{/if}}
@@ -3,8 +3,8 @@ @@ -3,8 +3,8 @@
3 <ul class="clearfix"> 3 <ul class="clearfix">
4 {{# list}} 4 {{# list}}
5 <li class="cate-item{{@index}}"> 5 <li class="cate-item{{@index}}">
6 - <a href="{{url}}" target= "_blank">  
7 - <img class="lazy" data-original="{{image2 src w=w h=h}}" alt=""> 6 + <a href="{{url}}" target= "_blank" title="{{title}}">
  7 + <img class="lazy" data-original="{{image2 src w=w h=h}}" alt="{{alt}}">
8 </a> 8 </a>
9 </li> 9 </li>
10 {{/ list}} 10 {{/ list}}
@@ -8,7 +8,7 @@ @@ -8,7 +8,7 @@
8 <ul class="img-list"> 8 <ul class="img-list">
9 {{# imgBrand}} 9 {{# imgBrand}}
10 <li class="img-item"> 10 <li class="img-item">
11 - <a href="{{url}}" target= "_blank"> 11 + <a href="{{url}}" target= "_blank" title="{{title}}">
12 <img data-original="{{image2 src w=320 h=430}}" src="{{image2 src w=320 h=430}}" alt="{{alt}}"> 12 <img data-original="{{image2 src w=320 h=430}}" src="{{image2 src w=320 h=430}}" alt="{{alt}}">
13 </a> 13 </a>
14 </li> 14 </li>
@@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@
5 <div class="tpl-nav"> 5 <div class="tpl-nav">
6 <div class="tpl-keywords"> 6 <div class="tpl-keywords">
7 {{#each keyword}} 7 {{#each keyword}}
8 - <a class="keywords{{@index}}" title="{{title}}" href="{{url}}" target= "_blank"><img class="lazy" data-original="{{image2 img w=185 h=76}}"/></a> 8 + <a class="keywords{{@index}}" title="{{title}}" href="{{url}}" target= "_blank"><img class="lazy" data-original="{{image2 img w=185 h=76}}" alt="{{alt}}"/></a>
9 {{/each}} 9 {{/each}}
10 </div> 10 </div>
11 <div class="tpl-category clearfix"> 11 <div class="tpl-category clearfix">
@@ -16,13 +16,13 @@ @@ -16,13 +16,13 @@
16 </div> 16 </div>
17 <div class="tpl-brands imgopacity clearfix"> 17 <div class="tpl-brands imgopacity clearfix">
18 {{#each brands}} 18 {{#each brands}}
19 - <a title="{{title}}" href="{{url}}" target= "_blank"><img class="lazy" data-original="{{image2 img w=377 h=504}}"/></a> 19 + <a title="{{title}}" href="{{url}}" target= "_blank"><img class="lazy" data-original="{{image2 img w=377 h=504}}" alt="{{alt}}"/></a>
20 {{/each}} 20 {{/each}}
21 </div> 21 </div>
22 <div class="tpl-types imgopacity clearfix"> 22 <div class="tpl-types imgopacity clearfix">
23 <ul> 23 <ul>
24 {{#each types}} 24 {{#each types}}
25 - <li><a title="{{title}}" href="{{url}}" target= "_blank"><img class="lazy" data-original="{{image2 img w=185 h=504}}"/></a></li> 25 + <li><a title="{{title}}" href="{{url}}" target= "_blank"><img class="lazy" data-original="{{image2 img w=185 h=504}}" alt="{{alt}}"/></a></li>
26 {{/each}} 26 {{/each}}
27 </ul> 27 </ul>
28 </div> 28 </div>
@@ -4,11 +4,11 @@ @@ -4,11 +4,11 @@
4 <ul class="g-list imgopacity clearfix"> 4 <ul class="g-list imgopacity clearfix">
5 {{#each imgHot}} 5 {{#each imgHot}}
6 <li> 6 <li>
7 - <a href="{{url}}" target= "_blank"><div class="commodity-img"> 7 + <a href="{{url}}" target= "_blank"><div class="commodity-img" title="{{title}}">
8 {{# tip}} 8 {{# tip}}
9 <i class="top">{{.}}</i> 9 <i class="top">{{.}}</i>
10 {{/ tip}} 10 {{/ tip}}
11 - <img class="lazy" data-original="{{image2 thumb w=280 h=373}}"/></div> 11 + <img class="lazy" data-original="{{image2 thumb w=280 h=373}}" alt="{{alt}}"/></div>
12 <p class="commodity-name">{{name}}</p> 12 <p class="commodity-name">{{name}}</p>
13 <p class="commodity-price"><span>¥{{salePrice}}</span></p> 13 <p class="commodity-price"><span>¥{{salePrice}}</span></p>
14 </a> 14 </a>
@@ -18,7 +18,7 @@ @@ -18,7 +18,7 @@
18 </div> 18 </div>
19 <div class="commodity-brands imgopacity clearfix"> 19 <div class="commodity-brands imgopacity clearfix">
20 {{#each brands}} 20 {{#each brands}}
21 - <a href="{{url}}" title="{{title}}" target= "_blank"><img class="lazy" data-original="{{image2 src w=185 h=86}}"/></a> 21 + <a href="{{url}}" title="{{title}}" target= "_blank"><img class="lazy" data-original="{{image2 src w=185 h=86}}" alt="{{alt}}"/></a>
22 {{/each}} 22 {{/each}}
23 </div> 23 </div>
24 </div> 24 </div>
@@ -6,11 +6,11 @@ @@ -6,11 +6,11 @@
6 6
7 {{#unless @last}} 7 {{#unless @last}}
8 <li> 8 <li>
9 - <a href="{{url}}" target= "_blank"> 9 + <a href="{{url}}" target= "_blank" title="{{title}}">
10 {{#if @first}} 10 {{#if @first}}
11 - <img class="lazy" data-original="{{image2 src w=377 h=504}}" alt="" > 11 + <img class="lazy" data-original="{{image2 src w=377 h=504}}" alt="{{alt}}">
12 {{^}} 12 {{^}}
13 - <img class="lazy" data-original="{{image2 src w=185 h=248}}" alt="" > 13 + <img class="lazy" data-original="{{image2 src w=185 h=248}}" alt="{{alt}}">
14 {{/if}} 14 {{/if}}
15 </a> 15 </a>
16 </li> 16 </li>
@@ -21,8 +21,8 @@ @@ -21,8 +21,8 @@
21 {{# list}} 21 {{# list}}
22 {{#if @last}} 22 {{#if @last}}
23 <div class="last-item"> 23 <div class="last-item">
24 - <a href="{{url}}" target= "_blank">  
25 - <img class="lazy" data-original="{{image2 src w=377 h=504}}" alt=""> 24 + <a href="{{url}}" target= "_blank" title="{{title}}">
  25 + <img class="lazy" data-original="{{image2 src w=377 h=504}}" alt="{{alt}}">
26 </a> 26 </a>
27 </div> 27 </div>
28 {{/if}} 28 {{/if}}
@@ -2,8 +2,8 @@ @@ -2,8 +2,8 @@
2 {{> common/floor-header}} 2 {{> common/floor-header}}
3 3
4 {{# bannerImage}} 4 {{# bannerImage}}
5 - <a class="good-thumb new-user-banner" href="{{url}}" target="_blank">  
6 - <img class="lazy" data-original="{{image2 src w=1150 h=368}}" alt="{{title}}"> 5 + <a class="good-thumb new-user-banner" href="{{url}}" target="_blank" title="{{title}}">
  6 + <img class="lazy" data-original="{{image2 src w=1150 h=368}}" alt="{{alt}}">
7 </a> 7 </a>
8 {{/bannerImage}} 8 {{/bannerImage}}
9 <div class="new-user-proList"> 9 <div class="new-user-proList">
@@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
2 <div class="tpl-products imgopacity clearfix tpl-list" floorId="{{floorId}}"> 2 <div class="tpl-products imgopacity clearfix tpl-list" floorId="{{floorId}}">
3 <ul> 3 <ul>
4 {{#each categorys}} 4 {{#each categorys}}
5 - <li><a href="{{url}}" title="{{title}}" target= "_blank"><img class="lazy" data-original="{{image2 src w=222 h=298}}"/></a></li> 5 + <li><a href="{{url}}" title="{{title}}" target= "_blank"><img class="lazy" data-original="{{image2 src w=222 h=298}}" alt="{{alt}}"/></a></li>
6 {{/each}} 6 {{/each}}
7 </ul> 7 </ul>
8 </div> 8 </div>
@@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
2 <div class="slide-accordion clearfix"> 2 <div class="slide-accordion clearfix">
3 <ul> 3 <ul>
4 {{#each slide}} 4 {{#each slide}}
5 - <li><a title="{{title}}" href="{{url}}" target= "_blank"><div class="g-mask"></div><img class="lazy" data-original="{{image2 src w=650 h=400}}"/></a></li> 5 + <li><a title="{{title}}" href="{{url}}" target= "_blank"><div class="g-mask"></div><img class="lazy" data-original="{{image2 src w=650 h=400}}" alt="{{alt}}"/></a></li>
6 {{/each}} 6 {{/each}}
7 </ul> 7 </ul>
8 </div> 8 </div>
@@ -5,13 +5,13 @@ @@ -5,13 +5,13 @@
5 {{/ title}} 5 {{/ title}}
6 <div class="tpl-leftPic imgopacity clearfix"> 6 <div class="tpl-leftPic imgopacity clearfix">
7 {{#bigPic}} 7 {{#bigPic}}
8 - <a title="{{title}}" href="{{url}}" target= "_blank"><img class="lazy" data-original="{{image2 src w=512 h=504}}"/></a> 8 + <a title="{{title}}" href="{{url}}" target= "_blank"><img class="lazy" data-original="{{image2 src w=512 h=504}}" alt="{{alt}}"/></a>
9 {{/bigPic}} 9 {{/bigPic}}
10 </div> 10 </div>
11 <div class="tpl-types imgopacity clearfix"> 11 <div class="tpl-types imgopacity clearfix">
12 <ul> 12 <ul>
13 {{#each types}} 13 {{#each types}}
14 - <li><a title="{{title}}" href="{{url}}" target= "_blank"><img class="lazy" data-original="{{image2 src w=185 h=248}}"/></a></li> 14 + <li><a title="{{title}}" href="{{url}}" target= "_blank"><img class="lazy" data-original="{{image2 src w=185 h=248}}" alt="{{alt}}"/></a></li>
15 {{/each}} 15 {{/each}}
16 </ul> 16 </ul>
17 </div> 17 </div>
@@ -79,7 +79,7 @@ const shop = (shopId, req, res, next, brandInfo) => { @@ -79,7 +79,7 @@ const shop = (shopId, req, res, next, brandInfo) => {
79 */ 79 */
80 exports.index = (req, res, next) => { 80 exports.index = (req, res, next) => {
81 let resData = {}; 81 let resData = {};
82 - let qs = req._parsedOriginalUrl.query || ''; 82 + let qs = decodeURIComponent(req._parsedOriginalUrl.query || '');
83 83
84 list.getListData(Object.assign(req.query, {uid: req.user.uid}), req.yoho.channel).then(result => { 84 list.getListData(Object.assign(req.query, {uid: req.user.uid}), req.yoho.channel).then(result => {
85 Object.assign(resData, result); 85 Object.assign(resData, result);
@@ -127,7 +127,42 @@ exports.new = (req, res, next) => { @@ -127,7 +127,42 @@ exports.new = (req, res, next) => {
127 127
128 res.render('list/index', resData); 128 res.render('list/index', resData);
129 }).catch(next); 129 }).catch(next);
  130 +};
  131 +
  132 +/**
  133 + * 新品到着(带频道)
  134 + * @param {[type]} req [description]
  135 + * @param {[type]} res [description]
  136 + * @return {[type]} [description]
  137 + */
  138 +exports.newWithChannel = (req, res, next) => {
  139 + let channel = req.params[0];
  140 +
  141 + req.query = req.query || {};
  142 +
  143 + // 根据 XXXX-new 中的频道处理查询参数
  144 + switch (channel) {
  145 + case 'boys':
  146 + req.yoho.channel = 'boys';
  147 + req.query = Object.assign({gender: '1,3', msort: '1,3,4,6,7,8,308,360'}, req.query);
  148 + break;
  149 + case 'girls':
  150 + req.yoho.channel = 'girls';
  151 + req.query = Object.assign({gender: '2,3', msort: '1,3,4,6,7,8,308,360'}, req.query);
  152 + break;
  153 + case 'kids':
  154 + req.yoho.channel = 'kids';
  155 + req.query = Object.assign({gender: '1,2,3', msort: '365'}, req.query);
  156 + break;
  157 + case 'lifestyle':
  158 + req.yoho.channel = 'lifestyle';
  159 + req.query = Object.assign({gender: '1,2,3', msort: '10'}, req.query);
  160 + break;
  161 + default:
  162 + break;
  163 + }
130 164
  165 + this.new(req, res, next);
131 }; 166 };
132 167
133 /** 168 /**
@@ -9,6 +9,8 @@ @@ -9,6 +9,8 @@
9 const mRoot = '../models'; 9 const mRoot = '../models';
10 const sale = require(`${mRoot}/sale`); // sale model 10 const sale = require(`${mRoot}/sale`); // sale model
11 11
  12 +const channelList = ['boys', 'girls', 'kids', 'lifestyle'];
  13 +
12 /** 14 /**
13 * sale 首页 15 * sale 首页
14 * @param {[type]} req [description] 16 * @param {[type]} req [description]
@@ -18,6 +20,11 @@ const sale = require(`${mRoot}/sale`); // sale 页 model @@ -18,6 +20,11 @@ const sale = require(`${mRoot}/sale`); // sale 页 model
18 exports.index = (req, res, next) => { 20 exports.index = (req, res, next) => {
19 let channel = req.yoho.channel; 21 let channel = req.yoho.channel;
20 22
  23 + // SEO url 改造
  24 + if (req.params && req.params[0] && channelList.indexOf(req.params[0]) > -1) {
  25 + channel = req.params[0];
  26 + }
  27 +
21 // 真实数据输出 28 // 真实数据输出
22 sale.getSaleIndexData(channel).then(result => { 29 sale.getSaleIndexData(channel).then(result => {
23 res.render('sale/index', Object.assign({ 30 res.render('sale/index', Object.assign({
@@ -471,7 +471,7 @@ const getShopAbout = (shopId, uid, channel) => { @@ -471,7 +471,7 @@ const getShopAbout = (shopId, uid, channel) => {
471 shopId: shopId, 471 shopId: shopId,
472 bannerHeight: 150, 472 bannerHeight: 150,
473 shopHome: `/?shopId=${shopId}`, 473 shopHome: `/?shopId=${shopId}`,
474 - shopIntro: `/about?shopId=${shopId}`, 474 + shopIntro: `/shop${shopId}-about`,
475 coled: _.get(result, '[2].data.is_favorite', 'N') === 'Y' 475 coled: _.get(result, '[2].data.is_favorite', 'N') === 'Y'
476 }); 476 });
477 _.set(resData, 'brand.shopBanner', decorator.shopTopBannerBase); 477 _.set(resData, 'brand.shopBanner', decorator.shopTopBannerBase);
@@ -928,7 +928,7 @@ const getBaseShopData = (params, extra, channel, shopId) => { @@ -928,7 +928,7 @@ const getBaseShopData = (params, extra, channel, shopId) => {
928 shopId: shopId, 928 shopId: shopId,
929 bannerHeight: 150, 929 bannerHeight: 150,
930 shopHome: `/?shopId=${shopId}`, 930 shopHome: `/?shopId=${shopId}`,
931 - shopIntro: `/about?shopId=${shopId}`, 931 + shopIntro: `/shop${shopId}-about`,
932 coled: _.get(result[2], 'data.is_favorite', 'N') === 'Y' 932 coled: _.get(result[2], 'data.is_favorite', 'N') === 'Y'
933 }); 933 });
934 934
@@ -24,6 +24,21 @@ const checksName = { @@ -24,6 +24,21 @@ const checksName = {
24 limited: '限量' 24 limited: '限量'
25 }; 25 };
26 26
  27 +const sortFilterParam = (param) => {
  28 + let resData = [];
  29 +
  30 + _.forEach(param, (value, key) => {
  31 + resData.push({
  32 + key: key,
  33 + value: value
  34 + });
  35 + });
  36 +
  37 + return _.sortBy(resData, [o => {
  38 + return o.key;
  39 + }]);
  40 +};
  41 +
27 /** 42 /**
28 * 处理用于筛选的 URL , 拼接 URL 参数 43 * 处理用于筛选的 URL , 拼接 URL 参数
29 * @param originParam 当前 URL 中的参数 44 * @param originParam 当前 URL 中的参数
@@ -39,10 +54,13 @@ const handleFilterUrl = (originParam, newParam, delParam) => { @@ -39,10 +54,13 @@ const handleFilterUrl = (originParam, newParam, delParam) => {
39 tempOriginParam = Object.assign(tempOriginParam, originParam, newParam); 54 tempOriginParam = Object.assign(tempOriginParam, originParam, newParam);
40 delete tempOriginParam.uid; 55 delete tempOriginParam.uid;
41 56
42 - _.forEach(tempOriginParam, function(value, key) {  
43 - if (!delParam[key] && value) { 57 + _.forEach(sortFilterParam(tempOriginParam), info => {
  58 + if (!delParam[info.key] && info.value) {
44 // NOTE: 这里会对 query 进行编码,因为 query 有可以能是中文 59 // NOTE: 这里会对 query 进行编码,因为 query 有可以能是中文
45 - dest += key === 'query' ? `${key}=${encodeURIComponent(value)}&` : `${key}=${value}&`; 60 + if (info.key === 'query') {
  61 + info.value = encodeURIComponent(info.value);
  62 + }
  63 + dest += `${info.key}=${info.value}&`;
46 } 64 }
47 }); 65 });
48 66
@@ -65,7 +83,12 @@ const handleCheckedData = (params, origin, param) => { @@ -65,7 +83,12 @@ const handleCheckedData = (params, origin, param) => {
65 let tempPatam = _.cloneDeep(params); 83 let tempPatam = _.cloneDeep(params);
66 84
67 // 删除选中 85 // 删除选中
68 - delete tempPatam[param]; 86 + if (param === 'gender') {
  87 + // 某些特殊带频道信息页面,清除性别,需将gender设为1,2,3 (2017-3 配合SEO进行URL改造)
  88 + tempPatam[param] = '1,2,3';
  89 + } else {
  90 + delete tempPatam[param];
  91 + }
69 92
70 dest.push({ 93 dest.push({
71 name: value.name, 94 name: value.name,
@@ -779,7 +802,8 @@ exports.handleFilterData = (origin, params, total) => { @@ -779,7 +802,8 @@ exports.handleFilterData = (origin, params, total) => {
779 } 802 }
780 803
781 // 清除所有选中数据 804 // 清除所有选中数据
782 - let remainParams = {}; 805 + // 某些特殊带频道信息页面,清除性别,需将gender设为1,2,3 (2017-3 配合SEO进行URL改造)
  806 + let remainParams = {gender: '1,2,3'};
783 807
784 if (params.id) { 808 if (params.id) {
785 remainParams.id = params.id; 809 remainParams.id = params.id;
@@ -46,6 +46,7 @@ const newArrive = require(`${cRoot}/newArrive`); @@ -46,6 +46,7 @@ const newArrive = require(`${cRoot}/newArrive`);
46 46
47 // 商品促销routers 47 // 商品促销routers
48 router.get('/sale', sale.index); // sale 首页 48 router.get('/sale', sale.index); // sale 首页
  49 +router.get(/\/(.*)-sale/, sale.index); // sale 首页(SEO改造)
49 router.get('/sale/discount/detail', sale.discount); // 折扣专场详情页 50 router.get('/sale/discount/detail', sale.discount); // 折扣专场详情页
50 router.get('/sale/vip', sale.vip); // VIP 活动专区 51 router.get('/sale/vip', sale.vip); // VIP 活动专区
51 router.get('/sale/breakingYards', sale.breakingYards); // 断码区 52 router.get('/sale/breakingYards', sale.breakingYards); // 断码区
@@ -93,6 +94,7 @@ router.get('/list/index', gbk2utf, list.index); @@ -93,6 +94,7 @@ router.get('/list/index', gbk2utf, list.index);
93 94
94 // 新品到着 95 // 新品到着
95 router.get('/list/new', list.new); 96 router.get('/list/new', list.new);
  97 +router.get(/\/list\/(.*)-new/, list.newWithChannel);
96 98
97 // 品牌店铺 99 // 品牌店铺
98 router.get('/index/brand', list.brand); // 品牌店铺页 100 router.get('/index/brand', list.brand); // 品牌店铺页
@@ -4,6 +4,24 @@ @@ -4,6 +4,24 @@
4 4
5 'use strict'; 5 'use strict';
6 6
7 -module.exports = [ 7 +const helpers = global.yoho.helpers;
  8 +const TYPE = require('../type');
8 9
  10 +module.exports = [
  11 + {
  12 + type: TYPE.redirect,
  13 + origin: /\/about?shopId=([\d]+)/,
  14 + target: (req, match, id) => {
  15 + return helpers.urlFormat(`/shop${id}-about`, null, req.subdomains[0]);
  16 + }
  17 + },
  18 + {
  19 + type: TYPE.rewrite,
  20 + origin: /\/shop([\d]+)-about/,
  21 + target: (req, match, id) => {
  22 + req.query.domain = req.subdomains[0];
  23 + req.query.shopId = id;
  24 + return '/product/index/about';
  25 + }
  26 + }
9 ]; 27 ];
  1 +/**
  2 + * Created by YanQing.Yang on 2017/3/9.
  3 + */
  4 +
  5 +'use strict';
  6 +
  7 +const _ = require('lodash');
  8 +const helpers = global.yoho.helpers;
  9 +const mapSort = require(`${global.utils}/map-sort`);
  10 +const TYPE = require('../type');
  11 +
  12 +module.exports = [
  13 + // 老版newURL
  14 + {
  15 + type: TYPE.redirect,
  16 + origin: '/new?gender=1,3&order=s_t_desc&msort=1,3,4,6,7,8,308,360',
  17 + target: helpers.urlFormat('/boys-new/', null, 'list')
  18 + },
  19 + {
  20 + type: TYPE.redirect,
  21 + origin: '/new?gender=2,3&order=s_t_desc&msort=1,3,4,6,7,8,308,360',
  22 + target: helpers.urlFormat('/girls-new/', null, 'list')
  23 + },
  24 + {
  25 + type: TYPE.redirect,
  26 + origin: '/new?order=s_t_desc&msort=365',
  27 + target: helpers.urlFormat('/kids-new/', null, 'list')
  28 + },
  29 + {
  30 + type: TYPE.redirect,
  31 + origin: '/new?order=s_t_desc&msort=10',
  32 + target: helpers.urlFormat('/lifestyle-new/', null, 'list')
  33 + },
  34 +
  35 + // 筛选参数排序匹配
  36 + {
  37 + type: TYPE.redirect,
  38 + origin: req => {
  39 + if (_.isEmpty(req.query)) {
  40 + return false;
  41 + }
  42 +
  43 + let sorts = mapSort(req.query);
  44 + let queryKeys = _.keys(req.query);
  45 + let index = 0;
  46 + let matched = _.map(sorts, (val, key) => {
  47 + return key === queryKeys[index++];
  48 + });
  49 +
  50 + if (_.every(matched, match => match)) {
  51 + return false;
  52 + }
  53 +
  54 + return true;
  55 + },
  56 + target: req => helpers.urlFormat(req.path, mapSort(req.query), 'list')
  57 + },
  58 + {
  59 + type: TYPE.rewrite,
  60 + origin: req => {
  61 + return !req.path || req.path === '/';
  62 + },
  63 + target: '/product/list/index'
  64 + },
  65 + {
  66 + type: TYPE.rewrite,
  67 + origin: /\/(.*)-new/,
  68 + target: (req, match, channel) => {
  69 + return `/product/list/${channel}-new`;
  70 + }
  71 + },
  72 + {
  73 + type: TYPE.rewrite,
  74 + origin: req => req.path === '/new',
  75 + target: '/product/list/new'
  76 + }
  77 +];
@@ -10,6 +10,18 @@ const helpers = global.yoho.helpers; @@ -10,6 +10,18 @@ const helpers = global.yoho.helpers;
10 const TYPE = require('../type'); 10 const TYPE = require('../type');
11 11
12 module.exports = [ 12 module.exports = [
  13 + {
  14 + type: TYPE.redirect,
  15 + origin: /\/product\/sale\/\?channel=(.*)/,
  16 + target: (req, match, channel) => {
  17 + return helpers.urlFormat(`/product/${channel}-sale/`);
  18 + }
  19 + },
  20 + {
  21 + type: TYPE.redirect,
  22 + origin: '/product/sale/?msort=10',
  23 + target: helpers.urlFormat('/product/lifestyle-sale/')
  24 + },
13 // 商品详情页老链接,形试一 25 // 商品详情页老链接,形试一
14 { 26 {
15 type: TYPE.redirect, 27 type: TYPE.redirect,
@@ -42,37 +42,37 @@ const seoMap = { @@ -42,37 +42,37 @@ const seoMap = {
42 keywords: '配饰其他,女士配饰,女士时尚配饰,YOHO!BUY有货', 42 keywords: '配饰其他,女士配饰,女士时尚配饰,YOHO!BUY有货',
43 description: 'YOHO!BUY有货配饰其他频道提供新款女士配饰,时尚帽子、围巾、耳钉手链、腰带胸针等女士潮流配饰搭配商品。购买女士配饰就到YOHO!BUY有货,100%正品保证!' 43 description: 'YOHO!BUY有货配饰其他频道提供新款女士配饰,时尚帽子、围巾、耳钉手链、腰带胸针等女士潮流配饰搭配商品。购买女士配饰就到YOHO!BUY有货,100%正品保证!'
44 }, 44 },
45 - 'msort=365&gender=1,3&order=s_t_desc': { 45 + 'gender=1,3&msort=365&order=s_t_desc': {
46 title: '男童服饰|男童上衣外套,下装,时尚男童鞋包配饰|YOHO!BUY有货 100%正品保证', 46 title: '男童服饰|男童上衣外套,下装,时尚男童鞋包配饰|YOHO!BUY有货 100%正品保证',
47 keywords: '男童服饰,男童上衣外套,男童下装,时尚男童鞋包配饰,YOHO!BUY有货', 47 keywords: '男童服饰,男童上衣外套,男童下装,时尚男童鞋包配饰,YOHO!BUY有货',
48 description: 'YOHO!BUY有货男童服饰提供时尚男童上衣外套,下装,时尚男童鞋包配饰,教你穿出可爱,搭出时尚.购买当季最新款男童服饰就到YOHO!BUY有货,100%正品保证' 48 description: 'YOHO!BUY有货男童服饰提供时尚男童上衣外套,下装,时尚男童鞋包配饰,教你穿出可爱,搭出时尚.购买当季最新款男童服饰就到YOHO!BUY有货,100%正品保证'
49 }, 49 },
50 - 'msort=365&order=s_t_desc&gender=2,3': { 50 + 'gender=2,3&msort=365&order=s_t_desc': {
51 title: '女童服饰|女童上衣外套,下装,时尚女童鞋包配饰|YOHO!BUY有货 100%正品保证', 51 title: '女童服饰|女童上衣外套,下装,时尚女童鞋包配饰|YOHO!BUY有货 100%正品保证',
52 keywords: '女童服饰,女童上衣外套,女童下装,时尚女童鞋包配饰,YOHO!BUY有货', 52 keywords: '女童服饰,女童上衣外套,女童下装,时尚女童鞋包配饰,YOHO!BUY有货',
53 description: 'YOHO!BUY有货女童服饰提供时尚女童上衣外套,下装,时尚女童鞋包配饰,教你穿出可爱,搭出时尚.购买当季最新款女童服饰就到YOHO!BUY有货,100%正品保证' 53 description: 'YOHO!BUY有货女童服饰提供时尚女童上衣外套,下装,时尚女童鞋包配饰,教你穿出可爱,搭出时尚.购买当季最新款女童服饰就到YOHO!BUY有货,100%正品保证'
54 }, 54 },
55 - 'msort=365&misort=368,392,414,421,429,419,408': { 55 + 'misort=368,392,414,421,429,419,408&msort=365': {
56 title: '潮童鞋包配饰|儿童鞋,儿童包,时尚潮童配饰|YOHO!BUY有货 100%正品保证', 56 title: '潮童鞋包配饰|儿童鞋,儿童包,时尚潮童配饰|YOHO!BUY有货 100%正品保证',
57 keywords: '潮童鞋包配饰,儿童鞋,儿童包,时尚潮童配饰', 57 keywords: '潮童鞋包配饰,儿童鞋,儿童包,时尚潮童配饰',
58 description: 'YOHO!BUY有货潮童鞋包配饰提供儿童鞋,儿童包,时尚潮童配饰,教你穿出可爱,搭出时尚.购买当季最新款潮童鞋包配饰就到YOHO!BUY有货,100%正品保证' 58 description: 'YOHO!BUY有货潮童鞋包配饰提供儿童鞋,儿童包,时尚潮童配饰,教你穿出可爱,搭出时尚.购买当季最新款潮童鞋包配饰就到YOHO!BUY有货,100%正品保证'
59 }, 59 },
60 - 'msort=10&misort=103': { 60 + 'misort=103&msort=10': {
61 title: '数码3c|数码,3c,数码产品配件|YOHO!BUY有货 100%正品保证', 61 title: '数码3c|数码,3c,数码产品配件|YOHO!BUY有货 100%正品保证',
62 keywords: '数码,3c,3c数码,数码产品配件,YOHO!BUY有货', 62 keywords: '数码,3c,3c数码,数码产品配件,YOHO!BUY有货',
63 description: 'YOHO!BUY有货数码3c汇集数码产品配件,提供手机/ipad壳套,数码配件,耳机,手机配件,相机,智能装备,U盘,电脑架.购买3c数码就到YOHO!BUY有货,100%正品保证' 63 description: 'YOHO!BUY有货数码3c汇集数码产品配件,提供手机/ipad壳套,数码配件,耳机,手机配件,相机,智能装备,U盘,电脑架.购买3c数码就到YOHO!BUY有货,100%正品保证'
64 }, 64 },
65 - 'msort=10&misort=266': { 65 + 'misort=266&msort=10': {
66 title: '居家用品|居家生活,居家装修装饰购物|YOHO!BUY有货 100%正品保证', 66 title: '居家用品|居家生活,居家装修装饰购物|YOHO!BUY有货 100%正品保证',
67 keywords: '居家,居家用品,居家装修,居家装饰,居家生活', 67 keywords: '居家,居家用品,居家装修,居家装饰,居家生活',
68 description: 'YOHO!BUY有货居家频道提供家装修装饰购物,居家生活日用品、居家饰品,汇集家居饰品,杯子,储物收纳,雨伞,抱枕,香薰,床上用品等。购买居家日用品就到YOHO!BUY有货,100%正品保证!' 68 description: 'YOHO!BUY有货居家频道提供家装修装饰购物,居家生活日用品、居家饰品,汇集家居饰品,杯子,储物收纳,雨伞,抱枕,香薰,床上用品等。购买居家日用品就到YOHO!BUY有货,100%正品保证!'
69 }, 69 },
70 - 'msort=10&misort=101,280': { 70 + 'misort=101,280&msort=10': {
71 title: '玩具娱乐|玩具,玩偶,DIY,文具,毛绒玩具|YOHO!BUY有货 100%正品保证', 71 title: '玩具娱乐|玩具,玩偶,DIY,文具,毛绒玩具|YOHO!BUY有货 100%正品保证',
72 keywords: '玩具娱乐,玩具,玩偶,DIY,文具,毛绒玩具', 72 keywords: '玩具娱乐,玩具,玩偶,DIY,文具,毛绒玩具',
73 description: 'YOHO!BUY有货玩具娱乐频道提供玩具娱乐,玩具,玩偶,DIY,文具,毛绒玩具等,购买娱乐玩具就到YOHO!BUY有货,100%正品保证!' 73 description: 'YOHO!BUY有货玩具娱乐频道提供玩具娱乐,玩具,玩偶,DIY,文具,毛绒玩具等,购买娱乐玩具就到YOHO!BUY有货,100%正品保证!'
74 }, 74 },
75 - 'msort=10&misort=259': { 75 + 'misort=259&msort=10': {
76 title: '美妆|美白化妆品,日系美妆,美妆新品|YOHO!BUY有货 100%正品保证', 76 title: '美妆|美白化妆品,日系美妆,美妆新品|YOHO!BUY有货 100%正品保证',
77 keywords: '美妆,美白化妆品,日系美妆,美妆新品', 77 keywords: '美妆,美白化妆品,日系美妆,美妆新品',
78 description: 'YOHO!BUY有货美妆频道提供美白化妆品,日系美妆,美妆新品,汇集彩妆,香水,个人护理,纹身贴,面部护肤,美体瘦身等商品。购买美妆产品就到YOHO!BUY有货,100%正品保证!' 78 description: 'YOHO!BUY有货美妆频道提供美白化妆品,日系美妆,美妆新品,汇集彩妆,香水,个人护理,纹身贴,面部护肤,美体瘦身等商品。购买美妆产品就到YOHO!BUY有货,100%正品保证!'
@@ -67,12 +67,11 @@ module.exports = () => { @@ -67,12 +67,11 @@ module.exports = () => {
67 } 67 }
68 default: // 其它(识别为品牌) 68 default: // 其它(识别为品牌)
69 { // eslint-disable-line 69 { // eslint-disable-line
  70 + req.query.domain = req.subdomains[0];
70 if (!req.path || req.path === '/') { 71 if (!req.path || req.path === '/') {
71 req.url = `/product/index/brand?domain=${req.subdomains[0]}`; 72 req.url = `/product/index/brand?domain=${req.subdomains[0]}`;
72 - req.query.domain = req.subdomains[0];  
73 } else if (req.path === '/about') { 73 } else if (req.path === '/about') {
74 req.url = `/product/index/about?domain=${req.subdomains[0]}`; 74 req.url = `/product/index/about?domain=${req.subdomains[0]}`;
75 - req.query.domain = req.subdomains[0];  
76 } 75 }
77 break; 76 break;
78 } 77 }
@@ -4,11 +4,11 @@ @@ -4,11 +4,11 @@
4 <ul> 4 <ul>
5 {{# list}} 5 {{# list}}
6 <li style="{{#if bgColor}}background:{{bgColor}}{{/if}}"> 6 <li style="{{#if bgColor}}background:{{bgColor}}{{/if}}">
7 - <a href="{{url}}" target= "_blank"> 7 + <a href="{{url}}" target= "_blank" title="{{title}}">
8 {{#if @first}} 8 {{#if @first}}
9 <img src="{{image2 src w=1150 h=450}}"> 9 <img src="{{image2 src w=1150 h=450}}">
10 {{^}} 10 {{^}}
11 - <img class="lazy" data-original="{{image2 src w=1150 h=450}}" alt=""> 11 + <img class="lazy" data-original="{{image2 src w=1150 h=450}}" alt="{{alt}}">
12 {{/if}} 12 {{/if}}
13 </a> 13 </a>
14 {{# tips}} 14 {{# tips}}
@@ -27,8 +27,8 @@ @@ -27,8 +27,8 @@
27 <ul class="clearfix"> 27 <ul class="clearfix">
28 {{# pagination}} 28 {{# pagination}}
29 <li> 29 <li>
30 - <a href="{{url}}" target="_blank"></a>  
31 - <img src="{{image2 src w=138 h=54}}" alt=""> 30 + <a href="{{url}}" target="_blank" title="{{title}}"></a>
  31 + <img src="{{image2 src w=138 h=54}}" alt="{{alt}}">
32 </li> 32 </li>
33 {{/ pagination}} 33 {{/ pagination}}
34 </ul> 34 </ul>
1 { 1 {
2 "name": "yohobuy-node", 2 "name": "yohobuy-node",
3 - "version": "5.4.18", 3 + "version": "5.4.19",
4 "private": true, 4 "private": true,
5 "description": "A New Yohobuy Project With Express", 5 "description": "A New Yohobuy Project With Express",
6 "repository": { 6 "repository": {
  1 +/**
  2 + * 参数排序
  3 + * @author: yyq<yanqing.yang@yoho.cn>
  4 + * @date: 2017/3/9
  5 + */
  6 +
  7 +'use strict';
  8 +
  9 +/**
  10 + * 对象字段排序
  11 + */
  12 +module.exports = obj => {
  13 + if (!obj) {
  14 + return {};
  15 + }
  16 + let data = {};
  17 +
  18 + Object.keys(obj).sort().forEach(k => {
  19 + data[k] = obj[k];
  20 + });
  21 +
  22 + return data;
  23 +};
@@ -4,16 +4,15 @@ const _ = require('lodash'); @@ -4,16 +4,15 @@ const _ = require('lodash');
4 const camelCase = global.yoho.camelCase; 4 const camelCase = global.yoho.camelCase;
5 const helpers = global.yoho.helpers; 5 const helpers = global.yoho.helpers;
6 6
7 -// const images = require(`${global.utils}/images`);  
8 -  
9 -const itemFromBase = {  
10 - search: {domain: 'search', module: 's'}, // 搜索页search.yohobuy.com  
11 - list: {domain: 'list', module: 'c'}, // list.yohobuy.com  
12 - listSale: {domain: 'list', module: 's'}, // list.yohobuy.com/sale  
13 - listNew: {domain: 'list', module: 'n'}, // list.yohobuy.com/new  
14 - brand: {domain: 'brand', module: 'b'}, // xxx.yohobuy.com[品牌域名]  
15 - saleSpecial: {domain: 'sale', module: 's'}// sale.yohobuy.com  
16 -}; 7 +// TODO 删除from参数,暂时保留注释
  8 +// const itemFromBase = {
  9 +// search: {domain: 'search', module: 's'}, // 搜索页search.yohobuy.com
  10 +// list: {domain: 'list', module: 'c'}, // list.yohobuy.com
  11 +// listSale: {domain: 'list', module: 's'}, // list.yohobuy.com/sale
  12 +// listNew: {domain: 'list', module: 'n'}, // list.yohobuy.com/new
  13 +// brand: {domain: 'brand', module: 'b'}, // xxx.yohobuy.com[品牌域名]
  14 +// saleSpecial: {domain: 'sale', module: 's'}// sale.yohobuy.com
  15 +// };
17 16
18 /** 17 /**
19 * 根据性别来决定 默认图片获取字段 如果是 2、3 18 * 根据性别来决定 默认图片获取字段 如果是 2、3
@@ -112,8 +111,10 @@ const procCnAlphabetName = (nameStr) => { @@ -112,8 +111,10 @@ const procCnAlphabetName = (nameStr) => {
112 */ 111 */
113 exports.processProductList = (list, options) => { 112 exports.processProductList = (list, options) => {
114 const pruductList = []; 113 const pruductList = [];
115 - let itemNum = 0,  
116 - itemFrom; 114 +
  115 + // TODO 删除from参数,暂时保留注释
  116 + // let itemNum = 0,
  117 + // itemFrom;
117 118
118 options = Object.assign({ 119 options = Object.assign({
119 showTags: true, 120 showTags: true,
@@ -131,24 +132,25 @@ exports.processProductList = (list, options) => { @@ -131,24 +132,25 @@ exports.processProductList = (list, options) => {
131 from: {} // 来源 132 from: {} // 来源
132 }, options); 133 }, options);
133 134
  135 + // TODO 删除from参数,暂时保留注释
134 // 处理item from 136 // 处理item from
135 - if (!_.isEmpty(options.from) && itemFromBase[options.from.type]) {  
136 - let f = {domain: '', module: '', key: ''};  
137 - let params = options.from.params || {};  
138 -  
139 - f.page = params.page || 1;  
140 -  
141 - Object.assign(f, itemFromBase[options.from.type], {  
142 - page: params.page || 1,  
143 - key: params.misort || params.msort || ''  
144 - });  
145 -  
146 - if (options.from.type === 'search') {  
147 - f.key = params.query || '';  
148 - }  
149 -  
150 - itemFrom = `from=${f.domain}-${f.module}-${f.key}_${f.page}_`;  
151 - } 137 + // if (!_.isEmpty(options.from) && itemFromBase[options.from.type]) {
  138 + // let f = {domain: '', module: '', key: ''};
  139 + // let params = options.from.params || {};
  140 + //
  141 + // f.page = params.page || 1;
  142 + //
  143 + // Object.assign(f, itemFromBase[options.from.type], {
  144 + // page: params.page || 1,
  145 + // key: params.misort || params.msort || ''
  146 + // });
  147 + //
  148 + // if (options.from.type === 'search') {
  149 + // f.key = params.query || '';
  150 + // }
  151 + //
  152 + // itemFrom = `from=${f.domain}-${f.module}-${f.key}_${f.page}_`;
  153 + // }
152 154
153 _.forEach(list, (product) => { 155 _.forEach(list, (product) => {
154 156
@@ -204,15 +206,13 @@ exports.processProductList = (list, options) => { @@ -204,15 +206,13 @@ exports.processProductList = (list, options) => {
204 // tar add 1606071146 品牌链接处理 206 // tar add 1606071146 品牌链接处理
205 product.brandUrl = helpers.urlFormat('', '', product.brand_domain); 207 product.brandUrl = helpers.urlFormat('', '', product.brand_domain);
206 208
207 - // APP访问需要加附加的参数  
208 - // 备注:如果以后APP的接口太多,可以把这边参数提取出来,变成一个公共的方法来生成,便于以后管理维护  
209 - if (options.isApp) {  
210 - product.url += `?openby:yohobuy={"action":"go.productDetail","params":{"product_skn":'${product.product_id}'}}`; // eslint-disable-line  
211 - } else if (itemFrom) {  
212 - // 累加商品数量  
213 - itemNum++;  
214 - product.url += `?${itemFrom}${itemNum}`;  
215 - } 209 + // TODO 删除from参数,暂时保留注释
  210 + // if (itemFrom) {
  211 + // // 累加商品数量
  212 + // itemNum++;
  213 + // product.url += `?${itemFrom}${itemNum}`;
  214 + // }
  215 +
216 if (options.showTags) { 216 if (options.showTags) {
217 let tags = [], 217 let tags = [],
218 isfew = false; 218 isfew = false;