涉及活动的变量、函数、类命名

master
pan 4 years ago
parent 5839a28099
commit 4610001721
  1. 14
      src/entity.ts
  2. 6
      src/index.css
  3. 28
      src/my/MyHelp.tsx
  4. 46
      src/my/MyLeaveWord.tsx
  5. 14
      src/my/SeekHelp.tsx
  6. 86
      src/sub/IndexMenu.tsx
  7. 6
      src/sub/SendHelp.tsx
  8. 20
      src/ui/Activity.tsx

@ -49,22 +49,22 @@ export enum RecommendType {
*/
export interface BaseHelp {
//活动ID
activeId:number;
activityId:number;
//活动标题
title:string;
//活动内容
content:string;
//活动背景图
activeImg:string;
activityImg:string;
}
//活动详情
export interface ActiveDetail extends BaseHelp{
export interface ActivityDetail extends BaseHelp{
//活动开始时间
activeStartTime:number;
activityStartTime:number;
//活动结束时间
activeEndTime:number;
activityEndTime:number;
}
//我的帮助信息
@ -72,9 +72,9 @@ export interface MyHelpState extends BaseHelp{
//求助时间
seekHelpTime:number;
//活动开始时间
activeStartTime:number;
activityStartTime:number;
//活动结束时间
activeEndTime:number;
activityEndTime:number;
//报名时间
applyTime:number;
//参与时间

@ -14,7 +14,7 @@
width: 20px;
}
/*活动背景图尺寸*/
.activeImage{
.activityImage{
height: 100px;
width: 100px;
}
@ -65,7 +65,7 @@
/**
* 活动首页正文内容限制
*/
.active-text-limit{
.activity-text-limit{
-webkit-line-clamp:3;
}
@ -133,7 +133,7 @@
/**
* 活动详情高度
*/
.active-detail-height{
.activity-detail-height{
height: 450px;
}

@ -71,19 +71,19 @@ export class MyHelp extends React.Component<{ undefined?:undefined }, { data:Arr
this.setState({
data:[{
//活动Id
activeId:123,
activityId:123,
//活动标题
title:"活动标题",
//活动内容
content:"活动内容",
//活动背景图
activeImg: "logo512.png",
activityImg: "logo512.png",
//求助时间
seekHelpTime:new Date().getTime(),
//活动开始时间
activeStartTime:new Date().getTime(),
activityStartTime:new Date().getTime(),
//活动结束时间
activeEndTime:new Date().getTime(),
activityEndTime:new Date().getTime(),
//报名时间
applyTime:new Date().getTime(),
//参与时间
@ -95,19 +95,19 @@ export class MyHelp extends React.Component<{ undefined?:undefined }, { data:Arr
},
{
//活动Id
activeId:123,
activityId:123,
//活动标题
title:"活动标题",
//活动内容
content:"活动内容",
//活动背景图
activeImg: "logo512.png",
activityImg: "logo512.png",
//求助时间
seekHelpTime:new Date().getTime(),
//活动开始时间
activeStartTime:new Date().getTime(),
activityStartTime:new Date().getTime(),
//活动结束时间
activeEndTime:new Date().getTime(),
activityEndTime:new Date().getTime(),
//报名时间
applyTime:new Date().getTime(),
//参与时间
@ -118,19 +118,19 @@ export class MyHelp extends React.Component<{ undefined?:undefined }, { data:Arr
score: Math.ceil(Math.random()*10),
},{
//活动Id
activeId:123,
activityId:123,
//活动标题
title:"活动标题",
//活动内容
content:"活动内容",
//活动背景图
activeImg: "logo512.png",
activityImg: "logo512.png",
//求助时间
seekHelpTime:new Date().getTime(),
//活动开始时间
activeStartTime:new Date().getTime(),
activityStartTime:new Date().getTime(),
//活动结束时间
activeEndTime:new Date().getTime(),
activityEndTime:new Date().getTime(),
//报名时间
applyTime:new Date().getTime(),
//参与时间
@ -151,7 +151,7 @@ export class MyHelp extends React.Component<{ undefined?:undefined }, { data:Arr
<Container>
<Row>
<Col xs={4}>
<Image src={help.activeImg} className="activeImage"/>
<Image src={help.activityImg} className="activityImage"/>
</Col>
<Col>
<h5>{help.title}</h5>
@ -164,7 +164,7 @@ export class MyHelp extends React.Component<{ undefined?:undefined }, { data:Arr
)}
</Row>
<Row>
{[help.seekHelpTime,help.activeStartTime,help.activeEndTime].map((time:number,index:number)=>
{[help.seekHelpTime,help.activityStartTime,help.activityEndTime].map((time:number, index:number)=>
<Col className="border-info border" key={"col"+index}>{moment(time).format("YYYY-MM-DD HH:mm:ss")}</Col>
)}
</Row>

@ -1,10 +1,10 @@
import React from "react";
import {Button, Col, Container, Image, Row} from "react-bootstrap";
import {ActiveDetail, User} from "../entity";
import {ActivityDetail, User} from "../entity";
import {Tooltip} from "@material-ui/core";
import {MyDialog} from "../ui/MyDialog";
import {MyInfo} from "./MyInfo";
import {Active} from "../ui/Active";
import {Activity} from "../ui/Activity";
import {userObj} from "../ui/TestData";
enum LeaveWordType {
@ -16,7 +16,7 @@ enum LeaveWordType {
}
interface Type1{
active:ActiveDetail;
activity:ActivityDetail;
user:User;
type:LeaveWordType;
}
@ -38,16 +38,16 @@ export class MyLeaveWord extends React.Component<{ user:string },
//用户id
userId?:string;
//打开活动信息弹框
openActive:boolean;
openActivity:boolean;
//活动详情
active?:ActiveDetail;
activity?:ActivityDetail;
}>{
constructor(props: Readonly<any>) {
super(props);
this.state={data:[],openUserInfo:false,openActive:false}
this.state={data:[],openUserInfo:false,openActivity:false}
}
componentDidMount() {
@ -62,25 +62,25 @@ export class MyLeaveWord extends React.Component<{ user:string },
data:[
{
user:userObj,
active:{
activeId:1,
activity:{
activityId:1,
title:"活动标题1",
content:"活动内容活动内容活动活动内容活动内容活动活动内容活动内容活动活动内容活动内容活动活动内容活动内容活动活动内容活动内容活动活动内容活动内容活动活动内容活动内容活动活动内容活动内容活动",
activeImg:"logo512.png",
activeStartTime:new Date().getTime(),
activeEndTime:new Date().getTime()
activityImg:"logo512.png",
activityStartTime:new Date().getTime(),
activityEndTime:new Date().getTime()
},
type:LeaveWordType.recommend
},
{
user:userObj,
active:{
activeId:1,
activity:{
activityId:1,
title:"活动标题1",
content:"活动内容活动内容活动活动内容活动内容活动活动内容活动内容活动活动内容活动内容活动活动内容活动内容活动活动内容活动内容活动活动内容活动内容活动活动内容活动内容活动活动内容活动内容活动",
activeImg:"logo512.png",
activeStartTime:new Date().getTime(),
activeEndTime:new Date().getTime()
activityImg:"logo512.png",
activityStartTime:new Date().getTime(),
activityEndTime:new Date().getTime()
},
type:LeaveWordType.apply
},
@ -113,16 +113,16 @@ export class MyLeaveWord extends React.Component<{ user:string },
*/
getData(data:Type1|Type2,index:number){
let body
if("active" in data ){
if("activity" in data ){
body=<Col>
<div>
<h5 className="text-center">{data.active.title}</h5>
<h5 className="text-center">{data.activity.title}</h5>
</div>
<div>
<p className="text-ellipsis leave-word-height">{data.active.content}</p>
<p className="text-ellipsis leave-word-height">{data.activity.content}</p>
</div>
<div className="text-center">
<Button variant={"primary"} onClick={()=>this.setState({openActive:true,active:data.active})}></Button>
<Button variant={"primary"} onClick={()=>this.setState({openActivity:true,activity:data.activity})}></Button>
</div>
</Col>
}else{
@ -174,9 +174,9 @@ export class MyLeaveWord extends React.Component<{ user:string },
content={<MyInfo ownUserId={this.props.user} isOwn={false} isMyFriend={false} isAdd={false} userId={this.state.userId}/>}
open={this.state.openUserInfo} onClose={()=>this.setState({openUserInfo:false})}/>
{this.state.active?<MyDialog content={<Active active={this.state.active} showButton={false} />}
open={this.state.openActive} titleId="view-active" menuName="活动详情"
onClose={()=>this.setState({active:undefined,openActive:false})}/>:null}
{this.state.activity?<MyDialog content={<Activity activity={this.state.activity} showButton={false} />}
open={this.state.openActivity} titleId="view-activity" menuName="活动详情"
onClose={()=>this.setState({activity:undefined,openActivity:false})}/>:null}
</div>
);
}

@ -58,34 +58,34 @@ export class SeekHelp extends React.Component<{ user:string },
applyVolunteerList: [userObj,userObj],
completeVolunteerList: [],
joinVolunteerList: [],
activeImg: "logo512.png",
activityImg: "logo512.png",
content: "活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容",
time: new Date().getTime(),
title:"活动标题",
//活动Id
activeId:123,
activityId:123,
},
{
applyVolunteerList: [],
completeVolunteerList: [],
joinVolunteerList: [],
activeImg: "logo512.png",
activityImg: "logo512.png",
content: "活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容",
time: new Date().getTime(),
title:"活动标题",
//活动Id
activeId:123,
activityId:123,
},
{
applyVolunteerList: [],
completeVolunteerList: [],
joinVolunteerList: [],
activeImg: "logo512.png",
activityImg: "logo512.png",
content: "活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容",
time: new Date().getTime(),
title:"活动标题",
//活动Id
activeId:123,
activityId:123,
}
]})
@ -101,7 +101,7 @@ export class SeekHelp extends React.Component<{ user:string },
<Container>
<Row>
<Col xs={4}>
<Image src={help.activeImg} className="activeImage"/>
<Image src={help.activityImg} className="activityImage"/>
</Col>
<Col>
<h5>{help.title}</h5>

@ -2,9 +2,9 @@ import React from "react";
import {Button, Card, Col, Container, ListGroup, Row} from "react-bootstrap";
import {Page} from "../ui/Page";
import {ActiveDetail, BaseHelp, PageProps} from "../entity";
import {ActivityDetail, BaseHelp, PageProps} from "../entity";
import {MyDialog} from "../ui/MyDialog";
import {Active} from "../ui/Active";
import {Activity} from "../ui/Activity";
import {Input} from "../ui/InputGroup";
/**
@ -13,13 +13,13 @@ import {Input} from "../ui/InputGroup";
export class IndexMenu extends React.Component<{ user:string },
{
//活动数据
activeList:Array<Array<BaseHelp>>;
activityList:Array<Array<BaseHelp>>;
//分页信息
page:PageProps;
//活动
active?:ActiveDetail;
activity?:ActivityDetail;
//打开活动
openActive:boolean;
openActivity:boolean;
//检索活动标题
title:string;
}>{
@ -30,41 +30,41 @@ export class IndexMenu extends React.Component<{ user:string },
super(props);
this.state={
activeList:[],
activityList:[],
page:{
currentPage:1,
totalPage:3,
pageSize:9
},
openActive:false,
openActivity:false,
title:""
}
}
componentDidMount() {
this.loadActive(1)
this.loadActivity(1)
}
/**
*
* @param activeId
* @param activityId
*/
applyActive(activeId:number){
console.debug("报名活动"+activeId)
applyActivity(activityId:number){
console.debug("报名活动"+activityId)
}
/**
*
* @param activeId
* @param activityId
*/
loadActiveWithId(activeId:number):ActiveDetail{
loadActivityWithId(activityId:number):ActivityDetail{
return {
activeId:123,
activeImg:"logo512.png",
activityId:123,
activityImg:"logo512.png",
content: "活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容",
title: "标题标题标题标题标题标题标题",
activeEndTime:new Date().getTime(),
activeStartTime:new Date().getTime()
activityEndTime:new Date().getTime(),
activityStartTime:new Date().getTime()
}
}
@ -72,85 +72,85 @@ export class IndexMenu extends React.Component<{ user:string },
*
* @param page
*/
loadActive(page:number){
loadActivity(page:number){
console.debug("检索活动关键字:"+this.state.title)
this.setState({
activeList:[[{
activeId: 123,
activityList:[[{
activityId: 123,
//活动标题
title: "活动标题",
//活动内容
content: "活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容",
//活动图片
activeImg: "/logo512.png"
activityImg: "/logo512.png"
},{
activeId: 123,
activityId: 123,
//活动标题
title: "活动标题",
//活动内容
content: "活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容",
//活动图片
activeImg: "/logo512.png"
activityImg: "/logo512.png"
},{
activeId: 123,
activityId: 123,
//活动标题
title: "活动标题",
//活动内容
content: "活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容",
//活动图片
activeImg: "/logo512.png"
activityImg: "/logo512.png"
}],[{
activeId: 123,
activityId: 123,
//活动标题
title: "活动标题",
//活动内容
content: "活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容",
//活动图片
activeImg: "/logo512.png"
activityImg: "/logo512.png"
},{
activeId: 123,
activityId: 123,
//活动标题
title: "活动标题",
//活动内容
content: "活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容",
//活动图片
activeImg: "/logo512.png"
activityImg: "/logo512.png"
},{
activeId: 123,
activityId: 123,
//活动标题
title: "活动标题",
//活动内容
content: "活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容活动内容",
//活动图片
activeImg: "/logo512.png"
activityImg: "/logo512.png"
}]]
})
}
render() {
const rowList=this.state.activeList.map((actives:Array<BaseHelp>, index:number)=>
<Row className="p-3" key={"row"+index}>{actives.map((active:BaseHelp, subIndex:number)=>
const rowList=this.state.activityList.map((activities:Array<BaseHelp>, index:number)=>
<Row className="p-3" key={"row"+index}>{activities.map((activity:BaseHelp, subIndex:number)=>
<Col className="col-4" key={"col"+subIndex}>
<Card>
<Card.Header>
<img src={active.activeImg} alt="活动图片" className="activeImage"/>
<img src={activity.activityImg} alt="活动图片" className="activityImage"/>
</Card.Header>
<Card.Body>
<ListGroup>
<ListGroup.Item className="bg-info" style={{color:"white",fontWeight:"bold"}}>
{active.title}
{activity.title}
</ListGroup.Item>
<ListGroup.Item>
<p className="active-text-limit text-ellipsis">{active.content}</p>
<p className="activity-text-limit text-ellipsis">{activity.content}</p>
</ListGroup.Item>
</ListGroup>
</Card.Body>
<Card.Footer>
<Button variant={"info"} onClick={()=>this.setState({
active:this.loadActiveWithId(active.activeId),
openActive:true
activity:this.loadActivityWithId(activity.activityId),
openActivity:true
})} className="mr-2"></Button>
<Button variant="primary" ></Button>
</Card.Footer>
@ -165,7 +165,7 @@ export class IndexMenu extends React.Component<{ user:string },
<Input name="keyword" desc="活动标题" onChange={(value:string)=>this.setState({title:value})}/>
<Button className="mt-3 mb-3" variant={"info"} onClick={()=>this.loadActive(1)}></Button>
<Button className="mt-3 mb-3" variant={"info"} onClick={()=>this.loadActivity(1)}></Button>
{/*<Page onClick={(page:number)=>this.loadActive(page)} currentPage={this.state.page.currentPage} totalPage={this.state.page.totalPage} pageSize={this.state.page.pageSize}/>*/}
@ -173,11 +173,11 @@ export class IndexMenu extends React.Component<{ user:string },
{rowList}
<Page onClick={(page:number)=>this.loadActive(page)} currentPage={this.state.page.currentPage} totalPage={this.state.page.totalPage} pageSize={this.state.page.pageSize}/>
<Page onClick={(page:number)=>this.loadActivity(page)} currentPage={this.state.page.currentPage} totalPage={this.state.page.totalPage} pageSize={this.state.page.pageSize}/>
{this.state.active?<MyDialog content={<Active active={this.state.active} showButton={true} applyFunction={(activeId:number)=>this.applyActive(activeId)} />}
open={this.state.openActive} titleId="view-active" menuName="活动详情"
onClose={()=>this.setState({active:undefined,openActive:false})}/>:null}
{this.state.activity?<MyDialog content={<Activity activity={this.state.activity} showButton={true} applyFunction={(activeId:number)=>this.applyActivity(activeId)} />}
open={this.state.openActivity} titleId="view-active" menuName="活动详情"
onClose={()=>this.setState({activity:undefined,openActivity:false})}/>:null}
</Container>
)

@ -41,12 +41,12 @@ export class SendHelp extends React.Component<{ undefined?:undefined }, SendHelp
const time=moment()
this.state={
//活动Id
activeId:123,
activityId:123,
title:"",
content:"",
startTime:time.add({days:1}).format("YYYY-MM-DD HH:mm:ss"),
endTime:time.add({days:7}).format("YYYY-MM-DD HH:mm:ss"),
activeImg:"上传活动背景图",
activityImg:"上传活动背景图",
address: "",
recommendType: RecommendType.no,
friendList:[],
@ -120,7 +120,7 @@ export class SendHelp extends React.Component<{ undefined?:undefined }, SendHelp
}} dateFormat="YYYY-MM-DD" timeFormat="HH:mm:ss"/>
</InputGroup>
<UploadImg fileImg={this.fileImg} maxImageSize={maxImageSize} onChange={(value:string)=>this.setState({activeImg:value})} imageName={this.state.activeImg}/>
<UploadImg fileImg={this.fileImg} maxImageSize={maxImageSize} onChange={(value:string)=>this.setState({activityImg:value})} imageName={this.state.activityImg}/>
{/*服务地点*/}
<Address onChange={(value:string)=>this.setState({address:value})}/>

@ -1,14 +1,14 @@
import React from "react";
import {Button, Image} from "react-bootstrap";
import {ActiveDetail} from "../entity";
import {ActivityDetail} from "../entity";
import moment from "moment";
/**
*
*/
export class Active extends React.Component<
export class Activity extends React.Component<
{
active:ActiveDetail;
activity:ActivityDetail;
/**
*
*/
@ -21,13 +21,13 @@ export class Active extends React.Component<
render() {
return (
<div className="overflow-auto active-detail-height">
<Image className="mb-3" src={this.props.active.activeImg}/>
<h3 className="text-center">{this.props.active.title}</h3>
<p className="p-2">{this.props.active.content}</p>
<h5 className="text-center">{"活动开始时间:"+moment(this.props.active.activeStartTime).format("YYYY-MM-DD HH:mm:ss")}</h5>
<h5 className="text-center mb-3">{"活动结束时间:"+moment(this.props.active.activeStartTime).format("YYYY-MM-DD HH:mm:ss")}</h5>
{this.props.showButton?<div className="text-center"><Button onClick={()=>this.props.applyFunction?this.props.applyFunction(this.props.active.activeId):null}></Button></div>:null}
<div className="overflow-auto activity-detail-height">
<Image className="mb-3" src={this.props.activity.activityImg}/>
<h3 className="text-center">{this.props.activity.title}</h3>
<p className="p-2">{this.props.activity.content}</p>
<h5 className="text-center">{"活动开始时间:"+moment(this.props.activity.activityStartTime).format("YYYY-MM-DD HH:mm:ss")}</h5>
<h5 className="text-center mb-3">{"活动结束时间:"+moment(this.props.activity.activityStartTime).format("YYYY-MM-DD HH:mm:ss")}</h5>
{this.props.showButton?<div className="text-center"><Button onClick={()=>this.props.applyFunction?this.props.applyFunction(this.props.activity.activityId):null}></Button></div>:null}
</div>
);
}
Loading…
Cancel
Save