Authored by 王水玲

星潮教室

... ... @@ -27,9 +27,9 @@ const headTab = [
}
];
const processPublicData = (req, title) => {
const processPublicData = (req, title, navBtn) => {
let channel = req.query.channel || req.cookies._Channel || 'boys';
let headerData = headerModel.setNavHeader(title, channel);
let headerData = headerModel.setNavHeader(title, channel, '', '', navBtn);
let renderData = {
module: 'guang',
title: title,
... ... @@ -154,7 +154,7 @@ exports.detail = (req, res) => {
res.render('star/detail', _.assign({
isStarDetailPage: true,
page: 'detail-list'
}, processPublicData(req, req.query.tag)));
}, processPublicData(req, req.query.tag, false)));
};
/**
... ...
... ... @@ -21,210 +21,213 @@ const contentCode = {
special: '89cc20483ee2cbc8a716dcfe2b6c7603'
};
/**
* 获取资源位数据
* @param {[string]} page
* @return {[array]}
*/
const getResources = (page) => {
return serviceAPI.get('operations/api/v5/resource/get', sign.apiSign({
content_code: contentCode[page]
})).then((result) => {
if (result && result.code === 200) {
return resourcesProcess(result.data);
} else {
logger.error('星潮教室页面资源位返回 code 不是 200');
return [];
}
});
};
class Star {
/**
* 获取资源位数据
* @param {[string]} page
* @return {[array]}
*/
static getResources(page) {
return serviceAPI.get('operations/api/v5/resource/get', sign.apiSign({
content_code: contentCode[page]
})).then((result) => {
if (result && result.code === 200) {
return resourcesProcess(result.data);
} else {
logger.error('星潮教室页面资源位返回 code 不是 200');
return [];
}
});
}
/**
* 星潮教室首页数据处理
* @param {[array]} list
* @return {[array]}
*/
static processIndexData(list) {
const formatData = {
ads: [],
starAvatar: [],
articles: []
};
/**
* 星潮教室首页数据处理
* @param {[array]} list
* @return {[array]}
*/
const processIndexData = (list) => {
const formatData = {
ads: [],
starAvatar: [],
articles: []
};
list = list || {};
list = camelCase(list);
// 首页资源位数据处理
_.forEach(list.ads.data, (data) => {
formatData.ads.push({
src: data.src,
url: data.url
list = list || {};
list = camelCase(list);
// 首页资源位数据处理
_.forEach(list.ads.data, (data) => {
formatData.ads.push({
src: data.src,
url: data.url
});
});
});
// 首页明星文章数据处理
_.forEach(list.list, (data) => {
const avatar = {
tags: []
};
// 首页明星文章数据处理
_.forEach(list.list, (data) => {
const avatar = {
tags: []
};
if (data.ext.tags.length > 1) {
avatar.isSwiper = true;
}
if (data.ext.tags.length > 1) {
avatar.isSwiper = true;
}
_.forEach(data.ext.tags, (tags) => {
avatar.tags.push({
avatarUrl: `/guang/star/detail?tag=${tags.tagName}`,
cover: tags.cover,
tagName: tags.tagName
_.forEach(data.ext.tags, (tags) => {
avatar.tags.push({
avatarUrl: `/guang/star/detail?tag=${tags.tagName}`,
cover: tags.cover,
tagName: tags.tagName
});
});
formatData.articles.push(_.merge({
id: data.id,
url: data.url,
title: data.title,
articeTxt: data.intro,
src: data.src,
publishTime: helpers.dateFormat('MM月DD日 hh:mm', data.publishTime),
viewsNum: data.viewsNum
}, avatar));
});
formatData.articles.push(_.merge({
id: data.id,
url: data.url,
title: data.title,
articeTxt: data.intro,
src: data.src,
publishTime: helpers.dateFormat('MM月DD日 hh:mm', data.publishTime),
viewsNum: data.viewsNum
}, avatar));
});
// 首页明星头像数据处理
_.forEach(list.tags, (data) => {
let url = `/guang/star/detail?tag=${data.tagName}`;
formatData.starAvatar.push({
url: url,
cover: data.cover
// 首页明星头像数据处理
_.forEach(list.tags, (data) => {
let url = `/guang/star/detail?tag=${data.tagName}`;
formatData.starAvatar.push({
url: url,
cover: data.cover
});
});
});
return formatData;
};
return formatData;
}
/**
* 明星专题列表数据处理
* @param {[array]} list
* @return {[array]}
*/
const processDetailData = (list) => {
const formatData = [];
/**
* 明星专题列表数据处理
* @param {[array]} list
* @return {[array]}
*/
static processDetailData(list) {
const formatData = [];
list = list || [];
list = camelCase(list);
list = list || [];
list = camelCase(list);
_.forEach(list, (data) => {
data.publishTime = helpers.dateFormat('MM月DD日 hh:mm', data.publishTime);
formatData.push(data);
});
_.forEach(list, (data) => {
data.publishTime = helpers.dateFormat('MM月DD日 hh:mm', data.publishTime);
formatData.push(data);
});
return formatData;
};
return formatData;
}
/**
* 星搭配文章列表数据处理
*/
const processCollocationData = (list) => {
const formatData = [];
/**
* 星搭配文章列表数据处理
*/
static processCollocationData(list) {
const formatData = [];
list = list || [];
list = camelCase(list);
list = list || [];
list = camelCase(list);
_.forEach(list, (data) => {
if (data.isFavor === 'N') {
data.isCollected = false;
} else {
data.isCollected = true;
}
formatData.push(data);
});
_.forEach(list, (data) => {
if (data.isFavor === 'N') {
data.isCollected = false;
} else {
data.isCollected = true;
}
formatData.push(data);
});
return formatData;
};
return formatData;
}
/**
* 星潮首页
*/
exports.getIndexData = () => {
return api.get('', sign.apiSign({
method: 'app.starClass.index',
code: '8adc27fcf5676f356602889afcfd2a8e'
})).then((result) => {
if (result && result.code === 200) {
return processIndexData(result.data);
} else {
logger.error('星潮教室首页数据返回 code 不是 200');
return {};
}
});
};
/**
* 星潮首页
*/
static getIndexData() {
return api.get('', sign.apiSign({
method: 'app.starClass.index',
code: '8adc27fcf5676f356602889afcfd2a8e'
})).then((result) => {
if (result && result.code === 200) {
return Star.processIndexData(result.data);
} else {
logger.error('星潮教室首页数据返回 code 不是 200');
return {};
}
});
}
/**
* 明星专题
*/
exports.getDetailData = (params) => {
return api.get('', sign.apiSign({
method: 'app.starClass.lastTagArticle',
tag: params.tag,
page: params.page || 1,
size: 10
})).then((result) => {
if (result && result.code === 200) {
if (params.page > result.data.totalPage) {
return '';
/**
* 明星专题
*/
static getDetailData(params) {
return api.get('', sign.apiSign({
method: 'app.starClass.lastTagArticle',
tag: params.tag,
page: params.page || 1,
size: 10
})).then((result) => {
if (result && result.code === 200) {
if (params.page > result.data.totalPage) {
return '';
} else {
return Star.processDetailData(result.data.list);
}
} else {
return processDetailData(result.data.list);
logger.error('明星专题文章数据返回 code 不是 200');
return [];
}
} else {
logger.error('明星专题文章数据返回 code 不是 200');
return [];
}
});
};
});
}
/**
* 星专题
*/
exports.getSpecialData = () => {
return getResources('special');
};
/**
* 星专题
*/
static getSpecialData() {
return Star.getResources('special');
}
/**
* 星搭配
*/
exports.getCollocationListData = (params, uid) => {
return serviceAPI.get('guang/api/v5/article/getStarClassroomArticleList', sign.apiSign(Object.assign({
limit: '20',
uid: uid
}, params))).then((result) => {
if (result && result.code === 200) {
return processCollocationData(result.data.list.artList);
} else {
logger.error('获取星搭配文章列表返回 code 不是 200');
return [];
/**
* 星搭配
*/
static getCollocationListData(params, uid) {
return serviceAPI.get('guang/api/v5/article/getStarClassroomArticleList', sign.apiSign(Object.assign({
limit: '20',
uid: uid
}, params))).then((result) => {
if (result && result.code === 200) {
return Star.processCollocationData(result.data.list.artList);
} else {
logger.error('获取星搭配文章列表返回 code 不是 200');
return [];
}
});
}
static setFavorite(params, uid) {
if (!uid) {
return Promise.resolve({
code: 401,
message: '未登录'
});
}
});
};
exports.setFavorite = (params, uid) => {
if (!uid) {
return Promise.resolve({
code: 401,
message: '未登录'
});
return api.get('', sign.apiSign({
method: params.type === 'del' ? 'app.sns.cancelFavorBackCount' : 'app.sns.setFavorBackCount',
client_type: 'h5',
article_id: params.articleId,
uid: uid
}));
}
}
return api.get('', sign.apiSign({
method: params.type === 'del' ? 'app.sns.cancelFavorBackCount' : 'app.sns.setFavorBackCount',
client_type: 'h5',
article_id: params.articleId,
uid: uid
}));
};
module.exports = Star;
\ No newline at end of file
... ...
... ... @@ -11,14 +11,12 @@
<div class="count-area">
<span class="time"><i class="iconfont time-ico">&#xe603;</i>{{publishTime}}</span>
<span class="see"><i class="iconfont see-ico">&#xe602;</i>{{viewsNum}}</span>
<span class="collection"><i class="iconfont collected-ico {{#isCollected}} collected {{/isCollected}}">&#xe605;</i></span>
{{#if isApp}}
{{#if ../isApp}}
{{#if share.url}}
<a href="{{share.url}}" class="iconfont forward">&#xe600;</a>
{{/if}}
{{/if}}
<span class="collection"><i class="iconfont collected-ico {{#isCollected}} collected {{/isCollected}}">&#xe605;</i></span>
</div>
</div>
</li>
... ...
... ... @@ -44,7 +44,7 @@ $(function() {
location.reload();
},
pullUp: function() {
$headTab.slideUp();
// $headTab.slideUp();
}
});
... ... @@ -63,6 +63,7 @@ $(function() {
// transfrom: 'scale(' + scale + ')'
// });
// });
starIScroll.iScroll.on('scrollEnd', function() {
$window.trigger('scroll');
... ...
... ... @@ -51,6 +51,8 @@
display: inline-block;
margin-right: 5px;
font-size: 24px;
position: relative;
top: -2px;
}
}
... ... @@ -74,8 +76,7 @@
}
.collection {
position: absolute;
right: 122px;
float: right;
}
.collected-ico {
... ... @@ -91,8 +92,7 @@
.forward {
width: 40px;
height: 28px;
position: absolute;
right: 23px;
float: right;
margin-left: 45px;
font-size: 24px;
color: #b0b0b0;
... ...