import React from "react"; import {Button, Form, Image, Tab, Table, Tabs} from "react-bootstrap"; import {UserEntity, UserType} from "./entity"; import {Input} from "./ui/InputGroup"; import {JSONResponse, Method, request} from "./interface"; import {API, prefix} from "./api"; import {EmptyBodyTransform, FindUserRes, FindUserTransform, PageDataMessage, SimpleMessage} from "./result"; import {MyDialog} from "./ui/MyDialog"; import {Address} from "./ui/Address"; class EditUser extends React.Component<{ user:UserEntity; modifyUser:Function; }, { user:UserEntity; }>{ private ages:Array constructor(props: Readonly<{ user: UserEntity ,modifyUser:Function;}>) { super(props); this.ages=this.createAge() this.state={ user:this.props.user } } render() { return (
this.setState({ user:{...this.state.user,...{name:value}} })} valid={{check:this.isNotEmpty(this.state.user.name)}}/> this.setState({ user:{...this.state.user,...{age:+value}} }) } as={"select"} options={this.ages.map(value=>)}/> { this.setState({ user:{...this.state.user,...{sex:value}} }) }} options={[ , , ]}/> this.setState({ user:{...this.state.user,...{address:value}} })} valid={{check:this.isNotEmpty(this.state.user.address)}}/>
this.setState({ user:{...this.state.user,...{serviceAddress:value}} }) }/>
this.setState({ user:{...this.state.user,...{userType:value}} }) } options={[, , ]}/> this.setState({ user:{...this.state.user,...{mobile:value}} }) } valid={{check:this.checkMobile()}}/> this.setState({ user:{...this.state.user,...{email:value}} }) } valid={{check:this.checkEmail()}}/> this.setState({ user:{...this.state.user,...{info:value}} }) } valid={{check:this.isNotEmpty(this.state.user.info)}}/>
); } private createAge(){ let age=[] for(let i=18;i<100;i++){ age.push(i) } return age } /** * 检查手机号 */ checkMobile(){ return /1[3456789]\d{9}/g.test(this.state.user.mobile.toString()) } /** * 检查邮箱 */ private checkEmail() { return /[A-Za-z\d]+([-_.][A-Za-z\d]+)*@([A-Za-z\d]+[-.])+[A-Za-z\d]{2,4}/g.test(this.state.user.email) } //检查是否为空 isNotEmpty(...value:(string | number)[]){ for(let index in value){ if(value[index].toString().length===0){ return false } } return true } private check() { return this.isNotEmpty(this.state.user.userId,this.state.user.name,this.state.user.sex, this.state.user.serviceAddress,this.state.user.userType,this.state.user.info) &&this.checkMobile()&&this.checkEmail() } } /** * 用户管理 */ export class User extends React.Component< { undefined?:undefined }, { userList?:Array; tipContent:JSX.Element|null; user?:UserEntity; headImg?:string; dialog:JSX.Element|null; }>{ constructor(props: Readonly) { super(props); this.state={ tipContent:null, dialog:null } } /** * 加载用户信息 */ loadUser(page:number){ let that=this request(API.account.userList,Method.GET,{ currentPage:String(page), userTypes:[UserType.help,UserType.seekHelp] },new FindUserTransform(),function (res:FindUserRes) { switch (res.customResult) { case PageDataMessage.ok: that.setState({ userList:res.dataList }) break case PageDataMessage.fail: that.setState({ tipContent:

加载用户失败

}) break } }) } componentDidMount() { this.loadUser(1) } render() { return ( {this.state.userList?this.state.userList.length>0?this.state.userList.map((user:UserEntity, index:number)=> ):

没有用户信息

:null}
# 用户账号 姓名 年龄 性别 住址 头像 服务地点 用户身份 电话 邮箱 时间币 简介 操作
{index+1} {user.userId} {user.name} {user.age} {user.sex==='man'?'男':'女'} {user.address} {this.setState({ dialog:} open={true} titleId={"image-dialog"} menuName={"图片放大"} onClose={()=>this.setState({ dialog:null })}/> })}/>} {user.serviceAddress} {user.userType===UserType.seekHelp?'服务发起者':'服务接受者'} {user.mobile} {user.email} {user.timeScore} {user.info}
{this.state.dialog} this.setState({ tipContent:null })}/>
); } /** * 修改用户信息 * @param user */ private modifyUser(user: UserEntity) { let that=this request(API.account.updateUser,Method.POST, { userId:user.userId, name:user.name, age:String(user.age), sex:String(user.sex), address:user.address, serviceAddress:user.serviceAddress, userType:user.userType, mobile:user.mobile, email:user.email, info:user.info },new EmptyBodyTransform(),function (res:JSONResponse) { switch (res.customResult) { case SimpleMessage.ok: that.setState({ tipContent:

修改用户信息成功

, dialog:null }) that.loadUser(1) break case SimpleMessage.fail: that.setState({ tipContent:

修改失败,请联系管理员

}) break } }) } }