import React from 'react'; import { Tabs, Form, Row, Col, Input, InputNumber, Button, Upload, Icon } from 'antd'; import './index.less'; import Page from '@src/containers/Page'; import Block from '@src/components/Block'; import { flattenObject } from '@src/services/Tools'; import { asyncSMessage } from '@src/services/AsyncTools'; import { SercieParamMap } from '../../../../Constant'; import { System } from '../../../stores/system'; export default class extends Page { constructor(props) { super(props); this.state.tab = 'qx_cat'; this.vipList = SercieParamMap.vip; } initData() { this.refresh(this.state.tab); } refresh(tab) { if (tab === 'qx_cat') { return this.refreshQxCat(); } if (tab === 'textbook') { return this.refreshTextbook(); } if (tab === 'vip') { return this.refreshVip(); } return Promise.reject(); } refreshQxCat() { return System.getServiceQxCat().then(result => { this.setState({ qx_cat: result || {} }); const { form } = this.props; form.setFieldsValue(flattenObject(result, 'sentence')); }); } refreshTextbook() { return System.getServiceTextbook().then(result => { this.setState({ textbook: result || {} }); }); } refreshVip() { return System.getServiceVip().then(result => { this.setState({ vip: result || {} }); }); } changeMapValue(field, index, key, value) { const data = this.state[field] || {}; data[index] = data[index] || {}; data[index][key] = value; this.setState({ [field]: data }); } changeValue(field, key, value) { const data = this.state[field] || {}; data[key] = value; this.setState({ [field]: data }); } submit(tab) { let handler; if (tab === 'qx_cat') { handler = this.submitQxCat(); } if (tab === 'textbook') { handler = this.submitTextbook(); } if (tab === 'vip') { handler = this.submitVip(); } handler.then(() => { asyncSMessage('保存成功'); }); } submitQxCat() { const { qx_cat } = this.state; return System.setServiceQxCat(qx_cat); } submitTextbook() { const { textbook } = this.state; return System.setServiceTextbook(textbook); } submitVip() { const { vip } = this.state; return System.setServiceVip(vip); } renderQxCat() { const { getFieldDecorator, setFieldsValue, getFieldValue } = this.props.form; const image = getFieldValue('qx_cat.image') || null; return
{getFieldDecorator('qx_cat[0].price', { rules: [ { required: true, message: '输入千行Cat价格' }, ], })( { this.changeMapValue('qx_cat', 0, 'price', value); }} style={{ width: '200px' }} />, )} {getFieldDecorator('qx_cat[0].title', { rules: [ { required: true, message: '输入千行Cat名称' }, ], })( { this.changeMapValue('qx_cat', 0, 'title', value); }} style={{ width: '200px' }} />, )} {getFieldDecorator('qx_cat[0].description', { rules: [ { required: true, message: '输入千行Cat服务简介' }, ], })( { this.changeMapValue('qx_cat', 0, 'description', value); }} style={{ width: '200px' }} />, )} {getFieldDecorator('qx_cat[0].expire_info', { rules: [ { required: true, message: '输入千行Cat有效期说明' }, ], })( { this.changeMapValue('qx_cat', 0, 'expire_info', value); }} style={{ width: '200px' }} />, )} {getFieldDecorator('qx_cat[0].refund_policy', { rules: [ { required: true, message: '输入千行Cat退款政策' }, ], })( { this.changeMapValue('qx_cat', 0, 'refund_policy', value); }} style={{ width: '200px' }} />, )} {getFieldDecorator('qx_cat[0].copyright_notes', { rules: [ { required: true, message: '输入千行Cat版权说明' }, ], })( { this.changeMapValue('qx_cat', 0, 'copyright_notes', value); }} style={{ width: '200px' }} />, )} {getFieldDecorator('qx_cat.image', { rules: [ { required: true, message: '上传图片' }, ], })( System.uploadImage(file).then((result) => { setFieldsValue({ 'qx_cat.image': result }); return Promise.reject(); })} > {image ? avatar :
Upload
}
, )}
; } renderTextbook() { const { getFieldDecorator, setFieldsValue, getFieldValue } = this.props.form; const image = getFieldValue('textbook.image') || null; return
{getFieldDecorator('textbook.image', { rules: [ { required: true, message: '上传图片' }, ], })( System.uploadImage(file).then((result) => { setFieldsValue({ 'textbook.image': result }); return Promise.reject(); })} > {image ? avatar :
Upload
}
, )}
{getFieldDecorator('textbook[0].price', { rules: [ { required: true, message: '输入数学机经价格' }, ], })( { this.changeMapValue('textbook', 0, 'price', value); }} style={{ width: '200px' }} />, )} {getFieldDecorator('textbook[0].title', { rules: [ { required: true, message: '输入数学机经名称' }, ], })( { this.changeMapValue('textbook', 0, 'title', value); }} style={{ width: '200px' }} />, )} {getFieldDecorator('textbook[0].description', { rules: [ { required: true, message: '输入数学机经服务简介' }, ], })( { this.changeMapValue('textbook', 0, 'description', value); }} style={{ width: '200px' }} />, )} {getFieldDecorator('textbook[0].expire_info', { rules: [ { required: true, message: '输入数学机经有效期说明' }, ], })( { this.changeMapValue('textbook', 0, 'expire_info', value); }} style={{ width: '200px' }} />, )} {getFieldDecorator('textbook[0].refund_policy', { rules: [ { required: true, message: '输入数学机经退款政策' }, ], })( { this.changeMapValue('textbook', 0, 'refund_policy', value); }} style={{ width: '200px' }} />, )} {getFieldDecorator('textbook[0].copyright_notes', { rules: [ { required: true, message: '输入数学机经版权说明' }, ], })( { this.changeMapValue('textbook', 0, 'copyright_notes', value); }} style={{ width: '200px' }} />, )}
; } renderVip() { const { getFieldDecorator, setFieldsValue, getFieldValue } = this.props.form; const image = getFieldValue('vip.image') || null; return
{getFieldDecorator('vip.image', { rules: [ { required: true, message: '上传图片' }, ], })( System.uploadImage(file).then((result) => { setFieldsValue({ 'vip.image': result }); return Promise.reject(); })} > {image ? avatar :
Upload
}
, )}
{this.vipList.map((row, index) => { return

{row.label}

{getFieldDecorator(`vip[${index}].price`, { rules: [ { required: true, message: '输入价格' }, ], })( { this.changeMapValue('vip', index, 'price', value); }} style={{ width: '200px' }} />, )} {getFieldDecorator(`vip[${index}].title`, { rules: [ { required: true, message: '输入名称' }, ], })( { this.changeMapValue('vip', index, 'title', value); }} style={{ width: '200px' }} />, )} {getFieldDecorator(`vip[${index}].description`, { rules: [ { required: true, message: '输入服务简介' }, ], })( { this.changeMapValue('vip', index, 'description', value); }} style={{ width: '200px' }} />, )} {getFieldDecorator(`vip[${index}].expire_info`, { rules: [ { required: true, message: '输入有效期说明' }, ], })( { this.changeMapValue('vip', index, 'expire_info', value); }} style={{ width: '200px' }} />, )} {getFieldDecorator(`vip[${index}].refund_policy`, { rules: [ { required: true, message: '输入退款政策' }, ], })( { this.changeMapValue('vip', index, 'refund_policy', value); }} style={{ width: '200px' }} />, )} {getFieldDecorator(`vip[${index}].copyright_notes`, { rules: [ { required: true, message: '输入版权说明' }, ], })( { this.changeMapValue('vip', index, 'copyright_notes', value); }} style={{ width: '200px' }} />, )} ; })}
; } renderView() { const { tab } = this.state; return { this.setState({ tab: value, selectedKeys: [], checkedKeys: [] }); this.refresh(value); }}> {this.renderQxCat()} {this.renderTextbook()} {this.renderVip()} ; } }