fieldsMap.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  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. * '-1' 表示不对字段做运算
  17. * fix 数字保留几位小数,>1 默认不保留小数,<1 默认保留两位小数
  18. * value 默认值 (仅用于 uni-stat-panel 组件) todo: 可移除
  19. * contrast 对比值 (仅用于 uni-stat-panel 组件) todo: 可移除
  20. */
  21. const fieldsMap = [{
  22. value: '今天',
  23. contrast: '昨天',
  24. // stat: -1
  25. }, {
  26. title: '新增用户',
  27. field: 'new_user_count',
  28. tooltip: '首次访问应用的用户数(以用户为判断标准,去重)',
  29. value: 0,
  30. contrast: 0
  31. }, {
  32. title: '活跃用户',
  33. field: 'active_user_count',
  34. tooltip: '访问过应用内任意页面的总用户数,今日数据为每小时活跃用户累加(未虑重),昨日数据为全天活跃用户虑重后结果。',
  35. value: 0,
  36. contrast: 0
  37. }, {
  38. title: '次均停留时长',
  39. field: 'avg_user_session_time',
  40. formatter: ':',
  41. tooltip: '平均每次打开应用停留在应用内的总时长,即应用停留总时长/启动次数',
  42. value: 0,
  43. contrast: 0,
  44. stat: 'avg'
  45. }, {
  46. title: '人均停留时长 ',
  47. field: 'avg_user_time',
  48. formatter: ':',
  49. tooltip: '平均每个用户停留在应用内的总时长,即应用停留总时长/活跃用户',
  50. value: 0,
  51. contrast: 0,
  52. stat: 'avg'
  53. }, {
  54. title: '总用户数',
  55. field: 'total_users',
  56. tooltip: '从添加统计到当前选择时间的总用户数(去重)',
  57. value: 0,
  58. contrast: 0
  59. }]
  60. const resFieldsMap = [{
  61. title: '受访页',
  62. field: 'path',
  63. tooltip: '用户进入应用访问的所有页面,例如用户从页面1进入应用,跳转到页面2,1,2均为受访页',
  64. formatter: ''
  65. }, {
  66. title: '访问次数',
  67. field: 'visit_times',
  68. tooltip: '访问该页面的总次数',
  69. value: 0
  70. }, {
  71. title: '占比',
  72. field: 'rate',
  73. computed: 'visit_times/total_app_access',
  74. tooltip: '某个页面的访问次数占所有页面访问次数的比例',
  75. formatter: '%',
  76. }]
  77. const entFieldsMap = [{
  78. title: '入口页',
  79. field: 'path',
  80. tooltip: '用户进入应用访问的第一个页面,例如用户从页面1进入应用,跳转到页面2,1为入口页,而2不是',
  81. formatter: ''
  82. }, {
  83. title: '访问次数',
  84. field: 'entry_count',
  85. tooltip: '访问该页面的总次数',
  86. value: 0
  87. }, {
  88. title: '占比',
  89. field: 'rate',
  90. computed: 'entry_count/total_app_access',
  91. tooltip: '某个页面的访问次数占所有页面访问次数的比例',
  92. formatter: '%'
  93. }]
  94. export {
  95. fieldsMap,
  96. resFieldsMap,
  97. entFieldsMap
  98. }