|
@@ -2,6 +2,11 @@ import WidthEllipsis from "@/components/widthEllipsis"
|
|
import LookRoleDetails from "@/pages/gameDataStatistics/player/role/lookRoleDetails"
|
|
import LookRoleDetails from "@/pages/gameDataStatistics/player/role/lookRoleDetails"
|
|
import { Space, Statistic } from "antd"
|
|
import { Space, Statistic } from "antd"
|
|
import React from "react"
|
|
import React from "react"
|
|
|
|
+import LoginIpDetails from "../roleIpMonitor/loginIpDetails"
|
|
|
|
+import { EyeOutlined } from "@ant-design/icons"
|
|
|
|
+import TongIpUser from "../roleIpMonitor/tongIpUser"
|
|
|
|
+import RegIpRoleDetails from "../roleIpMonitor/regIpRoleDetails"
|
|
|
|
+import SuspectedUser from "./suspectedUser"
|
|
|
|
|
|
function columns12(assignHandle: (data: any) => void): { label: string, fieldSHow?: { label: string, saveField: string, defaultValue: any[], data: any[] }, data: any[] }[] {
|
|
function columns12(assignHandle: (data: any) => void): { label: string, fieldSHow?: { label: string, saveField: string, defaultValue: any[], data: any[] }, data: any[] }[] {
|
|
|
|
|
|
@@ -58,7 +63,7 @@ function columns12(assignHandle: (data: any) => void): { label: string, fieldSHo
|
|
render: (a: string) => (<WidthEllipsis value={a} />)
|
|
render: (a: string) => (<WidthEllipsis value={a} />)
|
|
},
|
|
},
|
|
{
|
|
{
|
|
- title: '等级上报时间距今', dataIndex: 'levelTimeDiff', label: '角色游戏数据', align: 'center', width: 120, default: 9,
|
|
|
|
|
|
+ title: '等级上报时间距今', dataIndex: 'levelTimeDiff', label: '角色游戏数据', align: 'center', width: 140, default: 9,
|
|
render: (_: any, b: any) => {
|
|
render: (_: any, b: any) => {
|
|
if (b?.createTime) {
|
|
if (b?.createTime) {
|
|
let a = (new Date().getTime() / 1000) - (new Date(b?.levelTime).getTime() / 1000)
|
|
let a = (new Date().getTime() / 1000) - (new Date(b?.levelTime).getTime() / 1000)
|
|
@@ -76,7 +81,7 @@ function columns12(assignHandle: (data: any) => void): { label: string, fieldSHo
|
|
}
|
|
}
|
|
},
|
|
},
|
|
{
|
|
{
|
|
- title: '创角时间至今', dataIndex: 'createTimeDiff', label: '角色游戏数据', align: 'center', width: 120, default: 10,
|
|
|
|
|
|
+ title: '创角时间至今', dataIndex: 'createTimeDiff', label: '角色游戏数据', align: 'center', width: 140, default: 10,
|
|
render: (_: any, b: any) => {
|
|
render: (_: any, b: any) => {
|
|
if (b?.createTime) {
|
|
if (b?.createTime) {
|
|
let a = (new Date().getTime() / 1000) - (new Date(b?.createTime).getTime() / 1000)
|
|
let a = (new Date().getTime() / 1000) - (new Date(b?.createTime).getTime() / 1000)
|
|
@@ -92,17 +97,52 @@ function columns12(assignHandle: (data: any) => void): { label: string, fieldSHo
|
|
return '--'
|
|
return '--'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '角色注册IP', dataIndex: 'ip', label: '角色游戏数据', align: 'center', width: 110, default: 11,
|
|
|
|
+ render: (a: string) => (<WidthEllipsis value={a} />)
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '角色登录IP数量', dataIndex: 'ipCount', label: '角色游戏数据', align: 'center', width: 65, sorter: true, default: 12,
|
|
|
|
+ render: (a: number, b: any) => <Statistic value={a || 0} valueStyle={a > 1 ? { color: 'red' } : {}} suffix={<LoginIpDetails gameId={b.gameId} roleId={b.roleId} icon={<EyeOutlined />} />} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '同玩家角色数量', dataIndex: 'userRoleCount', label: '角色游戏数据', align: 'center', width: 65, sorter: true, default: 13,
|
|
|
|
+ render: (a: number, b: any) => <Statistic value={a || 0} valueStyle={a > 1 ? { color: 'red' } : {}} suffix={<LookRoleDetails userId={b.userId} icon={<EyeOutlined />} />} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '角色同IP的玩家数量', dataIndex: 'userCount', label: '角色游戏数据', align: 'center', width: 70, sorter: true, default: 14,
|
|
|
|
+ render: (a: number, b: any) => <Statistic value={a || 0} valueStyle={a > 1 ? { color: 'red' } : {}} suffix={<TongIpUser roleId={b.roleId} icon={<EyeOutlined />} />} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '同IP的角色数量', dataIndex: 'roleCount', label: '角色游戏数据', align: 'center', width: 70, sorter: true, default: 15,
|
|
|
|
+ render: (a: number, b: any) => <Statistic value={a || 0} valueStyle={a > 1 ? { color: 'red' } : {}} suffix={<RegIpRoleDetails roleId={b.roleId} excludeUserType={0} icon={<EyeOutlined />} />} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '同IP的角色数量(排除同玩家)', dataIndex: 'ipRoleCountFilter', label: '角色游戏数据', align: 'center', width: 90, sorter: true, default: 16,
|
|
|
|
+ render: (a: number, b: any) => <Statistic value={a || 0} valueStyle={a > 1 ? { color: 'red' } : {}} suffix={<RegIpRoleDetails roleId={b.roleId} excludeUserType={1} icon={<EyeOutlined />} />} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '疑似同玩家数量', dataIndex: 'suspectedCount', label: '角色游戏数据', align: 'center', width: 80, sorter: true, default: 17,
|
|
|
|
+ render: (a: number, record: any) => <Statistic value={a || 0} valueStyle={a > 1 ? { color: 'red' } : {}} suffix={<SuspectedUser roleId={record.roleId} icon={<EyeOutlined />} />} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '同玩家IP的角色数量(排除同玩家)', dataIndex: 'roleUserIpCountFilter', label: '角色游戏数据', align: 'center', width: 100, sorter: true, default: 18,
|
|
|
|
+ render: (a: number) => <Statistic value={a || 0} valueStyle={a > 1 ? { color: 'red' } : {}} />
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ title: '角色所在玩家登录过的所有IP的统计数量', dataIndex: 'roleUserIpCount', label: '角色游戏数据', align: 'center', width: 100, sorter: true, default: 19,
|
|
|
|
+ render: (a: number) => <Statistic value={a || 0} valueStyle={a > 1 ? { color: 'red' } : {}} />
|
|
}
|
|
}
|
|
-
|
|
|
|
]
|
|
]
|
|
},
|
|
},
|
|
{
|
|
{
|
|
label: '客户管理操作',
|
|
label: '客户管理操作',
|
|
data: [
|
|
data: [
|
|
- { title: 'GS', dataIndex: 'gsName', label: '客户管理操作', align: 'center', width: 80, default: 11, render: (a: string, b: any) => (<WidthEllipsis value={a} />) },
|
|
|
|
- { title: '客服', dataIndex: 'customerServiceName', label: '客户管理操作', align: 'center', width: 80, default: 12, render: (a: string, b: any) => (<WidthEllipsis value={a} />) },
|
|
|
|
- { title: '运营', dataIndex: 'operUserName', label: '客户管理操作', align: 'center', width: 80, default: 13, render: (a: string, b: any) => (<WidthEllipsis value={a} />) },
|
|
|
|
- { title: '投手', dataIndex: 'putUserName', label: '客户管理操作', align: 'center', width: 80, default: 14, render: (a: string, b: any) => (<WidthEllipsis value={a} />) }
|
|
|
|
|
|
+ { title: 'GS', dataIndex: 'gsName', label: '客户管理操作', align: 'center', width: 80, default: 20, render: (a: string, b: any) => (<WidthEllipsis value={a} />) },
|
|
|
|
+ { title: '客服', dataIndex: 'customerServiceName', label: '客户管理操作', align: 'center', width: 80, default: 21, render: (a: string, b: any) => (<WidthEllipsis value={a} />) },
|
|
|
|
+ { title: '运营', dataIndex: 'operUserName', label: '客户管理操作', align: 'center', width: 80, default: 22, render: (a: string, b: any) => (<WidthEllipsis value={a} />) },
|
|
|
|
+ { title: '投手', dataIndex: 'putUserName', label: '客户管理操作', align: 'center', width: 80, default: 23, render: (a: string, b: any) => (<WidthEllipsis value={a} />) }
|
|
]
|
|
]
|
|
},
|
|
},
|
|
{
|
|
{
|
|
@@ -114,7 +154,7 @@ function columns12(assignHandle: (data: any) => void): { label: string, fieldSHo
|
|
align: 'center',
|
|
align: 'center',
|
|
width: 70,
|
|
width: 70,
|
|
label: '操作',
|
|
label: '操作',
|
|
- default: 15,
|
|
|
|
|
|
+ default: 24,
|
|
render: (_: any, b: any) => {
|
|
render: (_: any, b: any) => {
|
|
return <Space>
|
|
return <Space>
|
|
<LookRoleDetails userId={b.userId} />
|
|
<LookRoleDetails userId={b.userId} />
|