12 |
- import{_ as e,W as t,n as a,r as i,a as s,o as n,c as l,w as o,i as r,aD as u,g as d,j as c,z as p}from"./index-BAMs4g2N.js";import{_ as h}from"./uni-stat-breadcrumb.BZcF2zJw.js";import{_ as m}from"./uni-data-select.UeW2d6Yw.js";import{_ as g}from"./uni-stat-tabs.SY9F3mAw.js";import{_ as f}from"./uni-stat-panel.X3T1D0jX.js";import{_}from"./qiun-data-charts.D-NEYXGW.js";import{_ as b}from"./uni-stat-table.DJpt4M34.js";import{_ as y}from"./uni-pagination.7SrZmsZK.js";import{s as v,e as D,d as C,g as q,a as x,b as T,m as S,h as w,c as V}from"./util.BXBhmNoy.js";import"./uni-tooltip.BDlhxQuq.js";const P=[{title:"场景值",field:"channel_code",tooltip:"",formatter:""},{title:"场景名称",field:"channel_name",tooltip:"",formatter:""},{title:"新增设备",field:"new_device_count",tooltip:"首次访问应用的设备数(以设备为判断标准,去重)",value:0},{title:"活跃设备",field:"active_device_count",tooltip:"访问过应用内任意页面的总设备数(去重)",value:0},{title:"访问次数",field:"page_visit_count",tooltip:"访问过应用内任意页面总次数,多个页面之间跳转、同一页面的重复访问计为多次访问",value:0},{title:"启动次数",field:"app_launch_count",tooltip:"设备从打开应用到主动关闭应用或超时退出计为一次启动",value:0},{title:"次均停留时长",field:"avg_device_session_time",formatter:":",tooltip:"平均每次打开应用停留在应用内的总时长,即应用停留总时长/启动次数",value:0,stat:"avg"},{title:"设备平均停留时长 ",field:"avg_device_time",formatter:":",tooltip:"平均每个设备停留在应用内的总时长,即应用停留总时长/活跃设备",value:0,stat:"avg"},{title:"跳出率",field:"bounceRate",computed:"bounce_times/app_launch_count",formatter:"%",tooltip:"只浏览一个页面便离开应用的次数占总启动次数的百分比",value:0,contrast:0,fix:2},{field:"bounce_times",disable:!0},{title:"总设备数",field:"total_devices",tooltip:"从添加统计到当前选择时间的总设备数(去重)",value:0}];const z=e({data:()=>({fieldsMap:P,query:{dimension:"hour",appid:"",platform_id:"",uni_platform:"",version_id:"",start_time:[]},options:{pageSize:20,pageCurrent:1,total:0},loading:!1,currentDateTab:1,tableData:[],panelData:P.filter((e=>e.hasOwnProperty("value"))),chartData:{},chartTab:"new_device_count",errorMessage:""}),computed:{chartTabs(){const e=[];return P.forEach((t=>{const{field:a,title:i}=t,s=t.hasOwnProperty("value");a&&i&&s&&e.push({_id:a,name:i})})),e},queryStr(){return v(this.query,!0)},dimension(){return D(this.query.start_time,1)?"hour":"day"},versionQuery(){const{appid:e,uni_platform:t}=this.query;return v({appid:e,uni_platform:t})}},created(){this.debounceGet=C((()=>{this.getAllData(this.queryStr)}),300)},watch:{query:{deep:!0,handler(e){this.options.pageCurrent=1,this.debounceGet()}}},methods:{useDatetimePicker(){this.currentDateTab=-1},changePlatform(e,t,a,i){this.query.version_id=0,this.query.uni_platform=i.code},changeTimeRange(e,t){this.currentDateTab=t;const a=q(e),i=q(0)-1;this.query.start_time=[a,i]},changePageCurrent(e){this.options.pageCurrent=e.current,this.getTabelData(this.queryStr)},changePageSize(e){this.options.pageSize=e,this.options.pageCurrent=1,this.getTabelData(this.queryStr)},changeChartTab(e,t,a){this.getChartData(this.queryStr,e,a)},getAllData(e){-1!==e.indexOf("appid")?(this.errorMessage="",this.getPanelData(e),this.getChartData(e),this.getTabelData(e)):this.errorMessage="请先选择应用"},getChartData(e,a=this.chartTab){this.options,(e=JSON.parse(JSON.stringify(this.query))).dimension="day";let i=v(e,!1,["uni_platform"]);t.database().collection("uni-stat-result").where(i).field(`${x(P,a)},start_time,channel_id`).groupBy("channel_id,start_time").groupField(T(P,a)).orderBy("start_time","asc").get({getCount:!0}).then((e=>{const{count:t,data:i}=e.result,s={categories:[],series:[{name:"暂无数据",data:[]}]},n=s.categories;if("hour"===this.dimension)for(let a=0;a<24;++a){const e=a<10?"0"+a:a,t=`${e}:00 ~ ${e}:59`;n.push(t)}const l=[];i.forEach((e=>{l.indexOf(e.channel_id)<0&&l.push(e.channel_id)}));let o=[];this.getChannels().then((e=>{o=e.result.data})).finally((()=>{l.forEach(((e,t)=>{const l=o.find((t=>t._id===e)),r=s.series[t]={name:l&&l.channel_name||"未知",data:[]};if("hour"===this.dimension)for(let a=0;a<24;++a)r.data[a]=0;let u=P.filter((e=>e.field===a));u=JSON.parse(JSON.stringify(u)),delete u[0].value,u[0].formatter="";for(const s of i){S(u,s,s);let t=s.start_time;const i=w(t,this.dimension);let l=s[a];const o=n.indexOf(i);e===s.channel_id&&(o<0?(n.push(i),r.data.push(l)):r.data[o]=l)}})),this.chartData=s}))})).catch((e=>{console.error(e)})).finally((()=>{this.loading=!1}))},getChannels:()=>t.database().collection("uni-stat-app-channels").get(),getTabelData(e){const{pageCurrent:a}=this.options;this.loading=!0;let i=v(this.query,!1,["uni_platform"]);t.database().collection("uni-stat-result").where(i).field(`${x(P)},appid, channel_id`).groupBy("appid, channel_id").groupField(T(P)).orderBy("new_device_count","desc").skip((a-1)*this.options.pageSize).limit(this.options.pageSize).get({getCount:!0}).then((e=>{const{count:t,data:a}=e.result;this.getChannels().then((e=>{const t=e.result.data;for(const i of a)t.forEach((e=>{i.channel_id===e._id&&(i.channel_code=e.channel_code,i.channel_name=e.channel_name)}))})).finally((()=>{for(const e of a)S(P,e,e);this.tableData=[],this.options.total=t,this.tableData=a}))})).catch((e=>{console.error(e)})).finally((()=>{this.loading=!1}))},getPanelData(){let e=JSON.parse(JSON.stringify(this.query));e.dimension="day";let a=v(e,!1,["uni_platform"]);t.database().collection("uni-stat-result").where(a).field(x(P)).groupBy("appid").groupField(T(P)).orderBy("start_time","desc").get().then((t=>{const a=t.result.data[0];a&&(a.total_devices=0),V.call(this,e),this.panelData=[],this.panelData=S(P,a)}))},navTo(e){a({url:`/pages/uni-stat/overview/overview?id=${e}`})}}},[["render",function(e,t,a,v,D,C){const q=i(s("uni-stat-breadcrumb"),h),x=r,T=i(s("uni-data-select"),m),S=i(s("uni-stat-tabs"),g),w=i(s("uni-datetime-picker"),u),V=i(s("uni-stat-panel"),f),P=i(s("qiun-data-charts"),_),z=i(s("uni-stat-table"),b),j=i(s("uni-pagination"),y);return n(),l(x,{class:"fix-top-window"},{default:o((()=>[d(x,{class:"uni-header"},{default:o((()=>[d(q,{class:"uni-stat-breadcrumb-on-phone"}),d(x,{class:"uni-group"},{default:o((()=>[d(x,{class:"uni-sub-title hide-on-phone"},{default:o((()=>[c(" 小程序平台有效。用户打开小程序时的场景,如通过扫描二维码打开小程序,场景为二维码。注意:部分平台可能获取不到场景值,如支付宝小程序")])),_:1})])),_:1})])),_:1}),d(x,{class:"uni-container"},{default:o((()=>[d(x,{class:"uni-stat--x flex p-1015"},{default:o((()=>[d(x,{class:"uni-stat--app-select"},{default:o((()=>[d(T,{collection:"opendb-app-list",field:"appid as value, name as text",orderby:"text asc",defItem:1,label:"应用选择",modelValue:D.query.appid,"onUpdate:modelValue":t[0]||(t[0]=e=>D.query.appid=e),clear:!1},null,8,["modelValue"]),d(T,{collection:"opendb-app-versions",where:C.versionQuery,class:"ml-m",field:"_id as value, version as text, uni_platform as label, create_date as date",format:"{label} - {text}",orderby:"date desc",label:"版本选择",modelValue:D.query.version_id,"onUpdate:modelValue":t[1]||(t[1]=e=>D.query.version_id=e)},null,8,["where","modelValue"])])),_:1})])),_:1}),d(x,{class:"uni-stat--x flex"},{default:o((()=>[d(S,{label:"日期选择",current:D.currentDateTab,mode:"date",onChange:C.changeTimeRange},null,8,["current","onChange"]),d(w,{type:"datetimerange",end:(new Date).getTime(),modelValue:D.query.start_time,"onUpdate:modelValue":t[2]||(t[2]=e=>D.query.start_time=e),returnType:"timestamp",clearIcon:!1,class:p(["uni-stat-datetime-picker",{"uni-stat__actived":D.currentDateTab<0&&!!D.query.start_time.length}]),onChange:C.useDatetimePicker},null,8,["end","modelValue","class","onChange"])])),_:1}),d(x,{class:"uni-stat--x"},{default:o((()=>[d(S,{label:"平台选择",type:"boldLine",mode:"platform-scene",all:!1,modelValue:D.query.platform_id,"onUpdate:modelValue":t[3]||(t[3]=e=>D.query.platform_id=e),onChange:C.changePlatform},null,8,["modelValue","onChange"])])),_:1}),d(x,{class:"uni-stat--x",style:{padding:"15px 0"}},{default:o((()=>[d(V,{items:D.panelData,class:"uni-stat-panel"},null,8,["items"]),d(S,{type:"box",modelValue:D.chartTab,"onUpdate:modelValue":t[4]||(t[4]=e=>D.chartTab=e),tabs:C.chartTabs,class:"mb-l",onChange:C.changeChartTab},null,8,["modelValue","tabs","onChange"]),d(x,{class:"uni-charts-box",style:{height:"400px"}},{default:o((()=>[d(P,{type:"area",chartData:D.chartData,echartsH5:"",echartsApp:"",tooltipFormat:"tooltipCustom",errorMessage:D.errorMessage},null,8,["chartData","errorMessage"])])),_:1})])),_:1}),d(x,{class:"uni-stat--x p-m"},{default:o((()=>[d(z,{data:D.tableData,filedsMap:D.fieldsMap.slice(0,D.fieldsMap.length-1),loading:D.loading},null,8,["data","filedsMap","loading"]),d(x,{class:"uni-pagination-box"},{default:o((()=>[d(j,{"show-icon":"","show-page-size":"","page-size":D.options.pageSize,current:D.options.pageCurrent,total:D.options.total,onChange:C.changePageCurrent,onPageSizeChange:C.changePageSize},null,8,["page-size","current","total","onChange","onPageSizeChange"])])),_:1})])),_:1})])),_:1})])),_:1})}],["__scopeId","data-v-ca531181"]]);export{z as default};
|