From 181677ff4eea0730eccdee626f8d45905000c806 Mon Sep 17 00:00:00 2001 From: pan <1029559041@qq.com> Date: Sat, 30 May 2020 05:58:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=B9=E6=8E=A5=E6=9C=8D=E5=8A=A1=E7=AB=AF?= =?UTF-8?q?=20=E5=8F=91=E5=B8=83=E6=B1=82=E5=8A=A9=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E6=8E=A8=E8=8D=90=E7=BB=99=E6=8C=87=E5=AE=9A=E5=A5=BD=E5=8F=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/entity.ts | 11 ++++++---- src/interface.ts | 15 ++++++++++++-- src/my/MyFriend.tsx | 24 +++------------------- src/my/MyLeaveWord.tsx | 10 ++++++--- src/public.tsx | 35 +++++++++++++++++++++++++++++++- src/sub/IndexMenu.tsx | 25 ++++++++++++++--------- src/sub/SendHelp.tsx | 46 +++++++++++++++--------------------------- src/ui/Activity.tsx | 8 ++++---- src/ui/UploadImg.tsx | 3 +++ 9 files changed, 103 insertions(+), 74 deletions(-) diff --git a/src/entity.ts b/src/entity.ts index d9f0bf2..c70d889 100644 --- a/src/entity.ts +++ b/src/entity.ts @@ -41,9 +41,12 @@ export interface VolunteerProps { * 推荐方式 */ export enum RecommendType { - no="不推荐", - choose="手动推荐", - auto="系统推荐" + //不推荐 + no="no", + //手动推荐 + choose="choose", + //系统推荐 + auto="auto" } /** @@ -102,7 +105,7 @@ export interface SendHelpState extends BaseHelp{ //服务地点 serviceAddress:string; //推荐方式 - recommendType:RecommendType; + recommendType:string; //好友列表 friendList:Array; //已选中好友列表 diff --git a/src/interface.ts b/src/interface.ts index 45d42b3..73acdfa 100644 --- a/src/interface.ts +++ b/src/interface.ts @@ -1,5 +1,6 @@ //服务端地址 + const server="http://localhost:8080" export const prefix={ @@ -110,14 +111,24 @@ export abstract class TransformData> { } //发送请求 -export function request,T extends TransformData>(api:string,method:Method,formParams: {[propName:string]: string | Blob},transform:T,callback:Function) { +export function request,T extends TransformData>(api:string,method:Method,formParams: {[propName:string]: string | Blob|Array},transform:T,callback:Function) { let formData if(method===Method.GET) { formData=null }else{ formData=new FormData() for (let formParam in formParams) { - formData.append(formParam, formParams[formParam]) + let params= formParams[formParam] + if(params instanceof Array){ + for(let value in params){ + if(params.hasOwnProperty(value)) { + formData.append(formParam + '[]', params[value]) + } + } + }else if(params instanceof Blob||typeof params==="string"){ + formData.append(formParam,params) + } + } } diff --git a/src/my/MyFriend.tsx b/src/my/MyFriend.tsx index 2a82f56..577935c 100644 --- a/src/my/MyFriend.tsx +++ b/src/my/MyFriend.tsx @@ -8,6 +8,7 @@ import {MyDialog} from "../ui/MyDialog"; import {userObj} from "../ui/TestData"; import {API, JSONResponse, Method, request} from "../interface"; import {EmptyBodyTransform, PageDataMessage, SimpleMessage, UserRes, UserTransform} from "../result"; +import {loadMyFriend} from "../public"; const maxLength=150 /** @@ -61,7 +62,7 @@ export class MyFriend extends React.Component< } componentDidMount() { - this.loadMyFriend() + loadMyFriend('',this) this.joinChat() } @@ -124,25 +125,6 @@ export class MyFriend extends React.Component< } } - //查找我的好友 - loadMyFriend(){ - - let that=this - request(API.account.myFriend+"?currentPage=1",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:

查找好友失败,请联系管理员

- }) - } - }) - - } //加载聊天记录 loadMyChat(user:User){ @@ -165,7 +147,7 @@ export class MyFriend extends React.Component< this.setState({ queryFriend:e.target.value }) - this.loadMyFriend() + loadMyFriend(e.target.value,this) }}/> {this.state.friendList?this.state.friendList.map((friend:User,index:number)=> diff --git a/src/my/MyLeaveWord.tsx b/src/my/MyLeaveWord.tsx index db31e60..ab1ab62 100644 --- a/src/my/MyLeaveWord.tsx +++ b/src/my/MyLeaveWord.tsx @@ -1,12 +1,13 @@ import React from "react"; import {Button, Col, Container, Image, Row} from "react-bootstrap"; -import {LeaveWord, LeaveWordType} from "../entity"; +import {ActivityStatus, LeaveWord, LeaveWordType} from "../entity"; import {Tooltip} from "@material-ui/core"; import {MyDialog} from "../ui/MyDialog"; import {MyInfo} from "./MyInfo"; 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"; /** * 我的留言 @@ -188,7 +189,6 @@ export class MyLeaveWord extends React.Component< ) } - render() { return (
@@ -197,7 +197,11 @@ 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}) + }} />} open={this.state.activityId!=null} titleId="view-activity" menuName="活动详情" onClose={()=>this.setState({activityId:null})}/> diff --git a/src/public.tsx b/src/public.tsx index 9dd5ca0..87c95d3 100644 --- a/src/public.tsx +++ b/src/public.tsx @@ -1,9 +1,23 @@ // 一些组件公用函数 import {API, Method, request} from "./interface"; import {ActivityStatus} from "./entity"; -import {ChangeActivityRes, ChangeActivityTransform, SimpleMessage} from "./result"; +import { + ChangeActivityRes, + ChangeActivityTransform, + PageDataMessage, + SimpleMessage, + UserRes, + UserTransform +} from "./result"; import React from "react"; +/** + * 更新活动状态 + * @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,{ @@ -32,3 +46,22 @@ export function getStatus(status:ActivityStatus){ 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:

查找好友失败,请联系管理员

+ }) + } + }) + +} diff --git a/src/sub/IndexMenu.tsx b/src/sub/IndexMenu.tsx index ecf2ab2..dfb8f90 100644 --- a/src/sub/IndexMenu.tsx +++ b/src/sub/IndexMenu.tsx @@ -16,7 +16,6 @@ import {changeActivity} from "../public"; * 首页 */ export class IndexMenu extends React.Component<{ cookies:Cookies }, - { //活动数据 activityList?:Array>; @@ -25,7 +24,9 @@ export class IndexMenu extends React.Component<{ cookies:Cookies }, //检索活动标题 title:string; result:JSX.Element|null; - activeId:number|null; + activityId:number|null; + //显示帮助按钮 + hideButton:boolean; }>{ @@ -34,7 +35,8 @@ export class IndexMenu extends React.Component<{ cookies:Cookies }, super(props); this.state={ - activeId: null, + hideButton: true, + activityId: null, result: null, title:"" } @@ -93,8 +95,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: + {this.props.cookies.get(user_type_cookie)===UserType.seekHelp + ||activity.userId===this.props.cookies.get(user_cookie) + ||activity.hasApply||activity.hasStart?null:
:null} + {this.props.hideButton?null:
} :this.state.result} diff --git a/src/ui/UploadImg.tsx b/src/ui/UploadImg.tsx index 54467a2..b37e879 100644 --- a/src/ui/UploadImg.tsx +++ b/src/ui/UploadImg.tsx @@ -54,6 +54,9 @@ export class UploadImg extends React.Component< accept="image/*" onChange={(e:any)=>{ const file=e.target.files[0] + if(!file){ + return + } this.setState({ imgObj:URL.createObjectURL(file), imageName:e.target.value