wjx 1 gadu atpakaļ
vecāks
revīzija
698d796ce5

+ 70 - 0
src/pages/gameDataStatistics/adlist/monitor/dayAd.tsx

@@ -0,0 +1,70 @@
+import { useAjax } from "@/Hook/useAjax"
+import { PromotionDataDay, getPromotionDataDayListApi } from "@/services/gameData/adlist"
+import { Drawer } from "antd"
+import React, { useEffect, useState } from "react"
+import TableData from "../../components/TableData"
+import columns12 from './tableConfigDay'
+
+interface Props {
+    queryForm: PromotionDataDay
+    adName: string,
+    promotionId?: number
+    onClose?: () => void
+    visible?: boolean
+}
+
+/**
+ * 广告每日监控
+ * @returns 
+ */
+const DayAd: React.FC<Props> = ({ adName, queryForm, promotionId, onClose, visible }) => {
+
+    /***********************************/
+    const [data, setData] = useState<{ pageSize: number, pageNum: number, sortFiled?: string, sortType?: string }>({ pageNum: 1, pageSize: 100 })
+    const getPromotionDataDayList = useAjax((params) => getPromotionDataDayListApi(params))
+    /***********************************/
+
+    useEffect(() => {
+        let params = JSON.parse(JSON.stringify(queryForm))
+        delete params.sortType
+        delete params.sortFiled
+        delete params.pageSize
+        delete params.pageNum
+        if (promotionId) {
+            params.promotionId = promotionId
+        }
+        getPromotionDataDayList.run({...params, ...data})
+    }, [promotionId, queryForm, data])
+
+    return <Drawer title={`${adName} 广告每日数据`} placement="right" width={'90%'} onClose={onClose} visible={visible}>
+        <TableData
+            scroll={{ x: 1000, y: 600 }}
+            ajax={getPromotionDataDayList}
+            fixed={{ left: 3, right: 0 }}
+            dataSource={getPromotionDataDayList?.data?.records?.map((item: any, index: number) => ({ ...item, id:  Number(data.pageNum.toString() + index.toString()) }))}
+            total={getPromotionDataDayList?.data?.total}
+            page={queryForm.pageNum}
+            pageSize={queryForm.pageSize}
+            title='广告每日监控'
+            onChange={(props: any) => {
+                let { pagination, sortData } = props
+                let { current, pageSize } = pagination
+                let newQueryForm = JSON.parse(JSON.stringify(data))
+                if (sortData && sortData?.order) {
+                    newQueryForm['sortType'] = sortData?.order === 'ascend' ? 'asc' : 'desc'
+                    newQueryForm['sortFiled'] = sortData?.field
+                } else {
+                    delete newQueryForm['sortType']
+                    delete newQueryForm['sortFiled']
+                }
+                newQueryForm.pageNum = current
+                newQueryForm.pageSize = pageSize
+                setData({ ...newQueryForm })
+            }}
+            config={columns12()}
+            configName={'广告每日监控'}
+        />
+    </Drawer>
+}
+
+export default React.memo(DayAd)

+ 15 - 3
src/pages/gameDataStatistics/adlist/monitor/index.tsx

@@ -6,6 +6,7 @@ import QueryForm from "@/components/QueryForm"
 import TableData from "../../components/TableData"
 import moment from "moment"
 import { getPresets } from "@/components/QueryForm/const"
+import DayAd from "./dayAd"
 
 
 const Monitor = () => {
@@ -13,6 +14,9 @@ const Monitor = () => {
     /***************************************/
     const [queryForm, setQueryForm] = useState<PromotionDataDay>({ pageNum: 1, pageSize: 100, sourceSystem: 'ZX_ONE', costBeginDate: moment().format('YYYY-MM-DD'), costEndDate: moment().format('YYYY-MM-DD') })
     const [totalData, setTotalData] = useState<any[]>([])
+    const [visible, setVisible] = useState<boolean>(false)
+    const [promotionId, setPromotionId] = useState<number>()
+    const [adName, setAdName] = useState<string>('')
 
     const getPromotionDataDatList = useAjax((params) => getPromotionDataDatListApi(params))
     const getPromotionDataDatTotal = useAjax((params) => getPromotionDataDatTotalApi(params))
@@ -27,6 +31,12 @@ const Monitor = () => {
         })
     }, [queryForm])
 
+    const dayHandle = (data: any) => {
+        setVisible(true)
+        setAdName(data.promotionName)
+        setPromotionId(data.promotionId)
+    }
+
     return <div>
         <TableData
             leftChild={<QueryForm
@@ -68,8 +78,8 @@ const Monitor = () => {
             totalData={totalData}
             scroll={{ x: 1000, y: 600 }}
             ajax={getPromotionDataDatList}
-            fixed={{ left: 3, right: 0 }}
-            dataSource={getPromotionDataDatList?.data?.records?.map((item: any, index: number) => ({ ...item, id: item?.orderId?.replace(/\D/g, '') || index }))}
+            fixed={{ left: 3, right: 1 }}
+            dataSource={getPromotionDataDatList?.data?.records?.map((item: any, index: number) => ({ ...item, id: Number(queryForm.pageNum.toString() + index.toString()) }))}
             total={getPromotionDataDatList?.data?.total}
             page={queryForm.pageNum}
             pageSize={queryForm.pageSize}
@@ -89,9 +99,11 @@ const Monitor = () => {
                 newQueryForm.pageSize = pageSize
                 setQueryForm({ ...newQueryForm })
             }}
-            config={columns12()}
+            config={columns12(dayHandle)}
             configName={'广告监控'}
         />
+
+        {visible && <DayAd adName={adName} visible={visible} onClose={() => { setVisible(false); setPromotionId(undefined) }} queryForm={queryForm} promotionId={promotionId} />}
     </div>
 }
 

+ 27 - 15
src/pages/gameDataStatistics/adlist/monitor/tableConfig.tsx

@@ -5,7 +5,7 @@ import React from "react"
 import { ADSTATUSEnum, LANDINGTYPEEnum, PRICINGEnum } from './const'
 import './index.less'
 
-function columns12(): { label: string, fieldSHow?: { label: string, saveField: string, defaultValue: any[], data: any[] }, data: any[] }[] {
+function columns12(dayHandle: (data: any) => void): { label: string, fieldSHow?: { label: string, saveField: string, defaultValue: any[], data: any[] }, data: any[] }[] {
 
     const data = [{ lable: '次日', value: 2 }, { lable: 'D3', value: 3 }, { lable: 'D7', value: 7 }, { lable: 'D15', value: 15 }]
     let date = data.map(item => {
@@ -100,7 +100,7 @@ function columns12(): { label: string, fieldSHow?: { label: string, saveField: s
                     render: (a: string, b: any) => (<WidthEllipsis value={TYPE[a]} />)
                 },
                 {
-                    title: '余额', dataIndex: 'balance', label: '账户信息', align: 'center', width: 70,
+                    title: '余额', dataIndex: 'balance', label: '账户信息', align: 'center', width: 70, sorter: true,
                     render: (a: string, b: any) => (<WidthEllipsis value={a} />)
                 }
             ]
@@ -158,7 +158,7 @@ function columns12(): { label: string, fieldSHow?: { label: string, saveField: s
                     render: (a: any) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '日预算', dataIndex: 'budget', label: '广告信息', align: 'center', width: 70, default: 9,
+                    title: '日预算', dataIndex: 'budget', label: '广告信息', align: 'center', width: 70, default: 9, sorter: true,
                     render: (a: string, b: any) => (<WidthEllipsis value={a} />)
                 },
                 {
@@ -175,7 +175,7 @@ function columns12(): { label: string, fieldSHow?: { label: string, saveField: s
                     render: (a: any) => <Statistic valueStyle={{ fontWeight: 'bold', fontSize: 14 }} value={a || 0} />
                 },
                 {
-                    title: '总消耗', dataIndex: 'promotionTotalCost', label: '消耗', align: 'center', width: 100,
+                    title: '总消耗', dataIndex: 'promotionTotalCost', label: '消耗', align: 'center', width: 100, sorter: true,
                     render: (a: any) => <Statistic value={a || 0} />
                 }
             ]
@@ -252,7 +252,7 @@ function columns12(): { label: string, fieldSHow?: { label: string, saveField: s
                     render: (a: any) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '付费次数成本(广告)', dataIndex: 'gamePayCountCost', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 80, 
+                    title: '付费次数成本(广告)', dataIndex: 'gamePayCountCost', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 80, sorter: true,
                     render: (a: any) => <Statistic value={a || 0} />
                 }
             ]
@@ -272,7 +272,7 @@ function columns12(): { label: string, fieldSHow?: { label: string, saveField: s
                     render: (a: any) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '总注册人数', dataIndex: 'regTotalNum', label: '用户数据', align: 'center', width: 70, tips: '广告的总注册人数',
+                    title: '总注册人数', dataIndex: 'regTotalNum', label: '用户数据', align: 'center', width: 70, tips: '广告的总注册人数', sorter: true,
                     render: (a: any) => <Statistic value={a || 0} />
                 },
                 {
@@ -284,7 +284,7 @@ function columns12(): { label: string, fieldSHow?: { label: string, saveField: s
                     render: (a: any) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '总创角人数', dataIndex: 'roleTotalNum', label: '用户数据', align: 'center', width: 60,
+                    title: '总创角人数', dataIndex: 'roleTotalNum', label: '用户数据', align: 'center', width: 60, sorter: true,
                     render: (a: any) => <Statistic value={a || 0} />
                 },
                 {
@@ -292,7 +292,7 @@ function columns12(): { label: string, fieldSHow?: { label: string, saveField: s
                     render: (a: any) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '总注册成本', dataIndex: 'regTotalCost', label: '用户数据', align: 'center', width: 70,
+                    title: '总注册成本', dataIndex: 'regTotalCost', label: '用户数据', align: 'center', width: 70, sorter: true,
                     render: (a: any) => <Statistic value={a || 0} />
                 },
                 {
@@ -304,7 +304,7 @@ function columns12(): { label: string, fieldSHow?: { label: string, saveField: s
                     render: (a: any) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '总创角成本', dataIndex: 'roleTotalCost', label: '用户数据', align: 'center', width: 60,
+                    title: '总创角成本', dataIndex: 'roleTotalCost', label: '用户数据', align: 'center', width: 60, sorter: true,
                     render: (a: any) => <Statistic value={a || 0} />
                 },
                 {
@@ -316,7 +316,7 @@ function columns12(): { label: string, fieldSHow?: { label: string, saveField: s
                     render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
                 },
                 {
-                    title: '总创角率', dataIndex: 'roleTotalRate', label: '用户数据', align: 'center', width: 80,
+                    title: '总创角率', dataIndex: 'roleTotalRate', label: '用户数据', align: 'center', width: 80, sorter: true,
                     render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
                 },
             ]
@@ -353,15 +353,15 @@ function columns12(): { label: string, fieldSHow?: { label: string, saveField: s
                     render: (a: any) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '总充值次数', dataIndex: 'totalAmountCount', label: '付费数据', align: 'center', width: 50, className: 'payDataBackColorClass',
+                    title: '总充值次数', dataIndex: 'totalAmountCount', label: '付费数据', align: 'center', width: 50, className: 'payDataBackColorClass', sorter: true,
                     render: (a: any) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '总充值人数', dataIndex: 'totalAmountNum', label: '付费数据', align: 'center', width: 50, className: 'payDataBackColorClass',
+                    title: '总充值人数', dataIndex: 'totalAmountNum', label: '付费数据', align: 'center', width: 50, className: 'payDataBackColorClass', sorter: true,
                     render: (a: any) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '总充值金额', dataIndex: 'totalAmount', label: '付费数据', align: 'center', width: 70, className: 'payDataBackColorClass',
+                    title: '总充值金额', dataIndex: 'totalAmount', label: '付费数据', align: 'center', width: 70, className: 'payDataBackColorClass', sorter: true,
                     render: (a: any) => <Statistic value={a || 0} />
                 },
                 {
@@ -377,7 +377,7 @@ function columns12(): { label: string, fieldSHow?: { label: string, saveField: s
                     render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
                 },
                 {
-                    title: '广告总ROI', dataIndex: 'promotionTotalRoi', label: '付费数据', align: 'center', width: 70, className: 'payDataBackColorClass',
+                    title: '广告总ROI', dataIndex: 'promotionTotalRoi', label: '付费数据', align: 'center', width: 70, className: 'payDataBackColorClass', sorter: true,
                     render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
                 },
                 {
@@ -389,7 +389,7 @@ function columns12(): { label: string, fieldSHow?: { label: string, saveField: s
                     render: (a: any) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '总付费成本', tips: '总付费成本(广告总付费用户成本)', dataIndex: 'totalRechargeCost', label: '付费数据', align: 'center', width: 70, className: 'payDataBackColorClass',
+                    title: '总付费成本', tips: '总付费成本(广告总付费用户成本)', dataIndex: 'totalRechargeCost', label: '付费数据', align: 'center', width: 70, className: 'payDataBackColorClass', sorter: true,
                     render: (a: any) => <Statistic value={a || 0} />
                 },
                 {
@@ -518,6 +518,18 @@ function columns12(): { label: string, fieldSHow?: { label: string, saveField: s
                 },
                 ...date
             ]
+        },
+        {
+            label: '操作',
+            data: [
+                {
+                    title: '操作', dataIndex: 'cz', label: '操作', align: 'center', width: 100, default: 41,
+                    render: (_: number, b: any) => {
+                        if (b?.accountName === '总计') return '--'
+                        return <a onClick={() => dayHandle(b)}>广告每日监控</a>
+                    }
+                },
+            ]
         }
     ]
 }

+ 534 - 0
src/pages/gameDataStatistics/adlist/monitor/tableConfigDay.tsx

@@ -0,0 +1,534 @@
+import { TYPE, gameClassifyEnum } from "@/components/QueryForm/const"
+import WidthEllipsis from "@/components/widthEllipsis"
+import { Statistic } from "antd"
+import React from "react"
+import { ADSTATUSEnum, LANDINGTYPEEnum, PRICINGEnum } from './const'
+import './index.less'
+
+function columns12(): { label: string, fieldSHow?: { label: string, saveField: string, defaultValue: any[], data: any[] }, data: any[] }[] {
+
+    const data = [{ lable: '次日', value: 2 }, { lable: 'D3', value: 3 }, { lable: 'D7', value: 7 }, { lable: 'D15', value: 15 }]
+    let date = data.map(item => {
+        let field = `d${item.value}Trend`
+        return {
+            title: item.lable,
+            dataIndex: `D${item.value}`,
+            label: '付费数据',
+            align: 'center',
+            width: 85,
+            className: 'payDataBackColorClass',
+            children: [
+                {
+                    title: 'ROI',
+                    dataIndex: 'roi',
+                    key: 'roi',
+                    width: 60,
+                    align: 'center',
+                    render: (_: any, b: any) => {
+                        let data: any = {}
+                        if (b?.[field]) {
+                            data = b?.[field]
+                            return <Statistic value={data?.roi ? data?.roi * 100 : 0} precision={2} valueStyle={data?.roi >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                        }
+                        return '--'
+                    }
+                },
+                {
+                    title: '付费',
+                    dataIndex: 'rechargeMoney',
+                    key: 'rechargeMoney',
+                    width: 60,
+                    align: 'center',
+                    render: (_: any, b: any) => {
+                        let data: any = {}
+                        if (b?.[field]) {
+                            data = b?.[field]
+                            return <Statistic value={data?.rechargeMoney || 0} />
+                        }
+                        return '--'
+                    }
+                },
+                {
+                    title: '倍数',
+                    dataIndex: 'multiples',
+                    key: 'multiples',
+                    width: 40,
+                    align: 'center',
+                    render: (_: any, b: any) => {
+                        let data: any = {}
+                        if (b?.[field]) {
+                            data = b?.[field]
+                            return <span>{data?.multiples || 0}</span>
+                        }
+                        return '--'
+                    }
+                },
+            ]
+        }
+    })
+
+    return [
+        {
+            label: '时间',
+            data: [
+                {
+                    title: '日期', dataIndex: 'dt', label: '时间', align: 'center', width: 100, default: 1,
+                    render: (a: string, b: any) => (<WidthEllipsis value={a} />)
+                }
+            ]
+        },
+        {
+            label: '账户信息',
+            data: [
+                {
+                    title: '推广账号名称', dataIndex: 'accountName', label: '账户信息', align: 'center', width: 100, default: 2,
+                    render: (a: string, b: any) => (<WidthEllipsis value={a} />)
+                },
+                {
+                    title: '推广账号ID', dataIndex: 'accountId', label: '账户信息', align: 'center', width: 120, default: 3,
+                    render: (a: string, b: any) => (<WidthEllipsis isCopy value={a} />)
+                },
+                {
+                    title: '备注', dataIndex: 'notes', label: '账户信息', align: 'center', width: 120,
+                    render: (a: string, b: any) => (<WidthEllipsis value={a} />)
+                },
+                {
+                    title: '投手', dataIndex: 'pitcherName', label: '账户信息', align: 'center', width: 70,
+                    render: (a: string, b: any) => (<WidthEllipsis value={a} />)
+                },
+                {
+                    title: '投放渠道', dataIndex: 'agentName', label: '账户信息', align: 'center', width: 75, default: 4,
+                    render: (a: string, b: any) => (<WidthEllipsis value={a} />)
+                },
+                {
+                    title: '服务商', dataIndex: 'service', label: '账户信息', align: 'center', width: 95,
+                    render: (a: string, b: any) => (<WidthEllipsis value={a} />)
+                },
+                {
+                    title: '投放媒体', dataIndex: 'accountType', label: '账户信息', align: 'center', width: 70,
+                    render: (a: string, b: any) => (<WidthEllipsis value={TYPE[a]} />)
+                },
+                {
+                    title: '余额', dataIndex: 'balance', label: '账户信息', align: 'center', width: 70, sorter: true,
+                    render: (a: string, b: any) => (<WidthEllipsis value={a} />)
+                }
+            ]
+        },
+        {
+            label: '推广内容',
+            data: [
+                {
+                    title: '推广游戏名称', dataIndex: 'gameName', label: '推广内容', align: 'center', width: 70,
+                    render: (a: string, b: any) => (<WidthEllipsis value={a} />)
+                },
+                {
+                    title: '推广游戏应用类型', dataIndex: 'classify', label: '推广内容', align: 'center', width: 95,
+                    render: (a: string) => (<span>{gameClassifyEnum[a]}</span>)
+                }
+            ]
+        },
+        {
+            label: '广告信息',
+            data: [
+                {
+                    title: '推广广告名称', dataIndex: 'promotionName', label: '广告信息', align: 'center', width: 130, default: 5,
+                    render: (a: string, b: any) => (<WidthEllipsis isCopy value={a} />)
+                },
+                {
+                    title: '广告ID', dataIndex: 'promotionId', label: '广告信息', align: 'center', width: 90, default: 6,
+                    render: (a: string, b: any) => (<WidthEllipsis isCopy value={a} />)
+                },
+                {
+                    title: '推广计划名称', dataIndex: 'projectName', label: '广告信息', align: 'center', width: 130,
+                    render: (a: string, b: any) => (<WidthEllipsis isCopy value={a} />)
+                },
+                {
+                    title: '计划ID', dataIndex: 'projectId', label: '广告信息', align: 'center', width: 90,
+                    render: (a: string, b: any) => (<WidthEllipsis isCopy value={a} />)
+                },
+                {
+                    title: '广告状态', dataIndex: 'status', label: '广告信息', align: 'left', width: 120, default: 7,
+                    render: (a: string, b: any) => (<WidthEllipsis value={ADSTATUSEnum[a]} />)
+                },
+                {
+                    title: '推广目标', dataIndex: 'landingType', label: '广告信息', align: 'center', width: 80,
+                    render: (a: string, b: any) => (<WidthEllipsis value={LANDINGTYPEEnum[a]} />)
+                },
+                {
+                    title: '出价方式', dataIndex: 'pricing', label: '广告信息', align: 'center', width: 100, default: 8,
+                    render: (a: string, b: any) => (<WidthEllipsis value={PRICINGEnum[a]} />)
+                },
+                {
+                    title: '当前出价', dataIndex: 'cpaBid', label: '广告信息', align: 'center', width: 70, default: 9,
+                    render: (a: any) => <Statistic value={a || '--'} />
+                },
+                {
+                    title: '深度转化ROI系数', dataIndex: 'roiGoal', label: '广告信息', align: 'center', width: 65, sorter: true,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '日预算', dataIndex: 'budget', label: '广告信息', align: 'center', width: 70, default: 10, sorter: true,
+                    render: (a: string, b: any) => (<WidthEllipsis value={a} />)
+                },
+                {
+                    title: '投放时间', dataIndex: 'scheduleTime', label: '广告信息', align: 'center', width: 135, default: 11,
+                    render: (a: string, b: any) => (<WidthEllipsis value={a} />)
+                }
+            ]
+        },
+        {
+            label: '消耗',
+            data: [
+                {
+                    title: '今日消耗', dataIndex: 'todayCost', label: '消耗', align: 'center', width: 85, sorter: true, default: 12,
+                    render: (a: any) => <Statistic valueStyle={{ fontWeight: 'bold', fontSize: 14 }} value={a || 0} />
+                },
+                {
+                    title: '总消耗', dataIndex: 'promotionTotalCost', label: '消耗', align: 'center', width: 100, sorter: true,
+                    render: (a: any) => <Statistic value={a || 0} />
+                }
+            ]
+        },
+        {
+            label: '广告媒体端数据',
+            data: [
+                {
+                    title: '曝光量', dataIndex: 'showCount', label: '广告媒体端数据', align: 'center', width: 60, sorter: true, default: 13, className: "adDataBackColorClass",
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '千次曝光成本', dataIndex: 'thousandDisplayPrice', label: '广告媒体端数据', align: 'center', width: 65, sorter: true, className: "adDataBackColorClass", default: 15,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '点击量', dataIndex: 'clickCount', label: '广告媒体端数据', align: 'center', width: 60, sorter: true, className: "adDataBackColorClass", default: 14,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '点击均价', dataIndex: 'avgClickCost', label: '广告媒体端数据', align: 'center', width: 60, sorter: true, className: "adDataBackColorClass", default: 16,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '点击率', dataIndex: 'ctr', label: '广告媒体端数据', align: 'center', width: 60, sorter: true, className: "adDataBackColorClass", default: 17,
+                    render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+                {
+                    title: '转化目标', dataIndex: 'convertTarget', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 70,
+                    render: (a: string, b: any) => (<WidthEllipsis value={a} />)
+                },
+                {
+                    title: '转化目标量', dataIndex: 'convertCount', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 60, sorter: true,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '转化目标成本', dataIndex: 'convertCost', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true,
+                    render: (a: any) => <Statistic value={a || 0} valueStyle={a > 700 ? { color: 'red', fontWeight: 'bold' } : {}} />
+                },
+                {
+                    title: '目标转化率', dataIndex: 'convertRate', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 60, sorter: true,
+                    render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+                {
+                    title: '注册人数(广告)', dataIndex: 'active', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 70, sorter: true, default: 18,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '注册成本(广告)', dataIndex: 'activeCost', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 70, sorter: true, default: 19,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '首日转化数(广告)', dataIndex: 'firstConvertCount', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 70, sorter: true, default: 20,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '首日转化成本(广告)', dataIndex: 'firstConvertCost', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 70, sorter: true, default: 21,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '首次付费率(广告)', dataIndex: 'firstActivePayRate', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 70, sorter: true, default: 22,
+                    render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+                {
+                    title: '首日付费金额(广告)', dataIndex: 'firstAttributionGameInAppLtv1day', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 70, sorter: true, default: 23,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '首日付费ROI(广告)', dataIndex: 'firstAttributionGameInAppRoi1day', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true, default: 24,
+                    render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+                {
+                    title: '付费次数(广告)', dataIndex: 'gamePayCount', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 70, sorter: true, default: 25,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '付费次数成本(广告)', dataIndex: 'gamePayCountCost', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 80, sorter: true,
+                    render: (a: any) => <Statistic value={a || 0} />
+                }
+            ]
+        },
+        {
+            label: '用户数据',
+            data: [
+                {
+                    title: '注册人数',
+                    tips: '新增用户数(首次注册用户)',
+                    dataIndex: 'regNum',
+                    label: '用户数据',
+                    align: 'center',
+                    width: 70,
+                    sorter: true,
+                    default: 30,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '总注册人数', dataIndex: 'regTotalNum', label: '用户数据', align: 'center', width: 70, tips: '广告的总注册人数',sorter: true,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '首日创角人数', dataIndex: 'firstRoleNum', label: '用户数据', align: 'center', width: 60, sorter: true, default: 32,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '新用户累计创角人数', dataIndex: 'newUserTotalRoleNum', label: '用户数据', align: 'center', width: 70, sorter: true,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '总创角人数', dataIndex: 'roleTotalNum', label: '用户数据', align: 'center', width: 60,sorter: true,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '注册成本', dataIndex: 'regCost', label: '用户数据', align: 'center', width: 70, sorter: true, default: 31,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '总注册成本', dataIndex: 'regTotalCost', label: '用户数据', align: 'center', width: 70,sorter: true,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '首日创角成本', dataIndex: 'firstRoleCost', label: '用户数据', align: 'center', width: 60, sorter: true, default: 33,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '新用户创角成本', dataIndex: 'newUserTotalRoleCost', label: '用户数据', align: 'center', width: 65, sorter: true,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '总创角成本', dataIndex: 'roleTotalCost', label: '用户数据', align: 'center', width: 60,sorter: true,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '首日创角率', dataIndex: 'firstRoleRate', label: '用户数据', align: 'center', width: 70, sorter: true, default: 34,
+                    render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+                {
+                    title: '新用户创角率', dataIndex: 'newUserTotalRoleRate', label: '用户数据', align: 'center', width: 70, sorter: true,
+                    render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+                {
+                    title: '总创角率', dataIndex: 'roleTotalRate', label: '用户数据', align: 'center', width: 80,sorter: true,
+                    render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+            ]
+        },
+        {
+            label: '付费数据',
+            data: [
+                {
+                    title: '首日充值次数', tips: "新增付费次数(首次注册并充值的总次数)", dataIndex: 'firstNewUserAmountCount', label: '付费数据', align: 'center', width: 80, sorter: true, className: 'payDataBackColorClass', default: 26,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '首日充值人数', tips: '新增付费人数(首次注册并充值人数)', dataIndex: 'firstNewUserAmountNum', label: '付费数据', align: 'center', width: 80, sorter: true, className: 'payDataBackColorClass', default: 27,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '首日充值金额', tips: '新增付费金额(首次注册并充值金额)', dataIndex: 'firstNewUserAmount', label: '付费数据', align: 'center', width: 90, sorter: true, className: 'payDataBackColorClass', default: 28,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '至今付费次数', dataIndex: 'newUserTotalAmountCount', label: '付费数据', align: 'center', width: 60, sorter: true, className: 'payDataBackColorClass',
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '至今付费人数', dataIndex: 'newUserTotalAmountNum', label: '付费数据', align: 'center', width: 60, sorter: true, className: 'payDataBackColorClass',
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '至今付费金额', dataIndex: 'newUserTotalAmount', label: '付费数据', align: 'center', width: 80, sorter: true, className: 'payDataBackColorClass',
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '新用户24小时充值金额', dataIndex: 'twentyFourHoursAmount', label: '付费数据', align: 'center', width: 80, sorter: true, className: 'payDataBackColorClass',
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '总充值次数', dataIndex: 'totalAmountCount', label: '付费数据', align: 'center', width: 50, className: 'payDataBackColorClass',sorter: true,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '总充值人数', dataIndex: 'totalAmountNum', label: '付费数据', align: 'center', width: 50, className: 'payDataBackColorClass',sorter: true,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '总充值金额', dataIndex: 'totalAmount', label: '付费数据', align: 'center', width: 70, className: 'payDataBackColorClass',sorter: true,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '首日ROI', dataIndex: 'firstRoi', label: '付费数据', align: 'center', width: 65, sorter: true, default: 35, className: 'payDataBackColorClass',
+                    render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+                {
+                    title: '24小时ROI', dataIndex: 'twentyFourHoursRoi', label: '付费数据', align: 'center', width: 70, sorter: true, default: 36, className: 'payDataBackColorClass',
+                    render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+                {
+                    title: '总ROI', dataIndex: 'totalRoi', label: '付费数据', align: 'center', width: 70, sorter: true, className: 'payDataBackColorClass',
+                    render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+                {
+                    title: '广告总ROI', dataIndex: 'promotionTotalRoi', label: '付费数据', align: 'center', width: 70, className: 'payDataBackColorClass',sorter: true,
+                    render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+                {
+                    title: '首日充值成本', tips: '新增付费成本(首次注册并充值的用户成本)', dataIndex: 'firstNewUserRechargeCost', label: '付费数据', align: 'center', width: 80, sorter: true, default: 29, className: 'payDataBackColorClass',
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '至今付费成本', dataIndex: 'newUserTotalRechargeCost', label: '付费数据', align: 'center', width: 70, sorter: true, className: 'payDataBackColorClass',
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '总付费成本', tips: '总付费成本(广告总付费用户成本)', dataIndex: 'totalRechargeCost', label: '付费数据', align: 'center', width: 70, className: 'payDataBackColorClass',sorter: true,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '首日付费用户ARPPU', tips: '首日充值金额/首日充值人数', dataIndex: 'firstNewUserArppu', label: '付费数据', align: 'center', width: 70, sorter: true, default: 38, className: 'payDataBackColorClass',
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '至今付费ARPPU', dataIndex: 'newUserTotalAmountArppu', label: '付费数据', align: 'center', width: 60, sorter: true, className: 'payDataBackColorClass',
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '首日付费100+用户数', tips: '首次注册并在注册当天单笔充值金额大于100的用户人数', dataIndex: 'firstNewUserHundredUserNum', label: '付费数据', align: 'center', width: 90, sorter: true, className: 'payDataBackColorClass',
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '首日付费100+用户付费成本', tips: '今日消耗/首日付费100+用户数', dataIndex: 'firstNewUserHundredUserCost', label: '付费数据', align: 'center', width: 95, sorter: true, className: 'payDataBackColorClass',
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '至今付费100+用户付费成本', dataIndex: 'newUserTotalHundredUserCost', label: '付费数据', align: 'center', width: 85, sorter: true, className: 'payDataBackColorClass',
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '首充50~100元用户数', dataIndex: 'firstRechargeFiftyHundredNum', label: '付费数据', align: 'center', width: 80, sorter: true, className: 'payDataBackColorClass',
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '首充50~100元占比', dataIndex: 'firstRechargeFiftyHundredRate', label: '付费数据', align: 'center', width: 70, sorter: true, className: 'payDataBackColorClass',
+                    render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+                {
+                    title: '首日付费200+人数', tips: '首次注册并在注册当天单笔充值金额大于200的用户人数', dataIndex: 'firstNewUserTwoHundredUserNum', label: '付费数据', align: 'center', width: 90, sorter: true, className: 'payDataBackColorClass',
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '首日付费200+用户付费成本', tips: '今日消耗/首日付费200+用户数', dataIndex: 'firstNewUserTwoHundredUserCost', label: '付费数据', align: 'center', width: 95, sorter: true, className: 'payDataBackColorClass',
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '至今付费100+用户数', dataIndex: 'newUserTotalHundredUserNum', label: '付费数据', align: 'center', width: 80, sorter: true, className: 'payDataBackColorClass',
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '首日IOS付费次数', dataIndex: 'firstIosAmountCount', label: '付费数据', align: 'center', width: 75, sorter: true, className: 'payDataBackColorClass',
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '首日IOS付费人数', dataIndex: 'firstIosAmountNum', label: '付费数据', align: 'center', width: 75, sorter: true, className: 'payDataBackColorClass',
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '首日IOS付费金额', dataIndex: 'firstIosAmount', label: '付费数据', align: 'center', width: 75, sorter: true, className: 'payDataBackColorClass',
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '首日IOS付费人数占比', dataIndex: 'firstIosAmountNumRate', label: '付费数据', align: 'center', width: 75, sorter: true, className: 'payDataBackColorClass',
+                    render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+                {
+                    title: '首日IOS付费金额占比', dataIndex: 'firstIosAmountRate', label: '付费数据', align: 'center', width: 75, sorter: true, className: 'payDataBackColorClass',
+                    render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+                {
+                    title: '首日IOS付费ROI', dataIndex: 'firstIosAmountRoi', label: '付费数据', align: 'center', width: 75, sorter: true, className: 'payDataBackColorClass',
+                    render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+                {
+                    title: '首日Android付费次数', dataIndex: 'firstAndroidAmountCount', label: '付费数据', align: 'center', width: 78, sorter: true, className: 'payDataBackColorClass',
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '首日Android付费人数', dataIndex: 'firstAndroidAmountNum', label: '付费数据', align: 'center', width: 78, sorter: true, className: 'payDataBackColorClass',
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '首日Android付费金额', dataIndex: 'firstAndroidAmount', label: '付费数据', align: 'center', width: 78, sorter: true, className: 'payDataBackColorClass',
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '首日Android付费人数占比', dataIndex: 'firstAndroidAmountNumRate', label: '付费数据', align: 'center', width: 95, sorter: true, className: 'payDataBackColorClass',
+                    render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+                {
+                    title: '首日Android付费金额占比', dataIndex: 'firstAndroidAmountRate', label: '付费数据', align: 'center', width: 95, sorter: true, className: 'payDataBackColorClass',
+                    render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+                {
+                    title: '首日Android付费ROI', dataIndex: 'firstAndroidAmountRoi', label: '付费数据', align: 'center', width: 80, sorter: true, className: 'payDataBackColorClass',
+                    render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+                {
+                    title: '首日付费率', dataIndex: 'firstAmountRate', label: '付费数据', align: 'center', width: 70, sorter: true, default: 37, className: 'payDataBackColorClass',
+                    render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+                {
+                    title: '首日客单价', tips: '首日客单价(数新增客单价)=首日新用户充值金额/首日新用户充值次', dataIndex: 'firstNewUserAvgPrice', label: '付费数据', align: 'center', width: 70, sorter: true, className: 'payDataBackColorClass',
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '至今客单价', dataIndex: 'newUserTotalAvgPrice', label: '付费数据', align: 'center', width: 60, sorter: true, className: 'payDataBackColorClass',
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: 'ltv1', dataIndex: 'ltvDay1', label: '付费数据', align: 'center', width: 60, sorter: true, default: 39, className: 'payDataBackColorClass',
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '每日扣单数', dataIndex: 'subOrderNum', label: '付费数据', align: 'center', width: 60, sorter: true, default: 40, className: 'payDataBackColorClass',
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '每日扣单金额', dataIndex: 'subOrderAmount', label: '付费数据', align: 'center', width: 60, sorter: true, default: 41, className: 'payDataBackColorClass',
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '总充值次数成本', dataIndex: 'totalAmountCountCost', label: '付费数据', align: 'center', width: 70, sorter: true, className: 'payDataBackColorClass',
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '新增付费次数成本', dataIndex: 'firstNewUserAmountCountCost', label: '付费数据', align: 'center', width: 70, sorter: true, className: 'payDataBackColorClass',
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '至今付费次数成本', dataIndex: 'newUserTotalAmountCountCost', label: '付费数据', align: 'center', width: 70, sorter: true, className: 'payDataBackColorClass',
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                ...date
+            ]
+        }
+    ]
+}
+
+export default columns12

+ 3 - 1
src/pages/gameDataStatistics/components/TableData/index.tsx

@@ -54,6 +54,7 @@ function TableData(props: Prosp) {
     const [oldSelectData, setoldSelectData] = useState<any[]>([])
     const [oldFixed, setoldFixed] = useState<any>({ left: '0', right: '0' })
     const [newColumns, setNewColumns] = useState<any[]>([])
+    const [oldNewColumns, setOldNewColumns] = useState<any[]>([])
     const [timer, setTimer] = useState<string>(moment().format('HH:mm:ss'))
     const [selectData, setSelectData] = useState<{ selectData: any[], fixed: { left: number, right: number } }>({ selectData: [], fixed: { left: fixed.left, right: fixed.right } })
     const ref = useRef(null)
@@ -94,6 +95,7 @@ function TableData(props: Prosp) {
                 }
             })
             setNewColumns(c)
+            setOldNewColumns(c)
             // setNewColumns(newArr.map((newItem: any, index: number) => {
             //     let oldItem = newConfig.find((c: { dataIndex: any }) => c.dataIndex === newItem.dataIndex)
             //     if (newItem?.width !== oldItem?.width) {
@@ -111,7 +113,6 @@ function TableData(props: Prosp) {
             // }))
         }
     }, { wait: 500 });
-
     /**重组选中的字段 */
     useEffect(() => {
         let oldConfigName = oldName.current || ''
@@ -219,6 +220,7 @@ function TableData(props: Prosp) {
                         onClose={() => { setVisible(false) }}
                         onChange={(arr: any) => {
                             setTimer(moment().format('HH:mm:ss'));
+                            setOldNewColumns([])
                             if (arr) {
                                 setSelectData({ selectData: [], fixed: { left: fixed.left, right: fixed.right } })
                             } else {

+ 2 - 2
src/pages/gameDataStatistics/extensionData/everyday/index.tsx

@@ -11,7 +11,7 @@ import { getPresets } from "@/components/QueryForm/const"
 const Everyday: React.FC = () => {
 
     /***************************/
-    const [queryForm, setQueryForm] = useState<EverydayListType>({ pageNum: 1, pageSize: 20, beginDay: moment().format('YYYY-MM-DD'), endDay: moment().format('YYYY-MM-DD'), sourceSystem: 'ZX_ONE' })
+    const [queryForm, setQueryForm] = useState<EverydayListType>({ pageNum: 1, pageSize: 100, beginDay: moment().format('YYYY-MM-DD'), endDay: moment().format('YYYY-MM-DD'), sourceSystem: 'ZX_ONE' })
     const [totalData, setTotalData] = useState<any[]>([])
     const [rtConfig, setRtConfig] = useState<{ accountId?: number, visible: boolean, agentId?: number, beginDate?: string, sourceSystem?: string }>({ visible: false })
 
@@ -20,7 +20,7 @@ const Everyday: React.FC = () => {
     /***************************/
 
     useEffect(() => {
-        getPromoteDayTotal.run(queryForm).then(res => {
+        getPromoteDayTotal.run(queryForm).then((res: { id: number; dt: string; beginDay: string | undefined }) => {
             res.id = 1
             res.dt = '总计'
             res.beginDay = queryForm.beginDay

+ 3 - 3
src/pages/gameDataStatistics/extensionData/total/index.tsx

@@ -13,7 +13,7 @@ const Total: React.FC = () => {
     /************************************/
     const [queryForm, setQueryForm] = useState<PromoteTotalProps>({
         pageNum: 1,
-        pageSize: 20,
+        pageSize: 100,
         sourceSystem: 'ZX_ONE',
         costBeginDay: moment().format('YYYY-MM-DD'),
         costEndDay: moment().format('YYYY-MM-DD'),
@@ -30,7 +30,7 @@ const Total: React.FC = () => {
 
 
     useEffect(() => {
-        getPromoteTotal.run(queryForm).then(res => {
+        getPromoteTotal.run(queryForm).then((res: { id: number; accountId: string }) => {
             res.id = 1
             res.accountId = '总计'
             setTotalData([res])
@@ -39,7 +39,7 @@ const Total: React.FC = () => {
     }, [queryForm])
 
     useEffect(() => {
-        getGameChoiceParentListType1.run().then(res => {
+        getGameChoiceParentListType1.run().then((res: { id: number; name: string }[]) => {
             let newType: any = {}
             res.forEach((item: { id: number, name: string }) => {
                 newType[item.id] = item.name

+ 2 - 2
src/pages/gameDataStatistics/gameData/everyday/index.tsx

@@ -20,7 +20,7 @@ const Everyday: React.FC = () => {
 
     /*****************************/
     const [queryForm, setQueryForm] = useState<GameDayProps>({
-        pageNum: 1, pageSize: 20,
+        pageNum: 1, pageSize: 100,
         registeredBeginDate: moment().format('YYYY-MM-DD'),
         registeredEndDate: moment().format('YYYY-MM-DD'),
         sourceSystem: 'ZX_ONE'
@@ -36,7 +36,7 @@ const Everyday: React.FC = () => {
 
     useEffect(() => {
         getGameDayList.run(queryForm)
-        getGameDayTotal.run(queryForm).then(res => {
+        getGameDayTotal.run(queryForm).then((res: { id: number; costDate: string; beginDay: string | undefined }) => {
             res.id = 1
             res.costDate = '总计'
             res.beginDay = queryForm.registeredBeginDate

+ 1 - 1
src/pages/gameDataStatistics/gameData/flowingWater/index.tsx

@@ -10,7 +10,7 @@ import './index.less'
 const FlowingWater: React.FC = () => {
 
     /*************************************/
-    const [queryForm, setQueryForm] = useState<GameWaterProps>({ pageNum: 1, pageSize: 20, sourceSystem: 'ZX_ONE', rechargeDate: moment().format('YYYY-MM-DD') })
+    const [queryForm, setQueryForm] = useState<GameWaterProps>({ pageNum: 1, pageSize: 100, sourceSystem: 'ZX_ONE', rechargeDate: moment().format('YYYY-MM-DD') })
     const getGameWaterList = useAjax((params) => getGameWaterListApi(params))
     /*************************************/
 

+ 5 - 5
src/pages/gameDataStatistics/gameData/h5Recharge/index.tsx

@@ -11,12 +11,12 @@ const H5Recharge: React.FC = () => {
 
     /*****************************/
     const [queryForm, setQueryForm] = useState<GameH5Props>({
-        pageNum: 1, pageSize: 20,
+        pageNum: 1, pageSize: 100,
         sourceSystem: 'ZX_ONE',
         rechargeBeginDate: moment().format('YYYY-MM-DD'),
-        rechargeEndDate: moment().subtract(30, 'd').format('YYYY-MM-DD'),
+        rechargeEndDate: moment().format('YYYY-MM-DD'),
         costBeginDate: moment().format('YYYY-MM-DD'),
-        costEndDate: moment().subtract(30, 'd').format('YYYY-MM-DD')
+        costEndDate: moment().format('YYYY-MM-DD')
     })
 
     const getGameH5List = useAjax((params) => getGameH5ListApi(params))
@@ -30,7 +30,7 @@ const H5Recharge: React.FC = () => {
 
         <TableData
             leftChild={<QueryForm
-                initialValues={{ sourceSystem: 'ZX_ONE', rechargeDay: [moment(), moment().subtract(30, 'd')], regDay: [moment(), moment().subtract(30, 'd')] }}
+                initialValues={{ sourceSystem: 'ZX_ONE', rechargeDay: [moment(), moment()], regDay: [moment(), moment()] }}
                 onChange={(data: any) => {
                     console.log(data)
                     const { regStartDay, regEndDay, rechargeDay, ...params } = data
@@ -45,7 +45,7 @@ const H5Recharge: React.FC = () => {
                     }
                     if (rechargeDay && rechargeDay?.length === 2) {
                         newQueryForm['rechargeBeginDate'] = moment(rechargeDay[0]).format('YYYY-MM-DD')
-                        newQueryForm['rechargeEndDate'] = moment(rechargeDay[0]).format('YYYY-MM-DD')
+                        newQueryForm['rechargeEndDate'] = moment(rechargeDay[1]).format('YYYY-MM-DD')
                     } else {
                         delete newQueryForm['rechargeBeginDate']
                         delete newQueryForm['rechargeEndDate']

+ 2 - 2
src/pages/gameDataStatistics/gameData/total/index.tsx

@@ -19,7 +19,7 @@ const Total: React.FC = () => {
 
     /*****************************/
     const [queryForm, setQueryForm] = useState<GameTotalProps>({
-        pageNum: 1, pageSize: 20,
+        pageNum: 1, pageSize: 100,
         sourceSystem: 'ZX_ONE',
         registeredBeginDate: moment().format('YYYY-MM-DD'), //.subtract(30, 'd')
         registeredEndDate: moment().format('YYYY-MM-DD'),
@@ -35,7 +35,7 @@ const Total: React.FC = () => {
 
     useEffect(() => {
         getGameTotalList.run(queryForm)
-        getGameTotalTotal.run(queryForm).then(res => {
+        getGameTotalTotal.run(queryForm).then((res: { id: number; gameName: string }) => {
             res.id = 1
             res.gameName = '总计'
             setTotalData([res])

+ 1 - 1
src/pages/gameDataStatistics/order/index.tsx

@@ -11,7 +11,7 @@ import { getPresets } from "@/components/QueryForm/const"
 const Order: React.FC = () => {
 
     /***************************/
-    const [queryForm, setQueryForm] = useState<OrderListType>({ pageNum: 1, pageSize: 20, sourceSystem: 'ZX_ONE' })
+    const [queryForm, setQueryForm] = useState<OrderListType>({ pageNum: 1, pageSize: 100, sourceSystem: 'ZX_ONE' })
     const getOrderList = useAjax((params) => getOrderListApi(params))
     /***************************/
 

+ 1 - 1
src/pages/gameDataStatistics/rankingList/account/index.tsx

@@ -10,7 +10,7 @@ import moment from "moment"
 const Account: React.FC = () => {
 
     /********************************/
-    const [queryForm, setQueryForm] = useState<AccountProps>({ pageNum: 1, pageSize: 20, sourceSystem: 'ZX_ONE', beginDay: moment().format('YYYY-MM-DD'), endDay: moment().format('YYYY-MM-DD') })
+    const [queryForm, setQueryForm] = useState<AccountProps>({ pageNum: 1, pageSize: 100, sourceSystem: 'ZX_ONE', beginDay: moment().format('YYYY-MM-DD'), endDay: moment().format('YYYY-MM-DD') })
 
     const getAccountRechargeRankingList = useAjax((params) => getAccountRechargeRankingListApi(params))
     /********************************/

+ 1 - 1
src/pages/gameDataStatistics/rankingList/channel/index.tsx

@@ -11,7 +11,7 @@ import { getPresetsRanking } from "@/components/QueryForm/const"
 const Channel: React.FC = () => {
 
     /********************************/
-    const [queryForm, setQueryForm] = useState<ChannelProps>({ pageNum: 1, pageSize: 20, sourceSystem: 'ZX_ONE', beginDay: moment().format('YYYY-MM-DD'), endDay: moment().format('YYYY-MM-DD') })
+    const [queryForm, setQueryForm] = useState<ChannelProps>({ pageNum: 1, pageSize: 100, sourceSystem: 'ZX_ONE', beginDay: moment().format('YYYY-MM-DD'), endDay: moment().format('YYYY-MM-DD') })
 
     const getAgentRechargeRankingList = useAjax((params) => getAgentRechargeRankingListApi(params))
     /********************************/

+ 2 - 2
src/pages/gameDataStatistics/rankingList/game/index.tsx

@@ -12,7 +12,7 @@ import { getGameChoiceParentListType1Api } from "@/services/gameData"
 const Game: React.FC = () => {
 
     /************************/
-    const [queryForm, setQueryForm] = useState<GameRechargeListType>({ pageNum: 1, pageSize: 20, sourceSystem: 'ZX_ONE', beginDay: moment().format('YYYY-MM-DD'), endDay: moment().format('YYYY-MM-DD') })
+    const [queryForm, setQueryForm] = useState<GameRechargeListType>({ pageNum: 1, pageSize: 100, sourceSystem: 'ZX_ONE', beginDay: moment().format('YYYY-MM-DD'), endDay: moment().format('YYYY-MM-DD') })
     const [gameType, setGameType] = useState<any>({})
 
     const getRechargeGameList = useAjax((params) => getRechargeGameListApi(params))
@@ -23,7 +23,7 @@ const Game: React.FC = () => {
         getRechargeGameList.run(queryForm)
     }, [queryForm])
     useEffect(() => {
-        getGameChoiceParentListType1.run().then(res => {
+        getGameChoiceParentListType1.run().then((res: { id: number; name: string }[]) => {
             let newType: any = {}
             res.forEach((item: { id: number, name: string }) => {
                 newType[item.id] = item.name

+ 1 - 1
src/pages/gameDataStatistics/rankingList/gamer/index.tsx

@@ -10,7 +10,7 @@ import { getPresetsRanking } from "@/components/QueryForm/const"
 const Gamer: React.FC = () => {
 
     /************************/
-    const [queryForm, setQueryForm] = useState<UserRechargeListType>({ pageNum: 1, pageSize: 20, sourceSystem: 'ZX_ONE', beginDay: moment().format('YYYY-MM-DD'), endDay: moment().format('YYYY-MM-DD') })
+    const [queryForm, setQueryForm] = useState<UserRechargeListType>({ pageNum: 1, pageSize: 100, sourceSystem: 'ZX_ONE', beginDay: moment().format('YYYY-MM-DD'), endDay: moment().format('YYYY-MM-DD') })
     const getRechargeUserList = useAjax((params) => getRechargeUserListApi(params))
     /************************/
 

+ 12 - 0
src/services/gameData/adlist.ts

@@ -47,4 +47,16 @@ export async function getPromotionDataDatTotalApi(data: PromotionDataDay) {
         method: 'POST',
         data
     });
+}
+
+/**
+ * 广告每日监控
+ * @param data 
+ * @returns 
+ */
+export async function getPromotionDataDayListApi(data: PromotionDataDay) {
+    return request(wapi + `/promotionData/day/list`, {
+        method: 'POST',
+        data
+    });
 }