import React from 'react'; import { Form, Input, Button, Row, Col } from 'antd'; import './index.less'; import Editor from '@src/components/Editor'; import Page from '@src/containers/Page'; import Block from '@src/components/Block'; // import FileUpload from '@src/components/FileUpload'; import { formatFormError, getMap } from '@src/services/Tools'; import { asyncSMessage } from '@src/services/AsyncTools'; // import { } from '../../../../Constant'; // import { User } from '../../../stores/user'; import { System } from '../../../stores/system'; import { MessageCategory } from '../../../../Constant'; const MessageCategoryMap = getMap(MessageCategory, 'value', 'label'); const MessageCategoryParamsMap = getMap(MessageCategory, 'value', 'params'); export default class extends Page { initData() { const { id } = this.params; const { form } = this.props; let handler; if (id) { handler = System.getMessage({ id }); } else { handler = Promise.resolve({ messageMethod: 'inside', messageCategory: 'custom' }); } handler .then(result => { form.setFieldsValue(result); this.setState({ data: result }); }); } submit() { const { form } = this.props; form.validateFields((err) => { if (!err) { const data = form.getFieldsValue(); System.setContract(data).then(() => { asyncSMessage('保存成功'); goBack(); }).catch((e) => { if (e.result) form.setFields(formatFormError(data, e.result)); }); } }); } renderBase() { const { getFieldDecorator } = this.props.form; const { data } = this.state; return

{data.messageMethod === 'email' && '邮件模版'}{data.messageMethod === 'inside' && '站内信模版'}

{getFieldDecorator('id')()} {MessageCategoryMap[data.messageCategory] || ''} {getFieldDecorator('title', { rules: [ { required: true, message: '请输入名称' }, ], })( , )} {data.messageMethod === 'inside' && {getFieldDecorator('link', { rules: [ { required: true, message: '请输入链接' }, ], })( , )} }
; } renderContent() { const { getFieldDecorator } = this.props.form; const { data } = this.state; return
可插入自定义字段:{(MessageCategoryParamsMap[data.messageCategory] || []).map(row => `{${row}}`).join(', ')} {getFieldDecorator('content', { })( , )}
; } renderView() { return
{this.renderBase()} {this.renderContent()}
; } }