import React from 'react'; import { Form, Button, Row, Col, Icon, Input, InputNumber, Upload } from 'antd'; import './index.less'; import Editor from '@src/components/Editor'; import Page from '@src/containers/Page'; import Block from '@src/components/Block'; import Radio from '@src/components/Radio'; import TreeSelect from '@src/components/TreeSelect'; import EditTableCell from '@src/components/EditTableCell'; import ActionLayout from '@src/layouts/ActionLayout'; import TableLayout from '@src/layouts/TableLayout'; import { formatFormError, formatTreeData, getMap, formatDate } from '@src/services/Tools'; import { asyncSMessage } from '@src/services/AsyncTools'; import { SwitchSelect, DataType } from '../../../../Constant'; // import { User } from '../../../stores/user'; import { Exercise } from '../../../stores/exercise'; import { Course } from '../../../stores/course'; import { System } from '../../../stores/system'; export default class extends Page { initState() { return { history: false }; } init() { this.exerciseMap = {}; this.actionList = [{ key: 'add', type: 'primary', name: '上传pdf文件', render: (item) => { return System.uploadImage(file).then((result) => { return Course.addDataHistory({ resource: result.url }); }).then(() => { this.refreshHistory(); })} > ; }, }]; this.columns = [{ title: '上传时间', dataIndex: 'createTime', render: (text) => { return formatDate(text); }, }, { title: '文件地址', dataIndex: 'resource', render: (text) => { return 下载; }, }, { title: '版本名称', dataIndex: 'version', render: (text, record) => { return { this.changeHistory('version', record.id, v); }} />; }, }, { title: '变更页数', dataIndex: 'changePage', render: (text, record) => { return { this.changeHistory('changePage', record.id, v); }} />; }, }, { title: '原文', dataIndex: 'originContent', render: (text, record) => { return { this.changeHistory('originContent', record.id, v); }} />; }, }, { title: '更正为', dataIndex: 'content', render: (text, record) => { return { this.changeHistory('content', record.id, v); }} />; }, }]; Exercise.courseStruct().then((result) => { const list = result.map(row => { row.title = `${row.titleZh}`; row.value = row.id; return row; }); const tree = formatTreeData(list, 'id', 'title', 'parentId'); this.exerciseMap = getMap(result.map(row => { row.title = `${row.titleZh}`; row.value = row.id; return row; }), 'id'); this.setState({ exercise: tree }); }); } initData() { const { id } = this.params; let handler; if (id) { handler = Course.getData({ id }); } else { handler = Promise.resolve({ structId: 0 }); } handler .then(result => { const { setFieldsValue } = this.props.form; result.structId = `${result.structId}`; // getFieldDecorator('id'); // getFieldDecorator('structId'); // getFieldDecorator('dataType'); // getFieldDecorator('isNovice'); // getFieldDecorator('isOriginal'); // getFieldDecorator('title'); // getFieldDecorator('price'); // getFieldDecorator('pages'); // getFieldDecorator('content'); // getFieldDecorator('content'); // getFieldDecorator('authorContent'); // getFieldDecorator('methondContent'); setFieldsValue(result); this.setState({ data: result }); if (result.dataType === 'electron') { this.refreshHistory(); } }); } refreshHistory() { const { id } = this.params; Course.listDataHistory({ dataId: id }).then(result => { this.setState({ list: result.list, total: result.total, history: true }); }); } changeHistory(field, id, value) { Course.editDataHistory({ id, [field]: value }).then(() => { this.refreshHistory(); }); } submit() { const { form } = this.props; form.validateFields((err) => { if (!err) { const data = form.getFieldsValue(); data.parentStructId = this.exerciseMap[data.structId] ? this.exerciseMap[data.structId].parentId : 0; Course.editData(data).then(() => { asyncSMessage('保存成功'); }).catch((e) => { if (e.result) form.setFields(formatFormError(data, e.result)); }); } }); } renderBase() { const { exercise, data } = this.state; const { getFieldDecorator } = this.props.form; return

基本信息

{getFieldDecorator('id')()} {exercise && data.structId && {getFieldDecorator('structId', { rules: [{ required: true, message: '请选择学科', }], initialValue: data.structId, })( , )} } {getFieldDecorator('dataType', { rules: [{ required: true, message: '请选择类型', }], })( { if (e.target.value === 'electron') { this.refreshHistory(); } else { this.setState({ history: false }); } }} />, )} {getFieldDecorator('isNovice', { rules: [{ required: true, message: '请选择', }], })( , )} {getFieldDecorator('isOriginal', { rules: [{ required: true, message: '请选择', }], })( , )} {getFieldDecorator('title', { rules: [{ required: true, message: '请输入名称', }], })( , )} {getFieldDecorator('price', { rules: [{ required: true, message: '请输入价格', }], })( , )} {getFieldDecorator('pages', { rules: [{ required: true, message: '请输入页数', }], })( , )} {getFieldDecorator('link', { rules: [{ required: true, message: '请输入地址', }], })( , )}
; } renderInfo() { const { getFieldDecorator, setFieldsValue, getFieldValue } = this.props.form; const cover = getFieldValue('cover'); return

宣传信息

{getFieldDecorator('cover', { rules: [ { required: true, message: '上传图片' }, ], })( System.uploadImage(file).then((result) => { setFieldsValue({ cover: result.url }); return Promise.reject(); })} > {cover ? avatar :
Upload
}
, )}
{getFieldDecorator('description', { rules: [{ required: true, message: '请输入摘要', }], })( , )}
; } renderHistory() { return

资料版本

this.onAction(key)} /> this.tableChange(pagination, filters, sorter)} onSelect={(keys, rows) => this.tableSelect(keys, rows)} selectedKeys={this.state.selectedKeys} />
; } renderContent() { const { getFieldDecorator } = this.props.form; return
{getFieldDecorator('content', { })( , )}
; } renderAuthor() { const { getFieldDecorator } = this.props.form; return
{getFieldDecorator('authorContent', { })( , )}
; } renderMethod() { const { getFieldDecorator } = this.props.form; return
{getFieldDecorator('methodContent', { })( , )}
; } renderView() { const { history } = this.state; return
{this.renderBase()} {this.renderInfo()} {history && this.renderHistory()} {this.renderContent()} {this.renderAuthor()} {this.renderMethod()}
; } }