live-data-service.js 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722
  1. /**
  2. * @file 直播数据
  3. * @author zhuxinbo(zhuxinbo@c-top.com.cn)
  4. */
  5. class liveDataAll {
  6. constructor() {
  7. }
  8. // 相关账户的table列表
  9. projectDataColumns() {
  10. return [
  11. {
  12. title: '项目',
  13. dataIndex: 'projectName',
  14. scopedSlots: {customRender: 'projectName'},
  15. align: 'center',
  16. key: 'projectName',
  17. },
  18. {
  19. title: '运营负责人',
  20. dataIndex: 'projectLeaderName',
  21. scopedSlots: {customRender: 'projectLeaderName'},
  22. align: 'center',
  23. key: 'projectLeaderName',
  24. },
  25. {
  26. title: '设计负责人',
  27. dataIndex: 'dessLeaderName',
  28. scopedSlots: {customRender: 'dessLeaderName'},
  29. align: 'center',
  30. key: 'dessLeaderName',
  31. },
  32. {
  33. title: '政策类型',
  34. dataIndex: 'rebateType',
  35. scopedSlots: {customRender: 'rebateType'},
  36. align: 'center',
  37. key: 'rebateType',
  38. },
  39. {
  40. title: '一级行业',
  41. dataIndex: 'settlement1l',
  42. scopedSlots: {customRender: 'settlement1l'},
  43. align: 'center',
  44. key: 'settlement1l',
  45. },
  46. {
  47. title: '二级行业',
  48. dataIndex: 'settlement2l',
  49. scopedSlots: {customRender: 'settlement2l'},
  50. align: 'center',
  51. key: 'settlement2l',
  52. },
  53. {
  54. title: '素材量',
  55. dataIndex: 'materialNum',
  56. scopedSlots: {customRender: 'materialNum'},
  57. align: 'center',
  58. key: 'materialNum',
  59. },
  60. {
  61. title: '有效首投数',
  62. dataIndex: 'effCount',
  63. scopedSlots: {customRender: 'effCount'},
  64. align: 'center',
  65. key: 'effCount',
  66. },
  67. {
  68. title: "有效首投率",
  69. dataIndex: "color",
  70. key: "color",
  71. scopedSlots: {customRender: "color"},
  72. align: 'center',
  73. },
  74. {
  75. title: '媒体考核有效率',
  76. dataIndex: 'mediaEffRate',
  77. scopedSlots: {customRender: 'mediaEffRate'},
  78. align: 'center',
  79. key: 'mediaEffRate',
  80. },
  81. {
  82. title: '自产素材有效数',
  83. dataIndex: 'selfEffCount',
  84. scopedSlots: {customRender: 'selfEffCount'},
  85. align: 'center',
  86. key: 'selfEffCount',
  87. },
  88. {
  89. title: '自产素材有效占比',
  90. dataIndex: 'selfEffRate',
  91. scopedSlots: {customRender: 'selfEffRate'},
  92. align: 'center',
  93. key: 'selfEffRate',
  94. },
  95. {
  96. title: '三方素材有效数',
  97. dataIndex: 'thirdEffCount',
  98. scopedSlots: {customRender: 'thirdEffCount'},
  99. align: 'center',
  100. key: 'thirdEffCount',
  101. },
  102. ]
  103. }
  104. touchColumns() {
  105. return [
  106. {
  107. title: '时间',
  108. dataIndex: 'statDate',
  109. scopedSlots: {customRender: 'statDate'},
  110. align: 'center',
  111. key: 'statDate',
  112. },
  113. {
  114. title: '粉丝分层',
  115. dataIndex: 'fanStrat',
  116. scopedSlots: {customRender: 'fanStrat'},
  117. align: 'center',
  118. key: 'fanStrat'
  119. },
  120. {
  121. title: '客群分层',
  122. dataIndex: 'customerStrat',
  123. scopedSlots: {customRender: 'customerStrat'},
  124. align: 'center',
  125. key: 'customerStrat',
  126. },
  127. {
  128. title: '花费(元)',
  129. dataIndex: 'charge',
  130. scopedSlots: {customRender: 'charge'},
  131. align: 'center',
  132. key: 'charge',
  133. },
  134. {
  135. title: '当日累计GMV',
  136. dataIndex: 'todayCumulativeGmv',
  137. scopedSlots: {customRender: 'todayCumulativeGmv'},
  138. align: 'center',
  139. key: 'todayCumulativeGmv',
  140. },
  141. {
  142. title: '当日累计ROI',
  143. dataIndex: 'todayCumulativeRoi',
  144. scopedSlots: {customRender: 'todayCumulativeRoi'},
  145. align: 'center',
  146. key: 'todayCumulativeRoi',
  147. },
  148. {
  149. title: '当日累计订单数',
  150. dataIndex: 'todayCumulativeOrderCount',
  151. scopedSlots: {customRender: 'todayCumulativeOrderCount'},
  152. align: 'center',
  153. key: 'todayCumulativeOrderCount',
  154. },
  155. {
  156. title: '曝光用户数',
  157. dataIndex: 'showUsers',
  158. scopedSlots: {customRender: 'showUsers'},
  159. align: 'center',
  160. key: 'showUsers',
  161. },
  162. {
  163. title: '购买用户数',
  164. dataIndex: 'buyUsers',
  165. scopedSlots: {customRender: 'buyUsers'},
  166. align: 'center',
  167. key: 'buyUsers',
  168. },
  169. {
  170. title: '购买转化率',
  171. dataIndex: 'buyRatio',
  172. customRender: function (t) {
  173. if (t) {
  174. return (t * 100).toFixed(2) + '%'
  175. } else {
  176. return '-'
  177. }
  178. },
  179. align: 'center',
  180. key: 'buyRatio',
  181. },
  182. {
  183. title: 'ARPU',
  184. dataIndex: 'arpu',
  185. scopedSlots: {customRender: 'arpu'},
  186. align: 'center',
  187. key: 'arpu',
  188. },
  189. {
  190. title: 'UV价值',
  191. dataIndex: 'uv',
  192. scopedSlots: {customRender: 'uv'},
  193. align: 'center',
  194. key: 'uv',
  195. },
  196. {
  197. title: '单均价',
  198. dataIndex: 'averagePrice',
  199. scopedSlots: {customRender: 'averagePrice'},
  200. align: 'center',
  201. key: 'averagePrice',
  202. },
  203. ]
  204. }
  205. customerColumns() {
  206. return [
  207. {
  208. title: '花费',
  209. dataIndex: 'charge',
  210. scopedSlots: {customRender: 'charge'},
  211. align: 'center',
  212. key: 'charge',
  213. },
  214. {
  215. title: '曝光数',
  216. dataIndex: 'shows',
  217. scopedSlots: {customRender: 'shows'},
  218. align: 'center',
  219. key: 'shows'
  220. },
  221. {
  222. title: '封面曝光数',
  223. dataIndex: 'photoShow',
  224. scopedSlots: {customRender: 'photoShow'},
  225. align: 'center',
  226. key: 'photoShow',
  227. },
  228. {
  229. title: '封面点击率',
  230. dataIndex: 'photoClickRatio',
  231. customRender: function (t) {
  232. if (t) {
  233. return (t * 100).toFixed(2) + '%'
  234. } else {
  235. return '-'
  236. }
  237. },
  238. align: 'center',
  239. key: 'photoClickRatio',
  240. },
  241. {
  242. title: '素材曝光数',
  243. dataIndex: 'aclick',
  244. scopedSlots: {customRender: 'aclick'},
  245. align: 'center',
  246. key: 'aclick',
  247. },
  248. {
  249. title: '行为数',
  250. dataIndex: 'bclick',
  251. scopedSlots: {customRender: 'bclick'},
  252. align: 'center',
  253. key: 'bclick',
  254. },
  255. {
  256. title: '行为率',
  257. dataIndex: 'actionRatio',
  258. customRender: function (t) {
  259. if (t) {
  260. return (t * 100).toFixed(2) + '%'
  261. } else {
  262. return '-'
  263. }
  264. },
  265. align: 'center',
  266. key: 'actionRatio',
  267. },
  268. {
  269. title: '直播间商品点击数',
  270. dataIndex: 'productClick',
  271. scopedSlots: {customRender: 'productClick'},
  272. align: 'center',
  273. key: 'productClick',
  274. },
  275. {
  276. title: '作品点赞数',
  277. dataIndex: 'likes',
  278. scopedSlots: {customRender: 'likes'},
  279. align: 'center',
  280. key: 'likes',
  281. },
  282. {
  283. title: '作品分享数',
  284. dataIndex: 'shares',
  285. scopedSlots: {customRender: 'shares'},
  286. align: 'center',
  287. key: 'shares',
  288. },
  289. {
  290. title: '作品评论数',
  291. dataIndex: 'comments',
  292. scopedSlots: {customRender: 'comments'},
  293. align: 'center',
  294. key: 'comments',
  295. },
  296. {
  297. title: '作品3秒播放数',
  298. dataIndex: 'play3sCount',
  299. scopedSlots: {customRender: 'play3sCount'},
  300. align: 'center',
  301. key: 'play3sCount',
  302. },
  303. {
  304. title: '预约成功数',
  305. dataIndex: 'eventAppointSuccess',
  306. scopedSlots: {customRender: 'eventAppointSuccess'},
  307. align: 'center',
  308. key: 'eventAppointSuccess',
  309. },
  310. {
  311. title: '直播观看数',
  312. dataIndex: 'liveWatchCount',
  313. scopedSlots: {customRender: 'liveWatchCount'},
  314. align: 'center',
  315. key: 'liveWatchCount',
  316. },
  317. {
  318. title: '直播观看成本',
  319. dataIndex: 'liveWatchCost',
  320. scopedSlots: {customRender: 'liveWatchCost'},
  321. align: 'center',
  322. key: 'liveWatchCost',
  323. },
  324. {
  325. title: '涨粉数',
  326. dataIndex: 'liveFans',
  327. scopedSlots: {customRender: 'liveFans'},
  328. align: 'center',
  329. key: 'liveFans',
  330. },
  331. {
  332. title: '涨粉成本',
  333. dataIndex: 'liveFansCost',
  334. scopedSlots: {customRender: 'liveFansCost'},
  335. align: 'center',
  336. key: 'liveFansCost',
  337. },
  338. ]
  339. }
  340. adColumns() {
  341. return [
  342. {
  343. title: '直播ID',
  344. dataIndex: 'liveId',
  345. scopedSlots: {customRender: 'liveId'},
  346. align: 'center',
  347. key: 'liveId',
  348. },
  349. {
  350. title: '快手号',
  351. dataIndex: 'kuaishouName',
  352. scopedSlots: {customRender: 'kuaishouName'},
  353. align: 'center',
  354. key: 'kuaishouName'
  355. },
  356. {
  357. title: '直播开始时间',
  358. dataIndex: 'liveStartTime',
  359. scopedSlots: {customRender: 'liveStartTime'},
  360. align: 'center',
  361. key: 'liveStartTime',
  362. },
  363. {
  364. title: '直播结束时间',
  365. dataIndex: 'liveEndTime',
  366. scopedSlots: {customRender: 'liveEndTime'},
  367. align: 'center',
  368. key: 'liveEndTime',
  369. },
  370. {
  371. title: '直播持续时间(分钟)',
  372. dataIndex: 'liveDuration',
  373. scopedSlots: {customRender: 'liveDuration'},
  374. align: 'center',
  375. key: 'liveDuration',
  376. },
  377. {
  378. title: '主播ID',
  379. dataIndex: 'anchorId',
  380. scopedSlots: {customRender: 'anchorId'},
  381. align: 'center',
  382. key: 'anchorId',
  383. },
  384. {
  385. title: '花费',
  386. dataIndex: 'charge',
  387. scopedSlots: {customRender: 'charge'},
  388. align: 'center',
  389. key: 'charge',
  390. },
  391. {
  392. title: '行为数',
  393. dataIndex: 'bclick',
  394. scopedSlots: {customRender: 'bclick'},
  395. align: 'center',
  396. key: 'bclick',
  397. },
  398. {
  399. title: '直播平均观看时长',
  400. dataIndex: 'liveWatchAverageTime',
  401. scopedSlots: {customRender: 'liveWatchAverageTime'},
  402. align: 'center',
  403. key: 'liveWatchAverageTime',
  404. },
  405. {
  406. title: '直播间评论数',
  407. dataIndex: 'liveComments',
  408. scopedSlots: {customRender: 'liveComments'},
  409. align: 'center',
  410. key: 'liveComments',
  411. },
  412. {
  413. title: '直播间分享数',
  414. dataIndex: 'liveShares',
  415. scopedSlots: {customRender: 'liveShares'},
  416. align: 'center',
  417. key: 'liveShares',
  418. },
  419. {
  420. title: '直播间送礼数',
  421. dataIndex: 'liveGifts',
  422. scopedSlots: {customRender: 'liveGifts'},
  423. align: 'center',
  424. key: 'liveGifts',
  425. },
  426. {
  427. title: '涨粉数',
  428. dataIndex: 'liveFans',
  429. scopedSlots: {customRender: 'liveFans'},
  430. align: 'center',
  431. key: 'liveFans',
  432. },
  433. {
  434. title: '涨粉成本',
  435. dataIndex: 'liveFansCost',
  436. scopedSlots: {customRender: 'liveFansCost'},
  437. align: 'center',
  438. key: 'liveFansCost',
  439. },
  440. {
  441. title: '直播观看数',
  442. dataIndex: 'liveWatchCount',
  443. scopedSlots: {customRender: 'liveWatchCount'},
  444. align: 'center',
  445. key: 'liveWatchCount',
  446. },
  447. {
  448. title: '直接订单数',
  449. dataIndex: 'liveOrderCount',
  450. scopedSlots: {customRender: 'liveOrderCount'},
  451. align: 'center',
  452. key: 'liveOrderCount',
  453. },
  454. {
  455. title: '直接GMV',
  456. dataIndex: 'liveGmv',
  457. scopedSlots: {customRender: 'liveGmv'},
  458. align: 'center',
  459. key: 'liveGmv',
  460. },
  461. {
  462. title: '直接ROI',
  463. dataIndex: 'liveRoi',
  464. scopedSlots: {customRender: 'liveRoi'},
  465. align: 'center',
  466. key: 'liveRoi',
  467. },
  468. ]
  469. }
  470. totalColumns() {
  471. return [
  472. {
  473. title: '年份',
  474. dataIndex: 'delivery_year',
  475. align: 'center',
  476. key: 'delivery_year',
  477. scopedSlots: {customRender: 'delivery_year'},
  478. },
  479. {
  480. title: '核算业绩归属季度',
  481. dataIndex: 'delivery_quarter',
  482. align: 'center',
  483. key: 'delivery_quarter',
  484. scopedSlots: {customRender: 'delivery_quarter'},
  485. },
  486. {
  487. title: '核算业绩归属月',
  488. dataIndex: 'delivery_month',
  489. align: 'center',
  490. key: 'delivery_month',
  491. scopedSlots: {customRender: 'delivery_month'},
  492. },
  493. {
  494. title: '代理商集团',
  495. dataIndex: 'agent_combine',
  496. align: 'center',
  497. key: 'agent_combine',
  498. scopedSlots: {customRender: 'agent_combine'},
  499. },
  500. {
  501. title: '竞价分类',
  502. dataIndex: 'bid_type',
  503. align: 'center',
  504. key: 'bid_type',
  505. scopedSlots: {customRender: 'bid_type'},
  506. },
  507. {
  508. title: '结算行业统计类型',
  509. dataIndex: 'settlement_type',
  510. align: 'center',
  511. key: 'settlement_type',
  512. scopedSlots: {customRender: 'settlement_type'},
  513. },
  514. {
  515. title: '结算二级行业',
  516. dataIndex: 'settlement_2l',
  517. align: 'center',
  518. key: 'settlement_2l',
  519. scopedSlots: {customRender: 'settlement_2l'},
  520. },
  521. {
  522. title: '运营标签',
  523. dataIndex: 'operation_label',
  524. align: 'center',
  525. key: 'operation_label',
  526. scopedSlots: {customRender: 'operation_label'},
  527. },
  528. {
  529. title: '月度首投视频素材数',
  530. dataIndex: 'first_delivery_month_materials',
  531. align: 'center',
  532. key: 'first_delivery_month_materials',
  533. scopedSlots: {customRender: 'first_delivery_month_materials'},
  534. },
  535. {
  536. title: '月度有效视频素材数',
  537. dataIndex: 'first_delivery_month_valid_materials',
  538. align: 'center',
  539. key: 'first_delivery_month_valid_materials',
  540. scopedSlots: {customRender: 'first_delivery_month_valid_materials'},
  541. },
  542. {
  543. title: '月度首投有效素材占比',
  544. dataIndex: 'valid_material_ratio',
  545. align: 'center',
  546. key: 'valid_material_ratio',
  547. scopedSlots: {customRender: 'valid_material_ratio'},
  548. },
  549. {
  550. title: '目标值',
  551. dataIndex: 'target_value',
  552. align: 'center',
  553. key: 'target_value',
  554. scopedSlots: {customRender: 'target_value'},
  555. },
  556. {
  557. title: '返点比例',
  558. dataIndex: 'rebate_ratio',
  559. align: 'center',
  560. key: 'rebate_ratio',
  561. scopedSlots: {customRender: 'rebate_ratio'},
  562. },
  563. {
  564. title: '满点差值',
  565. dataIndex: 'full_dot_dif',
  566. align: 'center',
  567. key: 'full_dot_dif',
  568. scopedSlots: {customRender: 'full_dot_dif'},
  569. },
  570. {
  571. title: '返点比例上限',
  572. dataIndex: 'rebate_ratio_ceiling',
  573. align: 'center',
  574. key: 'rebate_ratio_ceiling',
  575. scopedSlots: {customRender: 'rebate_ratio_ceiling'},
  576. },
  577. {
  578. title: '业绩消耗',
  579. dataIndex: 'cost',
  580. align: 'center',
  581. key: 'cost',
  582. scopedSlots: {customRender: 'cost'},
  583. },
  584. {
  585. title: '返点金额',
  586. dataIndex: 'rebate_cost',
  587. align: 'center',
  588. key: 'rebate_cost',
  589. scopedSlots: {customRender: 'rebate_cost'},
  590. },
  591. {
  592. title: '满点差值金额',
  593. dataIndex: 'full_dot_dif_cost',
  594. align: 'center',
  595. key: 'full_dot_dif_cost',
  596. scopedSlots: {customRender: 'full_dot_dif_cost'},
  597. },
  598. ]
  599. }
  600. designColumns() {
  601. return [
  602. {
  603. title: '项目名称',
  604. dataIndex: 'projectName',
  605. align: 'center',
  606. key: 'projectName',
  607. scopedSlots: {customRender: 'projectName'},
  608. },
  609. {
  610. title: '项目设计负责人',
  611. dataIndex: 'projectDesignLeaderName',
  612. align: 'center',
  613. key: 'projectDesignLeaderName',
  614. scopedSlots: {customRender: 'projectDesignLeaderName'},
  615. },
  616. {
  617. title: '项目运营负责人',
  618. dataIndex: 'projectLeaderName',
  619. align: 'center',
  620. key: 'projectLeaderName',
  621. scopedSlots: {customRender: 'projectLeaderName'},
  622. },
  623. {
  624. title: '设计leader',
  625. dataIndex: 'leaderName',
  626. align: 'center',
  627. key: 'leaderName',
  628. scopedSlots: {customRender: 'leaderName'},
  629. },
  630. {
  631. title: '设计',
  632. dataIndex: 'designName',
  633. align: 'center',
  634. key: 'designName',
  635. scopedSlots: {customRender: 'designName'},
  636. },
  637. {
  638. title: '政策类型',
  639. dataIndex: 'rebateType',
  640. align: 'center',
  641. key: 'rebateType',
  642. scopedSlots: {customRender: 'rebateType'},
  643. },
  644. {
  645. title: '一级行业',
  646. dataIndex: 'settlement1l',
  647. align: 'center',
  648. key: 'settlement1l',
  649. scopedSlots: {customRender: 'settlement1l'},
  650. },
  651. {
  652. title: '二级行业',
  653. dataIndex: 'settlement2l',
  654. align: 'center',
  655. key: 'settlement2l',
  656. scopedSlots: {customRender: 'settlement2l'},
  657. },
  658. {
  659. title: '首投素材量',
  660. dataIndex: 'materialNum',
  661. align: 'center',
  662. key: 'materialNum',
  663. scopedSlots: {customRender: 'materialNum'},
  664. },
  665. {
  666. title: '有效首投素材量',
  667. dataIndex: 'effMaterialNum',
  668. align: 'center',
  669. key: 'effMaterialNum',
  670. scopedSlots: {customRender: 'effMaterialNum'},
  671. },
  672. {
  673. title: '有效率',
  674. dataIndex: 'effRate',
  675. align: 'center',
  676. key: 'effRate',
  677. scopedSlots: {customRender: 'effRate'},
  678. },
  679. {
  680. title: '媒体考核有效率',
  681. dataIndex: 'mediaEffRate',
  682. align: 'center',
  683. key: 'mediaEffRate',
  684. scopedSlots: {customRender: 'mediaEffRate'},
  685. },
  686. ]
  687. }
  688. }
  689. export default new liveDataAll();