tableConfig.tsx 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425
  1. import WidthEllipsis from "@/components/widthEllipsis"
  2. import { Statistic } from "antd"
  3. import React from "react"
  4. import { PRODUCT_TYPE_ENUM } from "../../const"
  5. import { formatSecondsToTime } from "@/utils/utils"
  6. function columns12(): { label: string, fieldSHow?: { label: string, saveField: string, defaultValue: any[], data: any[] }, data: any[] }[] {
  7. return [
  8. {
  9. label: '基本信息',
  10. data: [
  11. {
  12. title: '应用', dataIndex: 'appName', label: '基本信息', align: 'center', width: 120, default: 1,
  13. render: (a: string) => (<WidthEllipsis value={a} />)
  14. },
  15. {
  16. title: '应用ID', dataIndex: 'appId', label: '基本信息', align: 'center', width: 80,
  17. render: (a: string) => (<WidthEllipsis value={a} />)
  18. },
  19. {
  20. title: '小程序名称', dataIndex: 'mpName', label: '基本信息', align: 'center', width: 85, default: 2,
  21. render: (a: string) => (<WidthEllipsis value={a} />)
  22. },
  23. {
  24. title: '小程序ID', dataIndex: 'mpId', label: '基本信息', align: 'center', width: 80,
  25. render: (a: string) => (<WidthEllipsis value={a} />)
  26. },
  27. {
  28. title: '业务类型', dataIndex: 'productType', label: '基本信息', align: 'center', width: 80, default: 3,
  29. render: (a: string) => (<WidthEllipsis value={PRODUCT_TYPE_ENUM[a as keyof typeof PRODUCT_TYPE_ENUM]} />)
  30. },
  31. {
  32. title: '消耗时间', dataIndex: 'dt', label: '基本信息', align: 'center', width: 80, default: 4,
  33. render: (a: string) => (<WidthEllipsis value={a} />)
  34. },
  35. {
  36. title: '累计消耗', dataIndex: 'costToday', label: '基本信息', align: 'center', width: 95, default: 5, sorter: true,
  37. render: (a: string) => <Statistic value={a || 0} precision={2} />
  38. },
  39. {
  40. title: '每日真实消耗', dataIndex: 'costTotal', label: '基本信息', align: 'center', width: 90, default: 6, sorter: true,
  41. render: (a: string) => <Statistic value={a || 0} precision={2} />
  42. },
  43. {
  44. title: '每日消耗', dataIndex: 'cost', label: '基本信息', align: 'center', width: 85, default: 7, sorter: true,
  45. render: (a: string) => <Statistic value={a || 0} precision={2} />
  46. },
  47. {
  48. title: '每日赔付金', dataIndex: 'payout', label: '基本信息', align: 'center', width: 80, default: 8, sorter: true,
  49. render: (a: string) => <Statistic value={a || 0} precision={2} />
  50. },
  51. {
  52. title: '推广广告账号数量', tips: '消耗大于0', dataIndex: 'accountCount', label: '基本信息', align: 'center', width: 80, default: 9, sorter: true,
  53. render: (a: string) => <Statistic value={a || 0} />
  54. },
  55. {
  56. title: '推广广告数量', tips: '消耗大于0', dataIndex: 'adCount', label: '基本信息', align: 'center', width: 80, default: 10, sorter: true,
  57. render: (a: string) => <Statistic value={a || 0} />
  58. },
  59. ]
  60. },
  61. {
  62. label: '应用端指标',
  63. data: [
  64. {
  65. title: '累计注册人数', dataIndex: 'regUserTotal', label: '应用端指标', align: 'center', width: 80, default: 11, sorter: true,
  66. render: (a: number) => <Statistic value={a || 0} />
  67. },
  68. {
  69. title: '新增注册人数', dataIndex: 'regUserNew', label: '应用端指标', align: 'center', width: 80, default: 12, sorter: true,
  70. render: (a: number) => <Statistic value={a || 0} />
  71. },
  72. {
  73. title: 'DAU', tips: '日活用户人数', dataIndex: 'dau', label: '应用端指标', align: 'center', width: 80, default: 13, sorter: true,
  74. render: (a: number) => <Statistic value={a || 0} />
  75. },
  76. {
  77. title: '新增占比', tips: '新增注册人数/DAU', dataIndex: 'newProportion', label: '应用端指标', align: 'center', width: 90, default: 14, sorter: true,
  78. render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
  79. },
  80. {
  81. title: '累计利润', tips: '广告变现累计收入-累计消耗', dataIndex: 'totalProfit', label: '应用端指标', align: 'center', width: 100, default: 15, sorter: true,
  82. render: (a: number) => <Statistic value={a || 0} precision={2} />
  83. },
  84. {
  85. title: '利润率', tips: '(广告变现累计收入-累计消耗)/累计消耗*100%', dataIndex: 'profitRate', label: '应用端指标', align: 'center', width: 80, default: 16, sorter: true,
  86. render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
  87. },
  88. {
  89. title: '广告变现收入', dataIndex: 'adMonRevenue', label: '应用端指标', align: 'center', width: 80, default: 17, sorter: true,
  90. render: (a: number) => <Statistic value={(a || 0) / 100} precision={2} />
  91. },
  92. {
  93. title: '广告变现累计收入', dataIndex: 'adMonRevenueTotal', label: '应用端指标', align: 'center', width: 85, default: 18, sorter: true,
  94. render: (a: number) => <Statistic value={(a || 0) / 100} precision={2} />
  95. },
  96. {
  97. title: '新增用户成本', tips: '总消耗/新增注册人数', dataIndex: 'newUserRate', label: '应用端指标', align: 'center', width: 80, default: 19, sorter: true,
  98. render: (a: number) => <Statistic value={a || 0} precision={2} />
  99. },
  100. {
  101. title: '人均新增成本', tips: '累计消耗/累计注册人数', dataIndex: 'avgUserRate', label: '应用端指标', align: 'center', width: 80, default: 20, sorter: true,
  102. render: (a: number) => <Statistic value={a || 0} precision={2} />
  103. },
  104. {
  105. title: '人均活跃成本', tips: '累计消耗/DAU', dataIndex: 'avgActiveRate', label: '应用端指标', align: 'center', width: 80, default: 21, sorter: true,
  106. render: (a: number) => <Statistic value={a || 0} precision={2} />
  107. },
  108. {
  109. title: '分享用户人数', dataIndex: 'shareUser', label: '应用端指标', align: 'center', width: 70, default: 22, sorter: true,
  110. render: (a: number) => <Statistic value={a || 0} />
  111. },
  112. {
  113. title: '分享次数', dataIndex: 'shareCount', label: '应用端指标', align: 'center', width: 60, default: 23, sorter: true,
  114. render: (a: number) => <Statistic value={a || 0} />
  115. },
  116. {
  117. title: '人均分享次数', tips: '分享次数/分享用户人数', dataIndex: 'avgShareCount', label: '应用端指标', align: 'center', width: 80, default: 24, sorter: true,
  118. render: (a: number) => <Statistic value={a || 0} />
  119. },
  120. {
  121. title: '分享用户占比', tips: '分享用户人数/DAU', dataIndex: 'shareUserProportion', label: '应用端指标', align: 'center', width: 80, default: 25, sorter: true,
  122. render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
  123. },
  124. {
  125. title: '新增次日留存人数', dataIndex: 'newRetainedTomorrow', label: '应用端指标', align: 'center', width: 80, default: 26, sorter: true,
  126. render: (a: number) => <Statistic value={a || 0} />
  127. },
  128. {
  129. title: '新增注册次日留存率', tips: '新增注册次日留存人数/新增注册人数', dataIndex: 'newRetainedTomorrowRate', label: '应用端指标', align: 'center', width: 80, default: 27, sorter: true,
  130. render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
  131. },
  132. {
  133. title: '活跃用户次日留存人数', dataIndex: 'retainedUserTomorrow', label: '应用端指标', align: 'center', width: 85, default: 28, sorter: true,
  134. render: (a: number) => <Statistic value={a || 0} precision={0} />
  135. },
  136. {
  137. title: '活跃用户次日留存率', tips: '指定时间活跃(即访问小游戏)的用户,在之后的第1天(或周、月),再次访问小游戏的用户数占比', dataIndex: 'retainedUserTomorrowRate', label: '应用端指标', align: 'center', width: 85, default: 29, sorter: true,
  138. render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
  139. },
  140. {
  141. title: '活跃用户人均访问次数', tips: '活跃用户访问次数/活跃用户人数', dataIndex: 'avgActiveUserAccessCount', label: '应用端指标', align: 'center', width: 100, default: 30, sorter: true,
  142. render: (a: number) => <Statistic value={a || 0} />
  143. },
  144. {
  145. title: '活跃用户停留总时长', tips: '活跃用户人均停留时长*活跃用户人数', dataIndex: 'activeDuration', label: '应用端指标', align: 'center', width: 110, default: 31, sorter: true,
  146. render: (a: number) => {
  147. return formatSecondsToTime(a ? Math.round(a) : 0)
  148. }
  149. },
  150. {
  151. title: '活跃用户人均停留时长', tips: '活跃用户停留总时长/活跃用户人数', dataIndex: 'avgActiveDuration', label: '应用端指标', align: 'center', width: 120, default: 32, sorter: true,
  152. render: (a: number) => {
  153. return formatSecondsToTime(a ? Math.round(a) : 0)
  154. }
  155. },
  156. {
  157. title: '广告新增ARPU', tips: '广告变现收入/新增注册人数', dataIndex: 'nweAdArpu', label: '应用端指标', align: 'center', width: 80, default: 33, sorter: true,
  158. render: (a: number) => <Statistic value={a || 0} precision={2} />
  159. },
  160. {
  161. title: '广告总ARPU', tips: '广告累计变现收入/累计注册人数', dataIndex: 'adArpuTotal', label: '应用端指标', align: 'center', width: 80, default: 34, sorter: true,
  162. render: (a: number) => <Statistic value={a || 0} precision={2} />
  163. },
  164. {
  165. title: '激励视频广告收入', dataIndex: 'videoAdIncome', label: '应用端指标', align: 'center', width: 80, sorter: true,
  166. render: (a: number) => <Statistic value={a || 0} precision={2} />
  167. },
  168. {
  169. title: '激励视频广告ecpm', dataIndex: 'videoAdEcpm', label: '应用端指标', align: 'center', width: 80, sorter: true,
  170. render: (a: number) => <Statistic value={a || 0} precision={2} />
  171. },
  172. {
  173. title: '激励视频拉取量', dataIndex: 'videoAdCount', label: '应用端指标', align: 'center', width: 80, sorter: true,
  174. render: (a: number) => <Statistic value={a || 0} />
  175. },
  176. {
  177. title: '人均视频次数', dataIndex: 'avgUserVideoCount', label: '应用端指标', align: 'center', width: 80, sorter: true,
  178. render: (a: number) => <Statistic value={a || 0} />
  179. },
  180. {
  181. title: '插屏广告收入', dataIndex: 'plaqueAdIncome', label: '应用端指标', align: 'center', width: 80, sorter: true,
  182. render: (a: number) => <Statistic value={a || 0} precision={2} />
  183. },
  184. {
  185. title: '插屏广告ecpm', dataIndex: 'plaqueAdEcpm', label: '应用端指标', align: 'center', width: 80, sorter: true,
  186. render: (a: number) => <Statistic value={a || 0} precision={2} />
  187. },
  188. {
  189. title: '插屏广告拉取量', dataIndex: 'plaqueAdCount', label: '应用端指标', align: 'center', width: 80, sorter: true,
  190. render: (a: number) => <Statistic value={a || 0} />
  191. },
  192. {
  193. title: '插屏广告曝光量', dataIndex: 'interstitialExposureCount', label: '应用端指标', align: 'center', width: 80, sorter: true,
  194. render: (a: number) => <Statistic value={a || 0} />
  195. },
  196. {
  197. title: '插屏广告点击量', dataIndex: 'interstitialClickCount', label: '应用端指标', align: 'center', width: 80, sorter: true,
  198. render: (a: number) => <Statistic value={a || 0} />
  199. },
  200. {
  201. title: '激励视频曝光量', dataIndex: 'videoExposureCount', label: '应用端指标', align: 'center', width: 80, sorter: true,
  202. render: (a: number) => <Statistic value={a || 0} />
  203. },
  204. {
  205. title: '激励视频点击量', dataIndex: 'videoClickCount', label: '应用端指标', align: 'center', width: 80, sorter: true,
  206. render: (a: number) => <Statistic value={a || 0} />
  207. },
  208. {
  209. title: 'Banner广告点击量', dataIndex: 'bannerClickCount', label: '应用端指标', align: 'center', width: 80, sorter: true,
  210. render: (a: number) => <Statistic value={a || 0} />
  211. },
  212. {
  213. title: 'Banner广告曝光量', dataIndex: 'bannerExposureCount', label: '应用端指标', align: 'center', width: 80, sorter: true,
  214. render: (a: number) => <Statistic value={a || 0} />
  215. },
  216. {
  217. title: 'Banner广告收入', dataIndex: 'bannerIncome', label: '应用端指标', align: 'center', width: 80, sorter: true,
  218. render: (a: number) => <Statistic value={a || 0} precision={2} />
  219. },
  220. {
  221. title: 'Banner广告ecpm', dataIndex: 'bannerEcpm', label: '应用端指标', align: 'center', width: 80, sorter: true,
  222. render: (a: number) => <Statistic value={a || 0} precision={2} />
  223. },
  224. {
  225. title: 'banner广告拉取量', dataIndex: 'bannerReqSuccCount', label: '应用端指标', align: 'center', width: 80, sorter: true,
  226. render: (a: number) => <Statistic value={a || 0} />
  227. },
  228. {
  229. title: '人均Banner广告广告收益', dataIndex: 'avgUserBannerIncome', label: '应用端指标', align: 'center', width: 100, sorter: true,
  230. render: (a: number) => <Statistic value={a || 0} precision={2} />
  231. },
  232. {
  233. title: '人均激励视频收益', dataIndex: 'avgUserVideoIncome', label: '应用端指标', align: 'center', width: 80, sorter: true,
  234. render: (a: number) => <Statistic value={a || 0} precision={2} />
  235. },
  236. {
  237. title: '人均插屏广告次数', dataIndex: 'avgUserInterstitialCount', label: '应用端指标', align: 'center', width: 80, sorter: true,
  238. render: (a: number) => <Statistic value={a || 0} />
  239. },
  240. {
  241. title: '人均Banner广告次数', dataIndex: 'avgUserBannerCount', label: '应用端指标', align: 'center', width: 80, sorter: true,
  242. render: (a: number) => <Statistic value={a || 0} />
  243. }
  244. ]
  245. },
  246. {
  247. label: '广告媒体端指标',
  248. data: [
  249. {
  250. title: '点击量', dataIndex: 'validClickCount', label: '广告媒体端指标', align: 'center', width: 65, default: 35, sorter: true,
  251. render: (a: number) => <Statistic value={a || 0} />
  252. },
  253. {
  254. title: '小游戏注册人数', dataIndex: 'miniGameRegisterUsers', label: '广告媒体端指标', align: 'center', width: 80, default: 36, sorter: true,
  255. render: (a: number) => <Statistic value={a || 0} />
  256. },
  257. {
  258. title: '小游戏注册率', dataIndex: 'miniGameRegisterRate', label: '广告媒体端指标', align: 'center', width: 80, default: 37, sorter: true,
  259. render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
  260. },
  261. {
  262. title: '小游戏注册成本', dataIndex: 'miniGameRegisterCost', label: '广告媒体端指标', align: 'center', width: 80, default: 38, sorter: true,
  263. render: (a: number) => <Statistic value={a || 0} precision={2} />
  264. },
  265. {
  266. title: '小游戏注册首日广告变现人数(平台上报)', dataIndex: 'miniGameFirstDayAdMonetizationUsers', label: '广告媒体端指标', align: 'center', width: 100, sorter: true,
  267. render: (a: number) => <Statistic value={a || 0} />
  268. },
  269. {
  270. title: '激活首日广告变现人数(平台上报)', dataIndex: 'adMonetizationPlaDedupActive1dPv', label: '广告媒体端指标', align: 'center', width: 100, sorter: true,
  271. render: (a: number) => <Statistic value={a || 0} />
  272. },
  273. {
  274. title: '激活首日广告变现次数(平台上报)', dataIndex: 'incomePv1dPla', label: '广告媒体端指标', align: 'center', width: 100, sorter: true,
  275. render: (a: number) => <Statistic value={a || 0} />
  276. },
  277. {
  278. title: '注册首日广告变现金额(平台上报)', dataIndex: 'miniGameFirstDayAdMonetizationAmount', label: '广告媒体端指标', align: 'center', width: 100, sorter: true,
  279. render: (a: number) => <Statistic value={a || 0} precision={2} />
  280. },
  281. {
  282. title: '首日变现ARPPU', tips: '注册首日广告变现金额(平台上报)/小游戏注册首日广告变现人数(平台上报)', dataIndex: 'miniGameFirstDayAdPayingArpu', label: '广告媒体端指标', align: 'center', width: 80, sorter: true,
  283. render: (a: number) => <Statistic value={a || 0} precision={2} />
  284. },
  285. {
  286. title: '首日变现ARPU', tips: '小游戏注册首日广告变现金额(平台上报)/小游戏注册人数', dataIndex: 'miniGameFirstDayAdPayingArppu', label: '广告媒体端指标', align: 'center', width: 80, sorter: true,
  287. render: (a: number) => <Statistic value={a || 0} precision={2} />
  288. },
  289. {
  290. title: '首日广告变现成本(平台上报)', dataIndex: 'miniGameFirstDayAdPayingCost', label: '广告媒体端指标', align: 'center', width: 80, sorter: true,
  291. render: (a: number) => <Statistic value={a || 0} precision={2} />
  292. },
  293. {
  294. title: '首日ROI', tips: '小游戏注册首日广告变现金额(平台上报)/消耗*100%', dataIndex: 'miniGameFirstDayAdPayingRoi', label: '广告媒体端指标', align: 'center', width: 80, sorter: true,
  295. render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
  296. },
  297. {
  298. title: '激活首24小时广告变现人数(平台上报)', dataIndex: 'adPayingUsers24hPla', label: '广告媒体端指标', align: 'center', width: 100, sorter: true,
  299. render: (a: number) => <Statistic value={a || 0} />
  300. },
  301. {
  302. title: '激活首24小时广告变现次数(平台上报)', dataIndex: 'incomePv24hPla', label: '广告媒体端指标', align: 'center', width: 100, sorter: true,
  303. render: (a: number) => <Statistic value={a || 0} />
  304. },
  305. {
  306. title: '激活首24小时广告变现金额(平台上报)', dataIndex: 'incomeVal24hPla', label: '广告媒体端指标', align: 'center', width: 100, sorter: true,
  307. render: (a: number) => <Statistic value={a || 0} precision={2} />
  308. },
  309. {
  310. title: '激活首24小时广告变现ARPPU(平台上报)', dataIndex: 'firstDayAdPurArppuCost24hPla', label: '广告媒体端指标', align: 'center', width: 100, sorter: true,
  311. render: (a: number) => <Statistic value={a || 0} precision={2} />
  312. },
  313. {
  314. title: '24小时广告变现ARPU(平台上报)', dataIndex: 'firstDayAdPurArpuCost24hPla', label: '广告媒体端指标', align: 'center', width: 100, sorter: true,
  315. render: (a: number) => <Statistic value={a || 0} precision={2} />
  316. },
  317. {
  318. title: '24小时广告变现成本', dataIndex: 'firstDayAdPurArpuCost24hPlaCost', label: '广告媒体端指标', align: 'center', width: 80, sorter: true,
  319. render: (a: number) => <Statistic value={a || 0} precision={2} />
  320. },
  321. {
  322. title: '24小时广告变现ROI', dataIndex: 'firstDayAdPurArpuCost24hPlaRoi', label: '广告媒体端指标', align: 'center', width: 80, sorter: true,
  323. render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
  324. },
  325. {
  326. title: '小游戏注册3日广告变现人数(平台上报)', dataIndex: 'minigame3dIncomeUv', label: '广告媒体端指标', align: 'center', width: 100, sorter: true,
  327. render: (a: number) => <Statistic value={a || 0} />
  328. },
  329. {
  330. title: '注册3日广告变现次数(平台上报)', dataIndex: 'minigame3dIncomeCount', label: '广告媒体端指标', align: 'center', width: 100, sorter: true,
  331. render: (a: number) => <Statistic value={a || 0} />
  332. },
  333. {
  334. title: '激活3日广告变现次数(平台上报)', dataIndex: 'adMonetizationPlaDedupActive3dPv', label: '广告媒体端指标', align: 'center', width: 100, sorter: true,
  335. render: (a: number) => <Statistic value={a || 0} />
  336. },
  337. {
  338. title: '小游戏注册3日广告变现金额(平台上报)', dataIndex: 'miniGameAdMonetizationAmountD3', label: '广告媒体端指标', align: 'center', width: 100, sorter: true,
  339. render: (a: number) => <Statistic value={a || 0} precision={2} />
  340. },
  341. {
  342. title: '3日广告变现ARPPU(平台上报)', dataIndex: 'adPurArppuDay3Cost', label: '广告媒体端指标', align: 'center', width: 100, sorter: true,
  343. render: (a: number) => <Statistic value={a || 0} precision={2} />
  344. },
  345. {
  346. title: '3日广告变现ARPU(平台上报)', dataIndex: 'adPurArpuDay3Cost', label: '广告媒体端指标', align: 'center', width: 100, sorter: true,
  347. render: (a: number) => <Statistic value={a || 0} precision={2} />
  348. },
  349. {
  350. title: '3日广告变现成本(平台上报)', dataIndex: 'adPurDay3Cost', label: '广告媒体端指标', align: 'center', width: 100, sorter: true,
  351. render: (a: number) => <Statistic value={a || 0} precision={2} />
  352. },
  353. {
  354. title: '3日广告变现ROI', dataIndex: 'adPurDay3Roi', label: '广告媒体端指标', align: 'center', width: 80, sorter: true,
  355. render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
  356. },
  357. {
  358. title: '小游戏注册7日广告变现人数(平台上报)', dataIndex: 'minigame7dIncomeUv', label: '广告媒体端指标', align: 'center', width: 100, sorter: true,
  359. render: (a: number) => <Statistic value={a || 0} />
  360. },
  361. {
  362. title: '激活7日变现人数(平台上报)', dataIndex: 'adMonetizationPlaDedupActive7dPv', label: '广告媒体端指标', align: 'center', width: 100, sorter: true,
  363. render: (a: number) => <Statistic value={a || 0} />
  364. },
  365. {
  366. title: '激活7日广告变现次数(平台上报)', dataIndex: 'minigame7dIncomeCount', label: '广告媒体端指标', align: 'center', width: 100, sorter: true,
  367. render: (a: number) => <Statistic value={a || 0} />
  368. },
  369. {
  370. title: '小游戏注册7日广告变现金额(平台上报)', dataIndex: 'miniGameRegD7Amount', label: '广告媒体端指标', align: 'center', width: 100, sorter: true,
  371. render: (a: number) => <Statistic value={a || 0} precision={2} />
  372. },
  373. {
  374. title: '7日广告变现ARPPU(平台上报)', dataIndex: 'miniGameRegD7Arppu', label: '广告媒体端指标', align: 'center', width: 100, sorter: true,
  375. render: (a: number) => <Statistic value={a || 0} precision={2} />
  376. },
  377. {
  378. title: '7日广告变现ARPU(平台上报)', dataIndex: 'miniGameRegD7Arpu', label: '广告媒体端指标', align: 'center', width: 80, sorter: true,
  379. render: (a: number) => <Statistic value={a || 0} precision={2} />
  380. },
  381. {
  382. title: '7日广告变现成本(平台上报', dataIndex: 'miniGameRegD7Cost', label: '广告媒体端指标', align: 'center', width: 80, sorter: true,
  383. render: (a: number) => <Statistic value={a || 0} precision={2} />
  384. },
  385. {
  386. title: '7日广告变现ROI', dataIndex: 'miniGameRegD7Roi', label: '广告媒体端指标', align: 'center', width: 80, sorter: true,
  387. render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
  388. },
  389. {
  390. title: '小游戏广告变现人数(平台上报)', dataIndex: 'miniGameAdMonetizationUsers', label: '广告媒体端指标', align: 'center', width: 100, sorter: true,
  391. render: (a: number) => <Statistic value={a || 0} />
  392. },
  393. {
  394. title: '广告变现次数(平台上报)', dataIndex: 'incomePvPla', label: '广告媒体端指标', align: 'center', width: 80, sorter: true,
  395. render: (a: number) => <Statistic value={a || 0} />
  396. },
  397. {
  398. title: '小游戏广告变现金额(平台上报)', dataIndex: 'miniGameAdMonetizationAmount', label: '广告媒体端指标', align: 'center', width: 100, sorter: true,
  399. render: (a: number) => <Statistic value={a || 0} precision={2} />
  400. },
  401. {
  402. title: '广告变现ARPPU(平台上报)', dataIndex: 'miniGameAdMonetizationArppu', label: '广告媒体端指标', align: 'center', width: 80, sorter: true,
  403. render: (a: number) => <Statistic value={a || 0} precision={2} />
  404. },
  405. {
  406. title: '广告变现ARPU(平台上报)', dataIndex: 'miniGameAdMonetizationArpu', label: '广告媒体端指标', align: 'center', width: 80, sorter: true,
  407. render: (a: number) => <Statistic value={a || 0} precision={2} />
  408. },
  409. {
  410. title: '广告变现成本(平台上报)', dataIndex: 'miniGameAdMonetizationCost', label: '广告媒体端指标', align: 'center', width: 80, sorter: true,
  411. render: (a: number) => <Statistic value={a || 0} precision={2} />
  412. },
  413. {
  414. title: '广告变现总ROI', dataIndex: 'miniGameAdMonetizationRoi', label: '广告媒体端指标', align: 'center', width: 80, default: 39, sorter: true,
  415. render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 0.5 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
  416. }
  417. ]
  418. }
  419. ]
  420. }
  421. export default columns12