wjx 1 年之前
父节点
当前提交
c673819cbb
共有 32 个文件被更改,包括 807 次插入357 次删除
  1. 9 0
      src/components/QueryForm/const.tsx
  2. 18 10
      src/components/QueryForm/index.tsx
  3. 45 0
      src/components/rechargeTrend/index.tsx
  4. 2 1
      src/pages/gameDataStatistics/allSurvey/index.tsx
  5. 18 7
      src/pages/gameDataStatistics/extensionData/everyday/index.tsx
  6. 47 44
      src/pages/gameDataStatistics/extensionData/everyday/tableConfig.tsx
  7. 12 9
      src/pages/gameDataStatistics/extensionData/total/index.tsx
  8. 3 18
      src/pages/gameDataStatistics/extensionData/total/tableConfig.tsx
  9. 12 3
      src/pages/gameDataStatistics/gameData/everyday/index.tsx
  10. 8 23
      src/pages/gameDataStatistics/gameData/everyday/tableConfig.tsx
  11. 3 2
      src/pages/gameDataStatistics/gameData/flowingWater/index.tsx
  12. 2 17
      src/pages/gameDataStatistics/gameData/flowingWater/tableConfig.tsx
  13. 99 0
      src/pages/gameDataStatistics/gameData/h5Recharge/h5BuyUser.tsx
  14. 87 0
      src/pages/gameDataStatistics/gameData/h5Recharge/h5NatureUser.tsx
  15. 68 6
      src/pages/gameDataStatistics/gameData/h5Recharge/index.tsx
  16. 219 61
      src/pages/gameDataStatistics/gameData/h5Recharge/tableConfig.tsx
  17. 3 2
      src/pages/gameDataStatistics/gameData/total/index.tsx
  18. 3 18
      src/pages/gameDataStatistics/gameData/total/tableConfig.tsx
  19. 2 1
      src/pages/gameDataStatistics/order/index.tsx
  20. 5 36
      src/pages/gameDataStatistics/order/tableConfig.tsx
  21. 2 1
      src/pages/gameDataStatistics/rankingList/account/index.tsx
  22. 25 26
      src/pages/gameDataStatistics/rankingList/account/tableConfig.tsx
  23. 2 1
      src/pages/gameDataStatistics/rankingList/channel/index.tsx
  24. 11 12
      src/pages/gameDataStatistics/rankingList/channel/tableConfig.tsx
  25. 7 6
      src/pages/gameDataStatistics/rankingList/game/index.tsx
  26. 17 33
      src/pages/gameDataStatistics/rankingList/game/tableConfig.tsx
  27. 5 4
      src/pages/gameDataStatistics/rankingList/gamer/index.tsx
  28. 14 15
      src/pages/gameDataStatistics/rankingList/gamer/tableConfig.tsx
  29. 1 0
      src/services/gameData/allSurvey.ts
  30. 19 0
      src/services/gameData/extensionData.ts
  31. 37 0
      src/services/gameData/game.ts
  32. 2 1
      src/services/gameData/rankingList.ts

+ 9 - 0
src/components/QueryForm/const.tsx

@@ -19,4 +19,13 @@ export enum TYPE {
     'MP' = '腾讯MP',
     'GDT' = '腾讯GDT',
     'BYTE' = '头条'
+}
+
+export const gameClassifyEnum = {
+    '1': 'APP',
+    '2': '抖音小游戏',
+    '3': 'Android App',
+    '4': 'Ios App',
+    '5': 'H5游戏',
+    '6': '微信小游戏'
 }

+ 18 - 10
src/components/QueryForm/index.tsx

@@ -3,7 +3,7 @@ import React, { useEffect, useState } from "react"
 import moment from "moment"
 import { useAjax } from "@/Hook/useAjax"
 import { getAllOfOwnerUserApi, getChannelChoiceListApi, getGameChoiceListApi, getGameChoiceParentListType1Api, getPayListApi, getSubUserWithSelfListApi, getTtAllUserListApi, getUserSystemTypeChoiceListApi } from "@/services/gameData"
-import { TYPE } from "./const"
+import { TYPE, gameClassifyEnum } from "./const"
 
 
 interface Props {
@@ -252,12 +252,20 @@ const QueryForm: React.FC<Props> = (props) => {
         <Row gutter={[0, 6]}>
             {/* 数据源搜索 */}
             {isSource && <Col><Form.Item name='sourceSystem'>
-                <Radio.Group>
-                    <Radio.Button value="BG_OLD">布谷-old</Radio.Button>
-                    <Radio.Button value="BG_NEW">布谷-new</Radio.Button>
-                    <Radio.Button value="ZX_SDK">布谷-zx</Radio.Button>
-                    <Radio.Button value="ZX_ONE">赞象</Radio.Button>
-                </Radio.Group>
+                <Select
+                    showSearch
+                    style={{ width: 100 }}
+                    allowClear
+                    placeholder={'数据源选择'}
+                    filterOption={(input, option) =>
+                        (option?.children as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0
+                    }
+                >
+                    <Select.Option value="BG_OLD">布谷-old</Select.Option>
+                    <Select.Option value="BG_NEW">布谷-new</Select.Option>
+                    <Select.Option value="ZX_SDK">布谷-zx</Select.Option>
+                    <Select.Option value="ZX_ONE">赞象</Select.Option>
+                </Select>
             </Form.Item></Col>}
             {/* 不同排行榜选择 */}
             {isSelectRanking && <Col><Form.Item name='dateType'>
@@ -436,7 +444,7 @@ const QueryForm: React.FC<Props> = (props) => {
                         (option?.children as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0
                     }
                 >
-                    {[{ id: 3, name: 'Android' }, { id: 4, name: 'IOS' }, { id: 5, name: 'H5' }, { id: 6, name: '小程序' }].map((item: any) => <Select.Option value={item.id} key={item.id}>{item.name}</Select.Option>)}
+                    {Object.keys(gameClassifyEnum).map(key => <Select.Option value={key} key={key}>{gameClassifyEnum[key]}</Select.Option>)}
                 </Select>
             </Form.Item></Col>}
             {/* 游戏角色名 */}
@@ -547,7 +555,7 @@ const QueryForm: React.FC<Props> = (props) => {
             {isRegAgent && <Col><Form.Item name='regAgent'>
                 <Input placeholder="请输入注册渠道名" allowClear style={{ width: 140 }} />
             </Form.Item></Col>}
-            
+
             {/* 推广渠道id */}
             {isAgentId && <Col><Form.Item name='agentId'>
                 <Select
@@ -632,7 +640,7 @@ const QueryForm: React.FC<Props> = (props) => {
             {isRegDay && <Col><Form.Item name='regDay'>
                 <DatePicker.RangePicker placeholder={['用户注册开始日期', '用户注册结束日期']} />
             </Form.Item></Col>}
-            
+
             {/* 消耗日期 搜索 */}
             {isConsumeDay && <Col><Form.Item name='consumeDay'>
                 <DatePicker.RangePicker placeholder={['消耗开始日期', '消耗结束日期']} />

+ 45 - 0
src/components/rechargeTrend/index.tsx

@@ -0,0 +1,45 @@
+import { useAjax } from "@/Hook/useAjax"
+import { getPromoteAgainListApi } from "@/services/gameData/extensionData"
+import { getGameDataAgainListApi } from "@/services/gameData/game"
+import { Button, Drawer } from "antd"
+import React, { useEffect, useState } from "react"
+
+
+interface Props {
+    // 'EXTEN' 推广每日数据付费趋势  'GAME' 游戏每日付费趋势
+    type: 'EXTEN' | 'GAME'
+    id?: number,
+    gameName?: string
+    visible?: boolean
+    onClose?: () => void
+}
+/**
+ * 复充趋势
+ * @returns 
+ */
+const RechargeTrend: React.FC<Props> = ({ visible, onClose, type, id, gameName }) => {
+
+    /************************************* */
+    const [queryForm, setQueryForm] = useState<any>()
+
+    const getPromoteAgainList = useAjax((params) => getPromoteAgainListApi(params)) // 推广
+    const getGameDataAgainList = useAjax((params) => getGameDataAgainListApi(params)) // 游戏
+    /************************************* */
+
+    useEffect(() => {
+        if (visible) {
+            if (type === 'EXTEN') {
+                getPromoteAgainList.run({ accountId: id })
+            } else if (type === 'GAME') {
+                getGameDataAgainList.run({ gameId: id, gameName, ...queryForm })
+            }
+        }
+    }, [id, type, visible, queryForm])
+
+    return <Drawer title={`复充趋势`} visible={visible} onClose={() => onClose?.()} width={'90%'}>
+
+        1123123
+    </Drawer>
+}
+
+export default React.memo(RechargeTrend)

+ 2 - 1
src/pages/gameDataStatistics/allSurvey/index.tsx

@@ -27,7 +27,7 @@ const AllSurvey: React.FC = () => {
     const [leftShow, setLeftShow] = useState<boolean>(false)
     const [rightShow, setRightShow] = useState<boolean>(false)
     const [isPass, setIsPass] = useState<boolean>(false)  // 容器是否大于内容宽度
-    const [queryForm, setQueryForm] = useState<AllSurveyTotalDataProps>({})
+    const [queryForm, setQueryForm] = useState<AllSurveyTotalDataProps>({ sourceSystem: 'ZX_ONE' })
     const [totalData, setTotalData] = useState<any>({})
     /* ==================== */
 
@@ -85,6 +85,7 @@ const AllSurvey: React.FC = () => {
             <div ref={ref3}>
                 <Card bordered={false} bodyStyle={{ padding: '12px 24px' }} style={{ borderRadius: 8 }}>
                     <QueryForm
+                        initialValues={{ sourceSystem: 'ZX_ONE' }}
                         onChange={(data: any) => {
                             console.log(data)
                             const { beginDay, ...par } = data

+ 18 - 7
src/pages/gameDataStatistics/extensionData/everyday/index.tsx

@@ -6,13 +6,15 @@ import TableData from "../../components/TableData"
 import columns12 from "./tableConfig"
 import { getGameChoiceParentListType1Api } from "@/services/gameData"
 import moment from "moment"
+import RechargeTrend from "@/components/rechargeTrend"
 
 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') })
+    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 [gameType, setGameType] = useState<any>({})
     const [totalData, setTotalData] = useState<any[]>([])
+    const [rtConfig, setRtConfig] = useState<{ id?: number, visible: boolean }>({ visible: false })
 
     const getPromoteDayList = useAjax((params) => getPromoteDayListApi(params))
     const getPromoteDayTotal = useAjax((params) => getPromoteDayTotalApi(params))
@@ -22,7 +24,7 @@ const Everyday: React.FC = () => {
     useEffect(() => {
         getPromoteDayTotal.run(queryForm).then(res => {
             res.id = 1
-            res.accountId = '总计'
+            res.dt = '总计'
             setTotalData([res])
         })
         getPromoteDayList.run(queryForm)
@@ -38,10 +40,16 @@ const Everyday: React.FC = () => {
         })
     }, [])
 
+    const rechargeTrendHandle = (data: any) => {
+        if (data?.accountId) {
+            setRtConfig({ visible: true, id: data?.accountId })
+        }
+    }
+
     return <div>
         <TableData
             leftChild={<QueryForm
-                initialValues={{ consumeDay: [moment(), moment()] }}
+                initialValues={{ sourceSystem: 'ZX_ONE', consumeDay: [moment(), moment()] }}
                 onChange={(data: any) => {
                     const { pitcherId, costBeginDay, costEndDay, ...params } = data
                     console.log(params, pitcherId)
@@ -56,9 +64,11 @@ const Everyday: React.FC = () => {
                 isAccountId
                 isAgentId
                 isConsumeDay
-                isCpName
-                isGameName
-                isGameType
+                isBGGameClassify
+                // isCpName
+                // isGameName
+                isGameId
+                // isGameType
                 isSysUserId
             />}
             isZj
@@ -87,9 +97,10 @@ const Everyday: React.FC = () => {
                 newQueryForm.pageSize = pageSize
                 setQueryForm({ ...newQueryForm })
             }}
-            config={columns12(gameType)}
+            config={columns12(gameType, rechargeTrendHandle)}
             configName={'推广每日数据'}
         />
+        {rtConfig.visible && <RechargeTrend type="EXTEN" {...rtConfig} onClose={() => setRtConfig({ visible: false })} />}
     </div>
 }
 

+ 47 - 44
src/pages/gameDataStatistics/extensionData/everyday/tableConfig.tsx

@@ -1,8 +1,9 @@
 import { Statistic } from "antd"
 import React from "react"
 import style from './index.less'
+import { gameClassifyEnum } from "@/components/QueryForm/const"
 
-function columns12(gameType: any): { label: string, fieldSHow?: { label: string, saveField: string, defaultValue: any[], data: any[] }, data: any[] }[] {
+function columns12(gameType: any, rechargeTrendHandle: (data: any) => void): { label: string, fieldSHow?: { label: string, saveField: string, defaultValue: any[], data: any[] }, data: any[] }[] {
 
     let defaultValue = [  // 默认展示字段
         { label: '充值人数', key: 'rechargeCount', type: '付费趋势' },
@@ -24,15 +25,21 @@ function columns12(gameType: any): { label: string, fieldSHow?: { label: string,
 
 
     return [
+        {
+            label: '时间',
+            data: [
+                { title: '日期', dataIndex: 'dt', label: '时间', align: 'center', width: 90, default: 1 },
+            ]
+        },
         {
             label: '推广账号信息',
             data: [
                 {
-                    title: '推广账号', dataIndex: 'accountId', key: 'accountId', label: '推广账号信息', align: 'center', width: 70, default: 1,
+                    title: '推广账号', dataIndex: 'accountId', key: 'accountId', label: '推广账号信息', align: 'center', width: 70, default: 2,
                     render: (a: any) => (<span>{a || '--'}</span>)
                 },
                 {
-                    title: '投放渠道', dataIndex: 'agentName', key: 'agentName', label: '推广账号信息', align: 'center', width: 130, default: 2,
+                    title: '投放渠道', dataIndex: 'agentName', key: 'agentName', label: '推广账号信息', align: 'center', width: 130, default: 3,
                     render: (a: string, b: any) => (<span>{a || '--'}</span>)
                 }
             ]
@@ -40,61 +47,46 @@ function columns12(gameType: any): { label: string, fieldSHow?: { label: string,
         {
             label: '业务人员信息',
             data: [
-                { title: '投手', dataIndex: 'sysUserName', key: 'sysUserName', label: '业务人员信息', align: 'center', width: 70, default: 3, render: (a: any) => (<span>{a || '--'}</span>) }
+                { title: '投手', dataIndex: 'sysUserName', key: 'sysUserName', label: '业务人员信息', align: 'center', width: 70, default: 4, render: (a: any) => (<span>{a || '--'}</span>) }
             ]
         },
         {
             label: '推广内容信息',
             data: [
-                { title: '推广游戏CP名称', dataIndex: 'cpName', key: 'cpName', label: '推广内容信息', align: 'center', width: 70, default: 4, render: (a: any) => (<span>{a || '--'}</span>) },
-                { title: '推广游戏名称', dataIndex: 'gameName', key: 'gameName', label: '推广内容信息', align: 'center', width: 70, default: 5, render: (a: any) => (<span>{a || '--'}</span>) },
+                { title: '推广游戏CP名称', dataIndex: 'cpName', key: 'cpName', label: '推广内容信息', align: 'center', width: 70, default: 5, render: (a: any) => (<span>{a || '--'}</span>) },
+                { title: '推广游戏名称', dataIndex: 'gameName', key: 'gameName', label: '推广内容信息', align: 'center', width: 70, default: 6, render: (a: any) => (<span>{a || '--'}</span>) },
                 {
-                    title: '推广游戏应用类型', dataIndex: 'gameType', key: 'gameType', label: '推广内容信息', align: 'center', width: 70, default: 6, render: (a: string) => {
-                        if (a) {
-                            let one = a.charAt(0)
-                            switch (one) {
-                                case '3':
-                                    return 'Android'
-                                case '4':
-                                    return 'IOS'
-                                case '5':
-                                    return 'H5'
-                                case '6':
-                                    return '小程序'
-                                default:
-                                    return gameType[a] || a || '--'
-                            }
-                        } else return '--'
-                    }
+                    title: '推广游戏应用类型', dataIndex: 'gameType', key: 'gameType', label: '推广内容信息', align: 'center', width: 80, default: 7, 
+                    render: (a: string) => (<span>{gameClassifyEnum[a]}</span>)
                 },
             ]
         },
         {
             label: '消耗',
             data: [
-                { title: '消耗', dataIndex: 'cost', key: 'cost', label: '消耗', align: 'center', width: 100, default: 7, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
-                { title: '推广计划数量', dataIndex: 'adPlanCount', key: 'adPlanCount', label: '消耗', align: 'center', width: 70, default: 8, sorter: true, render: (a: any) => (<span>{a || '--'}</span>) }
+                { title: '消耗', dataIndex: 'cost', key: 'cost', label: '消耗', align: 'center', width: 100, default: 8, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
+                { title: '推广计划数量', dataIndex: 'adPlanCount', key: 'adPlanCount', label: '消耗', align: 'center', width: 70, default: 9, sorter: true, render: (a: any) => (<span>{a || '--'}</span>) }
             ]
         },
         {
             label: '广告曝光数据',
             data: [
-                { title: '曝光量', dataIndex: 'viewCount', label: '广告曝光数据', align: 'center', width: 90, default: 9, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
-                { title: '点击量', dataIndex: 'clickCount', label: '广告曝光数据', align: 'center', width: 80, default: 10, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
-                { title: '转化量', dataIndex: 'convertCount', label: '广告曝光数据', align: 'center', width: 80, default: 11, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
+                { title: '曝光量', dataIndex: 'viewCount', label: '广告曝光数据', align: 'center', width: 90, default: 10, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
+                { title: '点击量', dataIndex: 'clickCount', label: '广告曝光数据', align: 'center', width: 80, default: 11, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
+                { title: '转化量', dataIndex: 'convertCount', label: '广告曝光数据', align: 'center', width: 80, default: 12, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
                 {
-                    title: '转化率', dataIndex: 'convertRate', label: '广告曝光数据', align: 'center', width: 70, default: 12, sorter: true,
+                    title: '转化率', dataIndex: 'convertRate', label: '广告曝光数据', align: 'center', width: 70, default: 13, sorter: true,
                     render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
                 },
-                { title: '平均转化成本', dataIndex: 'avgConvertCost', label: '广告曝光数据', align: 'center', width: 70, default: 13, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
-                { title: '深度转化量', dataIndex: 'deepConvertCount', label: '广告曝光数据', align: 'center', width: 70, default: 14, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
-                { title: '深度转化成本', dataIndex: 'deepConvertCost', label: '广告曝光数据', align: 'center', width: 70, default: 15, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
+                { title: '平均转化成本', dataIndex: 'avgConvertCost', label: '广告曝光数据', align: 'center', width: 70, default: 14, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
+                { title: '深度转化量', dataIndex: 'deepConvertCount', label: '广告曝光数据', align: 'center', width: 70, default: 15, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
+                { title: '深度转化成本', dataIndex: 'deepConvertCost', label: '广告曝光数据', align: 'center', width: 70, default: 16, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
                 {
-                    title: '深度转化率', dataIndex: 'deepConvertRate', label: '广告曝光数据', align: 'center', width: 70, default: 16, sorter: true,
+                    title: '深度转化率', dataIndex: 'deepConvertRate', label: '广告曝光数据', align: 'center', width: 70, default: 17, sorter: true,
                     render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
                 },
-                { title: '千次曝光成本', dataIndex: 'thousandViewCost', label: '广告曝光数据', align: 'center', width: 70, default: 17, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
-                { title: '平均点击均价', dataIndex: 'avgClickCost', label: '广告曝光数据', align: 'center', width: 70, default: 18, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
+                { title: '千次曝光成本', dataIndex: 'thousandViewCost', label: '广告曝光数据', align: 'center', width: 70, default: 18, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
+                { title: '平均点击均价', dataIndex: 'avgClickCost', label: '广告曝光数据', align: 'center', width: 70, default: 19, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
                 { title: '应用下载开始量', dataIndex: 'appDownloadCount', label: '广告曝光数据', align: 'center', width: 70, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
                 { title: '应用下载开始成本', dataIndex: 'appDownloadCost', label: '广告曝光数据', align: 'center', width: 90, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
                 {
@@ -227,7 +219,7 @@ function columns12(gameType: any): { label: string, fieldSHow?: { label: string,
                 dataIndex: "D1",
                 label: "时间区间跨度",
                 width: 110,
-                default: 19,
+                default: 20,
                 render: (a: any, b: any) => {
                     let fieldData = getFieldDta()
                     if (fieldData?.length > 0) {
@@ -255,7 +247,7 @@ function columns12(gameType: any): { label: string, fieldSHow?: { label: string,
                 dataIndex: "D3",
                 label: "时间区间跨度",
                 width: 110,
-                default: 20,
+                default: 21,
                 render: (a: any, b: any) => {
                     let fieldData = getFieldDta()
                     if (fieldData?.length > 0) {
@@ -283,7 +275,7 @@ function columns12(gameType: any): { label: string, fieldSHow?: { label: string,
                 dataIndex: "D7",
                 label: "时间区间跨度",
                 width: 110,
-                default: 21,
+                default: 22,
                 render: (a: any, b: any) => {
                     let fieldData = getFieldDta()
                     if (fieldData?.length > 0) {
@@ -311,7 +303,7 @@ function columns12(gameType: any): { label: string, fieldSHow?: { label: string,
                 dataIndex: "D15",
                 label: "时间区间跨度",
                 width: 110,
-                default: 22,
+                default: 23,
                 render: (a: any, b: any) => {
                     let fieldData = getFieldDta()
                     if (fieldData?.length > 0) {
@@ -339,7 +331,7 @@ function columns12(gameType: any): { label: string, fieldSHow?: { label: string,
                 dataIndex: "M1",
                 label: "时间区间跨度",
                 width: 110,
-                default: 23,
+                default: 24,
                 render: (a: any, b: any) => {
                     let fieldData = getFieldDta()
                     if (fieldData?.length > 0) {
@@ -367,7 +359,7 @@ function columns12(gameType: any): { label: string, fieldSHow?: { label: string,
                 dataIndex: "M2",
                 label: "时间区间跨度",
                 width: 110,
-                default: 24,
+                default: 25,
                 render: (a: any, b: any) => {
                     let fieldData = getFieldDta()
                     if (fieldData?.length > 0) {
@@ -395,7 +387,7 @@ function columns12(gameType: any): { label: string, fieldSHow?: { label: string,
                 dataIndex: "M3",
                 label: "时间区间跨度",
                 width: 110,
-                default: 25,
+                default: 26,
                 render: (a: any, b: any) => {
                     let fieldData = getFieldDta()
                     if (fieldData?.length > 0) {
@@ -420,7 +412,7 @@ function columns12(gameType: any): { label: string, fieldSHow?: { label: string,
                 },
             }, {
                 title: "总",
-                default: 26,
+                default: 27,
                 dataIndex: "total",
                 label: "时间区间跨度",
                 align: "center",
@@ -448,7 +440,18 @@ function columns12(gameType: any): { label: string, fieldSHow?: { label: string,
                     return '--'
                 },
             }]
-        }
+        },
+        // {
+        //     label: '操作',
+        //     data: [
+        //         {
+        //             default: 28,
+        //             title: '操作', dataIndex: 'cz', label: '操作', align: 'center', width: 70, render: (a: string, b: any) => {
+        //                 return <a onClick={() => rechargeTrendHandle(b)}>复充趋势</a>
+        //             }
+        //         },
+        //     ]
+        // },
     ]
 }
 

+ 12 - 9
src/pages/gameDataStatistics/extensionData/total/index.tsx

@@ -10,12 +10,13 @@ import { getGameChoiceParentListType1Api } from "@/services/gameData"
 const Total: React.FC = () => {
 
     /************************************/
-    const [queryForm, setQueryForm] = useState<PromoteTotalProps>({ 
-        pageNum: 1, 
-        pageSize: 20, 
-        costBeginDay: moment().subtract(30, 'd').format('YYYY-MM-DD'), 
+    const [queryForm, setQueryForm] = useState<PromoteTotalProps>({
+        pageNum: 1,
+        pageSize: 20,
+        sourceSystem: 'ZX_ONE',
+        costBeginDay: moment().subtract(30, 'd').format('YYYY-MM-DD'),
         costEndDay: moment().format('YYYY-MM-DD'),
-        rechargeBeginDay: moment().subtract(30, 'd').format('YYYY-MM-DD'), 
+        rechargeBeginDay: moment().subtract(30, 'd').format('YYYY-MM-DD'),
         rechargeEndDay: moment().format('YYYY-MM-DD'),
     })
     const [gameType, setGameType] = useState<any>({})
@@ -43,7 +44,7 @@ const Total: React.FC = () => {
 
         <TableData
             leftChild={<QueryForm
-                initialValues={{ consumeDay: [moment().subtract(30, 'd'), moment()], rechargeDay: [moment().subtract(30, 'd'), moment()] }}
+                initialValues={{ sourceSystem: 'ZX_ONE', consumeDay: [moment().subtract(30, 'd'), moment()], rechargeDay: [moment().subtract(30, 'd'), moment()] }}
                 onChange={(data: any) => {
                     const { pitcherId, rechargeDay, ...params } = data
                     let newQueryForm = JSON.parse(JSON.stringify(queryForm))
@@ -62,9 +63,11 @@ const Total: React.FC = () => {
                 isAccountId
                 isAgentId
                 isConsumeDay
-                isCpName
-                isGameName
-                isGameType
+                isBGGameClassify
+                // isCpName
+                // isGameName
+                isGameId
+                // isGameType
                 rechargeDay={{}}
                 isSysUserId
             />}

+ 3 - 18
src/pages/gameDataStatistics/extensionData/total/tableConfig.tsx

@@ -1,3 +1,4 @@
+import { gameClassifyEnum } from "@/components/QueryForm/const"
 import WidthEllipsis from "@/components/widthEllipsis"
 import { Statistic } from "antd"
 import React from "react"
@@ -24,24 +25,8 @@ function columns12(gameType: any) {
                 { title: '推广游戏CP名称', dataIndex: 'cpName', key: 'cpName', label: '推广内容信息', align: 'center', width: 70, default: 4, render: (a: string, b: any) => (<WidthEllipsis value={a} />) },
                 { title: '推广游戏名称', dataIndex: 'gameName', key: 'gameName', label: '推广内容信息', align: 'center', width: 70, default: 5, render: (a: string, b: any) => (<WidthEllipsis isCopy value={a} />) },
                 {
-                    title: '推广游戏应用类型', dataIndex: 'gameType', key: 'gameType', label: '推广内容信息', align: 'center', width: 70, default: 6,
-                    render: (a: string) => {
-                        if (a) {
-                            let one = a.charAt(0)
-                            switch (one) {
-                                case '3':
-                                    return 'Android'
-                                case '4':
-                                    return 'IOS'
-                                case '5':
-                                    return 'H5'
-                                case '6':
-                                    return '小程序'
-                                default:
-                                    return gameType[a] || a
-                            }
-                        } else return '--'
-                    }
+                    title: '推广游戏应用类型', dataIndex: 'gameType', key: 'gameType', label: '推广内容信息', align: 'center', width: 80, default: 6,
+                    render: (a: string) => (<span>{gameClassifyEnum[a]}</span>)
                 },
             ]
         },

+ 12 - 3
src/pages/gameDataStatistics/gameData/everyday/index.tsx

@@ -5,6 +5,7 @@ import { GameDayProps, getGameDayListApi } from "@/services/gameData/game"
 import { useAjax } from "@/Hook/useAjax"
 import QueryForm from "@/components/QueryForm"
 import moment from "moment"
+import RechargeTrend from "@/components/rechargeTrend"
 
 /**
  * 游戏每日数据
@@ -17,8 +18,11 @@ const Everyday: React.FC = () => {
         pageNum: 1, pageSize: 20,
         registeredBeginDate: moment().format('YYYY-MM-DD'),
         registeredEndDate: moment().format('YYYY-MM-DD'),
+        sourceSystem: 'ZX_ONE'
     })
 
+    const [rtConfig, setRtConfig] = useState<{ id?: number, gameName?: string, visible: boolean }>({ visible: false })
+
     const getGameDayList = useAjax((params) => getGameDayListApi(params))
     /*****************************/
 
@@ -26,10 +30,14 @@ const Everyday: React.FC = () => {
         getGameDayList.run(queryForm)
     }, [queryForm])
 
+    const rechargeTrendHandle = (data: any) => {
+        setRtConfig({ visible: true, gameName: data?.gameName, id: data?.gameId })
+    }
+
     return <div>
         <TableData
             leftChild={<QueryForm
-                initialValues={{ regDay: [moment(), moment()] }}
+                initialValues={{ regDay: [moment(), moment()], sourceSystem: 'ZX_ONE' }}
                 onChange={(data: any) => {
                     console.log(data)
                     const { regStartDay, regEndDay, rechargeDay, ...params } = data
@@ -53,7 +61,7 @@ const Everyday: React.FC = () => {
                 }}
                 isSource
                 isRegDay
-                isGameName
+                isGameId
                 isBGGameClassify
             />}
             scroll={{ x: 1000, y: 600 }}
@@ -79,9 +87,10 @@ const Everyday: React.FC = () => {
                 newQueryForm.pageSize = pageSize
                 setQueryForm({ ...newQueryForm })
             }}
-            config={columns12()}
+            config={columns12(rechargeTrendHandle)}
             configName={'游戏每日数据'}
         />
+        {rtConfig.visible && <RechargeTrend type="GAME" {...rtConfig} onClose={() => setRtConfig({ visible: false })} />}
     </div>
 }
 

+ 8 - 23
src/pages/gameDataStatistics/gameData/everyday/tableConfig.tsx

@@ -1,8 +1,9 @@
 import React from "react"
 import style from './index.less'
 import { Statistic } from "antd"
+import { gameClassifyEnum } from "@/components/QueryForm/const"
 
-function columns12(): { label: string, fieldSHow?: { label: string, saveField: string, defaultValue: any[], data: any[] }, data: any[] }[] {
+function columns12(rechargeTrendHandle: (data: any) => void): { label: string, fieldSHow?: { label: string, saveField: string, defaultValue: any[], data: any[] }, data: any[] }[] {
 
     const getFieldDta = () => {
         let defaultValue = [  // 默认展示字段
@@ -28,24 +29,8 @@ function columns12(): { label: string, fieldSHow?: { label: string, saveField: s
             data: [
                 { title: '推广游戏名称', dataIndex: 'gameName', label: '游戏信息', align: 'center', width: 70, default: 1 },
                 {
-                    title: '推广游戏应用类型', dataIndex: 'gameClassify', label: '游戏信息', align: 'center', width: 70, default: 2,
-                    render: (a: string) => {
-                        if (a) {
-                            let one = a?.toString()?.charAt(0)
-                            switch (one) {
-                                case '3':
-                                    return 'Android'
-                                case '4':
-                                    return 'IOS'
-                                case '5':
-                                    return 'H5'
-                                case '6':
-                                    return '小程序'
-                                default:
-                                    return a || '--'
-                            }
-                        } else return '--'
-                    }
+                    title: '推广游戏应用类型', dataIndex: 'gameClassify', label: '游戏信息', align: 'center', width: 80, default: 2,
+                    render: (a: string) => (<span>{gameClassifyEnum[a]}</span>)
                 }
             ]
         },
@@ -1022,7 +1007,7 @@ function columns12(): { label: string, fieldSHow?: { label: string, saveField: s
                     return '--'
                 },
             }]
-        }
+        },
         // {
         //     label: '操作',
         //     data: [
@@ -1030,11 +1015,11 @@ function columns12(): { label: string, fieldSHow?: { label: string, saveField: s
         //             title: '操作',
         //             dataIndex: 'cz',
         //             label: '操作',
-        //             default: 31,
+        //             default: 55,
         //             align: 'center',
         //             width: 75,
-        //             render: (a: number) => {
-        //                 return <span>推广30日复充趋势</span>
+        //             render: (a: number, b: any) => {
+        //                 return <a onClick={() => rechargeTrendHandle(b)}>复充趋势</a>
         //             },
         //         }
         //     ]

+ 3 - 2
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 })
+    const [queryForm, setQueryForm] = useState<GameWaterProps>({ pageNum: 1, pageSize: 20, sourceSystem: 'ZX_ONE', rechargeDate: moment().format('YYYY-MM-DD') })
     const getGameWaterList = useAjax((params) => getGameWaterListApi(params))
     /*************************************/
 
@@ -22,7 +22,8 @@ const FlowingWater: React.FC = () => {
 
         <TableData
             leftChild={<QueryForm
-                isGameName
+                initialValues={{ sourceSystem: 'ZX_ONE', rechargeDate: moment() }}
+                isGameId
                 isRechargeDate
                 isBGGameClassify
                 isSource

+ 2 - 17
src/pages/gameDataStatistics/gameData/flowingWater/tableConfig.tsx

@@ -3,6 +3,7 @@ import { Statistic } from "antd"
 import React from "react"
 import './index.less'
 import { copy } from "@/utils/utils"
+import { gameClassifyEnum } from "@/components/QueryForm/const"
 
 function columns12() {
 
@@ -15,23 +16,7 @@ function columns12() {
                 { title: '游戏ID', dataIndex: 'gameId', label: '每日流水贡献', align: 'center', width: 80, default: 3, render: (a: string, b: any) => (<WidthEllipsis value={a} />) },
                 {
                     title: '游戏类别', dataIndex: 'gameClassify', label: '每日流水贡献', align: 'center', width: 80, default: 4,
-                    render: (a: string) => {
-                        if (a) {
-                            let one = a.charAt(0)
-                            switch (one) {
-                                case '3':
-                                    return 'Android'
-                                case '4':
-                                    return 'IOS'
-                                case '5':
-                                    return 'H5'
-                                case '6':
-                                    return '小程序'
-                                default:
-                                    return a
-                            }
-                        } else return '--'
-                    }
+                    render: (a: string) => (<span>{gameClassifyEnum[a]}</span>)
                 },
                 { title: '买量充值金额', dataIndex: 'buyAmount', label: '每日流水贡献', align: 'center', width: 100, default: 5, sorter: true, render: (a: number, b: any) => (<Statistic value={a || 0} valueStyle={a >= 10000 ? { color: 'red' } : { color: '#0f990f' }}/>) },
                 { title: '自然量充值金额', dataIndex: 'natureAmount', label: '每日流水贡献', align: 'center', width: 100, default: 6, sorter: true, render: (a: number, b: any) => (<Statistic value={a || 0} valueStyle={a >= 5000 ? { color: 'red' } : { color: '#0f990f' }} />) },

+ 99 - 0
src/pages/gameDataStatistics/gameData/h5Recharge/h5BuyUser.tsx

@@ -0,0 +1,99 @@
+import WidthEllipsis from "@/components/widthEllipsis"
+import { Button, Modal, Statistic, Table } from "antd"
+import { ColumnsType } from "antd/lib/table"
+import React, { useState } from "react"
+
+
+const columns: ColumnsType<any> = [
+    {
+        title: '游戏名称',
+        dataIndex: `buyGameName`,
+        key: 'buyGameName',
+        align: 'center',
+        width: 85,
+        render: (a: string, b: any) => {
+            return <WidthEllipsis isCopy value={a} />
+        }
+    },
+    {
+        title: '游戏ID', dataIndex: `buyGameId`, align: 'center', width: 85,
+        key: 'buyGameId',
+        render: (a: string, b: any) => {
+            return <WidthEllipsis value={a} />
+        }
+    },
+    {
+        title: '游戏应用类型', dataIndex: `buyClassify`, align: 'center', width: 100,
+        key: 'buyClassify',
+        render: (a: string, b: any) => {
+            return <Statistic value={a || 0} />
+        }
+    },
+    {
+        title: '新用户充值金额', dataIndex: `newUserRechargeMoney`, align: 'center', width: 105,
+        key: 'newUserRechargeMoney',
+        render: (a: string, b: any) => {
+            return <Statistic value={a || 0} />
+        }
+    },
+    {
+        title: '新用户充值人数', dataIndex: `newUserRechargeNum`, align: 'center', width: 105,
+        key: 'newUserRechargeNum',
+        render: (a: string, b: any) => {
+            return <Statistic value={a || 0} />
+        }
+    },
+    {
+        title: '累计充值金额', dataIndex: `h5LeadBuyNewUserTotalAmount`, align: 'center', width: 90,
+        key: 'h5LeadBuyNewUserTotalAmount',
+        render: (a: string, b: any) => {
+            return <Statistic value={a || 0} />
+        }
+    },
+    {
+        title: '累计充值人数', dataIndex: `h5LeadBuyNewUserTotalAmountNum`, align: 'center', width: 90,
+        key: 'h5LeadBuyNewUserTotalAmountNum',
+        render: (a: string, b: any) => {
+            return <Statistic value={a || 0} />
+        }
+    },
+    {
+        title: '账面充值金额', dataIndex: `h5LeadBuyAmountNum`, align: 'center', width: 90,
+        key: 'h5LeadBuyAmountNum',
+        render: (a: string, b: any) => {
+            return <Statistic value={a || 0} />
+        }
+    },
+    {
+        title: '账面充值人数', dataIndex: `h5LeadBuyAmount`, align: 'center', width: 90,
+        key: 'h5LeadBuyAmount',
+        render: (a: string, b: any) => {
+            return <Statistic value={a || 0} />
+        }
+    },
+]
+
+interface Props {
+    gameName: string
+    h5BuyUserVOList: any[]
+}
+/**
+ * 游戏买量导入用户数据
+ * @returns 
+ */
+const H5BuyUser: React.FC<Props> = ({ gameName, h5BuyUserVOList }) => {
+
+    /**************************************/
+    const [visible, setVisible] = useState<boolean>(false)
+    /**************************************/
+
+    return <>
+        <Button type="link" style={{ padding: 0 }} onClick={() => setVisible(true)}>买量导量</Button>
+        {visible && <Modal title={`${gameName} 游戏买量导量用户数据`} width={900} visible={visible} onCancel={() => setVisible(false)} footer={null}>
+            <Table size="small" dataSource={h5BuyUserVOList?.map((item: any, index: number) => ({...item, id: index + 1}))} columns={columns} />
+        </Modal>}
+    </>
+}
+
+
+export default React.memo(H5BuyUser)

+ 87 - 0
src/pages/gameDataStatistics/gameData/h5Recharge/h5NatureUser.tsx

@@ -0,0 +1,87 @@
+import WidthEllipsis from "@/components/widthEllipsis"
+import { Button, Modal, Statistic, Table } from "antd"
+import { ColumnsType } from "antd/lib/table"
+import React, { useState } from "react"
+
+
+const columns: ColumnsType<any> = [
+    {
+        title: '游戏名称', dataIndex: `natureGameName`, align: 'center', width: 85,
+        render: (a: string, b: any) => {
+            return <WidthEllipsis isCopy value={a} />
+        }
+    },
+    {
+        title: '游戏ID', dataIndex: `natureGameId`, align: 'center', width: 85,
+        render: (a: string, b: any) => {
+            return <WidthEllipsis value={a} />
+        }
+    },
+    {
+        title: '游戏应用类型', dataIndex: `natureClassify`, align: 'center', width: 100,
+        render: (a: string, b: any) => {
+            return <Statistic value={a || 0} />
+        }
+    },
+    {
+        title: '新用户充值金额', dataIndex: `newUserRechargeMoney`, align: 'center', width: 105,
+        render: (a: string, b: any) => {
+            return <Statistic value={a || 0} />
+        }
+    },
+    {
+        title: '新用户充值人数', dataIndex: `newUserRechargeNum`, align: 'center', width: 105,
+        render: (a: string, b: any) => {
+            return <Statistic value={a || 0} />
+        }
+    },
+    {
+        title: '累计充值金额', dataIndex: `h5LeadNatureNewUserTotalAmount`, align: 'center', width: 90,
+        render: (a: string, b: any) => {
+            return <Statistic value={a || 0} />
+        }
+    },
+    {
+        title: '累计充值人数', dataIndex: `h5LeadNatureNewUserTotalAmountNum`, align: 'center', width: 90,
+        render: (a: string, b: any) => {
+            return <Statistic value={a || 0} />
+        }
+    },
+    {
+        title: '账面充值金额', dataIndex: `h5LeadNatureAmount`, align: 'center', width: 90,
+        render: (a: string, b: any) => {
+            return <Statistic value={a || 0} />
+        }
+    },
+    {
+        title: '账面充值人数', dataIndex: `h5LeadNatureAmountNum`, align: 'center', width: 90,
+        render: (a: string, b: any) => {
+            return <Statistic value={a || 0} />
+        }
+    },
+]
+
+interface Props {
+    gameName: string
+    h5NatureUserVOList: any[]
+}
+/**
+ * 游戏官方导量用户数据
+ * @returns 
+ */
+const H5NatureUser: React.FC<Props> = ({ gameName, h5NatureUserVOList }) => {
+
+    /**************************************/
+    const [visible, setVisible] = useState<boolean>(false)
+    /**************************************/
+
+    return <>
+        <Button type="link" style={{ padding: 0 }} onClick={() => setVisible(true)}>官方导量</Button>
+        {visible && <Modal title={`${gameName} 游戏官方导量用户数据`} width={900} visible={visible} onCancel={() => setVisible(false)} footer={null}>
+            <Table size="small" dataSource={h5NatureUserVOList?.map((item: any, index: number) => ({ ...item, id: index + 1 }))} columns={columns} />
+        </Modal>}
+    </>
+}
+
+
+export default React.memo(H5NatureUser)

+ 68 - 6
src/pages/gameDataStatistics/gameData/h5Recharge/index.tsx

@@ -1,21 +1,83 @@
-import React from "react"
+import React, { useEffect, useState } from "react"
 import TableData from "../../components/TableData"
 import columns12 from "./tableConfig"
-
+import { GameH5Props, getGameH5ListApi } from "@/services/gameData/game"
+import { useAjax } from "@/Hook/useAjax"
+import QueryForm from "@/components/QueryForm"
+import moment from "moment"
 
 const H5Recharge: React.FC = () => {
 
+    /*****************************/
+    const [queryForm, setQueryForm] = useState<GameH5Props>({
+        pageNum: 1, pageSize: 20,
+        sourceSystem: 'ZX_ONE',
+        rechargeBeginDate: moment().format('YYYY-MM-DD'),
+        rechargeEndDate: moment().subtract(30, 'd').format('YYYY-MM-DD'),
+        costBeginDate: moment().format('YYYY-MM-DD'),
+        costEndDate: moment().subtract(30, 'd').format('YYYY-MM-DD')
+    })
+
+    const getGameH5List = useAjax((params) => getGameH5ListApi(params))
+    /*****************************/
+
+    useEffect(() => {
+        getGameH5List.run(queryForm)
+    }, [queryForm])
 
     return <div>
 
         <TableData
+            leftChild={<QueryForm
+                initialValues={{ sourceSystem: 'ZX_ONE', rechargeDay: [moment(), moment().subtract(30, 'd')], regDay: [moment(), moment().subtract(30, 'd')] }}
+                onChange={(data: any) => {
+                    console.log(data)
+                    const { regStartDay, regEndDay, rechargeDay, ...params } = data
+                    let newQueryForm = JSON.parse(JSON.stringify(queryForm))
+                    newQueryForm.pageNum = 1
+                    if (regStartDay && regEndDay) {
+                        newQueryForm.costBeginDate = regStartDay
+                        newQueryForm.costEndDate = regEndDay
+                    } else {
+                        delete newQueryForm.costBeginDate
+                        delete newQueryForm.costEndDate
+                    }
+                    if (rechargeDay && rechargeDay?.length === 2) {
+                        newQueryForm['rechargeBeginDate'] = moment(rechargeDay[0]).format('YYYY-MM-DD')
+                        newQueryForm['rechargeEndDate'] = moment(rechargeDay[0]).format('YYYY-MM-DD')
+                    } else {
+                        delete newQueryForm['rechargeBeginDate']
+                        delete newQueryForm['rechargeEndDate']
+                    }
+                    setQueryForm({ ...newQueryForm, ...params })
+                }}
+                isSource
+                isRegDay
+                isGameId
+                rechargeDay={{}}
+            />}
             scroll={{ x: 1000, y: 600 }}
-            ajax={null}
-            fixed={{ left: 3, right: 0 }}
-            dataSource={[]}
+            ajax={getGameH5List}
+            fixed={{ left: 3, right: 1 }}
+            dataSource={getGameH5List?.data?.records?.map((item: any, index: number) => ({ ...item, id: Number(queryForm.pageNum.toString() + index.toString()) }))}
+            total={getGameH5List?.data?.total}
+            page={queryForm.pageNum}
+            pageSize={queryForm.pageSize}
             title='H5游戏充值表'
             onChange={(props: any) => {
-                console.log('props--->', props)
+                let { pagination, sortData } = props
+                let { current, pageSize } = pagination
+                let newQueryForm = JSON.parse(JSON.stringify(queryForm))
+                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
+                setQueryForm({ ...newQueryForm })
             }}
             config={columns12()}
             configName={'H5游戏充值表'}

+ 219 - 61
src/pages/gameDataStatistics/gameData/h5Recharge/tableConfig.tsx

@@ -1,3 +1,8 @@
+import WidthEllipsis from "@/components/widthEllipsis"
+import { Space, Statistic } from "antd"
+import React from "react"
+import H5BuyUser from "./h5BuyUser"
+import H5NatureUser from "./h5NatureUser"
 
 
 function columns12(): { label: string, fieldSHow?: { label: string, saveField: string, defaultValue: any[], data: any[] }, data: any[] }[] {
@@ -6,80 +11,233 @@ function columns12(): { label: string, fieldSHow?: { label: string, saveField: s
         {
             label: 'H5游戏信息',
             data: [
-                { title: 'H5游戏名称', dataIndex: '1', label: 'H5游戏信息', align: 'center', width: 80, default: 1 },
-                { title: 'H5游戏ID', dataIndex: '2', label: 'H5游戏信息', align: 'center', width: 80, default: 2 },
-                { title: '注册时间', dataIndex: '3', label: 'H5游戏信息', align: 'center', width: 95, default: 3 },
-                { title: '充值时间', dataIndex: '4', label: 'H5游戏信息', align: 'center', width: 95, default: 4 }
+                {
+                    title: 'H5游戏名称', dataIndex: 'gameName', label: 'H5游戏信息', align: 'center', width: 100, default: 1,
+                    render: (a: string, b: any) => (<WidthEllipsis isCopy value={a} />)
+                },
+                { title: 'H5游戏ID', dataIndex: 'gameId', label: 'H5游戏信息', align: 'center', width: 70, default: 2 },
             ]
         },
         {
             label: 'H5付费',
             data: [
-                { title: 'H5游戏新用户充值金额', dataIndex: '5', label: 'H5付费', align: 'center', width: 100, default: 5 },
-                { title: 'H5游戏新用户充值人数', dataIndex: '6', label: 'H5付费', align: 'center', width: 100, default: 6 },
-                { title: 'H5游戏新用户累计充值金额', dataIndex: '7', label: 'H5付费', align: 'center', width: 110, default: 7 },
-                { title: 'H5游戏新用户累计充值人数', dataIndex: '8', label: 'H5付费', align: 'center', width: 110, default: 8 },
-                { title: 'H5游戏账面充值金额', dataIndex: '9', label: 'H5付费', align: 'center', width: 100, default: 9 },
-                { title: 'H5游戏账面充值人数', dataIndex: '10', label: 'H5付费', align: 'center', width: 100, default: 10 },
+                {
+                    title: 'H5游戏新用户充值金额', dataIndex: 'h5NewUserRechargeMoney', label: 'H5付费', align: 'center', width: 100, default: 3,
+                    render: (a: string) => <Statistic value={a || 0} />
+                },
+                {
+                    title: 'H5游戏新用户充值人数', dataIndex: 'h5NewUserRechargeNum', label: 'H5付费', align: 'center', width: 100, default: 4,
+                    render: (a: string) => <Statistic value={a || 0} />
+                },
+                {
+                    title: 'H5游戏新用户累计充值金额', dataIndex: 'h5BuyNewUserTotalAmount', label: 'H5付费', align: 'center', width: 110, default: 5, sorter: true,
+                    render: (a: string) => <Statistic value={a || 0} />
+                },
+                {
+                    title: 'H5游戏新用户累计充值人数', dataIndex: 'h5BuyNewUserTotalAmountNum', label: 'H5付费', align: 'center', width: 110, default: 6, sorter: true,
+                    render: (a: string) => <Statistic value={a || 0} />
+                },
+                {
+                    title: 'H5游戏账面充值金额', dataIndex: 'h5BuyAmount', label: 'H5付费', align: 'center', width: 100, default: 7,
+                    render: (a: string) => <Statistic value={a || 0} />
+                },
+                {
+                    title: 'H5游戏账面充值人数', dataIndex: 'h5BuyAmountNum', label: 'H5付费', align: 'center', width: 100, default: 8,
+                    render: (a: string) => <Statistic value={a || 0} />
+                },
             ]
         },
         {
             label: 'H5自然量付费',
             data: [
-                { title: 'H5自然量新用户充值金额', dataIndex: '11', label: 'H5自然量付费', align: 'center', width: 100, default: 11 },
-                { title: 'H5自然量新用户充值额比例', dataIndex: '12', label: 'H5自然量付费', align: 'center', width: 100, default: 12 },
-                { title: 'H5自然量新用户充值人数', dataIndex: '13', label: 'H5自然量付费', align: 'center', width: 110, default: 13 },
-                { title: 'H5自然量新用户比例', dataIndex: '14', label: 'H5自然量付费', align: 'center', width: 110, default: 14 },
-                { title: 'H5自然量新用户累计充值金额', dataIndex: '15', label: 'H5自然量付费', align: 'center', width: 110, default: 15 },
-                { title: 'H5自然量新用户累计充值金额比例', dataIndex: '16', label: 'H5自然量付费', align: 'center', width: 115, default: 16 },
-                { title: 'H5自然量新用户累计充值人数', dataIndex: '17', label: 'H5自然量付费', align: 'center', width: 110, default: 17 },
-                { title: 'H5自然量账面充值金额', dataIndex: '18', label: 'H5自然量付费', align: 'center', width: 100, default: 18 },
-                { title: 'H5自然量账面充值人数', dataIndex: '19', label: 'H5自然量付费', align: 'center', width: 100, default: 19 },
-            ]
-        }, 
-        {
-            label: '导量数据',
-            data: [
-                { 
-                    title: '游戏买量导入用户数据', 
-                    dataIndex: '20', 
-                    label: '导量数据', 
-                    align: 'center', 
-                    width: 200, 
-                    default: 20,
-                    children: [
-                        { title: '游戏名称', dataIndex: `a1`, align: 'center', width: 85 },
-                        { title: '游戏ID', dataIndex: `a2`, align: 'center', width: 85 },
-                        { title: '游戏应用类型', dataIndex: `a3`, align: 'center', width: 100 },
-                        { title: '新用户充值金额', dataIndex: `a4`, align: 'center', width: 105 },
-                        { title: '新用户充值人数', dataIndex: `a5`, align: 'center', width: 105 },
-                        { title: '累计充值金额', dataIndex: `a6`, align: 'center', width: 90 },
-                        { title: '累计充值人数', dataIndex: `a7`, align: 'center', width: 90 },
-                        { title: '账面充值金额', dataIndex: `a8`, align: 'center', width: 90 },
-                        { title: '账面充值人数', dataIndex: `a9`, align: 'center', width: 90 },
-                    ]
-                },
-                { 
-                    title: '游戏官方导量用户数据', 
-                    dataIndex: '21', 
-                    label: '导量数据', 
-                    align: 'center', 
-                    width: 200, 
-                    default: 21,
-                    children: [
-                        { title: '游戏名称', dataIndex: `a1`, align: 'center', width: 85 },
-                        { title: '游戏ID', dataIndex: `a2`, align: 'center', width: 85 },
-                        { title: '游戏应用类型', dataIndex: `a3`, align: 'center', width: 100 },
-                        { title: '新用户充值金额', dataIndex: `a4`, align: 'center', width: 105 },
-                        { title: '新用户充值人数', dataIndex: `a5`, align: 'center', width: 105 },
-                        { title: '累计充值金额', dataIndex: `a6`, align: 'center', width: 90 },
-                        { title: '累计充值人数', dataIndex: `a7`, align: 'center', width: 90 },
-                        { title: '账面充值金额', dataIndex: `a8`, align: 'center', width: 90 },
-                        { title: '账面充值人数', dataIndex: `a9`, align: 'center', width: 90 },
-                    ]
+                {
+                    title: 'H5自然量新用户充值金额', dataIndex: 'h5NewUserNatureRechargeMoney', label: 'H5自然量付费', align: 'center', width: 100, default: 9,
+                    render: (a: string) => <Statistic value={a || 0} />
+                },
+                {
+                    title: 'H5自然量新用户充值额比例', dataIndex: 'h5NewUserNatureRechargeRate', label: 'H5自然量付费', align: 'center', width: 100, default: 10,
+                    render: (a: string) => <Statistic value={a || 0} />
+                },
+                {
+                    title: 'H5自然量新用户充值人数', dataIndex: 'h5NewUserNatureRechargeNum', label: 'H5自然量付费', align: 'center', width: 110, default: 11,
+                    render: (a: string) => <Statistic value={a || 0} />
+                },
+                {
+                    title: 'H5自然量新用户比例', dataIndex: 'h5NewUserNatureNewUserRate', label: 'H5自然量付费', align: 'center', width: 110, default: 12,
+                    render: (a: string) => <Statistic value={a || 0} />
+                },
+                {
+                    title: 'H5自然量新用户累计充值金额', dataIndex: 'h5NatureNewUserTotalAmount', label: 'H5自然量付费', align: 'center', width: 110, default: 13, sorter: true,
+                    render: (a: string) => <Statistic value={a || 0} />
+                },
+                {
+                    title: 'H5自然量新用户累计充值金额比例', dataIndex: 'h5NatureNewUserTotalAmountRate', label: 'H5自然量付费', align: 'center', width: 115, default: 14, sorter: true,
+                    render: (a: string) => <Statistic value={a || 0} />
+                },
+                {
+                    title: 'H5自然量新用户累计充值人数', dataIndex: 'h5NatureNewUserTotalAmountNum', label: 'H5自然量付费', align: 'center', width: 110, default: 15, sorter: true,
+                    render: (a: string) => <Statistic value={a || 0} />
+                },
+                {
+                    title: 'H5自然量账面充值金额', dataIndex: 'h5NatureAmount', label: 'H5自然量付费', align: 'center', width: 100, default: 16,
+                    render: (a: string) => <Statistic value={a || 0} />
+                },
+                {
+                    title: 'H5自然量账面充值人数', dataIndex: 'h5NatureAmountNum', label: 'H5自然量付费', align: 'center', width: 100, default: 17,
+                    render: (a: string) => <Statistic value={a || 0} />
                 },
             ]
         },
+        {
+            label: '操作',
+            data: [{
+                title: '操作',
+                dataIndex: 'cz',
+                label: '操作',
+                align: 'center',
+                width: 150,
+                default: 18,
+                render: (a: string, b: any) => {
+                    return <Space>
+                        <H5BuyUser gameName={b?.gameName} h5BuyUserVOList={b?.h5BuyUserVOList} />
+                        <H5NatureUser gameName={b?.gameName} h5NatureUserVOList={b?.h5NatureUserVOList} />
+                    </Space>
+                }
+            }]
+        },
+        // {
+        //     label: '导量数据',
+        //     data: [
+        //         {
+        //             title: '游戏买量导入用户数据',
+        //             dataIndex: 'h5BuyUserVOList',
+        //             label: '导量数据',
+        //             align: 'center',
+        //             width: 200,
+        //             default: 18,
+        //             children: [
+        //                 {
+        //                     title: '游戏名称', dataIndex: `buyGameName`, align: 'center', width: 85,
+        //                     render: (a: string, b: any) => {
+        //                         return <WidthEllipsis isCopy value={b?.h5BuyUserVOList?.buyGameName} />
+        //                     }
+        //                 },
+        //                 {
+        //                     title: '游戏ID', dataIndex: `buyGameId`, align: 'center', width: 85,
+        //                     render: (a: string, b: any) => {
+        //                         return <WidthEllipsis isCopy value={b?.h5BuyUserVOList?.buyGameId} />
+        //                     }
+        //                 },
+        //                 {
+        //                     title: '游戏应用类型', dataIndex: `buyClassify`, align: 'center', width: 100,
+        //                     render: (a: string, b: any) => {
+        //                         return <Statistic value={b?.h5BuyUserVOList?.buyClassify || 0} />
+        //                     }
+        //                 },
+        //                 {
+        //                     title: '新用户充值金额', dataIndex: `newUserRechargeMoney`, align: 'center', width: 105,
+        //                     render: (a: string, b: any) => {
+        //                         return <Statistic value={b?.h5BuyUserVOList?.newUserRechargeMoney || 0} />
+        //                     }
+        //                 },
+        //                 {
+        //                     title: '新用户充值人数', dataIndex: `newUserRechargeNum`, align: 'center', width: 105,
+        //                     render: (a: string, b: any) => {
+        //                         return <Statistic value={b?.h5BuyUserVOList?.newUserRechargeNum || 0} />
+        //                     }
+        //                 },
+        //                 {
+        //                     title: '累计充值金额', dataIndex: `h5LeadBuyNewUserTotalAmount`, align: 'center', width: 90,
+        //                     render: (a: string, b: any) => {
+        //                         return <Statistic value={b?.h5BuyUserVOList?.h5LeadBuyNewUserTotalAmount || 0} />
+        //                     }
+        //                 },
+        //                 {
+        //                     title: '累计充值人数', dataIndex: `h5LeadBuyNewUserTotalAmountNum`, align: 'center', width: 90,
+        //                     render: (a: string, b: any) => {
+        //                         return <Statistic value={b?.h5BuyUserVOList?.h5LeadBuyNewUserTotalAmountNum || 0} />
+        //                     }
+        //                 },
+        //                 {
+        //                     title: '账面充值金额', dataIndex: `h5LeadBuyAmountNum`, align: 'center', width: 90,
+        //                     render: (a: string, b: any) => {
+        //                         return <Statistic value={b?.h5BuyUserVOList?.h5LeadBuyAmountNum || 0} />
+        //                     }
+        //                 },
+        //                 {
+        //                     title: '账面充值人数', dataIndex: `h5LeadBuyAmount`, align: 'center', width: 90,
+        //                     render: (a: string, b: any) => {
+        //                         return <Statistic value={b?.h5BuyUserVOList?.h5LeadBuyAmount || 0} />
+        //                     }
+        //                 },
+        //             ]
+        //         },
+        //         {
+        //             title: '游戏官方导量用户数据',
+        //             dataIndex: 'h5NatureUserVOList',
+        //             label: '导量数据',
+        //             align: 'center',
+        //             width: 200,
+        //             default: 19,
+        //             children: [
+        //                 {
+        //                     title: '游戏名称', dataIndex: `natureGameName`, align: 'center', width: 85,
+        //                     render: (a: string, b: any) => {
+        //                         return <WidthEllipsis isCopy value={b?.h5NatureUserVOList?.natureGameName} />
+        //                     }
+        //                 },
+        //                 {
+        //                     title: '游戏ID', dataIndex: `natureGameId`, align: 'center', width: 85,
+        //                     render: (a: string, b: any) => {
+        //                         return <WidthEllipsis isCopy value={b?.h5NatureUserVOList?.natureGameId} />
+        //                     }
+        //                 },
+        //                 {
+        //                     title: '游戏应用类型', dataIndex: `natureClassify`, align: 'center', width: 100,
+        //                     render: (a: string, b: any) => {
+        //                         return <Statistic value={b?.h5NatureUserVOList?.natureClassify || 0} />
+        //                     }
+        //                 },
+        //                 {
+        //                     title: '新用户充值金额', dataIndex: `newUserRechargeMoney`, align: 'center', width: 105,
+        //                     render: (a: string, b: any) => {
+        //                         return <Statistic value={b?.h5NatureUserVOList?.newUserRechargeMoney || 0} />
+        //                     }
+        //                 },
+        //                 {
+        //                     title: '新用户充值人数', dataIndex: `newUserRechargeNum`, align: 'center', width: 105,
+        //                     render: (a: string, b: any) => {
+        //                         return <Statistic value={b?.h5NatureUserVOList?.newUserRechargeNum || 0} />
+        //                     }
+        //                 },
+        //                 {
+        //                     title: '累计充值金额', dataIndex: `h5LeadNatureNewUserTotalAmount`, align: 'center', width: 90,
+        //                     render: (a: string, b: any) => {
+        //                         return <Statistic value={b?.h5NatureUserVOList?.h5LeadNatureNewUserTotalAmount || 0} />
+        //                     }
+        //                 },
+        //                 {
+        //                     title: '累计充值人数', dataIndex: `h5LeadNatureNewUserTotalAmountNum`, align: 'center', width: 90,
+        //                     render: (a: string, b: any) => {
+        //                         return <Statistic value={b?.h5NatureUserVOList?.h5LeadNatureNewUserTotalAmountNum || 0} />
+        //                     }
+        //                 },
+        //                 {
+        //                     title: '账面充值金额', dataIndex: `h5LeadNatureAmount`, align: 'center', width: 90,
+        //                     render: (a: string, b: any) => {
+        //                         return <Statistic value={b?.h5NatureUserVOList?.h5LeadNatureAmount || 0} />
+        //                     }
+        //                 },
+        //                 {
+        //                     title: '账面充值人数', dataIndex: `h5LeadNatureAmountNum`, align: 'center', width: 90,
+        //                     render: (a: string, b: any) => {
+        //                         return <Statistic value={b?.h5NatureUserVOList?.h5LeadNatureAmountNum || 0} />
+        //                     }
+        //                 },
+        //             ]
+        //         },
+        //     ]
+        // },
     ]
 }
 

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

@@ -16,6 +16,7 @@ const Total: React.FC = () => {
     /*****************************/
     const [queryForm, setQueryForm] = useState<GameTotalProps>({ 
         pageNum: 1, pageSize: 20,
+        sourceSystem: 'ZX_ONE',
         registeredBeginDate: moment().subtract(30, 'd').format('YYYY-MM-DD'),
         registeredEndDate: moment().format('YYYY-MM-DD'),
         rechargeBeginDate: moment().subtract(30, 'd').format('YYYY-MM-DD'),
@@ -33,7 +34,7 @@ const Total: React.FC = () => {
 
         <TableData
             leftChild={<QueryForm
-                initialValues={{ regDay: [moment().subtract(30, 'd'), moment()], rechargeDay: [moment().subtract(30, 'd'), moment()] }}
+                initialValues={{ regDay: [moment().subtract(30, 'd'), moment()], rechargeDay: [moment().subtract(30, 'd'), moment()], sourceSystem: 'ZX_ONE' }}
                 onChange={(data: any) => {
                     console.log(data)
                     const { regStartDay, regEndDay, rechargeDay, ...params } = data
@@ -57,7 +58,7 @@ const Total: React.FC = () => {
                 }}
                 isSource
                 isRegDay
-                isGameName
+                isGameId
                 isBGGameClassify
                 rechargeDay={{ ranges: czPresets }}
             />}

+ 3 - 18
src/pages/gameDataStatistics/gameData/total/tableConfig.tsx

@@ -1,3 +1,4 @@
+import { gameClassifyEnum } from "@/components/QueryForm/const"
 import WidthEllipsis from "@/components/widthEllipsis"
 import { Statistic } from "antd"
 import React from "react"
@@ -12,24 +13,8 @@ function columns12(): { label: string, fieldSHow?: { label: string, saveField: s
             data: [
                 { title: '推广游戏名称', dataIndex: 'gameName', label: '游戏信息', align: 'center', width: 70, default: 1, render: (a: string, b: any) => (<WidthEllipsis isCopy value={a} />) },
                 {
-                    title: '推广游戏应用类型', dataIndex: 'gameClassify', label: '游戏信息', align: 'center', width: 70, default: 2,
-                    render: (a: string) => {
-                        if (a) {
-                            let one = a?.toString()?.charAt(0)
-                            switch (one) {
-                                case '3':
-                                    return 'Android'
-                                case '4':
-                                    return 'IOS'
-                                case '5':
-                                    return 'H5'
-                                case '6':
-                                    return '小程序'
-                                default:
-                                    return a || '--'
-                            }
-                        } else return '--'
-                    }
+                    title: '推广游戏应用类型', dataIndex: 'gameClassify', label: '游戏信息', align: 'center', width: 80, default: 2,
+                    render: (a: string) => (<span>{gameClassifyEnum[a]}</span>)
                 }
             ]
         },

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

@@ -11,7 +11,7 @@ import columns12 from "./tableConfig"
 const Order: React.FC = () => {
 
     /***************************/
-    const [queryForm, setQueryForm] = useState<OrderListType>({ pageNum: 1, pageSize: 20 })
+    const [queryForm, setQueryForm] = useState<OrderListType>({ pageNum: 1, pageSize: 20, sourceSystem: 'ZX_ONE' })
     const getOrderList = useAjax((params) => getOrderListApi(params))
     /***************************/
 
@@ -23,6 +23,7 @@ const Order: React.FC = () => {
 
         <TableData
             leftChild={<QueryForm
+                initialValues={{ sourceSystem: 'ZX_ONE' }}
                 onChange={(data: any) => {
                     const { pitcherId, regStartDay, regEndDay, beginOrderTime, endOrderTime, ...params } = data
                     console.log(params, pitcherId)

+ 5 - 36
src/pages/gameDataStatistics/order/tableConfig.tsx

@@ -1,3 +1,4 @@
+import { gameClassifyEnum } from "@/components/QueryForm/const"
 import WidthEllipsis from "@/components/widthEllipsis"
 import { Badge, Statistic } from "antd"
 import React from "react"
@@ -47,24 +48,8 @@ function columns12(): { label: string, fieldSHow?: { label: string, saveField: s
                     render: (a: string, b: any) => (<WidthEllipsis value={a} />)
                 },
                 {
-                    title: '玩家注册游戏应用类型', dataIndex: 'classify', label: '订单明细', align: 'center', width: 75, default: 11,
-                    render: (a: string) => {
-                        if (a) {
-                            let one = a.charAt(0)
-                            switch (one) {
-                                case '3':
-                                    return 'Android'
-                                case '4':
-                                    return 'IOS'
-                                case '5':
-                                    return 'H5'
-                                case '6':
-                                    return '小程序'
-                                default:
-                                    return '--'
-                            }
-                        } else return '--'
-                    }
+                    title: '玩家注册游戏应用类型', dataIndex: 'classify', label: '订单明细', align: 'center', width: 80, default: 11,
+                    render: (a: string) => (<span>{gameClassifyEnum[a]}</span>)
                 },
                 {
                     title: '归因投放人员', dataIndex: 'zxPitcherName', label: '订单明细', align: 'center', width: 65, default: 12,
@@ -87,24 +72,8 @@ function columns12(): { label: string, fieldSHow?: { label: string, saveField: s
                     render: (a: string, b: any) => (<WidthEllipsis value={a} />)
                 },
                 {
-                    title: '玩家充值游戏应用类型', dataIndex: 'orderGameClassify', label: '订单明细', align: 'center', width: 70, default: 17,
-                    render: (a: string) => {
-                        if (a) {
-                            let one = a.charAt(0)
-                            switch (one) {
-                                case '3':
-                                    return 'Android'
-                                case '4':
-                                    return 'IOS'
-                                case '5':
-                                    return 'H5'
-                                case '6':
-                                    return '小程序'
-                                default:
-                                    return '--'
-                            }
-                        } else return '--'
-                    }
+                    title: '玩家充值游戏应用类型', dataIndex: 'orderGameClassify', label: '订单明细', align: 'center', width: 80, default: 17,
+                    render: (a: string) => (<span>{gameClassifyEnum[a]}</span>)
                 },
                 {
                     title: '充值产品名称', dataIndex: 'productName', label: '订单明细', align: 'center', width: 85, default: 18,

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

@@ -11,7 +11,7 @@ import { rangePresets } from "@/components/QueryForm/const"
 const Account: React.FC = () => {
 
     /********************************/
-    const [queryForm, setQueryForm] = useState<AccountProps>({ pageNum: 1, pageSize: 20 })
+    const [queryForm, setQueryForm] = useState<AccountProps>({ pageNum: 1, pageSize: 20, sourceSystem: 'ZX_ONE' })
 
     const getAccountRechargeRankingList = useAjax((params) => getAccountRechargeRankingListApi(params))
     /********************************/
@@ -24,6 +24,7 @@ const Account: React.FC = () => {
 
         <TableData
             leftChild={<QueryForm
+                initialValues={{ sourceSystem: 'ZX_ONE' }}
                 onChange={(data: any) => {
                     console.log(data)
                     const { rechargeDay, ...params } = data

+ 25 - 26
src/pages/gameDataStatistics/rankingList/account/tableConfig.tsx

@@ -8,105 +8,104 @@ function columns12() {
         {
             label: '推广账号消耗排行榜',
             data: [
-                { title: 'ID', dataIndex: 'id', label: '推广账号消耗排行榜', align: 'center', width: 60, default: 1 },
                 {
-                    title: '推广账号', dataIndex: 'accountId', label: '推广账号消耗排行榜', align: 'center', width: 95, default: 2,
+                    title: '推广账号', dataIndex: 'accountId', label: '推广账号消耗排行榜', align: 'center', width: 95, default: 1,
                     render: (a: string, b: any) => (<WidthEllipsis value={a} />)
                 },
                 {
-                    title: '推广媒体', dataIndex: 'type', label: '推广账号消耗排行榜', align: 'center', width: 70, default: 3,
+                    title: '推广媒体', dataIndex: 'type', label: '推广账号消耗排行榜', align: 'center', width: 70, default: 2,
                     render: (a: string, b: any) => (<WidthEllipsis value={a} />)
                 },
                 {
-                    title: '投手', dataIndex: 'pitcher', label: '推广账号消耗排行榜', align: 'center', width: 70, default: 4,
+                    title: '投手', dataIndex: 'pitcher', label: '推广账号消耗排行榜', align: 'center', width: 70, default: 3,
                     render: (a: string, b: any) => (<WidthEllipsis value={a} />)
                 },
                 {
-                    title: '推广游戏名称', dataIndex: 'gameName', label: '推广账号消耗排行榜', align: 'center', width: 70, default: 5,
+                    title: '推广游戏名称', dataIndex: 'gameName', label: '推广账号消耗排行榜', align: 'center', width: 70, default: 4,
                     render: (a: string, b: any) => (<WidthEllipsis value={a} />)
                 },
                 {
-                    title: '推广游戏类型', dataIndex: 'gameClassify', label: '推广账号消耗排行榜', align: 'center', width: 70, default: 6,
+                    title: '推广游戏类型', dataIndex: 'gameClassify', label: '推广账号消耗排行榜', align: 'center', width: 70, default: 5,
                     render: (a: string, b: any) => (<WidthEllipsis value={a} />)
                 },
                 {
-                    title: '推广游戏CP名称', dataIndex: 'gameCp', label: '推广账号消耗排行榜', align: 'center', width: 70, default: 7,
+                    title: '推广游戏CP名称', dataIndex: 'gameCp', label: '推广账号消耗排行榜', align: 'center', width: 70, default: 6,
                     render: (a: string, b: any) => (<WidthEllipsis value={a} />)
                 },
                 {
-                    title: '消耗', dataIndex: 'cost', label: '推广账号消耗排行榜', align: 'center', width: 90, default: 8, sorter: true,
+                    title: '消耗', dataIndex: 'cost', label: '推广账号消耗排行榜', align: 'center', width: 90, default: 7, sorter: true,
                     render: (a: string) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '推广广告数量', dataIndex: 'adCount', label: '推广账号消耗排行榜', align: 'center', width: 70, default: 9, sorter: true,
+                    title: '推广广告数量', dataIndex: 'adCount', label: '推广账号消耗排行榜', align: 'center', width: 70, default: 8, sorter: true,
                     render: (a: string) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '曝光量', dataIndex: 'viewCount', label: '推广账号消耗排行榜', align: 'center', width: 70, default: 10, sorter: true,
+                    title: '曝光量', dataIndex: 'viewCount', label: '推广账号消耗排行榜', align: 'center', width: 70, default: 9, sorter: true,
                     render: (a: string) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '点击量', dataIndex: 'clickCount', label: '推广账号消耗排行榜', align: 'center', width: 70, default: 11, sorter: true,
+                    title: '点击量', dataIndex: 'clickCount', label: '推广账号消耗排行榜', align: 'center', width: 70, default: 10, sorter: true,
                     render: (a: string) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '点击率', dataIndex: 'clickRate', label: '推广账号消耗排行榜', align: 'center', width: 80, default: 12, sorter: true,
+                    title: '点击率', dataIndex: 'clickRate', label: '推广账号消耗排行榜', align: 'center', width: 80, default: 11, sorter: true,
                     render: (a: number) => <Statistic value={a || 0} precision={5} valueStyle={a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
                 },
                 {
-                    title: '千次曝光成本', dataIndex: 'thousandDisplayPrice', label: '推广账号消耗排行榜', align: 'center', width: 70, default: 13, sorter: true,
+                    title: '千次曝光成本', dataIndex: 'thousandDisplayPrice', label: '推广账号消耗排行榜', align: 'center', width: 70, default: 12, sorter: true,
                     render: (a: string) => <Statistic value={a || 0} precision={2}/>
                 },
                 {
-                    title: '注册人数', dataIndex: 'regUserCnt', label: '推广账号消耗排行榜', align: 'center', width: 70, default: 14, sorter: true,
+                    title: '注册人数', dataIndex: 'regUserCnt', label: '推广账号消耗排行榜', align: 'center', width: 70, default: 13, sorter: true,
                     render: (a: string) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '注册成本', dataIndex: 'regCost', label: '推广账号消耗排行榜', align: 'center', width: 100, default: 15, sorter: true,
+                    title: '注册成本', dataIndex: 'regCost', label: '推广账号消耗排行榜', align: 'center', width: 100, default: 14, sorter: true,
                     render: (a: string) => <Statistic value={a || 0} precision={2}/>
                 },
                 {
-                    title: '首日创角人数', dataIndex: 'firstRole', label: '推广账号消耗排行榜', align: 'center', width: 70, default: 16, sorter: true,
+                    title: '首日创角人数', dataIndex: 'firstRole', label: '推广账号消耗排行榜', align: 'center', width: 70, default: 15, sorter: true,
                     render: (a: string) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '累计创角人数', dataIndex: 'totalRole', label: '推广账号消耗排行榜', align: 'center', width: 70, default: 17, sorter: true,
+                    title: '累计创角人数', dataIndex: 'totalRole', label: '推广账号消耗排行榜', align: 'center', width: 70, default: 16, sorter: true,
                     render: (a: string) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '首日充值金额', dataIndex: 'firstAmount', label: '推广账号消耗排行榜', align: 'center', width: 70, default: 18, sorter: true,
+                    title: '首日充值金额', dataIndex: 'firstAmount', label: '推广账号消耗排行榜', align: 'center', width: 70, default: 17, sorter: true,
                     render: (a: string) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '首日充值人数', dataIndex: 'firstAmountUser', label: '推广账号消耗排行榜', align: 'center', width: 70, default: 19, sorter: true,
+                    title: '首日充值人数', dataIndex: 'firstAmountUser', label: '推广账号消耗排行榜', align: 'center', width: 70, default: 18, sorter: true,
                     render: (a: string) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '首日充值次数', dataIndex: 'firstAmountCount', label: '推广账号消耗排行榜', align: 'center', width: 70, default: 20, sorter: true,
+                    title: '首日充值次数', dataIndex: 'firstAmountCount', label: '推广账号消耗排行榜', align: 'center', width: 70, default: 19, sorter: true,
                     render: (a: string) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '累计充值金额', dataIndex: 'totalAmount', label: '推广账号消耗排行榜', align: 'center', width: 70, default: 21, sorter: true,
+                    title: '累计充值金额', dataIndex: 'totalAmount', label: '推广账号消耗排行榜', align: 'center', width: 70, default: 20, sorter: true,
                     render: (a: string) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '累计充值人数', dataIndex: 'totalAmountUser', label: '推广账号消耗排行榜', align: 'center', width: 70, default: 22, sorter: true,
+                    title: '累计充值人数', dataIndex: 'totalAmountUser', label: '推广账号消耗排行榜', align: 'center', width: 70, default: 21, sorter: true,
                     render: (a: string) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '累计充值次数', dataIndex: 'totalAmountCount', label: '推广账号消耗排行榜', align: 'center', width: 70, default: 23, sorter: true,
+                    title: '累计充值次数', dataIndex: 'totalAmountCount', label: '推广账号消耗排行榜', align: 'center', width: 70, default: 22, sorter: true,
                     render: (a: string) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '首日ROI', dataIndex: 'firstRoi', label: '推广账号消耗排行榜', align: 'center', width: 90, default: 24, sorter: true,
+                    title: '首日ROI', dataIndex: 'firstRoi', label: '推广账号消耗排行榜', align: 'center', width: 90, default: 23, sorter: true,
                     render: (a: number) => <Statistic value={a} precision={2} valueStyle={a >= 50 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
                 },
                 {
-                    title: '平均客单价', dataIndex: 'avgAmount', label: '推广账号消耗排行榜', align: 'center', width: 100, default: 25, sorter: true,
+                    title: '平均客单价', dataIndex: 'avgAmount', label: '推广账号消耗排行榜', align: 'center', width: 100, default: 24, sorter: true,
                     render: (a: string) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '回本率', dataIndex: 'roi', label: '推广账号消耗排行榜', align: 'center', width: 70, default: 26, sorter: true,
+                    title: '回本率', dataIndex: 'roi', label: '推广账号消耗排行榜', align: 'center', width: 70, default: 25, sorter: true,
                     render: (a: number) => <Statistic value={a} precision={2} valueStyle={a >= 100 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
                 },
             ]

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

@@ -12,7 +12,7 @@ import { rangePresets } from "@/components/QueryForm/const"
 const Channel: React.FC = () => {
 
     /********************************/
-    const [queryForm, setQueryForm] = useState<ChannelProps>({ pageNum: 1, pageSize: 20 })
+    const [queryForm, setQueryForm] = useState<ChannelProps>({ pageNum: 1, pageSize: 20, sourceSystem: 'ZX_ONE' })
 
     const getAgentRechargeRankingList = useAjax((params) => getAgentRechargeRankingListApi(params))
     /********************************/
@@ -25,6 +25,7 @@ const Channel: React.FC = () => {
 
         <TableData
             leftChild={<QueryForm
+                initialValues={{ sourceSystem: 'ZX_ONE' }}
                 onChange={(data: any) => {
                     console.log(data)
                     const { rechargeDay, ...params } = data

+ 11 - 12
src/pages/gameDataStatistics/rankingList/channel/tableConfig.tsx

@@ -8,49 +8,48 @@ function columns12() {
         {
             label: '推广渠道充值排行榜',
             data: [
-                { title: 'ID', dataIndex: 'id', label: '推广渠道充值排行榜', align: 'center', width: 60, default: 1 },
                 {
-                    title: '推广渠道账号', dataIndex: 'agentId', label: '推广渠道充值排行榜', align: 'center', width: 80, default: 2,
+                    title: '推广渠道账号ID', dataIndex: 'agentId', label: '推广渠道充值排行榜', align: 'center', width: 60, default: 1,
                     render: (a: string, b: any) => (<WidthEllipsis value={a} />)
                 },
                 {
-                    title: '推广渠道名称', dataIndex: 'agentName', label: '推广渠道充值排行榜', align: 'center', width: 150, default: 3,
+                    title: '推广渠道名称', dataIndex: 'agentName', label: '推广渠道充值排行榜', align: 'center', width: 150, default: 2,
                     render: (a: string, b: any) => (<WidthEllipsis isCopy value={a} />)
                 },
                 {
-                    title: '投手', dataIndex: 'pitcher', label: '推广渠道充值排行榜', align: 'center', width: 70, default: 4,
+                    title: '投手', dataIndex: 'pitcher', label: '推广渠道充值排行榜', align: 'center', width: 70, default: 3,
                     render: (a: string, b: any) => (<WidthEllipsis value={a} />)
                 },
                 {
-                    title: '推广媒体', dataIndex: 'type', label: '推广渠道充值排行榜', align: 'center', width: 70, default: 5,
+                    title: '推广媒体', dataIndex: 'type', label: '推广渠道充值排行榜', align: 'center', width: 70, default: 4,
                     render: (a: string, b: any) => (<WidthEllipsis value={a} />)
                 },
                 {
-                    title: '当天充值金额', dataIndex: 'todayAmount', label: '推广渠道充值排行榜', align: 'center', width: 100, default: 6, sorter: true,
+                    title: '当天充值金额', dataIndex: 'todayAmount', label: '推广渠道充值排行榜', align: 'center', width: 100, default: 5, sorter: true,
                     render: (a: string) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '累计充值金额', dataIndex: 'totalRechargeAmount', label: '推广渠道充值排行榜', align: 'center', width: 100, default: 7, sorter: true,
+                    title: '累计充值金额', dataIndex: 'totalRechargeAmount', label: '推广渠道充值排行榜', align: 'center', width: 100, default: 6, sorter: true,
                     render: (a: string) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '新用户累计充值人数', dataIndex: 'totalRechargeNum', label: '推广渠道充值排行榜', align: 'center', width: 80, default: 8, sorter: true,
+                    title: '新用户累计充值人数', dataIndex: 'totalRechargeNum', label: '推广渠道充值排行榜', align: 'center', width: 80, default: 7, sorter: true,
                     render: (a: string) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '新用户累计充值次数', dataIndex: 'totalRechargeCount', label: '推广渠道充值排行榜', align: 'center', width: 80, default: 9, sorter: true,
+                    title: '新用户累计充值次数', dataIndex: 'totalRechargeCount', label: '推广渠道充值排行榜', align: 'center', width: 80, default: 8, sorter: true,
                     render: (a: string) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '平均客单价', dataIndex: 'avgAmount', label: '推广渠道充值排行榜', align: 'center', width: 100, default: 10, sorter: true,
+                    title: '平均客单价', dataIndex: 'avgAmount', label: '推广渠道充值排行榜', align: 'center', width: 100, default: 9, sorter: true,
                     render: (a: string) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '累计消耗', dataIndex: 'totalCost', label: '推广渠道充值排行榜', align: 'center', width: 100, default: 11, sorter: true,
+                    title: '累计消耗', dataIndex: 'totalCost', label: '推广渠道充值排行榜', align: 'center', width: 100, default: 10, sorter: true,
                     render: (a: string) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '回本率', dataIndex: 'roi', label: '推广渠道充值排行榜', align: 'center', width: 100, default: 12, sorter: true,
+                    title: '回本率', dataIndex: 'roi', label: '推广渠道充值排行榜', align: 'center', width: 100, default: 11, sorter: true,
                     render: (a: number) => <Statistic value={a || 0} precision={2} valueStyle={a >= 100 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
                 }
             ]

+ 7 - 6
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 })
+    const [queryForm, setQueryForm] = useState<GameRechargeListType>({ pageNum: 1, pageSize: 20, sourceSystem: 'ZX_ONE' })
     const [gameType, setGameType] = useState<any>({})
 
     const getRechargeGameList = useAjax((params) => getRechargeGameListApi(params))
@@ -25,7 +25,7 @@ const Game: React.FC = () => {
     useEffect(() => {
         getGameChoiceParentListType1.run().then(res => {
             let newType: any = {}
-            res.forEach((item: {id: number, name: string}) => {
+            res.forEach((item: { id: number, name: string }) => {
                 newType[item.id] = item.name
             })
             setGameType(newType)
@@ -35,14 +35,15 @@ const Game: React.FC = () => {
     return <div>
         <TableData
             leftChild={<QueryForm
+                initialValues={{ sourceSystem: 'ZX_ONE' }}
                 onChange={(data: any) => {
                     console.log(data)
-                    const { rechargeDay, beginDay, endDay } = data
+                    const { rechargeDay, beginDay, endDay, ...par } = data
                     let newQueryForm = JSON.parse(JSON.stringify(queryForm))
                     newQueryForm.pageNum = 1
                     if (rechargeDay && rechargeDay?.length === 2) {
                         newQueryForm['beginDay'] = moment(rechargeDay[0]).format('YYYY-MM-DD')
-                        newQueryForm['endDay'] = moment(rechargeDay[0]).format('YYYY-MM-DD')
+                        newQueryForm['endDay'] = moment(rechargeDay[1]).format('YYYY-MM-DD')
                     } else {
                         if (beginDay && endDay) {
                             newQueryForm['beginDay'] = beginDay
@@ -52,7 +53,7 @@ const Game: React.FC = () => {
                             delete newQueryForm['endDay']
                         }
                     }
-                    setQueryForm(newQueryForm)
+                    setQueryForm({ ...newQueryForm, ...par })
                 }}
                 isSource
                 rechargeDay={{ ranges: rangePresets }}
@@ -60,7 +61,7 @@ const Game: React.FC = () => {
             scroll={{ x: 1200, y: 600 }}
             ajax={getRechargeGameList}
             fixed={{ left: 1, right: 0 }}
-            dataSource={getRechargeGameList?.data?.records}
+            dataSource={getRechargeGameList?.data?.records?.map((item: any, index: number) => ({ ...item, id: Number(queryForm.pageNum.toString() + index.toString()) }))}
             page={getRechargeGameList?.data?.current || 1}
             pageSize={getRechargeGameList?.data?.size || 20}
             total={getRechargeGameList?.data?.total || 0}

+ 17 - 33
src/pages/gameDataStatistics/rankingList/game/tableConfig.tsx

@@ -1,3 +1,4 @@
+import { gameClassifyEnum } from "@/components/QueryForm/const"
 import WidthEllipsis from "@/components/widthEllipsis"
 import { Statistic } from "antd"
 import React from "react"
@@ -8,15 +9,14 @@ function columns12(gameType: any) {
         {
             label: '游戏充值排行榜',
             data: [
-                { title: 'ID', dataIndex: 'id', label: '游戏充值排行榜', align: 'center', width: 60, default: 1 },
-                { title: '游戏ID', dataIndex: 'gameId', label: '游戏充值排行榜', align: 'center', width: 60, default: 2 },
+                { title: '游戏ID', dataIndex: 'gameId', label: '游戏充值排行榜', align: 'center', width: 60, default: 1 },
                 {
                     title: '游戏名称',
                     dataIndex: 'gameName',
                     label: '游戏充值排行榜',
                     align: 'center',
                     width: 80,
-                    default: 3,
+                    default: 2,
                     render: (a: string, b: any) => (<WidthEllipsis value={a} />)
                 },
                 { 
@@ -25,37 +25,21 @@ function columns12(gameType: any) {
                     label: '游戏充值排行榜', 
                     align: 'center', 
                     width: 85, 
-                    default: 4,
-                    render: (a: string) => {
-                        if (a) {
-                            let one = a.charAt(0)
-                            switch(one) {
-                                case '3':
-                                    return 'Android'
-                                case '4':
-                                    return 'IOS'
-                                case '5':
-                                    return 'H5'
-                                case '6':
-                                    return '小程序'
-                                default:
-                                    return gameType[a] || a
-                            }
-                        } else return '--'
-                    }
+                    default: 3,
+                    render: (a: string) => (<span>{gameClassifyEnum[a]}</span>)
                 },
-                { title: '当天充值金额', dataIndex: 'todayAmount', label: '游戏充值排行榜', align: 'center', width: 90, default: 5, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
-                { title: '当天买量充值金额', dataIndex: 'todayBuyAmount', label: '游戏充值排行榜', align: 'center', width: 90, default: 6, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
-                { title: '当天自然量充值金额', dataIndex: 'todayNatureAmount', label: '游戏充值排行榜', align: 'center', width: 90, default: 7, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
-                { title: '累计充值金额', dataIndex: 'totalAmount', label: '游戏充值排行榜', align: 'center', width: 100, default: 8, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
-                { title: '累计买量充值金额', dataIndex: 'totalBuyAmount', label: '游戏充值排行榜', align: 'center', width: 90, default: 9, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
-                { title: '累计自然量充值金额', dataIndex: 'totalNatureAmount', label: '游戏充值排行榜', align: 'center', width: 85, default: 10, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
-                { title: '平均客单价', dataIndex: 'avgAmount', label: '游戏充值排行榜', align: 'center', width: 70, default: 11, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
-                { title: '注册人数', dataIndex: 'regUserCount', label: '游戏充值排行榜', align: 'center', width: 70, default: 12, sorter: true, },
-                { title: '累计充值人数', dataIndex: 'totalRechargeUserCount', label: '游戏充值排行榜', align: 'center', width: 70, default: 13, sorter: true, },
-                { title: '累计充值次数', dataIndex: 'totalRechargeCount', label: '游戏充值排行榜', align: 'center', width: 70, default: 14, sorter: true, },
-                { title: '累计消耗', dataIndex: 'totalCost', label: '游戏充值排行榜', align: 'center', width: 100, default: 15, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
-                { title: '回本率', dataIndex: 'totalRoi', label: '游戏充值排行榜', align: 'center', width: 70, default: 16, sorter: true, render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" /> }
+                { title: '当天充值金额', dataIndex: 'todayAmount', label: '游戏充值排行榜', align: 'center', width: 90, default: 4, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
+                { title: '当天买量充值金额', dataIndex: 'todayBuyAmount', label: '游戏充值排行榜', align: 'center', width: 90, default: 5, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
+                { title: '当天自然量充值金额', dataIndex: 'todayNatureAmount', label: '游戏充值排行榜', align: 'center', width: 90, default: 6, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
+                { title: '累计充值金额', dataIndex: 'totalAmount', label: '游戏充值排行榜', align: 'center', width: 100, default: 7, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
+                { title: '累计买量充值金额', dataIndex: 'totalBuyAmount', label: '游戏充值排行榜', align: 'center', width: 90, default: 8, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
+                { title: '累计自然量充值金额', dataIndex: 'totalNatureAmount', label: '游戏充值排行榜', align: 'center', width: 85, default: 9, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
+                { title: '平均客单价', dataIndex: 'avgAmount', label: '游戏充值排行榜', align: 'center', width: 70, default: 10, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
+                { title: '注册人数', dataIndex: 'regUserCount', label: '游戏充值排行榜', align: 'center', width: 70, default: 11, sorter: true, },
+                { title: '累计充值人数', dataIndex: 'totalRechargeUserCount', label: '游戏充值排行榜', align: 'center', width: 70, default: 12, sorter: true, },
+                { title: '累计充值次数', dataIndex: 'totalRechargeCount', label: '游戏充值排行榜', align: 'center', width: 70, default: 13, sorter: true, },
+                { title: '累计消耗', dataIndex: 'totalCost', label: '游戏充值排行榜', align: 'center', width: 100, default: 14, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
+                { title: '回本率', dataIndex: 'totalRoi', label: '游戏充值排行榜', align: 'center', width: 70, default: 15, sorter: true, render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" /> }
             ]
         },
     ]

+ 5 - 4
src/pages/gameDataStatistics/rankingList/gamer/index.tsx

@@ -10,7 +10,7 @@ import { rangePresets } from "@/components/QueryForm/const"
 const Gamer: React.FC = () => {
 
     /************************/
-    const [queryForm, setQueryForm] = useState<UserRechargeListType>({ pageNum: 1, pageSize: 20 })
+    const [queryForm, setQueryForm] = useState<UserRechargeListType>({ pageNum: 1, pageSize: 20, sourceSystem: 'ZX_ONE' })
     const getRechargeUserList = useAjax((params) => getRechargeUserListApi(params))
     /************************/
 
@@ -22,14 +22,15 @@ const Gamer: React.FC = () => {
 
         <TableData
             leftChild={<QueryForm
+                initialValues={{ sourceSystem: 'ZX_ONE' }}
                 onChange={(data: any) => {
                     console.log(data)
-                    const { rechargeDay, beginDay, endDay } = data
+                    const { rechargeDay, beginDay, endDay, ...par } = data
                     let newQueryForm = JSON.parse(JSON.stringify(queryForm))
                     newQueryForm.pageNum = 1
                     if (rechargeDay && rechargeDay?.length === 2) {
                         newQueryForm['beginDay'] = moment(rechargeDay[0]).format('YYYY-MM-DD')
-                        newQueryForm['endDay'] = moment(rechargeDay[0]).format('YYYY-MM-DD')
+                        newQueryForm['endDay'] = moment(rechargeDay[1]).format('YYYY-MM-DD')
                     } else {
                         if (beginDay && endDay) {
                             newQueryForm['beginDay'] = beginDay
@@ -39,7 +40,7 @@ const Gamer: React.FC = () => {
                             delete newQueryForm['endDay']
                         }
                     }
-                    setQueryForm(newQueryForm)
+                    setQueryForm({ ...newQueryForm, ...par })
                 }}
                 isSource
                 rechargeDay={{ ranges: rangePresets }}

+ 14 - 15
src/pages/gameDataStatistics/rankingList/gamer/tableConfig.tsx

@@ -8,22 +8,21 @@ function columns12() {
         {
             label: '玩家充值排行榜',
             data: [
-                { title: 'ID', dataIndex: 'id', label: '玩家充值排行榜', align: 'center', width: 75, default: 1 },
-                { title: '玩家ID', dataIndex: 'playerId', label: '玩家充值排行榜', align: 'center', width: 70, default: 2 },
-                { title: '玩家账号', dataIndex: 'playerAccountId', label: '玩家充值排行榜', align: 'center', width: 120, default: 3, render: (a: string, b: any) => (<WidthEllipsis isCopy value={a} />) },
-                { title: '注册渠道', dataIndex: 'regAgentId', label: '玩家充值排行榜', align: 'center', width: 80, default: 4 },
-                { title: '注册时间', dataIndex: 'regUserTime', label: '玩家充值排行榜', align: 'center', width: 140, default: 5, render: (a: string, b: any) => (<WidthEllipsis value={a} />) },
-                { title: '注册游戏', dataIndex: 'regGameName', label: '玩家充值排行榜', align: 'center', width: 70, default: 6, render: (a: string, b: any) => (<WidthEllipsis value={a} />) },
-                { title: '玩家操作系统', dataIndex: 'playerOs', label: '玩家充值排行榜', align: 'center', width: 70, default: 7 },
-                { title: '当天充值金额', dataIndex: 'todayTotalAmount', label: '玩家充值排行榜', align: 'center', width: 70, default: 8, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
-                { title: '首充金额', dataIndex: 'firstAmount', label: '玩家充值排行榜', align: 'center', width: 70, default: 9, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
-                { title: '最近充值金额', dataIndex: 'lastAmount', label: '玩家充值排行榜', align: 'center', width: 70, default: 10, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
-                { title: '累计充值金额', dataIndex: 'totalAmount', label: '玩家充值排行榜', align: 'center', width: 100, default: 11, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
-                { title: '平均单价', dataIndex: 'avgAmount', label: '玩家充值排行榜', align: 'center', width: 70, default: 12, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
-                { title: '累计充值次数', dataIndex: 'totalAmountCount', label: '玩家充值排行榜', align: 'center', width: 70, default: 13, sorter: true },
+                { title: '玩家ID', dataIndex: 'playerId', label: '玩家充值排行榜', align: 'center', width: 70, default: 1 },
+                { title: '玩家账号', dataIndex: 'playerAccountId', label: '玩家充值排行榜', align: 'center', width: 120, default: 2, render: (a: string, b: any) => (<WidthEllipsis isCopy value={a} />) },
+                { title: '注册渠道', dataIndex: 'regAgentId', label: '玩家充值排行榜', align: 'center', width: 80, default: 3 },
+                { title: '注册时间', dataIndex: 'regUserTime', label: '玩家充值排行榜', align: 'center', width: 140, default: 4, render: (a: string, b: any) => (<WidthEllipsis value={a} />) },
+                { title: '注册游戏', dataIndex: 'regGameName', label: '玩家充值排行榜', align: 'center', width: 70, default: 5, render: (a: string, b: any) => (<WidthEllipsis value={a} />) },
+                { title: '玩家操作系统', dataIndex: 'playerOs', label: '玩家充值排行榜', align: 'center', width: 70, default: 6 },
+                { title: '当天充值金额', dataIndex: 'todayTotalAmount', label: '玩家充值排行榜', align: 'center', width: 70, default: 7, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
+                { title: '首充金额', dataIndex: 'firstAmount', label: '玩家充值排行榜', align: 'center', width: 70, default: 8, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
+                { title: '最近充值金额', dataIndex: 'lastAmount', label: '玩家充值排行榜', align: 'center', width: 70, default: 9, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
+                { title: '累计充值金额', dataIndex: 'totalAmount', label: '玩家充值排行榜', align: 'center', width: 100, default: 10, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
+                { title: '平均单价', dataIndex: 'avgAmount', label: '玩家充值排行榜', align: 'center', width: 70, default: 11, sorter: true, render: (a: string) => <Statistic value={a || 0} /> },
+                { title: '累计充值次数', dataIndex: 'totalAmountCount', label: '玩家充值排行榜', align: 'center', width: 70, default: 12, sorter: true },
                 // { title: '玩家等级标签', dataIndex: '13', label: '玩家充值排行榜', align: 'center', width: 70, default: 14 },
-                { title: '最近充值游戏', dataIndex: 'lastAmountGameName', label: '玩家充值排行榜', align: 'center', width: 70, default: 14, render: (a: string, b: any) => (<WidthEllipsis value={a} />) },
-                { title: '最近充值时间', dataIndex: 'lastAmountTime', label: '玩家充值排行榜', align: 'center', width: 140, default: 15, render: (a: string, b: any) => (<WidthEllipsis value={a} />) }
+                { title: '最近充值游戏', dataIndex: 'lastAmountGameName', label: '玩家充值排行榜', align: 'center', width: 70, default: 13, render: (a: string, b: any) => (<WidthEllipsis value={a} />) },
+                { title: '最近充值时间', dataIndex: 'lastAmountTime', label: '玩家充值排行榜', align: 'center', width: 140, default: 14, render: (a: string, b: any) => (<WidthEllipsis value={a} />) }
             ]
         },
     ]

+ 1 - 0
src/services/gameData/allSurvey.ts

@@ -9,6 +9,7 @@ export interface AllSurveyTotalDataProps {
     endDate?: string,    // 结束时间
     gameId?: number,     // 游戏ID
     pitcherId?: number   // 投手
+    sourceSystem?: string
 }
 /**
  * 获取整体概况数据

+ 19 - 0
src/services/gameData/extensionData.ts

@@ -76,4 +76,23 @@ export async function getPromoteTotalListApi(data: EverydayListType) {
         method: 'POST',
         data
     });
+}
+
+export interface PromoteAgainProps {
+    accountId: number,
+    agentId?: number,
+    beginDate?: string,
+    endDate?: string,
+    sourceSystem?: string
+}
+/**
+ * 推广渠道每日复充数据q
+ * @param data 
+ * @returns 
+ */
+export async function getPromoteAgainListApi(data: PromoteAgainProps) {
+    return request(wapi + `/promote/again`, {
+        method: 'POST',
+        data
+    });
 }

+ 37 - 0
src/services/gameData/game.ts

@@ -53,4 +53,41 @@ export async function getGameDayListApi(data: GameDayProps) {
         method: 'POST',
         data
     });
+}
+
+export interface GameH5Props extends Paging, SortProps {
+    // 注册开始时间
+    costBeginDate?: string,
+    costEndDate?: string,
+    gameName?: string,
+    // 充值开始时间
+    rechargeBeginDate?: string,
+    rechargeEndDate?: string
+}
+
+export async function getGameH5ListApi(data: GameH5Props) {
+    return request(wapi + `/gameData/h5`, {
+        method: 'POST',
+        data
+    });
+}
+
+
+export interface GameAgainProps {
+    gameId: number,
+    gameName: string,
+    beginDate?: string,
+    endDate?: string,
+    sourceSystem?: string
+}
+/**
+ * 推广渠道每日复充数据q
+ * @param data 
+ * @returns 
+ */
+export async function getGameDataAgainListApi(data: GameAgainProps) {
+    return request(wapi + `/gameData/again`, {
+        method: 'POST',
+        data
+    });
 }

+ 2 - 1
src/services/gameData/rankingList.ts

@@ -9,7 +9,8 @@ let wapi = api + '/gameData'
  */
 export interface Paging {
     pageNum: number,
-    pageSize: number
+    pageSize: number,
+    sourceSystem?: string
 }