From 08a8a1b020879d1893278bac6aa0795f48f61f91 Mon Sep 17 00:00:00 2001 From: pan <1029559041@qq.com> Date: Wed, 27 May 2020 11:27:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BF=97=E6=84=BF=E8=80=85=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E5=AF=B9=E6=8E=A5=E6=9C=8D=E5=8A=A1=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/interface.ts | 18 +++++----- src/result.ts | 46 ++++++++++++++++++++++++-- src/sub/IndexMenu.tsx | 10 +++--- src/sub/Volunteer.tsx | 76 ++++++++++++++++++++++++------------------- 4 files changed, 102 insertions(+), 48 deletions(-) diff --git a/src/interface.ts b/src/interface.ts index 561e789..5d239ca 100644 --- a/src/interface.ts +++ b/src/interface.ts @@ -12,7 +12,9 @@ export const API={ //注册 register:prefix.user+"/register", //登录 - login:prefix.user+"/login" + login:prefix.user+"/login", + //查找用户 + find:prefix.user+"/find" }, main:{ activity: { @@ -79,20 +81,18 @@ export abstract class TransformData> { //发送请求 export function request,T extends TransformData>(api:string,method:Method,formParams: {[propName:string]: string | Blob},transform:T,callback:Function) { let formData - if(method!==Method.GET) { + if(method===Method.GET) { + formData=null + }else{ formData=new FormData() for (let formParam in formParams) { formData.append(formParam, formParams[formParam]) } - }else{ - formData='' - for (let formParam in formParams) { - formData+='&'+formParam+'='+formParams[formParam] - } + } - fetch(server+api+(method===Method.GET?"?"+formData.toString().substr(1):""),{ + fetch(server+api,{ method:method, - body:method===Method.GET?null:formData + body:formData }) .then( response=>{if(response.status===200){ diff --git a/src/result.ts b/src/result.ts index bd6c8d0..86fcbb2 100644 --- a/src/result.ts +++ b/src/result.ts @@ -2,7 +2,7 @@ * 返回信息 */ import {JSONResponse, Result, TransformData} from "./interface"; -import {ActivityDetail, PageProps, UserType} from "./entity"; +import {ActivityDetail, PageProps, User, UserType} from "./entity"; /** * 注册响应信息 @@ -106,7 +106,9 @@ export class SendHelpTransform extends TransformData{ + dataList?:Array> + page?:PageProps +} + +/** + * 用户数据转换 + */ +export class FindUserTransform extends TransformData{ + protected newObject(): FindUserRes { + return new FindUserRes(); + } + + protected transformBody(data: any) { + if(data.body!==null){ + this.target.dataList=data.body.body + this.target.page={ + currentPage:data.body.currentPage, + totalPage:data.body.totalPage, + pageSize:data.body.pageSize + } + } + + } +} + + diff --git a/src/sub/IndexMenu.tsx b/src/sub/IndexMenu.tsx index 691c7b5..923e986 100644 --- a/src/sub/IndexMenu.tsx +++ b/src/sub/IndexMenu.tsx @@ -67,10 +67,7 @@ export class IndexMenu extends React.Component<{ user:string }, loadActivity(page:number){ console.debug("检索活动关键字:"+this.state.title) let that=this - request(API.main.activity.find,Method.GET,{ - title:this.state.title, - currentPage:page+"" - },new FindActivityTransform(),function (res:FindActivityRes) { + request(API.main.activity.find+'?title='+this.state.title+"¤tPage="+page,Method.GET, {},new FindActivityTransform(),function (res:FindActivityRes) { switch(res.customResult){ @@ -83,6 +80,11 @@ export class IndexMenu extends React.Component<{ user:string }, activityList:res.dataList, page:res.page });break + case FindActivityMessage.empty: + that.setState({ + page:res.page, + result:

当前没有活动记录!!!

+ });break; } }) } diff --git a/src/sub/Volunteer.tsx b/src/sub/Volunteer.tsx index 6c79c92..5843815 100644 --- a/src/sub/Volunteer.tsx +++ b/src/sub/Volunteer.tsx @@ -4,19 +4,22 @@ import {Input} from "../ui/InputGroup"; import {PageProps, User} from "../entity"; import {Page} from "../ui/Page"; import {Address} from "../ui/Address"; -import {userObj} from "../ui/TestData"; +import {API, Method, request} from "../interface" +import {FindUserMessage, FindUserRes, FindUserTransform} from "../result"; +import {MyDialog} from "../ui/MyDialog"; /** * 志愿者信息 */ -export class Volunteer extends React.Component<{ undefined?:undefined }, { +export class Volunteer extends React.Component<{ undefined?:undefined }, + { form:{ keyword:string; - address:string; + serviceAddress:string|null; }; - addressList:Array<{address:string}>; - volunteerList:Array>; - page:PageProps; + volunteerList?:Array>; + page?:PageProps; + result:JSX.Element|null; }>{ @@ -24,26 +27,10 @@ export class Volunteer extends React.Component<{ undefined?:undefined }, { super(props); this.state={ + result: null, form:{ keyword:"", - address:"" - }, - addressList:[ - { - address:"北京", - }, - { - address:"广州", - }, - { - address:"上海", - } - ], - volunteerList:[], - page:{ - currentPage:1, - totalPage:3, - pageSize:9 + serviceAddress:"" } } } @@ -57,10 +44,32 @@ export class Volunteer extends React.Component<{ undefined?:undefined }, { */ loadVolunteerList(page:number){ - const array=[userObj,userObj,userObj,userObj] - - this.setState({ - volunteerList:[array,array,array,array] + let that=this + request(API.account.find+'?info='+this.state.form.keyword+'&serviceAddress='+this.state.form.serviceAddress + +'¤tPage='+page+'&userTypes=seekHelp',Method.GET,{},new FindUserTransform(),function(res:FindUserRes){ + switch (res.customResult) { + case FindUserMessage.ok: + that.setState({ + volunteerList:res.dataList, + form:{ + keyword:that.state.form.keyword, + serviceAddress:that.state.form.serviceAddress + } + }) + break + case FindUserMessage.fail: + that.setState({ + form:{ + keyword:that.state.form.keyword, + serviceAddress:that.state.form.serviceAddress + }, + result:

志愿者搜索失败,请联系管理员

+ });break + case FindUserMessage.empty: + that.setState({ + result:

当前没有任何志愿者!!!

+ });break + } }) } @@ -72,13 +81,13 @@ export class Volunteer extends React.Component<{ undefined?:undefined }, { this.setState({form:{ keyword:value, - address:this.state.form.address + serviceAddress:this.state.form.serviceAddress }})}/>
this.setState({ form:{ keyword:this.state.form.keyword, - address:value + serviceAddress:value } })}/> @@ -87,7 +96,7 @@ export class Volunteer extends React.Component<{ undefined?:undefined }, { {/*this.loadVolunteerList(page)} currentPage={this.state.page.currentPage} totalPage={this.state.page.totalPage} pageSize={this.state.page.pageSize}/>*/} - {this.state.volunteerList.map((volunteers:Array, index:number)=> + {this.state.volunteerList?this.state.volunteerList.map((volunteers:Array, index:number)=>
{volunteers.map((volunteer:User, subIndex:number)=>
@@ -109,10 +118,11 @@ export class Volunteer extends React.Component<{ undefined?:undefined }, {
)}
- )} + ):null} + this.setState({result:null})}/> - this.loadVolunteerList(page)} currentPage={this.state.page.currentPage} totalPage={this.state.page.totalPage} pageSize={this.state.page.pageSize}/> + {this.state.page?this.loadVolunteerList(page)} currentPage={this.state.page.currentPage} totalPage={this.state.page.totalPage} pageSize={this.state.page.pageSize}/>:null}