perfectInfo.js 4.25 KB
/**
 * Created by xiniu on 2018/5/3.
 */
import React, { Component } from 'react';
import {
    StyleSheet,
    View,
    Text,
    TouchableOpacity,
    Image,
    ScrollView,
    Button
} from 'react-native';
import { NavigationActions } from 'react-navigation';
import { width, height, zoomW, zoomH } from '../../utils/getSize';
import { xnToast } from '../../utils/utils';

export default class perfectInfo extends Component {
  static navigationOptions = ({ navigation, screenProps }) => ({
    title: '完善个人信息',
    headerLeft: (
        <View></View>
        ),
    headerRight: (
    <TouchableOpacity style={styles.renderRight} onPress={() => navigation.state.params.save()}>
        <Text style={{ color:'#4B85E0', fontSize:14 }}>保存</Text>
    </TouchableOpacity>
        ),
  });

  constructor(props) {
    super(props);
    this.state = {
      politicalName:'-',
      partyName:'',
    };
  }

  componentWillMount() {

  }

    componentDidMount () {
        this.props.navigation.setParams({
            save: () => this.save()
        });
    }
    save() {
      if(this.state.politicalName === '-') {
          xnToast('请完善个人信息');
      } else {
          const resetAction = NavigationActions.reset({
              index: 0,
              actions: [
                  NavigationActions.navigate({ routeName: 'Root'})
              ]
          })
          this.props.navigation.dispatch(resetAction);
      }
    }

    check(select){
        if (select == 0) {
            //更新政治面貌
                let itemList = ['中共党员','群众','共青团员','民主党派'];
                this.props.navigation.navigate('ChooseUserInfo',{title:'政治面貌',defultValue:this.state.politicalName,itemList:itemList,type:'partyMember',callback:()=>{
                    if(global.user.politicalStatus == 1) {
                        this.setState({
                            politicalName: '中共党员',
                        });
                    } else if(global.user.politicalStatus == 2) {
                        this.setState({
                            politicalName: '群众',
                        });
                    } else if(global.user.politicalStatus == 3) {
                        this.setState({
                            politicalName: '共青团员',
                        });
                    } else if(global.user.politicalStatus == 4) {
                        this.setState({
                            politicalName: '民主党派',
                        });
                    }
                }});
        }else if (select == 1) {
            //更新所属类别
            this.props.navigation.navigate('ChooseActivityAttribute',{title:'所属类别',defultValue:this.state.partyName,callback:()=>{
                this.setState({
                    partyName:global.user.partyName,
                })
            }});
        }
    }

    row(v,i){
        return (
            <TouchableOpacity style={[styles.row,{ marginTop: i === 0 ? 10 : 0, borderBottomWidth: i === 0 ? 1 : 0 }]} key={i} onPress={()=>this.check(i)}>
                <Text style={styles.title}>{v.name}</Text>
                <Text style={styles.text}>{v.text}</Text>
                <Image style={styles.rightIcon} source={require('../../img/arrow_right.png')} resizeMode={'contain'}/>
            </TouchableOpacity>
        )
    }

  render() {
    return (
      <View style={styles.background}>
          <ScrollView >
              {this.row({name:'政治面貌',text:this.state.politicalName},0)}
              {this.row({name:'所属类别',text:this.state.partyName},1)}
          </ScrollView>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  renderRight: {
      height: '100%',
      justifyContent: 'center',
      paddingLeft: 15/zoomW,
      paddingRight: 15/zoomW,
  },
  background: {
    flex: 1,
    position: 'relative',
  },
  row:{
      height:44/zoomH,
      flexDirection:'row',
      paddingHorizontal:15/zoomW,
      alignItems:'center',
      borderBottomColor:'#dddddd',
      backgroundColor:'white'
  },
  title:{
      fontSize:16,
      color:'#4b4b4b',
      flex:1
  },
  text:{
      color:'#8c8c8c',
      fontSize:14,
      marginRight:14/zoomW
  },
  rightIcon:{
    width:6/zoomW,
    height:11/zoomH
  },
});