import { Statistic, Tooltip } from 'antd'
import React from 'react'
import './index.less'
import { ReactComponent as RocketSvg } from '@/assets/rocket.svg'
import { GOUMAILEIXING, GUANGGAOZHUANGTAI, TUIGUANGMUBIAO, CHUANGYIZHUANGTAI, YOUHUAMUBIAO, CHUJIAFANGSHI } from './enum'
import Box from './components/box'
import { GGStateData } from './data'
import { copy } from '@/utils/utils'
function columnsMonitor(details: (id: number) => void) {
return function columns() {
let newArr: any = [
{
title: '数据日期',
dataIndex: 'beginToEnd',
key: 'beginToEnd',
align: 'center',
width: 100,
fixed: 'left',
className: 'padding2',
render: (str: any, b: any) => {
return
{str}
}
},
{
title: '广告名称/ID',
dataIndex: 'adgroupName',
key: 'adgroupName',
align: 'left',
width: 210,
className: 'padding2',
ellipsis: true,
render: (str: any, b: any) => {
return
copy(b.adgroupName)}>{b.adgroupName}
广告ID:{b?.adgroupId}
}
},
{
title: '投放计划名称/ID',
dataIndex: 'campaignName/campaignId',
key: 'campaignName/campaignId',
align: 'left',
width: 180,
className: 'padding2',
ellipsis: true,
render: (str: any, b: any) => {
return
copy(b.campaignName)}>{b.campaignName}
计划ID:{b?.campaignId}
}
},
{
title: '创意名称/ID',
dataIndex: 'creativeName/creativeId',
key: 'creativeName/creativeId',
align: 'left',
className: 'padding2',
width: 210,
render: (str: any, b: any) => {
return
copy(b.creativeName)}>{b.creativeName}
创意ID:{b?.creativeId}
}
},
{
title: '创意预览',
dataIndex: 'creativePreview',
key: 'creativePreview',
width: 110,
align: 'center',
render: (a: any, b: any) => {
// return a && a?.length > 0 ? 预览 : '--'
return
}
},
{
title: '广告账户',
dataIndex: 'accountId',
key: 'accountId',
width: 70,
align: 'center'
},
{
title: '投手',
dataIndex: 'putUserName',
key: 'putUserName',
width: 70,
align: 'center',
render: (a: any) => {
return a || '--'
}
},
{
title: '创建日期',
dataIndex: 'adCreateTime',
key: 'adCreateTime',
align: 'center',
width: 110,
className: 'padding2',
render: (str: any, b: any) => {
return {str}
}
},
{
title: '广告状态',
dataIndex: 'adStatus',
key: 'adStatus',
align: 'center',
width: 105,
ellipsis: true,
render: (a: any) => {
return GGStateData[a] || '--'
}
},
// {
// title: '创意状态',
// dataIndex: "adCreativeStatus",
// key: "adCreativeStatus",
// align: 'center',
// width: 105,
// render: (a: any) => {
// return CHUANGYIZHUANGTAI[a] || '--'
// }
// },
// {
// title: '购买类型',
// dataIndex: 'adBuyType',
// key: 'adBuyType',
// align: 'center',
// width: 110,
// render: (a: any) => {
// return GOUMAILEIXING[a] || '--'
// }
// },
// {
// title: '自动扩量',
// dataIndex: 'autoExpand',
// key: 'autoExpand',
// width: 110,
// align: 'center',
// render: (a: any) => {
// return a
// }
// },
// {
// title: '曝光评估',
// dataIndex: 'impressionAppraise',
// key: 'impressionAppraise',
// align: 'center',
// width: 115,
// render: (a: any) => {
// return a || '--'
// }
// },
{
title: '投放时间',
dataIndex: 'adBeginTime',
key: 'adBeginTime',
align: 'center',
width: 120,
className: 'padding2',
render: (a: any, b: any) => {
return a ?
{a}
{/* {b?.adEndDate} */}
: '--'
}
},
// {
// title: '当日成本偏差',
// dataIndex: 'dayCostOffset',
// key: 'dayCostOffset',
// align: 'center',
// width: 90,
// render: (a: any) => {
// return a || '--'
// }
// },
{
title: '推广目标',
dataIndex: 'promotedObjectType',
key: 'promotedObjectType',
align: 'center',
width: 80,
ellipsis: true,
render: (a: any) => {
return TUIGUANGMUBIAO[a] || '推广公众号'
}
},
// {
// title: '深度优化目标',
// dataIndex: 'depthOptimizeTarget',
// key: 'depthOptimizeTarget',
// width: 110,
// align: 'center',
// render: (a: any) => {
// return a
// }
// },
{
title: '广告预算',
dataIndex: 'adBudget',
key: 'adBudget',
align: 'center',
width: 110,
render: (a: any) => {
return a ? : '--'
}
},
{
title: '出价方式',
dataIndex: 'bidMode',
key: 'bidMode',
align: 'center',
width: 80,
render: (a: any) => {
return CHUJIAFANGSHI[a] || '--'
}
},
{
title: '当前出价',
dataIndex: 'bidAmount',
key: 'bidAmount',
align: 'center',
width: 80,
render: (a: any) => {
return a ? : '--'
}
},
// {
// title: '计划预算',
// dataIndex: 'planBudget',
// key: 'planBudget',
// align: 'center',
// width: 80,
// render: (a: any) => {
// return a ? : '--'
// }
// },
{
title: '广告总消耗',
dataIndex: 'cost',
key: 'cost',
align: 'center',
width: 100,
sorter: true,
render: (a: any) => {
return
}
},
// {
// title: '今日消耗',
// dataIndex: 'todayCostTotal',
// key: 'todayCostTotal',
// align: 'center',
// width: 105,
// render: (a: any) => {
// return
// }
// },
{
title: '单位时间消耗速度',
dataIndex: 'costSpeed',
key: 'costSpeed',
align: 'center',
width: 120,
className: 'padding2',
render: (a: any, b: any) => {
return
}
},
{
title: '曝光量',
dataIndex: 'viewCount',
key: 'viewCount',
align: 'center',
width: 70,
sorter: true,
render: (a: number) => {
return = 100 ? { color: 'red', fontWeight: 600 } : {}}> {a || '--'}
},
},
{
title: '千次曝光成本',
dataIndex: 'thousandDisplayPrice',
key: 'thousandDisplayPrice',
align: 'center',
width: 115,
// sorter: true,
render: (a: any) => {
return
}
},
{
title: '点击量',
dataIndex: 'clickCount',
key: 'clickCount',
align: 'center',
width: 70,
sorter: true,
render: (a: number) => {
return = 100 ? { color: 'red', fontWeight: 600 } : {}}> {a || '--'}
},
},
{
title: '点击均价',
dataIndex: 'avgClickAmount',
key: 'avgClickAmount',
align: 'center',
width: 115,
// sorter: true,
render: (a: any) => {
return
}
},
{
title: '点击率',
dataIndex: 'clickRate',
key: 'clickRate',
align: 'center',
width: 115,
// sorter: true,
render: (a: any) => {
a = a ? parseFloat((a * 100).toFixed(2)) : 0
return a + '%'
}
},
{
title: '不感兴趣点击次数',
dataIndex: 'noInterestCount',
key: 'noInterestCount',
align: 'center',
width: 70,
sorter: true,
render: (a: number) => {
return = 100 ? { color: 'red', fontWeight: 600 } : {}}> {a || '--'}
},
},
{
title: '优化目标',
dataIndex: 'optimizationGoal',
key: 'optimizationGoal',
align: 'center',
width: 115,
render: (a: any) => {
return
{YOUHUAMUBIAO[a] || '--'}
}
},
{
title: '转化目标量',
dataIndex: 'conversionsCount',
key: 'conversionsCount',
align: 'center',
width: 115,
sorter: true,
render: (a: any) => {
return
}
},
{
title: '转化目标成本',
dataIndex: 'conversionsCost',
key: 'conversionsCost',
align: 'center',
width: 115,
// sorter: true,
render: (a: any) => {
return
}
},
{
title: '目标转化率',
dataIndex: 'conversionsRate',
key: 'conversionsRate',
align: 'center',
width: 115,
// sorter: true,
render: (a: any) => {
a = a ? parseFloat((a * 100).toFixed(2)) : 0
return a + '%'
}
},
{
title: '深度转化量',
dataIndex: 'deepConversionsCount',
key: 'deepConversionsCount',
align: 'center',
width: 115,
sorter: true,
render: (a: any) => {
return
}
},
{
title: '下单量',
dataIndex: 'orderCount',
key: 'orderCount',
align: 'center',
width: 115,
sorter: true,
render: (a: any) => {
return
}
},
{
title: '首日新增下单量',
dataIndex: 'firstDayOrderCount',
key: 'firstDayOrderCount',
align: 'center',
width: 115,
sorter: true,
render: (a: any) => {
return
}
},
{
title: '下单成本',
dataIndex: 'orderCost',
key: 'orderCost',
align: 'center',
width: 115,
// sorter: true,
render: (a: any) => {
return
}
},
{
title: '下单率',
dataIndex: 'orderRate',
key: 'orderRate',
align: 'center',
width: 115,
// sorter: true,
render: (a: any) => {
a = a ? parseFloat((a * 100).toFixed(2)) : 0
return a + '%'
}
},
{
title: '下单金额',
dataIndex: 'orderAmount',
key: 'orderAmount',
align: 'center',
width: 115,
sorter: true,
render: (a: any) => {
return
}
},
{
title: '首日新增下单金额',
dataIndex: 'firstDayOrderAmount',
key: 'firstDayOrderAmount',
align: 'center',
width: 115,
sorter: true,
render: (a: any) => {
return
}
},
{
title: '下单客单价',
dataIndex: 'atvAmount',
key: 'atvAmount',
align: 'center',
width: 115,
// sorter: true,
render: (a: any) => {
return
}
},
{
title: '下单ROI',
dataIndex: 'orderROI',
key: 'orderROI',
align: 'center',
width: 115,
// sorter: true,
render: (a: any) => {
a = a ? parseFloat((a * 100).toFixed(2)) : 0
return a + '%'
}
},
{
title: '首日新增下单ROI',
dataIndex: 'firstDayOrderRoi',
key: 'firstDayOrderRoi',
align: 'center',
width: 115,
// sorter: true,
render: (a: any) => {
a = a ? parseFloat((a * 100).toFixed(2)) : 0
return a + '%'
}
},
{
title: '公众号关注人数',
dataIndex: 'mpFollowUser',
key: 'mpFollowUser',
align: 'center',
width: 115,
sorter: true,
render: (a: any) => {
return a || '--'
}
},
{
title: '公众号关注率',
dataIndex: 'mpFollowRate',
key: 'mpFollowRate',
align: 'center',
width: 115,
// sorter: true,
render: (a: any) => {
a = a ? parseFloat((a * 100).toFixed(2)) : 0
return a + '%'
}
},
{
title: '公众号关注成本',
dataIndex: 'mpFollowCost',
key: 'mpFollowCost',
align: 'center',
width: 115,
// sorter: true,
render: (a: any) => {
return
}
},
{
title: '操作',
dataIndex: 'event',
key: 'event',
align: 'center',
width: 90,
render: (a: any, b: any) => {
return window.open(`https://ad.qq.com/atlas/${b?.accountId}/admanage/adcreative?adgroupid=${b?.adgroupId}&query={%22configured_status%22:[%22AD_STATUS_EXCLUDE_DELETED%22],%22status%22:[]}`)} target="_blank">腾讯广告
}
}
]
return newArr
}
}
export default columnsMonitor