import { useAjax } from "@/Hook/useAjax" import { copyAdAdApi } from "@/services/launchAdq/adq" import { Checkbox, DatePicker, Form, InputNumber, message, Modal, notification, Radio, Select, Space, Switch, TimePicker } from "antd" import React, { useState } from "react" import moment from "moment" import { getTimeSeriesList } from "./const" import TimeInSelect from "../../components/timeInSelect" import { RangePickerProps } from "antd/lib/date-picker" const { RangePicker } = DatePicker; let DatePickers: any = DatePicker interface Props { visible?: boolean, onChange?: () => void, onClose?: () => void, selectedRows: any[] } const Copy: React.FC = (props) => { /**********************************/ const { visible, onChange, onClose, selectedRows } = props const [form] = Form.useForm(); let dateType = Form.useWatch('dateType', form) const [state, setState] = useState({ isShowTime: [] }) const [timeSeriesType, setTimeSeriesType] = useState<'allDayLong' | 'timeInterValS'>('allDayLong') const copyAdAd = useAjax((params) => copyAdAdApi(params)) /**********************************/ const handleOk = () => { form.validateFields().then(values => { let newValues = JSON.parse(JSON.stringify(values)) if (newValues?.date) { if (newValues.dateType === '2') { newValues['beginDate'] = moment(newValues.date).format('YYYY-MM-DD') newValues['endDate'] = '' } else { newValues['beginDate'] = moment(newValues.date[0]).format('YYYY-MM-DD') newValues['endDate'] = moment(newValues.date[1]).format('YYYY-MM-DD') } } if (newValues?.timeSeries) { newValues['timeSeries'] = newValues.timeSeries.join('') } if (timeSeriesType === 'allDayLong') { newValues.timeSeries = getTimeSeriesList().join('') } if (newValues.firstDayBeginTime) { newValues['firstDayBeginTime'] = moment(newValues.firstDayBeginTime).format('HH:mm:ss') } delete newValues?.date delete newValues?.dateType if (newValues?.bidAmount) { newValues.bidAmount = newValues.bidAmount * 100 } console.log(newValues); copyAdAd.run({ ...newValues, adgroupIds: selectedRows.map((item: { adgroupId: number }) => item.adgroupId) }).then(res => { if (res) { message.success(`复制操作完成.结果请在操作记录查询!`)//成功: ${res.success},失败: ${res.fail} if (res?.fail) { notification.error({ message: `复制失败`, description: `成功: ${res.success},复制失败${res.fail}条,失败的请到任务列表查看`, duration: 0 }); } onChange?.() } }) }) } /** 禁止选择以前时间 */ const disabledDate: RangePickerProps['disabledDate'] = current => { // Can not select days before today and today return current && current < moment().startOf('day'); }; return onClose?.()} confirmLoading={copyAdAd.loading} >
投放日期} name='dateType'> { if (e.target.value === "1") { form.setFieldsValue({ date: [moment().startOf('day'), moment().startOf('day').add(1, 'M')] }) } if (e.target.value === "2") { form.setFieldsValue({ date: moment().startOf('day') }) } }}> 选择开始与结束日期 长期投放 {/* 投放日期的不同展示不同的日期选择 */} {dateType === '1' ? : } 投放时段} style={{ marginBottom: 0 }}> { setTimeSeriesType(value.target.value) if (value.target.value === 'timeInterValS') { setState({ isShowTime: ['1'] }) } }}> 全天投放 指定多个时段 {timeSeriesType === 'timeInterValS' && } }> { setState({ ...state, isShowTime: checkedValue }) }} /> {state?.isShowTime?.length > 0 && } 广告出价} name={"bidAmount"}> 广告启停} name={"configuredStatus"} tooltip="默认:沿用选择广告的启停状态,开启or关闭:复制的所有广告设置成开启or关闭"> 是否复制创意} name={"isCopyAdcreative"} valuePropName="checked" tooltip="选择“是”,新建创意,复制条数不限制;选择”否“沿用旧创意,复制条数限制26条。"> 复制数量} name='copyCount' rules={[{ required: true, message: '请输入复制数量' }]}>
} export default React.memo(Copy)