import React from 'react';
import { Form, Input, Button, Row, Col, DatePicker } from 'antd';
import './index.less';
import Page from '@src/containers/Page';
import Block from '@src/components/Block';
import Select from '@src/components/Select';
// import FileUpload from '@src/components/FileUpload';
import { formatFormError, generateSearch } from '@src/services/Tools';
import { asyncSMessage } from '@src/services/AsyncTools';
// import { PreviewMode } from '../../../../Constant';
import QuestionNoList from '../../../components/QuestionNoList';
import { Preview } from '../../../stores/preview';
import { User } from '../../../stores/user';
// import { Question } from '../../../stores/question';
import { Exercise } from '../../../stores/exercise';
import config from './index';
export default class extends Page {
constructor(props) {
super(props);
const { id } = this.params;
if (id) {
config.title = '编辑预习作业';
} else {
config.title = '添加预习作业';
}
}
init() {
Exercise.allStruct().then(result => {
result = result.filter(row => row.level === 2).map(row => { row.title = `${row.titleZh}/${row.titleEn}`; row.value = row.id; return row; });
this.setState({ exercise: result });
});
}
initData() {
const { id } = this.params;
const { form } = this.props;
let handler;
if (id) {
handler = Preview.get({ id });
} else {
handler = Promise.resolve({ questionNoIds: [] });
}
handler
.then(result => {
const { questionNoIds } = result;
result.time = [result.startTime, result.endTime];
form.setFieldsValue(result);
generateSearch('userIds', { mode: 'multiple' }, this, (search) => {
return User.list(search);
}, (row) => {
return {
title: `${row.nickname}(${row.mobile})`,
value: row.id,
};
}, result.userIds, null);
this.setState({ questionNoIds });
});
}
submit() {
const { form } = this.props;
form.validateFields((err) => {
if (!err) {
const data = form.getFieldsValue();
[data.startTime, data.endTime] = data.time;
let handler;
data.questionNoIds = this.state.questionNos.map(row => row.id);
if (!data.id) {
handler = Preview.add(data);
} else {
handler = Preview.edit(data);
}
handler.then(() => {
asyncSMessage('保存成功');
}).catch((e) => {
if (e.result) form.setFields(formatFormError(data, e.result));
});
}
});
}
deleteQuestion(index) {
const { questionNos } = this.state;
questionNos.splice(index, 1);
this.setState({ questionNos });
this.props.form.setFieldsValue({ questionNos: questionNos.map(row => row.no) });
}
orderQuestion(oldIndex, newIndex) {
const { questionNos } = this.state;
const tmp = questionNos[oldIndex];
questionNos[oldIndex] = questionNos[newIndex];
questionNos[newIndex] = tmp;
this.setState({ questionNos });
this.props.form.setFieldsValue({ questionNos: questionNos.map(row => row.no) });
}
renderBase() {
const { getFieldDecorator } = this.props.form;
return 题目预览