You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
87 lines
3.0 KiB
87 lines
3.0 KiB
// 一些组件公用函数
|
|
import {Method, request} from "./interface";
|
|
import {ActivityDetail, ActivityStatus, UserType} from "./entity";
|
|
import {
|
|
ChangeActivityRes,
|
|
ChangeActivityTransform,
|
|
PageDataMessage,
|
|
SimpleMessage,
|
|
UserRes,
|
|
UserTransform
|
|
} from "./result";
|
|
import React from "react";
|
|
import {user_cookie, user_type_cookie} from "./account/PropCookie";
|
|
import {Cookies} from "react-cookie";
|
|
import {Api} from "./api";
|
|
|
|
/**
|
|
* 更新活动状态
|
|
* @param activityId
|
|
* @param activityStatus
|
|
* @param that
|
|
* @param callback
|
|
*/
|
|
export function changeActivity(activityId:number,activityStatus:ActivityStatus,that:React.Component,callback:Function){
|
|
|
|
request(Api.main.activity.apply,Method.POST,{
|
|
activityId:activityId+"",
|
|
activityStatus:activityStatus.toString()
|
|
},new ChangeActivityTransform(),function (res:ChangeActivityRes) {
|
|
switch (res.customResult) {
|
|
case SimpleMessage.ok:
|
|
callback(res.timeScore)
|
|
that.setState({
|
|
result:<div>
|
|
<h3 className="text-info text-center">{getStatus(activityStatus)}成功,{ActivityStatus.complete===activityStatus?'关闭此窗口将刷新时间币':null}</h3>
|
|
</div>
|
|
});break
|
|
case SimpleMessage.fail:
|
|
that.setState({
|
|
result:<h3 className="text-danger text-center">{getStatus(activityStatus)}失败,请联系管理员</h3>
|
|
});break
|
|
}
|
|
})
|
|
}
|
|
|
|
//活动状态转换
|
|
export function getStatus(status:ActivityStatus){
|
|
switch (status) {
|
|
case ActivityStatus.apply:return "报名"
|
|
case ActivityStatus.join:return "参与"
|
|
case ActivityStatus.complete:return "完成"
|
|
}
|
|
}
|
|
|
|
|
|
//查找我的好友
|
|
export function loadMyFriend(name:string,that:React.Component){
|
|
request(Api.account.myFriend+"?currentPage=1&name="+name,Method.GET, {},new UserTransform(),function (res:UserRes) {
|
|
switch (res.customResult) {
|
|
case PageDataMessage.ok:
|
|
that.setState({
|
|
friendList:res.dataList
|
|
})
|
|
break
|
|
case PageDataMessage.fail:
|
|
that.setState({
|
|
result:<h3 className="text-danger text-center">查找好友失败,请联系管理员</h3>
|
|
})
|
|
}
|
|
})
|
|
|
|
}
|
|
|
|
//参与活动提示
|
|
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 <span className="text-danger text-center">我发布的活动</span>
|
|
}else if(activity.hasApply){
|
|
return <span className="text-danger text-center">已报名</span>
|
|
}else if(activity.hasStart){
|
|
return <span className="text-danger text-center">活动已开始</span>
|
|
}else{
|
|
return button
|
|
}
|
|
}
|
|
|