| 
					
				 | 
			
			
				@@ -0,0 +1,137 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { gameClassifyEnum } from "@/components/QueryForm/const" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import WidthEllipsis from "@/components/widthEllipsis" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { Statistic } from "antd" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import React from "react" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import moment from "moment" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import style from './index.less' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function columns12(): { label: string, fieldSHow?: { label: string, saveField: string, defaultValue: any[], data: any[] }, data: any[] }[] { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let defaultStart = 8 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const day = Array(90).fill('').map((_item: string, index: number) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let field = `daRetention${index + 1}` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let data = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            title: `D${index + 1}`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            dataIndex: field, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            label: "D1~Dn", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            align: "center", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            width: 150, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            children: [{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                title: `留存率`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                dataIndex: field, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                key: 'retained', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                align: "center", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                width: 125, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                render: (a: any, b: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    let date1 = moment() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (b?.gameName === '总计') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (b?.dt) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            date1 = moment(b?.dt) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            date1 = moment() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        date1 = moment(b.dt) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    let dt = moment() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    let day = dt.diff(date1, 'day'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (index <= day) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        let data: any = {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (b?.[field]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            data = b?.[field] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            return <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                <div className={style.dbox}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    <span style={{ color: '#d81b60', fontWeight: 600 }}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        <span>活跃:</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        <span>{data?.activeRetention}%</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    </span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    <span style={{ color: '#faad14', fontWeight: 600 }}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        <span>付费:</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        <span>{data?.paidRetentionRate}%</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    </span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    <span style={{ color: 'rgb(12,130,16)', fontWeight: 600 }}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        <span>小R:</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        <span>{data?.smallR}%</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    </span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    <span style={{ color: '#0f538a', fontWeight: 600 }}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        <span>中R:</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        <span>{data?.mediumR}%</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    </span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    <span style={{ color: '#eb2f96', fontWeight: 600 }}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        <span>大R:</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        <span>{data?.largeR}%</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    </span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    <span style={{ color: '#2f54eb', fontWeight: 600 }}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        <span>超大R:</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        <span>{data?.superR}%</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    </span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        return <div style={{ height: 126, lineHeight: '126px' }}>--</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    return <div style={{ height: 126, lineHeight: '126px' }}>--</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        data['default'] = defaultStart + index 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            label: '游戏信息', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            data: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    title: '游戏名称', dataIndex: 'parentGameName', label: '游戏信息', align: 'center', width: 90, default: 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    render: (a: string) => (<WidthEllipsis value={a} />) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { title: '游戏ID', dataIndex: 'parentGameId', label: '游戏信息', align: 'center', width: 90 }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    title: '游戏应用类型', dataIndex: 'parentGameClassify', label: '游戏信息', align: 'center', width: 80, default: 2, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    render: (a: string) => (<WidthEllipsis value={gameClassifyEnum[a]} />) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    title: '区服名称', dataIndex: 'serverName', label: '游戏信息', align: 'center', width: 90, default: 3, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    render: (a: string) => (<WidthEllipsis value={a} />) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { title: '区服ID', dataIndex: 'serverId', label: '游戏信息', align: 'center', width: 90 }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    title: '开服时间', dataIndex: 'dt', label: '游戏信息', align: 'center', width: 90, default: 4, sorter: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    render: (a: any, b: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (b.gameName === '总计') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            return '--' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        return a 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            label: '数据', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            data: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    title: '新用户人数', dataIndex: 'totalRegNum', label: '数据', align: 'center', width: 70, sorter: true, default: 5, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    render: (a: number) => <Statistic value={a || 0} /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    title: '创角人数', dataIndex: 'totalRoleNum', label: '数据', align: 'center', width: 70, sorter: true, default: 6, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    render: (a: number) => <Statistic value={a || 0} /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    title: '付费人数', dataIndex: 'totalAmountNum', label: '数据', align: 'center', width: 70, sorter: true, default: 7, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    render: (a: number) => <Statistic value={a || 0} /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            label: 'D1~Dn', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            data: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ...day 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+export default columns12 
			 |