Authored by 王水玲

Merge branch 'feature/channel' of http://git.dev.yoho.cn/web/yohobuy-node into feature/channel

... ... @@ -56,5 +56,5 @@ exports.boys = (req, res) => {
showFooterTab: footerTab,
pageFooter: true
}, result));
});
}).catch(console.error);
};
... ...
... ... @@ -7,6 +7,7 @@
const _ = require('lodash');
const API = require('../../../library/api');
const sign = require('../../../library/sign');
const camelCase = require('../../../library/camel-case');
const api = new API();
... ... @@ -23,6 +24,40 @@ const processFloor = (list) => {
};
/**
* 处理侧边栏数据
* @param {[array]} list
* @return {[array]}
*/
const processSideBar = (list) => {
const formatData = [];
let offset = 0; // 分割数组用到的游标
_.forEach(list, (item, i) => {
item = camelCase.listCamelCase(item);
if (item.sub) {
let sub = [];
_.forEach(item.sub, (s) => {
s = camelCase.listCamelCase(s); // 子菜单键名驼峰化
sub.push(s);
});
item.sub = sub;
}
// 如果有分隔符,分割数组
if (item.separativeSign === 'Y') {
formatData.push(list.slice(offset, i));
offset = i;
}
});
// 数组被分割剩余的部分
formatData.push(list.slice(offset));
return formatData;
};
/**
* 获取频道页面资源位
*/
const getChannelResource = (gender) => {
... ... @@ -52,26 +87,7 @@ const getLeftNav = (guangChoosed) => {
result = JSON.parse(result);
if (result.code === 200) {
_.forEach(result.data, (item) => {
_.forEach(Object.keys(item), (k) => {
item[_.camelCase(k)] = item[k]; // 下划线变量名转换为驼峰
});
if (item.sub) {
let sub = [];
// 子菜单键名驼峰化
_.forEach(item.sub, (s) => {
_.forEach(Object.keys(s), (key) => {
s[_.camelCase(key)] = s[key]; // 下划线变量名转换为驼峰
});
sub.push(s);
});
item.sub = sub;
}
});
return result.data;
return processSideBar(result.data);
} else {
return result;
}
... ...
<div class="side-nav">
{{#if sideNav}}
{{#sideNav}}
<ul {{#if @first}}class="first"{{/if}}>
{{# sideNav}}
<li class="{{toLowerCase sortNameEn}}">
{{#this}}
<li class="{{lowerCase sortNameEn}}">
{{#if sortUrl}}
<a href="{{sortUrl}}" style="{{#if sortNameColor}}color:{{sortNameColor}};{{/if}}">
{{else}}
... ... @@ -40,7 +40,7 @@
</ul>
{{/ sub}}
</li>
{{/ sideNav}}
{{/this}}
</ul>
{{/if}}
{{/sideNav}}
</div>
... ...
/**
* 对象键名驼峰化
* @author: Bi Kai<kai.bi@yoho.cn>
* @date: 2016/05/09
*/
const _ = require('lodash');
/**
* 对象键值驼峰化(未测试)
* @param {[object]} obj
* @return {[object]}
*/
const camelCase = (obj) => {
_.forEach(obj, (k) => {
obj[_.camelCase(k)] = obj[k]; // 下划线变量名转换为驼峰
});
return obj;
};
/**
* 对象数组,对象键值驼峰化
* @param {[type]} list
* @return {[type]}
*/
const listCamelCase = (list) => {
_.forEach(Object.keys(list), (k) => {
list[_.camelCase(k)] = list[k]; // 下划线变量名转换为驼峰
});
return list;
};
exports.camelCase = camelCase;
exports.listCamelCase = listCamelCase;
... ...
... ... @@ -61,7 +61,8 @@ exports.url = (uri, qs, module) => {
* 大写转小写处理
* @param {[string]} str 转换字符
*/
exports.toLowerCase = (str) => {
exports.lowerCase = (str) => {
str = str || '';
return str.toLowerCase();
};
... ... @@ -69,6 +70,7 @@ exports.toLowerCase = (str) => {
* 小写转大写处理
* @param {[string]} str 转换字符
*/
exports.toUpperCase = (str) => {
exports.upperCase = (str) => {
str = str || '';
return str.toUpperCase();
};
... ...