/**
|
* 徐祥健<xuxj@hugeinfo.com.cn>
|
* 2018年8月28日 10:41
|
*
|
*/
|
|
|
import React from 'react';
|
|
import HeadView from '../view/HeadView';
|
import TableBtnView from '../view/TableBtnView';
|
import { Divider, Modal, message, Tooltip, Progress } from 'antd'
|
import moment from 'moment'
|
import Fetch from '../fetch';
|
import { domain } from '../fetch/_fetch';
|
import TableView from '../view/TableView';
|
const confirm = Modal.confirm;
|
function typeOfName(type) {
|
switch (type) {
|
case 0:
|
return '未发布';
|
case 1:
|
return '报名中';
|
case 2:
|
return '活动中';
|
case 3:
|
return '已结束';
|
case 100:
|
return '已摇号';
|
}
|
}
|
|
function typeStatus(type) {
|
switch (type) {
|
case 'act_1':
|
return "南检活动";
|
case 'act_2':
|
return "法治培训";
|
case 'act_3':
|
return "普法预约";
|
}
|
}
|
export default class ActiveManage extends React.Component {
|
constructor(props) {
|
super(props);
|
this.state = {
|
data: [],
|
resetKey: Date.now()
|
};
|
}
|
|
componentDidMount() {
|
document.title = '活动管理';
|
this.getData();
|
}
|
getData = () => {
|
// this.setState({
|
// data: []
|
// });
|
Fetch.activeManage()
|
.then(res => {
|
for (var i = 0; i < res.length; i++) {
|
res[i]['index'] = i + 1;
|
}
|
this.setState({
|
data: res
|
});
|
});
|
}
|
showModal = (id) => {
|
this.props.history.push("/activeManageEdit/" + id);
|
}
|
|
signIn= (id) => {
|
window.open('index.html#/signIn/' + id);
|
}
|
|
pulish = (id) => {
|
confirm({
|
title: '确认要发布这条活动吗?',
|
onOk: () => {
|
Fetch.publishActive(id)
|
.then(data => {
|
if (data.code == 0) {
|
message.success("发布成功!")
|
this.setState({
|
resetKey: Date.now()
|
}, this.getData);
|
} else {
|
message.error('发布失败,请联系管理员', 2)
|
}
|
})
|
}
|
});
|
}
|
deleteItems = (id) => {
|
confirm({
|
title: '确认要删除这条数据吗?',
|
onOk: () => {
|
Fetch.deleteActive(id)
|
.then(data => {
|
if (data.code == 0) {
|
message.success("删除成功!")
|
this.setState({
|
resetKey: Date.now()
|
}, this.getData);
|
} else {
|
message.error('删除失败,请联系管理员', 2)
|
}
|
})
|
}
|
});
|
}
|
render() {
|
const columns = [{
|
title: '序号',
|
dataIndex: 'index',
|
key: 'index'
|
}, {
|
title: '活动类型',
|
dataIndex: 'activityType',
|
key: 'activityType',
|
render: text => <span>{typeStatus(text)}</span>
|
}, {
|
title: '活动标题',
|
dataIndex: 'title',
|
key: 'title'
|
}, {
|
title: '发起人',
|
dataIndex: 'createrName',
|
key: 'createrName'
|
}, {
|
title: '起始时间',
|
dataIndex: 'startTime',
|
key: 'startTime',
|
render: text => <span>{moment(text).format("YYYY-MM-DD HH:mm")}</span>
|
}, {
|
title: '地点',
|
dataIndex: 'address',
|
key: 'address'
|
}, {
|
title: '活动状态',
|
dataIndex: 'status',
|
key: 'status',
|
render: text => <span>{typeOfName(text)}</span>
|
|
}, {
|
title: '报名人数',
|
dataIndex: 'totalNum',
|
key: 'totalNum',
|
render: (_, { totalNum, applyNum }) => <Progress percent={applyNum * 100 / totalNum} format={percent => `${applyNum}/${totalNum} `} />,
|
}, {
|
title: '操作',
|
key: 'action',
|
render: (text, record) => (
|
(
|
record.status == 0 ?
|
<span>
|
<label className='theme-color' onClick={() => this.showModal(record.id)} style={{ cursor: 'pointer' }}>修改</label>
|
<Divider type="vertical" />
|
<label className='theme-color' onClick={() => this.pulish(record.id)} style={{ cursor: 'pointer' }}>发布</label>
|
<Divider type="vertical" />
|
<label className='theme-color' onClick={() => this.deleteItems(record.id)} style={{ cursor: 'pointer' }}>删除</label>
|
</span>
|
:
|
record.status == 2 ?
|
<span>
|
<label className='theme-color' onClick={() => this.showModal(record.id)} style={{ cursor: 'pointer' }}>查看</label>
|
<Divider type="vertical" />
|
<label className='theme-color' onClick={() => this.signIn(record.id)} style={{ cursor: 'pointer' }}>签到上墙</label>
|
</span>
|
:
|
<span><label className='theme-color' onClick={() => this.showModal(record.id)} style={{ cursor: 'pointer' }}>查看</label></span>
|
|
)
|
),
|
}];
|
const { data, resetKey } = this.state;
|
return (
|
<div className="app-page">
|
<HeadView history={this.props.history} />
|
<TableBtnView key={-resetKey} type="infoManage" name='活动一览' btnName='活动发布' onClick={() => this.showModal('new')}>
|
</TableBtnView>
|
<TableView columns={columns} data={data} pageSize='10' size='default' />
|
</div>
|
);
|
}
|
|
}
|