import React, { useState, useEffect } from 'react'; import { Form, Input, Button, Icon, Select, Tabs, Radio, DatePicker, message, Upload } from 'antd'; import { FormattedMessage } from 'umi-plugin-react/locale'; import Prompt from 'umi/prompt'; import router from 'umi/router'; import styles from '../style/GoodsList.less'; import apis from '../../services/apis'; import moment from 'moment'; import ActivityType from '../../components/SelectButton/ActivityType' import XForm, { FieldTypes } from '../../components/XForm'; import Wangedit from '../../components/Wangedit/Wangedit' import request from '../../utils/request' import yinhao from '../../assets/yinhao.png' import ImageUploader from '../../components/XForm/ImageUpload'; import logo from '../../assets/logo.png'; import touxiang from '../../assets/touxiang.jpg'; import poster1 from '../../assets/poster1.png'; import poster2 from '../../assets/poster2.png'; import xiaochengxu from '../../assets/xiaochengxu.png' const { MonthPicker, RangePicker, WeekPicker } = DatePicker; const { TextArea } = Input; const formItemLayout = { labelCol: { span: 6 }, wrapperCol: { span: 14 }, }; const cancelPage = () => { router.push({ pathname: '/activity/ActivityList', }); } const BasicForm = props => { const [isEnlist, setIsEnlist] = useState(1) const [activityStatus, setActivityStatus] = useState(1) const [disable, setDisable] = useState(false) const [data, setData] = useState(1) const [showSignupTime, setShowSignupTime] = useState([]) const radioOnChange = e => { setIsEnlist(e.target.value) } const { dynamicId } = props // 查询详情 const getDynamicData = dynamicId => { request({ ...apis.activity.details, params: { dynamicId } }).then(data => { data.activityTime = [moment(data.startDate), moment(data.endDate)] data.signupTime = [moment(data.enlistStart), moment(data.enlistEnd)] // setSignupTime([moment(data.enlistStart), moment(data.enlistEnd)]) setData(data) setIsEnlist(data.isEnlist) setActivityStatus(data.activityStatus) setDisable(data.activityStatus === 0) props.form.setFieldsValue(data) }) } // eslint-disable-next-line react-hooks/rules-of-hooks useEffect(() => { props.form.setFieldsValue({ isEnlist }) if (dynamicId) { getDynamicData(dynamicId); } }, []) const checkTime = () => { function compareDate(dateTime1, dateTime2) { return new Date(dateTime1) > new Date(dateTime2) } // 1)修改后的开始时间不得大于当前时间(会存在已经成功报名的用户) // (2)修改后开始时间<当前时间<修改后结束时间:活动进行中 // (3)修改后结束时间<当前时间:活动已结束 if (showSignupTime[0]) { // const date = data.signupTime const nowDate = new Date() // console.log(compareDate(nowDate, showSignupTime[0])) if (compareDate(nowDate, showSignupTime[0])) { return true } else { // return '修改后的开始时间不得大于当前时间(会存在已经成功报名的用户)' } } return true } const handleSubmit = e => { e.preventDefault(); props.form.validateFields((err, values) => { if (!err) { console.log('Received values of form: ', values); const { activityTime, signupTime } = values const [startDate, endDate] = activityTime values.startDate = moment(startDate).format('YYYY-MM-DD HH:mm'); values.endDate = moment(endDate).format('YYYY-MM-DD HH:mm'); if (signupTime) { const [enlistStart, enlistEnd] = signupTime values.enlistStart = moment(enlistStart).format('YYYY-MM-DD HH:mm'); values.enlistEnd = moment(enlistEnd).format('YYYY-MM-DD HH:mm'); } console.log('submit data --->', values) if (dynamicId) { const checks = checkTime() if (checks != true) { message.info(checks) return } console.log(data.enlistNum,values.personNum,'143') if (data.enlistNum > values.personNum) { message.info('活动人数必须大于已报名人数') return } values.dynamicId = dynamicId request({ ...apis.activity.update, data: values }).then(data => { message.info('保存成功') cancelPage() }).catch((err) => { message.info(err.msg || err.message) }) } else { request({ ...apis.activity.add, data: { ...values } }).then((data) => { message.info('保存成功') cancelPage() // router.push({ // pathname: '/activity/editActivity', // query: { // dynamicId: data.dynamicId, // }, // }); // router.go(-1) }).catch((err) => { message.info(err.msg || err.message) }) } } }); } const changeTime = (value, date) => { // console.log(value, data, '-----checkTime---------') // console.log(props.form.getFieldsValue(), '--------time1-----------') // let datas = data // console.log(value, date, datas) // datas.signupTime = date // // data.signupTime = [moment(data.enlistStart), moment(data.enlistEnd)] // console.log(datas,'-------datas--------') // props.form.setFieldsValue(data) setShowSignupTime(date) // props.form.setFieldsValue(datas) // // form.setFieldsValue // console.log('-------1--------') } const { getFieldDecorator } = props.form; return ( <>
{getFieldDecorator('dynamicTypeId', { rules: [ { required: true, message: '请选择活动类型', }, ], })()} {getFieldDecorator('listImgUrl', { rules: [ { required: true, message: '请选择活动封面图1', }, ], })()} {/* {getFieldDecorator('bannerListImg', { rules: [ { required: true, message: '请选择活动封面图2', }, ], })()} */} {getFieldDecorator('imgUrl', { rules: [ { required: true, message: '请选择活动详情主图', }, ], })()} {getFieldDecorator('title', { rules: [ { required: true, message: '请输入活动标题', }, ], })()} {getFieldDecorator('activityTime', { rules: [ { required: true, message: '请选择活动时间', }, ], })()} {getFieldDecorator('address', { rules: [ { required: true, message: '请输入活动地点', }, ], })()} {/* disabled={activityStatus === 0 ? true : false} */} {getFieldDecorator('personNum', { rules: [ { required: true, message: '请输入活动人数', }, // { // min: data.personNum,min={data.personNum || 0} // message: '活动人数必须大于已报名人数', // }, ], })()} {getFieldDecorator('maxEnlistByPerson', { rules: [ { required: true, message: '请输入用户携带人数', }, ], })()} {getFieldDecorator('desc')()} {getFieldDecorator('signupTime', { rules: [ { required: true, message: '请选择报名时间', }, ], })()} {getFieldDecorator('heavy', { rules: [ { required: true, message: '请输入权重', }, ], })()}数字越大越靠前     
) } const Basic = Form.create({ name: 'BasicForm' })(BasicForm); const Poster = props => { const { dynamicId } = props const [inputValue, changeInput] = useState('') const [textAreaValue, changeTextArea] = useState('') const [imgValue, changeImg] = useState('') const [posterId, setPosterId] = useState('') useEffect(() => { if (dynamicId) { request({ ...apis.activity.poster, params: { targetId: dynamicId, targetType: 'activity' } }).then(data => { if (data.length > 0) { setPosterId(data[0].posterId) changeImg(data[0].posterImg) changeTextArea(data[0].posterDescription) changeInput(data[0].posterTitle) } }).catch(err => { message.info(err.msg || err.message) }) } // getMiniappName() }, []) // 获取小程序名称 // const [miniappName, setMiniappName] = useState('') // function getMiniappName() { // request({ ...apis.building.getMiniappName }).then(res => { // console.log(res, "0000000000000") // setMiniappName(res) // }) // } const submitPoster = () => { if (dynamicId) { if (posterId) { request({ ...apis.activity.updatePoster, urlData: { id: posterId }, data: { targetId: dynamicId, targetType: 'activity', posterImg: imgValue, posterTitle: inputValue, posterDescription: textAreaValue } }).then(data => { message.info('保存成功') }).catch(err => { message.info(err.msg || err.message) }) } else { request({ ...apis.activity.addPoster, data: { targetId: dynamicId, targetType: 'activity', posterImg: imgValue, posterTitle: inputValue, posterDescription: textAreaValue } }).then(data => { setPosterId(data.posterId) message.info('保存成功') }).catch(err => { message.info(err.msg || err.message) }) } } else { message.warn('请先保存基本信息数据') } } return
喵喵 邀您参与 2019.09.21

{inputValue || '海报标题'}

{textAreaValue || '海报描述'}

长按识别小程序码

进入活动查看详情

海报模板

活动海报图

changeImg(e)} />

建议图片尺寸:640*670px,比例64:67,格式:jpg,用于普通活动海报

海报标题

changeInput(e.target.value)} />

海报描述