Authored by shuaiguo

Merge branch 'develop'

@@ -78,10 +78,6 @@ exports.getIndexGuide = (req, res, next) => { @@ -78,10 +78,6 @@ exports.getIndexGuide = (req, res, next) => {
78 return req.ctx(ChannelModel).formatIndexGuideData(data.data); 78 return req.ctx(ChannelModel).formatIndexGuideData(data.data);
79 }).then(data => { 79 }).then(data => {
80 return req.ctx(ChannelModel).getResourceData(data); 80 return req.ctx(ChannelModel).getResourceData(data);
81 - }).then(data => {  
82 - let result = {list: data, layout: false};  
83 -  
84 - res.render('guide', result);  
85 }).catch(next); 81 }).catch(next);
86 }; 82 };
87 83
@@ -32,7 +32,11 @@ module.exports = class extends global.yoho.BaseModel { @@ -32,7 +32,11 @@ module.exports = class extends global.yoho.BaseModel {
32 super(ctx); 32 super(ctx);
33 33
34 this.searchApi = new SearchApi(ctx); 34 this.searchApi = new SearchApi(ctx);
  35 + this.getGoodsFloor = {
  36 + 最新上架: 'newArrivls',
35 37
  38 + // 新增导航: 'newFloor'
  39 + };
36 this.floorMap = { 40 this.floorMap = {
37 slide: this._getSlideData.bind(this), 41 slide: this._getSlideData.bind(this),
38 hot: this._getHotGoodsFloorData.bind(this), 42 hot: this._getHotGoodsFloorData.bind(this),
@@ -42,7 +46,9 @@ module.exports = class extends global.yoho.BaseModel { @@ -42,7 +46,9 @@ module.exports = class extends global.yoho.BaseModel {
42 'BOY KIDS': this._getSingleHotFloorData.bind(this), 46 'BOY KIDS': this._getSingleHotFloorData.bind(this),
43 ACCESSORIES: this._getSingleHotFloorData.bind(this), 47 ACCESSORIES: this._getSingleHotFloorData.bind(this),
44 优选品牌: this._getPreBrandTopData.bind(this), 48 优选品牌: this._getPreBrandTopData.bind(this),
45 - 最新上架: this._getNewGoodsFloorData.bind(this), 49 + 最新上架: this._getGoodsFloorData.bind(this),
  50 +
  51 + // 新增导航: this._getGoodsFloorData.bind(this),
46 ad: this._getadbannerData.bind(this), 52 ad: this._getadbannerData.bind(this),
47 category: this._getCategoryFloorData.bind(this), 53 category: this._getCategoryFloorData.bind(this),
48 accordion: this._getAccordionFloorData.bind(this), 54 accordion: this._getAccordionFloorData.bind(this),
@@ -592,17 +598,22 @@ module.exports = class extends global.yoho.BaseModel { @@ -592,17 +598,22 @@ module.exports = class extends global.yoho.BaseModel {
592 * @param string data 598 * @param string data
593 * return obj 599 * return obj
594 */ 600 */
595 - _getNewGoodsFloorData(args) { 601 + _getGoodsFloorData(args) {
  602 + // console.log(args);
  603 + let name = args[0].data.text;
  604 + let floorKey = this.getGoodsFloor[name];
  605 +
596 const data = {}; 606 const data = {};
597 607
598 if (!_.isEmpty(args)) { 608 if (!_.isEmpty(args)) {
599 - data.newArrivls = { 609 + data[floorKey] = {
600 floorId: args[0].template_id, 610 floorId: args[0].template_id,
601 - name: _.replace(args[0].data.text, '最新', '新品'), 611 + name: name === '最新上架' ? _.replace(name, '最新', '新品') : name,
  612 + templateName: floorKey,
602 navs: [] 613 navs: []
603 }; 614 };
604 615
605 - data.newArrivls.navs = args[1] ? args[1].data : {}; 616 + data[floorKey].navs = args[1] ? args[1].data : {};
606 } 617 }
607 return data; 618 return data;
608 } 619 }
@@ -628,7 +639,7 @@ module.exports = class extends global.yoho.BaseModel { @@ -628,7 +639,7 @@ module.exports = class extends global.yoho.BaseModel {
628 } 639 }
629 640
630 if (resData.floorHeader.name.indexOf('最新上架') >= 0) { 641 if (resData.floorHeader.name.indexOf('最新上架') >= 0) {
631 - resData = this._getNewGoodsFloorData(args); 642 + resData = this._getGoodsFloorData(args);
632 } 643 }
633 return resData; 644 return resData;
634 } 645 }
@@ -1215,6 +1226,7 @@ module.exports = class extends global.yoho.BaseModel { @@ -1215,6 +1226,7 @@ module.exports = class extends global.yoho.BaseModel {
1215 * @return {Object} 1226 * @return {Object}
1216 */ 1227 */
1217 getContent(type, isJKChannel, poolId) { 1228 getContent(type, isJKChannel, poolId) {
  1229 + let that = this;
1218 let params = {new_device: 'Y'}; 1230 let params = {new_device: 'Y'};
1219 const headerModelCtx = new HeaderModel(this.ctx); 1231 const headerModelCtx = new HeaderModel(this.ctx);
1220 1232
@@ -1237,11 +1249,15 @@ module.exports = class extends global.yoho.BaseModel { @@ -1237,11 +1249,15 @@ module.exports = class extends global.yoho.BaseModel {
1237 data.pageType = type; 1249 data.pageType = type;
1238 data.footerTop = true; 1250 data.footerTop = true;
1239 data.channel = processResult.floors.map(function(elem) { 1251 data.channel = processResult.floors.map(function(elem) {
  1252 + let keyArr = Object.values(that.getGoodsFloor);
  1253 + let tarKey = Object.keys(elem)[0];
1240 1254
1241 - if (elem.newArrivls) {  
1242 - elem.newArrivls.goods = res[2];  
1243 - } 1255 + if (keyArr.includes(tarKey)) {
  1256 + // console.log(tarKey);
  1257 + elem[tarKey].goods = res[2];
1244 1258
  1259 + // console.log(elem[tarKey]);
  1260 + }
1245 return elem; 1261 return elem;
1246 }); 1262 });
1247 1263
@@ -86,6 +86,10 @@ @@ -86,6 +86,10 @@
86 {{# newArrivls}} 86 {{# newArrivls}}
87 {{> commodity}} 87 {{> commodity}}
88 {{/ newArrivls}} 88 {{/ newArrivls}}
  89 + {{! 新分类楼层}}
  90 + {{!-- {{# newFloor}}
  91 + {{> new-category}}
  92 + {{/ newFloor}} --}}
89 {{! 七个类别列表}} 93 {{! 七个类别列表}}
90 {{# sevenCategory}} 94 {{# sevenCategory}}
91 {{> seven-product}} 95 {{> seven-product}}
  1 +<div class="commodity clearfix" id="newarrivals">
  2 + {{> common/floor-header}}
  3 +
  4 + <div class="goods-container clearfix">
  5 + {{> product/new-arrivis}}
  6 + </div>
  7 +</div>
@@ -24,11 +24,11 @@ @@ -24,11 +24,11 @@
24 </div> 24 </div>
25 25
26 <div id="tab-box"> 26 <div id="tab-box">
27 - <ul class="tabs" id="tabs"> 27 + {{!-- <ul class="tabs" id="tabs">
28 {{# pay}} 28 {{# pay}}
29 <li{{#if selected}} class="active"{{/if}}>{{name}}</li> 29 <li{{#if selected}} class="active"{{/if}}>{{name}}</li>
30 {{/pay}} 30 {{/pay}}
31 - </ul> 31 + </ul> --}}
32 32
33 <ul class="tab-conbox"> 33 <ul class="tab-conbox">
34 {{# pay}} 34 {{# pay}}
@@ -51,7 +51,8 @@ const getMenuData = () => ( @@ -51,7 +51,8 @@ const getMenuData = () => (
51 * @param {String} type 频道类型 51 * @param {String} type 频道类型
52 * @return {array} 导航数组 52 * @return {array} 导航数组
53 */ 53 */
54 -const getNavBar = (data, type) => { 54 +const getNavBar = (data) => {
  55 + // 统一默认为boys
55 let navBars = []; 56 let navBars = [];
56 57
57 _.forEach(data, item => { 58 _.forEach(data, item => {
@@ -59,16 +60,18 @@ const getNavBar = (data, type) => { @@ -59,16 +60,18 @@ const getNavBar = (data, type) => {
59 let lowEn = _.camelCase(item.sort_name_en).toLowerCase(); 60 let lowEn = _.camelCase(item.sort_name_en).toLowerCase();
60 61
61 Object.assign(obj, { 62 Object.assign(obj, {
62 - type: lowEn, 63 + // type: lowEn,
  64 + type: 'boys',
63 link: item.sort_url, 65 link: item.sort_url,
64 cn: item.sort_name, 66 cn: item.sort_name,
65 en: item.sort_name_en, 67 en: item.sort_name_en,
66 isNewPage: item.is_new_page === 'Y' 68 isNewPage: item.is_new_page === 'Y'
67 }); 69 });
68 70
69 - if (type === lowEn) {  
70 - obj.active = true;  
71 - } 71 + // if (type === lowEn) {
  72 + // obj.active = true;
  73 + // }
  74 + obj.active = true;
72 75
73 // 奥莱频道显示图片,特殊处理 76 // 奥莱频道显示图片,特殊处理
74 if (lowEn === 'outlets') { 77 if (lowEn === 'outlets') {
@@ -144,7 +147,7 @@ const getThirdNav = (data) => { @@ -144,7 +147,7 @@ const getThirdNav = (data) => {
144 * @param {String} type 频道类型 147 * @param {String} type 频道类型
145 * @return {array} 子菜单数组 148 * @return {array} 子菜单数组
146 */ 149 */
147 -const getSubNavGroup = (data, type) => { 150 +const getSubNavGroup = (data) => {
148 let subNavGroup = []; 151 let subNavGroup = [];
149 152
150 _.forEach(data, it => { 153 _.forEach(data, it => {
@@ -166,12 +169,15 @@ const getSubNavGroup = (data, type) => { @@ -166,12 +169,15 @@ const getSubNavGroup = (data, type) => {
166 subNav.push(obj); 169 subNav.push(obj);
167 }); 170 });
168 171
169 - let lowEn = _.camelCase(it.sort_name_en).toLowerCase(); 172 + // let lowEn = _.camelCase(it.sort_name_en).toLowerCase();
170 173
171 subNavGroup.push({ 174 subNavGroup.push({
172 - subType: lowEn, 175 + // subType: lowEn,
  176 + subType: 'boys',
173 subNav: subNav, 177 subNav: subNav,
174 - active: lowEn === type 178 + active: true
  179 +
  180 + // active: lowEn === type
175 }); 181 });
176 }); 182 });
177 183
@@ -6,9 +6,9 @@ @@ -6,9 +6,9 @@
6 <li style="{{#if bgColor}}background:{{bgColor}}{{/if}}"> 6 <li style="{{#if bgColor}}background:{{bgColor}}{{/if}}">
7 <a href="{{url}}" rel="nofollow" target= "_blank" title="{{title}}"> 7 <a href="{{url}}" rel="nofollow" target= "_blank" title="{{title}}">
8 {{#if @first}} 8 {{#if @first}}
9 - <img src="{{image2 src w=1150 h=450}}" alt="{{title}}-YOHO!BUY有货"> 9 + <img src="{{image2 src w=1125 h=420}}" alt="{{title}}-YOHO!BUY有货">
10 {{^}} 10 {{^}}
11 - <img class="lazy" data-original="{{image2 src w=1150 h=450}}" alt="{{title}}-YOHO!BUY有货"> 11 + <img class="lazy" data-original="{{image2 src w=1125 h=420}}" alt="{{title}}-YOHO!BUY有货">
12 {{/if}} 12 {{/if}}
13 </a> 13 </a>
14 {{# tips}} 14 {{# tips}}
1 { 1 {
2 "name": "yohobuy-node", 2 "name": "yohobuy-node",
3 - "version": "6.9.20", 3 + "version": "6.10.1",
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": {
@@ -44,9 +44,7 @@ if ($.inArray(homePage, ['boys', 'girls', 'kids', 'lifestyle']) > -1) { @@ -44,9 +44,7 @@ if ($.inArray(homePage, ['boys', 'girls', 'kids', 'lifestyle']) > -1) {
44 lazyLoad($('img.lazy')); 44 lazyLoad($('img.lazy'));
45 45
46 if (homePage === 'boys') { 46 if (homePage === 'boys') {
47 - $('.slide-container').slider({  
48 - pagination: '.thumb-pagination'  
49 - }); 47 + $('.slide-container').slider();
50 } else { 48 } else {
51 $('.center-col').slider(); 49 $('.center-col').slider();
52 $('.slide-container').slider(); 50 $('.slide-container').slider();
@@ -42,7 +42,7 @@ var logoAngle = 0, @@ -42,7 +42,7 @@ var logoAngle = 0,
42 loopTime = 500, 42 loopTime = 500,
43 reg = /^[\^\!\+\-\(\)\:\[\]\\\{\}\~\*\?\|\&\;\/]{0,}$/g; 43 reg = /^[\^\!\+\-\(\)\:\[\]\\\{\}\~\*\?\|\&\;\/]{0,}$/g;
44 44
45 -var dataLayer = []; 45 +// var dataLayer = [];
46 46
47 var cartTimer; 47 var cartTimer;
48 48
@@ -127,19 +127,19 @@ handlebars.registerHelper('gt', function(v1, v2, options) { @@ -127,19 +127,19 @@ handlebars.registerHelper('gt', function(v1, v2, options) {
127 } 127 }
128 }); 128 });
129 129
130 -function getSource(column, postition, event) {  
131 - dataLayer.push({  
132 - louceng: column,  
133 - weizhi: postition,  
134 - event: event  
135 - });  
136 -} 130 +// function getSource(column, postition, event) {
  131 +// dataLayer.push({
  132 +// louceng: column,
  133 +// weizhi: postition,
  134 +// event: event
  135 +// });
  136 +// }
137 137
138 -function closeCover() {  
139 - var $cover = $('#cover'); 138 +// function closeCover() {
  139 +// var $cover = $('#cover');
140 140
141 - $cover.remove();  
142 -} 141 +// $cover.remove();
  142 +// }
143 143
144 // 设置头部banner 144 // 设置头部banner
145 function setTopBanner(data) { 145 function setTopBanner(data) {
@@ -816,100 +816,100 @@ $subNav.on({ @@ -816,100 +816,100 @@ $subNav.on({
816 * 首次进入有弹窗 816 * 首次进入有弹窗
817 * @return {[type]} [description] 817 * @return {[type]} [description]
818 */ 818 */
819 -function actionCover() {  
820 - var gender = window.cookie('_Gender');  
821 - var newMask = '';  
822 - var windowheight = '';  
823 - var selfheight = '';  
824 - var containertop;  
825 - var length = '';  
826 -  
827 - if (window.location.href === document.location.protocol + '//www.yohobuy.com/' &&  
828 - (typeof gender === 'undefined' || gender === '' || gender === null)) {  
829 - $.get('/guide', function(data) {  
830 - newMask = document.createElement('div');  
831 - newMask.id = 'cover';  
832 - newMask.innerHTML = data;  
833 - document.body.appendChild(newMask);  
834 - windowheight = $(window).height();  
835 - selfheight = $('.guide-box').height();  
836 - containertop = windowheight / 2 - selfheight / 2;  
837 - length = $('.guide-box .clear').find('li').length;  
838 - $('.guide-box').css({  
839 - width: (200 * length) + 'px',  
840 - top: containertop + 'px'  
841 - });  
842 - $('#cover').bind('click', function() {  
843 - window.setCookie('_Gender', '1,3', {  
844 - path: '/',  
845 - domain: '.yohobuy.com',  
846 - expires: 90  
847 - });  
848 - window.setCookie('_Channel', 'boys', {  
849 - path: '/',  
850 - domain: '.yohobuy.com',  
851 - expires: 7  
852 - });  
853 - closeCover();  
854 - });  
855 - $('#cover .guide-box .close').bind('click', function() {  
856 - getSource('弹窗', 'CLOSE', 'homepage_man');  
857 - window.setCookie('_Gender', '1,3', {  
858 - path: '/',  
859 - domain: '.yohobuy.com',  
860 - expires: 90  
861 - });  
862 - window.setCookie('_Channel', 'boys', {  
863 - path: '/',  
864 - domain: '.yohobuy.com',  
865 - expires: 7  
866 - });  
867 - closeCover();  
868 - });  
869 - $('.boys img , .boys .go').bind('click', function() {  
870 - getSource('弹窗', 'BOYS', 'homepage_man');  
871 - window.setCookie('_Gender', '1,3', {  
872 - path: '/',  
873 - domain: '.yohobuy.com',  
874 - expires: 90  
875 - });  
876 - window.setCookie('_Channel', 'boys', {  
877 - path: '/',  
878 - domain: '.yohobuy.com',  
879 - expires: 7  
880 - });  
881 - closeCover();  
882 - });  
883 - $('.girls img, .girls .go').bind('click', function() {  
884 - getSource('弹窗', 'GIRLS', 'homepage_woman');  
885 - window.setCookie('_Gender', '2,3', {  
886 - path: '/',  
887 - domain: '.yohobuy.com',  
888 - expires: 90  
889 - });  
890 - window.setCookie('_Channel', 'girls', {  
891 - path: '/',  
892 - domain: '.yohobuy.com',  
893 - expires: 7  
894 - });  
895 - });  
896 - $('.lifestyle img, .lifestyle .go').bind('click', function() {  
897 - window.setCookie('_Channel', 'lifestyle', {  
898 - path: '/',  
899 - domain: '.yohobuy.com',  
900 - expires: 7  
901 - });  
902 - getSource('弹窗', 'LIEFSTYLE', 'homepage_lifestyle');  
903 - });  
904 - $('#cover .guide-box').bind('click', function(event) {  
905 - event.stopPropagation();  
906 - });  
907 - });  
908 - $('#cover .guide-box').bind('click', function(e) {  
909 - e.stopPropagation();  
910 - });  
911 - }  
912 -} 819 +// function actionCover() {
  820 +// var gender = window.cookie('_Gender');
  821 +// var newMask = '';
  822 +// var windowheight = '';
  823 +// var selfheight = '';
  824 +// var containertop;
  825 +// var length = '';
  826 +
  827 +// if (window.location.href === document.location.protocol + '//www.yohobuy.com/' &&
  828 +// (typeof gender === 'undefined' || gender === '' || gender === null)) {
  829 +// $.get('/guide', function(data) {
  830 +// newMask = document.createElement('div');
  831 +// newMask.id = 'cover';
  832 +// newMask.innerHTML = data;
  833 +// document.body.appendChild(newMask);
  834 +// windowheight = $(window).height();
  835 +// selfheight = $('.guide-box').height();
  836 +// containertop = windowheight / 2 - selfheight / 2;
  837 +// length = $('.guide-box .clear').find('li').length;
  838 +// $('.guide-box').css({
  839 +// width: (200 * length) + 'px',
  840 +// top: containertop + 'px'
  841 +// });
  842 +// $('#cover').bind('click', function() {
  843 +// window.setCookie('_Gender', '1,3', {
  844 +// path: '/',
  845 +// domain: '.yohobuy.com',
  846 +// expires: 90
  847 +// });
  848 +// window.setCookie('_Channel', 'boys', {
  849 +// path: '/',
  850 +// domain: '.yohobuy.com',
  851 +// expires: 7
  852 +// });
  853 +// closeCover();
  854 +// });
  855 +// $('#cover .guide-box .close').bind('click', function() {
  856 +// getSource('弹窗', 'CLOSE', 'homepage_man');
  857 +// window.setCookie('_Gender', '1,3', {
  858 +// path: '/',
  859 +// domain: '.yohobuy.com',
  860 +// expires: 90
  861 +// });
  862 +// window.setCookie('_Channel', 'boys', {
  863 +// path: '/',
  864 +// domain: '.yohobuy.com',
  865 +// expires: 7
  866 +// });
  867 +// closeCover();
  868 +// });
  869 +// $('.boys img , .boys .go').bind('click', function() {
  870 +// getSource('弹窗', 'BOYS', 'homepage_man');
  871 +// window.setCookie('_Gender', '1,3', {
  872 +// path: '/',
  873 +// domain: '.yohobuy.com',
  874 +// expires: 90
  875 +// });
  876 +// window.setCookie('_Channel', 'boys', {
  877 +// path: '/',
  878 +// domain: '.yohobuy.com',
  879 +// expires: 7
  880 +// });
  881 +// closeCover();
  882 +// });
  883 +// $('.girls img, .girls .go').bind('click', function() {
  884 +// getSource('弹窗', 'GIRLS', 'homepage_woman');
  885 +// window.setCookie('_Gender', '2,3', {
  886 +// path: '/',
  887 +// domain: '.yohobuy.com',
  888 +// expires: 90
  889 +// });
  890 +// window.setCookie('_Channel', 'girls', {
  891 +// path: '/',
  892 +// domain: '.yohobuy.com',
  893 +// expires: 7
  894 +// });
  895 +// });
  896 +// $('.lifestyle img, .lifestyle .go').bind('click', function() {
  897 +// window.setCookie('_Channel', 'lifestyle', {
  898 +// path: '/',
  899 +// domain: '.yohobuy.com',
  900 +// expires: 7
  901 +// });
  902 +// getSource('弹窗', 'LIEFSTYLE', 'homepage_lifestyle');
  903 +// });
  904 +// $('#cover .guide-box').bind('click', function(event) {
  905 +// event.stopPropagation();
  906 +// });
  907 +// });
  908 +// $('#cover .guide-box').bind('click', function(e) {
  909 +// e.stopPropagation();
  910 +// });
  911 +// }
  912 +// }
913 913
914 window.submitSearch = submitSearch; 914 window.submitSearch = submitSearch;
915 915
@@ -988,6 +988,6 @@ $(function() { @@ -988,6 +988,6 @@ $(function() {
988 }); 988 });
989 }); 989 });
990 990
991 -actionCover(); 991 +// actionCover(); //首次进入去除弹框
992 actionAddKeyWords(); 992 actionAddKeyWords();
993 993
@@ -6,7 +6,7 @@ @@ -6,7 +6,7 @@
6 position: absolute; 6 position: absolute;
7 left: 0; 7 left: 0;
8 right: 0; 8 right: 0;
9 - height: 450px; 9 + height: 430px;
10 } 10 }
11 11
12 .slide-thumb-container { 12 .slide-thumb-container {
@@ -15,7 +15,7 @@ @@ -15,7 +15,7 @@
15 15
16 .slide-wrapper { 16 .slide-wrapper {
17 position: relative; 17 position: relative;
18 - height: 450px; 18 + height: 430px;
19 overflow: hidden; 19 overflow: hidden;
20 20
21 ul { 21 ul {
@@ -54,7 +54,7 @@ @@ -54,7 +54,7 @@
54 } 54 }
55 55
56 .slide-container-placeholder { 56 .slide-container-placeholder {
57 - height: 450px; 57 + height: 430px;
58 width: 100%; 58 width: 100%;
59 } 59 }
60 60
@@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
4 4
5 /* 大banner */ 5 /* 大banner */
6 .slide-container { 6 .slide-container {
7 - height: 387px; 7 + height: 370px;
8 8
9 img { 9 img {
10 display: block; 10 display: block;
@@ -16,7 +16,7 @@ @@ -16,7 +16,7 @@
16 } 16 }
17 17
18 .slide-container-placeholder { 18 .slide-container-placeholder {
19 - height: 387px; 19 + height: 370px;
20 } 20 }
21 21
22 .slide-thumb-container-placeholder { 22 .slide-thumb-container-placeholder {
@@ -25,7 +25,7 @@ @@ -25,7 +25,7 @@
25 25
26 /* 大banner大图 */ 26 /* 大banner大图 */
27 .slide-wrapper { 27 .slide-wrapper {
28 - height: 387px; 28 + height: 370px;
29 29
30 li { 30 li {
31 a { 31 a {