import { InputNumber, message, Modal, Radio, Space, Switch, Table, Tooltip } from "antd" import React, { useEffect, useState } from "react" import '../../tencentAdPutIn/index.less' import style from './index.less' import { InfoCircleFilled, QuestionCircleOutlined } from "@ant-design/icons" import { updateBatchAdgroupInfoApi } from "@/services/launchAdq/adqv3" import { useAjax } from "@/Hook/useAjax" interface Props { selectAdList: any[] visible?: boolean onClose?: () => void onChange?: () => void } /** * 批量一键起量 * @param param0 * @returns */ const AutoAcquisitionSet: React.FC = ({ selectAdList, visible, onChange, onClose }) => { /****************************************/ const [autoAcquisitionData, setAutoAcquisitionData] = useState<{ autoAcquisitionEnabled: boolean, autoAcquisitionBudget?: number, autoAcquisitionBudgetPercent?: number }>({ autoAcquisitionEnabled: false }) const [isPercent, setIsPercent] = useState(false) const [addType, setAddType] = useState<'fixed' | 'percent'>('fixed') const updateBatchAdgroupInfo = useAjax((params) => updateBatchAdgroupInfoApi(params)) // 名称 const [failIdList, setFailIdList] = useState<{ adgroupId: number, code: number, message: string, messageCn: string }[]>([]) const [failVisible, setFailVisible] = useState(false) /****************************************/ useEffect(() => { if (selectAdList.every(item => item.autoAcquisitionEnabled)) { setIsPercent(true) } else { setIsPercent(false) } }, [selectAdList]) const handleOk = () => { let params = { ...autoAcquisitionData } if (params?.autoAcquisitionEnabled) { if (addType === 'fixed' && !params?.autoAcquisitionBudget) { message.error('请填写起量预算') return } if (addType === 'percent' && !params?.autoAcquisitionBudgetPercent) { message.error('请填写起量预算百分比') return } } if (params?.autoAcquisitionBudgetPercent !== null && params?.autoAcquisitionBudgetPercent !== undefined) params.autoAcquisitionBudgetPercent = params?.autoAcquisitionBudgetPercent / 100 let accountAdgroupMaps = [...new Set(selectAdList?.map(item => item.accountId + ',' + item.adgroupId))] updateBatchAdgroupInfo.run({ accountAdgroupMaps, ...params }).then(res => { if (res?.failIdList?.length === 0) { message.success(`修改操作完成!`) onChange?.() } else { setFailIdList(res?.list || []) setFailVisible(true) } }) console.log(params) } return 批量修改一键起量} open={visible} onCancel={onClose} onOk={handleOk} className='modalResetCss' width={750} confirmLoading={updateBatchAdgroupInfo.loading} >
{value} }, }, { title: '原设置', dataIndex: 'beforeSet', key: 'beforeSet', width: 120, render(value, record) { if (!record?.autoAcquisitionEnabled) { return '未开启' } return `一键起量中,起量预算:${record?.autoAcquisitionBudget} 元` }, } ]} />
修改一键起量

1. 一键起量期间产生的消耗不赔付,但转化计入赔付门槛判断;

2. 一键起量可能导致转化成本高于预期,且起量结束后不一定能持续消耗。

}>
{ autoAcquisitionData?.autoAcquisitionEnabled ? // '对于状态为“一键起量中”、“一键起量完成”、“一键起量中止”的广告,将会自动关闭一键起量,同时按照新的起量预算重新开启一键起量' '开启一键起量' : '当前开关为关闭状态,点击「确定」将默认关闭已选广告的一键起量功能' }
{ setAutoAcquisitionData({ ...autoAcquisitionData, autoAcquisitionEnabled: e }) }} checked={autoAcquisitionData?.autoAcquisitionEnabled} />
{autoAcquisitionData?.autoAcquisitionEnabled && <> setAddType(e.target.value)}> 固定值 百分比上下浮动修改 {addType === 'fixed' ? setAutoAcquisitionData({ autoAcquisitionEnabled: true, autoAcquisitionBudget: e || 0 })} /> : setAutoAcquisitionData({ autoAcquisitionEnabled: true, autoAcquisitionBudgetPercent: e || 0 })} /> } }
{failVisible && 报错信息} open={failVisible} className='modalResetCss' width={650} onCancel={() => { setFailVisible(false); setFailIdList([]) }} footer={null} >
{value}, }, { title: 'code', dataIndex: 'code', key: 'code', width: 70, align: 'center', render: (value) => {value}, }, { title: '错误信息', dataIndex: 'messageCn', key: 'messageCn', render: (value) => {value}, }]} dataSource={failIdList} /> } } export default React.memo(AutoAcquisitionSet)