import React from 'react';
import { Button, Upload } from 'antd';
import { Link } from 'react-router-dom';
import './index.less';
import Page from '@src/containers/Page';
import Block from '@src/components/Block';
import FilterLayout from '@src/layouts/FilterLayout';
import ActionLayout from '@src/layouts/ActionLayout';
import TableLayout from '@src/layouts/TableLayout';
import { PreviewStatus } from '@src/services/Constant';
import { getMap, formatDate } from '@src/services/Tools';
import { asyncSMessage, asyncDelConfirm } from '@src/services/AsyncTools';
import { Exercise } from '../../../stores/exercise';
import { Preview } from '../../../stores/preview';
import { System } from '../../../stores/system';
const filterForm = [
{
key: 'category',
type: 'select',
allowClear: true,
name: '课程',
placeholder: '请选择',
number: true,
},
{
key: 'status',
type: 'select',
name: '状态',
select: PreviewStatus,
number: true,
placeholder: '请选择',
},
];
export default class extends Page {
constructor(props) {
super(props);
this.actionList = [{
key: 'add',
name: '新建作业',
render: (item) => {
// return ;
return ;
},
}, {
key: 'template',
name: '下载批量导入模版',
render: (item) => {
return {item.name};
},
}, {
key: 'import',
name: '批量导入',
render: (item) => {
return System.uploadImage(file).then((result) => {
asyncSMessage(result);
})}
>
;
},
}, {
key: 'delete',
name: '批量删除',
needSelect: 1,
}];
this.categoryMap = {};
this.columns = [{
title: '课程',
dataIndex: 'category',
render: (text) => {
return this.categoryMap[text] || text;
},
}, {
title: '开始时间',
dataIndex: 'startTime',
render: (text) => {
return formatDate(text);
},
}, {
title: '结束时间',
dataIndex: 'endTime',
render: (text) => {
return formatDate(text);
},
}, {
title: '作业标题',
dataIndex: 'title',
}, {
title: '完成进度',
dataIndex: 'finish',
render: (text, record) => {
return `${text}/${record.userIds.length}`;
},
}, {
title: '操作',
dataIndex: 'handler',
render: (text, record) => {
return
{(
编辑
)}
{(
查看
)}
{(
)}
;
},
}];
}
init() {
Exercise.allStruct().then(result => {
filterForm[0].select = result.filter(row => row.level === 2).map(row => { row.title = `${row.titleZh}/${row.titleEn}`; row.value = row.id; return row; });
this.categoryMap = getMap(filterForm[0].select, 'id', 'title');
this.setState({ exercise: result });
});
}
initData() {
Preview.list(this.state.search).then(result => {
this.setTableData(result.list, result.total);
});
}
deleteAction() {
const { selectedKeys } = this.state;
asyncDelConfirm('删除确认', '是否删除选中作业?', () => {
return Promise.all(selectedKeys.map(row => Preview.delStruct({ id: row })));
}).then(() => {
asyncSMessage('删除成功!');
this.refresh();
});
}
renderView() {
return
{
this.search(data);
}} />
this.onAction(key)}
/>
this.tableChange(pagination, filters, sorter)}
onSelect={(keys, rows) => this.tableSelect(keys, rows)}
selectedKeys={this.state.selectedKeys}
/>
;
}
}