import React from 'react'; import { Form, Button, Row, Col, List, Icon, Switch, Typography, Input } from 'antd'; import './index.less'; // import Editor from '@src/components/Editor'; import Page from '@src/containers/Page'; import Block from '@src/components/Block'; import DragList from '@src/components/DragList'; // import FileUpload from '@src/components/FileUpload'; import { formatFormError, formatDate, getMap } from '@src/services/Tools'; import { asyncSMessage } from '@src/services/AsyncTools'; import { AskTarget, QuestionType } from '../../../../Constant'; // import { User } from '../../../stores/user'; import { Question } from '../../../stores/question'; const QuestionTypeMap = getMap(QuestionType, 'value', 'label'); const AskTargetMap = getMap(AskTarget, 'value', 'label'); export default class extends Page { 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; let handler; if (id) { handler = Question.getAsk({ id }); } else { handler = Promise.resolve({ others: [{ content: 123123123, answer: 123123 }, {}] }); } handler .then(result => { const { getFieldDecorator, setFieldsValue } = this.props.form; getFieldDecorator('id'); getFieldDecorator('answer'); getFieldDecorator('showStatus'); setFieldsValue({ id: result.id, answer: result.answer, showStatus: result.showStatus }); this.setState({ data: result }); }); } orderQuestion(oldIndex, newIndex) { const { data } = this.state; const { others = [] } = data; const tmp = others[oldIndex]; others[oldIndex] = others[newIndex]; others[newIndex] = tmp; this.setState({ others }); } addOrder() { const { data } = this.state; const { others } = data; others.push(data); this.setState({ data }); } removeOrder() { const { data } = this.state; const { others } = data; data.others = others.filter(row => row.id !== data.id); this.setState({ data }); } submit() { const { form } = this.props; form.validateFields((err) => { if (!err) { const data = form.getFieldsValue(); data.other = this.state.data.others.map(row => row.id); Question.editAsk(data).then(() => { asyncSMessage('保存成功'); }).catch((e) => { if (e.result) form.setFields(formatFormError(data, e.result)); }); } }); } renderBase() { const { data } = this.state; const { question = {}, questionNo = {} } = data; return

题目信息

{QuestionTypeMap[question.type]} {questionNo.no}
; } renderAsk() { const { data } = this.state; const { user = {}, createTime, target, originContent, content } = data; return

提问信息

{user.realName} {formatDate(createTime)} {AskTargetMap[target]} {originContent} {content}
; } renderQuestionList() { return

该题目的展示中问题

{ this.orderQuestion(oldIndex, newIndex); }} renderItem={(item) => ( , ]}> 问题:{item.content} 答复:{item.answer} )} />
; } renderAnswer() { const { getFieldDecorator } = this.props.form; return
{getFieldDecorator('id')()} {getFieldDecorator('answer', { })( , )} {getFieldDecorator('showStatus', { valuePropName: 'checked', })( { if (value) { this.addOrder(); } else { this.removeOrder(); } }} checkedChildren='on' unCheckedChildren='off' />, )}
; } renderView() { return
{this.renderBase()} {this.renderAsk()} {this.renderQuestionList()} {this.renderAnswer()}
; } }