|
@@ -0,0 +1,593 @@
|
|
|
|
+import WidthEllipsis from "@/components/widthEllipsis"
|
|
|
|
+import { Badge, Progress, Space, Statistic } from "antd"
|
|
|
|
+import React from "react"
|
|
|
|
+import { AD_STATUS_ENUM, BID_MODE_ENUM, PRODUCT_TYPE_ENUM } from "../../const"
|
|
|
|
+import SwitchStatus from "./switchStatus"
|
|
|
|
+import CreativePreview from "../../components/CreativePreview"
|
|
|
|
+import { DELIVERY_MODE_Enum } from "./const"
|
|
|
|
+
|
|
|
|
+function columns12(dayHandle: (data: any) => void, onChange?: () => void): { label: string, fieldSHow?: { label: string, saveField: string, defaultValue: any[], data: any[] }, data: any[] }[] {
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ return [
|
|
|
|
+ {
|
|
|
|
+ label: '腾讯创意基本信息',
|
|
|
|
+ data: [
|
|
|
|
+ {
|
|
|
|
+ title: '广告账号', dataIndex: 'accountId', label: '腾讯创意基本信息', align: 'center', width: 80, default: 2,
|
|
|
|
+ render: (a: string) => (<WidthEllipsis value={a} />)
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '业务类型', dataIndex: 'productType', label: '腾讯创意基本信息', align: 'center', width: 80, default: 3,
|
|
|
|
+ render: (a: string) => (<WidthEllipsis value={PRODUCT_TYPE_ENUM[a as keyof typeof PRODUCT_TYPE_ENUM]} />)
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '应用', dataIndex: 'appName', label: '腾讯创意基本信息', align: 'center', width: 100, default: 4,
|
|
|
|
+ render: (a: string) => (<WidthEllipsis value={a} />)
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '小程序ID', dataIndex: 'mpId', label: '腾讯创意基本信息', align: 'center', width: 100, default: 5,
|
|
|
|
+ render: (a: string, b: any) => (<WidthEllipsis isCopy value={a} />)
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '投手', dataIndex: 'pitcherName', label: '腾讯创意基本信息', align: 'center', width: 60, default: 6,
|
|
|
|
+ render: (a: string) => (<WidthEllipsis value={a} />)
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '创意名称', dataIndex: 'dynamicCreativeName', label: '腾讯创意基本信息', align: 'center', width: 120, default: 7,
|
|
|
|
+ render: (a: string) => (<WidthEllipsis value={a} />)
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '创意ID', dataIndex: 'dynamicCreativeId', label: '腾讯创意基本信息', align: 'center', width: 90, default: 8,
|
|
|
|
+ render: (a: string, b: any) => (b?.accountId === '总计' ? '--' : <WidthEllipsis value={a} isCopy />)
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '广告名称', dataIndex: 'promotionName', label: '腾讯创意基本信息', align: 'center', width: 120, default: 9,
|
|
|
|
+ render: (a: string) => (<WidthEllipsis value={a} />)
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '广告ID', dataIndex: 'promotionId', label: '腾讯创意基本信息', align: 'center', width: 90, default: 10,
|
|
|
|
+ render: (a: string) => (<WidthEllipsis value={a} isCopy/>)
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '广告状态', dataIndex: 'status', label: '腾讯创意基本信息', align: 'center', width: 75, default: 11,
|
|
|
|
+ render: (a: string) => (<WidthEllipsis value={AD_STATUS_ENUM[a as keyof typeof AD_STATUS_ENUM]} />)
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '投放模式', dataIndex: 'deliveryMode', label: '腾讯创意基本信息', align: 'center', width: 75,
|
|
|
|
+ render: (a: string) => (<WidthEllipsis value={DELIVERY_MODE_Enum[a as keyof typeof DELIVERY_MODE_Enum]} />)
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '服务商', dataIndex: 'service', label: '腾讯创意基本信息', align: 'center', width: 75,
|
|
|
|
+ render: (a: string) => (<WidthEllipsis value={a} />)
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '余额', dataIndex: 'balance', label: '腾讯创意基本信息', align: 'right', width: 75, sorter: true, default: 12,
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} precision={2} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '出价方式', dataIndex: 'pricing', label: '腾讯创意基本信息', align: 'center', width: 70, default: 13,
|
|
|
|
+ render: (a: string) => (<WidthEllipsis value={BID_MODE_ENUM[a as keyof typeof BID_MODE_ENUM]} />)
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '当前出价', dataIndex: 'cpaBid', label: '腾讯创意基本信息', align: 'center', width: 75, default: 14, sorter: true,
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '深度转化ROI系数', dataIndex: 'roiGoal', label: '腾讯创意基本信息', align: 'right', width: 75, default: 15,
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '广告日预算', dataIndex: 'budget', label: '腾讯创意基本信息', align: 'right', width: 75, default: 16, sorter: true,
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '广告创建时间', dataIndex: 'adTime', label: '基本信息', align: 'center', width: 140,
|
|
|
|
+ render: (a: string, b: any) => (<WidthEllipsis value={a} />)
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '广告已删除?', dataIndex: 'isDeleted', label: '基本信息', align: 'center', width: 50,
|
|
|
|
+ render: (a: number, b: any) => (b?.accountId === '总计' ? '--' : a == 1 ? <Badge status="error" text="是" /> : <Badge status="success" text="否" />)
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '创意已删除?', dataIndex: 'dynamicCreativeIsDeleted', label: '基本信息', align: 'center', width: 50, default: 17,
|
|
|
|
+ render: (a: number, b: any) => (b?.accountId === '总计' ? '--' : a == 1 ? <Badge status="error" text="是" /> : <Badge status="success" text="否" />)
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '创意创建时间', dataIndex: 'dynamicCreativeCreatedTime', label: '基本信息', align: 'center', width: 140,
|
|
|
|
+ render: (a: string, b: any) => (<WidthEllipsis value={b?.accountId === '总计' ? '--' : `${a}`} />)
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '投放日期', dataIndex: 'startTime', label: '基本信息', align: 'center', width: 180, default: 18,
|
|
|
|
+ render: (a: string, b: any) => (<WidthEllipsis value={b?.accountId === '总计' ? '--' : `${a}-${b?.endTime}`} />)
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '消耗时间', dataIndex: 'dt', label: '基本信息', align: 'center', width: 90, default: 19,
|
|
|
|
+ render: (a: string, b: any) => (<WidthEllipsis value={a} />)
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '今日消耗', dataIndex: 'cost', label: '腾讯创意基本信息', align: 'center', width: 85, default: 20, sorter: true,
|
|
|
|
+ className: 'padding_0',
|
|
|
|
+ render: (a: number) => <div style={{ height: 27, position: 'relative' }}>
|
|
|
|
+ <Progress
|
|
|
|
+ strokeColor={{
|
|
|
|
+ from: '#ff5900',
|
|
|
|
+ to: '#ffd380',
|
|
|
|
+ }}
|
|
|
|
+ status="active"
|
|
|
|
+ showInfo={false}
|
|
|
|
+ percent={a ? a / 20000 * 100 : 0}
|
|
|
|
+ />
|
|
|
|
+ <span style={{ position: 'absolute', left: 0, top: 2, bottom: 0, right: 0, padding: '0 5px' }}><Statistic value={a || 0} valueStyle={a >= 20000 ? { color: '#000', fontWeight: 500 } : { fontWeight: 500 }} /></span>
|
|
|
|
+ </div>
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '广告总消耗', dataIndex: 'totalCost', label: '腾讯创意基本信息', align: 'center', width: 85, default: 21, sorter: true,
|
|
|
|
+ className: 'padding_0',
|
|
|
|
+ render: (a: number) => <div style={{ height: 27, position: 'relative' }}>
|
|
|
|
+ <Progress
|
|
|
|
+ strokeColor={{
|
|
|
|
+ from: '#10c1e9',
|
|
|
|
+ to: '#6892d0',
|
|
|
|
+ }}
|
|
|
|
+ status="active"
|
|
|
|
+ showInfo={false}
|
|
|
|
+ percent={a ? a / 20000 * 100 : 0}
|
|
|
|
+ />
|
|
|
|
+ <span style={{ position: 'absolute', left: 0, top: 2, bottom: 0, right: 0, padding: '0 5px' }}><Statistic value={a || 0} valueStyle={a >= 20000 ? { color: '#000', fontWeight: 500 } : { fontWeight: 500 }} /></span>
|
|
|
|
+ </div>
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '点击量', dataIndex: 'validClickCount', label: '腾讯创意基本信息', align: 'center', width: 70, default: 22, sorter: true,
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '点击率', dataIndex: 'ctr', label: '腾讯创意基本信息', align: 'center', width: 70, default: 23, sorter: true,
|
|
|
|
+ render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 50 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '曝光量', dataIndex: 'viewCount', label: '腾讯创意基本信息', align: 'center', width: 70, default: 24, sorter: true,
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '千次曝光成本', dataIndex: 'thousandDisplayPrice', label: '腾讯创意基本信息', align: 'right', width: 65, default: 25, sorter: true,
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} precision={2} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '点击均价', dataIndex: 'cpc', label: '腾讯创意基本信息', align: 'center', width: 65, default: 26, sorter: true,
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} precision={2} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '转化目标', dataIndex: 'convertTarget', label: '基本信息', align: 'center', width: 65, default: 27, sorter: true,
|
|
|
|
+ render: (a: string) => (<WidthEllipsis value={a} />)
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '转化目标量', dataIndex: 'conversionsCount', label: '基本信息', align: 'center', width: 65, default: 28, sorter: true,
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '转化目标成本', dataIndex: 'convertCost', label: '基本信息', align: 'center', width: 65, default: 29, sorter: true,
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} precision={2} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '转化目标率', dataIndex: 'convertRate', label: '腾讯创意基本信息', align: 'center', width: 70, default: 30, sorter: true,
|
|
|
|
+ render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 50 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '小游戏注册人数', dataIndex: 'miniGameRegisterUsers', label: '基本信息', align: 'center', width: 80, default: 31, sorter: true,
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '小游戏注册成本', dataIndex: 'miniGameRegisterCost', label: '基本信息', align: 'center', width: 80, default: 32, sorter: true,
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} precision={2} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '小游戏注册率', dataIndex: 'miniGameRegisterRate', label: '腾讯创意基本信息', align: 'center', width: 75, default: 33, sorter: true,
|
|
|
|
+ render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 50 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '创意预览', dataIndex: 'dynamicCreativeVOList', label: '腾讯创意基本信息', width: 150, default: 34,
|
|
|
|
+ render: (a: any, b: any) => {
|
|
|
|
+ if (b?.accountId === '总计') {
|
|
|
|
+ return '--'
|
|
|
|
+ }
|
|
|
|
+ if (a?.length) {
|
|
|
|
+ let deliveryMode: string[] = []
|
|
|
|
+ let creativePreview = a?.map((item: { creativeComponents: any, deliveryMode: string }) => {
|
|
|
|
+ deliveryMode.push(item.deliveryMode)
|
|
|
|
+ return { ...item?.creativeComponents }
|
|
|
|
+ })
|
|
|
|
+ return <CreativePreview creativePreview={creativePreview} deliveryMode={deliveryMode} />
|
|
|
|
+ }
|
|
|
|
+ return null
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ label: 'IAA补充指标',
|
|
|
|
+ data: [
|
|
|
|
+ {
|
|
|
|
+ title: '首日ROI', dataIndex: 'firstRoi', label: 'IAA补充指标', align: 'center', width: 80, sorter: true, className: 'redColorClass',
|
|
|
|
+ render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 50 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '24小时ROI', dataIndex: 'twentyFourHoursRoi', label: 'IAA补充指标', align: 'center', width: 80, sorter: true, className: 'redColorClass',
|
|
|
|
+ render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 50 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '总ROI', dataIndex: 'totalRoi', label: 'IAA补充指标', align: 'center', width: 80, sorter: true, className: 'redColorClass',
|
|
|
|
+ render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 50 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '广告总ROI', dataIndex: 'promotionTotalRoi', label: 'IAA补充指标', align: 'center', width: 80, sorter: true, className: 'redColorClass',
|
|
|
|
+ render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 50 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
|
|
|
|
+ }
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ label: '其他业务(平台上报指标)',
|
|
|
|
+ data: [
|
|
|
|
+ {
|
|
|
|
+ title: '激活首24小时广告变现ARPPU(平台上报)', dataIndex: 'firstDayAdPurArppuCost24hPla', label: '其他业务(平台上报指标)', width: 130, align: 'center', sorter: true, className: 'green2ColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '激活首24小时广告变现ROI(平台上报)', dataIndex: 'incomeRoi124hPla', label: '其他业务(平台上报指标)', width: 110, align: 'center', sorter: true, className: 'green2ColorClass',
|
|
|
|
+ render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 50 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '激活首24小时广告变现次数(平台上报)', dataIndex: 'incomePv24hPla', label: '其他业务(平台上报指标)', width: 110, align: 'center', sorter: true, className: 'green2ColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '激活首日广告变现次数(平台上报)', dataIndex: 'incomePv1dPla', label: '其他业务(平台上报指标)', width: 110, align: 'center', sorter: true, className: 'green2ColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '激活3日广告变现次数(平台上报)', dataIndex: 'adMonetizationPlaDedupActive3dPv', label: '其他业务(平台上报指标)', width: 110, align: 'center', sorter: true, className: 'green2ColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '激活7日广告变现次数(平台上报)', dataIndex: 'minigame7dIncomeCount', label: '其他业务(平台上报指标)', width: 110, align: 'center', sorter: true, className: 'green2ColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '注册3日广告变现次数(平台上报)', dataIndex: 'minigame3dIncomeCount', label: '其他业务(平台上报指标)', width: 110, align: 'center', sorter: true, className: 'green2ColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '激活首24小时广告变现金额(平台上报)', dataIndex: 'incomeVal24hPla', label: '其他业务(平台上报指标)', width: 110, align: 'center', sorter: true, className: 'green2ColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} precision={2} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '注册首日广告变现金额(平台上报)', dataIndex: 'miniGameFirstDayAdMonetizationAmount', label: '其他业务(平台上报指标)', width: 120, align: 'center', sorter: true, className: 'green2ColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} precision={2} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '注册7日广告变现金额(平台上报)', dataIndex: 'miniGameAdMonetizationAmountD7', label: '其他业务(平台上报指标)', width: 110, align: 'center', sorter: true, className: 'green2ColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} precision={2} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '激活14日广告变现金额(平台上报)', dataIndex: 'miniGameAdMonetizationAmountD14', label: '其他业务(平台上报指标)', width: 110, align: 'center', sorter: true, className: 'green2ColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} precision={2} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '广告变现金额(平台上报)', dataIndex: 'miniGameAdMonetizationAmount', label: '其他业务(平台上报指标)', width: 100, align: 'center', sorter: true, className: 'green2ColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} precision={2} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '激活首24小时广告变现人数(平台上报)', dataIndex: 'adPayingUsers24hPla', label: '其他业务(平台上报指标)', width: 115, align: 'center', sorter: true, className: 'green2ColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '激活首日广告变现人数(平台上报)', dataIndex: 'adMonetizationPlaDedupActive1dPv', label: '其他业务(平台上报指标)', width: 110, align: 'center', sorter: true, className: 'green2ColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '激活7日变现人数(平台上报)', dataIndex: 'adMonetizationPlaDedupActive7dPv', label: '其他业务(平台上报指标)', width: 100, align: 'center', sorter: true, className: 'green2ColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} />
|
|
|
|
+ }
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ label: '其他业务(其他指标)',
|
|
|
|
+ data: [
|
|
|
|
+ {
|
|
|
|
+ title: '激活首24小时广告变现ARPPU', dataIndex: 'firstDayAdPurArppuCost24h', label: '其他业务(其他指标)', width: 100, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '激活首日广告变现ARPPU', dataIndex: 'firstDayAdPurArppuCost', label: '其他业务(其他指标)', width: 90, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '广告变现ARPPU', dataIndex: 'adMonetizationArppu', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '激活首24小时广告变现ROI', dataIndex: 'incomeRoi124h', label: '其他业务(其他指标)', width: 90, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '激活首日广告变现ROI', dataIndex: 'incomeRoi1', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '激活3日广告变现ROI', dataIndex: 'incomeRoi3', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '激活7日广告变现ROI', dataIndex: 'incomeRoi7', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '激活14日广告变现ROI', dataIndex: 'incomeRoi14', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '广告变现ROI', dataIndex: 'adMonetizationRoi', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '激活首日广告变现成本(人数)', dataIndex: 'adPayingCostD1', label: '其他业务(其他指标)', width: 100, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} precision={2} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '广告变现成本', dataIndex: 'adMonetizationCost', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} precision={2} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '激活3日广告变现次数', dataIndex: 'adMonetizationActive3dPv', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '激活7日广告变现次数', dataIndex: 'adMonetizationActive7dPv', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '广告变现次数(平台上报)', dataIndex: 'incomePvPla', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '激活首24小时广告变现金额', dataIndex: 'incomeVal24h', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} precision={2} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '激活首日广告变现金额', dataIndex: 'incomeVal1', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} precision={2} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '激活3日广告变现金额', dataIndex: 'incomeVal3', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} precision={2} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '激活7日广告变现金额', dataIndex: 'incomeVal7', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} precision={2} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '激活14日广告变现金额', dataIndex: 'incomeVal14', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} precision={2} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '广告变现金额', dataIndex: 'adMonetizationAmount', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} precision={2} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '激活首24小时广告变现人数', dataIndex: 'adPayingUsers24h', label: '其他业务(其他指标)', width: 90, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '激活首日广告变现人数', dataIndex: 'adPayingUsersD1', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '激活3日广告变现人数', dataIndex: 'adMonetizationDedupActive3dPv', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '激活7日广告变现人数', dataIndex: 'adMonetizationDedupActive7dPv', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '注册次数', dataIndex: 'regPv', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '注册人数', dataIndex: 'regDedupPv', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '注册成本', dataIndex: 'regCost', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} precision={2} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: 'APP激活次数', dataIndex: 'activatedCount', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: 'APP点击激活率', dataIndex: 'clickActivatedRate', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: 'APP激活成本', dataIndex: 'activatedCost', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} precision={2} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '激活注册率', dataIndex: 'activateRegisterRate', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '次日留存次数', dataIndex: 'retentionCount', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '次日留存人数', dataIndex: 'miniGameRetentionD1', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '次日留存率', dataIndex: 'retentionRate', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '次日留存成本', dataIndex: 'retentionCost', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} precision={2} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '关键页面次日留存率', dataIndex: 'appKeyPageRetentionRate', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '小游戏次日留存率', dataIndex: 'miniGameRetentionD1Rate', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '小游戏次日留存成本', dataIndex: 'miniGameRetentionD1Cost', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} precision={2} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '3日留存人数', dataIndex: 'appRetentionD3Uv', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '3日留存成本(人数)', dataIndex: 'appRetentionD3Cost', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} precision={2} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '3日留存率(人数)', dataIndex: 'appRetentionD3Rate', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '5日留存人数', dataIndex: 'appRetentionD5Uv', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '5日留存成本(人数)', dataIndex: 'appRetentionD5Cost', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} precision={2} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '5日留存率(人数)', dataIndex: 'appRetentionD5Rate', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '7日留存人数', dataIndex: 'appRetentionD7Uv', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '7日留存成本(人数)', dataIndex: 'appRetentionD7Cost', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} precision={2} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '7日留存率(人数)', dataIndex: 'appRetentionD7Rate', label: '其他业务(其他指标)', width: 80, align: 'center', sorter: true, className: 'volcanoColorClass',
|
|
|
|
+ render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
|
|
|
|
+ },
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ label: '小游戏(平台上报)',
|
|
|
|
+ data: [
|
|
|
|
+ {
|
|
|
|
+ title: '小游戏注册首日广告变现ARPU(平台上报)', dataIndex: 'miniGameFirstDayAdPayingArpu', label: '小游戏(平台上报)', width: 130, align: 'center', sorter: true, className: 'purple1ColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '小游戏广告变现ARPU(平台上报)', dataIndex: 'miniGameAdMonetizationArpu', label: '小游戏(平台上报)', width: 110, align: 'center', sorter: true, className: 'purple1ColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '小游戏注册首日广告变现ROI(平台上报)', dataIndex: 'miniGameIncomeRoi1', label: '小游戏(平台上报)', width: 110, align: 'center', sorter: true, className: 'purple1ColorClass',
|
|
|
|
+ render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '小游戏注册3日广告变现ROI(平台上报)', dataIndex: 'minigame3dIncomeRoi', label: '小游戏(平台上报)', width: 110, align: 'center', sorter: true, className: 'purple1ColorClass',
|
|
|
|
+ render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '小游戏注册7日广告变现ROI(平台上报)', dataIndex: 'minigame7dIncomeRoi', label: '小游戏(平台上报)', width: 110, align: 'center', sorter: true, className: 'purple1ColorClass',
|
|
|
|
+ render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '小游戏广告变现ROI(平台上报)', dataIndex: 'miniGameAdMonetizationRoi', label: '小游戏(平台上报)', width: 110, align: 'center', sorter: true, className: 'purple1ColorClass',
|
|
|
|
+ render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '小游戏注册首日广告变现成本(平台上报)', dataIndex: 'miniGameFirstDayAdPayingCost', label: '小游戏(平台上报)', width: 110, align: 'center', sorter: true, className: 'purple1ColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} precision={2} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '小游戏广告变现成本(平台上报)', dataIndex: 'miniGameAdMonetizationCost', label: '小游戏(平台上报)', width: 110, align: 'center', sorter: true, className: 'purple1ColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} precision={2} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '小游戏注册3日广告变现金额(平台上报)', dataIndex: 'miniGameAdMonetizationAmountD3', label: '小游戏(平台上报)', width: 110, align: 'center', sorter: true, className: 'purple1ColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} precision={2} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '小游戏注册首日广告变现人数(平台上报)', dataIndex: 'miniGameFirstDayAdMonetizationUsers', label: '小游戏(平台上报)', width: 110, align: 'center', sorter: true, className: 'purple1ColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '小游戏注册3日广告变现人数(平台上报)', dataIndex: 'minigame3dIncomeUv', label: '小游戏(平台上报)', width: 110, align: 'center', sorter: true, className: 'purple1ColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '小游戏注册7日广告变现人数(平台上报)', dataIndex: 'minigame7dIncomeUv', label: '小游戏(平台上报)', width: 110, align: 'center', sorter: true, className: 'purple1ColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '小游戏广告变现人数(平台上报)', dataIndex: 'miniGameAdMonetizationUsers', label: '小游戏(平台上报)', width: 110, align: 'center', sorter: true, className: 'purple1ColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '注册次数(平台上报)', dataIndex: 'regPlaPv', label: '小游戏(平台上报)', width: 90, align: 'center', sorter: true, className: 'purple1ColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '注册人数(平台上报+广告主上报)', dataIndex: 'regAllDedupPv', label: '小游戏(平台上报)', width: 110, align: 'center', sorter: true, className: 'purple1ColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '注册成本(平台上报+广告主上报)', dataIndex: 'regCostPla', label: '小游戏(平台上报)', width: 110, align: 'center', sorter: true, className: 'purple1ColorClass',
|
|
|
|
+ render: (a: string) => <Statistic value={a || 0} precision={2} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '注册率(平台上报+广告主上报)', dataIndex: 'regClickRatePla', label: '小游戏(平台上报)', width: 110, align: 'center', sorter: true, className: 'purple1ColorClass',
|
|
|
|
+ render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
|
|
|
|
+ },
|
|
|
|
+ ]
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ label: '操作',
|
|
|
|
+ data: [
|
|
|
|
+ {
|
|
|
|
+ title: '操作', dataIndex: 'cz', label: '操作', align: 'center', width: 150, default: 35,
|
|
|
|
+ render: (_: number, b: any) => {
|
|
|
|
+ if (b?.accountId === '总计') return '--'
|
|
|
|
+ return <Space>
|
|
|
|
+ <a onClick={() => dayHandle(b)}>创意每日监控</a>
|
|
|
|
+ <a onClick={() => {
|
|
|
|
+ window.open(`https://ad.qq.com/atlas/${b?.accountId}/admanage/adgroup?tab=adgroup&query={%22operation_status%22:[%22CALCULATE_STATUS_EXCLUDE_DEL%22],%22system_status%22:[],%22search_name%22:%22${b.promotionId}%22}`)
|
|
|
|
+ }}>腾讯广告</a>
|
|
|
|
+ </Space>
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '启停',
|
|
|
|
+ dataIndex: 'configuredStatus',
|
|
|
|
+ label: '操作',
|
|
|
|
+ align: 'center',
|
|
|
|
+ width: 45,
|
|
|
|
+ default: 1,
|
|
|
|
+ render: (a: string, b: any) => {
|
|
|
|
+ if (b?.accountId === '总计') {
|
|
|
|
+ return '--'
|
|
|
|
+ }
|
|
|
|
+ return <SwitchStatus configuredStatus={a} isDeleted={b?.dynamicCreativeIsDeleted == 1} accountId={b?.accountId} dynamicCreativeId={b?.dynamicCreativeId} onChange={onChange} />
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ ]
|
|
|
|
+ }
|
|
|
|
+ ]
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+export default columns12
|