alertError.js 3.48 KB
import React, { Component } from 'react';
import {
    StyleSheet,
    View,
    Image,
    Text,
    StatusBar,
    ActivityIndicator
} from 'react-native';
import {zoomW,zoomH} from '../../utils/getSize';
import {xnToast} from '../../utils/utils';
import AppService from '../../service/AppService'
import moment from 'moment'

const back = require('../../img/returnB.png');

export default class alertError extends Component {

    constructor(props) {
        super(props);
        this.state={
            type:this.props.navigation.state.params.type,

        }
    }

    componentDidMount(){

        this.props.navigation.setParams({
            title:'公告通知',
            backgroundColor:'white',
            titleColor:'black',
            isBack:true,
            back:()=>{
                this.props.navigation.goBack();
            },
        });
        if (this.state.type === 'noPermissions'){
            this.setState({detail:{}})
        }else{
            this.setState({
                loading:true
            });

            this.getAnnouncementDetail();
        }

    };

    //获取详情
    getAnnouncementDetail=()=>{

        this.setState({
            loading:false
        });
        AppService.getAnnouncementDetail({id:this.props.navigation.state.params.id}).then((data)=>{
            if(data.message){
                xnToast(data.message);
                return;
            }
            if(data.errors.length > 0){
                xnToast(data.errors[0].message);
            }else{

                this.setState({
                    detail:data.announcement,
                })
            }
        });
    }

    render(){
        if (this.state.detail){
            return(
                <View style={styles.background}>
                    <StatusBar
                        backgroundColor={'#FFFFFF'}
                        barStyle={"dark-content"}
                        networkActivityIndicatorVisible
                    />

                    <Image style={{width:70/zoomW,height:70/zoomW,marginTop:140/zoomH,marginBottom:30}} source={require('../../img/alertError.png')}/>
                    {this.state.type === 'noPermissions'&&<Text style={{color:'#999',fontSize:14}}>您还不是通知成员,无法查看本通知内容</Text>}
                    {this.state.type === 'isRevoke' &&<Text style={{color:'#999',fontSize:14}}>此公告已被发起人于{moment(Number(this.state.detail.revokeTime)).format('MM-DD HH:mm')}撤销</Text>}
                    {this.state.loading && <View style={styles.loadingBg}>
                        <ActivityIndicator size="large" />
                    </View>}
                </View>

            )
        }else {
            return (
                <View style={styles.background}>
                    {this.state.loading && <View style={styles.loadingBg}>
                        <ActivityIndicator size="large" />
                    </View>}
                </View>
            )
        }

    }

}

const styles = StyleSheet.create({
    topIcon:{
        paddingLeft:(10/zoomW),
        paddingRight:(10/zoomW),
        height:'100%',
        display:'flex',
        alignItems:'center'
    },
    background:{
        width:'100%',
        height:'100%',
        backgroundColor:'#fff',
        alignItems:'center',
        // justifyContent:'center'

    },
    loadingBg:{
        width:'100%',
        height:'100%',
        position:'absolute',
        display:'flex',
        alignItems:'center',
        justifyContent:'center'
    },
})