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, indexInfo: result }); }); System.getBase().then(result => { const { form } = this.props; form.setFieldsValue(flattenObject(result, 'base')); this.setState({ load: true, base: result }); }); } addLength(field, info) { let { indexInfo } = this.state; indexInfo = indexInfo || {}; indexInfo[field] = indexInfo[field] || []; indexInfo[field].push(info); this.setState({ indexInfo }); } deleteLength(field, start, length) { let { indexInfo } = this.state; indexInfo = indexInfo || {}; indexInfo[field] = indexInfo[field] || []; indexInfo[field].splice(start, length); this.setState({ indexInfo }); } submit() { this.submitIndex(); this.submitBase(); } submitIndex() { const { form } = this.props; form.validateFields(['index'], (err) => { if (!err) { // const { indexInfo } = this.state; const { index } = form.getFieldsValue(); index.course = Object.keys(index.course || {}).map((key) => index.course[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({ indexInfo: 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: '' }, ], })( , )}
; } renderCourse() { const { getFieldDecorator, getFieldValue, setFieldsValue } = this.props.form; const { indexInfo = {} } = this.state; const course = indexInfo.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 { indexInfo = {} } = this.state; const activity = indexInfo.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 { indexInfo = {} } = this.state; const evaluation = indexInfo.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}.createTime`, { rules: [ { required: true, message: '输入发布时间' }, ], initialValue: row.createTime, })( , )} {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.contact.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.renderCourse()} {this.renderActivity()} {this.renderEvaluation()} {this.renderContact()}
; } }