fieldsMap.js 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. /**
  2. * 页面上的数据都来自数据库,且多处 ui 消费,页面直接使用字段会造成耦合和冗余,固在此抽出来统一配置(clientdb 查询方法、概念文字提示等)和处理(对值再计算、格式化等)
  3. * title 显示所使用名称
  4. * field 数据库字段名
  5. * computed 计算表达式配置,只支持除法计算(需要 mapfield 函数支持,也可自行扩展)
  6. * tooltip 对字段解释的提示文字
  7. * formatter 数字格式化的配置,省缺为 ','
  8. * '' 空字符串 则表示不格式化
  9. * ',' 数字格式,例:1000 格式为 1,000
  10. * '%' 百分比格式 例:0.1 格式为 10%
  11. * ':' 时分秒格式 例:90 格式为 00:01:30
  12. * '-' 日期格式 例:1655196831390(值需为时间戳) 格式为 2022-06-14
  13. * stat 对字段做 groupField 时需使用的数据库计算方法,省缺为 'sum'
  14. * 'sum' 表示对字段做求和运算
  15. * 'avg' 表示对字段做平均运算
  16. * fix 数字保留几位小数,>1 默认不保留小数,<1 默认保留两位小数
  17. * value 默认值 (仅用于 uni-stat-panel 组件) todo: 可移除
  18. * contrast 对比值 (仅用于 uni-stat-panel 组件) todo: 可移除
  19. */
  20. const fieldsMap = [{
  21. value: '今天',
  22. contrast: '昨天'
  23. }, {
  24. title: '新增设备',
  25. field: 'new_device_count',
  26. tooltip: '首次访问应用的设备数(以设备为判断标准,去重)',
  27. value: 0,
  28. contrast: 0
  29. }, {
  30. title: '活跃设备',
  31. field: 'active_device_count',
  32. tooltip: '访问过应用内任意页面的总设备数,今日数据为每小时活跃设备累加(未虑重),昨日数据为全天活跃设备虑重后结果',
  33. value: 0,
  34. contrast: 0
  35. }, {
  36. title: '访问次数',
  37. field: 'page_visit_count',
  38. tooltip: '访问过应用内任意页面总次数,多个页面之间跳转、同一页面的重复访问计为多次访问',
  39. value: 0,
  40. contrast: 0
  41. }, {
  42. title: '启动次数',
  43. field: 'app_launch_count',
  44. tooltip: '设备从打开应用到主动关闭应用或超时退出计为一次启动',
  45. value: 0,
  46. contrast: 0
  47. }, {
  48. title: '次均停留时长',
  49. field: 'avg_device_session_time',
  50. formatter: ':',
  51. tooltip: '平均每次打开应用停留在应用内的总时长,即应用停留总时长/启动次数',
  52. value: 0,
  53. contrast: 0,
  54. stat: 'avg'
  55. }, {
  56. title: '设备平均停留时长 ',
  57. field: 'avg_device_time',
  58. formatter: ':',
  59. tooltip: '平均每个设备停留在应用内的总时长,即应用停留总时长/活跃设备',
  60. value: 0,
  61. contrast: 0,
  62. stat: 'avg'
  63. }, {
  64. title: '跳出率',
  65. field: 'bounceRate',
  66. computed: 'bounce_times/app_launch_count',
  67. formatter: '%',
  68. tooltip: '只浏览一个页面便离开应用的次数占总启动次数的百分比',
  69. value: 0,
  70. contrast: 0,
  71. fix: 2
  72. }, {
  73. title: '总设备数',
  74. field: 'total_devices',
  75. tooltip: '从添加统计到当前选择时间的总设备数(去重)',
  76. value: 0,
  77. contrast: 0
  78. }]
  79. const resFieldsMap = [{
  80. title: '受访页',
  81. field: 'path',
  82. tooltip: '设备进入应用访问的所有页面,例如设备从页面1进入应用,跳转到页面2,1,2均为受访页',
  83. formatter: ''
  84. }, {
  85. title: '访问次数',
  86. field: 'visit_times',
  87. tooltip: '访问该页面的总次数',
  88. value: 0
  89. }, {
  90. title: '占比',
  91. field: 'rate',
  92. computed: 'visit_times/total_app_access',
  93. tooltip: '页面的访问次数占所有页面访问次数的比例',
  94. formatter: '%',
  95. }]
  96. const entFieldsMap = [{
  97. title: '入口页',
  98. field: 'path',
  99. tooltip: '设备进入应用访问的第一个页面,例如设备从页面1进入应用,跳转到页面2,1为入口页,而2不是',
  100. formatter: ''
  101. }, {
  102. title: '入口页次数',
  103. field: 'entry_count',
  104. tooltip: '访问该入口页的总次数',
  105. value: 0
  106. }, {
  107. title: '占比',
  108. field: 'rate',
  109. computed: 'entry_count/total_app_access',
  110. tooltip: '页面的入口页次数占所有页面访问次数的比例',
  111. formatter: '%'
  112. }]
  113. export {
  114. fieldsMap,
  115. resFieldsMap,
  116. entFieldsMap
  117. }