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 { ContractKey } from '../../../../Constant'; const ContractKeyMap = getMap(ContractKey, 'value', 'label'); export default class extends Page { initData() { const { key } = this.params; const { form } = this.props; let handler; if (key) { handler = System.getContract({ key }); } else { handler = Promise.resolve({}); } 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 <Block> <h1>协议基本信息</h1> <Form> {getFieldDecorator('key')(<input hidden />)} <Form.Item labelCol={{ span: 5 }} wrapperCol={{ span: 16 }} label='应用场景'> {ContractKeyMap[data.key] || ''} </Form.Item> <Form.Item labelCol={{ span: 5 }} wrapperCol={{ span: 16 }} label='协议标题'> {getFieldDecorator('title', { rules: [ { required: true, message: '请输入名称' }, ], })( <Input placeholder='请输入名称' />, )} </Form.Item> </Form> </Block>; } renderContent() { const { getFieldDecorator } = this.props.form; return <Block> <Form> <Form.Item label='正文'> {getFieldDecorator('content', { })( <Editor placeholder='输入内容' />, )} </Form.Item> </Form> </Block>; } renderView() { return <div flex> {this.renderBase()} {this.renderContent()} <Row type="flex" justify="center"> <Col> <Button type="primary" onClick={() => { this.submit(); }}>保存</Button> </Col> </Row> </div>; } }