pages-index-index.B21q3WwI.js 8.8 KB

12
  1. import{_ as e,W as t,n as a,s as i,r as l,a as s,o,c as d,w as n,i as p,b as u,d as r,e as c,f,g as h,h as m,j as _,k as b,l as v,F as y,t as g}from"./index-BAMs4g2N.js";import{_ as k}from"./uni-stat-breadcrumb.BZcF2zJw.js";import{_ as w}from"./uni-notice-bar.DFNPNQTK.js";import{_ as T}from"./uni-stat-tabs.SY9F3mAw.js";import{g as A,d as I,s as x,a as D,b as C,p as S,f as q,c as F}from"./util.BXBhmNoy.js";import"./uni-tooltip.BDlhxQuq.js";const $=[{value:"今天",contrast:"昨天"},{field:"appid",title:"APPID",tooltip:""},{field:"name",title:"应用名",tooltip:""},{field:"total_devices",title:"总设备数",tooltip:"从添加统计到当前选择时间的总设备数(去重)",value:0,contrast:0},{field:"new_device_count",title:"新增设备",tooltip:"首次访问应用的设备数(以设备为判断标准,去重)",value:0,contrast:0},{field:"active_device_count",title:"活跃设备",tooltip:"访问过应用内任意页面的总设备数(去重)",value:0,contrast:0}],j=[{value:"今天",contrast:"昨天"},{field:"appid",title:"APPID",tooltip:""},{field:"name",title:"应用名",tooltip:""},{field:"total_users",title:"总用户数",tooltip:"从添加统计到当前选择时间的总用户数(去重)",value:0,contrast:0},{field:"new_user_count",title:"新增用户",tooltip:"首次访问应用的用户数(以用户为判断标准,去重)",value:0,contrast:0},{field:"active_user_count",title:"活跃用户",tooltip:"访问过应用内任意页面的总用户数(去重)",value:0,contrast:0}];const O=e({data:()=>({query:{platform_id:"",start_time:[A(1),(new Date).getTime()]},deviceTableData:[],userTableData:[],pageSize:10,pageCurrent:1,total:0,loading:!1,complete:!1,statSetting:{mode:"",day:7},statModeList:[{value:"open",text:"开启"},{value:"close",text:"关闭"},{value:"auto",text:"节能"}],showAddAppId:!1,showdbInit:!1}),onReady(){this.debounceGet=I((()=>{this.getAllData(this.queryStr)}),300),this.debounceGet(),this.checkAppId(),this.checkdbInit()},watch:{query:{deep:!0,handler(e){this.debounceGet(this.queryStr)}}},computed:{queryStr(){return x(this.query)+' && (dimension == "hour" || dimension == "day")'},deviceTableFields(){return this.tableFieldsMap($)},userTableFields(){return this.tableFieldsMap(j)}},methods:{getAllData(e){this.getApps(this.queryStr,$,"device"),this.getApps(this.queryStr,j,"user")},tableFieldsMap(e){let t=[];const a=[],i=[],l=[];for(const s of e)if(s.field)if(s.hasOwnProperty("value")){const e=JSON.parse(JSON.stringify(s)),t=JSON.parse(JSON.stringify(s));"total_users"!==s.field&&"total_devices"!==s.field?(e.title="今日"+s.title,e.field=s.field+"_value",t.title="昨日"+s.title,t.field=s.field+"_contrast",a.push(e),i.push(t)):(e.field=s.field+"_value",l.push(e))}else t.push(s);return t=[...t,...a,...i,...l],t},getApps(e,a,i="device"){this.loading=!0;const l=t.database(),s=l.collection("uni-stat-result").where(e).getTemp(),o=l.collection("opendb-app-list").getTemp();l.collection(s,o).field(`${D(a,"","value")},stat_date,appid,dimension`).groupBy("appid,dimension,stat_date").groupField(C(a,"","value")).orderBy("appid","desc").get().then((e=>{let{data:t}=e.result;if(this[`${i}TableData`]=[],!t.length)return;let l=[],s=[],o=[],d=S(A(0),"",""),n=S(A(1),"","");for(const a of t){const{appid:e,name:t}=a.appid&&a.appid[0]||{};a.appid=e,a.name=t,l.indexOf(a.appid)<0&&l.push(a.appid),"hour"===a.dimension&&a.stat_date===d&&s.push(a),"day"===a.dimension&&a.stat_date===n&&o.push(a)}const p=a.map((e=>e.field)).filter(Boolean);for(const a of l){const e={},t=s.find((e=>e.appid===a)),l=o.find((e=>e.appid===a));for(const a of p)if("appid"===a||"name"===a)e[a]=t&&t[a];else{const i=t&&t[a],s=l&&l[a];e[a+"_value"]=q(i),e[a+"_contrast"]=q(s)}if(a&&(e[`total_${i}s_value`]="获取中..."),this[`${i}TableData`].push(e),a){t[`total_${i}s`]=0;const e=JSON.parse(JSON.stringify(this.query));e.start_time=[A(0),(new Date).getTime()],e.appid=a,F.call(this,e,`total_${i}s`).then((e=>{this[`${i}TableData`].find((e=>e.appid===a))[`total_${i}s_value`]=e}))}}})).catch((e=>{console.error(e)})).finally((()=>{this.loading=!1,this.complete=!0}))},navTo(e,t){e.indexOf("http")>-1?window.open(e):(t&&(e=`${e}?appid=${t}`),a({url:e}))},toUrl(e){window.open(e,"_blank")},toAddAppId(){this.showAddAppId=!1,a({url:"/pages/system/app/list",events:{refreshData:()=>{this.checkAppId()}}})},async checkAppId(){const e=t.database();let a=await e.collection("opendb-app-list").count();this.showAddAppId=!a.result||0===a.result.total},async checkdbInit(){const e=t.database();let a=await e.collection("opendb-admin-menus").count();this.showdbInit=!a.result||0===a.result.total,this.showdbInit&&i({title:"重要提示",content:"检测到您未初始化数据库,请先右键uni-admin项目根目下的 uniCloud/database 目录,执行初始化云数据库,否则左侧无法显示菜单等数据",showCancel:!1,confirmText:"我知道了"})}}},[["render",function(e,t,a,i,A,I){const x=l(s("uni-stat-breadcrumb"),k),D=p,C=l(s("uni-notice-bar"),w),S=l(s("uni-stat-tabs"),T),q=l(s("uni-th"),u),F=l(s("uni-tr"),r),$=l(s("uni-td"),c),j=l(s("uni-table"),f);return o(),d(D,{class:"fix-top-window"},{default:n((()=>[h(D,{class:"uni-header"},{default:n((()=>[h(x,{class:"uni-stat-breadcrumb-on-phone"}),h(D,{class:"uni-group"},{default:n((()=>[h(D,{class:"uni-sub-title hide-on-phone"})])),_:1})])),_:1}),h(D,{class:"uni-container"},{default:n((()=>[A.showdbInit?(o(),d(C,{key:0,showGetMore:"",showIcon:"",class:"mb-m pointer",text:"检测到您未初始化db_init.json,请先右键uniCloud/database/db_init.json文件,执行初始化云数据库,否则左侧无法显示菜单等数据","background-color":"#fef0f0",color:"#f56c6c",onClick:I.toAddAppId},null,8,["onClick"])):m("",!0),A.showAddAppId?(o(),d(C,{key:1,showGetMore:"",showIcon:"",class:"mb-m pointer",text:"检测到您还未添加应用,点击前往应用管理添加",onClick:I.toAddAppId},null,8,["onClick"])):m("",!0),A.deviceTableData.length||A.userTableData.length||A.query.platform_id||!A.complete?m("",!0):(o(),d(C,{key:2,showGetMore:"",showIcon:"",class:"mb-m pointer",text:"暂无数据, 统计相关功能需开通 uni 统计后才能使用, 如未开通, 点击查看具体流程",onClick:t[0]||(t[0]=e=>I.navTo("https://uniapp.dcloud.io/uni-stat-v2.html"))})),h(D,{class:"uni-stat--x mb-m"},{default:n((()=>[h(S,{label:"平台选择",type:"boldLine",mode:"platform",modelValue:A.query.platform_id,"onUpdate:modelValue":t[1]||(t[1]=e=>A.query.platform_id=e)},null,8,["modelValue"])])),_:1}),h(D,{class:"uni-stat--x p-m"},{default:n((()=>[h(D,{class:"uni-stat-card-header"},{default:n((()=>[_("设备概览")])),_:1}),h(j,{loading:A.loading,border:"",stripe:"",emptyText:"暂无数据"},{default:n((()=>[h(F,null,{default:n((()=>[(o(!0),b(y,null,v(I.deviceTableFields,((e,t)=>(o(),b(y,{key:t},[e.title?(o(),d(q,{key:t,align:"center"},{default:n((()=>[_(g(e.title),1)])),_:2},1024)):m("",!0)],64)))),128))])),_:1}),(o(!0),b(y,null,v(A.deviceTableData,((e,a)=>(o(),d(F,{key:a},{default:n((()=>[(o(!0),b(y,null,v(I.deviceTableFields,((a,i)=>(o(),b(y,{key:i},["appid"===a.field?(o(),d($,{key:0,align:"center"},{default:n((()=>[e.appid?(o(),d(D,{key:0,onClick:t=>I.navTo("/pages/uni-stat/device/overview/overview",e.appid),class:"link-btn-color"},{default:n((()=>[_(g(void 0!==e[a.field]?e[a.field]:"-"),1)])),_:2},1032,["onClick"])):(o(),d(D,{key:1,onClick:t[2]||(t[2]=e=>I.navTo("/pages/system/app/add")),class:"link-btn-color"},{default:n((()=>[_(" 需添加此应用的 appid ")])),_:1}))])),_:2},1024)):(o(),d($,{key:i,align:"center"},{default:n((()=>[_(g(void 0!==e[a.field]?e[a.field]:"-"),1)])),_:2},1024))],64)))),128))])),_:2},1024)))),128))])),_:1},8,["loading"])])),_:1}),h(D,{class:"uni-stat--x p-m"},{default:n((()=>[h(D,{class:"uni-stat-card-header"},{default:n((()=>[_("注册用户概览")])),_:1}),h(j,{loading:A.loading,border:"",stripe:"",emptyText:"暂无数据"},{default:n((()=>[h(F,null,{default:n((()=>[(o(!0),b(y,null,v(I.userTableFields,((e,t)=>(o(),b(y,{key:t},[e.title?(o(),d(q,{key:t,align:"center"},{default:n((()=>[_(g(e.title),1)])),_:2},1024)):m("",!0)],64)))),128))])),_:1}),(o(!0),b(y,null,v(A.userTableData,((e,a)=>(o(),d(F,{key:a},{default:n((()=>[(o(!0),b(y,null,v(I.userTableFields,((a,i)=>(o(),b(y,{key:i},["appid"===a.field?(o(),d($,{key:0,align:"center"},{default:n((()=>[e.appid?(o(),d(D,{key:0,onClick:t=>I.navTo("/pages/uni-stat/user/overview/overview",e.appid),class:"link-btn-color"},{default:n((()=>[_(g(void 0!==e[a.field]?e[a.field]:"-"),1)])),_:2},1032,["onClick"])):(o(),d(D,{key:1,onClick:t[3]||(t[3]=e=>I.navTo("/pages/system/app/add")),class:"link-btn-color"},{default:n((()=>[_(" 需添加此应用的 appid ")])),_:1}))])),_:2},1024)):(o(),d($,{key:i,align:"center"},{default:n((()=>[_(g(void 0!==e[a.field]?e[a.field]:"-"),1)])),_:2},1024))],64)))),128))])),_:2},1024)))),128))])),_:1},8,["loading"])])),_:1})])),_:1})])),_:1})}],["__scopeId","data-v-917973ac"]]);export{O as default};