...
|
...
|
@@ -26,6 +26,11 @@ const HeaderModel = require('../../../doraemon/models/header'); |
|
|
|
|
|
const BLANK_STR = ' ';
|
|
|
|
|
|
//商品详情页的默认头像
|
|
|
const DEFAULT_AVATAR_ICO = 'http://static.yohobuy.com/images/v3/boy.jpg';
|
|
|
|
|
|
const IMAGE_SERVICE_URL = "http://head.static.yhbimg.com/yhb-head/";
|
|
|
|
|
|
var api = new API();
|
|
|
|
|
|
const multiResourcesUrl = {};
|
...
|
...
|
@@ -447,41 +452,41 @@ const getFashionTopGoodsStatus = (uid, showStatus, isBeginSale) => { |
|
|
// 显示获取限购码按钮
|
|
|
switch (showStatus) {
|
|
|
case 1: // 开售前/后,立即分享获得限购码(用户未领取限购码)
|
|
|
{
|
|
|
if (isBeginSale) {
|
|
|
result.buyNow = true;
|
|
|
result.dis = true;
|
|
|
} else {
|
|
|
result.openSoon = true;
|
|
|
result.hasLimitedCode = false;
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
|
case 2: // 开售后,限购码已抢光(用户未领取限购码)
|
|
|
{
|
|
|
{
|
|
|
if (isBeginSale) {
|
|
|
result.buyNow = true;
|
|
|
result.dis = true;
|
|
|
result.limitedCodeSoldOut = true;
|
|
|
result.getLimitedCode = false;
|
|
|
} else {
|
|
|
result.openSoon = true;
|
|
|
result.hasLimitedCode = false;
|
|
|
break;
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
|
case 2: // 开售后,限购码已抢光(用户未领取限购码)
|
|
|
{
|
|
|
result.buyNow = true;
|
|
|
result.dis = true;
|
|
|
result.limitedCodeSoldOut = true;
|
|
|
result.getLimitedCode = false;
|
|
|
result.hasLimitedCode = false;
|
|
|
break;
|
|
|
}
|
|
|
case 3: // 开售后,商品已经售罄
|
|
|
{
|
|
|
result.soldOut = true;
|
|
|
result.getLimitedCode = false;
|
|
|
break;
|
|
|
}
|
|
|
{
|
|
|
result.soldOut = true;
|
|
|
result.getLimitedCode = false;
|
|
|
break;
|
|
|
}
|
|
|
case 4:// 开售后,立即购买(用户已领取限购码)
|
|
|
{
|
|
|
result.buyNow = true;
|
|
|
result.dis = false;
|
|
|
result.hasLimitedCode = true;
|
|
|
if (uid) { // 限购码失效
|
|
|
result.getLimitedCodeDis = true;
|
|
|
}
|
|
|
break;
|
|
|
{
|
|
|
result.buyNow = true;
|
|
|
result.dis = false;
|
|
|
result.hasLimitedCode = true;
|
|
|
if (uid) { // 限购码失效
|
|
|
result.getLimitedCodeDis = true;
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
|
case 5: // 开售前,限购码已被抢光(用户未领取限购码)
|
|
|
result.openSoon = true;
|
|
|
result.hasLimitedCode = true;
|
...
|
...
|
@@ -751,19 +756,19 @@ const detailDataPkg = (origin, uid, vipLevel) => { |
|
|
if (domainBrand.type && domainBrand.shopId) {
|
|
|
switch (parseInt(domainBrand.type)) {
|
|
|
case 1:
|
|
|
{
|
|
|
{
|
|
|
// 多品店不显示
|
|
|
banner = [];
|
|
|
break;
|
|
|
}
|
|
|
banner = [];
|
|
|
break;
|
|
|
}
|
|
|
case 2:
|
|
|
{
|
|
|
{
|
|
|
// TODO:单品店显示新版的店铺banner,item.php 210
|
|
|
let basisData = shopAPI.basisTemplateAsync(domainBrand.shopId);
|
|
|
let basisData = shopAPI.basisTemplateAsync(domainBrand.shopId);
|
|
|
|
|
|
banner.bgImg = basisData.shopTopBanner.banner || banner.bgImg;
|
|
|
break;
|
|
|
}
|
|
|
banner.bgImg = basisData.shopTopBanner.banner || banner.bgImg;
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|
...
|
...
|
@@ -842,15 +847,15 @@ function getDescriptionDataBySizeInfoAsync(sizeInfo) { |
|
|
|
|
|
switch (sizeInfo.productDescBo.gender) {
|
|
|
case 1:
|
|
|
{
|
|
|
sex = '男款';
|
|
|
break;
|
|
|
}
|
|
|
{
|
|
|
sex = '男款';
|
|
|
break;
|
|
|
}
|
|
|
case 2:
|
|
|
{
|
|
|
sex = '女款';
|
|
|
break;
|
|
|
}
|
|
|
{
|
|
|
sex = '女款';
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
description.basic = [];
|
...
|
...
|
@@ -1141,9 +1146,9 @@ function getDetailDataBySizeInfo(sizeInfo) { |
|
|
// 图片换成懒加载方式
|
|
|
const replacePairs = {
|
|
|
'<img src=': '<img class="lazy" src="data:image/gif;base64,R0lGODlhAQABAJEAAAAAAP///93d3f' +
|
|
|
'///yH5BAEAAAMALAAAAAABAAEAAAICVAEAOw==" data-original=',
|
|
|
'///yH5BAEAAAMALAAAAAABAAEAAAICVAEAOw==" data-original=',
|
|
|
'<img border="0" src=': '<img border="0" class="lazy" src="data:image/gif;base64,R0lGODlhAQABAJEAAAAAAP' +
|
|
|
'///93d3f///yH5BAEAAAMALAAAAAABAAEAAAICVAEAOw==" data-original='
|
|
|
'///93d3f///yH5BAEAAAMALAAAAAABAAEAAAICVAEAOw==" data-original='
|
|
|
};
|
|
|
|
|
|
let intro = sizeInfo.productIntroBo.productIntro;
|
...
|
...
|
@@ -1216,25 +1221,25 @@ function getSizeAttrByMaxSortId(maxSortId, sizeList) { |
|
|
switch (maxSortId) {
|
|
|
case 1:
|
|
|
case 2:
|
|
|
{
|
|
|
attributeIds = [3, 4];
|
|
|
break;
|
|
|
}
|
|
|
{
|
|
|
attributeIds = [3, 4];
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
case 3:
|
|
|
{
|
|
|
attributeIds = [6, 10];
|
|
|
break;
|
|
|
}
|
|
|
{
|
|
|
attributeIds = [6, 10];
|
|
|
break;
|
|
|
}
|
|
|
case 6:
|
|
|
{
|
|
|
attributeIds = [13];
|
|
|
break;
|
|
|
}
|
|
|
{
|
|
|
attributeIds = [13];
|
|
|
break;
|
|
|
}
|
|
|
default:
|
|
|
{
|
|
|
attributeIds = [];
|
|
|
}
|
|
|
{
|
|
|
attributeIds = [];
|
|
|
}
|
|
|
}
|
|
|
|
|
|
let sizeInfos = [];
|
...
|
...
|
@@ -1330,7 +1335,44 @@ const getSizeInfoAsync = (productSkn, maxSortId)=> { |
|
|
})();
|
|
|
};
|
|
|
|
|
|
module.exports = (data) => {
|
|
|
/**
|
|
|
* 获取评论
|
|
|
* @param pid
|
|
|
* @param page
|
|
|
* @param size
|
|
|
*/
|
|
|
module.exports.getCommentsAsync = (pid, page, size) => {
|
|
|
return co(function *() {
|
|
|
let commentList = yield detailAPI.getCommentsAsync(pid, page, size);
|
|
|
|
|
|
if (commentList.code && commentList.code === 200) {
|
|
|
return commentList.data.map(value => {
|
|
|
let item = {};
|
|
|
|
|
|
let avatar = DEFAULT_AVATAR_ICO;
|
|
|
|
|
|
if (value.head_ico) {
|
|
|
avatar = `${IMAGE_SERVICE_URL}${_.last(value.head_ico.split('headimg'))}`;
|
|
|
avatar = helpers.image(avatar, 30, 30);
|
|
|
}
|
|
|
|
|
|
item.avatar = avatar;
|
|
|
item.userName = value.nickname;
|
|
|
item.color = value.color_name;
|
|
|
item.size = value.size_name;
|
|
|
item.comment = value.content || '';
|
|
|
item.date = value.create_time;
|
|
|
item.total = value.total;
|
|
|
|
|
|
return item;
|
|
|
});
|
|
|
}
|
|
|
|
|
|
return [];
|
|
|
})();
|
|
|
}
|
|
|
|
|
|
module.exports.showAsync = (data) => {
|
|
|
|
|
|
return co(function * () {
|
|
|
|
...
|
...
|
@@ -1355,8 +1397,8 @@ module.exports = (data) => { |
|
|
|
|
|
// 导航
|
|
|
result.detail.pathNav = _.concat(homeHandle.getHomeChannelNav(data.channel),
|
|
|
navs,
|
|
|
[{name: productInfo.goodsInfo.name}]);
|
|
|
navs,
|
|
|
[{name: productInfo.goodsInfo.name}]);
|
|
|
result.detail.lastWalk = 5;
|
|
|
|
|
|
result.headerData = yield HeaderModel.requestHeaderData();
|
...
|
...
|
|