diff --git a/src/App.tsx b/src/App.tsx index 255e9d3..c876f28 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -7,20 +7,21 @@ import {Main} from "./Main"; import {Register} from "./account/Register"; import {user_cookie} from "./account/PropCookie"; -class App extends React.Component<{ allCookies:any;cookies:Cookies }, { page?:JSX.Element }> { +class App extends React.Component<{ allCookies:any;cookies:Cookies }, { page?:JSX.Element}> { constructor(props: Readonly) { super(props); this.state={} + } componentDidMount() { const { cookies } = this.props if((cookies.get(user_cookie)||"").length>0){ this.setState({ - page:
this.logout()}/> + page:
this.logout()} /> }) }else{ this.toLogin() @@ -48,8 +49,9 @@ class App extends React.Component<{ allCookies:any;cookies:Cookies }, { page?:JS console.debug("user_cookie="+user) this.props.cookies.set(user_cookie,user) + this.setState({ - page:
this.logout()}/> + page:
this.logout()} user={user}/> }) } diff --git a/src/Main.tsx b/src/Main.tsx index 561d445..a9b1190 100644 --- a/src/Main.tsx +++ b/src/Main.tsx @@ -7,7 +7,7 @@ import {MyFriend} from "./my/MyFriend"; import {MyDialog} from "./ui/MyDialog"; import {MyLeaveWord} from "./my/MyLeaveWord"; import {MyMessage} from "./my/MyMessage"; -import {User} from "./entity"; +import {User, UserEdit, UserType} from "./entity"; /** * 菜单标记 @@ -30,16 +30,22 @@ enum DialogType { /** * 主菜单 */ -export class Main extends React.Component<{ user:string,logout:Function }, +export class Main extends React.Component< + { user:string,userType?:string,logout:Function}, { + //菜单 menu:Menu; + //子菜单 subMenu:JSX.Element; friendList:Array; + //我的菜单 my:{ menuName:string; content:JSX.Element|null; open:boolean; - } + }, + //用户身份 + userType?:string; } >{ @@ -125,12 +131,16 @@ export class Main extends React.Component<{ user:string,logout:Function }, break; case DialogType.message: this.setState({ - my:{menuName:dialogType,content:,open:true} + my:{menuName:dialogType,content:this.setState({userType:user.userType})} user={this.props.user}/>,open:true} }) break; } } + onUserUpdate(user:UserEdit){ + console.debug(user) + } + render() { return (
@@ -159,7 +169,10 @@ export class Main extends React.Component<{ user:string,logout:Function }, - 等待接受帮助 + + + {(this.state.userType||this.props.userType)?{(this.state.userType||this.props.userType)===UserType.help.toString()?"等待接受帮助":"等待前往帮助"}:null} + this.closeDialog()}/> diff --git a/src/account/Register.tsx b/src/account/Register.tsx index dae55d7..97a55de 100644 --- a/src/account/Register.tsx +++ b/src/account/Register.tsx @@ -69,18 +69,6 @@ export class Register extends React.Component{ &&this.state.headImg!==headimgTip&&this.checkPwd()&&this.checkMobile()&&this.checkEmail() } - //解析身份 - getType(type:String){ - switch (type) { - case UserType.help.toString(): - return "帮助信息" - case UserType.seekHelp.toString(): - return "求助信息" - } - - return "" - } - /** * 检查手机号 */ @@ -120,7 +108,7 @@ export class Register extends React.Component{
this.setState({address:value})}/> - this.setState({userType:this.getType(value)})} + this.setState({userType:value})} options={[,,]}/> this.setState({mobile:+value})} valid={{check:this.checkMobile()}}/> diff --git a/src/entity.ts b/src/entity.ts index d46b00e..bb14f15 100644 --- a/src/entity.ts +++ b/src/entity.ts @@ -167,8 +167,8 @@ export interface MyDialogProps extends CloseDialogProps{ } export enum UserType { - seekHelp, - help + seekHelp="seekHelp", + help="help" } /** diff --git a/src/my/MyInfo.tsx b/src/my/MyInfo.tsx index 8f0863f..ce379c6 100644 --- a/src/my/MyInfo.tsx +++ b/src/my/MyInfo.tsx @@ -1,6 +1,6 @@ import React from "react"; import {Button, Col, Container, Form, FormControl, Image, Row} from "react-bootstrap"; -import {UserEdit} from "../entity"; +import {UserEdit, UserType} from "../entity"; import {Input} from "../ui/InputGroup"; @@ -14,6 +14,8 @@ export class MyInfo extends React.Component< userId?:string; isMyFriend:boolean; isAdd:boolean; + //更新用户信息回调 + onUserUpdate?:Function; }, UserEdit>{ @@ -61,6 +63,7 @@ export class MyInfo extends React.Component< email:"admin@qq.com", address:"上海高新区", info:"个人简介", + userType:UserType.help.toString() }) } @@ -103,6 +106,9 @@ export class MyInfo extends React.Component< contentEditable:false }) + if(this.props.onUserUpdate) { + this.props.onUserUpdate({userType: this.state.userType}) + } console.debug(this.state) } @@ -153,6 +159,14 @@ export class MyInfo extends React.Component< this.setState({email:e.target.value})}/> :this.state.email} + + {this.state.contentEditable? + this.setState({userType:e.target.value})}> + + + : + this.state.userType===UserType.help?"等待接受帮助":"等待前往帮助"} + diff --git a/src/my/MyMessage.tsx b/src/my/MyMessage.tsx index e91ee70..f366264 100644 --- a/src/my/MyMessage.tsx +++ b/src/my/MyMessage.tsx @@ -3,6 +3,7 @@ import {Button, ButtonGroup, Col, Container, Row} from "react-bootstrap"; import {MyInfo} from "./MyInfo"; import {MyHelp} from "./MyHelp"; import {SeekHelp} from "./SeekHelp"; +import {User} from "../entity"; enum Menu { info="个人信息", @@ -13,7 +14,7 @@ enum Menu { /** * 个人信息 */ -export class MyMessage extends React.Component<{ user:string }, { subMenu:Menu,page:JSX.Element }>{ +export class MyMessage extends React.Component<{ user:string,onUserUpdate:Function }, { subMenu:Menu,page:JSX.Element }>{ constructor(props: Readonly) { @@ -21,7 +22,7 @@ export class MyMessage extends React.Component<{ user:string }, { subMenu:Menu,p this.state={ subMenu:Menu.info, - page: + page:this.props.onUserUpdate(user)} ownUserId={this.props.user} isMyFriend={false} isOwn={true} isAdd={false}/> } } @@ -30,7 +31,7 @@ export class MyMessage extends React.Component<{ user:string }, { subMenu:Menu,p this.setState({subMenu:menu}) switch (menu) { case Menu.info: - this.setState({page:}) + this.setState({page:this.props.onUserUpdate(user)} ownUserId={this.props.user} isMyFriend={false} isOwn={true} isAdd={false}/>}) break case Menu.help: this.setState({page:})