diff --git a/src/Main.tsx b/src/Main.tsx index 9d35b22..5af2517 100644 --- a/src/Main.tsx +++ b/src/Main.tsx @@ -38,7 +38,6 @@ export class Main extends React.Component< // cookies:Cookies; }, - { //菜单 menu:Menu; @@ -52,12 +51,17 @@ export class Main extends React.Component< open:boolean; }, //用户身份 - userType?:string; + userType:string; + //用户时间币 + timeScore:number; + //用户id + userId:string; //显示欢迎信息 result:boolean; } >{ + constructor(props: Readonly) { super(props); //默认菜单 @@ -71,7 +75,9 @@ export class Main extends React.Component< //我的菜单 my:{menuName: "",content:null,open:false}, result:Boolean(this.props.cookies.get(welcome_cookie)), - userType:this.props.cookies.get(user_type_cookie) + userType:this.props.cookies.get(user_type_cookie), + userId:this.props.cookies.get(user_cookie), + timeScore:this.props.cookies.get(time_score) } } @@ -137,17 +143,19 @@ export class Main extends React.Component< switch (dialogType) { case DialogType.friend: this.setState({ - my:{menuName:dialogType,content:,open:true} + my:{menuName:dialogType,content:,open:true} }) break; case DialogType.leaveWord: this.setState({ - my:{menuName:dialogType,content:,open:true} + my:{menuName:dialogType,content:,open:true} }) break; case DialogType.message: this.setState({ - my:{menuName:dialogType,content:,open:true} + my:{menuName:dialogType,content: { + this.refreshInfo(value) + }} cookies={this.props.cookies} user={this.state.userId}/>,open:true} }) break; } @@ -172,11 +180,11 @@ export class Main extends React.Component< - {this.props.cookies.get(user_cookie)} + {this.state.userId} - 时间币:{this.props.cookies.get(time_score)} + 时间币:{this.state.timeScore} {[DialogType.friend,DialogType.leaveWord,DialogType.message].map((type:DialogType,index:number)=>this.openDialog(type)}>{type})} this.props.logout()}>注销登录 @@ -191,7 +199,7 @@ export class Main extends React.Component< - 欢迎用户{this.props.cookies.get(user_cookie)}登录本系统} open={this.state.result} titleId="login-tip" menuName="登录提示" onClose={()=>{ + 欢迎用户{this.state.userId}登录本系统} open={this.state.result} titleId="login-tip" menuName="登录提示" onClose={()=>{ this.setState({result:false}) this.props.cookies.remove(welcome_cookie) }}/> @@ -200,4 +208,18 @@ export class Main extends React.Component< ); } + + /** + * 刷新用户信息 + * @param value + */ + private refreshInfo(value:any) { + if('userType' in value) { + this.props.cookies.set(user_type_cookie, value.userType) + } + if('timeScore' in value){ + this.props.cookies.set(time_score,value.timeScore) + } + this.setState(value) + } } diff --git a/src/entity.ts b/src/entity.ts index 58d44ef..d9f0bf2 100644 --- a/src/entity.ts +++ b/src/entity.ts @@ -194,6 +194,8 @@ export interface User{ chatStatus?:boolean; //是否我的好友 isMyFriend?:boolean; + //时间币 + timeScore?:boolean; } /** @@ -232,8 +234,6 @@ export interface UserEdit{ newPassword:string; //确认新密码 confirmNewPwd:string; - //缓存用户身份 - oldUserType?:String; } diff --git a/src/interface.ts b/src/interface.ts index c29f603..45d42b3 100644 --- a/src/interface.ts +++ b/src/interface.ts @@ -33,7 +33,9 @@ export const API={ //刷新聊天室状态 refreshChat:prefix.user+"/chat/status", //查找用户 - findUser:prefix.user+"/find/name" + findUser:prefix.user+"/find/name", + //查找本人信息 + findOwn:prefix.user+"/find/own" }, main:{ activity: { diff --git a/src/my/MyHelp.tsx b/src/my/MyHelp.tsx index 1e487ea..6fcc47f 100644 --- a/src/my/MyHelp.tsx +++ b/src/my/MyHelp.tsx @@ -7,13 +7,19 @@ import {EmptyBodyTransform, HelpRes, HelpTransform, PageDataMessage, SimpleMessa import {MyDialog} from "../ui/MyDialog"; import {changeActivity} from "../public"; import {Input} from "../ui/InputGroup"; +import {Cookies} from "react-cookie"; +import {time_score} from "../account/PropCookie"; const classList="border-info border d-flex justify-content-center align-items-center" /** * 我的帮助 */ -export class MyHelp extends React.Component<{ undefined?:undefined }, +export class MyHelp extends React.Component<{ + //刷新用户信息 + refreshFun?:Function; + cookies?:Cookies; +}, { data?:Array, @@ -22,6 +28,7 @@ export class MyHelp extends React.Component<{ undefined?:undefined }, //活动评价 activeScore:number, historyId:number|null; + timeScore?:string; }>{ @@ -90,8 +97,12 @@ export class MyHelp extends React.Component<{ undefined?:undefined }, {help.hasEnd?null: } @@ -178,9 +189,16 @@ export class MyHelp extends React.Component<{ undefined?:undefined }, ):

帮助信息加载中

} - this.setState({ - result:null - })}/> + { + this.setState({ + result:null + }) + if(this.props.cookies?.get(time_score)!==this.state.timeScore&&this.props.refreshFun) { + this.props.refreshFun({ + timeScore:this.state.timeScore + }) + } + }}/> diff --git a/src/my/MyInfo.tsx b/src/my/MyInfo.tsx index 3a12678..021ef74 100644 --- a/src/my/MyInfo.tsx +++ b/src/my/MyInfo.tsx @@ -21,6 +21,8 @@ import {user_type_cookie} from "../account/PropCookie"; */ export class MyInfo extends React.Component< { + //刷新用户信息 + refreshFun?:Function, //查看用户id userId:string; //查看本人 @@ -88,7 +90,6 @@ export class MyInfo extends React.Component< info:res.info?.info, userType:res.info?.userType, sex:res.info?.sex, - oldUserType:res.info?.userType, contentEditable:false, modifyPassword:false, @@ -96,7 +97,8 @@ export class MyInfo extends React.Component< newPassword:"", confirmNewPwd:"", } - });break + }) + break } }) @@ -164,10 +166,10 @@ export class MyInfo extends React.Component< }) let that=this - let isUpdateUserType=this.state.userEdit.userType!==this.state.userEdit.oldUserType - if(isUpdateUserType&&this.props.cookies){ - this.props.cookies.set(user_type_cookie,this.state.userEdit.userType) - } + // let isUpdateUserType=this.state.userEdit.userType!==this.state.userEdit.oldUserType + // if(isUpdateUserType&&this.props.cookies){ + // this.props.cookies.set(user_type_cookie,this.state.userEdit.userType) + // } request(API.account.update,Method.POST, { headImg:this.state.userEdit.headImg||"", name:this.state.userEdit.name||"", @@ -187,10 +189,10 @@ export class MyInfo extends React.Component< case SimpleMessage.ok: that.loadInfo(); //TODO 更新用户身份 + that.setState({ result:

更新信息成功

- {isUpdateUserType?:null}
}) break @@ -353,9 +355,16 @@ export class MyInfo extends React.Component< } - this.setState({ - result:null - })}/> + { + this.setState({ + result:null + }) + if(this.props.cookies?.get(user_type_cookie)!==this.state.userEdit.userType&&this.props.refreshFun) { + this.props.refreshFun({ + userType:this.state.userEdit.userType + }) + } + }}/> ) } diff --git a/src/my/MyMessage.tsx b/src/my/MyMessage.tsx index f585956..4b0078b 100644 --- a/src/my/MyMessage.tsx +++ b/src/my/MyMessage.tsx @@ -14,15 +14,24 @@ enum Menu { /** * 个人信息 */ -export class MyMessage extends React.Component<{ user:string,cookies:Cookies }, { subMenu:Menu,page:JSX.Element }>{ +export class MyMessage extends React.Component<{ + user:string, + cookies:Cookies, + //刷新用户信息 + refreshFun?:Function, +}, { + subMenu:Menu, + page:JSX.Element +}>{ + private defaultMenu=this.props.refreshFun?this.props.refreshFun(value):null} cookies={this.props.cookies} userId={this.props.user} isOwn={true} isAdd={false}/> constructor(props: Readonly) { super(props); this.state={ subMenu:Menu.info, - page: + page:this.defaultMenu } } @@ -31,10 +40,10 @@ export class MyMessage extends React.Component<{ user:string,cookies:Cookies }, this.setState({subMenu:menu}) switch (menu) { case Menu.info: - this.setState({page:}) + this.setState({page:this.defaultMenu}) break case Menu.help: - this.setState({page:}) + this.setState({page:this.props.refreshFun?this.props.refreshFun(value):null}/>}) break case Menu.seekHelp: this.setState({page:}) diff --git a/src/public.tsx b/src/public.tsx index 8fb1628..9dd5ca0 100644 --- a/src/public.tsx +++ b/src/public.tsx @@ -1,7 +1,7 @@ // 一些组件公用函数 -import {API, JSONResponse, Method, request} from "./interface"; +import {API, Method, request} from "./interface"; import {ActivityStatus} from "./entity"; -import {EmptyBodyTransform, SimpleMessage} from "./result"; +import {ChangeActivityRes, ChangeActivityTransform, SimpleMessage} from "./result"; import React from "react"; export function changeActivity(activityId:number,activityStatus:ActivityStatus,that:React.Component,callback:Function){ @@ -9,10 +9,10 @@ export function changeActivity(activityId:number,activityStatus:ActivityStatus,t request(API.main.activity.apply,Method.POST,{ activityId:activityId+"", activityStatus:activityStatus.toString() - },new EmptyBodyTransform(),function (res:JSONResponse) { + },new ChangeActivityTransform(),function (res:ChangeActivityRes) { switch (res.customResult) { case SimpleMessage.ok: - callback() + callback(res.timeScore) that.setState({ result:

{getStatus(activityStatus)}成功

});break diff --git a/src/result.ts b/src/result.ts index 49eb4ca..ae589ab 100644 --- a/src/result.ts +++ b/src/result.ts @@ -275,3 +275,23 @@ export class UserTransform extends PageDataTransform{ } } +/** + * 改变活动状态 + */ +export class ChangeActivityRes implements JSONResponse{ + timeScore?:number; + customResult?:SimpleMessage; + result?: Result; +} + +export class ChangeActivityTransform extends TransformData{ + protected newObject(): ChangeActivityRes { + return new ChangeActivityRes(); + } + + + protected transformBody(data: any) { + this.target.timeScore=data.body + } +} +