tableConfigDay.tsx 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530
  1. import WidthEllipsis from "@/components/widthEllipsis"
  2. import { Progress, Statistic } from "antd"
  3. import React from "react"
  4. import { ADSTATUSEnum, LANDINGTYPE, PRICINGEnum, PRODUCT_TYPE_ENUM, PROJECTSTATUs } from "../../const"
  5. import { APPTYPE } from "@/pages/iaaSystem/manage/const"
  6. import './index.less'
  7. function columns12(): { label: string, fieldSHow?: { label: string, saveField: string, defaultValue: any[], data: any[] }, data: any[] }[] {
  8. return [
  9. {
  10. label: '账户信息',
  11. data: [
  12. {
  13. title: '推广账号名称', dataIndex: 'accountName', label: '账户信息', align: 'center', width: 100, default: 3,
  14. render: (a: string) => (<WidthEllipsis value={a} />)
  15. },
  16. {
  17. title: '推广账号ID', dataIndex: 'accountId', label: '账户信息', align: 'center', width: 100, default: 2,
  18. render: (a: string) => (<WidthEllipsis value={a} isCopy />)
  19. },
  20. {
  21. title: '备注', dataIndex: 'notes', label: '账户信息', align: 'center', width: 100, default: 4,
  22. render: (a: string) => (<WidthEllipsis value={a} />)
  23. },
  24. {
  25. title: '服务商', dataIndex: 'service', label: '账户信息', align: 'center', width: 100, default: 5,
  26. render: (a: string) => (<WidthEllipsis value={a} />)
  27. },
  28. {
  29. title: '渠道名称', dataIndex: 'agentName', label: '账户信息', align: 'center', width: 80, default: 16,
  30. render: (a: string) => (<WidthEllipsis value={a} />)
  31. },
  32. {
  33. title: '渠道ID', dataIndex: 'agentId', label: '账户信息', align: 'center', width: 80,
  34. render: (a: string) => (<WidthEllipsis value={a} />)
  35. },
  36. {
  37. title: '投手', dataIndex: 'zxPitcherName', label: '账户信息', align: 'center', width: 60, default: 15,
  38. render: (a: string) => (<WidthEllipsis value={a} />)
  39. },
  40. {
  41. title: '余额', dataIndex: 'balance', label: '账户信息', align: 'right', width: 75, sorter: true, default: 21,
  42. render: (a: string) => <Statistic value={a || 0} precision={2} />
  43. },
  44. {
  45. title: '业务类型', dataIndex: 'productType', label: '账户信息', align: 'center', width: 80, default: 11,
  46. render: (a: string) => (<WidthEllipsis value={PRODUCT_TYPE_ENUM[a as keyof typeof PRODUCT_TYPE_ENUM]} />)
  47. },
  48. {
  49. title: '应用类型', dataIndex: 'appType', label: '账户信息', align: 'center', width: 80, default: 12,
  50. render: (a: string) => (<WidthEllipsis value={APPTYPE[a as keyof typeof APPTYPE]?.text} />)
  51. },
  52. {
  53. title: '应用', dataIndex: 'appName', label: '账户信息', align: 'center', width: 100, default: 13,
  54. render: (a: string) => (<WidthEllipsis value={a} />)
  55. },
  56. {
  57. title: '应用ID', dataIndex: 'appId', label: '账户信息', align: 'center', width: 100,
  58. render: (a: string) => (<WidthEllipsis value={a} />)
  59. },
  60. {
  61. title: '小程序名称', dataIndex: 'mpName', label: '账户信息', align: 'center', width: 100, default: 14,
  62. render: (a: string, b: any) => (<WidthEllipsis isCopy value={a} />)
  63. },
  64. {
  65. title: '小程序ID', dataIndex: 'mpId', label: '账户信息', align: 'center', width: 100,
  66. render: (a: string, b: any) => (<WidthEllipsis isCopy value={a} />)
  67. }
  68. ]
  69. },
  70. {
  71. label: '广告信息',
  72. data: [
  73. {
  74. title: '广告组', dataIndex: 'campaignId', label: '广告信息', align: 'center', width: 100, default: 7,
  75. render: (a: string) => (<WidthEllipsis value={a} />)
  76. },
  77. {
  78. title: '广告组名称', dataIndex: 'campaignName', label: '广告信息', align: 'center', width: 100, default: 8,
  79. render: (a: string) => (<WidthEllipsis value={a} />)
  80. },
  81. {
  82. title: '广告名称', dataIndex: 'adName', label: '广告信息', align: 'center', width: 100, default: 9,
  83. render: (a: string) => (<WidthEllipsis value={a} />)
  84. },
  85. {
  86. title: '广告ID', dataIndex: 'adId', label: '广告信息', align: 'center', width: 80, default: 6,
  87. render: (a: string) => (<WidthEllipsis value={a} isCopy />)
  88. },
  89. {
  90. title: '广告状态', dataIndex: 'adStatus', label: '广告信息', align: 'center', width: 95, default: 17,
  91. render: (a: string) => (<WidthEllipsis value={(ADSTATUSEnum as any)[a]} />)
  92. },
  93. {
  94. title: '项目名称', dataIndex: 'projectName', label: '广告信息', align: 'center', width: 75, default: 18,
  95. render: (a: string) => (<WidthEllipsis value={a} />)
  96. },
  97. {
  98. title: '项目ID', dataIndex: 'projectId', label: '广告信息', align: 'center', width: 75,
  99. render: (a: string) => (<WidthEllipsis value={a} />)
  100. },
  101. {
  102. title: '项目类型', dataIndex: 'adType', label: '广告信息', align: 'center', width: 75, default: 19,
  103. render: (a: string) => (<WidthEllipsis value={a === 'ALL' ? '所有广告' : a === 'SEARCH' ? '搜索广告' : '--'} />)
  104. },
  105. {
  106. title: '项目状态', dataIndex: 'proStatus', label: '广告信息', align: 'center', width: 75, default: 20,
  107. render: (a: string) => (<WidthEllipsis value={(PROJECTSTATUs as any)[a]} />)
  108. },
  109. {
  110. title: '推广目标', dataIndex: 'landingType', label: '广告信息', align: 'center', width: 100, default: 10,
  111. render: (a: string) => (<WidthEllipsis value={(LANDINGTYPE as any)[a]} />)
  112. },
  113. {
  114. title: '媒体平台', dataIndex: 'mediaPlatform', label: '广告信息', align: 'center', width: 80,
  115. render: (a: string) => (<WidthEllipsis value={a} />)
  116. },
  117. {
  118. title: '出价方式', dataIndex: 'pricing', label: '广告信息', align: 'center', width: 80, default: 22,
  119. render: (a: string) => (<WidthEllipsis value={(PRICINGEnum as any)[a]} />)
  120. },
  121. {
  122. title: '当前出价', dataIndex: 'cpaBid', label: '广告信息', align: 'center', width: 75, default: 23, sorter: true,
  123. render: (a: string) => <Statistic value={a || 0} />
  124. },
  125. {
  126. title: '广告日预算', dataIndex: 'dayBudget', label: '广告信息', align: 'right', width: 75, default: 24, sorter: true,
  127. render: (a: string) => <Statistic value={a || 0} />
  128. },
  129. {
  130. title: '投放时间', dataIndex: 'startTime', label: '广告信息', align: 'center', width: 180, default: 31,
  131. render: (a: string, b: any) => b?.accountId === '总计' ? '--' : <WidthEllipsis value={a + (b?.endTime ? '~' + b?.endTime : '')} />
  132. },
  133. {
  134. title: '广告创建时间', dataIndex: 'promotionCreateTime', label: '广告信息', align: 'center', width: 130, default: 32,
  135. render: (a: string, b: any) => <WidthEllipsis value={a} />
  136. },
  137. ]
  138. },
  139. {
  140. label: '消耗数据',
  141. data: [
  142. {
  143. title: '今日消耗', dataIndex: 'cost', label: '消耗数据', align: 'center', width: 85, default: 33, sorter: true,
  144. className: 'padding_0',
  145. render: (a: number) => <div style={{ height: 27, position: 'relative' }}>
  146. <Progress
  147. strokeColor={{
  148. from: '#ff5900',
  149. to: '#ffd380',
  150. }}
  151. status="active"
  152. showInfo={false}
  153. percent={a ? a / 20000 * 100 : 0}
  154. />
  155. <span style={{ position: 'absolute', left: 0, top: 2, bottom: 0, right: 0, padding: '0 5px' }}><Statistic value={a || 0} valueStyle={a >= 20000 ? { color: '#000', fontWeight: 500 } : { fontWeight: 500 }} /></span>
  156. </div>
  157. },
  158. {
  159. title: '广告总消耗', dataIndex: 'adTotalCost', label: '消耗数据', align: 'center', width: 85, default: 34, sorter: true,
  160. className: 'padding_0',
  161. render: (a: number) => <div style={{ height: 27, position: 'relative' }}>
  162. <Progress
  163. strokeColor={{
  164. from: '#10c1e9',
  165. to: '#6892d0',
  166. }}
  167. status="active"
  168. showInfo={false}
  169. percent={a ? a / 20000 * 100 : 0}
  170. />
  171. <span style={{ position: 'absolute', left: 0, top: 2, bottom: 0, right: 0, padding: '0 5px' }}><Statistic value={a || 0} valueStyle={a >= 20000 ? { color: '#000', fontWeight: 500 } : { fontWeight: 500 }} /></span>
  172. </div>
  173. }
  174. ]
  175. },
  176. {
  177. label: '广告媒体端数据',
  178. data: [
  179. {
  180. title: '转化目标', dataIndex: 'convertTarget', label: '广告媒体端数据', align: 'center', width: 65, default: 25, sorter: true, className: "adDataBackColorClass",
  181. render: (a: string) => <Statistic value={a} />
  182. },
  183. {
  184. title: '转化目标量', dataIndex: 'convertCount', label: '广告媒体端数据', align: 'center', width: 65, default: 40, sorter: true, className: "adDataBackColorClass",
  185. render: (a: string) => <Statistic value={a || 0} />
  186. },
  187. {
  188. title: '转化目标成本', dataIndex: 'convertCost', label: '广告媒体端数据', align: 'center', width: 65, default: 27, sorter: true, className: "adDataBackColorClass",
  189. render: (a: string) => <Statistic value={a || 0} precision={2} />
  190. },
  191. {
  192. title: '转化目标率', dataIndex: 'convertRate', label: '广告媒体端数据', align: 'center', width: 70, default: 26, sorter: true, className: "adDataBackColorClass",
  193. render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 50 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
  194. },
  195. {
  196. title: '激活数', dataIndex: 'active', label: '广告媒体端数据', align: 'center', width: 65, default: 41, sorter: true, className: "adDataBackColorClass",
  197. render: (a: string) => <Statistic value={a || 0} />
  198. },
  199. {
  200. title: '激活成本', dataIndex: 'activeCost', label: '广告媒体端数据', align: 'right', width: 75, default: 42, sorter: true, className: "adDataBackColorClass",
  201. render: (a: string) => <Statistic value={a || 0} />
  202. },
  203. {
  204. title: '激活率', dataIndex: 'activeRate', label: '广告媒体端数据', align: 'center', width: 70, default: 43, sorter: true, className: "adDataBackColorClass",
  205. render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 50 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
  206. },
  207. {
  208. title: '注册数', dataIndex: 'register', label: '广告媒体端数据', align: 'center', width: 65, default: 49, sorter: true, className: "adDataBackColorClass",
  209. render: (a: string) => <Statistic value={a || 0} />
  210. },
  211. {
  212. title: '注册成本(广告)', dataIndex: 'activeRegisterCost', label: '广告媒体端数据', align: 'right', width: 75, default: 50, sorter: true, className: "adDataBackColorClass",
  213. render: (a: string) => <Statistic value={a || 0} />
  214. },
  215. {
  216. title: '注册率', dataIndex: 'activeRegisterRate', label: '广告媒体端数据', align: 'center', width: 70, default: 51, sorter: true, className: "adDataBackColorClass",
  217. render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 50 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
  218. },
  219. {
  220. title: '关键行为数', dataIndex: 'gameAddiction', label: '广告媒体端数据', align: 'center', width: 65, default: 46, sorter: true, className: "adDataBackColorClass",
  221. render: (a: string) => <Statistic value={a || 0} />
  222. },
  223. {
  224. title: '关键行为成本', dataIndex: 'gameAddictionCost', label: '广告媒体端数据', align: 'right', width: 75, default: 44, sorter: true, className: "adDataBackColorClass",
  225. render: (a: string) => <Statistic value={a || 0} />
  226. },
  227. {
  228. title: '关键行为率', dataIndex: 'gameAddictionRate', label: '广告媒体端数据', align: 'center', width: 70, default: 45, sorter: true, className: "adDataBackColorClass",
  229. render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 50 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
  230. },
  231. {
  232. title: '次留成本', dataIndex: 'attributionNextDayOpenCost', label: '广告媒体端数据', align: 'right', width: 75, default: 70, sorter: true, className: "adDataBackColorClass",
  233. render: (a: string) => <Statistic value={a || 0} />
  234. },
  235. {
  236. title: '次日留存数', dataIndex: 'attributionNextDayOpenCnt', label: '广告媒体端数据', align: 'center', width: 65, sorter: true, className: "adDataBackColorClass",
  237. render: (a: string) => <Statistic value={a || 0} />
  238. },
  239. {
  240. title: '次留率(广告)', dataIndex: 'attributionNextDayOpenRate', label: '广告媒体端数据', align: 'center', width: 70, default: 72, sorter: true, className: "adDataBackColorClass",
  241. render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 50 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
  242. },
  243. {
  244. title: '次留回传数', dataIndex: 'nextDayOpen', label: '广告媒体端数据', align: 'center', width: 75, sorter: true, className: "adDataBackColorClass",
  245. render: (a: string) => <Statistic value={a || 0} />
  246. },
  247. {
  248. title: '2日留存数', dataIndex: 'attributionRetention2dCnt', label: '广告媒体端数据', align: 'center', width: 65, sorter: true, className: "adDataBackColorClass",
  249. render: (a: string) => <Statistic value={a || 0} />
  250. },
  251. {
  252. title: '2日留存成本', dataIndex: 'attributionRetention2dCost', label: '广告媒体端数据', align: 'right', width: 75, sorter: true, className: "adDataBackColorClass",
  253. render: (a: string) => <Statistic value={a || 0} />
  254. },
  255. {
  256. title: '2日留存率', dataIndex: 'attributionRetention2dRate', label: '广告媒体端数据', align: 'center', width: 70, sorter: true, className: "adDataBackColorClass",
  257. render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 50 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
  258. },
  259. {
  260. title: '3日留存数', dataIndex: 'attributionRetention3dCnt', label: '广告媒体端数据', align: 'center', width: 65, sorter: true, className: "adDataBackColorClass",
  261. render: (a: string) => <Statistic value={a || 0} />
  262. },
  263. {
  264. title: '3日留存成本', dataIndex: 'attributionRetention3dCost', label: '广告媒体端数据', align: 'right', width: 75, sorter: true, className: "adDataBackColorClass",
  265. render: (a: string) => <Statistic value={a || 0} />
  266. },
  267. {
  268. title: '3日留存率', dataIndex: 'attributionRetention3dRate', label: '广告媒体端数据', align: 'center', width: 70, sorter: true, className: "adDataBackColorClass",
  269. render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 50 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
  270. },
  271. {
  272. title: '4日留存数', dataIndex: 'attributionRetention4dCnt', label: '广告媒体端数据', align: 'center', width: 65, sorter: true, className: "adDataBackColorClass",
  273. render: (a: string) => <Statistic value={a || 0} />
  274. },
  275. {
  276. title: '4日留存成本', dataIndex: 'attributionRetention4dCost', label: '广告媒体端数据', align: 'right', width: 75, sorter: true, className: "adDataBackColorClass",
  277. render: (a: string) => <Statistic value={a || 0} />
  278. },
  279. {
  280. title: '4日留存率', dataIndex: 'attributionRetention4dRate', label: '广告媒体端数据', align: 'center', width: 70, sorter: true, className: "adDataBackColorClass",
  281. render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 50 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
  282. },
  283. {
  284. title: '5日留存数', dataIndex: 'attributionRetention5dCnt', label: '广告媒体端数据', align: 'center', width: 65, sorter: true, className: "adDataBackColorClass",
  285. render: (a: string) => <Statistic value={a || 0} />
  286. },
  287. {
  288. title: '5日留存成本', dataIndex: 'attributionRetention5dCost', label: '广告媒体端数据', align: 'right', width: 75, sorter: true, className: "adDataBackColorClass",
  289. render: (a: string) => <Statistic value={a || 0} />
  290. },
  291. {
  292. title: '5日留存率', dataIndex: 'attributionRetention5dRate', label: '广告媒体端数据', align: 'center', width: 70, sorter: true, className: "adDataBackColorClass",
  293. render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 50 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
  294. },
  295. {
  296. title: '6日留存数', dataIndex: 'attributionRetention6dCnt', label: '广告媒体端数据', align: 'center', width: 65, sorter: true, className: "adDataBackColorClass",
  297. render: (a: string) => <Statistic value={a || 0} />
  298. },
  299. {
  300. title: '6日留存成本', dataIndex: 'attributionRetention6dCost', label: '广告媒体端数据', align: 'right', width: 75, sorter: true, className: "adDataBackColorClass",
  301. render: (a: string) => <Statistic value={a || 0} />
  302. },
  303. {
  304. title: '6日留存率', dataIndex: 'attributionRetention6dRate', label: '广告媒体端数据', align: 'center', width: 70, sorter: true, className: "adDataBackColorClass",
  305. render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 50 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
  306. },
  307. {
  308. title: '7日留存数', dataIndex: 'attributionRetention7dCnt', label: '广告媒体端数据', align: 'center', width: 65, sorter: true, className: "adDataBackColorClass",
  309. render: (a: string) => <Statistic value={a || 0} />
  310. },
  311. {
  312. title: '7日留存成本', dataIndex: 'attributionRetention7dCost', label: '广告媒体端数据', align: 'right', width: 75, sorter: true, className: "adDataBackColorClass",
  313. render: (a: string) => <Statistic value={a || 0} />
  314. },
  315. {
  316. title: '7日留存总数', dataIndex: 'attributionRetention7dSumCnt', label: '广告媒体端数据', align: 'center', width: 65, sorter: true, default: 74, className: "adDataBackColorClass",
  317. render: (a: string) => <Statistic value={a || 0} />
  318. },
  319. {
  320. title: '7日留存率', dataIndex: 'attributionRetention7dTotalCost', label: '广告媒体端数据', align: 'center', width: 70, sorter: true, className: "adDataBackColorClass",
  321. render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 50 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
  322. },
  323. {
  324. title: '7日留存总成本', dataIndex: 'attributionRetention7dCost', label: '广告媒体端数据', align: 'right', width: 75, sorter: true, default: 73, className: "adDataBackColorClass",
  325. render: (a: string) => <Statistic value={a || 0} />
  326. },
  327. ]
  328. },
  329. {
  330. label: '小程序/小游戏变现指标',
  331. data: [
  332. {
  333. title: '小程序/小游戏当日LTV(首日)', dataIndex: 'attributionMicroGame0dLtv', label: '小程序/小游戏变现指标', align: 'center', width: 85,
  334. render: (a: string) => <Statistic value={a || 0} />
  335. },
  336. {
  337. title: '小程序/小游戏激活后三日LTV', dataIndex: 'attributionMicroGame3dLtv', label: '小程序/小游戏变现指标', align: 'center', width: 85,
  338. render: (a: string) => <Statistic value={a || 0} />
  339. },
  340. {
  341. title: '小程序/小游戏当日(首日)广告变现ROI', dataIndex: 'attributionMicroGame0dRoi', label: '小程序/小游戏变现指标', align: 'center', width: 95, sorter: true,
  342. render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 50 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
  343. },
  344. {
  345. title: '小程序/小游戏激活后三日广告变现ROI', dataIndex: 'attributionMicroGame3dRoi', label: '小程序/小游戏变现指标', align: 'center', width: 95, sorter: true,
  346. render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 50 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
  347. },
  348. {
  349. title: '小程序/小游戏激活后七日广告变现ROI', dataIndex: 'attributionMicroGame7dRoi', label: '小程序/小游戏变现指标', align: 'center', width: 95, sorter: true,
  350. render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 50 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
  351. },
  352. {
  353. title: '小程序/小游戏激活后七日LTV', dataIndex: 'attributionMicroGame7dLtv', label: '小程序/小游戏变现指标', align: 'center', width: 85,
  354. render: (a: string) => <Statistic value={a || 0} />
  355. },
  356. ]
  357. },
  358. {
  359. label: '应用端数据指标',
  360. data: [
  361. {
  362. title: '项目预算', dataIndex: 'proBudget', label: '应用端数据指标', align: 'right', width: 75, default: 28, sorter: true, className: 'payDataBackColorClass',
  363. render: (a: string) => <Statistic value={a || 0} />
  364. },
  365. {
  366. title: '预算类型', dataIndex: 'budgetMode', label: '应用端数据指标', align: 'center', width: 70, default: 29, className: 'payDataBackColorClass',
  367. render: (a: string) => (<WidthEllipsis value={a === 'BUDGET_MODE_DAY' ? '日预算' : a === 'BUDGET_MODE_TOTAL' ? '总预算' : '--'} />)
  368. },
  369. {
  370. title: '深度转化ROI系数', dataIndex: 'roiGoal', label: '应用端数据指标', align: 'center', width: 75, default: 30, className: 'payDataBackColorClass',
  371. render: (a: string) => <Statistic value={a || 0} />
  372. },
  373. {
  374. title: '曝光量', dataIndex: 'showCount', label: '应用端数据指标', align: 'center', width: 70, default: 35, sorter: true, className: 'payDataBackColorClass',
  375. render: (a: string) => <Statistic value={a || 0} />
  376. },
  377. {
  378. title: '点击量', dataIndex: 'click', label: '应用端数据指标', align: 'center', width: 70, default: 36, sorter: true, className: 'payDataBackColorClass',
  379. render: (a: string) => <Statistic value={a || 0} />
  380. },
  381. {
  382. title: '点击率', dataIndex: 'ctr', label: '应用端数据指标', align: 'center', width: 70, default: 37, sorter: true, className: 'payDataBackColorClass',
  383. render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 50 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
  384. },
  385. {
  386. title: '点击均价', dataIndex: 'avgClickCost', label: '应用端数据指标', align: 'center', width: 65, default: 38, sorter: true, className: 'payDataBackColorClass',
  387. render: (a: string) => <Statistic value={a || 0} precision={2} />
  388. },
  389. {
  390. title: '千次曝光成本', dataIndex: 'avgShowCost', label: '应用端数据指标', align: 'right', width: 65, default: 39, sorter: true, className: 'payDataBackColorClass',
  391. render: (a: string) => <Statistic value={a || 0} precision={2} />
  392. },
  393. {
  394. title: '今日注册人数', dataIndex: 'todayRegUser', label: '应用端数据指标', align: 'center', width: 65, default: 47, sorter: true, className: 'payDataBackColorClass',
  395. render: (a: string) => <Statistic value={a || 0} />
  396. },
  397. {
  398. title: '广告总注册人数', dataIndex: 'totalRegUser', label: '应用端数据指标', align: 'center', width: 65, default: 48, sorter: true, className: 'payDataBackColorClass',
  399. render: (a: string) => <Statistic value={a || 0} />
  400. },
  401. {
  402. title: '注册成本(应用)', dataIndex: 'regCost', label: '应用端数据指标', align: 'right', width: 75, sorter: true, className: 'payDataBackColorClass',
  403. render: (a: string) => <Statistic value={a || 0} />
  404. },
  405. {
  406. title: '人均新增成本', dataIndex: 'totalRegCost', label: '应用端数据指标', align: 'right', width: 75, default: 52, sorter: true, className: 'payDataBackColorClass',
  407. render: (a: string) => <Statistic value={a || 0} />
  408. },
  409. {
  410. title: '注册首日广告变现人数', dataIndex: 'regFirstUser', label: '应用端数据指标', align: 'center', width: 85, default: 53, sorter: true, className: 'payDataBackColorClass',
  411. render: (a: string) => <Statistic value={a || 0} />
  412. },
  413. {
  414. title: '注册首日广告变现次数', dataIndex: 'regFirstCnt', label: '应用端数据指标', align: 'center', width: 85, default: 54, sorter: true, className: 'payDataBackColorClass',
  415. render: (a: string) => <Statistic value={a || 0} />
  416. },
  417. {
  418. title: '注册首日广告变现金额', dataIndex: 'regFirstAmount', label: '应用端数据指标', align: 'right', width: 85, default: 55, sorter: true, className: 'payDataBackColorClass',
  419. render: (a: string) => <Statistic value={a || 0} />
  420. },
  421. {
  422. title: '注册首日变现ROI', dataIndex: 'regFirstRoi', label: '应用端数据指标', align: 'center', width: 70, default: 56, sorter: true, className: 'payDataBackColorClass',
  423. render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 50 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
  424. },
  425. {
  426. title: '注册24小时广告变现人数', dataIndex: 'regTwentyFourUser', label: '应用端数据指标', align: 'center', width: 85, default: 57, sorter: true, className: 'payDataBackColorClass',
  427. render: (a: string) => <Statistic value={a || 0} />
  428. },
  429. {
  430. title: '注册24小时广告变现次数', dataIndex: 'regTwentyFourCnt', label: '应用端数据指标', align: 'center', width: 85, default: 58, sorter: true, className: 'payDataBackColorClass',
  431. render: (a: string) => <Statistic value={a || 0} />
  432. },
  433. {
  434. title: '注册24小时广告变现金额', dataIndex: 'regTwentyFourAmount', label: '应用端数据指标', align: 'right', width: 85, default: 59, sorter: true, className: 'payDataBackColorClass',
  435. render: (a: string) => <Statistic value={a || 0} />
  436. },
  437. {
  438. title: '注册24小时变现ROI', dataIndex: 'regTwentyFourRoi', label: '应用端数据指标', align: 'center', width: 70, default: 60, sorter: true, className: 'payDataBackColorClass',
  439. render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 50 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
  440. },
  441. {
  442. title: '注册3日广告变现人数', dataIndex: 'regThreeUser', label: '应用端数据指标', align: 'center', width: 85, sorter: true, className: 'payDataBackColorClass',
  443. render: (a: string) => <Statistic value={a || 0} />
  444. },
  445. {
  446. title: '注册3日广告变现次数', dataIndex: 'regThreeCnt', label: '应用端数据指标', align: 'center', width: 85, sorter: true, className: 'payDataBackColorClass',
  447. render: (a: string) => <Statistic value={a || 0} />
  448. },
  449. {
  450. title: '注册3日广告变现金额', dataIndex: 'regThreeAmount', label: '应用端数据指标', align: 'right', width: 85, sorter: true, className: 'payDataBackColorClass',
  451. render: (a: string) => <Statistic value={a || 0} />
  452. },
  453. {
  454. title: '注册3日变现ROI', dataIndex: 'regThreeRoi', label: '应用端数据指标', align: 'center', width: 70, sorter: true, className: 'payDataBackColorClass',
  455. render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 50 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
  456. },
  457. {
  458. title: '注册7日广告变现人数', dataIndex: 'regSevenUser', label: '应用端数据指标', align: 'center', width: 85, sorter: true, className: 'payDataBackColorClass',
  459. render: (a: string) => <Statistic value={a || 0} />
  460. },
  461. {
  462. title: '注册7日广告变现次数', dataIndex: 'regSevenCnt', label: '应用端数据指标', align: 'center', width: 85, sorter: true, className: 'payDataBackColorClass',
  463. render: (a: string) => <Statistic value={a || 0} />
  464. },
  465. {
  466. title: '注册7日广告变现金额', dataIndex: 'regSevenAmount', label: '应用端数据指标', align: 'right', width: 85, sorter: true, className: 'payDataBackColorClass',
  467. render: (a: string) => <Statistic value={a || 0} />
  468. },
  469. {
  470. title: '注册7日变现ROI', dataIndex: 'regSevenRoi', label: '应用端数据指标', align: 'center', width: 70, sorter: true, className: 'payDataBackColorClass',
  471. render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 50 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
  472. },
  473. {
  474. title: '累计首日广告变现人数', dataIndex: 'regTotalUser', label: '应用端数据指标', align: 'center', width: 85, default: 61, sorter: true, className: 'payDataBackColorClass',
  475. render: (a: string) => <Statistic value={a || 0} />
  476. },
  477. {
  478. title: '累计广告变现次数', dataIndex: 'regTotalCnt', label: '应用端数据指标', align: 'center', width: 85, default: 62, sorter: true, className: 'payDataBackColorClass',
  479. render: (a: string) => <Statistic value={a || 0} />
  480. },
  481. {
  482. title: '累计广告变现金额', dataIndex: 'regTotalAmount', label: '应用端数据指标', align: 'right', width: 85, default: 63, sorter: true, className: 'payDataBackColorClass',
  483. render: (a: string) => <Statistic value={a || 0} />
  484. },
  485. {
  486. title: '累计广告变现ROI', dataIndex: 'regTotalRoi', label: '应用端数据指标', align: 'center', width: 70, default: 64, sorter: true, className: 'payDataBackColorClass',
  487. render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 50 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
  488. },
  489. {
  490. title: '首日新增ARPU', dataIndex: 'firstNewArpu', label: '应用端数据指标', align: 'center', width: 80, default: 65, sorter: true, className: 'payDataBackColorClass',
  491. render: (a: number) => <Statistic value={a || 0} precision={2} />
  492. },
  493. {
  494. title: '广告总ARPU', dataIndex: 'adTotalArpu', label: '应用端数据指标', align: 'center', width: 80, default: 66, sorter: true, className: 'payDataBackColorClass',
  495. render: (a: number) => <Statistic value={a || 0} precision={2} />
  496. },
  497. {
  498. title: '首日ecpm', dataIndex: 'firstEcpm', label: '应用端数据指标', align: 'center', width: 80, default: 67, sorter: true, className: 'payDataBackColorClass',
  499. render: (a: number, b: any) => <Statistic value={a || 0} precision={2} />
  500. },
  501. {
  502. title: '总ecpm', dataIndex: 'totalEcpm', label: '应用端数据指标', align: 'center', width: 80, default: 68, sorter: true, className: 'payDataBackColorClass',
  503. render: (a: number, b: any) => <Statistic value={a || 0} precision={2} />
  504. },
  505. {
  506. title: '人均广告有效观看次数', dataIndex: 'userAvgLookCnt', label: '应用端数据指标', align: 'center', width: 85, default: 69, sorter: true, className: 'payDataBackColorClass',
  507. render: (a: string) => <Statistic value={a || 0} />
  508. },
  509. {
  510. title: '用户广告转化率', dataIndex: 'userAdConvertRate', label: '应用端数据指标', align: 'center', width: 70, sorter: true, className: 'payDataBackColorClass',
  511. render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 50 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
  512. },
  513. {
  514. title: '次日留存率(应用)', dataIndex: 'active2Rate', label: '应用端数据指标', align: 'center', width: 70, sorter: true, className: 'payDataBackColorClass',
  515. render: (a: number) => <Statistic value={a ? a * 100 : 0} precision={2} valueStyle={!a ? {} : a >= 50 ? { color: 'red' } : { color: '#0f990f' }} suffix="%" />
  516. },
  517. {
  518. title: '次日留存人数', dataIndex: 'active2User', label: '应用端数据指标', align: 'center', width: 75, default: 71, sorter: true, className: 'payDataBackColorClass',
  519. render: (a: string) => <Statistic value={a || 0} />
  520. }
  521. ]
  522. }
  523. ]
  524. }
  525. export default columns12