NGToolsAdmin/pages/uni-stat/user/overview/fieldsMap.js

105 lines
3.4 KiB
JavaScript
Raw Normal View History

2024-09-13 08:39:31 +00:00
/**
* 页面上的数据都来自数据库且多处 ui 消费页面直接使用字段会造成耦合和冗余固在此抽出来统一配置clientdb 查询方法概念文字提示等和处理对值再计算格式化等
* title 显示所使用名称
* field 数据库字段名
* computed 计算表达式配置只支持除法计算需要 mapfield 函数支持也可自行扩展
* tooltip 对字段解释的提示文字
* formatter 数字格式化的配置省缺为 ','
* '' 空字符串 则表示不格式化
* ',' 数字格式1000 格式为 1,000
* '%' 百分比格式 0.1 格式为 10%
* ':' 时分秒格式 90 格式为 00:01:30
* '-' 日期格式 1655196831390(值需为时间戳) 格式为 2022-06-14
* stat 对字段做 groupField 时需使用的数据库计算方法省缺为 'sum'
* 'sum' 表示对字段做求和运算
* 'avg' 表示对字段做平均运算
* '-1' 表示不对字段做运算
* fix 数字保留几位小数>1 默认不保留小数<1 默认保留两位小数
* value 默认值 (仅用于 uni-stat-panel 组件) todo: 可移除
* contrast 对比值 (仅用于 uni-stat-panel 组件) todo: 可移除
*/
const fieldsMap = [{
value: '今天',
contrast: '昨天',
// stat: -1
}, {
title: '新增用户',
field: 'new_user_count',
tooltip: '首次访问应用的用户数(以用户为判断标准,去重)',
value: 0,
contrast: 0
}, {
title: '活跃用户',
field: 'active_user_count',
tooltip: '访问过应用内任意页面的总用户数,今日数据为每小时活跃用户累加(未虑重),昨日数据为全天活跃用户虑重后结果。',
value: 0,
contrast: 0
}, {
title: '次均停留时长',
field: 'avg_user_session_time',
computed: 'duration/user_session_times',
formatter: ':',
tooltip: '平均每次打开应用停留在应用内的总时长,即应用停留总时长/启动次数',
value: 0,
contrast: 0,
//stat: 'avg'
}, {
title: '人均停留时长 ',
field: 'avg_user_time',
computed: 'duration/active_user_count',
formatter: ':',
tooltip: '平均每个用户停留在应用内的总时长,即应用停留总时长/活跃用户',
value: 0,
contrast: 0,
//stat: 'avg'
}, {
title: '总用户数',
field: 'total_users',
tooltip: '从添加统计到当前选择时间的总用户数(去重)',
value: 0,
contrast: 0
}]
const resFieldsMap = [{
title: '受访页',
field: 'path',
tooltip: '用户进入应用访问的所有页面例如用户从页面1进入应用跳转到页面21,2均为受访页',
formatter: ''
}, {
title: '访问次数',
field: 'visit_times',
tooltip: '访问该页面的总次数',
value: 0
}, {
title: '占比',
field: 'rate',
computed: 'visit_times/total_app_access',
tooltip: '某个页面的访问次数占所有页面访问次数的比例',
formatter: '%',
}]
const entFieldsMap = [{
title: '入口页',
field: 'path',
tooltip: '用户进入应用访问的第一个页面例如用户从页面1进入应用跳转到页面21为入口页而2不是',
formatter: ''
}, {
title: '访问次数',
field: 'entry_count',
tooltip: '访问该页面的总次数',
value: 0
}, {
title: '占比',
field: 'rate',
computed: 'entry_count/total_app_access',
tooltip: '某个页面的访问次数占所有页面访问次数的比例',
formatter: '%'
}]
export {
fieldsMap,
resFieldsMap,
entFieldsMap
}