Files
t-admin/unpackage/dist/build/web/assets/pages-index_info-index_info.B-mUSXc-.js
T
2025-06-13 21:16:12 +08:00

2 lines
8.8 KiB
JavaScript

import{_ as e,e as t,n as a,s as i,r as l,a as s,c as o,w as d,i as n,b as p,d as u,f as r,g as c,o as f,h,q as m,j as _,k as b,l as v,F as y,t as g}from"./index-CS85kPhe.js";import{_ as k}from"./uni-stat-breadcrumb.xQt2SQkt.js";import{_ as w}from"./uni-notice-bar.CpGpTcCW.js";import{_ as T}from"./uni-stat-tabs.BqxEYTBM.js";import{g as A,d as I,s as x,a as D,b as C,p as q,f as S,c as F}from"./util.BgZN-4QF.js";import"./uni-tooltip.Bon-gzRk.js";const O=[{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}],$=[{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 j=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(O)},userTableFields(){return this.tableFieldsMap($)}},methods:{getAllData(e){this.getApps(this.queryStr,O,"device"),this.getApps(this.queryStr,$,"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=q(A(0),"",""),n=q(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"]=S(i),e[a+"_contrast"]=S(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=n,C=l(s("uni-notice-bar"),w),q=l(s("uni-stat-tabs"),T),S=l(s("uni-th"),p),F=l(s("uni-tr"),u),O=l(s("uni-td"),r),$=l(s("uni-table"),c);return f(),o(D,{class:"fix-top-window"},{default:d((()=>[h(D,{class:"uni-header"},{default:d((()=>[h(x,{class:"uni-stat-breadcrumb-on-phone"}),h(D,{class:"uni-group"},{default:d((()=>[h(D,{class:"uni-sub-title hide-on-phone"})])),_:1})])),_:1}),h(D,{class:"uni-container"},{default:d((()=>[A.showdbInit?(f(),o(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?(f(),o(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):(f(),o(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:d((()=>[h(q,{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:d((()=>[h(D,{class:"uni-stat-card-header"},{default:d((()=>[_("设备概览")])),_:1}),h($,{loading:A.loading,border:"",stripe:"",emptyText:"暂无数据"},{default:d((()=>[h(F,null,{default:d((()=>[(f(!0),b(y,null,v(I.deviceTableFields,((e,t)=>(f(),b(y,{key:t},[e.title?(f(),o(S,{key:t,align:"center"},{default:d((()=>[_(g(e.title),1)])),_:2},1024)):m("",!0)],64)))),128))])),_:1}),(f(!0),b(y,null,v(A.deviceTableData,((e,a)=>(f(),o(F,{key:a},{default:d((()=>[(f(!0),b(y,null,v(I.deviceTableFields,((a,i)=>(f(),b(y,{key:i},["appid"===a.field?(f(),o(O,{key:0,align:"center"},{default:d((()=>[e.appid?(f(),o(D,{key:0,onClick:t=>I.navTo("/pages/uni-stat/device/overview/overview",e.appid),class:"link-btn-color"},{default:d((()=>[_(g(void 0!==e[a.field]?e[a.field]:"-"),1)])),_:2},1032,["onClick"])):(f(),o(D,{key:1,onClick:t[2]||(t[2]=e=>I.navTo("/pages/system/app/add")),class:"link-btn-color"},{default:d((()=>[_(" 需添加此应用的 appid ")])),_:1}))])),_:2},1024)):(f(),o(O,{key:i,align:"center"},{default:d((()=>[_(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:d((()=>[h(D,{class:"uni-stat-card-header"},{default:d((()=>[_("注册用户概览")])),_:1}),h($,{loading:A.loading,border:"",stripe:"",emptyText:"暂无数据"},{default:d((()=>[h(F,null,{default:d((()=>[(f(!0),b(y,null,v(I.userTableFields,((e,t)=>(f(),b(y,{key:t},[e.title?(f(),o(S,{key:t,align:"center"},{default:d((()=>[_(g(e.title),1)])),_:2},1024)):m("",!0)],64)))),128))])),_:1}),(f(!0),b(y,null,v(A.userTableData,((e,a)=>(f(),o(F,{key:a},{default:d((()=>[(f(!0),b(y,null,v(I.userTableFields,((a,i)=>(f(),b(y,{key:i},["appid"===a.field?(f(),o(O,{key:0,align:"center"},{default:d((()=>[e.appid?(f(),o(D,{key:0,onClick:t=>I.navTo("/pages/uni-stat/user/overview/overview",e.appid),class:"link-btn-color"},{default:d((()=>[_(g(void 0!==e[a.field]?e[a.field]:"-"),1)])),_:2},1032,["onClick"])):(f(),o(D,{key:1,onClick:t[3]||(t[3]=e=>I.navTo("/pages/system/app/add")),class:"link-btn-color"},{default:d((()=>[_(" 需添加此应用的 appid ")])),_:1}))])),_:2},1024)):(f(),o(O,{key:i,align:"center"},{default:d((()=>[_(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-e5fc10bd"]]);export{j as default};