import React from 'react'; import { Form, Row, Col, Input, Button, Icon } from 'antd'; import './index.less'; import Page from '@src/containers/Page'; import Block from '@src/components/Block'; 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.getCoursePromote().then(result => { const { form } = this.props; (result.video_list || []).forEach((row, index) => { form.getFieldDecorator(`video_list[${index}].number`); form.getFieldDecorator(`video_list[${index}].percent`); }); (result['1v1_list'] || []).forEach((row, index) => { form.getFieldDecorator(`1v1_list[${index}].number`); form.getFieldDecorator(`1v1_list[${index}].percent`); }); (result.gifts || []).forEach((row, index) => { form.getFieldDecorator(`gifts[${index}].money`); form.getFieldDecorator(`gifts[${index}].hour`); }); form.setFieldsValue(flattenObject(result)); this.setState({ load: true, data: result }); }); } addLength(field, info) { let { data } = this.state; data = data || {}; data[field] = data[field] || []; data[field].push(info); this.setState({ data }); } deleteLength(field, start, length) { let { data } = this.state; data = data || {}; data[field] = data[field] || []; data[field].splice(start, length); this.setState({ data }); } changeMapValue(field, index, key, value) { const { data } = this.state; data[field] = data[field] || {}; data[field][index] = data[field][index] || {}; data[field][index][key] = value; this.setState({ data }); } changeValue(field, key, value) { const { data } = this.state; data[field] = data[field] || {}; data[field][key] = value; this.setState({ data }); } submit() { const { form } = this.props; form.validateFields((err) => { if (!err) { const data = form.getFieldsValue(); data.video_list = (data.video_list || []).map(row => { return { number: Number(row.number), percent: Number(row.percent) }; }); data['1v1_list'] = (data['1v1_list'] || []).map(row => { return { number: Number(row.number), percent: Number(row.percent) }; }); data.gifts = (data.gifts || []).map(row => { return { money: Number(row.money), hour: Number(row.hour) }; }); System.setCoursePromote(data) .then(() => { this.setState(data); asyncSMessage('保存成功'); }).catch((e) => { form.setFields(formatFormError(data, e.result)); }); } }); } renderVideo() { const { getFieldDecorator } = this.props.form; const { data } = this.state; const videos = data.video_list || []; return

视频课折扣

{videos.map((row, index) => { return {getFieldDecorator(`video_list[${index}].number`, { rules: [ { required: true, message: '输入数量' }, ], })( { this.changeMapValue('video_list', index, 'number', value); }} />, )} {getFieldDecorator(`video_list[${index}].percent`, { rules: [ { required: true, message: '输入百分比' }, ], })( { this.changeMapValue('video_list', index, 'percent', value); }} />, )} % { this.deleteLength('video_list', index, 1); }}> ; })} {getFieldDecorator('video.text', { rules: [ { required: true, message: '输入促销文案' }, ], })( { this.changeValue('video', 'text', value); }} />, )}
; } render1vs1() { const { getFieldDecorator } = this.props.form; const { data } = this.state; const vs = data['1v1_list'] || []; return

1v1课折扣

{vs.map((row, index) => { return {getFieldDecorator(`1v1_list[${index}].number`, { rules: [ { required: true, message: '输入数量' }, ], })( { this.changeMapValue('1v1_list', index, 'number', value); }} />, )} {getFieldDecorator(`1v1_list[${index}].percent`, { rules: [ { required: true, message: '输入百分比' }, ], })( { this.changeMapValue('1v1_list', index, 'percent', value); }} />, )} % { this.deleteLength('1v1_list', index, 1); }}> ; })} {getFieldDecorator('1v1.text', { rules: [ { required: true, message: '输入促销文案' }, ], })( { this.changeValue('1v1', 'text', value); }} />, )}
; } renderGift() { const { getFieldDecorator } = this.props.form; const { data } = this.state; const gifts = data.gifts || []; return

课程赠品

{gifts.map((row, index) => { return {getFieldDecorator(`gifts[${index}].money`, { rules: [ { required: true, message: '输入金额' }, ], })( { this.changeMapValue('gifts', index, 'money', value); }} />, )} {getFieldDecorator(`gifts[${index}].hour`, { rules: [ { required: true, message: '输入小时' }, ], })( { this.changeMapValue('gifts', index, 'hour', value); }} />, )} { this.deleteLength('gifts', index, 1); }}> ; })}
; } renderView() { const { tab } = this.state; return
{this.renderVideo()} {this.render1vs1()} {this.renderGift()}
; } }