From 338c966dbddb548f6511e6fdf4100456aa2be616 Mon Sep 17 00:00:00 2001
From: luosongbai <15272473386@163.com>
Date: Wed, 24 Aug 2022 16:52:41 +0800
Subject: [PATCH] =?UTF-8?q?=E7=BB=BC=E5=90=88=E5=88=86=E6=9E=90?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
web/pages/comprehensive.html | 124 ++++++++
web/pages/dashboard.html | 8 +
web/pages/modeltable.html | 20 ++
web/src/x.min.js | 487 +++++++++++++++++++++++++++++-
web/srczip/common.js | 45 ++-
web/srczip/logic/comprehensive.js | 415 +++++++++++++++++++++++++
web/srczip/logic/dashboard.js | 26 +-
web/static/css/analysis.css | 3 +
8 files changed, 1116 insertions(+), 12 deletions(-)
create mode 100644 web/pages/comprehensive.html
create mode 100644 web/srczip/logic/comprehensive.js
diff --git a/web/pages/comprehensive.html b/web/pages/comprehensive.html
new file mode 100644
index 0000000..c6780ba
--- /dev/null
+++ b/web/pages/comprehensive.html
@@ -0,0 +1,124 @@
+
+
+
+
+
+
+
+
+
综合分析
+
+
+
+
+
+
+

+
+
+
+
+
+

+
+
+

+
+
+

+
返回
+
+
+
+
+
+
+
+
+
+
+
diff --git a/web/pages/dashboard.html b/web/pages/dashboard.html
index 892a8b7..b0a422c 100644
--- a/web/pages/dashboard.html
+++ b/web/pages/dashboard.html
@@ -45,6 +45,14 @@
用户标签
+
+
+ 综合分析
+
+ - 综合分析
+
+
+
数据管理
diff --git a/web/pages/modeltable.html b/web/pages/modeltable.html
index 5375d01..af854d3 100644
--- a/web/pages/modeltable.html
+++ b/web/pages/modeltable.html
@@ -199,6 +199,17 @@
{{# }); }}
+ {{# } else if(d.cat === "first_event"){ }}
+
+
+ {{# layui.each(d.condata, function(indexs, items) { }}
+
+ {{items[0]}}
+ {{items[1]}}%
+ |
+ {{# }); }}
+
+
{{# } }}
@@ -289,6 +300,15 @@
{{items}} |
{{# }); }}
+
+ {{# } else if(d.cat === "first_event"){ }}
+
+ {{# layui.each(d.condata, function(indexs, items) { }}
+
+ {{items[0]}}
+ {{items[1]}}%
+
+ {{# }); }}
{{# } }}
diff --git a/web/src/x.min.js b/web/src/x.min.js
index 21354e3..a0b1b97 100644
--- a/web/src/x.min.js
+++ b/web/src/x.min.js
@@ -118,6 +118,22 @@ var X = window.X || {
{'title':'按周','id':'P1W'},
{'title':'按月','id':'P1M'},
{'title':'合计','id':'total'}
+ ],
+ 'comprehensive':[
+ {
+ title: '按年',id:'year'
+ },{
+ title: '按月',id:'P1M'
+ },{
+ title: '按天',id:'P1D'
+ },{
+ title: '按小时',id:'PT1H'
+ },{
+ title: '按分钟',id:'PT1M'
+ },{
+ title: '按秒',id:'second'
+ },
+
]
},
'retentionlist' : [
@@ -138,8 +154,7 @@ var X = window.X || {
(function(){
//本地李伟
- // var ipurl = "http://10.0.0.240:7899/api/v1/";
-
+ // var ipurl = "http://10.0.0.240:7899/api/v1/";
//本地李宗振
// var ipurl = "http://10.0.0.94:7899/api/v1/";
// 线上
@@ -569,6 +584,10 @@ var X = window.X || {
granularity = '14日'
}else if(timeParticleSize == '30'){
granularity = '30日'
+ }else if( timeParticleSize == 'year' ){
+ granularity = '按年'
+ }else if(timeParticleSize == 'second'){
+ granularity = '按秒'
}
callback && callback(granularity);
};
@@ -1401,16 +1420,13 @@ var X = window.X || {
tabdata = data.list
}
-
var date = data['start_date'] + " - " + data['end_date'];
var dataArr = {
titledata: xAxisdata,
condata: tabdata,
date:date
}
- console.log(dataArr)
callback && callback(dataArr);
-
}
X.funnelchart=function(data,callback){
@@ -1480,6 +1496,25 @@ var X = window.X || {
callback && callback(dataArr);
}
+ X.first_event=function(data,callback){
+ var xAxisdata = []
+ var tabledata=[];
+ for(let i in data['list']){
+ var arr = []
+ arr[0] = data.list[i]
+ arr[1] = data.p[i]
+ tabledata.push(arr)
+ }
+
+ var date = data['start_date'] + " - " + data['end_date'];
+ var dataArr = {
+ titledata: data.level,
+ condata: tabledata,
+ date:date
+ }
+ callback && callback(dataArr);
+ }
+
// 分组项
// X.grouped=function(data,id){
// console.log(data)
@@ -5923,6 +5958,422 @@ var X = window.X || {
})();
+// srczip/logic/comprehensive.js
+(function(){
+ X.pageLogic['comprehensive'] = {
+ init : function(parms){
+
+ var data ={
+ "eventView":{
+ "cksql":"first_event",
+ "endTime":"",
+ "filts":[],
+ "groupBy":[],
+ "e_days":0,
+ "s_days":7,
+ "relation":"and",
+ "startTime":"",
+ "statType":"retention",
+ "event_diff":"minute",
+ "windows_gap":7,
+ "switchTest": true,
+ minute:[]
+ },
+ "events":[
+
+ ]
+ };
+
+ // 日期渲染
+ X.daterender("#retained-condition-date",function(start, end, label){
+ var startTime = start.format('YYYY-MM-DD')+ " "+ "00:00:00";
+ var endTime = end.format('YYYY-MM-DD')+ " "+ "23:59:59";
+ var sameday = Date.parse(new Date()) / 1000; //当天时间戳
+
+ var enddate = new Date(end.format('YYYY-MM-DD'));
+ var endmonth = Date.parse(enddate)/1000;
+
+ var startdate = new Date(start.format('YYYY-MM-DD'));
+ var startmonth = Date.parse(startdate)/1000;
+ data['eventView']['startTime'] = startTime;
+ data['eventView']['endTime'] = endTime;
+ data['eventView']['e_days'] = parseInt((sameday - endmonth)/86400);
+ data['eventView']['s_days'] = parseInt((sameday - startmonth)/86400);
+ retaineddata();
+ })
+
+ // 时间粒度
+ X.laydropdown('.analtsis-timeParticleSize',X['DATA']['companylist']['comprehensive'],function(d){
+ $(".analtsis-timeParticleSize").html(d.title);
+ data['eventView']['event_diff'] = d.id;
+ });
+
+ var time = $("#retained-condition-date").val();
+ var timearr = time.split(" ");
+ data['eventView']['startTime'] = timearr[0] + " "+"00:00:00";
+ data['eventView']['endTime'] = timearr[2]+" "+"23:59:59";
+
+ var eventdata;
+ var groupitemeventsdata//分组项里的事件
+ var filter_map,quotas_map,type2data;
+ // var screentypearr = [];
+
+ layui.form.render();
+
+ X.api("data_auth/my_event","get",{},function(d){
+ eventdata = d;
+ var arr = [{
+ "eventDesc":eventdata[0]['category'][0]['event_desc'],
+ "eventName":eventdata[0]['category'][0]['event_name'],
+ "filts":[],
+ "relation":"and",
+ "condrelation":"and",
+ "renameindicator":""
+ },{
+ "eventDesc":eventdata[0]['category'][0]['event_desc'],
+ "eventName":eventdata[0]['category'][0]['event_name'],
+ "filts":[],
+ "relation":"and",
+ "condrelation":"and",
+ "renameindicator":""
+ }]
+ data['events'] = arr;
+
+ X.api("data_auth/load_prop_quotas","post",{event_name:eventdata[0]['category'][0]['event_name']},function(d){
+ var retdata = d.staid_quots.concat(d.props);
+ type2data= retdata
+ X.api("data_auth/load_filter_props","post",{event_name:eventdata[0]['category'][0]['event_name']},function(val){
+ groupitemeventsdata= val;
+ X.api("data_auth/filter_map","get",{},function(d){
+ filter_map = d;
+ X.api('data_auth/quotas_map',"get",{},function(d){
+ quotas_map = d;
+ //从数据看板点击进来触发事件
+ if(X.DATA.funnelid && X.DATA.funnelid != ''){
+ var report_idarr = [];
+ report_idarr.push(X.DATA.funnelid);
+ X.api('report/read_report','post',{project_id:X.DATA.projectid,report_id:report_idarr},function(d){
+ backfilldata(d[0]);
+ })
+ }
+
+ //初始事件
+ X.template("funnel","funnel-event",data['events']);
+ })
+ })
+ })
+ })
+ });
+
+ var baobiaodata;
+ function backfilldata(d){
+ if(d){
+ data = d.query;
+ var time = $("#retained-condition-date").val();
+ var timearr = time.split(" ");
+ data['eventView']['startTime'] = timearr[0] + " "+"00:00:00";
+ data['eventView']['endTime'] = timearr[2]+" "+"23:59:59";
+ baobiaodata = d;
+ // 数据看板点进来时吧保存的时间初始化为当前时间
+ var time = $("#retained-condition-date").val();
+ var timearr = time.split(" ");
+ data['eventView']['startTime'] = timearr[0] + " "+"00:00:00";
+ data['eventView']['endTime'] = timearr[2]+" "+"23:59:59";
+
+ retaineddata();
+ }
+ };
+
+ $(document).off('click','.analysis-chongmingming').on('click','.analysis-chongmingming',function(){
+ var index = $(this).attr('data-index');
+ $("#analysis-con-left-screen-list-left-zhibiaoname-"+index).show();
+
+ $(this).hide();
+ $(".analysis-chongmingming-del-initial-event").show();
+ });
+
+ $(document).off('click','.analysis-chongmingming-del').on('click','.analysis-chongmingming-del',function(){
+ var index = $(this).attr('data-index');
+ $("#analysis-con-left-screen-list-left-zhibiaoname-"+index).hide();
+ $("#analysis-con-left-screen-list-left-zhibiaoname-"+index+ " input").val('');
+ $(this).hide();
+ $(".analysis-chongmingming").show();
+ });
+
+ $(document).off("blur",'.analysis-con-left-screen-list-left-zhibiaoname-txt').on('blur','.analysis-con-left-screen-list-left-zhibiaoname-txt',function(){
+ var index = $(this).attr('data-index');
+ // console.log(data)
+ data['events'][index]['renameindicator'] = $(this).val();
+ })
+
+ $(document).off("click",'.analysis-con-left-screen-list-right-screen-qh-tit').on("click",'.analysis-con-left-screen-list-right-screen-qh-tit',function(){
+ var index = $(this).attr('data-index');
+ if($(this).html() == '或'){
+ $(this).html('且')
+ data['events'][index]['condrelation'] = 'and'
+ }else {
+ $(this).html('或')
+ data['events'][index]['condrelation'] = 'or'
+ }
+ })
+
+ // 添加指标
+ function addindex(){
+ var defaultindicator = {
+ "eventDesc":eventdata[0]['category'][0]['event_desc'],
+ "eventName":eventdata[0]['category'][0]['event_name'],
+ "filts":[],
+ "relation":"and",
+ "condrelation":"and",
+ "renameindicator":""
+ }
+ data['events'].push(defaultindicator);
+ X.template("funnel","funnel-event",data['events'],function(){
+ var drr = [];
+ if(data['events'].length > 2){
+ $(".analysis-del").show();
+ }else {
+ $(".analysis-del").hide();
+ }
+ });
+
+ };
+
+ //添加按钮
+ $(document).off('click','.analysis-jia1').on('click','.analysis-jia1',function(){
+ addindex();
+ });
+ $(document).off('click','.funnel-updataevent').on('click','.funnel-updataevent',function(){
+ addindex();
+ });
+
+ // 添加筛选项
+ $(document).off('click','.analysis-shaix').on('click','.analysis-shaix',function(){
+ var obj = $(this);
+ var index = obj.attr("data-index");
+ addscreen(index);
+ });
+
+ // 添加筛选项
+ function addscreen(index){
+ var arr = {
+ "columnDesc":groupitemeventsdata[0]['category'][0]['title'],
+ "columnName":groupitemeventsdata[0]['category'][0]['id'],
+ "comparator":"==",
+ "comparatorName":"等于",
+ "ftv":[],
+ "strftv":"",
+ "tableType":groupitemeventsdata[0]['category'][0]['data_type'],
+ "timeUnit":""
+ }
+ data['events'][index]['filts'].push(arr);
+ X.template("funnel","funnel-event",data['events']);
+ };
+
+ $(document).off('click','.analysis-zhibiao-updata').on('click','.analysis-zhibiao-updata',function(){
+ var obj = $(this);
+ var index = obj.attr("data-index");
+ addscreen(index);
+ });
+
+ // 删除指定初始事件筛选
+ $(document).off('click','.analysis-del').on('click','.analysis-del',function(){
+ var index = $(this).attr("data-index");
+ data['events'].splice(index,1);
+ X.template("funnel","funnel-event",data['events']);
+ });
+
+ //删除指定筛选
+ $(document).off('click','.funnel-analysis-zhibiao-list-del').on('click','.funnel-analysis-zhibiao-list-del',function(){
+ var index = $(this).attr("data-index");
+ var indexs = $(this).attr("data-twonum");
+ data['events'][index]['filts'].splice(indexs,1);
+ X.template("funnel","funnel-event",data['events']);
+ });
+
+ $(document).off('blur','.analysis-con-left-screen-list-left-zhibiaoname-initial-event input').on('blur','.analysis-con-left-screen-list-left-zhibiaoname-initial-event input',function(){
+ var txt = $(this).val();
+ data['events'][0]['renameindicator'] = txt;
+ });
+
+ $(document).off('click','.ant-dropdown-trigger').on('click','.ant-dropdown-trigger',function(){
+ var obj = $(this);
+ var offset = obj.offset();
+ var index = obj.attr("data-index");
+ var dataevent= data['events'][index];
+ // console.log(dataevent);
+ X.querycriteriapop(eventdata,'setgrouping',offset.left,offset.top+obj.height(),function(val){
+ obj.html(val.id);
+ dataevent['eventName'] = val.name;
+ dataevent['eventDesc'] = val.id;
+
+ X.api("data_auth/load_filter_props","post",{event_name:val.name},function(val){
+ groupitemeventsdata = val;
+ })
+ // console.log(data['events']);
+
+ })
+ });
+
+ $(document).off('click','.ta-property-select').on('click','.ta-property-select',function(){
+ var obj = $(this);
+ var offset = obj.offset();
+ var index = obj.attr("data-index");
+ var indexs = obj.attr("data-indexs");
+ X.querycriteriapop(groupitemeventsdata,'category',offset.left,offset.top+obj.height(),function(val){
+ var htmlstring = val.title;
+ obj.html(htmlstring);
+ data['events'][index]['filts'][indexs]['columnDesc'] = htmlstring;
+ data['events'][index]['filts'][indexs]['columnName'] = val.id;
+ data['events'][index]['filts'][indexs]['data_type'] = val.type;
+ data['events'][index]['filts'][indexs]['tableType'] = val.table_type;
+ })
+ });
+
+ $(document).off('click','.analysis-choicetypename').on('click','.analysis-choicetypename',function(){
+ var obj = $(this);
+ var offset = obj.offset();
+ var index = $(this).attr("data-index");
+ var indexs = $(this).attr("data-indexs");
+ var type = data['events'][index]['filts'][indexs]['data_type'];
+ X.querycriteriapop(filter_map[type],'dropdownlist',offset.left,offset.top+obj.height(),function(val){
+ if(val != undefined){
+ obj.html(val.title);
+ data['events'][index]['filts'][indexs]['comparatorName'] = val.title;
+ data['events'][index]['filts'][indexs]['comparator'] = val.id;
+ }
+ })
+ });
+
+ $(document).off("click",'.analysis-zhibiao-list-type4').on('click','.analysis-zhibiao-list-type4',function(){
+ var obj = $(this);
+ var offset = obj.offset();
+ var index = $(this).attr("data-index");
+ var indexs = $(this).attr("data-indexs");
+ var comparator = data['events'][index]['filts'][indexs]['comparator'];
+ var columnName = data['events'][index]['filts'][indexs]['columnName'];
+
+ X.api("data_mana/select_attr","post",{attr_name:columnName},function(val){
+ if(val != "查无数据"){
+ X.parametersopen(val['map_'],'dropdownlist',[offset.top+obj.height(),offset.left],function(val){
+ if(comparator == "in"){
+ if(data['events'][index]['filts'][indexs]['strftv'] == "" ){
+ var strftv = val.title;
+ data['events'][index]['filts'][indexs]['ftv'].push(val.id);
+ }else {
+ var strftv = data['events'][index]['filts'][indexs]['strftv'] + "," + val.title;
+ data['events'][index]['filts'][indexs]['ftv'].push(val.id);
+ }
+ data['events'][index]['filts'][indexs]['strftv'] = strftv;
+ }else {
+ data['events'][index]['filts'][indexs]['strftv'] = val.title;
+ var arr = [];
+ arr.push(val.id);
+ data['events'][index]['filts'][indexs]['ftv'] = arr;
+ }
+
+ X.template("funnel","funnel-event",data['events'],function(){
+ var drr = [];
+ if(data['events'].length > 2){
+ $(".analysis-del").show();
+ }else {
+ $(".analysis-del").hide();
+ }
+ });
+ })
+ }
+ })
+ })
+
+ $(document).off('blur','.analysis-zhibiao-list-type4 input').on('blur','.analysis-zhibiao-list-type4 input',function(){
+ var index = $(this).attr('data-index');
+ var indexs = $(this).attr('data-indexs');
+ var txt = $(this).val();
+ var txtarr = txt.split(",");
+ data['events'][index]['filts'][indexs]['strftv'] = txt;
+ data['events'][index]['filts'][indexs]['ftv'] = txtarr;
+ });
+
+ $(document).off('blur','.comprehensive-group-box').on('blur','.comprehensive-group-box',function(){
+ var txt = $(this).val().split(',');
+ console.log(txt)
+ var arr = [];
+ for(let i in txt){
+ arr.push(txt[i])
+ }
+ data['eventView']['minute'] = arr
+ })
+
+ // sql语句显示
+ $(document).off('click','.sqlquery').on('click','.sqlquery',function(){
+ var obj = $(this);
+ var offset = obj.offset();
+ X.querycriteriapop(data,'conditionquery',offset.left - 410,offset.top+obj.height(),function(){
+
+ })
+ });
+
+ // 计算按钮
+ $(document).off('click','.analysis-calculation').on('click','.analysis-calculation',function(){
+ console.log(data)
+ retaineddata()
+ });
+ var querydata;
+ function retaineddata(){
+ var dataArr = {
+ eventView: data.eventView,
+ events: data.events
+ }
+ X.api("ck/first_event_model","post",dataArr,function(d){
+ if(d != "查无数据"){
+ retainedtable(d)
+ }else {
+ layer.msg('查无数据');
+ }
+ })
+ };
+
+ function retainedtable(d){
+ var tabledata=[];
+ for(let i in d['list']){
+ var arr = []
+ arr[0] = d.list[i]
+ arr[1] = d.p[i]
+ tabledata.push(arr)
+ }
+ X.laytpldata("#table-fenxi-th-dot",d.level,".table-fenxi-th");
+ X.laytpldata("#table-fenxi-td-dot",tabledata,".table-fenxi-td");
+ };
+
+ $(document).off('click','.analysis-savereport').on('click','.analysis-savereport',function(){
+ X.parametersopen(data,'savereport','auto')
+ });
+
+ $(document).off('click','.analysis-navigation-bar-right-img-baobiao').on('click','.analysis-navigation-bar-right-img-baobiao',function(){
+ X.parametersopen(data['eventView']['cksql'],'savedbaobiao','rt',function(d){
+ if(d){
+ data = d.query;
+
+ X.template("funnel","funnel-event",data['events']);
+ X.template("globalfilter","xinwei-whole",data['eventView']['filts'],function(){
+ renderdate();
+ });
+
+ retaineddata();
+ }
+
+ })
+ });
+
+ // 返回
+ $(document).off('click','.analysis-fanhui').on('click','.analysis-fanhui',function(){
+ X.gourl("dashboard");
+ // return;
+ });
+
+ }
+ };
+})();
// srczip/logic/conditionquery.js
(function(){
X.pageLogic['conditionquery'] = {
@@ -7147,7 +7598,9 @@ var X = window.X || {
if(d['query']){
if(d.cat == "retention"){
var timeParticleSize = d['query']['eventView']['unitNum'];
- }else {
+ }else if(d.cat == 'first_event'){
+ var timeParticleSize = d['query']['eventView']['event_diff'];
+ } else {
var timeParticleSize = d['query']['eventView']['timeParticleSize'];
}
@@ -7450,6 +7903,28 @@ var X = window.X || {
eventdata.push(data);
})
}
+ }else if(d['model'] == 'first_event'){
+ X.first_event(val,function(data){
+ console.log(data)
+ console.log(d)
+ data['name'] = d['name'];
+ data['modeltype'] = 'table';
+ data['id'] = d['report_id'];
+ data['modelsize'] = d['graph_size'];
+ data['cat'] = d['model'];
+ data['desc'] = d['desc'];
+ data['reverseorder']=d['reverseorder'];
+ data['timeParticleSize'] = granularity;
+ eventdata.push(data);
+ if(d['ascending']){
+ var condatalength = eventdata[0]['condata'].length;
+ var condataascend=[];
+ for(var i = condatalength - 1; i >= 0; i--){
+ condataascend.push(eventdata[0]['condata'][i]);
+ }
+ eventdata[0]['condata'] = condataascend;
+ }
+ })
}
eventdata[0]['authority'] = X.DATA.authority;
return eventdata;
diff --git a/web/srczip/common.js b/web/srczip/common.js
index a84fe40..a4f847b 100644
--- a/web/srczip/common.js
+++ b/web/srczip/common.js
@@ -117,6 +117,22 @@ var X = window.X || {
{'title':'按周','id':'P1W'},
{'title':'按月','id':'P1M'},
{'title':'合计','id':'total'}
+ ],
+ 'comprehensive':[
+ {
+ title: '按年',id:'year'
+ },{
+ title: '按月',id:'P1M'
+ },{
+ title: '按天',id:'P1D'
+ },{
+ title: '按小时',id:'PT1H'
+ },{
+ title: '按分钟',id:'PT1M'
+ },{
+ title: '按秒',id:'second'
+ },
+
]
},
'retentionlist' : [
@@ -137,8 +153,7 @@ var X = window.X || {
(function(){
//本地李伟
- // var ipurl = "http://10.0.0.240:7899/api/v1/";
-
+ // var ipurl = "http://10.0.0.240:7899/api/v1/";
//本地李宗振
// var ipurl = "http://10.0.0.94:7899/api/v1/";
// 线上
@@ -568,6 +583,10 @@ var X = window.X || {
granularity = '14日'
}else if(timeParticleSize == '30'){
granularity = '30日'
+ }else if( timeParticleSize == 'year' ){
+ granularity = '按年'
+ }else if(timeParticleSize == 'second'){
+ granularity = '按秒'
}
callback && callback(granularity);
};
@@ -1400,16 +1419,13 @@ var X = window.X || {
tabdata = data.list
}
-
var date = data['start_date'] + " - " + data['end_date'];
var dataArr = {
titledata: xAxisdata,
condata: tabdata,
date:date
}
- console.log(dataArr)
callback && callback(dataArr);
-
}
X.funnelchart=function(data,callback){
@@ -1479,6 +1495,25 @@ var X = window.X || {
callback && callback(dataArr);
}
+ X.first_event=function(data,callback){
+ var xAxisdata = []
+ var tabledata=[];
+ for(let i in data['list']){
+ var arr = []
+ arr[0] = data.list[i]
+ arr[1] = data.p[i]
+ tabledata.push(arr)
+ }
+
+ var date = data['start_date'] + " - " + data['end_date'];
+ var dataArr = {
+ titledata: data.level,
+ condata: tabledata,
+ date:date
+ }
+ callback && callback(dataArr);
+ }
+
// 分组项
// X.grouped=function(data,id){
// console.log(data)
diff --git a/web/srczip/logic/comprehensive.js b/web/srczip/logic/comprehensive.js
new file mode 100644
index 0000000..40cb608
--- /dev/null
+++ b/web/srczip/logic/comprehensive.js
@@ -0,0 +1,415 @@
+(function(){
+ X.pageLogic['comprehensive'] = {
+ init : function(parms){
+
+ var data ={
+ "eventView":{
+ "cksql":"first_event",
+ "endTime":"",
+ "filts":[],
+ "groupBy":[],
+ "e_days":0,
+ "s_days":7,
+ "relation":"and",
+ "startTime":"",
+ "statType":"retention",
+ "event_diff":"minute",
+ "windows_gap":7,
+ "switchTest": true,
+ minute:[]
+ },
+ "events":[
+
+ ]
+ };
+
+ // 日期渲染
+ X.daterender("#retained-condition-date",function(start, end, label){
+ var startTime = start.format('YYYY-MM-DD')+ " "+ "00:00:00";
+ var endTime = end.format('YYYY-MM-DD')+ " "+ "23:59:59";
+ var sameday = Date.parse(new Date()) / 1000; //当天时间戳
+
+ var enddate = new Date(end.format('YYYY-MM-DD'));
+ var endmonth = Date.parse(enddate)/1000;
+
+ var startdate = new Date(start.format('YYYY-MM-DD'));
+ var startmonth = Date.parse(startdate)/1000;
+ data['eventView']['startTime'] = startTime;
+ data['eventView']['endTime'] = endTime;
+ data['eventView']['e_days'] = parseInt((sameday - endmonth)/86400);
+ data['eventView']['s_days'] = parseInt((sameday - startmonth)/86400);
+ retaineddata();
+ })
+
+ // 时间粒度
+ X.laydropdown('.analtsis-timeParticleSize',X['DATA']['companylist']['comprehensive'],function(d){
+ $(".analtsis-timeParticleSize").html(d.title);
+ data['eventView']['event_diff'] = d.id;
+ });
+
+ var time = $("#retained-condition-date").val();
+ var timearr = time.split(" ");
+ data['eventView']['startTime'] = timearr[0] + " "+"00:00:00";
+ data['eventView']['endTime'] = timearr[2]+" "+"23:59:59";
+
+ var eventdata;
+ var groupitemeventsdata//分组项里的事件
+ var filter_map,quotas_map,type2data;
+ // var screentypearr = [];
+
+ layui.form.render();
+
+ X.api("data_auth/my_event","get",{},function(d){
+ eventdata = d;
+ var arr = [{
+ "eventDesc":eventdata[0]['category'][0]['event_desc'],
+ "eventName":eventdata[0]['category'][0]['event_name'],
+ "filts":[],
+ "relation":"and",
+ "condrelation":"and",
+ "renameindicator":""
+ },{
+ "eventDesc":eventdata[0]['category'][0]['event_desc'],
+ "eventName":eventdata[0]['category'][0]['event_name'],
+ "filts":[],
+ "relation":"and",
+ "condrelation":"and",
+ "renameindicator":""
+ }]
+ data['events'] = arr;
+
+ X.api("data_auth/load_prop_quotas","post",{event_name:eventdata[0]['category'][0]['event_name']},function(d){
+ var retdata = d.staid_quots.concat(d.props);
+ type2data= retdata
+ X.api("data_auth/load_filter_props","post",{event_name:eventdata[0]['category'][0]['event_name']},function(val){
+ groupitemeventsdata= val;
+ X.api("data_auth/filter_map","get",{},function(d){
+ filter_map = d;
+ X.api('data_auth/quotas_map',"get",{},function(d){
+ quotas_map = d;
+ //从数据看板点击进来触发事件
+ if(X.DATA.funnelid && X.DATA.funnelid != ''){
+ var report_idarr = [];
+ report_idarr.push(X.DATA.funnelid);
+ X.api('report/read_report','post',{project_id:X.DATA.projectid,report_id:report_idarr},function(d){
+ backfilldata(d[0]);
+ })
+ }
+
+ //初始事件
+ X.template("funnel","funnel-event",data['events']);
+ })
+ })
+ })
+ })
+ });
+
+ var baobiaodata;
+ function backfilldata(d){
+ if(d){
+ data = d.query;
+ var time = $("#retained-condition-date").val();
+ var timearr = time.split(" ");
+ data['eventView']['startTime'] = timearr[0] + " "+"00:00:00";
+ data['eventView']['endTime'] = timearr[2]+" "+"23:59:59";
+ baobiaodata = d;
+ // 数据看板点进来时吧保存的时间初始化为当前时间
+ var time = $("#retained-condition-date").val();
+ var timearr = time.split(" ");
+ data['eventView']['startTime'] = timearr[0] + " "+"00:00:00";
+ data['eventView']['endTime'] = timearr[2]+" "+"23:59:59";
+
+ retaineddata();
+ }
+ };
+
+ $(document).off('click','.analysis-chongmingming').on('click','.analysis-chongmingming',function(){
+ var index = $(this).attr('data-index');
+ $("#analysis-con-left-screen-list-left-zhibiaoname-"+index).show();
+
+ $(this).hide();
+ $(".analysis-chongmingming-del-initial-event").show();
+ });
+
+ $(document).off('click','.analysis-chongmingming-del').on('click','.analysis-chongmingming-del',function(){
+ var index = $(this).attr('data-index');
+ $("#analysis-con-left-screen-list-left-zhibiaoname-"+index).hide();
+ $("#analysis-con-left-screen-list-left-zhibiaoname-"+index+ " input").val('');
+ $(this).hide();
+ $(".analysis-chongmingming").show();
+ });
+
+ $(document).off("blur",'.analysis-con-left-screen-list-left-zhibiaoname-txt').on('blur','.analysis-con-left-screen-list-left-zhibiaoname-txt',function(){
+ var index = $(this).attr('data-index');
+ // console.log(data)
+ data['events'][index]['renameindicator'] = $(this).val();
+ })
+
+ $(document).off("click",'.analysis-con-left-screen-list-right-screen-qh-tit').on("click",'.analysis-con-left-screen-list-right-screen-qh-tit',function(){
+ var index = $(this).attr('data-index');
+ if($(this).html() == '或'){
+ $(this).html('且')
+ data['events'][index]['condrelation'] = 'and'
+ }else {
+ $(this).html('或')
+ data['events'][index]['condrelation'] = 'or'
+ }
+ })
+
+ // 添加指标
+ function addindex(){
+ var defaultindicator = {
+ "eventDesc":eventdata[0]['category'][0]['event_desc'],
+ "eventName":eventdata[0]['category'][0]['event_name'],
+ "filts":[],
+ "relation":"and",
+ "condrelation":"and",
+ "renameindicator":""
+ }
+ data['events'].push(defaultindicator);
+ X.template("funnel","funnel-event",data['events'],function(){
+ var drr = [];
+ if(data['events'].length > 2){
+ $(".analysis-del").show();
+ }else {
+ $(".analysis-del").hide();
+ }
+ });
+
+ };
+
+ //添加按钮
+ $(document).off('click','.analysis-jia1').on('click','.analysis-jia1',function(){
+ addindex();
+ });
+ $(document).off('click','.funnel-updataevent').on('click','.funnel-updataevent',function(){
+ addindex();
+ });
+
+ // 添加筛选项
+ $(document).off('click','.analysis-shaix').on('click','.analysis-shaix',function(){
+ var obj = $(this);
+ var index = obj.attr("data-index");
+ addscreen(index);
+ });
+
+ // 添加筛选项
+ function addscreen(index){
+ var arr = {
+ "columnDesc":groupitemeventsdata[0]['category'][0]['title'],
+ "columnName":groupitemeventsdata[0]['category'][0]['id'],
+ "comparator":"==",
+ "comparatorName":"等于",
+ "ftv":[],
+ "strftv":"",
+ "tableType":groupitemeventsdata[0]['category'][0]['data_type'],
+ "timeUnit":""
+ }
+ data['events'][index]['filts'].push(arr);
+ X.template("funnel","funnel-event",data['events']);
+ };
+
+ $(document).off('click','.analysis-zhibiao-updata').on('click','.analysis-zhibiao-updata',function(){
+ var obj = $(this);
+ var index = obj.attr("data-index");
+ addscreen(index);
+ });
+
+ // 删除指定初始事件筛选
+ $(document).off('click','.analysis-del').on('click','.analysis-del',function(){
+ var index = $(this).attr("data-index");
+ data['events'].splice(index,1);
+ X.template("funnel","funnel-event",data['events']);
+ });
+
+ //删除指定筛选
+ $(document).off('click','.funnel-analysis-zhibiao-list-del').on('click','.funnel-analysis-zhibiao-list-del',function(){
+ var index = $(this).attr("data-index");
+ var indexs = $(this).attr("data-twonum");
+ data['events'][index]['filts'].splice(indexs,1);
+ X.template("funnel","funnel-event",data['events']);
+ });
+
+ $(document).off('blur','.analysis-con-left-screen-list-left-zhibiaoname-initial-event input').on('blur','.analysis-con-left-screen-list-left-zhibiaoname-initial-event input',function(){
+ var txt = $(this).val();
+ data['events'][0]['renameindicator'] = txt;
+ });
+
+ $(document).off('click','.ant-dropdown-trigger').on('click','.ant-dropdown-trigger',function(){
+ var obj = $(this);
+ var offset = obj.offset();
+ var index = obj.attr("data-index");
+ var dataevent= data['events'][index];
+ // console.log(dataevent);
+ X.querycriteriapop(eventdata,'setgrouping',offset.left,offset.top+obj.height(),function(val){
+ obj.html(val.id);
+ dataevent['eventName'] = val.name;
+ dataevent['eventDesc'] = val.id;
+
+ X.api("data_auth/load_filter_props","post",{event_name:val.name},function(val){
+ groupitemeventsdata = val;
+ })
+ // console.log(data['events']);
+
+ })
+ });
+
+ $(document).off('click','.ta-property-select').on('click','.ta-property-select',function(){
+ var obj = $(this);
+ var offset = obj.offset();
+ var index = obj.attr("data-index");
+ var indexs = obj.attr("data-indexs");
+ X.querycriteriapop(groupitemeventsdata,'category',offset.left,offset.top+obj.height(),function(val){
+ var htmlstring = val.title;
+ obj.html(htmlstring);
+ data['events'][index]['filts'][indexs]['columnDesc'] = htmlstring;
+ data['events'][index]['filts'][indexs]['columnName'] = val.id;
+ data['events'][index]['filts'][indexs]['data_type'] = val.type;
+ data['events'][index]['filts'][indexs]['tableType'] = val.table_type;
+ })
+ });
+
+ $(document).off('click','.analysis-choicetypename').on('click','.analysis-choicetypename',function(){
+ var obj = $(this);
+ var offset = obj.offset();
+ var index = $(this).attr("data-index");
+ var indexs = $(this).attr("data-indexs");
+ var type = data['events'][index]['filts'][indexs]['data_type'];
+ X.querycriteriapop(filter_map[type],'dropdownlist',offset.left,offset.top+obj.height(),function(val){
+ if(val != undefined){
+ obj.html(val.title);
+ data['events'][index]['filts'][indexs]['comparatorName'] = val.title;
+ data['events'][index]['filts'][indexs]['comparator'] = val.id;
+ }
+ })
+ });
+
+ $(document).off("click",'.analysis-zhibiao-list-type4').on('click','.analysis-zhibiao-list-type4',function(){
+ var obj = $(this);
+ var offset = obj.offset();
+ var index = $(this).attr("data-index");
+ var indexs = $(this).attr("data-indexs");
+ var comparator = data['events'][index]['filts'][indexs]['comparator'];
+ var columnName = data['events'][index]['filts'][indexs]['columnName'];
+
+ X.api("data_mana/select_attr","post",{attr_name:columnName},function(val){
+ if(val != "查无数据"){
+ X.parametersopen(val['map_'],'dropdownlist',[offset.top+obj.height(),offset.left],function(val){
+ if(comparator == "in"){
+ if(data['events'][index]['filts'][indexs]['strftv'] == "" ){
+ var strftv = val.title;
+ data['events'][index]['filts'][indexs]['ftv'].push(val.id);
+ }else {
+ var strftv = data['events'][index]['filts'][indexs]['strftv'] + "," + val.title;
+ data['events'][index]['filts'][indexs]['ftv'].push(val.id);
+ }
+ data['events'][index]['filts'][indexs]['strftv'] = strftv;
+ }else {
+ data['events'][index]['filts'][indexs]['strftv'] = val.title;
+ var arr = [];
+ arr.push(val.id);
+ data['events'][index]['filts'][indexs]['ftv'] = arr;
+ }
+
+ X.template("funnel","funnel-event",data['events'],function(){
+ var drr = [];
+ if(data['events'].length > 2){
+ $(".analysis-del").show();
+ }else {
+ $(".analysis-del").hide();
+ }
+ });
+ })
+ }
+ })
+ })
+
+ $(document).off('blur','.analysis-zhibiao-list-type4 input').on('blur','.analysis-zhibiao-list-type4 input',function(){
+ var index = $(this).attr('data-index');
+ var indexs = $(this).attr('data-indexs');
+ var txt = $(this).val();
+ var txtarr = txt.split(",");
+ data['events'][index]['filts'][indexs]['strftv'] = txt;
+ data['events'][index]['filts'][indexs]['ftv'] = txtarr;
+ });
+
+ $(document).off('blur','.comprehensive-group-box').on('blur','.comprehensive-group-box',function(){
+ var txt = $(this).val().split(',');
+ console.log(txt)
+ var arr = [];
+ for(let i in txt){
+ arr.push(txt[i])
+ }
+ data['eventView']['minute'] = arr
+ })
+
+ // sql语句显示
+ $(document).off('click','.sqlquery').on('click','.sqlquery',function(){
+ var obj = $(this);
+ var offset = obj.offset();
+ X.querycriteriapop(data,'conditionquery',offset.left - 410,offset.top+obj.height(),function(){
+
+ })
+ });
+
+ // 计算按钮
+ $(document).off('click','.analysis-calculation').on('click','.analysis-calculation',function(){
+ console.log(data)
+ retaineddata()
+ });
+ var querydata;
+ function retaineddata(){
+ var dataArr = {
+ eventView: data.eventView,
+ events: data.events
+ }
+ X.api("ck/first_event_model","post",dataArr,function(d){
+ if(d != "查无数据"){
+ retainedtable(d)
+ }else {
+ layer.msg('查无数据');
+ }
+ })
+ };
+
+ function retainedtable(d){
+ var tabledata=[];
+ for(let i in d['list']){
+ var arr = []
+ arr[0] = d.list[i]
+ arr[1] = d.p[i]
+ tabledata.push(arr)
+ }
+ X.laytpldata("#table-fenxi-th-dot",d.level,".table-fenxi-th");
+ X.laytpldata("#table-fenxi-td-dot",tabledata,".table-fenxi-td");
+ };
+
+ $(document).off('click','.analysis-savereport').on('click','.analysis-savereport',function(){
+ X.parametersopen(data,'savereport','auto')
+ });
+
+ $(document).off('click','.analysis-navigation-bar-right-img-baobiao').on('click','.analysis-navigation-bar-right-img-baobiao',function(){
+ X.parametersopen(data['eventView']['cksql'],'savedbaobiao','rt',function(d){
+ if(d){
+ data = d.query;
+
+ X.template("funnel","funnel-event",data['events']);
+ X.template("globalfilter","xinwei-whole",data['eventView']['filts'],function(){
+ renderdate();
+ });
+
+ retaineddata();
+ }
+
+ })
+ });
+
+ // 返回
+ $(document).off('click','.analysis-fanhui').on('click','.analysis-fanhui',function(){
+ X.gourl("dashboard");
+ // return;
+ });
+
+ }
+ };
+})();
\ No newline at end of file
diff --git a/web/srczip/logic/dashboard.js b/web/srczip/logic/dashboard.js
index a85142e..86f4607 100644
--- a/web/srczip/logic/dashboard.js
+++ b/web/srczip/logic/dashboard.js
@@ -956,7 +956,9 @@
if(d['query']){
if(d.cat == "retention"){
var timeParticleSize = d['query']['eventView']['unitNum'];
- }else {
+ }else if(d.cat == 'first_event'){
+ var timeParticleSize = d['query']['eventView']['event_diff'];
+ } else {
var timeParticleSize = d['query']['eventView']['timeParticleSize'];
}
@@ -1259,6 +1261,28 @@
eventdata.push(data);
})
}
+ }else if(d['model'] == 'first_event'){
+ X.first_event(val,function(data){
+ console.log(data)
+ console.log(d)
+ data['name'] = d['name'];
+ data['modeltype'] = 'table';
+ data['id'] = d['report_id'];
+ data['modelsize'] = d['graph_size'];
+ data['cat'] = d['model'];
+ data['desc'] = d['desc'];
+ data['reverseorder']=d['reverseorder'];
+ data['timeParticleSize'] = granularity;
+ eventdata.push(data);
+ if(d['ascending']){
+ var condatalength = eventdata[0]['condata'].length;
+ var condataascend=[];
+ for(var i = condatalength - 1; i >= 0; i--){
+ condataascend.push(eventdata[0]['condata'][i]);
+ }
+ eventdata[0]['condata'] = condataascend;
+ }
+ })
}
eventdata[0]['authority'] = X.DATA.authority;
return eventdata;
diff --git a/web/static/css/analysis.css b/web/static/css/analysis.css
index 2ea76b5..7b4a691 100644
--- a/web/static/css/analysis.css
+++ b/web/static/css/analysis.css
@@ -400,3 +400,6 @@
.nodedetails-event-tab-td { width: 33%;height: 36px; line-height: 36px; }
.nodedetails-event-tab-font-col { color: #42546d; }
.nodedetails-event-tab-td img { cursor: pointer;}
+
+.comprehensive-group-box { padding: 6px; border: 0; width: calc(100% - 12px); }
+