eventReport.js 8.91 KB
/**
 * Created by Cassie on 2018/03/21
 */
import React, { Component } from 'react';
import {
    StyleSheet,
    View,
    Text,
    TouchableOpacity,
    Image,
    TextInput,
    Animated,
    ActivityIndicator,
    NativeModules,
    NativeEventEmitter,
    DeviceEventEmitter,
    Alert,
    Modal,
    Platform,
    BackHandler,
    AsyncStorage,
    Button,
    FlatList,
    ScrollView,
    StatusBar
} from 'react-native';
import moment from 'moment';
import {zoomW,zoomH} from '../../utils/getSize';
import {clock,xnToast,timeReduce,timePlus,timeEvery,getDay} from '../../utils/utils';
import xnService from "../../service/AppService";
import md5 from 'md5';

var ImagePicker = require('react-native-image-picker');
var options = {
    title: null,
    cancelButtonTitle:'取消',
    takePhotoButtonTitle:'拍照',
    chooseFromLibraryButtonTitle:'从手机相册中选取',
    storageOptions: {
        skipBackup: true,
        path: 'images'
    }
};

const nativeBridge = NativeModules.BlueToolManage;
const NativeModule = new NativeEventEmitter(nativeBridge);

export default class eventReport extends Component {
    static navigationOptions = ({navigation}) => ({
        title:'事件上报',
        tabBarIcon: ({ tintColor }) => (
            <View style={[styles.icon]}>
                <Image style={[{tintColor: tintColor}]}
                    source={require('../../img/root_eventReport.png')}
                    resizeMode='contain'
                />
            </View>
        ),
        headerRight:(
            <Button
                onPress={()=>navigation.navigate()}
                title="上报"
                color="#4b85e0"
            />
        ),
        headerLeft:(
            <View></View>
        )
    });

    constructor(props){
        super(props);
        this.state = {
            itemList:['1']
        };
    };

    componentWillMount(){
        console.log(2222)
    };

    componentDidMount(){
        console.log(2222)
    }

    cleck=(item,rowID)=>{
        let that = this
        if (this.state.itemList.length==Number(rowID)+1){
            ImagePicker.showImagePicker(options, (response) => {
                console.log('Response = ', response);

                if (response.didCancel) {
                    console.log('用户取消了选择!');
                }
                else if (response.error) {
                    alert("ImagePicker发生错误:" + response.error);
                }
                else {
                    let file = {
                        uri: '',
                        name: 'photo',
                        type: 'image/jpeg'
                    }

                    file.uri = response.uri;
                    file.uri = file.uri.replace('file://', '')

                    let source = { uri: response.uri };



                }
            });
        }else {

        }

    }

    renderItem = (item,rowID) => {
        return(
            <TouchableOpacity onPress={()=>this.cleck(item,rowID)}>
                <View style={[styles.innerViewStyle,{position:"relative",marginLeft:rowID==0?0:11/zoomW}]}>
                    <Image
                        style={{flex:1,backgroundColor:rowID==0?'white':'#eee'}}
                        source={this.state.itemList.length==Number(rowID)+1?require('../../img/add-image.png'):item}
                        resizeMode='contain'
                    />
                    {this.state.itemList.length!= Number(rowID)+1&&
                    <TouchableOpacity style={{position:"absolute",right:0,top:0,
                        width:10,height:10,backgroundColor:"red"}} onPress={()=>this.delegate(rowID)}>
                        <Image style={{width:10,height:10,backgroundColor:'red'}} resizeMode="contain" ></Image>
                    </TouchableOpacity>}
                </View>
            </TouchableOpacity>
        )
    }

    render(){
        return (
            <View style={styles.background}>
                <StatusBar barStyle={'default'}/>
                <View style={styles.top}>
                    <TextInput style={{fontSize:15,height:63/zoomH,maxHeight:63/zoomH,marginBottom:11/zoomH}} multiline={true} placeholder='事件描述'></TextInput>

                    <ScrollView horizontal={true} contentContainerStyle={{flex:1,alignItems:'center'}} style={{width:'100%',height:60/zoomH}}>
                        {this.state.itemList.map((v, i) => this.renderItem(v, i))}
                    </ScrollView>

                    <View style={{width:'100%',height:1,backgroundColor:'#f6f6f6',marginTop:17/zoomH}}></View>
                    <View style={{width:'100%',height:44/zoomH,flexDirection:'row',alignItems:'center'}}>
                        <TouchableOpacity>
                            <View style={{borderRadius:4,borderWidth:1,borderColor:'#4b85e0',alignItems:'center',justifyContent:'center',width:70/zoomW,height:22/zoomH}}>
                                <Text style={{fontSize:13,color:'#4b85e0'}}>车厢事件</Text>
                            </View>
                        </TouchableOpacity>
                        <TouchableOpacity>
                            <View style={{marginLeft:20,borderRadius:4,borderWidth:1,borderColor:'#4b85e0',alignItems:'center',justifyContent:'center',width:70/zoomW,height:22/zoomH}}>
                                <Text style={{fontSize:13,color:'#4b85e0'}}>车站事件</Text>
                            </View>
                        </TouchableOpacity>
                        <TouchableOpacity>
                            <View style={{marginLeft:20,borderRadius:4,borderWidth:1,borderColor:'#4b85e0',alignItems:'center',justifyContent:'center',width:70/zoomW,height:22/zoomH}}>
                                <Text style={{fontSize:13,color:'#4b85e0'}}>好人好事</Text>
                            </View>
                        </TouchableOpacity>

                    </View>
                </View>
                <TouchableOpacity>
                    <View style={{flexDirection:'row',alignItems:'center',justifyContent:'space-between',width:'100%',height:44/zoomH,backgroundColor:'white',paddingLeft:15/zoomW,paddingRight:15/zoomW}}>
                        <View style={{flexDirection:'row',flex:1,alignItems:'center',justifyContent:'flex-start'}}>
                            <Image source={require('../../img/location.png')} resizeMode='contain'></Image>
                            <Text style={{paddingLeft:12/zoomW,color:'#555',fontSize:13}}>所在位置</Text>
                        </View>
                        <View style={{flexDirection:'row',flex:1,alignItems:'center',justifyContent:'flex-end'}}>
                            <Text style={{paddingRight:12/zoomW,color:'#acacac',fontSize:13}}>1号线 10143号车厢</Text>
                            <Image source={require('../../img/arrow_right.png')} resizeMode='contain'></Image>
                        </View>
                    </View>
                    <View style={{width:'100%',height:1,backgroundColor:'#dbdbdb'}}></View>
                </TouchableOpacity>
                <TouchableOpacity>
                    <View style={{flexDirection:'row',alignItems:'center',justifyContent:'space-between',width:'100%',height:44/zoomH,backgroundColor:'white',paddingLeft:15/zoomW,paddingRight:15/zoomW}}>
                        <View style={{flexDirection:'row',flex:1,alignItems:'center',justifyContent:'flex-start'}}>
                            <Image source={require('../../img/time.png')} resizeMode='contain'></Image>
                            <Text style={{paddingLeft:12/zoomW,color:'#555',fontSize:13}}>上报时间</Text>
                        </View>
                        <View style={{flexDirection:'row',flex:1,alignItems:'center',justifyContent:'flex-end'}}>
                            <Text style={{paddingRight:12/zoomW,color:'#acacac',fontSize:13}}>1号线 10143号车厢</Text>
                            <Image source={require('../../img/arrow_right.png')} resizeMode='contain'></Image>
                        </View>
                    </View>
                    <View style={{width:'100%',height:1,backgroundColor:'#dbdbdb'}}></View>
                </TouchableOpacity>

            </View>
        );
    }
}

const styles = StyleSheet.create({
    background:{
        flex:1,
        backgroundColor:'#f6f6f6',
        display:'flex',
        alignItems:'center',
    },
    icon:{
        width:40,
        height:40,
        marginBottom:5,
        borderRadius:20,
        backgroundColor:'white',
        alignItems:'center',
        justifyContent:'center'
    },
    top:{
        // maxHeight:224/zoomH,
        width:'100%',
        height:224/zoomH,
        backgroundColor:'white',
        marginTop:10/zoomH,
        paddingLeft:15/zoomW,
        paddingRight:15/zoomW,
        paddingTop:11/zoomH,
        marginBottom:15/zoomH
    },
    innerViewStyle:{
        width:61/zoomW,
        height:61/zoomW,
        justifyContent:'center',

    },
    contentContainer:{
        width:60/zoomW,
        height:60/zoomW
    }
});