import { useAjax } from "@/Hook/useAjax" import TimeSeriesLook from "@/pages/launchSystemNew/adq/ad/timeSeriesLook" import { addAdToRuleBlackListApi, delAdToRuleBlackListApi, delAdWarningRuleApi, getAdgroupDetailsApi } from "@/services/adMonitor/adMonitor" import { AdStatusEnum, BidModeEnum, BidStrategyEnum, OptimizationGoalEnum, PromotedObjectType } from "@/services/launchAdq/enum" import { Card, Descriptions, Empty, Popover, Space, Spin, Typography, message } from "antd" import React, { useEffect, useMemo, useState } from "react" import TableData from "@/pages/launchSystemNew/components/TableData" import SetEarlyWarnings from "@/components/EarlyWarning/setEarlyWarnings" import RuleLog from "@/components/EarlyWarning/ruleLog" import tableConfigEw from "@/pages/adMonitor/adMonitorList/components/tableConfigEw" import tableConfig from "../adqv3/creative/tableConfig" export enum EWTypeEnum { DEFAULT = '默认告警规则', ACCOUNT = '广告账号告警规则', ADGROUP = '广告告警规则', ADGROUP_BLACK_LIST = '告警黑名单' } interface Props { accountId: any adgroupId: any } const TabAd: React.FC = ({ accountId, adgroupId }) => { /*******************************/ const [logVisible, setLogVisible] = useState(false) const [ruleId, setrRleId] = useState(0) const [ruleName, setrRuleName] = useState('') const getAdgroupDetails = useAjax((params) => getAdgroupDetailsApi(params), { formatResult: true }) const delAdWarningRule = useAjax((params) => delAdWarningRuleApi(params), { formatResult: true }) const addAdToRuleBlackList = useAjax((params) => addAdToRuleBlackListApi(params), { formatResult: true }) const delAdToRuleBlackList = useAjax((params) => delAdToRuleBlackListApi(params), { formatResult: true }) /*******************************/ useEffect(() => { getAdgroupDetails.run({ adgroupId, accountId }) }, [adgroupId, accountId]) const addBlack = (value: any) => { console.log(value) addAdToRuleBlackList.run({ adgroupId, accountId, ruleId: value.id }).then(res => { if (res?.data) { message.success('添加成功') getAdgroupDetails.refresh() } }) } const remove = (value: any) => { delAdWarningRule.run({ adgroupId, accountId, ruleId: value.id }).then(res => { if (res?.data) { message.success('移除成功') getAdgroupDetails.refresh() } }) } const removeBlack = (value: any) => { delAdToRuleBlackList.run({ adgroupId, accountId, ruleId: value.id }).then(res => { if (res?.data) { message.success('移出成功') getAdgroupDetails.refresh() } }) } const log = (value: any) => { setrRleId(value.id) setrRuleName(value.ruleName) setLogVisible(true) } const AdContent = useMemo(() => { if (getAdgroupDetails?.data?.data) { const { adgroupName, bidAmount, bidMode, optimizationGoal, adgroupId, rejectMessageList, status, smartBidType, beginDate, endDate, targetingTranslation, timeSeries, firstDayBeginTime, dailyBudget, bidStrategy, promotedObjectType, accountId, creativeName } = getAdgroupDetails?.data?.data return
{adgroupName}
{`${BidModeEnum[bidMode]} ${bidAmount}元/${bidMode === 'BID_MODE_CPM' ? '千次曝光' : bidMode === 'BID_MODE_CPC' ? '点击' : OptimizationGoalEnum[optimizationGoal]}`} {adgroupId} {rejectMessageList?.filter((str: any) => str)?.length > 0 ? { return str ? <>{eq + 1}:{str}
: "" })}> {AdStatusEnum[status]}
: AdStatusEnum[status]}
{accountId} {smartBidType === 'SMART_BID_TYPE_CUSTOM' ? '手动出价' : '自动出价'} {PromotedObjectType[promotedObjectType]} {endDate ? beginDate + '~' + endDate : beginDate + '~' + '长期投放'} {targetingTranslation} {} {firstDayBeginTime} {dailyBudget} {creativeName} {BidStrategyEnum[bidStrategy]}
} return }, [getAdgroupDetails?.data?.data, getAdgroupDetails.loading]) console.log(getAdgroupDetails?.data?.data?.dynamicCreativeList) const CreativePreview = useMemo(() => { return tableConfig()} ajax={getAdgroupDetails} dataSource={getAdgroupDetails?.data?.data?.dynamicCreativeList || []} leftChild={ 创意预览 } myKey={'dynamicCreativeId'} loading={getAdgroupDetails?.loading} total={getAdgroupDetails?.data?.data?.dynamicCreativeList?.length || 0} gutter={[0, 10]} /> }, [getAdgroupDetails, getAdgroupDetails?.data?.data, getAdgroupDetails.loading]) const EWContent = useMemo(() => { if (getAdgroupDetails?.data?.data?.warningRuleMap && Object.keys(getAdgroupDetails?.data?.data?.warningRuleMap).length > 0) { let data = getAdgroupDetails?.data?.data?.warningRuleMap let dataArr = Object.keys(getAdgroupDetails?.data?.data?.warningRuleMap) if (!dataArr.includes('ADGROUP')) { dataArr.push('ADGROUP') } return dataArr.map(key => tableConfigEw(key as any, addBlack, remove, removeBlack, log)} ajax={getAdgroupDetails} dataSource={data[key]} leftChild={ {EWTypeEnum[key]} {key === 'ADGROUP' && getAdgroupDetails.refresh()} />} } loading={getAdgroupDetails?.loading} total={getAdgroupDetails?.data?.data?.length} gutter={[0, 10]} /> ) } return tableConfigEw('ADGROUP', addBlack, remove, removeBlack, log)} ajax={getAdgroupDetails} dataSource={[]} leftChild={ {EWTypeEnum['ADGROUP']} getAdgroupDetails.refresh()} /> } loading={getAdgroupDetails?.loading} total={getAdgroupDetails?.data?.data?.length} gutter={[0, 10]} /> }, [getAdgroupDetails?.data?.data, getAdgroupDetails.loading]) return
广告 刷新时间:{getAdgroupDetails?.data?.reqTime} getAdgroupDetails.refresh()} style={{ fontSize: 14 }}>刷新
{AdContent}
{CreativePreview} {EWContent} {logVisible && setLogVisible(false)} />}
} export default React.memo(TabAd)