...
|
...
|
@@ -65,6 +65,7 @@ const { |
|
|
GET_LIVE_COUNT_FAILURE,
|
|
|
|
|
|
UPDATE_MORE_FILTER_SELECTED_ORDER,
|
|
|
FILTER_DATA_SUCCESS,
|
|
|
|
|
|
} = require('../../constants/actionTypes').default;
|
|
|
|
...
|
...
|
@@ -130,35 +131,225 @@ export function setProductListFilter(value) { |
|
|
}
|
|
|
}
|
|
|
|
|
|
export function setFilterData(payload) {
|
|
|
return {
|
|
|
type: FILTER_DATA_SUCCESS,
|
|
|
payload,
|
|
|
}
|
|
|
}
|
|
|
|
|
|
export function setFilterView(show) {
|
|
|
return (dispatch, getState) => {
|
|
|
// console.log('bbbbbb');
|
|
|
// let {app, redBrand} = getState();
|
|
|
// let {filterDataReady, shopId} = redBrand;
|
|
|
// console.log(redBrand.toJS());
|
|
|
// console.log(show);
|
|
|
// console.log(filterDataReady);
|
|
|
// if (!filterDataReady && show) {
|
|
|
// let channel = app.channel;
|
|
|
// return new RedBrandService(app.host).productFilter(shopId, channel)
|
|
|
// .then(json => {
|
|
|
// console.log('ccccc');
|
|
|
// console.log(json);
|
|
|
// })
|
|
|
// .catch(error => {
|
|
|
// console.log('eeeee');
|
|
|
// console.log(error);
|
|
|
// });
|
|
|
// } else {
|
|
|
// console.log('ggggggggß');
|
|
|
|
|
|
let {app, redBrand} = getState();
|
|
|
let {filterDataReady, shopId} = redBrand;
|
|
|
if (!filterDataReady && show) {
|
|
|
let channel = app.channel;
|
|
|
return new RedBrandService(app.host).productFilter(shopId, channel)
|
|
|
.then(json => {
|
|
|
let payload = parseFilterData(json);
|
|
|
dispatch(setFilterData(payload));
|
|
|
dispatch({
|
|
|
type: FILTER_LIST_VIEW,
|
|
|
payload: show
|
|
|
});
|
|
|
})
|
|
|
.catch(error => {
|
|
|
|
|
|
});
|
|
|
} else {
|
|
|
|
|
|
dispatch({
|
|
|
type: FILTER_LIST_VIEW,
|
|
|
payload: show
|
|
|
});
|
|
|
// }
|
|
|
}
|
|
|
};
|
|
|
}
|
|
|
|
|
|
function parseFilterData(json) {
|
|
|
let filter = json && json.filter ? json.filter : {};
|
|
|
let filterCategoryDetailFilterList = {};
|
|
|
let categoryFilterList = [];
|
|
|
|
|
|
if (filter['gender']) {
|
|
|
categoryFilterList.push({
|
|
|
key: 'gender',
|
|
|
name: '性别',
|
|
|
isSelect: true,
|
|
|
});
|
|
|
let genderList = filter['gender'];
|
|
|
let newGenderList =[];
|
|
|
newGenderList.push({
|
|
|
key:'1,2,3',
|
|
|
name: '所有性别',
|
|
|
isSelect: true,
|
|
|
});
|
|
|
for (let gender in genderList) {
|
|
|
if (genderList.hasOwnProperty(gender)) {
|
|
|
newGenderList.push({
|
|
|
key: gender,
|
|
|
name: genderList[gender],
|
|
|
isSelect: false,
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
filterCategoryDetailFilterList.gender;
|
|
|
filterCategoryDetailFilterList.gender = newGenderList;
|
|
|
}
|
|
|
|
|
|
if (filter['group_sort']) {
|
|
|
categoryFilterList.push({
|
|
|
key: 'sort',
|
|
|
name: '品类',
|
|
|
isSelect: false,
|
|
|
});
|
|
|
let sortList = filter['group_sort'];
|
|
|
let newSortList = [];
|
|
|
newSortList.push({
|
|
|
key: '',
|
|
|
name: '所有品类',
|
|
|
isSelect: true,
|
|
|
});
|
|
|
sortList.map((item, i) => {
|
|
|
newSortList.push({
|
|
|
key: item.relation_parameter.sort ? item.relation_parameter.sort : '',
|
|
|
name: item.category_name,
|
|
|
isSelect: false,
|
|
|
})
|
|
|
});
|
|
|
filterCategoryDetailFilterList.sort;
|
|
|
filterCategoryDetailFilterList.sort = newSortList;
|
|
|
}
|
|
|
|
|
|
if (filter['brand']) {
|
|
|
categoryFilterList.push({
|
|
|
key: 'brand',
|
|
|
name: '品牌',
|
|
|
isSelect: false,
|
|
|
});
|
|
|
let brandList = filter['brand'];
|
|
|
let newBrandList = [];
|
|
|
newBrandList.push({
|
|
|
key: '',
|
|
|
name: '所有品牌',
|
|
|
isSelect: true,
|
|
|
});
|
|
|
brandList.map((item, i) => {
|
|
|
newBrandList.push({
|
|
|
key: item.id,
|
|
|
name: item.brand_name,
|
|
|
isSelect: false,
|
|
|
})
|
|
|
});
|
|
|
filterCategoryDetailFilterList.brand;
|
|
|
filterCategoryDetailFilterList.brand = newBrandList;
|
|
|
}
|
|
|
|
|
|
if (filter['color']) {
|
|
|
categoryFilterList.push({
|
|
|
key: 'color',
|
|
|
name: '颜色',
|
|
|
isSelect: false,
|
|
|
});
|
|
|
let colorList = filter['color'];
|
|
|
let newColorList = [];
|
|
|
newColorList.push({
|
|
|
key: '',
|
|
|
name: '所有颜色',
|
|
|
isSelect: true,
|
|
|
});
|
|
|
colorList.map((item, i) => {
|
|
|
newColorList.push({
|
|
|
key: item.color_id,
|
|
|
name: item.color_name,
|
|
|
isSelect: false,
|
|
|
});
|
|
|
});
|
|
|
filterCategoryDetailFilterList.color;
|
|
|
filterCategoryDetailFilterList.color = newColorList;
|
|
|
}
|
|
|
|
|
|
if (filter['size']) {
|
|
|
categoryFilterList.push({
|
|
|
key: 'sizeKey',
|
|
|
name: '尺码',
|
|
|
isSelect: false,
|
|
|
});
|
|
|
let sizeList = filter['size'];
|
|
|
let newSizeList = [];
|
|
|
newSizeList.push({
|
|
|
key: '',
|
|
|
name: '所有尺码',
|
|
|
isSelect: true,
|
|
|
});
|
|
|
sizeList.map((item, i) => {
|
|
|
newSizeList.push({
|
|
|
key: item.size_id,
|
|
|
name: item.size_name,
|
|
|
isSelect: false,
|
|
|
});
|
|
|
});
|
|
|
filterCategoryDetailFilterList.sizeKey;
|
|
|
filterCategoryDetailFilterList.sizeKey = newSizeList;
|
|
|
}
|
|
|
|
|
|
if (filter['priceRange']) {
|
|
|
categoryFilterList.push({
|
|
|
key: 'price',
|
|
|
name: '价格',
|
|
|
isSelect: false,
|
|
|
});
|
|
|
let priceObject = filter['priceRange'];
|
|
|
priceObject = sortListByField(priceObject, 'name'); // 折扣,价格区间,需要排序
|
|
|
let newPriceList = [];
|
|
|
newPriceList.push({
|
|
|
key: '',
|
|
|
name: '所有价格',
|
|
|
isSelect: true,
|
|
|
});
|
|
|
_.forEach(priceObject, (v, k) => {
|
|
|
newPriceList.push({
|
|
|
key: v._key,
|
|
|
name: v._value,
|
|
|
isSelect: false,
|
|
|
});
|
|
|
});
|
|
|
filterCategoryDetailFilterList.price;
|
|
|
filterCategoryDetailFilterList.price = newPriceList;
|
|
|
}
|
|
|
|
|
|
if (filter['discount']) {
|
|
|
categoryFilterList.push({
|
|
|
key: 'p_d',
|
|
|
name: '折扣',
|
|
|
isSelect: false,
|
|
|
});
|
|
|
let p_dObject = filter['discount'];
|
|
|
p_dObject = sortListByField(p_dObject, 'name'); // 折扣,价格区间,需要排序
|
|
|
let newP_dList = [];
|
|
|
newP_dList.push({
|
|
|
key: '',
|
|
|
name: '所有折扣',
|
|
|
isSelect: true,
|
|
|
});
|
|
|
_.forEach(p_dObject, (v, k) => {
|
|
|
newP_dList.push({
|
|
|
key: v._key,
|
|
|
name: v.name,
|
|
|
isSelect: false,
|
|
|
});
|
|
|
});
|
|
|
filterCategoryDetailFilterList.p_d;
|
|
|
filterCategoryDetailFilterList.p_d = newP_dList;
|
|
|
}
|
|
|
|
|
|
return {
|
|
|
categoryFilterList,
|
|
|
filterCategoryDetailFilterList,
|
|
|
};
|
|
|
}
|
|
|
|
|
|
export function setFilterMoreView(show) {
|
|
|
return {
|
|
|
type: FILTER_MORE_VIEW,
|
...
|
...
|
|