import React, { useCallback } from 'react' import { Modal, Form, Input, Divider, Select, Radio, DatePicker, Switch } from 'antd' import { SiteSetEnum, BidModeEnum, OptimizationGoalEnum, BidStrategyEnum } from '@/services/launchAdq/enum' import { ModalConfig } from '.' import moment from 'moment'; const { RangePicker }: { RangePicker: any } = DatePicker; let DatePickers: any = DatePicker interface Props { title?: string, visible: boolean, PupFn: (arg: ModalConfig) => void, callback: (params: any) => void } function AdModal(props: Props) { let { visible, title, PupFn ,callback} = props const [form] = Form.useForm(); let dateType = Form.useWatch('dateType', form) let bidMode = Form.useWatch('bidMode', form) let smartBidType = Form.useWatch('smartBidType', form) let autoAcquisitionEnabled = Form.useWatch('autoAcquisitionEnabled', form) // let siteSet = Form.useWatch('siteSet', form) // 确定事件 const handleOk = useCallback(() => { form.validateFields().then(values => { let newValues = JSON.parse(JSON.stringify(values)) if (newValues.dateType === '2') { newValues['beginDate'] = moment(newValues.date).format('YYYY-MM-DD') } else { newValues['beginDate'] = moment(newValues.date[0]).format('YYYY-MM-DD') newValues['endDate'] = moment(newValues.date[1]).format('YYYY-MM-DD') } delete newValues['dateType'] delete newValues['date'] newValues['timeSeries'] = Array(336).fill(1).join('') callback(newValues) }) // PupFn({ visible: false }) }, [form]) return { PupFn({ visible: false }) }} onOk={handleOk} width={900} >
{/* ============================================================基本信息============================================================= */} 基本信息 广告名称} name='adgroupName' rules={[{ required: true, message: '请输入广告名称!' }]}> 广告版位} name='siteSet' rules={[{ required: true, message: '请输入选择广告版位!' }]}> {/* ============================================================排期与出价============================================================= */} 排期与出价 投放日期} name='dateType'> 选择开始与结束日期 长期投放 {/* 投放日期的不同展示不同的日期选择 */} { dateType === '1' ? : } 投放时段}> 全天投放 出价方式} name='bidMode'> { Object.keys(BidModeEnum).map(key => { return {BidModeEnum[key]} }) } {/* 出价方式为OCPM才展示 */} { bidMode === 'BID_MODE_OCPM' && <> 优化目标} name='optimizationGoal' rules={[{ required: true, message: '请选择优化目标' }]}> 出价类型} name='smartBidType'> 手动出价 自动出价 出价策略} name='bidStrategy'> { Object.keys(BidStrategyEnum).map(key => { return {BidStrategyEnum[key]} }) } } {/* 出价类型为手动出价才展示 */} { smartBidType !== 'SMART_BID_TYPE_SYSTEMATIC' && <> 出价} name='bidAmount' rules={[{ required: true, message: '请输入价格' }]}> {/* 当版位选择大于1时才出现 */} {/* {siteSet?.length > 1 &&分版位出价} name='bidAdjustment'> } */} 一键起量} name='autoAcquisitionEnabled' valuePropName="checked"> {/* 一键起量开启时才出现 */} {autoAcquisitionEnabled && 起量预算} name='autoAcquisitionBudget' rules={[{ required: true, message: '请输入起量预算' }]}> } } 广告日预算} name='dailyBudget'>
} export default AdModal