InvitedFriends.js 4.83 KB
'use strict';

import React, { Component } from 'react';
import { Dimensions, Image, ListView, StyleSheet, Text, TouchableOpacity, View } from 'react-native';
import { Immutable } from 'immutable';

const DEVICE_WIDTH_RATIO = Dimensions.get('window').width / 375;
const { width } = Dimensions.get('window');

export default class InvitedFriends extends Component {

      constructor(props) {
        super(props);
        this._renderRow = this._renderRow.bind(this);
        this.dataSource = new ListView.DataSource({
            rowHasChanged: (r1, r2) => !Immutable.is(r1, r2),
        });
      }

      _renderRow(rowData, sectionID, rowID) {
        return (
            <View>
                <View style={styles.rowView}>

                   <View style={styles.rowItemStyle}>
                      <Text style={styles.nameStyle}>{rowData.get("name")}</Text>
                   </View>

                   <View style={styles.rowItemStyle}>
                      <Text style={styles.rowTextStyle}>{rowData.get("dateStr")}</Text>
                   </View>

                   <View style={styles.rowItemStyle}>
                      <Text style={styles.rowTextStyle}>{rowData.get("orderNum")}</Text>
                   </View>

                   <View style={styles.rowItemStyle}>
                      <Text style={styles.rowTextStyle}>{rowData.get("orderAmountStr")}</Text>
                   </View>
                
                </View>
            </View>
        );
    }

      render() {

        let {
            invitedFriendsList,
        } = this.props;
        let invitersList = invitedFriendsList.list ? invitedFriendsList.list.toArray() : [];

        return (
          <View style={styles.container}>

            <View style={styles.topImageView}>
              <Image style={styles.topImageView} source={{uri:'https://img.alicdn.com/tps/TB1OvT9NVXXXXXdaFXXXXXXXXXX-520-280.jpg'}}/>
            </View>

            <View style={styles.spaceView}/>

            <View style={styles.middleView}>

              <View style={styles.textItemStyle}>
                <Text style={styles.textsStyle}>我邀请的好友</Text>
              </View>

              <View style={styles.textItemStyle}>
                <Text style={styles.textsStyle}>申请时间</Text>
              </View>

              <View style={styles.textItemStyle}>
                <Text style={styles.textsStyle}>7天订单数</Text>
              </View>

              <View style={styles.textItemStyle}>
                <Text style={styles.textsStyle}>7天订单金额</Text>
              </View>
              
            </View>

            <ListView
                    ref={(c) => {
                        this.listView = c;
                    }}
                    contentContainerStyle={styles.contentContainer}
                    enableEmptySections={true}
                    dataSource={this.dataSource.cloneWithRows(invitersList)}
                    renderRow={this._renderRow}
                    onEndReached={() => {
                        if (invitersList.size !== 0) {
                            this.props.onEndReached && this.props.onEndReached();
                        }
                    }}/>

            <TouchableOpacity activeOpacity={1} style={styles.touchableStyle} onPress={() => {
                //有货有赚调原生
            }}>
              <Text style={styles.buttonStyle}>邀请好友加入有货有赚</Text>
            </TouchableOpacity>

          </View>
        );
    }
}


const styles = StyleSheet.create({
  container: {
    flex: 1,
  },
  contentContainer: {
      width: width,
      backgroundColor: 'white',
      paddingBottom: 55 * DEVICE_WIDTH_RATIO,
  },
  topImageView: {
    width: width,
    height: 120 * DEVICE_WIDTH_RATIO,
  },
  middleView: {
    height: 50 * DEVICE_WIDTH_RATIO,
    flexDirection: 'row',
    alignItems: 'center',
  },
  textItemStyle: {
    width: width / 4,
    alignItems: 'center',
    paddingVertical: 18,
  },
  textsStyle: {
    fontFamily: 'PingFang-SC-Regular',
    fontSize: 12,
    color: 'black',
  },
  rowView: {
    height: 44 * DEVICE_WIDTH_RATIO,
    flexDirection: 'row',
    alignItems: 'center',
  },
  rowItemStyle: {
    width: width / 4,
    alignItems: 'center',
    paddingVertical: 15,
  },
  rowTextStyle: {
    fontFamily: 'PingFang-SC-Regular',
    fontSize: 10,
    color: '#323232',
  },
  nameStyle: {
    fontFamily: 'PingFang-SC-Regular',
    fontSize: 10,
    color: 'black',
  },
  buttonStyle: {
    fontFamily: 'PingFang-SC-Regular',
    fontSize: 16,
    fontWeight: 'bold',
    color: '#FFFFFF',
    textAlign: 'center',
  },
  touchableStyle: {
    position: 'absolute', 
    width: width, 
    height: 55, 
    bottom: 0, 
    borderRadius: 2, 
    backgroundColor: '#D0021B', 
    justifyContent: 'center'
  },
  spaceView: {
    height: 10 * DEVICE_WIDTH_RATIO,
    backgroundColor: '#F0F0F0'
  },
});