import React from "react"; import {Button, Col, Container, Image, Row} from "react-bootstrap"; import {ActivityStatus, LeaveWord, LeaveWordType, PageProps} from "../entity"; import {Tooltip} from "@material-ui/core"; import {MyDialog} from "../ui/MyDialog"; import {MyInfo} from "./MyInfo"; import {Activity} from "../ui/Activity"; import {JSONResponse, Method, request} from "../interface"; import {EmptyBodyTransform, LeaveWordRes, LeaveWordTransform, PageDataMessage, SimpleMessage} from "../result"; import {changeActivity, scrollBottom} from "../public"; import {Cookies} from "react-cookie"; import {Api, prefix} from "../api"; import {SimpleSnackbar} from "../ui/toast"; /** * 我的留言 */ export class MyLeaveWord extends React.Component< { user:string, cookies:Cookies }, { //留言信息 data?:Array; //打开用户信息弹框 openUserInfo:boolean; //用户id userId?:string; //活动详情 activityId:number|null; //加载提示 result:JSX.Element|null; scrollTip:string|null, page?:PageProps }>{ constructor(props: Readonly) { super(props); this.state={ result: null, activityId: null, data:[], openUserInfo:false, scrollTip:null } } componentDidMount() { this.loadLeaveWord(1) } /** * 加载留言 */ loadLeaveWord(page:number){ let that=this request(Api.account.leaveWord,Method.GET,{currentPage:String(page)},new LeaveWordTransform(),function (res:LeaveWordRes) { switch (res.customResult) { case PageDataMessage.ok: that.setState({ data: (that.state.data||[]).concat(res.dataList||[]), page: res.page, scrollTip: page > 1 ? '成功加载第' + page + '页数据' : null, }) break case PageDataMessage.fail: that.setState({ result:

留言列表加载失败

}) break } }) } /** * 解析留言类型 * @param type */ getType(type:LeaveWordType){ switch (type) { case LeaveWordType.recommend:return "推荐提示" case LeaveWordType.apply:return "报名提示" case LeaveWordType.join:return "参加提示" case LeaveWordType.complete:return "完成提示" case LeaveWordType.friend:return "好友验证" } } /** * 拒绝好友邀请 * @param id */ doRefuse(id:number){ let that=this request(Api.account.refuse+"/"+id,Method.POST, {},new EmptyBodyTransform(),function (res:JSONResponse) { switch (res.customResult) { case SimpleMessage.ok: that.setState({ result:

成功拒绝邀请

}) that.loadLeaveWord(1) break case SimpleMessage.fail: that.setState({ result:

拒绝邀请失败,请联系管理员

}) break } }) } /** * 同意好友邀请 * @param data */ doAgree(data:LeaveWord){ let that=this request(Api.account.agree,Method.POST, { leaveWordId:data.leaveWordId+"", sourceUserId:data.userId },new EmptyBodyTransform(),function (res:JSONResponse) { switch (res.customResult) { case SimpleMessage.ok: that.loadLeaveWord(1) that.setState({ result:

添加好友成功

}) break case SimpleMessage.fail: that.setState({ result:

添加好友失败,请联系管理员

}) break } }) } /** * 解析留言 * @param data * @param index */ getData(data:LeaveWord,index:number){ let body if(data.activityId!=null){ body=
{data.title}

{data.content}

}else{ body=
~

{data.info}

} return (

{this.getType(data.type)}

{data.name} {data.type===LeaveWordType.friend? this.setState({openUserInfo:true,userId:data.userId})}/> :null} {body}
) } render() { let that=this return (
scrollBottom(e,that,function () { that.loadLeaveWord((that.state.page?.currentPage||1)+1) })}> {this.state.data?this.state.data.length===0?

没有留言记录

:this.state.data.map((data,index) =>this.getData(data,index)):

留言加载中

} } open={this.state.openUserInfo} onClose={()=>this.setState({openUserInfo:false})}/> { changeActivity(activeId,ActivityStatus.apply, this,function () { }) this.setState({activityId:null}) }} />} open={this.state.activityId!=null} titleId="view-activity" menuName="活动详情" onClose={()=>this.setState({activityId:null})}/> this.setState({ result:null })}/> {this.state.scrollTip!==null?this.setState({scrollTip:null})} duration={1000}/>:null}
) } }