Authored by chenl

Merge branch '5.4' of http://git.yoho.cn/mobile/YH_RNComponent into 5.4

... ... @@ -78,7 +78,7 @@ export default class Banner extends React.Component {
key={i}
activeOpacity={1}
onPress={() => {
this.props.onPress && this.props.onPress(item.get('url'));
this.props.onPress && this.props.onPress(item.get('url'), i);
}}
>
<SlicedImage source={{uri: item.get('src').replace('{width}', width).replace('{height}', height).replace('{mode}',2)}} style={{width, height}}/>
... ...
... ... @@ -110,18 +110,28 @@ class NewArrivalContainer extends Component {
this.props.actions.setFilterMoreView(false);
}
_onPressCarouselItem(url) {
_onPressCarouselItem(url, index) {
if (!url) {
return;
}
ReactNative.NativeModules.YH_CommonHelper.jumpWithUrl(url);
}
_onPressBanner(url) {
_onPressBanner(url, index) {
if (!url) {
return;
}
ReactNative.NativeModules.YH_CommonHelper.jumpWithUrl(url);
let I_INDEX = parseInt(index) + 1;
let param = {
F_ID: 1,
F_NM: 'BANNER',
F_INDEX: 1,
I_INDEX,
F_URL: url,
}
ReactNative.NativeModules.YH_CommonHelper.logEvent('YB_NEW_ARRIVAL_FLR_C', param);
}
_onPressArticle(url) {
... ...
... ... @@ -38,8 +38,6 @@ export function getTopInfo() {
} = json;
let first_part = [];
let second_part = [];
console.log('aaaaaaa');
console.log(ads);
if (ads&&ads.length) {
for (var i = 0; i < ads.length; i++) {
let {
... ... @@ -60,6 +58,77 @@ export function getTopInfo() {
second_part,
}
dispatch(topInfoSuccess(newJson));
/**
数据曝光
*/
let logData = [];
let F_INDEX = 1;
if (first_part.length) {
let LIST = [];
let I_INDEX = 1;
for (var i = 0; i < first_part.length; i++) {
let IMAGE_URL = first_part[i].src;
let ACTION_URL = first_part[i].url;
LIST.push({
I_INDEX,
IMAGE_URL,
ACTION_URL,
});
I_INDEX ++;
}
logData.push({
F_ID: 1,
F_NM: 'BANNER',
F_INDEX,
LIST,
});
F_INDEX ++;
}
if (shop_list.length) {
let LIST = [];
let I_INDEX = 1;
for (var i = 0; i < shop_list.length; i++) {
let BRAND_ID = shop_list[i].brand_id;
let SHOP_ID = shop_list[i].shops_id;
LIST.push({
I_INDEX,
BRAND_ID,
SHOP_ID,
});
I_INDEX ++;
}
logData.push({
F_ID: 2,
F_NM: '为您推荐',
F_INDEX,
LIST,
});
F_INDEX ++;
}
if (second_part.length) {
let LIST = [];
let I_INDEX = 1;
for (var i = 0; i < second_part.length; i++) {
let IMAGE_URL = second_part[i].src;
let ACTION_URL = second_part[i].url;
LIST.push({
I_INDEX,
IMAGE_URL,
ACTION_URL,
});
I_INDEX ++;
}
logData.push({
F_ID: 3,
F_NM: '精选抢先看',
F_INDEX,
LIST,
});
F_INDEX ++;
}
dispatch(newArrivalExposure(logData));
})
.catch(error => {
dispatch(topInfoFailure(error));
... ... @@ -93,7 +162,7 @@ export function topInfoFailure(error) {
export function getProductList(reload=false) {
return (dispatch, getState) => {
let {app, newArrival} = getState();
let { productList, filterFactors} = newArrival;
let { productList, filterFactors, topPart} = newArrival;
if (reload) {
... ... @@ -125,7 +194,72 @@ export function getProductList(reload=false) {
.then(json => {
let payload = parseProductList(json);
payload.endReached = payload.currentPage == payload.pageCount;
let LIST = [];
for (var i = 0; i < payload.list.length; i++) {
let item = payload.list[i]
let KEYWORD_WORD = '';
if (item.recommend_type == 'hotSearchTerm'&&item.data.length) {
KEYWORD_WORD = item.data.join(',');
}
let SHOP_ID = 0;
if (item.recommend_type == 'hotShop' && item.data.shops_id) {
SHOP_ID = item.data.shops_id;
}
let ARTICLE_ID = 0;
if (item.recommend_type == 'fashionArticle' && item.data.id) {
ARTICLE_ID = item.data.id;
}
let CATE_ID = '';
if (item.recommend_type == 'seasonSort' && item.data.length) {
let tempAry = [];
for (var i = 0; i < item.data.length; i++) {
let {categoryId} = item.data[i];
categoryId = categoryId.toString();
tempAry.push(categoryId);
}
CATE_ID = tempAry.join(',');
}
LIST.push({
I_INDEX: productList.list.size + i + 1,
RECOMMEND_TYPE: item.recommend_type,
PRD_SKN: item.product_skn,
BRAND_ID: item.brand_id,
CATE_ID,
ARTICLE_ID,
SHOP_ID,
KEYWORD_WORD,
})
let F_INDEX = 1;
if (topPart.topList.size) {
F_INDEX ++;
}
if (topPart.brandList.size) {
F_INDEX ++;
}
if (topPart.featuredList.size) {
F_INDEX ++;
}
let SORT_NM = '默认';
if (productList.order == 's_t_desc') {
SORT_NM = '最新';
}
if (productList.order == 's_p_asc' || productList.order == 's_p_desc') {
SORT_NM = '价格';
}
if (productList.order == 'p_d_asc' || productList.order == 'p_d_desc') {
SORT_NM = '折扣';
}
let FILTER_VALUE = JSON.stringify(allFilterFactors);
let logData = [{
F_ID: 4,
F_NM: '最新上架',
F_INDEX,
SORT_NM,
FILTER_VALUE,
LIST,
}];
dispatch(newArrivalExposure(logData));
}
if (payload.currentPage > 1) {
let oldList = productList.list.toJS();
let list = [...oldList, ...payload.list];
... ... @@ -139,6 +273,15 @@ export function getProductList(reload=false) {
};
}
function newArrivalExposure(data) {
return (dispatch, getState) => {
let params = {
DATA: data,
};
ReactNative.NativeModules.YH_CommonHelper.logEvent('YB_SHOW_NEW_ARRIVAL', params);
};
}
export function setFilterView(show) {
return {
type: FILTER_LIST_VIEW,
... ...