Authored by 郭成尧

已选筛选条件处理

... ... @@ -2,7 +2,7 @@
* @Author: Targaryen
* @Date: 2016-05-25 18:16:59
* @Last Modified by: Targaryen
* @Last Modified time: 2016-05-31 14:50:37
* @Last Modified time: 2016-05-31 16:55:37
*/
'use strict';
... ... @@ -112,11 +112,115 @@ const handleFilterUrl = (originParam, newParam) => {
};
/**
* 处理最新降价折扣信息
* @return {[type]} [description]
*/
const handleSaleNewSaleSortData = (params) => {
var dest;
dest = [{
name: '1~3折',
href: handleFilterUrl(params, { p_d: '0.1,0.3' }),
checked: (params.p_d === '0.1,0.3') ? true : false
}, {
name: '4~6折',
href: handleFilterUrl(params, { p_d: '0.4,0.6' }),
checked: (params.p_d === '0.4,0.6') ? true : false
}, {
name: '7折以上',
href: handleFilterUrl(params, { p_d: '0.7,1' }),
checked: (params.p_d === '0.7,1') ? true : false
}];
return dest;
};
/**
* 处理选中数据
* @param {[type]} origin [description]
* @return {[type]} [description]
*/
const handleCheckedData = (params, origin, param) => {
var dest = [];
// 品牌选中数据
if (!_.isEmpty(origin)) {
_.forEach(origin, (value) => {
if (value.checked) {
let checked = {};
checked.name = value.name;
let tempParam = {};
tempParam[param] = '';
checked.href = handleFilterUrl(params, tempParam);
dest.push(checked);
}
});
}
return dest;
};
/**
* 处理断码区分类筛选数据
* @return {[type]} [description]
*/
const handleSalebreakingYardsSortData = (origin, params) => {
var dest = [];
if (!_.isEmpty(params.sort)) {
// 是否有分类筛选参数,如果有
_.forEach(params.sort.split(','), function(sortParam) {
_.forEach(origin, function(value) {
// 判断是否在这组数据里面
if (!_.isEmpty(_.find(value.sort_id.split(','), o => {
return o === sortParam;
}))) {
// 如果在某组数据里面,组合数据退出循环
_.forEach(value.sub, function(subValue) {
let size = {};
size.checked =
(parseInt(params.size, 10) === parseInt(subValue.size_id, 10)) ? true : false;
size.href = handleFilterUrl(params, { size: subValue.size_id });
size.name = subValue.size_name;
dest.push(size);
});
return false;
}
});
});
} else { // 如果没有筛选参数,返回所有分类
_.forEach(origin, function(value) {
_.forEach(value.sub, function(subValue) {
let size = {};
size.checked = (parseInt(params.size, 10) === parseInt(subValue.size_id, 10)) ? true : false;
size.href = handleFilterUrl(params, { size: subValue.size_id });
size.name = subValue.size_name;
dest.push(size);
});
});
}
return _.uniqWith(dest, _.isEqual);
};
/**
* 处理筛选数据
* @param {[type]} origin [description]
* @return {[type]} [description]
*/
exports.handleSaleFilterData = (origin, params) => {
var dest = {};
dest.brand = {};
... ... @@ -131,6 +235,10 @@ exports.handleSaleFilterData = (origin, params) => {
dest.brand.showMore = true;
dest.brand.showMulti = true;
dest.checkedConditions = {};
dest.checkedConditions.conditions = [];
// 品牌索引数据处理
dest.brand.brandIndex = [];
... ... @@ -158,7 +266,7 @@ exports.handleSaleFilterData = (origin, params) => {
_.forEach(origin.brand, function(value) {
let brand = {};
brand.checked = false;
brand.checked = (parseInt(params.brand, 10) === parseInt(value.id, 10)) ? true : false;
brand.href = handleFilterUrl(params, { brand: value.id });
brand.name = value.brand_name;
brand.key = value.brand_domain;
... ... @@ -189,7 +297,7 @@ exports.handleSaleFilterData = (origin, params) => {
if (!_.isEmpty(origin.priceRange)) {
_.forEach(origin.priceRange, function(value, key) {
let price = {
checked: false,
checked: (params.price === key) ? true : false,
href: handleFilterUrl(params, { price: key }),
name: value
};
... ... @@ -207,8 +315,43 @@ exports.handleSaleFilterData = (origin, params) => {
dest.channel[0].name = '男生';
dest.channel[0].href = handleFilterUrl(params, { gender: '1,3' });
dest.channel[0].checked = (params.gender === '1,3') ? true : false;
dest.channel[1].name = '女生';
dest.channel[1].href = handleFilterUrl(params, { gender: '2,3' });
dest.channel[1].checked = (params.gender === '2,3') ? true : false;
// 最新降价数据处理
if (parseInt(params.saleType, 10) === 3) {
dest.discount = handleSaleNewSaleSortData(params);
// 最新降价筛选数据处理
dest.checkedConditions.conditions = _.union(dest.checkedConditions.conditions,
handleCheckedData(params, dest.discount, 'p_d'));
}
// 断码区尺码数据处理
if (!_.isEmpty(origin.size)) {
dest.size = handleSalebreakingYardsSortData(origin.size, params);
// 最新降价筛选数据处理
dest.checkedConditions.conditions = _.union(dest.checkedConditions.conditions,
handleCheckedData(params, dest.size, 'size'));
}
// 清除所有选中数据
dest.checkedConditions.clearUrl = '?';
// 处理频道筛选数据
dest.checkedConditions.conditions = _.union(dest.checkedConditions.conditions,
handleCheckedData(params, dest.channel, 'gender'));
// 处理品牌筛选数据
dest.checkedConditions.conditions = _.union(dest.checkedConditions.conditions,
handleCheckedData(params, dest.brand.brandsShow, 'brand'));
// 处理价格筛选数据
dest.checkedConditions.conditions = _.union(dest.checkedConditions.conditions,
handleCheckedData(params, dest.price, 'price'));
return dest;
};
... ... @@ -320,78 +463,6 @@ exports.handleSaleSortData = (origin, params) => {
};
/**
* 处理断码区分类筛选数据
* @return {[type]} [description]
*/
exports.handleSalebreakingYardsSortData = (origin, params) => {
var dest = [];
if (!_.isEmpty(params.sort)) {
// 是否有分类筛选参数,如果有
_.forEach(params.sort.split(','), function(sortParam) {
_.forEach(origin, function(value) {
// 判断是否在这组数据里面
if (!_.isEmpty(_.find(value.sort_id.split(','), o => {
return o === sortParam;
}))) {
// 如果在某组数据里面,组合数据退出循环
_.forEach(value.sub, function(subValue) {
let size = {};
size.checked = false;
size.href = handleFilterUrl(params, { size: subValue.size_id });
size.name = subValue.size_name;
dest.push(size);
});
return false;
}
});
});
} else { // 如果没有筛选参数,返回所有分类
_.forEach(origin, function(value) {
_.forEach(value.sub, function(subValue) {
let size = {};
size.checked = false;
size.href = handleFilterUrl(params, { size: subValue.size_id });
size.name = subValue.size_name;
dest.push(size);
});
});
}
return _.uniqWith(dest, _.isEqual);
};
/**
* 处理最新降价折扣信息
* @return {[type]} [description]
*/
exports.handleSaleNewSaleSortData = (params) => {
var dest;
dest = [{
name: '1~3折',
href: handleFilterUrl(params, { p_d: '0.1,0.3' }),
checked: false
}, {
name: '4~6折',
href: handleFilterUrl(params, { p_d: '0.4,0.6' }),
checked: false
}, {
name: '7折以上',
href: handleFilterUrl(params, { p_d: '0.7,1' }),
checked: false
}];
return dest;
};
/**
* 处理折扣专区活动数据
* @param {[type]} origin [description]
* @return {[type]} [description]
... ...
... ... @@ -2,7 +2,7 @@
* @Author: Targaryen
* @Date: 2016-05-19 10:20:08
* @Last Modified by: Targaryen
* @Last Modified time: 2016-05-31 14:47:46
* @Last Modified time: 2016-05-31 16:53:44
*/
'use strict';
... ... @@ -98,6 +98,7 @@ exports.getSaleOthersData = (params) => {
// 处理排序数据
finalResult.opts = saleHandler.handleSaleOptsData(params, result[0].data.total);
finalResult.totalCount = result[0].data.total;
}
// 获取焦点图数据
... ... @@ -120,10 +121,6 @@ exports.getSaleOthersData = (params) => {
if (result[3].code === 200) {
finalResult.userData = result[3].data;
}
} else {
// 处理最新降价折扣信息
finalResult.filters.discount = saleHandler.handleSaleNewSaleSortData(params);
}
return finalResult;
... ... @@ -135,7 +132,6 @@ exports.getSaleOthersData = (params) => {
* @return {[type]} [description]
*/
exports.getSaleDiscountData = (params) => {
console.log(params);
return api.all([
saleApi.getSaleGoodsList(params),
saleApi.getSaleBannerList('7c2b77093421efa8ae9302c91460db73'),
... ... @@ -180,16 +176,22 @@ exports.getSalebreakingYardsData = (params) => {
]).then(result => {
let finalResult = {};
if (result[0].code === 200) {
if (result[0].code === 200 && result[1].code === 200) {
finalResult.goods = productProcess.processProductList(result[0].data.product_list);
finalResult.filters = saleHandler.handleSaleFilterData(result[0].data.filter, params);
// 这边整合了尺码数据处理
finalResult.filters = saleHandler.handleSaleFilterData(
Object.assign(result[0].data.filter, { size: result[1].data }),
params);
finalResult.opts = saleHandler.handleSaleOptsData(params, result[0].data.total);
finalResult.totalCount = result[0].data.total;
}
if (result[1].code === 200) {
finalResult.filters.size = saleHandler.handleSalebreakingYardsSortData(result[1].data, params);
}
// 尺码数据
// if (result[1].code === 200) {
// finalResult.filters.size = saleHandler.handleSalebreakingYardsSortData(result[1].data, params);
// }
if (result[2].code === 200) {
finalResult.topBanner = saleHandler.handleSaleBannerData(result[2].data);
... ...