Merge branch 'hotfix/studentsText' of http://git.yoho.cn/fe/yohobuy-node into hotfix/studentsText
Showing
29 changed files
with
299 additions
and
102 deletions
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:;"></a> | 13 | <a class="next iconfont" href="javascript:;"></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 | ]; |
doraemon/middleware/htaccess/rules/list.js
0 → 100644
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> |
utils/map-sort.js
0 → 100644
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; |
-
Please register or login to post a comment