wjx 1 year ago
parent
commit
7d0ce66835

+ 78 - 14
src/pages/gameDataStatistics/adlist/tencentMonitor/tableConfig.tsx

@@ -220,39 +220,107 @@ function columns12(dayHandle: (data: any) => void): { label: string, fieldSHow?:
                     render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
                 },
                 {
-                    title: '注册人数(广告)', dataIndex: 'active', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 70, sorter: true, default: 17,
+                    title: '小游戏注册人数', dataIndex: 'miniGameRegisterUsers', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 80, sorter: true, default: 17,
                     render: (a: any) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '注册成本(广告)', dataIndex: 'activeCost', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 70, sorter: true, default: 18,
+                    title: '小游戏注册成本', dataIndex: 'miniGameRegisterCost', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 80, sorter: true, default: 18,
                     render: (a: any) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '首日转化数(广告)', dataIndex: 'firstConvertCount', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 70, sorter: true, default: 19,
+                    title: '小游戏注册率', dataIndex: 'miniGameRegisterRate', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 80, sorter: true, default: 19,
+                    render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+                {
+                    title: '小游戏付费次数', dataIndex: 'miniGamePayingCount', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 80, sorter: true, default: 20,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '小游戏付费金额', dataIndex: 'miniGamePayingAmount', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true, default: 21,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '小游戏首日付费人数', dataIndex: 'miniGamePayingUsersD1', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true, default: 22,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '小游戏首日付费金额', dataIndex: 'miniGamePayingAmountD1', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true, default: 23,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '小游戏3日付费金额', dataIndex: 'miniGamePayingAmountD3', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true, default: 24,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '小游戏7日付费金额', dataIndex: 'miniGamePayingAmountD7', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '小游戏14日付费金额', dataIndex: 'miniGamePayingAmountD14', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '小游戏30日付费金额', dataIndex: 'miniGamePayingAmountD30', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '小游戏首次付费人数', dataIndex: 'miniGameFirstPayingUsers', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true,
                     render: (a: any) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '首日转化成本(广告)', dataIndex: 'firstConvertCost', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 70, sorter: true, default: 20,
+                    title: '小游戏首日付费ROI', dataIndex: 'miniGameFirstDayPayingRoi', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true,
+                    render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+                {
+                    title: '小游戏付费ROI', dataIndex: 'miniGamePayingRoi', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 80, sorter: true,
+                    render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+                {
+                    title: '小游戏付费ARPU', dataIndex: 'miniGamePayingArpu', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true,
                     render: (a: any) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '首次付费率(广告)', dataIndex: 'firstActivePayRate', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 70, sorter: true, default: 21,
+                    title: '小游戏3日付费ROI', dataIndex: 'miniGamePayD3Roi', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true,
+                    render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+                {
+                    title: '小游戏7日付费ROI', dataIndex: 'miniGamePayD7Roi', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true,
                     render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
                 },
                 {
-                    title: '首日付费金额(广告)', dataIndex: 'firstAttributionGameInAppLtv1day', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 70, sorter: true, default: 22,
+                    title: '小游戏14日付费ROI', dataIndex: 'miniGamePayD14Roi', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true,
+                    render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+                {
+                    title: '小游戏30日付费ROI', dataIndex: 'miniGamePayD30Roi', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true,
+                    render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+                {
+                    title: '小游戏首日付费次数', dataIndex: 'minigame1dPayCount', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '小游戏首24小时付费人数', dataIndex: 'minigame24hPayUv', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '小游戏首24小时付费金额', dataIndex: 'minigame24hPayAmount', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true,
                     render: (a: any) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '首日付费ROI(广告)', dataIndex: 'firstAttributionGameInAppRoi1day', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true, default: 23,
+                    title: '小游戏首24小时付费ROI', dataIndex: 'minigame24hPayRoi', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true,
                     render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
                 },
                 {
-                    title: '付费次数(广告)', dataIndex: 'gamePayCount', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 70, sorter: true, default: 24,
+                    title: '小游戏首24小时付费ARPU', dataIndex: 'minigame24hPayArpu', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true,
                     render: (a: any) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '付费次数成本(广告)', dataIndex: 'gamePayCountCost', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 80, sorter: true,
+                    title: 'ltv1(实际数据) ', dataIndex: 'ltvDay1ActualData', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 70, sorter: true,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: 'ltv1(广告)', dataIndex: 'ltvDay1', label: '广告媒体端数据', align: 'center', width: 60, sorter: true, className: 'adDataBackColorClass',
                     render: (a: any) => <Statistic value={a || 0} />
                 }
             ]
@@ -489,11 +557,7 @@ function columns12(dayHandle: (data: any) => void): { label: string, fieldSHow?:
                     render: (a: any) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '至今客单价', dataIndex: 'newUserTotalAvgPrice', label: '付费数据', align: 'center', width: 60, sorter: true, className: 'payDataBackColorClass',
-                    render: (a: any) => <Statistic value={a || 0} />
-                },
-                {
-                    title: 'ltv1', dataIndex: 'ltvDay1', label: '付费数据', align: 'center', width: 60, sorter: true, default: 38, className: 'payDataBackColorClass',
+                    title: '至今客单价', dataIndex: 'newUserTotalAvgPrice', label: '付费数据', align: 'center', width: 60, default: 38, sorter: true, className: 'payDataBackColorClass',
                     render: (a: any) => <Statistic value={a || 0} />
                 },
                 {

+ 79 - 15
src/pages/gameDataStatistics/adlist/tencentMonitor/tableConfigDay.tsx

@@ -229,41 +229,109 @@ function columns12(): { label: string, fieldSHow?: { label: string, saveField: s
                     render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
                 },
                 {
-                    title: '注册人数(广告)', dataIndex: 'active', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 70, sorter: true, default: 18,
+                    title: '小游戏注册人数', dataIndex: 'miniGameRegisterUsers', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 80, sorter: true, default: 18,
                     render: (a: any) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '注册成本(广告)', dataIndex: 'activeCost', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 70, sorter: true, default: 19,
+                    title: '小游戏注册成本', dataIndex: 'miniGameRegisterCost', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 80, sorter: true, default: 19,
                     render: (a: any) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '首日转化数(广告)', dataIndex: 'firstConvertCount', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 70, sorter: true, default: 20,
+                    title: '小游戏注册率', dataIndex: 'miniGameRegisterRate', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 80, sorter: true, default: 20,
+                    render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+                {
+                    title: '小游戏付费次数', dataIndex: 'miniGamePayingCount', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 80, sorter: true, default: 21,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '小游戏付费金额', dataIndex: 'miniGamePayingAmount', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true, default: 22,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '小游戏首日付费人数', dataIndex: 'miniGamePayingUsersD1', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true, default: 23,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '小游戏首日付费金额', dataIndex: 'miniGamePayingAmountD1', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true, default: 24,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '小游戏3日付费金额', dataIndex: 'miniGamePayingAmountD3', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true, default: 25,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '小游戏7日付费金额', dataIndex: 'miniGamePayingAmountD7', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '小游戏14日付费金额', dataIndex: 'miniGamePayingAmountD14', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true,
                     render: (a: any) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '首日转化成本(广告)', dataIndex: 'firstConvertCost', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 70, sorter: true, default: 21,
+                    title: '小游戏30日付费金额', dataIndex: 'miniGamePayingAmountD30', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '小游戏首次付费人数', dataIndex: 'miniGameFirstPayingUsers', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '小游戏首日付费ROI', dataIndex: 'miniGameFirstDayPayingRoi', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true,
+                    render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+                {
+                    title: '小游戏付费ROI', dataIndex: 'miniGamePayingRoi', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 80, sorter: true,
+                    render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+                {
+                    title: '小游戏付费ARPU', dataIndex: 'miniGamePayingArpu', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true,
                     render: (a: any) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '首次付费率(广告)', dataIndex: 'firstActivePayRate', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true, default: 22,
+                    title: '小游戏3日付费ROI', dataIndex: 'miniGamePayD3Roi', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true,
+                    render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+                {
+                    title: '小游戏7日付费ROI', dataIndex: 'miniGamePayD7Roi', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true,
+                    render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+                {
+                    title: '小游戏14日付费ROI', dataIndex: 'miniGamePayD14Roi', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true,
+                    render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
+                },
+                {
+                    title: '小游戏30日付费ROI', dataIndex: 'miniGamePayD30Roi', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true,
                     render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
                 },
                 {
-                    title: '首日付费金额(广告)', dataIndex: 'firstAttributionGameInAppLtv1day', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 70, sorter: true, default: 23,
+                    title: '小游戏首日付费次数', dataIndex: 'minigame1dPayCount', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true,
                     render: (a: any) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '首日付费ROI(广告)', dataIndex: 'firstAttributionGameInAppRoi1day', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true, default: 24,
+                    title: '小游戏首24小时付费人数', dataIndex: 'minigame24hPayUv', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '小游戏首24小时付费金额', dataIndex: 'minigame24hPayAmount', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true,
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
+                {
+                    title: '小游戏首24小时付费ROI', dataIndex: 'minigame24hPayRoi', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true,
                     render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 1 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
                 },
                 {
-                    title: '付费次数(广告)', dataIndex: 'gamePayCount', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 70, sorter: true, default: 25,
+                    title: '小游戏首24小时付费ARPU', dataIndex: 'minigame24hPayArpu', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 85, sorter: true,
                     render: (a: any) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '付费次数成本(广告)', dataIndex: 'gamePayCountCost', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 80, sorter: true,
+                    title: 'ltv1(实际数据) ', dataIndex: 'ltvDay1ActualData', label: '广告媒体端数据', align: 'center', className: "adDataBackColorClass", width: 70, sorter: true,
                     render: (a: any) => <Statistic value={a || 0} />
-                }
+                },
+                {
+                    title: 'ltv1(广告)', dataIndex: 'ltvDay1', label: '广告媒体端数据', align: 'center', width: 60, sorter: true, className: 'adDataBackColorClass',
+                    render: (a: any) => <Statistic value={a || 0} />
+                },
             ]
         },
         {
@@ -498,11 +566,7 @@ function columns12(): { label: string, fieldSHow?: { label: string, saveField: s
                     render: (a: any) => <Statistic value={a || 0} />
                 },
                 {
-                    title: '至今客单价', dataIndex: 'newUserTotalAvgPrice', label: '付费数据', align: 'center', width: 60, sorter: true, className: 'payDataBackColorClass',
-                    render: (a: any) => <Statistic value={a || 0} />
-                },
-                {
-                    title: 'ltv1', dataIndex: 'ltvDay1', label: '付费数据', align: 'center', width: 60, sorter: true, default: 39, className: 'payDataBackColorClass',
+                    title: '至今客单价', dataIndex: 'newUserTotalAvgPrice', label: '付费数据', align: 'center', width: 60, sorter: true, default: 39, className: 'payDataBackColorClass',
                     render: (a: any) => <Statistic value={a || 0} />
                 },
                 {

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

@@ -87,7 +87,7 @@ const Everyday: React.FC = () => {
             totalData={totalData}
             scroll={{ x: 1000, y: 600 }}
             ajax={getGameDayList}
-            fixed={{ left: 3, right: 1 }}
+            fixed={{ left: 3, right: 2 }}
             dataSource={getGameDayList?.data?.records?.map((item: any, index: number) => ({ ...item, id: Number(queryForm.pageNum.toString() + index.toString()) }))}
             total={getGameDayList?.data?.total}
             page={queryForm.pageNum}

+ 147 - 492
src/pages/gameDataStatistics/gameData/everyday/tableConfig.tsx

@@ -26,7 +26,7 @@ function columnsNature12(rechargeTrendHandle: (data: any) => void): { label: str
     }
 
     // 买量付费趋势
-    const buyC = Array(29).fill('').map((_item: string, index: number) => {
+    const buyC = Array(90).fill('').map((_item: string, index: number) => {
         let field = `buyAmountD${index + 1}Trend`
         let data = {
             title: `D${index + 1}(买)`,
@@ -71,9 +71,54 @@ function columnsNature12(rechargeTrendHandle: (data: any) => void): { label: str
         }
         return data
     })
+    const buyM = [4, 5, 6, 7, 8, 9, 10, 11, 12].map((index, num) => {
+        let field = `buyAmountM${index}Trend`
+        let data = {
+            title: `M${index}(买)`,
+            dataIndex: `M${index}Buy`,
+            label: "买量付费趋势",
+            align: "center",
+            width: 110,
+            render: (a: any, b: any) => {
+                let date1 = moment()
+                if (b?.costDate === '总计') {
+                    if (b?.beginDay) {
+                        date1 = moment(b?.beginDay)
+                    } else {
+                        date1 = moment()
+                    }
+                } else {
+                    date1 = moment(b.costDate)
+                }
+                let dt = moment()
+                let day = dt.diff(date1, 'day');
+                let fieldData = getFieldDta()
+                if (fieldData?.length > 0 && index * 30 <= day) {
+                    let data: any = {}
+                    let keyS: string[] = fieldData?.map((item: any) => item.key)
+                    switch (fieldData[0].type) {
+                        case '付费趋势':
+                            if (b?.[field]) {
+                                data = b?.[field]
+                                return <div className={style.dbox}>
+                                    {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
+                                    {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
+                                    {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
+                                    {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
+                                    {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
+                                </div>
+                            }
+                            return '--'
+                    }
+                }
+                return '--'
+            },
+        }
+        return data
+    })
 
     // 自然量
-    const natureC = Array(29).fill('').map((_item: string, index: number) => {
+    const natureC = Array(90).fill('').map((_item: string, index: number) => {
         let field = `natureAmountD${index + 1}Trend`
         let data = {
             title: `D${index + 1}(自)`,
@@ -119,10 +164,55 @@ function columnsNature12(rechargeTrendHandle: (data: any) => void): { label: str
 
         return data
     })
+    const natureM = [4, 5, 6, 7, 8, 9, 10, 11, 12].map((index, num) => {
+        let field = `natureAmountM${index}Trend`
+        let data = {
+            title: `M${index}(自)`,
+            dataIndex: `M${index}Nature`,
+            label: "自然量付费趋势",
+            align: "center",
+            width: 110,
+            render: (a: any, b: any) => {
+                let date1 = moment()
+                if (b?.costDate === '总计') {
+                    if (b?.beginDay) {
+                        date1 = moment(b?.beginDay)
+                    } else {
+                        date1 = moment()
+                    }
+                } else {
+                    date1 = moment(b.costDate)
+                }
+                let dt = moment()
+                let day = dt.diff(date1, 'day');
+                let fieldData = getFieldDta()
+                if (fieldData?.length > 0 && index * 30 <= day) {
+                    let data: any = {}
+                    let keyS: string[] = fieldData?.map((item: any) => item.key)
+                    switch (fieldData[0].type) {
+                        case '付费趋势':
+                            if (b?.[field]) {
+                                data = b?.[field]
+                                return <div className={style.dbox}>
+                                    {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
+                                    {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
+                                    {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
+                                    {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
+                                    {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
+                                </div>
+                            }
+                            return '--'
+                    }
+                }
+                return '--'
+            },
+        }
+        return data
+    })
 
     let defaultStart = 14
     // 总付费趋势
-    const zC = Array(29).fill('').map((_item: string, index: number) => {
+    const zC = Array(90).fill('').map((_item: string, index: number) => {
         let field = `amountD${index + 1}Trend`
         let data = {
             title: `D${index + 1}(总)`,
@@ -165,9 +255,53 @@ function columnsNature12(rechargeTrendHandle: (data: any) => void): { label: str
                 return '--'
             },
         }
-        if (index < 29) {
-            data['default'] = defaultStart + index
+        data['default'] = defaultStart + index
+        return data
+    })
+    const zM = [4, 5, 6, 7, 8, 9, 10, 11, 12].map((index, num) => {
+        let field = `amountM${index}Trend`
+        let data = {
+            title: `M${index}(总)`,
+            dataIndex: `M${index}`,
+            label: "总付费趋势",
+            align: "center",
+            width: 110,
+            render: (a: any, b: any) => {
+                let date1 = moment()
+                if (b?.costDate === '总计') {
+                    if (b?.beginDay) {
+                        date1 = moment(b?.beginDay)
+                    } else {
+                        date1 = moment()
+                    }
+                } else {
+                    date1 = moment(b.costDate)
+                }
+                let dt = moment()
+                let day = dt.diff(date1, 'day');
+                let fieldData = getFieldDta()
+                if (fieldData?.length > 0 && index * 30 <= day) {
+                    let data: any = {}
+                    let keyS: string[] = fieldData?.map((item: any) => item.key)
+                    switch (fieldData[0].type) {
+                        case '付费趋势':
+                            if (b?.[field]) {
+                                data = b?.[field]
+                                return <div className={style.dbox}>
+                                    {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
+                                    {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
+                                    {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
+                                    {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
+                                    {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
+                                </div>
+                            }
+                            return '--'
+                    }
+                }
+                return '--'
+            },
         }
+        data['default'] = defaultStart + 90 + num
         return data
     })
 
@@ -651,169 +785,9 @@ function columnsNature12(rechargeTrendHandle: (data: any) => void): { label: str
             },
             label: '买量付费趋势',
             data: [
-                ...buyC
-                ,
+                ...buyC,
+                ...buyM,
                 {
-                    title: "D30(买)",
-                    dataIndex: "D30Buy",
-                    label: "买量付费趋势",
-                    align: "center",
-                    width: 110,
-                    render: (a: any, b: any) => {
-                        let date1 = moment()
-                        if (b?.costDate === '总计') {
-                            if (b?.beginDay) {
-                                date1 = moment(b?.beginDay)
-                            } else {
-                                date1 = moment()
-                            }
-                        } else {
-                            date1 = moment(b.costDate)
-                        }
-                        let dt = moment()
-                        let day = dt.diff(date1, 'day');
-                        let fieldData = getFieldDta()
-                        if (fieldData?.length > 0 && 30 <= day) {
-                            let data: any = {}
-                            let keyS: string[] = fieldData?.map((item: any) => item.key)
-                            switch (fieldData[0].type) {
-                                case '付费趋势':
-                                    if (b?.buyAmountM1Trend) {
-                                        data = b?.buyAmountM1Trend
-                                        return <div className={style.dbox}>
-                                            {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
-                                            {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
-                                            {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
-                                        </div>
-                                    }
-                                    return '--'
-                            }
-                        }
-                        return '--'
-                    },
-                }, {
-                    title: "M2(买)",
-                    dataIndex: "M2Buy",
-                    label: "买量付费趋势",
-                    align: "center",
-                    width: 110,
-                    render: (a: any, b: any) => {
-                        let date1 = moment()
-                        if (b?.costDate === '总计') {
-                            if (b?.beginDay) {
-                                date1 = moment(b?.beginDay)
-                            } else {
-                                date1 = moment()
-                            }
-                        } else {
-                            date1 = moment(b.costDate)
-                        }
-                        let dt = moment()
-                        let day = dt.diff(date1, 'day');
-                        let fieldData = getFieldDta()
-                        if (fieldData?.length > 0 && 60 <= day) {
-                            let data: any = {}
-                            let keyS: string[] = fieldData?.map((item: any) => item.key)
-                            switch (fieldData[0].type) {
-                                case '付费趋势':
-                                    if (b?.buyAmountM2Trend) {
-                                        data = b?.buyAmountM2Trend
-                                        return <div className={style.dbox}>
-                                            {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
-                                            {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
-                                            {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
-                                        </div>
-                                    }
-                                    return '--'
-                            }
-                        }
-                        return '--'
-                    },
-                }, {
-                    title: "M3(买)",
-                    dataIndex: "M3Buy",
-                    label: "买量付费趋势",
-                    align: "center",
-                    width: 110,
-                    render: (a: any, b: any) => {
-                        let date1 = moment()
-                        if (b?.costDate === '总计') {
-                            if (b?.beginDay) {
-                                date1 = moment(b?.beginDay)
-                            } else {
-                                date1 = moment()
-                            }
-                        } else {
-                            date1 = moment(b.costDate)
-                        }
-                        let dt = moment()
-                        let day = dt.diff(date1, 'day');
-                        let fieldData = getFieldDta()
-                        if (fieldData?.length > 0 && 90 <= day) {
-                            let data: any = {}
-                            let keyS: string[] = fieldData?.map((item: any) => item.key)
-                            switch (fieldData[0].type) {
-                                case '付费趋势':
-                                    if (b?.buyAmountM3Trend) {
-                                        data = b?.buyAmountM3Trend
-                                        return <div className={style.dbox}>
-                                            {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
-                                            {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
-                                            {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
-                                        </div>
-                                    }
-                                    return '--'
-                            }
-                        }
-                        return '--'
-                    },
-                }, {
-                    title: "M6(买)",
-                    dataIndex: "M6Buy",
-                    label: "买量付费趋势",
-                    align: "center",
-                    width: 110,
-                    render: (a: any, b: any) => {
-                        let date1 = moment()
-                        if (b?.costDate === '总计') {
-                            if (b?.beginDay) {
-                                date1 = moment(b?.beginDay)
-                            } else {
-                                date1 = moment()
-                            }
-                        } else {
-                            date1 = moment(b.costDate)
-                        }
-                        let dt = moment()
-                        let day = dt.diff(date1, 'day');
-                        let fieldData = getFieldDta()
-                        if (fieldData?.length > 0 && 180 <= day) {
-                            let data: any = {}
-                            let keyS: string[] = fieldData?.map((item: any) => item.key)
-                            switch (fieldData[0].type) {
-                                case '付费趋势':
-                                    if (b?.buyAmountM6Trend) {
-                                        data = b?.buyAmountM6Trend
-                                        return <div className={style.dbox}>
-                                            {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
-                                            {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
-                                            {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
-                                        </div>
-                                    }
-                                    return '--'
-                            }
-                        }
-                        return '--'
-                    },
-                }, {
                     title: "总(买)",
                     dataIndex: "totalBuy",
                     label: "买量付费趋势",
@@ -847,168 +821,8 @@ function columnsNature12(rechargeTrendHandle: (data: any) => void): { label: str
             label: '自然量付费趋势',
             data: [
                 ...natureC,
+                ...natureM,
                 {
-                    title: "D30(自)",
-                    dataIndex: "D30Nature",
-                    label: "自然量付费趋势",
-                    align: "center",
-                    default: 43,
-                    width: 110,
-                    render: (a: any, b: any) => {
-                        let date1 = moment()
-                        if (b?.costDate === '总计') {
-                            if (b?.beginDay) {
-                                date1 = moment(b?.beginDay)
-                            } else {
-                                date1 = moment()
-                            }
-                        } else {
-                            date1 = moment(b.costDate)
-                        }
-                        let dt = moment()
-                        let day = dt.diff(date1, 'day');
-                        let fieldData = getFieldDta()
-                        if (fieldData?.length > 0 && 30 <= day) {
-                            let data: any = {}
-                            let keyS: string[] = fieldData?.map((item: any) => item.key)
-                            switch (fieldData[0].type) {
-                                case '付费趋势':
-                                    if (b?.natureAmountM1Trend) {
-                                        data = b?.natureAmountM1Trend
-                                        return <div className={style.dbox}>
-                                            {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
-                                            {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
-                                            {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
-                                        </div>
-                                    }
-                                    return '--'
-                            }
-                        }
-                        return '--'
-                    },
-                }, {
-                    title: "M2(自)",
-                    dataIndex: "M2Nature",
-                    label: "自然量付费趋势",
-                    align: "center",
-                    width: 110,
-                    render: (a: any, b: any) => {
-                        let date1 = moment()
-                        if (b?.costDate === '总计') {
-                            if (b?.beginDay) {
-                                date1 = moment(b?.beginDay)
-                            } else {
-                                date1 = moment()
-                            }
-                        } else {
-                            date1 = moment(b.costDate)
-                        }
-                        let dt = moment()
-                        let day = dt.diff(date1, 'day');
-                        let fieldData = getFieldDta()
-                        if (fieldData?.length > 0 && 60 <= day) {
-                            let data: any = {}
-                            let keyS: string[] = fieldData?.map((item: any) => item.key)
-                            switch (fieldData[0].type) {
-                                case '付费趋势':
-                                    if (b?.natureAmountM2Trend) {
-                                        data = b?.natureAmountM2Trend
-                                        return <div className={style.dbox}>
-                                            {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
-                                            {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
-                                            {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
-                                        </div>
-                                    }
-                                    return '--'
-                            }
-                        }
-                        return '--'
-                    },
-                }, {
-                    title: "M3(自)",
-                    dataIndex: "M3Nature",
-                    label: "自然量付费趋势",
-                    align: "center",
-                    width: 110,
-                    render: (a: any, b: any) => {
-                        let date1 = moment()
-                        if (b?.costDate === '总计') {
-                            if (b?.beginDay) {
-                                date1 = moment(b?.beginDay)
-                            } else {
-                                date1 = moment()
-                            }
-                        } else {
-                            date1 = moment(b.costDate)
-                        }
-                        let dt = moment()
-                        let day = dt.diff(date1, 'day');
-                        let fieldData = getFieldDta()
-                        if (fieldData?.length > 0 && 90 <= day) {
-                            let data: any = {}
-                            let keyS: string[] = fieldData?.map((item: any) => item.key)
-                            switch (fieldData[0].type) {
-                                case '付费趋势':
-                                    if (b?.natureAmountM3Trend) {
-                                        data = b?.natureAmountM3Trend
-                                        return <div className={style.dbox}>
-                                            {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
-                                            {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
-                                            {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
-                                        </div>
-                                    }
-                                    return '--'
-                            }
-                        }
-                        return '--'
-                    },
-                }, {
-                    title: "M6(自)",
-                    dataIndex: "M6Nature",
-                    label: "自然量付费趋势",
-                    align: "center",
-                    width: 110,
-                    render: (a: any, b: any) => {
-                        let date1 = moment()
-                        if (b?.costDate === '总计') {
-                            if (b?.beginDay) {
-                                date1 = moment(b?.beginDay)
-                            } else {
-                                date1 = moment()
-                            }
-                        } else {
-                            date1 = moment(b.costDate)
-                        }
-                        let dt = moment()
-                        let day = dt.diff(date1, 'day');
-                        let fieldData = getFieldDta()
-                        if (fieldData?.length > 0 && 180 <= day) {
-                            let data: any = {}
-                            let keyS: string[] = fieldData?.map((item: any) => item.key)
-                            switch (fieldData[0].type) {
-                                case '付费趋势':
-                                    if (b?.natureAmountM6Trend) {
-                                        data = b?.natureAmountM6Trend
-                                        return <div className={style.dbox}>
-                                            {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
-                                            {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
-                                            {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
-                                        </div>
-                                    }
-                                    return '--'
-                            }
-                        }
-                        return '--'
-                    },
-                }, {
                     title: "总(自)",
                     dataIndex: "totalNature",
                     label: "自然量付费趋势",
@@ -1041,174 +855,15 @@ function columnsNature12(rechargeTrendHandle: (data: any) => void): { label: str
         {
             label: '总付费趋势',
             data: [
-                ...zC
-                , {
-                    title: "D30(总)",
-                    dataIndex: "D30",
-                    label: "总付费趋势",
-                    align: "center",
-                    width: 110,
-                    default: 43,
-                    render: (a: any, b: any) => {
-                        let date1 = moment()
-                        if (b?.costDate === '总计') {
-                            if (b?.beginDay) {
-                                date1 = moment(b?.beginDay)
-                            } else {
-                                date1 = moment()
-                            }
-                        } else {
-                            date1 = moment(b.costDate)
-                        }
-                        let dt = moment()
-                        let day = dt.diff(date1, 'day');
-                        let fieldData = getFieldDta()
-                        if (fieldData?.length > 0 && 30 <= day) {
-                            let data: any = {}
-                            let keyS: string[] = fieldData?.map((item: any) => item.key)
-                            switch (fieldData[0].type) {
-                                case '付费趋势':
-                                    if (b?.amountM1Trend) {
-                                        data = b?.amountM1Trend
-                                        return <div className={style.dbox}>
-                                            {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
-                                            {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
-                                            {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
-                                        </div>
-                                    }
-                                    return '--'
-                            }
-                        }
-                        return '--'
-                    },
-                }, {
-                    title: "M2(总)",
-                    dataIndex: "M2",
-                    label: "总付费趋势",
-                    align: "center",
-                    width: 110,
-                    render: (a: any, b: any) => {
-                        let date1 = moment()
-                        if (b?.costDate === '总计') {
-                            if (b?.beginDay) {
-                                date1 = moment(b?.beginDay)
-                            } else {
-                                date1 = moment()
-                            }
-                        } else {
-                            date1 = moment(b.costDate)
-                        }
-                        let dt = moment()
-                        let day = dt.diff(date1, 'day');
-                        let fieldData = getFieldDta()
-                        if (fieldData?.length > 0 && 60 <= day) {
-                            let data: any = {}
-                            let keyS: string[] = fieldData?.map((item: any) => item.key)
-                            switch (fieldData[0].type) {
-                                case '付费趋势':
-                                    if (b?.amountM2Trend) {
-                                        data = b?.amountM2Trend
-                                        return <div className={style.dbox}>
-                                            {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
-                                            {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
-                                            {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
-                                        </div>
-                                    }
-                                    return '--'
-                            }
-                        }
-                        return '--'
-                    },
-                }, {
-                    title: "M3(总)",
-                    dataIndex: "M3",
-                    label: "总付费趋势",
-                    align: "center",
-                    width: 110,
-                    render: (a: any, b: any) => {
-                        let date1 = moment()
-                        if (b?.costDate === '总计') {
-                            if (b?.beginDay) {
-                                date1 = moment(b?.beginDay)
-                            } else {
-                                date1 = moment()
-                            }
-                        } else {
-                            date1 = moment(b.costDate)
-                        }
-                        let dt = moment()
-                        let day = dt.diff(date1, 'day');
-                        let fieldData = getFieldDta()
-                        if (fieldData?.length > 0 && 90 <= day) {
-                            let data: any = {}
-                            let keyS: string[] = fieldData?.map((item: any) => item.key)
-                            switch (fieldData[0].type) {
-                                case '付费趋势':
-                                    if (b?.amountM3Trend) {
-                                        data = b?.amountM3Trend
-                                        return <div className={style.dbox}>
-                                            {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
-                                            {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
-                                            {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
-                                        </div>
-                                    }
-                                    return '--'
-                            }
-                        }
-                        return '--'
-                    },
-                }, {
-                    title: "M6(总)",
-                    dataIndex: "M6",
-                    label: "总付费趋势",
-                    align: "center",
-                    width: 110,
-                    render: (a: any, b: any) => {
-                        let date1 = moment()
-                        if (b?.costDate === '总计') {
-                            if (b?.beginDay) {
-                                date1 = moment(b?.beginDay)
-                            } else {
-                                date1 = moment()
-                            }
-                        } else {
-                            date1 = moment(b.costDate)
-                        }
-                        let dt = moment()
-                        let day = dt.diff(date1, 'day');
-                        let fieldData = getFieldDta()
-                        if (fieldData?.length > 0 && 180 <= day) {
-                            let data: any = {}
-                            let keyS: string[] = fieldData?.map((item: any) => item.key)
-                            switch (fieldData[0].type) {
-                                case '付费趋势':
-                                    if (b?.amountM6Trend) {
-                                        data = b?.amountM6Trend
-                                        return <div className={style.dbox}>
-                                            {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
-                                            {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
-                                            {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
-                                        </div>
-                                    }
-                                    return '--'
-                            }
-                        }
-                        return '--'
-                    },
-                }, {
+                ...zC,
+                ...zM, 
+                {
                     title: "总(总)",
                     dataIndex: "total",
                     label: "总付费趋势",
                     align: "center",
                     width: 110,
+                    default: 113,
                     render: (a: any, b: any) => {
                         let fieldData = getFieldDta()
                         if (fieldData?.length > 0) {
@@ -1240,7 +895,7 @@ function columnsNature12(rechargeTrendHandle: (data: any) => void): { label: str
                     title: '操作',
                     dataIndex: 'cz',
                     label: '操作',
-                    default: 44,
+                    default: 114,
                     align: 'center',
                     width: 75,
                     render: (a: number, b: any) => {

+ 152 - 492
src/pages/gameDataStatistics/gameData/everyday/tableConfigBuy.tsx

@@ -27,7 +27,7 @@ function columnsBuy12(rechargeTrendHandle: (data: any) => void): { label: string
 
     let buyDefaultStart = 14
     // 买量付费趋势
-    const buyC = Array(29).fill('').map((_item: string, index: number) => {
+    const buyC = Array(90).fill('').map((_item: string, index: number) => {
         let field = `buyAmountD${index + 1}Trend`
         let data = {
             title: `D${index + 1}(买)`,
@@ -71,14 +71,61 @@ function columnsBuy12(rechargeTrendHandle: (data: any) => void): { label: string
             },
         }
 
-        if (index < 29) {
-            data['default'] = buyDefaultStart + index
+        // if (index < 29) {
+        data['default'] = buyDefaultStart + index
+        // }
+        return data
+    })
+
+    const buyM = [4, 5, 6, 7, 8, 9, 10, 11, 12].map((index, num) => {
+        let field = `buyAmountM${index}Trend`
+        let data = {
+            title: `M${index}(买)`,
+            dataIndex: `M${index}Buy`,
+            label: "买量付费趋势",
+            align: "center",
+            width: 110,
+            render: (a: any, b: any) => {
+                let date1 = moment()
+                if (b?.costDate === '总计') {
+                    if (b?.beginDay) {
+                        date1 = moment(b?.beginDay)
+                    } else {
+                        date1 = moment()
+                    }
+                } else {
+                    date1 = moment(b.costDate)
+                }
+                let dt = moment()
+                let day = dt.diff(date1, 'day');
+                let fieldData = getFieldDta()
+                if (fieldData?.length > 0 && index * 30 <= day) {
+                    let data: any = {}
+                    let keyS: string[] = fieldData?.map((item: any) => item.key)
+                    switch (fieldData[0].type) {
+                        case '付费趋势':
+                            if (b?.[field]) {
+                                data = b?.[field]
+                                return <div className={style.dbox}>
+                                    {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
+                                    {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
+                                    {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
+                                    {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
+                                    {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
+                                </div>
+                            }
+                            return '--'
+                    }
+                }
+                return '--'
+            },
         }
+        data['default'] = buyDefaultStart + 90 + num
         return data
     })
 
     // 自然量
-    const natureC = Array(29).fill('').map((_item: string, index: number) => {
+    const natureC = Array(90).fill('').map((_item: string, index: number) => {
         let field = `natureAmountD${index + 1}Trend`
         let data = {
             title: `D${index + 1}(自)`,
@@ -123,9 +170,54 @@ function columnsBuy12(rechargeTrendHandle: (data: any) => void): { label: string
         }
         return data
     })
+    const natureM = [4, 5, 6, 7, 8, 9, 10, 11, 12].map((index, num) => {
+        let field = `natureAmountM${index}Trend`
+        let data = {
+            title: `M${index}(自)`,
+            dataIndex: `M${index}Nature`,
+            label: "自然量付费趋势",
+            align: "center",
+            width: 110,
+            render: (a: any, b: any) => {
+                let date1 = moment()
+                if (b?.costDate === '总计') {
+                    if (b?.beginDay) {
+                        date1 = moment(b?.beginDay)
+                    } else {
+                        date1 = moment()
+                    }
+                } else {
+                    date1 = moment(b.costDate)
+                }
+                let dt = moment()
+                let day = dt.diff(date1, 'day');
+                let fieldData = getFieldDta()
+                if (fieldData?.length > 0 && index * 30 <= day) {
+                    let data: any = {}
+                    let keyS: string[] = fieldData?.map((item: any) => item.key)
+                    switch (fieldData[0].type) {
+                        case '付费趋势':
+                            if (b?.[field]) {
+                                data = b?.[field]
+                                return <div className={style.dbox}>
+                                    {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
+                                    {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
+                                    {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
+                                    {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
+                                    {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
+                                </div>
+                            }
+                            return '--'
+                    }
+                }
+                return '--'
+            },
+        }
+        return data
+    })
 
     // 总付费趋势
-    const zC = Array(29).fill('').map((_item: string, index: number) => {
+    const zC = Array(90).fill('').map((_item: string, index: number) => {
         let field = `amountD${index + 1}Trend`
         let data = {
             title: `D${index + 1}(总)`,
@@ -171,6 +263,51 @@ function columnsBuy12(rechargeTrendHandle: (data: any) => void): { label: string
         return data
     })
 
+    const zM = [4, 5, 6, 7, 8, 9, 10, 11, 12].map((index, num) => {
+        let field = `amountM${index}Trend`
+        let data = {
+            title: `M${index}(总)`,
+            dataIndex: `M${index}`,
+            label: "总付费趋势",
+            align: "center",
+            width: 110,
+            render: (a: any, b: any) => {
+                let date1 = moment()
+                if (b?.costDate === '总计') {
+                    if (b?.beginDay) {
+                        date1 = moment(b?.beginDay)
+                    } else {
+                        date1 = moment()
+                    }
+                } else {
+                    date1 = moment(b.costDate)
+                }
+                let dt = moment()
+                let day = dt.diff(date1, 'day');
+                let fieldData = getFieldDta()
+                if (fieldData?.length > 0 && index * 30 <= day) {
+                    let data: any = {}
+                    let keyS: string[] = fieldData?.map((item: any) => item.key)
+                    switch (fieldData[0].type) {
+                        case '付费趋势':
+                            if (b?.[field]) {
+                                data = b?.[field]
+                                return <div className={style.dbox}>
+                                    {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
+                                    {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
+                                    {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
+                                    {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
+                                    {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
+                                </div>
+                            }
+                            return '--'
+                    }
+                }
+                return '--'
+            },
+        }
+        return data
+    })
 
 
     return [
@@ -656,175 +793,15 @@ function columnsBuy12(rechargeTrendHandle: (data: any) => void): { label: string
             },
             label: '买量付费趋势',
             data: [
-                ...buyC
-                ,
+                ...buyC,
+                ...buyM,
                 {
-                    title: "D30(买)",
-                    dataIndex: "D30Buy",
-                    label: "买量付费趋势",
-                    align: "center",
-                    default: 43,
-                    width: 110,
-                    render: (_: any, b: any) => {
-                        let date1 = moment()
-                        if (b?.costDate === '总计') {
-                            if (b?.beginDay) {
-                                date1 = moment(b?.beginDay)
-                            } else {
-                                date1 = moment()
-                            }
-                        } else {
-                            date1 = moment(b.costDate)
-                        }
-                        let dt = moment()
-                        let day = dt.diff(date1, 'day');
-                        let fieldData = getFieldDta()
-                        if (fieldData?.length > 0 && 30 <= day) {
-                            let data: any = {}
-                            let keyS: string[] = fieldData?.map((item: any) => item.key)
-                            switch (fieldData[0].type) {
-                                case '付费趋势':
-                                    if (b?.buyAmountM1Trend) {
-                                        data = b?.buyAmountM1Trend
-                                        return <div className={style.dbox}>
-                                            {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
-                                            {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
-                                            {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
-                                        </div>
-                                    }
-                                    return '--'
-                            }
-                        }
-                        return '--'
-                    },
-                }, {
-                    title: "M2(买)",
-                    dataIndex: "M2Buy",
-                    label: "买量付费趋势",
-                    align: "center",
-                    width: 110,
-                    render: (a: any, b: any) => {
-                        let date1 = moment()
-                        if (b?.costDate === '总计') {
-                            if (b?.beginDay) {
-                                date1 = moment(b?.beginDay)
-                            } else {
-                                date1 = moment()
-                            }
-                        } else {
-                            date1 = moment(b.costDate)
-                        }
-                        let dt = moment()
-                        let day = dt.diff(date1, 'day');
-                        let fieldData = getFieldDta()
-                        if (fieldData?.length > 0 && 60 <= day) {
-                            let data: any = {}
-                            let keyS: string[] = fieldData?.map((item: any) => item.key)
-                            switch (fieldData[0].type) {
-                                case '付费趋势':
-                                    if (b?.buyAmountM2Trend) {
-                                        data = b?.buyAmountM2Trend
-                                        return <div className={style.dbox}>
-                                            {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
-                                            {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
-                                            {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
-                                        </div>
-                                    }
-                                    return '--'
-                            }
-                        }
-                        return '--'
-                    },
-                }, {
-                    title: "M3(买)",
-                    dataIndex: "M3Buy",
-                    label: "买量付费趋势",
-                    align: "center",
-                    width: 110,
-                    render: (a: any, b: any) => {
-                        let date1 = moment()
-                        if (b?.costDate === '总计') {
-                            if (b?.beginDay) {
-                                date1 = moment(b?.beginDay)
-                            } else {
-                                date1 = moment()
-                            }
-                        } else {
-                            date1 = moment(b.costDate)
-                        }
-                        let dt = moment()
-                        let day = dt.diff(date1, 'day');
-                        let fieldData = getFieldDta()
-                        if (fieldData?.length > 0 && 90 <= day) {
-                            let data: any = {}
-                            let keyS: string[] = fieldData?.map((item: any) => item.key)
-                            switch (fieldData[0].type) {
-                                case '付费趋势':
-                                    if (b?.buyAmountM3Trend) {
-                                        data = b?.buyAmountM3Trend
-                                        return <div className={style.dbox}>
-                                            {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
-                                            {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
-                                            {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
-                                        </div>
-                                    }
-                                    return '--'
-                            }
-                        }
-                        return '--'
-                    },
-                }, {
-                    title: "M6(买)",
-                    dataIndex: "M6Buy",
-                    label: "买量付费趋势",
-                    align: "center",
-                    width: 110,
-                    render: (a: any, b: any) => {
-                        let date1 = moment()
-                        if (b?.costDate === '总计') {
-                            if (b?.beginDay) {
-                                date1 = moment(b?.beginDay)
-                            } else {
-                                date1 = moment()
-                            }
-                        } else {
-                            date1 = moment(b.costDate)
-                        }
-                        let dt = moment()
-                        let day = dt.diff(date1, 'day');
-                        let fieldData = getFieldDta()
-                        if (fieldData?.length > 0 && 180 <= day) {
-                            let data: any = {}
-                            let keyS: string[] = fieldData?.map((item: any) => item.key)
-                            switch (fieldData[0].type) {
-                                case '付费趋势':
-                                    if (b?.buyAmountM6Trend) {
-                                        data = b?.buyAmountM6Trend
-                                        return <div className={style.dbox}>
-                                            {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
-                                            {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
-                                            {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
-                                        </div>
-                                    }
-                                    return '--'
-                            }
-                        }
-                        return '--'
-                    },
-                }, {
                     title: "总(买)",
                     dataIndex: "totalBuy",
                     label: "买量付费趋势",
                     align: "center",
                     width: 110,
+                    default: 113,
                     render: (a: any, b: any) => {
                         let fieldData = getFieldDta()
                         if (fieldData?.length > 0) {
@@ -847,173 +824,15 @@ function columnsBuy12(rechargeTrendHandle: (data: any) => void): { label: string
                         }
                         return '--'
                     },
-                }]
+                }
+            ],
         },
         {
             label: '自然量付费趋势',
             data: [
                 ...natureC,
+                ...natureM,
                 {
-                    title: "D30(自)",
-                    dataIndex: "D30Nature",
-                    label: "自然量付费趋势",
-                    align: "center",
-                    width: 110,
-                    render: (a: any, b: any) => {
-                        let date1 = moment()
-                        if (b?.costDate === '总计') {
-                            if (b?.beginDay) {
-                                date1 = moment(b?.beginDay)
-                            } else {
-                                date1 = moment()
-                            }
-                        } else {
-                            date1 = moment(b.costDate)
-                        }
-                        let dt = moment()
-                        let day = dt.diff(date1, 'day');
-                        let fieldData = getFieldDta()
-                        if (fieldData?.length > 0 && 30 <= day) {
-                            let data: any = {}
-                            let keyS: string[] = fieldData?.map((item: any) => item.key)
-                            switch (fieldData[0].type) {
-                                case '付费趋势':
-                                    if (b?.natureAmountM1Trend) {
-                                        data = b?.natureAmountM1Trend
-                                        return <div className={style.dbox}>
-                                            {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
-                                            {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
-                                            {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
-                                        </div>
-                                    }
-                                    return '--'
-                            }
-                        }
-                        return '--'
-                    },
-                }, {
-                    title: "M2(自)",
-                    dataIndex: "M2Nature",
-                    label: "自然量付费趋势",
-                    align: "center",
-                    width: 110,
-                    render: (a: any, b: any) => {
-                        let date1 = moment()
-                        if (b?.costDate === '总计') {
-                            if (b?.beginDay) {
-                                date1 = moment(b?.beginDay)
-                            } else {
-                                date1 = moment()
-                            }
-                        } else {
-                            date1 = moment(b.costDate)
-                        }
-                        let dt = moment()
-                        let day = dt.diff(date1, 'day');
-                        let fieldData = getFieldDta()
-                        if (fieldData?.length > 0 && 60 <= day) {
-                            let data: any = {}
-                            let keyS: string[] = fieldData?.map((item: any) => item.key)
-                            switch (fieldData[0].type) {
-                                case '付费趋势':
-                                    if (b?.natureAmountM2Trend) {
-                                        data = b?.natureAmountM2Trend
-                                        return <div className={style.dbox}>
-                                            {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
-                                            {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
-                                            {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
-                                        </div>
-                                    }
-                                    return '--'
-                            }
-                        }
-                        return '--'
-                    },
-                }, {
-                    title: "M3(自)",
-                    dataIndex: "M3Nature",
-                    label: "自然量付费趋势",
-                    align: "center",
-                    width: 110,
-                    render: (a: any, b: any) => {
-                        let date1 = moment()
-                        if (b?.costDate === '总计') {
-                            if (b?.beginDay) {
-                                date1 = moment(b?.beginDay)
-                            } else {
-                                date1 = moment()
-                            }
-                        } else {
-                            date1 = moment(b.costDate)
-                        }
-                        let dt = moment()
-                        let day = dt.diff(date1, 'day');
-                        let fieldData = getFieldDta()
-                        if (fieldData?.length > 0 && 90 <= day) {
-                            let data: any = {}
-                            let keyS: string[] = fieldData?.map((item: any) => item.key)
-                            switch (fieldData[0].type) {
-                                case '付费趋势':
-                                    if (b?.natureAmountM3Trend) {
-                                        data = b?.natureAmountM3Trend
-                                        return <div className={style.dbox}>
-                                            {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
-                                            {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
-                                            {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
-                                        </div>
-                                    }
-                                    return '--'
-                            }
-                        }
-                        return '--'
-                    },
-                }, {
-                    title: "M6(自)",
-                    dataIndex: "M6Nature",
-                    label: "自然量付费趋势",
-                    align: "center",
-                    width: 110,
-                    render: (a: any, b: any) => {
-                        let date1 = moment()
-                        if (b?.costDate === '总计') {
-                            if (b?.beginDay) {
-                                date1 = moment(b?.beginDay)
-                            } else {
-                                date1 = moment()
-                            }
-                        } else {
-                            date1 = moment(b.costDate)
-                        }
-                        let dt = moment()
-                        let day = dt.diff(date1, 'day');
-                        let fieldData = getFieldDta()
-                        if (fieldData?.length > 0 && 180 <= day) {
-                            let data: any = {}
-                            let keyS: string[] = fieldData?.map((item: any) => item.key)
-                            switch (fieldData[0].type) {
-                                case '付费趋势':
-                                    if (b?.natureAmountM6Trend) {
-                                        data = b?.natureAmountM6Trend
-                                        return <div className={style.dbox}>
-                                            {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
-                                            {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
-                                            {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
-                                        </div>
-                                    }
-                                    return '--'
-                            }
-                        }
-                        return '--'
-                    },
-                }, {
                     title: "总(自)",
                     dataIndex: "totalNature",
                     label: "自然量付费趋势",
@@ -1046,168 +865,9 @@ function columnsBuy12(rechargeTrendHandle: (data: any) => void): { label: string
         {
             label: '总付费趋势',
             data: [
-                ...zC
-                , {
-                    title: "D30(总)",
-                    dataIndex: "D30",
-                    label: "总付费趋势",
-                    align: "center",
-                    width: 110,
-                    render: (a: any, b: any) => {
-                        let date1 = moment()
-                        if (b?.costDate === '总计') {
-                            if (b?.beginDay) {
-                                date1 = moment(b?.beginDay)
-                            } else {
-                                date1 = moment()
-                            }
-                        } else {
-                            date1 = moment(b.costDate)
-                        }
-                        let dt = moment()
-                        let day = dt.diff(date1, 'day');
-                        let fieldData = getFieldDta()
-                        if (fieldData?.length > 0 && 30 <= day) {
-                            let data: any = {}
-                            let keyS: string[] = fieldData?.map((item: any) => item.key)
-                            switch (fieldData[0].type) {
-                                case '付费趋势':
-                                    if (b?.amountM1Trend) {
-                                        data = b?.amountM1Trend
-                                        return <div className={style.dbox}>
-                                            {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
-                                            {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
-                                            {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
-                                        </div>
-                                    }
-                                    return '--'
-                            }
-                        }
-                        return '--'
-                    },
-                }, {
-                    title: "M2(总)",
-                    dataIndex: "M2",
-                    label: "总付费趋势",
-                    align: "center",
-                    width: 110,
-                    render: (a: any, b: any) => {
-                        let date1 = moment()
-                        if (b?.costDate === '总计') {
-                            if (b?.beginDay) {
-                                date1 = moment(b?.beginDay)
-                            } else {
-                                date1 = moment()
-                            }
-                        } else {
-                            date1 = moment(b.costDate)
-                        }
-                        let dt = moment()
-                        let day = dt.diff(date1, 'day');
-                        let fieldData = getFieldDta()
-                        if (fieldData?.length > 0 && 60 <= day) {
-                            let data: any = {}
-                            let keyS: string[] = fieldData?.map((item: any) => item.key)
-                            switch (fieldData[0].type) {
-                                case '付费趋势':
-                                    if (b?.amountM2Trend) {
-                                        data = b?.amountM2Trend
-                                        return <div className={style.dbox}>
-                                            {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
-                                            {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
-                                            {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
-                                        </div>
-                                    }
-                                    return '--'
-                            }
-                        }
-                        return '--'
-                    },
-                }, {
-                    title: "M3(总)",
-                    dataIndex: "M3",
-                    label: "总付费趋势",
-                    align: "center",
-                    width: 110,
-                    render: (a: any, b: any) => {
-                        let date1 = moment()
-                        if (b?.costDate === '总计') {
-                            if (b?.beginDay) {
-                                date1 = moment(b?.beginDay)
-                            } else {
-                                date1 = moment()
-                            }
-                        } else {
-                            date1 = moment(b.costDate)
-                        }
-                        let dt = moment()
-                        let day = dt.diff(date1, 'day');
-                        let fieldData = getFieldDta()
-                        if (fieldData?.length > 0 && 90 <= day) {
-                            let data: any = {}
-                            let keyS: string[] = fieldData?.map((item: any) => item.key)
-                            switch (fieldData[0].type) {
-                                case '付费趋势':
-                                    if (b?.amountM3Trend) {
-                                        data = b?.amountM3Trend
-                                        return <div className={style.dbox}>
-                                            {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
-                                            {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
-                                            {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
-                                        </div>
-                                    }
-                                    return '--'
-                            }
-                        }
-                        return '--'
-                    },
-                }, {
-                    title: "M6(总)",
-                    dataIndex: "M6",
-                    label: "总付费趋势",
-                    align: "center",
-                    width: 110,
-                    render: (a: any, b: any) => {
-                        let date1 = moment()
-                        if (b?.costDate === '总计') {
-                            if (b?.beginDay) {
-                                date1 = moment(b?.beginDay)
-                            } else {
-                                date1 = moment()
-                            }
-                        } else {
-                            date1 = moment(b.costDate)
-                        }
-                        let dt = moment()
-                        let day = dt.diff(date1, 'day');
-                        let fieldData = getFieldDta()
-                        if (fieldData?.length > 0 && 180 <= day) {
-                            let data: any = {}
-                            let keyS: string[] = fieldData?.map((item: any) => item.key)
-                            switch (fieldData[0].type) {
-                                case '付费趋势':
-                                    if (b?.amountM6Trend) {
-                                        data = b?.amountM6Trend
-                                        return <div className={style.dbox}>
-                                            {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
-                                            {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
-                                            {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
-                                        </div>
-                                    }
-                                    return '--'
-                            }
-                        }
-                        return '--'
-                    },
-                }, {
+                ...zC,
+                ...zM,
+                {
                     title: "总(总)",
                     dataIndex: "total",
                     label: "总付费趋势",
@@ -1244,7 +904,7 @@ function columnsBuy12(rechargeTrendHandle: (data: any) => void): { label: string
                     title: '操作',
                     dataIndex: 'cz',
                     label: '操作',
-                    default: 44,
+                    default: 114,
                     align: 'center',
                     width: 75,
                     render: (a: number, b: any) => {

+ 149 - 491
src/pages/gameDataStatistics/gameData/everyday/tableConfigNature.tsx

@@ -26,7 +26,7 @@ function columnsNature12(rechargeTrendHandle: (data: any) => void): { label: str
     }
 
     // 买量付费趋势
-    const buyC = Array(29).fill('').map((_item: string, index: number) => {
+    const buyC = Array(90).fill('').map((_item: string, index: number) => {
         let field = `buyAmountD${index + 1}Trend`
         let data = {
             title: `D${index + 1}(买)`,
@@ -72,9 +72,55 @@ function columnsNature12(rechargeTrendHandle: (data: any) => void): { label: str
         return data
     })
 
+    const buyM = [4, 5, 6, 7, 8, 9, 10, 11, 12].map((index, num) => {
+        let field = `buyAmountM${index}Trend`
+        let data = {
+            title: `M${index}(买)`,
+            dataIndex: `M${index}Buy`,
+            label: "买量付费趋势",
+            align: "center",
+            width: 110,
+            render: (a: any, b: any) => {
+                let date1 = moment()
+                if (b?.costDate === '总计') {
+                    if (b?.beginDay) {
+                        date1 = moment(b?.beginDay)
+                    } else {
+                        date1 = moment()
+                    }
+                } else {
+                    date1 = moment(b.costDate)
+                }
+                let dt = moment()
+                let day = dt.diff(date1, 'day');
+                let fieldData = getFieldDta()
+                if (fieldData?.length > 0 && index * 30 <= day) {
+                    let data: any = {}
+                    let keyS: string[] = fieldData?.map((item: any) => item.key)
+                    switch (fieldData[0].type) {
+                        case '付费趋势':
+                            if (b?.[field]) {
+                                data = b?.[field]
+                                return <div className={style.dbox}>
+                                    {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
+                                    {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
+                                    {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
+                                    {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
+                                    {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
+                                </div>
+                            }
+                            return '--'
+                    }
+                }
+                return '--'
+            },
+        }
+        return data
+    })
+
     let natureDefaultStart = 14
     // 自然量
-    const natureC = Array(29).fill('').map((_item: string, index: number) => {
+    const natureC = Array(90).fill('').map((_item: string, index: number) => {
         let field = `natureAmountD${index + 1}Trend`
         let data = {
             title: `D${index + 1}(自)`,
@@ -117,14 +163,59 @@ function columnsNature12(rechargeTrendHandle: (data: any) => void): { label: str
                 return '--'
             },
         }
-        if (index < 29) {
-            data['default'] = natureDefaultStart + index
+        data['default'] = natureDefaultStart + index
+        return data
+    })
+
+    const natureM = [4, 5, 6, 7, 8, 9, 10, 11, 12].map((index, num) => {
+        let field = `natureAmountM${index}Trend`
+        let data = {
+            title: `M${index}(自)`,
+            dataIndex: `M${index}Nature`,
+            label: "自然量付费趋势",
+            align: "center",
+            width: 110,
+            render: (a: any, b: any) => {
+                let date1 = moment()
+                if (b?.costDate === '总计') {
+                    if (b?.beginDay) {
+                        date1 = moment(b?.beginDay)
+                    } else {
+                        date1 = moment()
+                    }
+                } else {
+                    date1 = moment(b.costDate)
+                }
+                let dt = moment()
+                let day = dt.diff(date1, 'day');
+                let fieldData = getFieldDta()
+                if (fieldData?.length > 0 && index * 30 <= day) {
+                    let data: any = {}
+                    let keyS: string[] = fieldData?.map((item: any) => item.key)
+                    switch (fieldData[0].type) {
+                        case '付费趋势':
+                            if (b?.[field]) {
+                                data = b?.[field]
+                                return <div className={style.dbox}>
+                                    {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
+                                    {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
+                                    {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
+                                    {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
+                                    {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
+                                </div>
+                            }
+                            return '--'
+                    }
+                }
+                return '--'
+            },
         }
+        data['default'] = natureDefaultStart + 90 + num
         return data
     })
 
     // 总付费趋势
-    const zC = Array(29).fill('').map((_item: string, index: number) => {
+    const zC = Array(90).fill('').map((_item: string, index: number) => {
         let field = `amountD${index + 1}Trend`
         let data = {
             title: `D${index + 1}(总)`,
@@ -169,6 +260,51 @@ function columnsNature12(rechargeTrendHandle: (data: any) => void): { label: str
         }
         return data
     })
+    const zM = [4, 5, 6, 7, 8, 9, 10, 11, 12].map((index, num) => {
+        let field = `amountM${index}Trend`
+        let data = {
+            title: `M${index}(总)`,
+            dataIndex: `M${index}`,
+            label: "总付费趋势",
+            align: "center",
+            width: 110,
+            render: (a: any, b: any) => {
+                let date1 = moment()
+                if (b?.costDate === '总计') {
+                    if (b?.beginDay) {
+                        date1 = moment(b?.beginDay)
+                    } else {
+                        date1 = moment()
+                    }
+                } else {
+                    date1 = moment(b.costDate)
+                }
+                let dt = moment()
+                let day = dt.diff(date1, 'day');
+                let fieldData = getFieldDta()
+                if (fieldData?.length > 0 && index * 30 <= day) {
+                    let data: any = {}
+                    let keyS: string[] = fieldData?.map((item: any) => item.key)
+                    switch (fieldData[0].type) {
+                        case '付费趋势':
+                            if (b?.[field]) {
+                                data = b?.[field]
+                                return <div className={style.dbox}>
+                                    {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
+                                    {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
+                                    {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
+                                    {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
+                                    {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
+                                </div>
+                            }
+                            return '--'
+                    }
+                }
+                return '--'
+            },
+        }
+        return data
+    })
 
 
 
@@ -650,169 +786,9 @@ function columnsNature12(rechargeTrendHandle: (data: any) => void): { label: str
             },
             label: '买量付费趋势',
             data: [
-                ...buyC
-                ,
+                ...buyC,
+                ...buyM,
                 {
-                    title: "D30(买)",
-                    dataIndex: "D30Buy",
-                    label: "买量付费趋势",
-                    align: "center",
-                    width: 110,
-                    render: (a: any, b: any) => {
-                        let date1 = moment()
-                        if (b?.costDate === '总计') {
-                            if (b?.beginDay) {
-                                date1 = moment(b?.beginDay)
-                            } else {
-                                date1 = moment()
-                            }
-                        } else {
-                            date1 = moment(b.costDate)
-                        }
-                        let dt = moment()
-                        let day = dt.diff(date1, 'day');
-                        let fieldData = getFieldDta()
-                        if (fieldData?.length > 0 && 30 <= day) {
-                            let data: any = {}
-                            let keyS: string[] = fieldData?.map((item: any) => item.key)
-                            switch (fieldData[0].type) {
-                                case '付费趋势':
-                                    if (b?.buyAmountM1Trend) {
-                                        data = b?.buyAmountM1Trend
-                                        return <div className={style.dbox}>
-                                            {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
-                                            {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
-                                            {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
-                                        </div>
-                                    }
-                                    return '--'
-                            }
-                        }
-                        return '--'
-                    },
-                }, {
-                    title: "M2(买)",
-                    dataIndex: "M2Buy",
-                    label: "买量付费趋势",
-                    align: "center",
-                    width: 110,
-                    render: (a: any, b: any) => {
-                        let date1 = moment()
-                        if (b?.costDate === '总计') {
-                            if (b?.beginDay) {
-                                date1 = moment(b?.beginDay)
-                            } else {
-                                date1 = moment()
-                            }
-                        } else {
-                            date1 = moment(b.costDate)
-                        }
-                        let dt = moment()
-                        let day = dt.diff(date1, 'day');
-                        let fieldData = getFieldDta()
-                        if (fieldData?.length > 0 && 60 <= day) {
-                            let data: any = {}
-                            let keyS: string[] = fieldData?.map((item: any) => item.key)
-                            switch (fieldData[0].type) {
-                                case '付费趋势':
-                                    if (b?.buyAmountM2Trend) {
-                                        data = b?.buyAmountM2Trend
-                                        return <div className={style.dbox}>
-                                            {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
-                                            {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
-                                            {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
-                                        </div>
-                                    }
-                                    return '--'
-                            }
-                        }
-                        return '--'
-                    },
-                }, {
-                    title: "M3(买)",
-                    dataIndex: "M3Buy",
-                    label: "买量付费趋势",
-                    align: "center",
-                    width: 110,
-                    render: (a: any, b: any) => {
-                        let date1 = moment()
-                        if (b?.costDate === '总计') {
-                            if (b?.beginDay) {
-                                date1 = moment(b?.beginDay)
-                            } else {
-                                date1 = moment()
-                            }
-                        } else {
-                            date1 = moment(b.costDate)
-                        }
-                        let dt = moment()
-                        let day = dt.diff(date1, 'day');
-                        let fieldData = getFieldDta()
-                        if (fieldData?.length > 0 && 90 <= day) {
-                            let data: any = {}
-                            let keyS: string[] = fieldData?.map((item: any) => item.key)
-                            switch (fieldData[0].type) {
-                                case '付费趋势':
-                                    if (b?.buyAmountM3Trend) {
-                                        data = b?.buyAmountM3Trend
-                                        return <div className={style.dbox}>
-                                            {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
-                                            {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
-                                            {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
-                                        </div>
-                                    }
-                                    return '--'
-                            }
-                        }
-                        return '--'
-                    },
-                }, {
-                    title: "M6(买)",
-                    dataIndex: "M6Buy",
-                    label: "买量付费趋势",
-                    align: "center",
-                    width: 110,
-                    render: (a: any, b: any) => {
-                        let date1 = moment()
-                        if (b?.costDate === '总计') {
-                            if (b?.beginDay) {
-                                date1 = moment(b?.beginDay)
-                            } else {
-                                date1 = moment()
-                            }
-                        } else {
-                            date1 = moment(b.costDate)
-                        }
-                        let dt = moment()
-                        let day = dt.diff(date1, 'day');
-                        let fieldData = getFieldDta()
-                        if (fieldData?.length > 0 && 180 <= day) {
-                            let data: any = {}
-                            let keyS: string[] = fieldData?.map((item: any) => item.key)
-                            switch (fieldData[0].type) {
-                                case '付费趋势':
-                                    if (b?.buyAmountM6Trend) {
-                                        data = b?.buyAmountM6Trend
-                                        return <div className={style.dbox}>
-                                            {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
-                                            {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
-                                            {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
-                                        </div>
-                                    }
-                                    return '--'
-                            }
-                        }
-                        return '--'
-                    },
-                }, {
                     title: "总(买)",
                     dataIndex: "totalBuy",
                     label: "买量付费趋势",
@@ -846,173 +822,14 @@ function columnsNature12(rechargeTrendHandle: (data: any) => void): { label: str
             label: '自然量付费趋势',
             data: [
                 ...natureC,
+                ...natureM,
                 {
-                    title: "D30(自)",
-                    dataIndex: "D30Nature",
-                    label: "自然量付费趋势",
-                    align: "center",
-                    default: 43,
-                    width: 110,
-                    render: (a: any, b: any) => {
-                        let date1 = moment()
-                        if (b?.costDate === '总计') {
-                            if (b?.beginDay) {
-                                date1 = moment(b?.beginDay)
-                            } else {
-                                date1 = moment()
-                            }
-                        } else {
-                            date1 = moment(b.costDate)
-                        }
-                        let dt = moment()
-                        let day = dt.diff(date1, 'day');
-                        let fieldData = getFieldDta()
-                        if (fieldData?.length > 0 && 30 <= day) {
-                            let data: any = {}
-                            let keyS: string[] = fieldData?.map((item: any) => item.key)
-                            switch (fieldData[0].type) {
-                                case '付费趋势':
-                                    if (b?.natureAmountM1Trend) {
-                                        data = b?.natureAmountM1Trend
-                                        return <div className={style.dbox}>
-                                            {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
-                                            {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
-                                            {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
-                                        </div>
-                                    }
-                                    return '--'
-                            }
-                        }
-                        return '--'
-                    },
-                }, {
-                    title: "M2(自)",
-                    dataIndex: "M2Nature",
-                    label: "自然量付费趋势",
-                    align: "center",
-                    width: 110,
-                    render: (a: any, b: any) => {
-                        let date1 = moment()
-                        if (b?.costDate === '总计') {
-                            if (b?.beginDay) {
-                                date1 = moment(b?.beginDay)
-                            } else {
-                                date1 = moment()
-                            }
-                        } else {
-                            date1 = moment(b.costDate)
-                        }
-                        let dt = moment()
-                        let day = dt.diff(date1, 'day');
-                        let fieldData = getFieldDta()
-                        if (fieldData?.length > 0 && 60 <= day) {
-                            let data: any = {}
-                            let keyS: string[] = fieldData?.map((item: any) => item.key)
-                            switch (fieldData[0].type) {
-                                case '付费趋势':
-                                    if (b?.natureAmountM2Trend) {
-                                        data = b?.natureAmountM2Trend
-                                        return <div className={style.dbox}>
-                                            {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
-                                            {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
-                                            {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
-                                        </div>
-                                    }
-                                    return '--'
-                            }
-                        }
-                        return '--'
-                    },
-                }, {
-                    title: "M3(自)",
-                    dataIndex: "M3Nature",
-                    label: "自然量付费趋势",
-                    align: "center",
-                    width: 110,
-                    render: (a: any, b: any) => {
-                        let date1 = moment()
-                        if (b?.costDate === '总计') {
-                            if (b?.beginDay) {
-                                date1 = moment(b?.beginDay)
-                            } else {
-                                date1 = moment()
-                            }
-                        } else {
-                            date1 = moment(b.costDate)
-                        }
-                        let dt = moment()
-                        let day = dt.diff(date1, 'day');
-                        let fieldData = getFieldDta()
-                        if (fieldData?.length > 0 && 90 <= day) {
-                            let data: any = {}
-                            let keyS: string[] = fieldData?.map((item: any) => item.key)
-                            switch (fieldData[0].type) {
-                                case '付费趋势':
-                                    if (b?.natureAmountM3Trend) {
-                                        data = b?.natureAmountM3Trend
-                                        return <div className={style.dbox}>
-                                            {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
-                                            {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
-                                            {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
-                                        </div>
-                                    }
-                                    return '--'
-                            }
-                        }
-                        return '--'
-                    },
-                }, {
-                    title: "M6(自)",
-                    dataIndex: "M6Nature",
-                    label: "自然量付费趋势",
-                    align: "center",
-                    width: 110,
-                    render: (a: any, b: any) => {
-                        let date1 = moment()
-                        if (b?.costDate === '总计') {
-                            if (b?.beginDay) {
-                                date1 = moment(b?.beginDay)
-                            } else {
-                                date1 = moment()
-                            }
-                        } else {
-                            date1 = moment(b.costDate)
-                        }
-                        let dt = moment()
-                        let day = dt.diff(date1, 'day');
-                        let fieldData = getFieldDta()
-                        if (fieldData?.length > 0 && 180 <= day) {
-                            let data: any = {}
-                            let keyS: string[] = fieldData?.map((item: any) => item.key)
-                            switch (fieldData[0].type) {
-                                case '付费趋势':
-                                    if (b?.natureAmountM6Trend) {
-                                        data = b?.natureAmountM6Trend
-                                        return <div className={style.dbox}>
-                                            {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
-                                            {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
-                                            {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
-                                        </div>
-                                    }
-                                    return '--'
-                            }
-                        }
-                        return '--'
-                    },
-                }, {
                     title: "总(自)",
                     dataIndex: "totalNature",
                     label: "自然量付费趋势",
                     align: "center",
                     width: 110,
+                    default: 113,
                     render: (a: any, b: any) => {
                         let fieldData = getFieldDta()
                         if (fieldData?.length > 0) {
@@ -1040,168 +857,9 @@ function columnsNature12(rechargeTrendHandle: (data: any) => void): { label: str
         {
             label: '总付费趋势',
             data: [
-                ...zC
-                , {
-                    title: "D30(总)",
-                    dataIndex: "D30",
-                    label: "总付费趋势",
-                    align: "center",
-                    width: 110,
-                    render: (a: any, b: any) => {
-                        let date1 = moment()
-                        if (b?.costDate === '总计') {
-                            if (b?.beginDay) {
-                                date1 = moment(b?.beginDay)
-                            } else {
-                                date1 = moment()
-                            }
-                        } else {
-                            date1 = moment(b.costDate)
-                        }
-                        let dt = moment()
-                        let day = dt.diff(date1, 'day');
-                        let fieldData = getFieldDta()
-                        if (fieldData?.length > 0 && 30 <= day) {
-                            let data: any = {}
-                            let keyS: string[] = fieldData?.map((item: any) => item.key)
-                            switch (fieldData[0].type) {
-                                case '付费趋势':
-                                    if (b?.amountM1Trend) {
-                                        data = b?.amountM1Trend
-                                        return <div className={style.dbox}>
-                                            {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
-                                            {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
-                                            {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
-                                        </div>
-                                    }
-                                    return '--'
-                            }
-                        }
-                        return '--'
-                    },
-                }, {
-                    title: "M2(总)",
-                    dataIndex: "M2",
-                    label: "总付费趋势",
-                    align: "center",
-                    width: 110,
-                    render: (a: any, b: any) => {
-                        let date1 = moment()
-                        if (b?.costDate === '总计') {
-                            if (b?.beginDay) {
-                                date1 = moment(b?.beginDay)
-                            } else {
-                                date1 = moment()
-                            }
-                        } else {
-                            date1 = moment(b.costDate)
-                        }
-                        let dt = moment()
-                        let day = dt.diff(date1, 'day');
-                        let fieldData = getFieldDta()
-                        if (fieldData?.length > 0 && 60 <= day) {
-                            let data: any = {}
-                            let keyS: string[] = fieldData?.map((item: any) => item.key)
-                            switch (fieldData[0].type) {
-                                case '付费趋势':
-                                    if (b?.amountM2Trend) {
-                                        data = b?.amountM2Trend
-                                        return <div className={style.dbox}>
-                                            {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
-                                            {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
-                                            {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
-                                        </div>
-                                    }
-                                    return '--'
-                            }
-                        }
-                        return '--'
-                    },
-                }, {
-                    title: "M3(总)",
-                    dataIndex: "M3",
-                    label: "总付费趋势",
-                    align: "center",
-                    width: 110,
-                    render: (a: any, b: any) => {
-                        let date1 = moment()
-                        if (b?.costDate === '总计') {
-                            if (b?.beginDay) {
-                                date1 = moment(b?.beginDay)
-                            } else {
-                                date1 = moment()
-                            }
-                        } else {
-                            date1 = moment(b.costDate)
-                        }
-                        let dt = moment()
-                        let day = dt.diff(date1, 'day');
-                        let fieldData = getFieldDta()
-                        if (fieldData?.length > 0 && 90 <= day) {
-                            let data: any = {}
-                            let keyS: string[] = fieldData?.map((item: any) => item.key)
-                            switch (fieldData[0].type) {
-                                case '付费趋势':
-                                    if (b?.amountM3Trend) {
-                                        data = b?.amountM3Trend
-                                        return <div className={style.dbox}>
-                                            {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
-                                            {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
-                                            {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
-                                        </div>
-                                    }
-                                    return '--'
-                            }
-                        }
-                        return '--'
-                    },
-                }, {
-                    title: "M6(总)",
-                    dataIndex: "M6",
-                    label: "总付费趋势",
-                    align: "center",
-                    width: 110,
-                    render: (a: any, b: any) => {
-                        let date1 = moment()
-                        if (b?.costDate === '总计') {
-                            if (b?.beginDay) {
-                                date1 = moment(b?.beginDay)
-                            } else {
-                                date1 = moment()
-                            }
-                        } else {
-                            date1 = moment(b.costDate)
-                        }
-                        let dt = moment()
-                        let day = dt.diff(date1, 'day');
-                        let fieldData = getFieldDta()
-                        if (fieldData?.length > 0 && 180 <= day) {
-                            let data: any = {}
-                            let keyS: string[] = fieldData?.map((item: any) => item.key)
-                            switch (fieldData[0].type) {
-                                case '付费趋势':
-                                    if (b?.amountM6Trend) {
-                                        data = b?.amountM6Trend
-                                        return <div className={style.dbox}>
-                                            {keyS?.includes('rechargeUserCount') && <span style={{ color: '#d81b60', fontWeight: 600 }}>充人:<span>{data?.rechargeUserCount}</span></span>}
-                                            {keyS?.includes('rechargeMoney') && <span style={{ color: '#0f538a', fontWeight: 600 }}>充金:<span><Statistic value={data?.rechargeMoney || 0} valueStyle={{ color: '#0f538a', fontWeight: 600 }} /></span></span>}
-                                            {keyS?.includes('increase') && <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}>增:<span>{(data?.increase * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('back') && <span style={{ color: '#ff5722', fontWeight: 600 }}>回:<span>{(data?.back * 100)?.toFixed(2)}%</span></span>}
-                                            {keyS?.includes('multiples') && <span style={{ color: '#d81b60', fontWeight: 600 }}>倍:<span>{data?.multiples?.toFixed(2)}</span></span>}
-                                        </div>
-                                    }
-                                    return '--'
-                            }
-                        }
-                        return '--'
-                    },
-                }, {
+                ...zC, 
+                ...zM,
+                {
                     title: "总(总)",
                     dataIndex: "total",
                     label: "总付费趋势",
@@ -1238,7 +896,7 @@ function columnsNature12(rechargeTrendHandle: (data: any) => void): { label: str
                     title: '操作',
                     dataIndex: 'cz',
                     label: '操作',
-                    default: 44,
+                    default: 114,
                     align: 'center',
                     width: 75,
                     render: (a: number, b: any) => {