import React from 'react'; import { Form, Input, InputNumber, Card, Icon, Button, Row, Col, Upload, Affix } from 'antd'; import './index.less'; import Page from '@src/containers/Page'; import Block from '@src/components/Block'; // import FileUpload from '@src/components/FileUpload'; import { flattenObject, formatFormError } from '@src/services/Tools'; import { asyncSMessage } from '@src/services/AsyncTools'; import { System } from '../../../stores/system'; export default class extends Page { initData() { System.getIndex().then(result => { const { form } = this.props; form.setFieldsValue(flattenObject(result, 'index')); this.setState({ load: true, index: result }); }); System.getBase().then(result => { const { form } = this.props; form.setFieldsValue(flattenObject(result, 'base')); this.setState({ load: true, base: result }); }); } addLength(field, info) { let { index } = this.state; index = index || {}; index[field] = index[field] || []; index[field].push(info); this.setState({ index }); } deleteLength(field, start, length) { let { index } = this.state; index = index || {}; index[field] = index[field] || []; index[field].splice(start, length); this.setState({ index }); } submit() { this.submitIndex(); this.submitBase(); } submitIndex() { const { form } = this.props; form.validateFields(['index'], (err) => { if (!err) { const { index } = form.getFieldsValue(); index.class = Object.keys(index.class || {}).map((key) => index.class[key]); index.activity = Object.keys(index.activity || {}).map((key) => index.activity[key]); index.evaluation = Object.keys(index.evaluation || {}).map((key) => index.evaluation[key]); System.setIndex(index) .then(() => { this.setState({ index }); asyncSMessage('保存成功'); }).catch((e) => { form.setFields(formatFormError(index, e.result)); }); } }); } submitBase() { const { form } = this.props; form.validateFields(['base'], (err) => { if (!err) { const { base } = form.getFieldsValue(); System.setBase(base) .then(() => { this.setState({ base }); asyncSMessage('保存成功'); }).catch((e) => { form.setFields(formatFormError(base, e.result)); }); } }); } renderPrepare() { const { getFieldDecorator } = this.props.form; return

备考攻略

{getFieldDecorator('index.prepare.first', { rules: [ { required: false, message: '请输入跳转地址' }, ], })( , )} {getFieldDecorator('index.prepare.continue', { rules: [ { required: false, message: '请输入跳转地址' }, ], })( , )} {getFieldDecorator('index.prepare.classJunior', { rules: [ { required: false, message: '请输入跳转地址' }, ], })( , )} {getFieldDecorator('index.prepare.classMiddle', { rules: [ { required: false, message: '请输入跳转地址' }, ], })( , )} {getFieldDecorator('index.prepare.classSenior', { rules: [ { required: false, message: '请输入跳转地址' }, ], })( , )}
; } renderUser() { const { getFieldDecorator } = this.props.form; return

用户数据

{getFieldDecorator('index.user.numberOffline', { rules: [ { required: false, message: '' }, ], })( , )} {getFieldDecorator('index.user.number700', { rules: [ { required: false, message: '' }, ], })( , )} {getFieldDecorator('index.user.numberScore', { rules: [ { required: false, message: '' }, ], })( , )}
; } renderClass() { const { getFieldDecorator, getFieldValue, setFieldsValue } = this.props.form; const { data } = this.state; const course = data.course || []; return

千行课堂

{course.map((row, index) => { const image = getFieldValue(`index.course.${index}.image`) || null; return {getFieldDecorator(`index.course.${index}.title`, { rules: [ { required: true, message: '输入课程名称' }, ], initialValue: row.title, })( , )} {getFieldDecorator(`index.course.${index}.link`, { rules: [ { required: true, message: '输入跳转链接' }, ], initialValue: row.link, })( , )} {getFieldDecorator(`index.course.${index}.image`, { rules: [ { required: true, message: '上传图片' }, ], })( System.uploadImage(file).then((result) => { setFieldsValue({ [`index.course.${index}.image`]: result.url }); return Promise.reject(); })} > {image ? avatar :
Upload
}
, )}
; })} { this.addLength('course', { title: '', link: '', image: '' }); }}>
; } renderActivity() { const { getFieldDecorator, getFieldValue, setFieldsValue } = this.props.form; const { data } = this.state; const activity = data.activity || []; return

活动信息

{activity.map((row, index) => { const image = getFieldValue(`index.activity.${index}.image`) || null; return {getFieldDecorator(`index.activity.${index}.link`, { rules: [ { required: true, message: '输入跳转链接' }, ], initialValue: row.link, })( , )} {getFieldDecorator(`index.activity.${index}.image`, { rules: [ { required: true, message: '上传图片' }, ], })( System.uploadImage(file).then((result) => { setFieldsValue({ [`index.activity.${index}.image`]: result.url }); return Promise.reject(); })} > {image ? avatar :
Upload
}
, )}
; })} { this.addLength('activity', { link: '', image: '' }); }}>
; } renderEvaluation() { const { getFieldDecorator, getFieldValue, setFieldsValue } = this.props.form; const { data } = this.state; const evaluation = data.evaluation || []; return

学员评价

{evaluation.map((row, index) => { const avatar = getFieldValue(`index.evaluation.${index}.avatar`) || null; return {getFieldDecorator(`index.evaluation.${index}.nickname`, { rules: [ { required: true, message: '输入学员昵称' }, ], initialValue: row.nickname, })( , )} {getFieldDecorator(`index.evaluation.${index}.avatar`, { rules: [ { required: true, message: '上传图片' }, ], })( System.uploadImage(file).then((result) => { setFieldsValue({ [`index.evaluation.${index}.avatar`]: result.url }); return Promise.reject(); })} > {avatar ? avatar :
Upload
}
, )}
{getFieldDecorator(`index.evaluation.${index}.content`, { rules: [ { required: true, message: '输入评价内容' }, ], initialValue: row.content, })( , )}
; })} { this.addLength('evaluation', { title: '', link: '', image: '' }); }}>
; } renderContact() { const { getFieldDecorator, setFieldsValue, getFieldValue } = this.props.form; const wechatImage = getFieldValue('base.contact.wechatImage'); const weiboImage = getFieldValue('base.contacct.weiboImage'); return

联系方式

{getFieldDecorator('base.contact.phone', { rules: [ { required: false, message: '请输入电话' }, ], })( , )} {getFieldDecorator('base.contact.email', { rules: [ { required: false, message: '请输入邮箱' }, ], })( , )} {getFieldDecorator('base.contact.wechat', { rules: [ { required: false, message: '请输入微信号' }, ], })( , )} {getFieldDecorator('base.contact.wechatImage')( { System.uploadImage(file).then((result) => { setFieldsValue({ 'base.contact.wechatImage': result.url }); return Promise.reject(); }); } } > {wechatImage ? avatar :
Upload
}
, )}
{getFieldDecorator('base.contact.weiboImage')( System.uploadImage(file).then((result) => { setFieldsValue({ 'base.contact.weiboImage': result.url }); return Promise.reject(); })} > {weiboImage ? avatar :
Upload
}
, )}
; } renderView() { return
{this.renderPrepare()} {this.renderUser()} {this.renderClass()} {this.renderActivity()} {this.renderEvaluation()} {this.renderContact()}
; } }