app.js 4.31 KB
/**
 * Created by DEV005 on 2017/8/23.
 */
import React, { Component } from 'react';
import { BackHandler,AppState,StyleSheet,View,Text
    , NativeModules,AsyncStorage,NavigationActions,
    ActivityIndicator,TouchableOpacity,Image,Touch,Platform,Dimensions
} from 'react-native';

import { StackNavigator,TabNavigator } from 'react-navigation';
import AppService from "./service/AppService";
import {xnToast,getHeaderHeight,getHeaderPadding,getFooterBottom,xnBorderWidth} from "./utils/utils";
import {width,height} from "./utils/getSize";
//横竖屏
import Orientation from 'react-native-orientation';
//键盘启用与消失
import dismissKeyboard from 'react-native/Libraries/Utilities/dismissKeyboard';
import XnLoading from "./components/xnLoading"


import Index from './pages/Index';
import MyCreated from './pages/MyCreated';
import Detail from './pages/Detail';
import Comment from './pages/Comment';
import Employee from './pages/Employee';
import SelectAdd from './pages/SelectAdd';
import AddComment from './pages/AddComment';

const Navigator  = StackNavigator({
    Index:{screen:Index},
    AddComment:{screen:AddComment},
    SelectAdd:{screen:SelectAdd},
    MyCreated:{screen:MyCreated},
    Detail:{screen:Detail},
    Comment:{screen:Comment},
    Employee:{screen:Employee}
},{
    // headerMode: 'none', // 导航栏的显示模式, screen: 有渐变透明效果, float: 无透明效果, none: 隐藏导航栏
    navigationOptions:{
        // // 设置导航条的样式。如果想去掉安卓导航条底部阴影可以添加elevation: 0,iOS去掉阴影是。
        headerStyle:{
            paddingTop:getHeaderPadding(),
            backgroundColor: '#333238',
            elevation: 0,   //去掉阴影
            height:getHeaderHeight(),
        },
        // 设置导航条文字样式。安卓上如果要设置文字居中,只要添加alignSelf:'center'就可以了
        headerTitleStyle:{
            color:'white',
            alignSelf:"center",
            alignItems: 'center',
            justifyContent: 'center',
            flexDirection: 'column',
            fontSize:18,
            fontWeight:"bold"
        },
        headerLeft:(<View style={{flexDirection: 'row',flex: 1}}></View>),
        headerRight:(<View style={{flexDirection: 'row',flex: 1}}></View>)
    }
});



class App extends Component{
    constructor(props){
        super(props);
        this.state = {
            loading:true
        };
    }
  
    // 查询用户信息
    getPassportId=()=>{
        //获取
        NativeModules.security.getPassportId().then((result) => {
                AppService.getPassport({id:result}).then(data=>{
                    if (data.errors == null || data.errors.length > 0) {
                        xnToast(data.errors[0].message);
                        return
                    }
                    global.tenantId=data.passport.tenantId;
                    global.userId=data.passport.userId;
                    global.tenantName=data.passport.tenantName;

                    this.getUser(data.passport.tenantId,data.passport.userId);

                });
            }
        ).catch((error) => {
            console.log(error)
        });

        //承租人简称
        NativeModules.security.getTenantName().then((result)=>{
            global.tenantShortName=result;
        })
    };

    // 查询用户信息
    getUser=(tenantId,userId)=>{
        let  _this=this;
        let vm={
            tenantId:tenantId,
            id:userId
        };
        AppService.getUser(vm).then(data=>{
            if (data.errors == null || data.errors.length > 0) {
                xnToast(data.errors[0].message);
                return
            }
            global.sourceId=data.user.sourceId;
            global.unionId=data.user.unionId;
            this.setState({
                loading:false
            });
            
        })
         
    };

    componentWillMount(){
        let _this=this;
       this.getPassportId();
    }
  
    render() {
        return  <View style={styles.root}>
            {/*加载中*/}
            {this.state.loading &&<XnLoading />}
            {!this.state.loading &&<Navigator />}
        </View>
    }
}
const styles = StyleSheet.create({
    root: {
        flex: 1,
        marginBottom:getFooterBottom(),
        backgroundColor:"#fff",
    },
});
export default App;