From 6e4ba4f201ce63cd11daceed85bcaac38edf740d Mon Sep 17 00:00:00 2001 From: pan <1029559041@qq.com> Date: Sat, 30 May 2020 07:19:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B4=BB=E5=8A=A8=E8=AF=A6=E6=83=85=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Main.tsx | 2 +- src/my/MyLeaveWord.tsx | 6 ++++-- src/public.tsx | 19 ++++++++++++++++++- src/sub/IndexMenu.tsx | 23 ++++++++++------------- src/ui/Activity.tsx | 11 ++++++++--- 5 files changed, 41 insertions(+), 20 deletions(-) diff --git a/src/Main.tsx b/src/Main.tsx index 5af2517..6353612 100644 --- a/src/Main.tsx +++ b/src/Main.tsx @@ -148,7 +148,7 @@ export class Main extends React.Component< break; case DialogType.leaveWord: this.setState({ - my:{menuName:dialogType,content:,open:true} + my:{menuName:dialogType,content:,open:true} }) break; case DialogType.message: diff --git a/src/my/MyLeaveWord.tsx b/src/my/MyLeaveWord.tsx index ab1ab62..c255ffb 100644 --- a/src/my/MyLeaveWord.tsx +++ b/src/my/MyLeaveWord.tsx @@ -8,13 +8,15 @@ import {Activity} from "../ui/Activity"; import {API, JSONResponse, Method, prefix, request} from "../interface"; import {EmptyBodyTransform, LeaveWordRes, LeaveWordTransform, PageDataMessage, SimpleMessage} from "../result"; import {changeActivity} from "../public"; +import {Cookies} from "react-cookie"; /** * 我的留言 */ export class MyLeaveWord extends React.Component< { - user:string + user:string, + cookies:Cookies }, { //留言信息 @@ -197,7 +199,7 @@ export class MyLeaveWord extends React.Component< content={} open={this.state.openUserInfo} onClose={()=>this.setState({openUserInfo:false})}/> - { + { changeActivity(activeId,ActivityStatus.apply, this,function () { }) this.setState({activityId:null}) diff --git a/src/public.tsx b/src/public.tsx index 87c95d3..953efaa 100644 --- a/src/public.tsx +++ b/src/public.tsx @@ -1,6 +1,6 @@ // 一些组件公用函数 import {API, Method, request} from "./interface"; -import {ActivityStatus} from "./entity"; +import {ActivityDetail, ActivityStatus, UserType} from "./entity"; import { ChangeActivityRes, ChangeActivityTransform, @@ -10,6 +10,8 @@ import { UserTransform } from "./result"; import React from "react"; +import {user_cookie, user_type_cookie} from "./account/PropCookie"; +import {Cookies} from "react-cookie"; /** * 更新活动状态 @@ -65,3 +67,18 @@ export function loadMyFriend(name:string,that:React.Component){ }) } + +//参与活动提示 +export function showActivityTip(activity:ActivityDetail, that:React.Component<{ cookies:Cookies },any>,button:JSX.Element){ + if(that.props.cookies.get(user_type_cookie)===UserType.seekHelp){ + return null + }else if(activity.userId===that.props.cookies.get(user_cookie)){ + return 我发布的活动 + }else if(activity.hasApply){ + return 已报名 + }else if(activity.hasStart){ + return 活动已开始 + }else{ + return button + } +} diff --git a/src/sub/IndexMenu.tsx b/src/sub/IndexMenu.tsx index dfb8f90..54c6d9e 100644 --- a/src/sub/IndexMenu.tsx +++ b/src/sub/IndexMenu.tsx @@ -2,15 +2,14 @@ import React from "react"; import {Button, Card, Col, Container, Image, ListGroup, Row} from "react-bootstrap"; import {Page} from "../ui/Page"; -import {ActivityDetail, ActivityStatus, PageProps, UserType} from "../entity"; +import {ActivityDetail, ActivityStatus, PageProps} from "../entity"; import {MyDialog} from "../ui/MyDialog"; import {Activity} from "../ui/Activity"; import {Input} from "../ui/InputGroup"; import {API, Method, prefix, request} from "../interface"; import {FindActivityRes, FindActivityTransform, PageDataMessage} from "../result"; import {Cookies} from "react-cookie"; -import {user_cookie, user_type_cookie} from "../account/PropCookie"; -import {changeActivity} from "../public"; +import {changeActivity, showActivityTip} from "../public"; /** * 首页 @@ -46,6 +45,8 @@ export class IndexMenu extends React.Component<{ cookies:Cookies }, this.loadActivity(1) } + + /** * 加载活动列表 * @param page @@ -77,6 +78,7 @@ export class IndexMenu extends React.Component<{ cookies:Cookies }, render() { + let that=this const rowList=this.state.activityList?this.state.activityList.length===0?

当前没有活动可报名

:this.state.activityList.map((activities:Array, index:number)=> {activities.map((activity:ActivityDetail, subIndex:number)=> @@ -95,18 +97,13 @@ export class IndexMenu extends React.Component<{ cookies:Cookies }, - - {this.props.cookies.get(user_type_cookie)===UserType.seekHelp - ||activity.userId===this.props.cookies.get(user_cookie) - ||activity.hasApply||activity.hasStart?null: + + {showActivityTip(activity,this,} + }}>帮助)} )} @@ -128,7 +125,7 @@ export class IndexMenu extends React.Component<{ cookies:Cookies }, {this.state.page?this.loadActivity(page)} currentPage={this.state.page.currentPage} totalPage={this.state.page.totalPage} pageSize={this.state.page.pageSize}/>:null} - { + { let that=this changeActivity(activeId,ActivityStatus.apply, this,function () { that.loadActivity(1) diff --git a/src/ui/Activity.tsx b/src/ui/Activity.tsx index 7c7fd3b..00a6fba 100644 --- a/src/ui/Activity.tsx +++ b/src/ui/Activity.tsx @@ -4,6 +4,8 @@ import {ActivityDetail} from "../entity"; import moment from "moment"; import {API, Method, prefix, request} from "../interface"; import {ActivityDetailRes, ActivityDetailTransform, SimpleMessage} from "../result"; +import {showActivityTip} from "../public"; +import {Cookies} from "react-cookie"; /** * 活动信息 @@ -19,6 +21,7 @@ export class Activity extends React.Component< * 报名方法 */ applyFunction?:Function; + cookies:Cookies; }, { activity?:ActivityDetail , @@ -26,7 +29,7 @@ export class Activity extends React.Component< }>{ - constructor(props: Readonly<{ activityId: number | null; hideButton: boolean; applyFunction?: Function }>) { + constructor(props: Readonly<{ activityId: number | null; hideButton: boolean; applyFunction?: Function; cookies:Cookies }>) { super(props); this.state={ @@ -71,8 +74,10 @@ export class Activity extends React.Component<

{this.state.activity.title}

{this.state.activity.content}

{"活动开始时间:"+moment(this.state.activity.activityStartTime).format("YYYY-MM-DD HH:mm:ss")}
-
{"活动结束时间:"+moment(this.state.activity.activityStartTime).format("YYYY-MM-DD HH:mm:ss")}
- {this.props.hideButton?null:
} +
{"活动结束时间:"+moment(this.state.activity.activityEndTime).format("YYYY-MM-DD HH:mm:ss")}
+ + {
{showActivityTip(this.state.activity,this, + )}
} :this.state.result}