Authored by 王水玲

星潮优化

@@ -190,8 +190,9 @@ exports.detail = (req, res) => { @@ -190,8 +190,9 @@ exports.detail = (req, res) => {
190 */ 190 */
191 exports.detailList = (req, res, next) => { 191 exports.detailList = (req, res, next) => {
192 let params = req.query; 192 let params = req.query;
  193 + let uid = req.cookies.guangStarUid || 0;
193 194
194 - starModel.getDetailData(params).then((result) => { 195 + starModel.getDetailData(params, uid).then((result) => {
195 res.render('star/list', _.assign({ 196 res.render('star/list', _.assign({
196 layout: false, 197 layout: false,
197 params: params, 198 params: params,
@@ -78,7 +78,7 @@ const _processIndexData = (list) => { @@ -78,7 +78,7 @@ const _processIndexData = (list) => {
78 _.forEach(data.ext.tags, (tags) => { 78 _.forEach(data.ext.tags, (tags) => {
79 avatar.tags.push({ 79 avatar.tags.push({
80 avatarUrl: `/guang/star/detail?tag=${tags.tagName}&openby:yohobuy{"action":"go.h5","params":{"id":"","share":"","shareparam":{},"islogin":"N","type":0,"updateflag":"N","url":"http://m.yohobuy.com/guang/star/detail","param":{"tag":"${tags.tagName}"}}}`, // eslint-disable-line 80 avatarUrl: `/guang/star/detail?tag=${tags.tagName}&openby:yohobuy{"action":"go.h5","params":{"id":"","share":"","shareparam":{},"islogin":"N","type":0,"updateflag":"N","url":"http://m.yohobuy.com/guang/star/detail","param":{"tag":"${tags.tagName}"}}}`, // eslint-disable-line
81 - cover: tags.cover ? (tags.cover + '?imageView2/2/w/104/h/104') : tags.cover, 81 + cover: tags.cover ? (tags.cover + '?imageView2/2/w/104/h/104/q/80') : tags.cover,
82 tagName: tags.tagName 82 tagName: tags.tagName
83 }); 83 });
84 }); 84 });
@@ -103,7 +103,7 @@ const _processIndexData = (list) => { @@ -103,7 +103,7 @@ const _processIndexData = (list) => {
103 103
104 formatData.starAvatar.push({ 104 formatData.starAvatar.push({
105 url: url, 105 url: url,
106 - cover: data.cover ? (data.cover + '?imageView2/2/w/180/h/180') : data.cover 106 + cover: data.cover ? (data.cover + '?imageView2/2/w/180/h/180/q/80') : data.cover
107 }); 107 });
108 }); 108 });
109 } 109 }
@@ -111,41 +111,24 @@ const _processIndexData = (list) => { @@ -111,41 +111,24 @@ const _processIndexData = (list) => {
111 return formatData; 111 return formatData;
112 }; 112 };
113 113
  114 +
114 /** 115 /**
115 - * 明星专题列表数据处理 116 + * 明星专题列表及星搭配数据处理
116 * @param {[array]} list 117 * @param {[array]} list
  118 + * @param {[boolean]} flag 明星专题列表需要转换下日期格式
117 * @return {[array]} 119 * @return {[array]}
118 */ 120 */
119 -const _processDetailData = (list) => { 121 +const _processGuangData = (list, flag) => {
120 const formatData = []; 122 const formatData = [];
121 123
122 list = list || []; 124 list = list || [];
123 list = camelCase(list); 125 list = camelCase(list);
124 126
125 _.forEach(list, (data, key) => { 127 _.forEach(list, (data, key) => {
126 - data.publishTime = helpers.dateFormat('MM月DD日 hh:mm', data.publishTime);  
127 -  
128 - if (key < 4) {  
129 - data.islazy = true; 128 + if (flag) {
  129 + data.publishTime = helpers.dateFormat('MM月DD日 hh:mm', data.publishTime);
130 } 130 }
131 131
132 - formatData.push(data);  
133 - });  
134 -  
135 - return formatData;  
136 -};  
137 -  
138 -  
139 -/**  
140 - * 星搭配文章列表数据处理  
141 - */  
142 -const _processCollocationData = (list) => {  
143 - const formatData = [];  
144 -  
145 - list = list || [];  
146 - list = camelCase(list);  
147 -  
148 - _.forEach(list, (data, key) => {  
149 if (data.isFavor === 'N') { 132 if (data.isFavor === 'N') {
150 data.isCollected = false; 133 data.isCollected = false;
151 } else { 134 } else {
@@ -155,8 +138,10 @@ const _processCollocationData = (list) => { @@ -155,8 +138,10 @@ const _processCollocationData = (list) => {
155 if (key < 4) { 138 if (key < 4) {
156 data.islazy = true; 139 data.islazy = true;
157 } 140 }
  141 +
158 formatData.push(data); 142 formatData.push(data);
159 }); 143 });
  144 +
160 return formatData; 145 return formatData;
161 }; 146 };
162 147
@@ -181,19 +166,20 @@ const getIndexData = () => { @@ -181,19 +166,20 @@ const getIndexData = () => {
181 /** 166 /**
182 * 明星专题 167 * 明星专题
183 */ 168 */
184 -const getDetailData = (params) => { 169 +const getDetailData = (params, uid) => {
185 return api.get('', sign.apiSign({ 170 return api.get('', sign.apiSign({
186 method: 'app.starClass.lastTagArticle', 171 method: 'app.starClass.lastTagArticle',
187 tag: params.tag, 172 tag: params.tag,
188 page: params.page || 1, 173 page: params.page || 1,
189 size: 10, 174 size: 10,
  175 + uid: uid,
190 client_type: 'iphone' 176 client_type: 'iphone'
191 })).then((result) => { 177 })).then((result) => {
192 if (result && result.code === 200) { 178 if (result && result.code === 200) {
193 if (params.page > result.data.totalPage) { 179 if (params.page > result.data.totalPage) {
194 return ''; 180 return '';
195 } else { 181 } else {
196 - return _processDetailData(result.data.list); 182 + return _processGuangData(result.data.list, true);
197 } 183 }
198 } else { 184 } else {
199 logger.error('明星专题文章数据返回 code 不是 200'); 185 logger.error('明星专题文章数据返回 code 不是 200');
@@ -236,7 +222,7 @@ const getCollocationListData = (params, uid) => { @@ -236,7 +222,7 @@ const getCollocationListData = (params, uid) => {
236 uid: uid 222 uid: uid
237 }, params))).then((result) => { 223 }, params))).then((result) => {
238 if (result && result.code === 200) { 224 if (result && result.code === 200) {
239 - return _processCollocationData(result.data.list.artList); 225 + return _processGuangData(result.data.list.artList);
240 } else { 226 } else {
241 logger.error('获取星搭配文章列表返回 code 不是 200'); 227 logger.error('获取星搭配文章列表返回 code 不是 200');
242 return []; 228 return [];
@@ -252,18 +238,18 @@ const setFavorite = (params, uid) => { @@ -252,18 +238,18 @@ const setFavorite = (params, uid) => {
252 }); 238 });
253 } 239 }
254 240
255 - return api.get('', sign.apiSign({  
256 - method: params.type === 'del' ? 'app.sns.cancelFavorBackCount' : 'app.sns.setFavorBackCount',  
257 - client_type: 'h5', 241 + let url = params.type === 'del' ? '/guang/api/*/favorite/cancelFavorite' : '/guang/api/*/favorite/setFavorite';
  242 +
  243 + return serviceAPI.get(url, sign.apiSign({
258 article_id: params.articleId, 244 article_id: params.articleId,
259 uid: uid 245 uid: uid
260 })); 246 }));
261 }; 247 };
262 248
263 module.exports = { 249 module.exports = {
264 - getIndexData: getIndexData,  
265 - getSpecialData: getSpecialData,  
266 - getCollocationListData: getCollocationListData,  
267 - setFavorite: setFavorite,  
268 - getDetailData: getDetailData 250 + getIndexData,
  251 + getSpecialData,
  252 + getCollocationListData,
  253 + setFavorite,
  254 + getDetailData
269 }; 255 };
@@ -4,9 +4,9 @@ @@ -4,9 +4,9 @@
4 {{#if src}} 4 {{#if src}}
5 <a href="{{url}}"> 5 <a href="{{url}}">
6 {{#if islazy}} 6 {{#if islazy}}
7 - <img src ="{{image src 640 310}}"/> 7 + <img src ="{{image src 640 640}}"/>
8 {{else}} 8 {{else}}
9 - <img class="lazy" src ="" data-original="{{image src 640 310}}" /> 9 + <img class="lazy" src ="" data-original="{{image src 640 640}}" />
10 {{/if}} 10 {{/if}}
11 </a> 11 </a>
12 {{/if}} 12 {{/if}}
@@ -14,7 +14,8 @@ var $ = require('yoho-jquery'), @@ -14,7 +14,8 @@ var $ = require('yoho-jquery'),
14 14
15 var $window = $(window), 15 var $window = $(window),
16 stopLoading = false, 16 stopLoading = false,
17 - $starMain = $('.star-main'); 17 + $starMain = $('.star-main'),
  18 + $headTab = $('.head-tab');
18 19
19 /* 20 /*
20 $swiperView = $('.swiper-view'), 21 $swiperView = $('.swiper-view'),
@@ -91,12 +92,11 @@ function setIndexAction() { @@ -91,12 +92,11 @@ function setIndexAction() {
91 var starIScroll; 92 var starIScroll;
92 93
93 var $loadingTip = $('.loading-tip'), 94 var $loadingTip = $('.loading-tip'),
94 - $avatarWrap = $('.avatar-wrap:not(.avatar-clone)'),  
95 - avatarHeight = $('.avatar').height(); 95 + $avatarWrap = $('.avatar-wrap:not(.avatar-clone)');
96 96
97 // 下拉刷新,上拉加载 97 // 下拉刷新,上拉加载
98 starIScroll = new PullRefresh('.star-wrap', { 98 starIScroll = new PullRefresh('.star-wrap', {
99 - height: $(window).height() - avatarHeight, 99 + height: $(window).height() - $headTab.height(),
100 pullDown: function() { 100 pullDown: function() {
101 if (!stopLoading) { 101 if (!stopLoading) {
102 stopLoading = true; 102 stopLoading = true;
@@ -118,7 +118,7 @@ function setIndexAction() { @@ -118,7 +118,7 @@ function setIndexAction() {
118 }); 118 });
119 119
120 starIScroll.iScroll.on('scroll', function() { 120 starIScroll.iScroll.on('scroll', function() {
121 - if ($avatarWrap.offset().top <= 0) { 121 + if ($avatarWrap.offset().top <= $headTab.height()) {
122 $avatarClone.show(); 122 $avatarClone.show();
123 123
124 if (!avatarSwiperClone) { 124 if (!avatarSwiperClone) {