Authored by 于良

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

... ... @@ -31,7 +31,7 @@ export default class BLKBrandCell extends React.Component {
img = img.replace('{width}', cellWidth*2).replace('{height}', (cellWidth-10)*2).replace('{mode}',2);
let brandName = rowData.get('brand_name');
return (
<TouchableOpacity style={styles.cell} onPress={()=>{this.props.onPressBrandItem && this.props.onPressBrandItem(rowData.toJS(),false,rowID);}}>
<TouchableOpacity style={styles.cell} onPress={()=>{this.props.onPressBrandItem && this.props.onPressBrandItem(rowData.toJS(),false,rowID,this.props.title);}}>
<Image style={styles.cellImg} source={{uri:img}} resizeMode={'contain'}/>
<Text style={styles.cellTitle}>{brandName}</Text>
</TouchableOpacity>
... ...
... ... @@ -79,7 +79,7 @@ class BrandContainer extends Component {
}
//原生跳转
_onPressBrandItem(data, fromSearch=false,index){
_onPressBrandItem(data, fromSearch=false,index,capital){
//blk品牌跳转需要:如果发现是店铺,全部跳基础店铺。----顺老板。
if (data&&data.type == '2') {
data.is_red_shop == '0';
... ... @@ -121,11 +121,9 @@ class BrandContainer extends Component {
GENDER: gender + '',
FLR_ID:1003,
I_INDEX:_index+'',
SORT_TYPE:capital,
};
// 3.GENDER:男士/女士频道唯一id,后台如果有,则取后台,没有时,1-男士,2-女士;
// 4.FLR_ID:楼层唯一id,从1001开始,依次递增;
// 5.I_INDEX:内部顺序号,从1开始,依次递增;
// 6.BRAND_ID:所点击的品牌id;
// console.log("点击了品牌第三楼层:");
// console.log(params);
NativeModules.YH_CommonHelper.logEvent(eventName, params);
... ... @@ -326,6 +324,13 @@ class BrandContainer extends Component {
reourceNeedRequest = reourceForLifeStyle.get('hasSuccess');
}
// let params = {
// TAB_ID:"1",
// GENDER:channelId+"",
// };
// // console.log('点击品牌');
// // console.log(params);
// NativeModules.YH_CommonHelper.logEvent('YB_STROLL_PLUSSTAR_CLASS_CHANNEL_C', params);
if (!brandListNeedRequest) {
this.props.actions.getBrandList(channelId);
}
... ... @@ -335,12 +340,6 @@ class BrandContainer extends Component {
this.props.actions.setInitialListSize(0);
this.props.actions.setBrandSelectedChannel(channelId);
let params = {
TAB_ID: 1,
GENDER:channelId+""
};
console.log('点击品牌'+params.toString());
NativeModules.YH_CommonHelper.logEvent('YB_STROLL_PLUSSTAR_CLASS_CHANNEL_C', params);
}
_onPressSearch() {
... ...
... ... @@ -77,15 +77,14 @@ class CategoryContainer extends Component {
}
_onSelectChannel(channel) {
// let params = {
// TAB_ID:"2",
// GENDER:channel.id+"",
// };
// NativeModules.YH_CommonHelper.logEvent('YB_STROLL_PLUSSTAR_CLASS_CHANNEL_C', params);
this.props.actions.setCurrentCateId(0);
this.props.actions.setCurrentChannelId(channel.value);
let params = {
TAB_ID: 2,
GENDER:channel.id
};
console.log("点击品类:"+params.TAB_ID);
NativeModules.YH_CommonHelper.logEvent('YB_STROLL_PLUSSTAR_CLASS_CHANNEL_C', params);
}
_pressLeftRow(value,rowID) {
... ...
... ... @@ -2,6 +2,7 @@
import ReactNative from 'react-native';
import {Platform} from 'react-native';
import {NativeModules}from 'react-native';
import BrandService from '../../services/BrandService';
import {Record, List, Map} from 'immutable';
import Pinyin from '../../../common/utils/pinyin';
... ... @@ -71,6 +72,11 @@ export function setBrandFilter(filter) {
}
export function setBrandSelectedChannel(channelId) {
let params = {
TAB_ID:"1",
GENDER:channelId+"",
};
NativeModules.YH_CommonHelper.logEvent('YB_STROLL_PLUSSTAR_CLASS_CHANNEL_C', params);
return {
type: SET_BRAND_SELECTED_CHANNEL,
payload: channelId
... ...
'use strict';
import ReactNative from 'react-native';
import {NativeModules}from 'react-native';
import CategoryService from '../../services/CategoryService';
import Immutable, {Map} from 'immutable';
const {
... ... @@ -196,6 +197,17 @@ export function setCurrentCateId(rowID){
}
export function setCurrentChannelId(channelID){
let channelId = 1;
if(channelID == "boy"){
channelId = 1;
}else if(channelID == "girl"){
channelId = 2;
}
let params = {
TAB_ID:"2",
GENDER:channelId+"",
};
NativeModules.YH_CommonHelper.logEvent('YB_STROLL_PLUSSTAR_CLASS_CHANNEL_C', params);
return {
type: SET_CURRENT_CHANNEL_ID,
payload: channelID
... ...
... ... @@ -10,6 +10,7 @@ import YH_Image from '../../../common/components/YH_Image';
import {getSlicedUrl} from '../../utils/Utils';
import DeviceInfo from 'react-native-device-info';
const {
View,
Image,
... ... @@ -26,13 +27,13 @@ export default class BrandSwiper extends React.Component {
this.dot = <View
style={{
backgroundColor:'rgba(255,255,255,.5)',
backgroundColor:'rgba(237, 237, 237, 0.5)',
width: 6,
height: 6,
borderRadius: 3,
marginLeft: 3,
marginRight: 3,
marginTop: (Platform.OS === 'ios')?0:1,
marginTop: 0,
}}
/>;
this.activeDot = <View
... ... @@ -112,12 +113,13 @@ export default class BrandSwiper extends React.Component {
dot={this.dot}
activeDot={(Platform.OS === 'ios')?this.activeDot:null}
width={width}
height={height-15}
paginationStyle={{backgroundColor: 'rgba(0,0,0,0.2)',bottom: 10,height: 10,width: list.length * 12,borderRadius: 5,marginLeft: (width-list.length * 12)/2}}
height={height+15}
paginationStyle={{backgroundColor: 'rgba(0,0,0,0.2)',bottom: 25,height: 10,width: list.length * 12,borderRadius: 5,marginLeft: (width-list.length * 12)/2}}
>
{list.map((item, i) => {
let newSrc = getSlicedUrl(item.src, width, height-15, 2);
let newSrc = getSlicedUrl(item.src, width, height, 2);
console.log("chenlin", newSrc);
return (
<TouchableOpacity
key={i}
... ... @@ -128,8 +130,8 @@ export default class BrandSwiper extends React.Component {
>
{needYH_Image?<YH_Image
url={newSrc}
style={{width, height:height-15}}
/>:<SlicedImage source={{uri: item.src}} style={{width, height:height-15}}/>}
style={{width, height:height}}
/>:<SlicedImage source={{uri: item.src}} style={{width, height:height}}/>}
</TouchableOpacity>
);
})}
... ...
... ... @@ -444,19 +444,19 @@ export default class extends Component {
let dots = []
const ActiveDot = this.props.activeDot || <View style={[{
backgroundColor: this.props.activeDotColor || 'white',
width: 8,
height: 8,
borderRadius: 4,
width: 6,
height: 6,
borderRadius: 3,
marginLeft: 3,
marginRight: 3,
marginTop: 3,
marginTop: 6,
marginBottom: 3
}, this.props.activeDotStyle]} />
const Dot = this.props.dot || <View style={[{
backgroundColor: this.props.dotColor || 'rgba(237, 237, 237, 0.5)',
width: 8,
height: 8,
borderRadius: 4,
width: 6,
height: 6,
borderRadius: 3,
marginLeft: 3,
marginRight: 3,
marginTop: 3,
... ...
... ... @@ -45,11 +45,12 @@ export default class Detail extends Component {
</View>
<Text style={styles.phrase}> {data.get('phrase')}</Text>
<View style={styles.tagPannel} onLayout={this.onLayout.bind(this)} >
{data.get('brand_info')&&data.get('brand_info').get('brand_domain')?
<Text
onPress={()=>{this.props.onPressTag&&this.props.onPressTag(data.get('brand_info').get('brand_domain'))}}
style={styles.tag}>
{data.get('brand_info').get('brand_domain')}
</Text>
</Text>:null}
{data.get('middle_sort_name')&&data.get('middle_sort_name').length?
<Text
onPress={()=>{this.props.onPressTag&&this.props.onPressTag(data.get('middle_sort_name'))}}
... ...
... ... @@ -72,7 +72,7 @@ let styles = StyleSheet.create({
marginTop: 4,
height: 36,
color: 'white',
paddingTop: 10,
paddingTop: (Platform.OS === 'ios') ? 10 : 7,
textAlign: 'center',
fontSize: 15,
},
... ...
... ... @@ -31,7 +31,7 @@ export default class ListBannerSwiper extends React.Component {
borderRadius: 3,
marginLeft: 3,
marginRight: 3,
marginTop: (Platform.OS === 'ios')?0:1,
marginTop: (Platform.OS === 'ios')?0:3,
marginBottom: 0,
}}
/>;
... ... @@ -43,8 +43,8 @@ export default class ListBannerSwiper extends React.Component {
borderRadius: 3,
marginLeft: 3,
marginRight: 3,
marginTop: (Platform.OS === 'ios')?0:1,
marginBottom: 0,
marginTop: 0,
}}
/>;
}
... ... @@ -64,7 +64,15 @@ export default class ListBannerSwiper extends React.Component {
activeDot={(Platform.OS === 'ios')?this.activeDot:null}
width={width}
height={height}
paginationStyle={{backgroundColor: 'rgba(0,0,0,0.2)',bottom: 10,height: 10,width: resource.length * 12,borderRadius: 5,marginLeft: (width-resource.length * 12)/2}}
paginationStyle={{
backgroundColor: 'rgba(0,0,0,0.2)',
bottom: 10,
height: 10,
width:(Platform.OS === 'ios')?resource.length * 12: resource.length * 12 + 5,
borderRadius: 5,
marginLeft: (width-resource.length * 12)/2,
paddingBottom: 3,
}}
>
{resource.map((item, i) => {
return (
... ...
... ... @@ -27,4 +27,7 @@ export default keyMirror({
FETCH_BANNER_REQUEST: null,
FETCH_BANNER_SUCCESS: null,
FETCH_BANNER_FAILURE: null,
//用于详情页埋点
SET_SELECTED_ITEM: null,
});
... ...
... ... @@ -78,16 +78,17 @@ class DetailContainer extends Component {
if (parseInt(index) < 0) {
let param = {
PRD_SKN: productSkn,
PRD_SKN: productSkn + '',
AB_TYPE: 'A',
}
NativeModules.YH_CommonHelper.logEvent('YB_GOOD_GDS_VIEW_C', param);
} else {
let {detail} = this.props;
let similarParam = {
AB_TYPE: 'A',
MAIN_PRD: productSkn,
MAIN_PRD: detail.product_skn + '',
MAIN_INDEX: parseInt(index) + 1 + '',
SIMILAR_PRD: productSkn,
SIMILAR_PRD: productSkn + '',
POS_ID: '100013',
}
NativeModules.YH_CommonHelper.logEvent('YB_SIMILAR_GDS_C', similarParam);
... ...
... ... @@ -76,23 +76,15 @@ class ListContainer extends Component {
if (!product_skn) {
return;
}
this.props.actions.setSelectedItem(parseInt(index) + 1 + '', product_skn + '');
ReactNative.NativeModules.YH_CommonHelper.pushGoodGoodsRecommendDetailWithProductSKN(product_skn + '');
let param = {
I_INDEX: parseInt(index) + 1 + '',
PRD_SKN: product_skn,
PRD_SKN: product_skn + '',
AB_TYPE: 'A',
F_ID: 1002,
}
NativeModules.YH_CommonHelper.logEvent('YB_FIND_GOOD_GDS_FLR_C', param);
let similarParam = {
AB_TYPE: 'A',
MAIN_PRD: product_skn,
MAIN_INDEX: parseInt(index) + 1 + '',
SIMILAR_PRD: product_skn,
POS_ID: '100013',
}
NativeModules.YH_CommonHelper.logEvent('YB_SIMILAR_GDS_L', similarParam);
}
_onPressBanner(url, index) {
... ...
... ... @@ -42,7 +42,7 @@ export function getDetail() {
.then(json => {
dispatch(setFavoriteStatus(json));
let param = {
PRD_SKN: product_skn,
PRD_SKN: product_skn + '',
AB_TYPE: 'A',
}
NativeModules.YH_CommonHelper.logEvent('YB_GOOD_GDS_DETAIL_L', param);
... ... @@ -122,7 +122,7 @@ export function getDetailFailure(error) {
export function getSimilar() {
return (dispatch, getState) => {
let {app, detail} = getState();
let {app, detail, list} = getState();
let {product_skn} = detail;
// if (!product_skn) {
// return ;
... ... @@ -132,6 +132,24 @@ export function getSimilar() {
.then(json => {
// console.log(product_skn);
// console.log(json);
let tempAry = [];
for (var i = 0; i < json.product_list.length; i++) {
let {product_skn} = json.product_list[i];
if (product_skn) {
tempAry.push(product_skn + '');
}
}
let similarPrd = tempAry.join(',');
let similarParam = {
AB_TYPE: 'A',
MAIN_PRD: product_skn + '',
MAIN_INDEX: list.selected_index,
SIMILAR_PRD: similarPrd,
POS_ID: '100013',
}
// console.log( similarParam);
NativeModules.YH_CommonHelper.logEvent('YB_SIMILAR_GDS_L', similarParam);
dispatch(getSimilarSuccess(json.product_list));
})
.catch(error => {
... ...
... ... @@ -14,8 +14,16 @@ const {
FETCH_BANNER_REQUEST,
FETCH_BANNER_SUCCESS,
FETCH_BANNER_FAILURE,
SET_SELECTED_ITEM,
} = require('../../constants/actionTypes').default;
export function setSelectedItem(selected_index, selected_skn) {
return {
type: SET_SELECTED_ITEM,
payload: {selected_index, selected_skn},
}
}
export function getProductList(reload) {
return (dispatch, getState) => {
let {app, list} = getState();
... ...
... ... @@ -3,6 +3,8 @@
import {Record, List, Map} from 'immutable';
let InitialState = Record({
selected_index: '',
selected_skn: '',
banner: new (Record({
isFetching: false,
error: null,
... ...
... ... @@ -10,12 +10,18 @@ const {
FETCH_BANNER_REQUEST,
FETCH_BANNER_SUCCESS,
FETCH_BANNER_FAILURE,
SET_SELECTED_ITEM,
} = require('../../constants/actionTypes').default;
const initialState = new InitialState;
export default function listReducer(state=initialState, action) {
switch(action.type) {
case SET_SELECTED_ITEM:
let {selected_index, selected_skn} = action.payload;
let newState = state.set('selected_skn', selected_skn).set('selected_index',selected_index);
return newState;
break;
case GET_PRODUCT_LIST_REQUEST: {
let newState = state.setIn(['products', 'isFetching'], true)
.setIn(['products', 'ptr'], action.payload);
... ...
... ... @@ -27,21 +27,21 @@ export default class ImageSlider extends React.Component {
this.dot = <View
style={{
backgroundColor:'rgba(237, 237, 237, 0.5)',
width: 5,
height: 5,
borderRadius: 2.5,
width: 6,
height: 6,
borderRadius: 3,
marginLeft: 3,
marginRight: 3,
marginTop: (Platform.OS === 'ios')?3:1,
marginTop: 3,
marginBottom: 0,
}}
/>;
this.activeDot = <View
style={{
backgroundColor:'white',
width: 5,
height: 5,
borderRadius: 2.5,
width: 6,
height: 6,
borderRadius: 3,
marginLeft: 3,
marginRight: 3,
marginTop: 3,
... ...
... ... @@ -226,10 +226,45 @@ function reportHomeData(payload) {
}
function reportFavoriteData(payload) {
return (dispatch) => {
return (dispatch, getState) => {
let {app} = getState();
let channel = app.channel;
try {
let reportData = floorParser.parseReportProductList(payload);
ReactNative.NativeModules.YH_CommonHelper.logEvent('YB_SHOW_MAIN_RECOMMEND', {'DATA': reportData});
if (channel != 3) {
let productList = payload.list;
let rec_id = payload.rec_id;
let total = payload.total;
let rec_pos = '';
if (channel == 1) {
rec_pos = '100001';
}else if (channel == 2) {
rec_pos = '100002';
}
let productIDS = ''
if (productList.length > 0) {
let product = productList[0];
let product_id = product.product_id ? product.product_id : '';
productIDS = productIDS + product_id;
}
for (var i = 1; i < productList.length; i++) {
let product = productList[i]
let product_id = product.product_id ? product.product_id : '';
productIDS = productIDS + ',' + product_id;
}
ReactNative.NativeModules.YH_CommonHelper.logEvent('YB_CHOOSE_FOR_YOU', {
'PRD_ID': productIDS,
'PRD_NUM': total,
'REC_POSE': rec_pos,
'ACTION_ID': 0,
'REC_ID': rec_id?rec_id:''
});
}
} catch (e) {
__DEV__ && console.error(e);
} finally {
... ... @@ -238,6 +273,8 @@ function reportFavoriteData(payload) {
}
}
export function fetchHomeFavoriteList() {
return (dispatch, getState) => {
let {app, home} = getState();
... ...
'use strict';
import ReactNative from 'react-native';
import Immutable, {Map} from 'immutable';
const {
Dimensions,
... ... @@ -264,7 +265,9 @@ function heightForFloor(item, immutable=false) {
function homeDataParse(data, channel) {
let {list, cached, isFetching, isFirstLoad, endReached, favorite, bottomBanner, hotList, newList, selectIndex} = data;
let floorList = list.size > 0 ? list.toArray() : cached.get('list').toArray();
let floorListData = list.size > 0 ? list : cached.get('list');
let homeAutoReportList = homeFloorAutoReportData(floorListData,channel);
let floorList = homeAutoReportList?homeAutoReportList.toArray():[];
let dataSource = {};
if (channel == '4') {
let favlist = selectIndex == 0 ? newList : hotList;
... ... @@ -442,8 +445,8 @@ function parseReportData(list) {
floorItem.template_name == 'custom_brands' ||
floorItem.template_name == 'kids_brands')
{
let brandList = floorItem.data.list ? floorItem.data.list : [];
let moreItem = floorItem.data.image;
let brandList = floorItem.data && floorItem.data.list ? floorItem.data.list : [];
let moreItem = floorItem.data && floorItem.data.image;
for (var j = 0; j < brandList.length; j++) {
let brandItem = brandList[j];
let brandParam = {
... ... @@ -691,3 +694,172 @@ module.exports = {
parseReportData,
parseReportProductList
};
function homePruductListAutoReportData(list,channel) {
}
function homeFloorAutoReportData(list,channel) {
if (!list) {
return 0;
}
let pageName = 'iFP_Home'
let channlStr = 'boy';
if (channel == 1) {
channlStr = 'boy';
}else if (channel == 2){
channlStr = 'girl';
}else if (channel == 3){
channlStr = 'kid';
}else if (channel == 4){
channlStr = 'lifestyle';
}
let listData = list.toJS();
// console.log(listData);
// console.log('listData');
for (var i = 0; i < listData.length; i++) {
let item = listData[i];
let floorName = item.template_name;
let floorID = item.template_id;
let floorIndex = parseInt(i) + 1 + '';
switch(floorName) {
case 'focus': {
break;
}
case 'app_icon_list': {
let focueList = item.data?item.data:[];
for (var j = 0; j < focueList.length; j++) {
let fcoueItem = focueList[j];
let inFloorIndex = parseInt(j) + 1 + '';
let actionUrl = fcoueItem.url;
let param = autoReportData(channlStr,floorName,floorID,floorIndex,inFloorIndex,actionUrl);
fcoueItem.yh_exposureData = param;
}
break;
}
case 'app_hot_brands': {
break;
}
case 'announcement': {
break;
}
case 'single_image': {
break;
}
case 'single_name_image': {
break;
}
case 'recommend_content_one': {
break;
}
case 'recommend_content_two': {
break;
}
case 'recommend_content_three': {
break;
}
case 'recommend_content_five': {
break;
}
case 'trendsetter_collocation': {
break;
}
case 'trendgoods_topic': {
break;
}
case 'custom_brands': {
break;
}
case 'kids_brands':{
break;
}
case 'small_pic': {
break;
}
case 'divideImage': {
break;
}
case 'NewProductFloor': {
break;
}
case 'popular_single_product': {
break;
}
case 'shopRecommend': {
break;
}
case 'sixLinesFloor': {
break;
}
case 'livePicture': {
break;
}
case 'sale-1t-1l-4r': {
break;
}
case 'vipUse': {
break;
}
case 'activityProductFloor': {
break;
}
case 'hot_category_individualization': {
break;
}
case 'new_user_floor': {
break;
}
}
}
console.log(listData);
return Immutable.fromJS(listData);
}
function autoReportData(channlStr,floorName,floorID,floorIndex,inFloorIndex,actionUrl,skn)
{
let param;
if (!skn && !actionUrl) {
return null;
}
if (skn) {
param = {
P_NAME : "iFP_Home",
P_PARAM : channlStr,
I_INDEX : inFloorIndex,
PRD_SKN : skn
}
}else {
param = {
P_NAME : "iFP_Home",
P_PARAM : channlStr,
F_NAME : floorName,
F_ID : floorID,
F_INDEX : floorIndex,
I_INDEX : inFloorIndex,
ACTION_URL : actionUrl,
}
}
return param;
}
... ...
... ... @@ -35,11 +35,11 @@ export default class MineListHeader extends React.Component {
//0不显示
return null;
} else if (num < 10) {
offset = 15;
offset = 17;
} else if (num < 100) {
offset = 15;
offset = 17;
} else {
offset = 10;
offset = 12;
num = '99+';
}
return (
... ... @@ -71,20 +71,20 @@ export default class MineListHeader extends React.Component {
let offset = 0;
if (isNaN(num)) {
//兼容非数字
offset = 6;
offset = 15;
} else if (num <= 0) {
//0不显示
return null;
} else if (num < 10) {
offset = 25;
offset = 30;
} else if (num < 100) {
offset = 25;
offset = 30;
} else if (num < 1000) {
offset = 20;
offset = 25;
} else if (num < 10000) {
offset = 15;
offset = 20;
} else {
offset = 0;
offset = 15;
num = '9999+';
}
return (
... ... @@ -124,7 +124,7 @@ export default class MineListHeader extends React.Component {
}
return (
<TouchableOpacity onPress={() => this.props.onPressItem('mineVip','')}>
<TouchableOpacity style={{width:45,height:25}} activeOpacity={1} onPress={() => this.props.onPressItem('mineVip','')}>
<Image style={styles.user_level} source={vipPic[num-1]}/>
</TouchableOpacity>
);
... ... @@ -186,7 +186,7 @@ export default class MineListHeader extends React.Component {
{
profile.uid != '0' ?
<TouchableOpacity onPress={() => this.props.onPressItem('mineInfo','')}>
<TouchableOpacity activeOpacity={1} onPress={() => this.props.onPressItem('mineInfo','')}>
<View style={styles.icon_container}>
<View style={{
flexDirection:'row',
... ... @@ -263,7 +263,7 @@ export default class MineListHeader extends React.Component {
alignItems: 'center',
justifyContent: 'center',
}}>
<TouchableOpacity onPress={() => this.props.onPressItem('mineLogin','')}>
<TouchableOpacity activeOpacity={1} onPress={() => this.props.onPressItem('mineLogin','')}>
<Text style={styles.login_text} numberOfLines={1}>
登录/注册
</Text>
... ... @@ -273,7 +273,7 @@ export default class MineListHeader extends React.Component {
{
(profile.uid != '0' && profile.vip_info.is_student == 1) ? null :
(isNeedShowXsrz) ?
<TouchableOpacity style={{position:'absolute',right:0,top:bgPaddingTop}} onPress={() => this.props.onPressItem('mineStudentHome','')}>
<TouchableOpacity activeOpacity={1} style={{position:'absolute',right:0,top:bgPaddingTop}} onPress={() => this.props.onPressItem('mineStudentHome','')}>
<Image
style={{width: 80,height: 27,marginBottom:15}}
resizeMode={'stretch'} source={require('../../image/renzheng_bg.png')}>
... ... @@ -283,7 +283,7 @@ export default class MineListHeader extends React.Component {
}
<View style={styles.fav_container}>
<TouchableOpacity onPress={() => this.props.onPressItem('mineFavProduct','')}>
<TouchableOpacity activeOpacity={1} onPress={() => this.props.onPressItem('mineFavProduct','')}>
<View style={styles.topnum_content}>
{
(profile.uid != '0' && mineInfoNum.product_favorite_total + globalOrderData.collect_count >= 0) ?
... ... @@ -300,7 +300,7 @@ export default class MineListHeader extends React.Component {
marginBottom:6,
backgroundColor: '#f0f0f0',
}}/>
<TouchableOpacity onPress={() => this.props.onPressItem('mineFavBrand','')}>
<TouchableOpacity activeOpacity={1} onPress={() => this.props.onPressItem('mineFavBrand','')}>
<View style={styles.topnum_content}>
{
(profile.uid != '0' && mineInfoNum.brand_favorite_total >= 0) ?
... ... @@ -317,7 +317,7 @@ export default class MineListHeader extends React.Component {
marginBottom:6,
backgroundColor: '#f0f0f0',
}}/>
<TouchableOpacity onPress={() => this.props.onPressItem('mineBrowseHis','')}>
<TouchableOpacity activeOpacity={1} onPress={() => this.props.onPressItem('mineBrowseHis','')}>
<View style={styles.topnum_content}>
{
(profile.uid != '0' && mineInfoNum.product_browse >= 0) ?
... ... @@ -336,7 +336,7 @@ export default class MineListHeader extends React.Component {
}}/>
{profile.uid != '0' && certificationInfo && certificationInfo.isBindedOrRelated === 'N' ?
<TouchableOpacity onPress={() => this.props.onPressItem('mineCertification','')}>
<TouchableOpacity activeOpacity={1} onPress={() => this.props.onPressItem('mineCertification','')}>
<View style={styles.sub_row}>
<Image style={styles.row_icon} resizeMode={'contain'}
source={require('../../image/bindTipsIcon.png')}/>
... ... @@ -381,7 +381,7 @@ export default class MineListHeader extends React.Component {
backgroundColor: '#f0f0f0',
}}/> : null
}
<TouchableOpacity onPress={() => this.props.onPressItem('mineOrder','')}>
<TouchableOpacity activeOpacity={1} onPress={() => this.props.onPressItem('mineOrder','')}>
<View style={styles.row}>
<Text style={[styles.icon_text,{fontSize:17, fontWeight:'bold'}]} numberOfLines={1}>
我的订单
... ... @@ -402,7 +402,7 @@ export default class MineListHeader extends React.Component {
backgroundColor: '#f0f0f0',
}}/>
<View style={[styles.order_container,{paddingLeft: paddingContainer , paddingRight: paddingContainer ,}]}>
<TouchableOpacity onPress={() => this.props.onPressItem('dfkOrder','')}>
<TouchableOpacity activeOpacity={1} onPress={() => this.props.onPressItem('dfkOrder','')}>
<View style={styles.order_content}>
{
iconAll.willPay.isExist ? <Image style={styles.icon_image} source={{uri:iconAll.willPay.default_ico}}/> : <Image style={styles.icon_image} source={require('../../image/dd_icon_dfk.png')}/>
... ... @@ -413,7 +413,7 @@ export default class MineListHeader extends React.Component {
}
</View>
</TouchableOpacity>
<TouchableOpacity onPress={() => this.props.onPressItem('dfhOrder','')}>
<TouchableOpacity activeOpacity={1} onPress={() => this.props.onPressItem('dfhOrder','')}>
<View style={styles.order_content}>
{
iconAll.willDeliver.isExist ? <Image style={styles.icon_image} source={{uri:iconAll.willDeliver.default_ico}}/> : <Image style={styles.icon_image} source={require('../../image/dd_icon_dfh.png')}/>
... ... @@ -424,7 +424,7 @@ export default class MineListHeader extends React.Component {
}
</View>
</TouchableOpacity>
<TouchableOpacity onPress={() => this.props.onPressItem('dshOrder','')}>
<TouchableOpacity activeOpacity={1} onPress={() => this.props.onPressItem('dshOrder','')}>
<View style={styles.order_content}>
{
iconAll.willReceived.isExist ? <Image style={styles.icon_image} source={{uri:iconAll.willReceived.default_ico}}/> : <Image style={styles.icon_image} source={require('../../image/dd_icon_dsh.png')}/>
... ... @@ -435,7 +435,7 @@ export default class MineListHeader extends React.Component {
}
</View>
</TouchableOpacity>
<TouchableOpacity onPress={() => this.props.onPressItem('dsdOrder','')}>
<TouchableOpacity activeOpacity={1} onPress={() => this.props.onPressItem('dsdOrder','')}>
<View style={styles.order_content}>
{
iconAll.willComment.isExist ? <Image style={styles.icon_image} source={{uri:iconAll.willComment.default_ico}}/> : <Image style={styles.icon_image} source={require('../../image/wddd_icon_dpj.png')}/>
... ... @@ -446,7 +446,7 @@ export default class MineListHeader extends React.Component {
}
</View>
</TouchableOpacity>
<TouchableOpacity onPress={() => this.props.onPressItem('thhOrder','')}>
<TouchableOpacity activeOpacity={1} onPress={() => this.props.onPressItem('thhOrder','')}>
<View style={styles.order_content}>
{
iconAll.reback.isExist ? <Image style={styles.icon_image} source={{uri:iconAll.reback.default_ico}}/> : <Image style={styles.icon_image} source={require('../../image/dd_icon_thh.png')}/>
... ... @@ -464,7 +464,7 @@ export default class MineListHeader extends React.Component {
backgroundColor: '#f0f0f0',
}}/>
{(profile.uid != '0' && globalOrderData && globalOrderData.hasOrder === 'Y') ?
<TouchableOpacity onPress={() => this.props.onPressItem('mineGlobalOrder','')}>
<TouchableOpacity activeOpacity={1} onPress={() => this.props.onPressItem('mineGlobalOrder','')}>
<View style={styles.row}>
<Image style={styles.row_icon} source={require('../../image/mine_globalpurchase_icon.png')}/>
<Text style={[styles.icon_text,{fontSize:17}]} numberOfLines={1}>
... ... @@ -506,7 +506,7 @@ export default class MineListHeader extends React.Component {
}}/>
<View style={[styles.order_container, {paddingLeft: paddingContainer , paddingRight: paddingContainer }]}>
<TouchableOpacity onPress={() => this.props.onPressItem('mineCoupon','')}>
<TouchableOpacity activeOpacity={1} onPress={() => this.props.onPressItem('mineCoupon','')}>
<View style={styles.asset_content}>
{
iconAll.coupon.isExist ? <Image style={styles.icon_image} source={{uri:iconAll.coupon.default_ico}}/> : <Image style={styles.icon_image} source={require('../../image/zc_icon_yhq.png')}/>
... ... @@ -517,7 +517,7 @@ export default class MineListHeader extends React.Component {
}
</View>
</TouchableOpacity>
<TouchableOpacity onPress={() => this.props.onPressItem('mineYohoCoin','')}>
<TouchableOpacity activeOpacity={1} onPress={() => this.props.onPressItem('mineYohoCoin','')}>
<View style={styles.asset_content}>
{
iconAll.yohoCoin.isExist ? <Image style={styles.icon_image} source={{uri:iconAll.yohoCoin.default_ico}}/> : <Image style={styles.icon_image} source={require('../../image/yh_mine_yoho_coin.png')}/>
... ... @@ -530,7 +530,7 @@ export default class MineListHeader extends React.Component {
</View>
</TouchableOpacity>
<TouchableOpacity onPress={() => this.props.onPressItem('mineLimitCode','')}>
<TouchableOpacity activeOpacity={1} onPress={() => this.props.onPressItem('mineLimitCode','')}>
<View style={styles.asset_content}>
{
iconAll.myLimitCode.isExist ? <Image style={styles.icon_image} source={{uri:iconAll.myLimitCode.default_ico}}/> : <Image style={styles.icon_image} source={require('../../image/yh_mine_limitcode_icon.png')}/>
... ... @@ -541,7 +541,7 @@ export default class MineListHeader extends React.Component {
}
</View>
</TouchableOpacity>
<TouchableOpacity onPress={() => this.props.onPressItem('mineInstallment','')}>
<TouchableOpacity activeOpacity={1} onPress={() => this.props.onPressItem('mineInstallment','')}>
<View style={styles.asset_content}>
{
iconAll.instalment.isExist ? <Image style={styles.icon_image} source={{uri:iconAll.instalment.default_ico}}/> : <Image style={styles.icon_image} source={require('../../image/yh_mine_fenqi_icon.png')}/>
... ... @@ -553,7 +553,7 @@ export default class MineListHeader extends React.Component {
</View>
</TouchableOpacity>
{showRedPacket && showRedPacket.open === 'Y' ?
<TouchableOpacity onPress={() => this.props.onPressItem('mineRedPackage','')}>
<TouchableOpacity activeOpacity={1} onPress={() => this.props.onPressItem('mineRedPackage','')}>
<View style={styles.asset_content}>
{
iconAll.redPackets.isExist ? <Image style={styles.icon_image} source={{uri:iconAll.redPackets.default_ico}}/> : <Image style={styles.icon_image} source={require('../../image/yh_mine_redbag_icon.png')}/>
... ... @@ -571,7 +571,7 @@ export default class MineListHeader extends React.Component {
height: 10,
backgroundColor: '#f0f0f0',
}}/>
<TouchableOpacity onPress={() => this.props.onPressItem('mineGuang','')}>
<TouchableOpacity activeOpacity={1} onPress={() => this.props.onPressItem('mineGuang','')}>
<View style={styles.row}>
{
iconAll.myguang.isExist ? <Image style={styles.row_icon} source={{uri:iconAll.myguang.default_ico}}/> : <Image style={styles.row_icon} source={require('../../image/mine_collectionTiezi_icon.png')}/>
... ... @@ -588,7 +588,7 @@ export default class MineListHeader extends React.Component {
marginLeft:50,
backgroundColor: '#f0f0f0',
}}/>
<TouchableOpacity onPress={() => this.props.onPressItem('mineShareOrder','')}>
<TouchableOpacity activeOpacity={1} onPress={() => this.props.onPressItem('mineShareOrder','')}>
<View style={styles.row}>
{
iconAll.myList.isExist ? <Image style={styles.row_icon} source={{uri:iconAll.myList.default_ico}}/> : <Image style={styles.row_icon} source={require('../../image/shaidan.png')}/>
... ... @@ -601,7 +601,7 @@ export default class MineListHeader extends React.Component {
</TouchableOpacity>
{(profile.uid != '0' && memberBill && memberBill.bill && memberBill.bill.open === 'Y') ?
<TouchableOpacity onPress={() => this.props.onPressItem('mineMemberInfo',memberBill.bill.userinfo)}>
<TouchableOpacity activeOpacity={1} onPress={() => this.props.onPressItem('mineMemberInfo',memberBill.bill.userinfo)}>
<View style={{
width: width-50,
height: 0.5,
... ... @@ -634,7 +634,7 @@ export default class MineListHeader extends React.Component {
activityListInfo.list.map((item, i) => {
return (
item.get('state') === 1?
<TouchableOpacity key={i} onPress={() => this.props.onPressItem('mineActivity',item)}>
<TouchableOpacity key={i} activeOpacity={1} onPress={() => this.props.onPressItem('mineActivity',item)}>
<View style={styles.row}>
{
iconAll.invite.isExist ? <Image style={styles.row_icon} source={{uri:iconAll.invite.default_ico}}/> : <Image style={styles.row_icon} source={require('../../image/mine_activity_icon.png')}/>
... ... @@ -667,7 +667,7 @@ export default class MineListHeader extends React.Component {
}}/> : null
}
<TouchableOpacity onPress={() => this.props.onPressItem('mineFeedback','')}>
<TouchableOpacity activeOpacity={1} onPress={() => this.props.onPressItem('mineFeedback','')}>
<View style={styles.row}>
{
iconAll.suggestion.isExist ? <Image style={styles.row_icon} resizeMode={'contain'} source={{uri:iconAll.suggestion.default_ico}}/> : <Image style={styles.row_icon} resizeMode={'contain'} source={require('../../image/mine_servicefeedback_icon.png')}/>
... ...
... ... @@ -25,13 +25,12 @@ export default class ProductListCell extends Component {
let {data, sourceType, index, style} = this.props;
let url = data.get('url');
let title = data.get('title');
let intro = data.get('intro');
let publish_time = data.get('publish_time');
let browse = data.get('browse');
let src = data.get('src');
let article_id = data.get('id');
let show10K = false;
if (browse>10000) {
browse = browse/10000.0;
if (browse >= 100) {
... ... @@ -56,7 +55,7 @@ export default class ProductListCell extends Component {
<Image style={styles.image} source={{uri:src}}>
<Image style={styles.iconImage} source={require('../../image/cp_tab.png')}/>
</Image>
<Text style={styles.name} numberOfLines={3}>{title}</Text>
<Text style={styles.name} numberOfLines={3}>{intro}</Text>
<View style={styles.footContainer}>
<Image style={styles.clockImage} source={require('../../image/time_ic.png')}/>
<Text style={styles.text}>{publish_time}</Text>
... ... @@ -64,7 +63,7 @@ export default class ProductListCell extends Component {
<Text style={styles.eyeText} numberOfLines={1}>{browse}{show10K?'万':''}</Text>
</View>
</View>
<Text style={styles.title} numberOfLines={3}>{data.get('title')}</Text>
</View>
</TouchableOpacity>
);
... ... @@ -167,5 +166,12 @@ let styles = StyleSheet.create({
marginRight: 0,
width: width==320?10:28,
},
title: {
fontFamily: 'STHeitiSC-Light',
paddingTop: 5 + 15*width/750,
fontSize: 12,
width: rowWidth,
lineHeight: 36*width/750,
color: '#444444',
},
});
... ...
... ... @@ -96,7 +96,7 @@ let styles = StyleSheet.create({
},
imageContainer: {
width: rowWidth,
height: imageHeight,
height: Platform.OS === 'ios'?rowHeight:rowHeight+4,
backgroundColor: '#f0f0f0',
marginTop: tagHeight,
flexDirection: 'column',
... ... @@ -105,7 +105,7 @@ let styles = StyleSheet.create({
image: {
width: 240*width/750,
height: 100*width/750,
marginTop: 50*width/750,
marginTop: 100*width/750,
backgroundColor: 'gray',
marginBottom: 0,
},
... ... @@ -114,7 +114,7 @@ let styles = StyleSheet.create({
fontFamily: 'STHeitiSC-Light',
fontSize: 9,
color: '#b0b0b0',
marginTop: 30*width/750,
marginTop: 40*width/750,
marginBottom: 0,
},
... ... @@ -122,15 +122,15 @@ let styles = StyleSheet.create({
fontFamily: 'STHeitiSC-Light',
fontSize: 10,
color: '#444444',
marginTop: 65*width/750,
marginTop: 70*width/750,
marginBottom: 0,
},
tag: {
backgroundColor: '#f0f0f0',
width: 64,
height: 25,
marginTop: 44*width/750,
height: 50*width/750,
marginTop: 74*width/750,
marginBottom: 0,
borderRadius: 3,
borderColor: 'black',
... ...
... ... @@ -629,14 +629,11 @@ function parseProductList(json) {
isSelect: false,
});
let brandList = filter['brand'];
console.log('aaaa');
console.log(brandList);
brandList = brandList.sort(function(a, b) {
return a.brand_alif - b.brand_alif;
});
let templet = ['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'];
console.log(templet);
let bList = [];
for (var j = 0; j < templet.length; j++) {
... ... @@ -646,10 +643,6 @@ function parseProductList(json) {
}
}
}
console.log('bbbb');
console.log(bList);
let newBrandList = [];
newBrandList.push({
key: '',
... ...
'use strict';
import React, {Component} from 'react';
import ReactNative, {
View,
ScrollView,
Text,
NativeAppEventEmitter,
StyleSheet,
ListView,
Dimensions,
TouchableOpacity,
Image,
} from 'react-native';
import Immutable, {Map} from 'immutable';
export default class PickerView extends Component {
constructor(props) {
super(props);
this._renderRow = this._renderRow.bind(this);
this.dataSource = new ListView.DataSource({
rowHasChanged: (r1, r2) => !Immutable.is(r1, r2),
});
this.type = "";
}
_renderRow(rowData, sectionID, rowID, highlightRow) {
return (
<TouchableOpacity activeOpacity={0.5} key={rowID} onPress={() => {
switch (this.type) {
case 'education':
this.props.onSelectEdution && this.props.onSelectEdution(rowData);
break;
case 'years':
this.props.onSelectYear && this.props.onSelectYear(rowData);
break;
default:
}
}}>
<View style={styles.rowCell}>
<Text style={{marginLeft: 15}}>
{rowData}
</Text>
</View>
<View style={styles.rowLine}></View>
</TouchableOpacity>
);
}
render() {
let {resource, type} = this.props;
this.type = type;
return (
<View style={styles.container}>
<View style={styles.listViewContainer}>
<ListView
contentContainerStyle={[styles.contentContainerStyle]}
ref={(ref)=>this.listView=ref}
enableEmptySections={true}
dataSource={this.dataSource.cloneWithRows(resource)}
renderRow={this._renderRow}
showsHorizontalScrollIndicator={false}
/>
</View>
</View>
);
}
}
let {width, height} = Dimensions.get('window');
let styles = StyleSheet.create({
container: {
position: 'absolute',
top: 0,
width: width,
height:height - 64,
backgroundColor: 'rgba(0,0,0,0.6)',
flexDirection: 'column-reverse',
flex: 1,
justifyContent: 'center',
alignItems: 'center',
},
listViewContainer: {
backgroundColor: 'white',
},
contentContainerStyle: {
width: width - 80,
backgroundColor: '#dfe3e2',
},
rowCell: {
justifyContent: 'center',
height: 40,
backgroundColor: 'white',
},
rowLine: {
height: 1,
backgroundColor: '#dfe3e2',
},
});
... ...
... ... @@ -18,6 +18,7 @@ import ReactNative, {
} from 'react-native';
import RegisterInfoCell from './RegisterInfoCell';
import ProvinceSchoolView from './ProvinceSchoolView';
import PickerView from './PickerView';
import Immutable, {Record, List, Map} from 'immutable';
import Prompt from '../../../coupon/components/coupon/Prompt';
... ... @@ -49,6 +50,8 @@ export default class Register extends Component {
pickerSelectValue: '',
};
this.hideTipMesage = this.hideTipMesage.bind(this);
this._onSelectEdutionForAndroid = this._onSelectEdutionForAndroid.bind(this);
this._onSelectYearForAndroid = this._onSelectYearForAndroid.bind(this);
}
componentDidMount() {
... ... @@ -152,6 +155,32 @@ export default class Register extends Component {
this.props.showTipMesage && this.props.showTipMesage('');
}
/**
* 选择学历,android使用,因为android的Picker控件样式有问题
**/
_onSelectEdutionForAndroid(edution){
this.setState({ pickerList:[]});
let newPickerInfo = this.state.pickerInfo;
let newPickerInfoJson = newPickerInfo.toJS();
newPickerInfoJson.text = edution;
newPickerInfo = Immutable.fromJS(newPickerInfoJson)
this._updateRegisterCellsInfo(newPickerInfo);
}
/**
* 选择年份,android使用,因为android的Picker控件样式有问题
**/
_onSelectYearForAndroid(year){
console.log(year);
this.setState({ pickerList:[]});
let newPickerInfo = this.state.pickerInfo;
let newPickerInfoJson = newPickerInfo.toJS();
newPickerInfoJson.text = year;
newPickerInfo = Immutable.fromJS(newPickerInfoJson)
this._updateRegisterCellsInfo(newPickerInfo);
}
renderRow(rowData, sectionID, rowID, highlightRow) {
switch (sectionID) {
case 'totalStudentRegister':
... ... @@ -262,49 +291,57 @@ export default class Register extends Component {
/>
{this.state.pickerList.length?
<View style={styles.pickerContainer}>
<Picker style={styles.picker}
pointerEvents='none'
selectedValue={this.state.pickerSelectValue}
onValueChange={(value) => this.setState({pickerSelectValue: value})}>
{list.map((pickerItem, i) => {
return <Picker.Item
key={i}
value={pickerItem}
label={pickerItem}
/>
})}
</Picker>
<View style={styles.complateContainer}>
(Platform.OS === 'ios' ?
<View style={styles.pickerContainer}>
<Picker style={styles.picker}
pointerEvents='none'
selectedValue={this.state.pickerSelectValue}
onValueChange={(value) => this.setState({pickerSelectValue: value})}>
{list.map((pickerItem, i) => {
return <Picker.Item
key={i}
value={pickerItem}
label={pickerItem}
/>
})}
</Picker>
<View style={styles.complateContainer}>
<TouchableOpacity activeOpacity={1.0} onPress={() => {
this.setState({pickerList:List()});
let newPickerInfo = this.state.pickerInfo;
let newPickerInfoJson = newPickerInfo.toJS();
if (!this.state.pickerSelectValue) {
this.state.pickerSelectValue = pickerList[0];
}
newPickerInfoJson.text = this.state.pickerSelectValue;
newPickerInfo = Immutable.fromJS(newPickerInfoJson)
this._updateRegisterCellsInfo(newPickerInfo);
}}>
<View style={styles.complateTouchView}>
<Text>
完成
</Text>
</View>
</TouchableOpacity>
</View>
<TouchableOpacity activeOpacity={1.0} onPress={() => {
this._onPickerHidden();
this.setState({pickerList:List()});
let newPickerInfo = this.state.pickerInfo;
let newPickerInfoJson = newPickerInfo.toJS();
if (!this.state.pickerSelectValue) {
this.state.pickerSelectValue = pickerList[0];
}
newPickerInfoJson.text = this.state.pickerSelectValue;
newPickerInfo = Immutable.fromJS(newPickerInfoJson)
this._updateRegisterCellsInfo(newPickerInfo);
}}>
<View style={styles.complateTouchView}>
<Text>
完成
</Text>
</View>
<View style={styles.balckContainer} />
</TouchableOpacity>
</View>
<TouchableOpacity activeOpacity={1.0} onPress={() => {
this._onPickerHidden();
this.setState({pickerList:List()});
}}>
<View style={styles.balckContainer} />
</TouchableOpacity>
</View>
:
<PickerView
style={styles.provinceSchoolView}
type= {this.state.pickerInfo.get('type')}
resource= {this.state.pickerList}
onSelectEdution={this._onSelectEdutionForAndroid}
onSelectYear={this._onSelectYearForAndroid}/>)
:null
}
{provinceSchoolPageInfo.get('show')&&provinceSchoolPageInfo.get('leftList').size>0?
... ...
... ... @@ -10,6 +10,7 @@ import ReactNative, {
TextInput,
TouchableOpacity,
Image,
Platform,
Dimensions,
} from 'react-native';
import Immutable from 'immutable';
... ... @@ -40,28 +41,31 @@ export default class RegisterInfoCell extends Component {
<Text style={styles.leftTitle}>
{resource.get('title')}
</Text>
<TextInput
placeholder={resource.get('placeholderText')}
style={styles.rightTextInput}
editable={resource.get('touchAction')?false:true}
defaultValue={resource.get('text')}
maxLength={18}
onEndEditing={(event) => {
if (resource.get('touchAction')) {
return;
} else {
let resourceJson = resource.toJS();
resourceJson.text = event.nativeEvent.text;
this.props.updateRegisterCellsInfo && this.props.updateRegisterCellsInfo(Immutable.fromJS(resourceJson));
}
}}
/>
{resource.get('touchAction')?
<Image style={styles.arrow}
source={require('../../images/right_arrow.png')}
<View pointerEvents={resource.get('touchAction')? 'none':'auto'} style={styles.rightTextContainer}>
<TextInput
placeholder={resource.get('placeholderText')}
style={styles.rightTextInput}
editable={resource.get('touchAction')?false:true}
defaultValue={resource.get('text')}
maxLength={18}
onEndEditing={(event) => {
if (resource.get('touchAction')) {
return;
} else {
let resourceJson = resource.toJS();
resourceJson.text = event.nativeEvent.text;
this.props.updateRegisterCellsInfo && this.props.updateRegisterCellsInfo(Immutable.fromJS(resourceJson));
}
}}
underlineColorAndroid="transparent"
/>
: null
}
{resource.get('touchAction')?
<Image style={styles.arrow}
source={require('../../images/right_arrow.png')}
/>
: null
}
</View>
</View>
<View style={{width:cellWidth,left:leftMargin,height:0.5,backgroundColor:'#dfe3e2'}}>
</View>
... ... @@ -90,16 +94,22 @@ let styles = StyleSheet.create({
fontSize: 14,
top: 15,
},
rightTextInput: {
lineHeight: 40,
rightTextContainer: {
height: 44,
flex: 1,
fontSize: 14,
padding: 4,
flexDirection: 'row',
alignItems:'center',
justifyContent: 'center',
},
rightTextInput: {
flex: 1,
fontSize: 14,
padding: 0,
color:'#000000',
},
arrow: {
width: 8,
height: 13,
top: 14,
}
});
... ...
... ... @@ -67,7 +67,7 @@ export function getFastProductList() {
let payload = parseUtils.parsePageInfoList(json, rec_id);
//埋点上报
dispatch(dataExpose(payload, rec_id));
dispatch(dataExposure(payload, rec_id));
if (payload.currentPage > 1) {
let oldList = fastExpress.get('list').toJS();
... ...