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.vs_list || []).forEach((row, index) => { form.getFieldDecorator(`vs_list[${index}].number`); form.getFieldDecorator(`vs_list[${index}].percent`); }); (result.ask_time || []).forEach((row, index) => { form.getFieldDecorator(`ask_time[${index}].money`); form.getFieldDecorator(`ask_time[${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.vs_list = (data.vs_list || []).map(row => { return { number: Number(row.number), percent: Number(row.percent) }; }); data.ask_time = (data.ask_time || []).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); }} />, )}
; } renderVs() { const { getFieldDecorator } = this.props.form; const { data } = this.state; const vss = data.vs || []; return

1v1课折扣

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

课程赠品

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