123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639 |
- /**
- * Sample React Native App
- * https://github.com/facebook/react-native
- *
- * @format
- * @flow
- */
- import React, { Component } from "react";
- import {
- Platform,
- StyleSheet,
- Text,
- View,
- Image,
- TouchableOpacity,
- ImageBackground,
- Button,
- StatusBar,
- Modal,
- TouchableHighlight,
- DeviceEventEmitter
- } from "react-native";
- import AndroidUtil from "../../util/AndroidUtil";
- import BasePage from "../BasePage";
- import CourseTitle from "./CourseTitle";
- import ChosePhoto from "./ChosePhoto";
- import RegionModal from "./RegionModal";
- import GradeSelectionModal from "./GradeSelectionModal";
- import Header from "./Header";
- import PersonalInfoDialog from "./PersonalInfoDialog";
- type Props = {};
- export default class PersonalInfo extends BasePage {
- state = {
- nickName: "初始昵称",
- schoolName: "未设置",
- cisys: "北京市",
- grade_text: "七年级",
- grade_index: 6
- };
- updateState(data) {
- this.setState(data);
- }
- render() {
- return (
- <View style={{ flex: 1 }}>
- <PersonalInfoDialog
- ref={view => (this.dialog = view)}
- updateParentState={this.updateState.bind(this)}
- />
- <ChosePhoto ref={view => (this.chosephoto = view)} />
- <RegionModal
- ref={view => (this.regionmodal = view)}
- cityscommit={this.cityscommit.bind(this)}
- />
- <GradeSelectionModal
- ref={view => (this.gradeselectionModal = view)}
- commitGrade={this.commitGrade.bind(this)}
- grade_index={this.state.grade_index}
- />
- <StatusBar backgroundColor={"transparent"} translucent={true} />
- <View
- style={{
- flex: 1,
- flexDirection: "column"
- }}
- >
- <ImageBackground
- source={require("../images/userInfo/top.png")}
- style={{
- flex: 2.8,
- width: "100%",
- backgroundColor: "#F0F1F5",
- height: "75%"
- }}
- imageStyle={{ resizeMode: "cover" }}
- >
- <View
- style={{
- flex: 1,
- alignItems: "center",
- justifyContent: "center",
- flexDirection: "column"
- }}
- >
- <CourseTitle
- style={{ flex: 4 }}
- width={this.getWindowWidth()}
- title="个人信息"
- backPress={() => this.goBack()}
- lefttype={2}
- righttype={0}
- textcolor={"white"}
- backPress={() => this.goBack()}
- />
- <TouchableOpacity
- style={{
- flex: 1,
- backgroundColor: "white",
- width: "90%",
- bottom: 0,
- alignItems: "center",
- justifyContent: "center",
- borderRadius: 20,
- overflow: "hidden"
- }}
- activeOpacity={1}
- onPress={() => this.arrowpress(0)}
- >
- <View
- style={{
- flex: 1,
- borderRadius: 20,
- overflow: "hidden",
- alignItems: "center",
- justifyContent: "center",
- flexDirection: "row"
- }}
- >
- <View style={{ flex: 0.5 }} />
- <View
- style={{
- flex: 3,
- height: "100%",
- alignItems: "center",
- justifyContent: "center"
- }}
- >
- <Image
- style={{
- borderRadius: 50,
- width: "80%",
- height: "70%"
- // borderWidth: 3
- // borderColor: "red"
- }}
- source={{
- uri:
- "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1556277324856&di=dc1548a0c5ba10481af922e174912937&imgtype=0&src=http%3A%2F%2Fwww.51pptmoban.com%2Fd%2Ffile%2F2012%2F05%2F12%2F82c4568a90055adcf8fbb896f0841c69.jpg"
- }}
- />
- </View>
- <View
- style={{
- flex: 9,
- backgroundColor: "white",
- height: "100%",
- justifyContent: "center"
- }}
- >
- <Text style={{ left: 10, color: "black", fontSize: 20 }}>
- 修改头像
- </Text>
- </View>
- <View
- style={{
- flex: 1.5,
- height: "65%",
- alignItems: "center",
- justifyContent: "center"
- }}
- >
- {this.getArraowImg(0)}
- </View>
- </View>
- </TouchableOpacity>
- </View>
- </ImageBackground>
- <View style={{ flex: 0.5, backgroundColor: "#F0F1F5" }} />
- <View
- style={{
- width: "100%",
- flex: 4.3,
- alignItems: "center",
- backgroundColor: "#F0F1F5"
- }}
- >
- <View
- style={{
- backgroundColor: "rgb(242, 242, 242)",
- width: "90%",
- alignItems: "center",
- justifyContent: "center",
- height: "100%",
- overflow: "hidden",
- borderRadius: 10
- }}
- >
- <View
- style={{
- width: "100%",
- alignItems: "center",
- justifyContent: "center",
- height: "100%"
- }}
- >
- <TouchableOpacity
- style={{
- flex: 1,
- marginVertical: 1,
- width: "100%",
- flexDirection: "row",
- backgroundColor: "white"
- }}
- activeOpacity={1}
- onPress={() => this.arrowpress(1)}
- >
- <View
- style={{
- flex: 2,
- alignItems: "center",
- justifyContent: "center"
- }}
- >
- {this.choseheadericon(1)}
- </View>
- <Text style={styles.item_text}>昵称</Text>
- <View
- style={{
- flex: 5,
- alignItems: "flex-end"
- }}
- >
- <Text
- style={{
- flex: 1,
- fontSize: 15,
- textAlignVertical: "center"
- }}
- numberOfLines={1}
- ellipsizeMode={"tail"}
- >
- {this.state.nickName}
- </Text>
- </View>
- <View
- style={{
- flex: 1.1,
- alignItems: "center",
- justifyContent: "center"
- }}
- >
- {this.getArraowImg(1)}
- </View>
- </TouchableOpacity>
- <TouchableOpacity
- style={{
- flex: 1,
- width: "100%",
- flexDirection: "row",
- backgroundColor: "white",
- marginVertical: 1
- }}
- activeOpacity={1}
- onPress={() => this.arrowpress(2)}
- >
- <View
- style={{
- flex: 2,
- alignItems: "center",
- justifyContent: "center"
- }}
- >
- {this.choseheadericon(2)}
- </View>
- <Text style={styles.item_text}>生日</Text>
- <View
- style={{
- flex: 5,
- alignItems: "flex-end"
- }}
- >
- <Text
- style={{
- flex: 1,
- fontSize: 15,
- textAlignVertical: "center"
- }}
- numberOfLines={1}
- ellipsizeMode={"tail"}
- >
- 生日。。。。
- </Text>
- </View>
- <View
- style={{
- flex: 1.1,
- alignItems: "center",
- justifyContent: "center"
- }}
- >
- {this.getArraowImg(2)}
- </View>
- </TouchableOpacity>
- <TouchableOpacity
- style={{
- flex: 1,
- width: "100%",
- flexDirection: "row",
- backgroundColor: "white",
- marginVertical: 1
- }}
- activeOpacity={1}
- onPress={() => this.arrowpress(3)}
- >
- <View
- style={{
- flex: 2,
- alignItems: "center",
- justifyContent: "center"
- }}
- >
- {this.choseheadericon(3)}
- </View>
- <Text style={styles.item_text}>所在地区</Text>
- <View
- style={{
- flex: 5,
- alignItems: "flex-end"
- }}
- >
- <Text
- style={{
- flex: 1,
- fontSize: 15,
- textAlignVertical: "center"
- }}
- numberOfLines={1}
- ellipsizeMode={"tail"}
- >
- {this.state.cisys}
- </Text>
- </View>
- <View
- style={{
- flex: 1.1,
- alignItems: "center",
- justifyContent: "center"
- }}
- >
- {this.getArraowImg(3)}
- </View>
- </TouchableOpacity>
- <TouchableOpacity
- style={{
- flex: 1,
- width: "100%",
- flexDirection: "row",
- backgroundColor: "white",
- marginVertical: 1
- }}
- activeOpacity={1}
- onPress={() => this.arrowpress(4)}
- >
- <View
- style={{
- flex: 2,
- alignItems: "center",
- justifyContent: "center"
- }}
- >
- {this.choseheadericon(4)}
- </View>
- <Text style={styles.item_text}>我的学校</Text>
- <View
- style={{
- flex: 5,
- alignItems: "flex-end"
- }}
- >
- <Text
- style={{
- flex: 1,
- fontSize: 15,
- textAlignVertical: "center"
- }}
- numberOfLines={1}
- ellipsizeMode={"tail"}
- >
- {this.state.schoolName}
- </Text>
- </View>
- <View
- style={{
- flex: 1.1,
- alignItems: "center",
- justifyContent: "center"
- }}
- >
- {this.getArraowImg(4)}
- </View>
- </TouchableOpacity>
- <TouchableOpacity
- style={{
- flex: 1,
- marginTop: 1,
- width: "100%",
- flexDirection: "row",
- backgroundColor: "white",
- marginVertical: 1
- }}
- activeOpacity={1}
- onPress={() => this.arrowpress(5)}
- >
- <View
- style={{
- flex: 2,
- alignItems: "center",
- justifyContent: "center"
- }}
- >
- {this.choseheadericon(5)}
- </View>
- <Text style={styles.item_text}>我的年级</Text>
- <View
- style={{
- flex: 5,
- alignItems: "flex-end"
- }}
- >
- <Text
- style={{
- flex: 1.1,
- fontSize: 15,
- textAlignVertical: "center"
- }}
- numberOfLines={1}
- ellipsizeMode={"tail"}
- >
- {this.state.grade_text}
- </Text>
- </View>
- <View
- style={{
- flex: 1.1,
- alignItems: "center",
- justifyContent: "center"
- }}
- >
- {this.getArraowImg(5)}
- </View>
- </TouchableOpacity>
- </View>
- </View>
- </View>
- <View
- style={{
- width: "100%",
- flex: 4,
- backgroundColor: "#F0F1F5",
- flexDirection: "column"
- }}
- >
- <View style={{ flex: 2.5 }} />
- <View style={{ flex: 2, flexDirection: "row" }}>
- <View style={{ flex: 1 }} />
- <View
- style={{
- flex: 7,
- width: "100%",
- height: "100%"
- }}
- >
- <TouchableOpacity
- activeOpacity={1}
- style={{
- flex: 2,
- width: "100%",
- alignItems: "center",
- justifyContent: "center",
- height: "100%"
- }}
- onPress={() => this.logout()}
- >
- <ImageBackground
- source={require("../images/userInfo/logoutbg1.png")}
- style={{
- flex: 1,
- width: "100%",
- alignItems: "center",
- justifyContent: "center",
- height: "100%"
- }}
- imageStyle={{ resizeMode: "contain" }}
- >
- <Text
- style={{
- fontSize: 30,
- color: "white",
- width: "100%",
- textAlign: "center"
- }}
- >
- 退出登录
- </Text>
- </ImageBackground>
- </TouchableOpacity>
- <View style={{ flex: 1 }} />
- </View>
- <View style={{ flex: 1 }} />
- </View>
- <View style={{ flex: 0.8 }} />
- </View>
- </View>
- </View>
- );
- }
- // userInfo123() {
- // return (
- // );
- // }
- getArraowImg(type) {
- return (
- <TouchableOpacity
- style={{
- width: "100%",
- height: "100%",
- alignItems: "center",
- resizeMode: "contain",
- justifyContent: "center"
- }}
- onPress={() => this.arrowpress(type)}
- >
- <Image
- source={require("../images/userInfo/arrow.png")}
- style={{
- width: "20%",
- height: "30%"
- }}
- />
- </TouchableOpacity>
- );
- }
- choseheadericon(type) {
- let headerpath;
- switch (type) {
- case 0:
- headerpath = require("../images/userInfo/headportrait.png");
- break;
- case 1:
- headerpath = require("../images/userInfo/nickname.png");
- break;
- case 2:
- headerpath = require("../images/userInfo/birthday.png");
- break;
- case 3:
- headerpath = require("../images/userInfo/location.png");
- break;
- case 4:
- headerpath = require("../images/userInfo/school.png");
- break;
- case 5:
- headerpath = require("../images/userInfo/grade.png");
- break;
- }
- // alert(headerpath);
- return (
- <Image
- source={headerpath}
- style={{
- width: "60%",
- height: "60%",
- resizeMode: "contain"
- }}
- />
- );
- }
- arrowpress(type) {
- switch (type) {
- case 0:
- this.chosephoto.setModalVisible(true);
- break;
- case 1:
- this.dialog.setInfo("修改昵称", "昵称");
- this.dialog.setModalVisible(true, 1);
- break;
- case 2:
- alert("生日");
- break;
- case 3:
- this.regionmodal.setModalVisible(true);
- break;
- case 4:
- this.dialog.setInfo("我的学校", "学校名称");
- this.dialog.setModalVisible(true, 2);
- break;
- case 5:
- this.gradeselectionModal.setModalVisible(true);
- break;
- }
- }
- logout() {
- alert("点击退出了");
- }
- cityscommit(provinces_name, citys_name) {
- this.setState({
- cisys: provinces_name + citys_name
- });
- }
- commitGrade(text, index) {
- this.setState({
- grade_text: text,
- grade_index: index
- });
- }
- }
- const styles = StyleSheet.create({
- item: {
- flex: 1,
- width: "100%",
- flexDirection: "row",
- backgroundColor: "white",
- marginTop: 1
- },
- item_text: {
- flex: 3,
- textAlignVertical: "center",
- color: "black",
- fontSize: 16
- }
- });
|