From 72f9ac5401a1fafe4ddb794450703f663ce99de0 Mon Sep 17 00:00:00 2001 From: luosongbai <15272473386@163.com> Date: Fri, 27 Aug 2021 18:34:37 +0800 Subject: [PATCH] 1 --- web/pages/modeltable.html | 89 ++++++--- web/src/x.min.js | 360 +++++++++++++++++++++------------- web/srczip/common.js | 85 +++++--- web/srczip/logic/dashboard.js | 275 +++++++++++++++----------- web/static/css/analysis.css | 2 +- web/static/img/qhuan.png | Bin 0 -> 346 bytes 6 files changed, 500 insertions(+), 311 deletions(-) create mode 100644 web/static/img/qhuan.png diff --git a/web/pages/modeltable.html b/web/pages/modeltable.html index 4720eef..6192e00 100644 --- a/web/pages/modeltable.html +++ b/web/pages/modeltable.html @@ -33,15 +33,19 @@
{{d.num}}
- {{# if(d.wowtyle == '-'){ }} -
较环比
{{d.wow}}%
- {{# } else { }} -
较环比
{{d.wow}}%
+ {{# if(d.wowtype != ''){ }} + {{# if(d.wowtype == '-'){ }} +
较环比
{{d.wow}}%
+ {{# } else { }} +
较环比
{{d.wow}}%
+ {{# } }} {{# } }} - {{# if(d.chain_ratiotype == "+"){ }} -
较同比
{{d.chain_ratio}}%
- {{# } else { }} -
较同比
{{d.chain_ratio}}%
+ {{# if(d.chain_ratiotype != ''){ }} + {{# if(d.chain_ratiotype == "+"){ }} +
较同比
{{d.chain_ratio}}%
+ {{# } else { }} +
较同比
{{d.chain_ratio}}%
+ {{# } }} {{# } }}
@@ -67,6 +71,17 @@
+ {{# if(d.cat == "event"){ }} + {{# if(d.modelswitch){ }} +
+ +
+ {{# } else { }} +
+ +
+ {{# } }} + {{# } }}
@@ -76,15 +91,21 @@
- {{d.date}} -
- 按天 - {{# if(d.cat === "retention"){ }} + {{# if(d.cat != "user_property"){ }} + {{# if(d.date != ""){ }} + {{d.date}} + {{# } }}
- {{# if(d.retentiontype === 0){ }} - 留存 - {{# } else { }} - 流失 + + {{d.timeParticleSize}} + + {{# if(d.cat === "retention"){ }} +
+ {{# if(d.retentiontype === 0){ }} + 留存 + {{# } else { }} + 流失 + {{# } }} {{# } }} {{# } }}
@@ -206,15 +227,19 @@
- {{d.date}} -
- 按天 - {{# if(d.cat === "retention"){ }} + {{# if(d.cat != "user_property"){ }} + {{d.date}}
- {{# if(d.retentiontype === 0){ }} - 留存 - {{# } else { }} - 流失 + {{# if(d.date != ""){ }} + {{d.timeParticleSize}} + {{# } }} + {{# if(d.cat === "retention"){ }} +
+ {{# if(d.retentiontype === 0){ }} + 留存 + {{# } else { }} + 流失 + {{# } }} {{# } }} {{# } }}
@@ -222,21 +247,21 @@ 趋势图
-

{{d.date}}

+
{{d.sameday}}
- {{# if(d.wow != undefined){ }} - {{# if(d.wowtyle == '-'){ }} + {{# if(d.wowtype != ''){ }} + {{# if(d.wowtype == '-'){ }}
较环比
{{d.wow}}%
{{# } else { }}
较环比
{{d.wow}}%
{{# } }} {{# } }} - {{# if(d.chain_ratio != undefined){ }} + {{# if(d.chain_ratiotype != ''){ }} {{# if(d.chain_ratiotype == "+"){ }}
较同比
{{d.chain_ratio}}%
{{# } else { }} @@ -248,8 +273,12 @@
-
总和 {{d.sum}}
-
均值 {{d.mean}}
+ {{# if(d.sum != -1){ }} +
总和 {{d.sum}}
+ {{# } }} + {{# if(d.mean != -1){ }} +
均值 {{d.mean}}
+ {{# } }}
diff --git a/web/src/x.min.js b/web/src/x.min.js index d6c901d..8a53c1d 100644 --- a/web/src/x.min.js +++ b/web/src/x.min.js @@ -96,9 +96,9 @@ var X = window.X || { 'retention':[ {'title':'当日','id':'1'}, {'title':'次日','id':'2'}, - {'title':'7日','id':'P1W'}, + {'title':'7日','id':'7'}, {'title':'14日','id':'14'}, - {'title':'30日','id':'P1M'} + {'title':'30日','id':'30'} ], 'distribution':[ {'title':'按天','id':'P1D'}, @@ -365,6 +365,41 @@ var X = window.X || { }) }; + //获取时间粒度中文名 + X.granularity=function(timeParticleSize,callback){ + if(timeParticleSize == 'P1D'){ + granularity = '按天' + }else if(timeParticleSize == 'PT1M'){ + granularity = '按分钟' + }else if(timeParticleSize == 'PT5M'){ + granularity = '每五分钟' + }else if(timeParticleSize == 'PT10M'){ + granularity = '每十分钟' + }else if(timeParticleSize == 'PT15M'){ + granularity = '每十五分钟' + }else if(timeParticleSize == 'PT1H'){ + granularity = '按小时' + }else if(timeParticleSize == 'P1W'){ + granularity = '按周' + }else if(timeParticleSize == 'P1M'){ + granularity = '按月' + }else if(timeParticleSize == 'total'){ + granularity = '合计' + }else if(timeParticleSize == '1'){ + granularity = '当日' + }else if(timeParticleSize == '2'){ + granularity = '次日' + }else if(timeParticleSize == '7'){ + granularity = '7日' + }else if(timeParticleSize == '14'){ + granularity = '14日' + }else if(timeParticleSize == '30'){ + granularity = '30日' + } + callback && callback(granularity); + }; + + // 分组项取交集 X.groupintersection=function(c , a , callback){ var dataArr=[]; @@ -583,11 +618,11 @@ var X = window.X || { } } var seriesData=[]; - var sum = 0; - var mean = 0; + var sum = -1; + var mean = -1; var sameday = 0; var date; - var wowtype,chain_ratiotype;//判断较环比和较同比的正负 + var wowtype='',chain_ratiotype='';//判断较环比和较同比的正负 var length = data[0]['date_range'].length - 1; date = data[0]['date_range'][length]; @@ -600,31 +635,37 @@ var X = window.X || { } seriesData.push(arr); sameday = data[i]['values'][z][data[i]['values'][z].length - 1]; - for(let j in data[i]['values'][z]){ - mean = parseInt(mean) + parseInt(data[i]['values'][z][j]); - } + } - sum = sum + data[i]['sum'][0]; - mean = mean / data[i]['values'].length; } + + //只在单个指标分析中显示总价和均值 + if(data.length == 1){ + sum = data[0]['sum'][0]; + mean = data[0]['avg'][0]; + } + if(legenddata.length > 0){ for(let i in seriesData){ seriesData[i]['name'] = legenddata[i]; } } - - if(data[0]['wow'] >= 0){ - wowtype = '+' - }else{ - wowtype = '-' + if(data[0]['wow']){ + if(data[0]['wow'] >= 0){ + wowtype = '+' + }else{ + wowtype = '-' + } } - - if(data[0]['chain_ratio'] >= 0){ - chain_ratiotype = '+' - }else{ - chain_ratiotype = '-' + + if(data[0]['chain_ratio']){ + if(data[0]['chain_ratio'] >= 0){ + chain_ratiotype = '+' + }else{ + chain_ratiotype = '-' + } } - console.log(111,data[0]['date_range']); + var dataArr = { xAxisData:data[0]['date_range'], legenddata:legenddata, @@ -634,8 +675,6 @@ var X = window.X || { mean:mean, sameday: sameday, wowtype:wowtype, - // wow: 0, - // chain_ratio: 0, wow: Math.abs(data[0]['wow']),//环比 chain_ratio: Math.abs(data[0]['chain_ratio']),//同比 chain_ratiotype:chain_ratiotype @@ -4042,8 +4081,6 @@ var X = window.X || { X.parametersopen(X['DATA']['retentionlist'],'dropdownlist',[offset.top+obj.height(),offset.left],function(d){ var retentiontype = d.id; var modelid = "retention"+id; - console.log(d); - console.log(modelid); X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(val){ for(let i in val){ if(val[i]['report_id'] == id){ @@ -4054,41 +4091,143 @@ var X = window.X || { }) }); + //报表时间粒度修改 $(document).off('click','.model-screenlist').on('click','.model-screenlist',function(){ var obj = $(this); var offset = obj.offset(); - // var id = obj.attr('data-id'); - // X.parametersopen(X['DATA']['screenlist'][eventdata.cat],'dropdownlist',[offset.top+obj.height(),offset.left],function(d){ + var id = obj.attr('data-id'); + var cat = obj.attr('data-cat'); + var modelsize = obj.attr('data-modelsize'); + var modeltype = obj.attr('data-modeltype'); + var name = obj.attr('data-name'); - // var modelid = eventdata['cat']+eventdata.id; - // var reportid = []; - // reportid.push(eventdata.id); - // X.api('report/read_report','post',{project_id:X.DATA['projectid'],report_id:reportid},function(val){ - // var query = { - // eventView:val[0]['query']['eventView'], - // events:val[0]['query']['events'], - // }; - // query['eventView']['timeParticleSize'] = d.id; - // X.api("ck/"+ eventdata.cat +"_model","post",query,function(val){ - // var bbsetdata = { - // graph_size:eventdata['modelsize'], - // graph_type:eventdata['modeltype'], - // model:eventdata['cat'], - // name:eventdata['name'], - // report_id:eventdata['id'], - // } + X.parametersopen(X['DATA']['screenlist'][cat],'dropdownlist',[offset.top+obj.height(),offset.left],function(d){ - // var modeldata = X.pageLogic['dashboard'].modeldata(bbsetdata,val); - // // console.log(modeldata); - // //渲染模板和数据 - // X.template("modeltable",'model'+modeldata[0]['id'],modeldata[0],function(){ - // X.pageLogic['dashboard'].morefeatures(modeldata); - // }); - // }) - // }) + var reportid = []; + reportid.push(id); + X.api('report/read_report','post',{project_id:X.DATA['projectid'],report_id:reportid},function(val){ + var query = { + eventView:val[0]['query']['eventView'], + events:val[0]['query']['events'], + }; + query['eventView']['timeParticleSize'] = d.id; + X.api("ck/"+ cat +"_model","post",query,function(vals){ + var bbsetdata = { + graph_size:modelsize, + graph_type:modeltype, + model:cat, + name:name, + report_id:id, + query:val[0]['query'] + } + // debugger; + var modeldata = X.pageLogic['dashboard'].modeldata(bbsetdata,vals); + //渲染模板和数据 + X.template("modeltable",'model'+modeldata[0]['id'],modeldata[0],function(){ + X.pageLogic['dashboard'].morefeatures(modeldata[0]); + }); + }) + }) - // }) + }) + }); + + $(document).off('click','.chart').on('click','.chart',function(){ + var dropdownlist = [ + {title:'表格',id:'table'}, + {title:'图形',id:'echarts'} + ]; + var obj = $(this); + var offset = obj.offset(); + var id = obj.attr('data-id'); + var modelid = 'model'+id; + var modelsize = obj.attr('data-modelsize'); + var modeltype = obj.attr('data-modeltype'); + var cat = obj.attr('data-cat'); + var name = obj.attr('data-name'); + X.parametersopen(dropdownlist,'dropdownlist',[offset.top+obj.height()+5,offset.left-150],function(d){ + + var data = { + report_id:id, + graph_size:modelsize, + graph_type:d.id, + model:cat, + name:name + } + X.api('dashboard/edit_show_report','post',{dashboard_id:X.DATA.dashboard_id,config:data},function(d){ + X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(val){ + for(let i in val){ + if(val[i]['report_id'] == id){ + X.pageLogic['dashboard'].fillmodeldata(val[i],modelid); + } + } + }) + }) + + }) + }); + + // 横纵切换 + $(document).off('click','.model-switch').on('click','.model-switch',function(){ + var id = $(this).attr('data-id'); + var modelswitch = $(this).attr('data-modelswitch'); + var d = X['DATA']['kanbanlist'][id]; + var modelid = 'model'+id; + var eventdata = []; + var startTime = d['query']['eventView']['startTime']; + var endTime = d['query']['eventView']['endTime']; + + if(startTime && endTime){ + var startTimearr = startTime.split(" "); + var endTimearr = endTime.split(" "); + }else { + var startTimearr = []; + var endTimearr = []; + } + + var timeParticleSize = d['query']['eventView']['timeParticleSize']; + var granularity = '' + if(timeParticleSize){ + X.granularity(timeParticleSize,function(d){ + granularity = d; + }); + } + X.api("ck/event_model","post",{report_id:id},function(val){ + X.eventtable(val,function(data){//表格数据处理 + data['name'] = d['name']; + data['modeltype'] = d['graph_type']; + data['id'] = d['report_id']; + data['modelsize'] = d['graph_size']; + data['cat'] = d['model']; + data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; + data['timeParticleSize'] = granularity; + eventdata.push(data); + }) + if(modelswitch){ + eventdata[0]['modelswitch'] = 1; + var originaldata;//原始数据 + originaldata= $.extend(true,[],eventdata[0]['condata']); + originaldata.unshift(eventdata[0]['titledata']); + var dataarr = []; + for(let i in originaldata[0]){ + var arr = []; + dataarr.push(arr); + } + for(let i in originaldata){ + for(let j in originaldata[i]){ + dataarr[j].push(originaldata[i][j]); + } + } + var titledata = dataarr[0]; + var condata = dataarr.slice(1, dataarr.length - 1); + eventdata[0]['titledata'] = titledata; + eventdata[0]['condata'] = condata; + } + X.template("modeltable",modelid,eventdata[0],function(){ + X.pageLogic['dashboard'].morefeatures(eventdata[0]); + }); + }) }); }, @@ -4130,12 +4269,24 @@ var X = window.X || { }, modeldata:function(d,val,type){ - console.log('aaa',val); var eventdata = []; var startTime = d['query']['eventView']['startTime']; var endTime = d['query']['eventView']['endTime']; - var startTimearr = startTime.split(" "); - var endTimearr = endTime.split(" "); + if(startTime && endTime){ + var startTimearr = startTime.split(" "); + var endTimearr = endTime.split(" "); + }else { + var startTimearr = []; + var endTimearr = []; + } + + var timeParticleSize = d['query']['eventView']['timeParticleSize']; + var granularity = '' + if(timeParticleSize){ + X.granularity(timeParticleSize,function(d){ + granularity = d; + }); + } if(d['model'] == "event"){ // 事件分析 @@ -4160,6 +4311,7 @@ var X = window.X || { data['modelsize'] = d['graph_size']; data['cat'] = d['model']; data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; + data['timeParticleSize'] = granularity; eventdata.push(data); }) }else if(d['graph_type'] == 'echarts'){ @@ -4171,6 +4323,7 @@ var X = window.X || { data['modelsize'] = d['graph_size']; data['cat'] = d['model']; data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; + data['timeParticleSize'] = granularity; eventdata.push(data); }) } @@ -4194,6 +4347,7 @@ var X = window.X || { data['modelsize'] = d['graph_size']; data['cat'] = d['model']; data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; + data['timeParticleSize'] = granularity; eventdata.push(data); }) @@ -4205,6 +4359,7 @@ var X = window.X || { data['modelsize'] = d['graph_size']; data['cat'] = d['model']; data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; + data['timeParticleSize'] = granularity; eventdata.push(data); }) } @@ -4219,6 +4374,7 @@ var X = window.X || { data['modelsize'] = d['graph_size']; data['cat'] = d['model']; data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; + data['timeParticleSize'] = granularity; eventdata.push(data); }) }else { @@ -4229,6 +4385,7 @@ var X = window.X || { data['modelsize'] = d['graph_size']; data['cat'] = d['model']; data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; + data['timeParticleSize'] = granularity; eventdata.push(data); }) } @@ -4241,7 +4398,7 @@ var X = window.X || { data['id'] = d['report_id']; data['modelsize'] = d['graph_size']; data['cat'] = d['model']; - data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; + data['date'] = ""; eventdata.push(data); }) }else { @@ -4251,7 +4408,7 @@ var X = window.X || { data['id'] = d['report_id']; data['modelsize'] = d['graph_size']; data['cat'] = d['model']; - data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; + data['date'] = ""; eventdata.push(data); }) } @@ -4262,57 +4419,6 @@ var X = window.X || { //画统计图和添加移入移出事件 morefeatures:function(eventdata){ - var dropdownlist = [ - {title:'表格',id:'table'}, - {title:'图形',id:'echarts'} - ]; - X.laydropdown("#chart"+eventdata.id,dropdownlist,function(d){ - var id = $("#chart"+eventdata.id).attr('data-id'); - var modelid = 'model'+id; - var modelsize = $("#chart"+eventdata.id).attr('data-modelsize'); - var modeltype = $("#chart"+eventdata.id).attr('data-modeltype'); - var cat = $("#chart"+eventdata.id).attr('data-cat'); - var name = $("#chart"+eventdata.id).attr('data-name'); - var data = { - report_id:id, - graph_size:modelsize, - graph_type:d.id, - model:cat, - name:name - } - X.api('dashboard/edit_show_report','post',{dashboard_id:X.DATA.dashboard_id,config:data},function(d){ - X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(val){ - for(let i in val){ - if(val[i]['report_id'] == id){ - X.pageLogic['dashboard'].fillmodeldata(val[i],modelid); - } - } - }) - }) - - }); - - //已废弃 留存分析模板特定留存流失按钮 - // var retentionlist = [ - // {'title':'留存','id':0}, - // {'title':'流失','id':1}, - // ] - // if(eventdata.cat == 'retention'){ - // X.laydropdown("#retention"+eventdata.id,retentionlist,function(d){ - - // var retentiontype = d.id; - // var modelid = "retention"+eventdata.id; - // X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(val){ - // for(let i in val){ - // if(val[i]['report_id'] == eventdata.id){ - // X.pageLogic['dashboard'].fillmodeldata(val[i],modelid,retentiontype); - // } - // } - // }) - - // }) - // }; - //更多按钮配置下拉框 X.laydropdown(".model-gengduo",X['DATA']['gengduolist'],function(d){ if(d.id == 'shezhi'){ @@ -4375,6 +4481,7 @@ var X = window.X || { model:eventdata['cat'], name:eventdata['name'], report_id:eventdata['id'], + query:query } var modeldata = X.pageLogic['dashboard'].modeldata(bbsetdata,val); @@ -4387,35 +4494,6 @@ var X = window.X || { }) }); - X.laydropdown(".model-screenlist",X['DATA']['screenlist'][eventdata.cat],function(d){ - var modelid = eventdata['cat']+eventdata.id; - var reportid = []; - reportid.push(eventdata.id); - X.api('report/read_report','post',{project_id:X.DATA['projectid'],report_id:reportid},function(val){ - var query = { - eventView:val[0]['query']['eventView'], - events:val[0]['query']['events'], - }; - query['eventView']['timeParticleSize'] = d.id; - X.api("ck/"+ eventdata.cat +"_model","post",query,function(val){ - var bbsetdata = { - graph_size:eventdata['modelsize'], - graph_type:eventdata['modeltype'], - model:eventdata['cat'], - name:eventdata['name'], - report_id:eventdata['id'], - } - - var modeldata = X.pageLogic['dashboard'].modeldata(bbsetdata,val); - // console.log(modeldata); - //渲染模板和数据 - X.template("modeltable",'model'+modeldata[0]['id'],modeldata[0],function(){ - X.pageLogic['dashboard'].morefeatures(modeldata); - }); - }) - }) - - }); if(eventdata['modeltype'] == 'echarts' && eventdata['modelsize'] != 'small' ){ var myChart = echarts.init(document.getElementById(eventdata['id'])); @@ -4473,13 +4551,14 @@ var X = window.X || { }, legend: { type:'scroll', + bottom:0, data: eventdata['legenddata'] }, grid: { left: '2%', right: '2%', - bottom: '2%', - top: '10%', + bottom: '10%', + top: '5%', containLabel: true }, xAxis: [ @@ -4508,6 +4587,7 @@ var X = window.X || { gettabledata:function(){ $("#model-box").html("");//清空表格数据 X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(d){ + X['DATA']['kanbanlist'] = d; var modellist=[]; for(let i in d){ var arr = { diff --git a/web/srczip/common.js b/web/srczip/common.js index 776edac..bb14249 100644 --- a/web/srczip/common.js +++ b/web/srczip/common.js @@ -95,9 +95,9 @@ var X = window.X || { 'retention':[ {'title':'当日','id':'1'}, {'title':'次日','id':'2'}, - {'title':'7日','id':'P1W'}, + {'title':'7日','id':'7'}, {'title':'14日','id':'14'}, - {'title':'30日','id':'P1M'} + {'title':'30日','id':'30'} ], 'distribution':[ {'title':'按天','id':'P1D'}, @@ -364,6 +364,41 @@ var X = window.X || { }) }; + //获取时间粒度中文名 + X.granularity=function(timeParticleSize,callback){ + if(timeParticleSize == 'P1D'){ + granularity = '按天' + }else if(timeParticleSize == 'PT1M'){ + granularity = '按分钟' + }else if(timeParticleSize == 'PT5M'){ + granularity = '每五分钟' + }else if(timeParticleSize == 'PT10M'){ + granularity = '每十分钟' + }else if(timeParticleSize == 'PT15M'){ + granularity = '每十五分钟' + }else if(timeParticleSize == 'PT1H'){ + granularity = '按小时' + }else if(timeParticleSize == 'P1W'){ + granularity = '按周' + }else if(timeParticleSize == 'P1M'){ + granularity = '按月' + }else if(timeParticleSize == 'total'){ + granularity = '合计' + }else if(timeParticleSize == '1'){ + granularity = '当日' + }else if(timeParticleSize == '2'){ + granularity = '次日' + }else if(timeParticleSize == '7'){ + granularity = '7日' + }else if(timeParticleSize == '14'){ + granularity = '14日' + }else if(timeParticleSize == '30'){ + granularity = '30日' + } + callback && callback(granularity); + }; + + // 分组项取交集 X.groupintersection=function(c , a , callback){ var dataArr=[]; @@ -582,11 +617,11 @@ var X = window.X || { } } var seriesData=[]; - var sum = 0; - var mean = 0; + var sum = -1; + var mean = -1; var sameday = 0; var date; - var wowtype,chain_ratiotype;//判断较环比和较同比的正负 + var wowtype='',chain_ratiotype='';//判断较环比和较同比的正负 var length = data[0]['date_range'].length - 1; date = data[0]['date_range'][length]; @@ -599,31 +634,37 @@ var X = window.X || { } seriesData.push(arr); sameday = data[i]['values'][z][data[i]['values'][z].length - 1]; - for(let j in data[i]['values'][z]){ - mean = parseInt(mean) + parseInt(data[i]['values'][z][j]); - } + } - sum = sum + data[i]['sum'][0]; - mean = mean / data[i]['values'].length; } + + //只在单个指标分析中显示总价和均值 + if(data.length == 1){ + sum = data[0]['sum'][0]; + mean = data[0]['avg'][0]; + } + if(legenddata.length > 0){ for(let i in seriesData){ seriesData[i]['name'] = legenddata[i]; } } - - if(data[0]['wow'] >= 0){ - wowtype = '+' - }else{ - wowtype = '-' + if(data[0]['wow']){ + if(data[0]['wow'] >= 0){ + wowtype = '+' + }else{ + wowtype = '-' + } } - - if(data[0]['chain_ratio'] >= 0){ - chain_ratiotype = '+' - }else{ - chain_ratiotype = '-' + + if(data[0]['chain_ratio']){ + if(data[0]['chain_ratio'] >= 0){ + chain_ratiotype = '+' + }else{ + chain_ratiotype = '-' + } } - console.log(111,data[0]['date_range']); + var dataArr = { xAxisData:data[0]['date_range'], legenddata:legenddata, @@ -633,8 +674,6 @@ var X = window.X || { mean:mean, sameday: sameday, wowtype:wowtype, - // wow: 0, - // chain_ratio: 0, wow: Math.abs(data[0]['wow']),//环比 chain_ratio: Math.abs(data[0]['chain_ratio']),//同比 chain_ratiotype:chain_ratiotype diff --git a/web/srczip/logic/dashboard.js b/web/srczip/logic/dashboard.js index d75b51c..52b4437 100644 --- a/web/srczip/logic/dashboard.js +++ b/web/srczip/logic/dashboard.js @@ -334,8 +334,6 @@ X.parametersopen(X['DATA']['retentionlist'],'dropdownlist',[offset.top+obj.height(),offset.left],function(d){ var retentiontype = d.id; var modelid = "retention"+id; - console.log(d); - console.log(modelid); X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(val){ for(let i in val){ if(val[i]['report_id'] == id){ @@ -346,41 +344,143 @@ }) }); + //报表时间粒度修改 $(document).off('click','.model-screenlist').on('click','.model-screenlist',function(){ var obj = $(this); var offset = obj.offset(); - // var id = obj.attr('data-id'); - // X.parametersopen(X['DATA']['screenlist'][eventdata.cat],'dropdownlist',[offset.top+obj.height(),offset.left],function(d){ + var id = obj.attr('data-id'); + var cat = obj.attr('data-cat'); + var modelsize = obj.attr('data-modelsize'); + var modeltype = obj.attr('data-modeltype'); + var name = obj.attr('data-name'); - // var modelid = eventdata['cat']+eventdata.id; - // var reportid = []; - // reportid.push(eventdata.id); - // X.api('report/read_report','post',{project_id:X.DATA['projectid'],report_id:reportid},function(val){ - // var query = { - // eventView:val[0]['query']['eventView'], - // events:val[0]['query']['events'], - // }; - // query['eventView']['timeParticleSize'] = d.id; - // X.api("ck/"+ eventdata.cat +"_model","post",query,function(val){ - // var bbsetdata = { - // graph_size:eventdata['modelsize'], - // graph_type:eventdata['modeltype'], - // model:eventdata['cat'], - // name:eventdata['name'], - // report_id:eventdata['id'], - // } + X.parametersopen(X['DATA']['screenlist'][cat],'dropdownlist',[offset.top+obj.height(),offset.left],function(d){ - // var modeldata = X.pageLogic['dashboard'].modeldata(bbsetdata,val); - // // console.log(modeldata); - // //渲染模板和数据 - // X.template("modeltable",'model'+modeldata[0]['id'],modeldata[0],function(){ - // X.pageLogic['dashboard'].morefeatures(modeldata); - // }); - // }) - // }) + var reportid = []; + reportid.push(id); + X.api('report/read_report','post',{project_id:X.DATA['projectid'],report_id:reportid},function(val){ + var query = { + eventView:val[0]['query']['eventView'], + events:val[0]['query']['events'], + }; + query['eventView']['timeParticleSize'] = d.id; + X.api("ck/"+ cat +"_model","post",query,function(vals){ + var bbsetdata = { + graph_size:modelsize, + graph_type:modeltype, + model:cat, + name:name, + report_id:id, + query:val[0]['query'] + } + // debugger; + var modeldata = X.pageLogic['dashboard'].modeldata(bbsetdata,vals); + //渲染模板和数据 + X.template("modeltable",'model'+modeldata[0]['id'],modeldata[0],function(){ + X.pageLogic['dashboard'].morefeatures(modeldata[0]); + }); + }) + }) - // }) + }) + }); + + $(document).off('click','.chart').on('click','.chart',function(){ + var dropdownlist = [ + {title:'表格',id:'table'}, + {title:'图形',id:'echarts'} + ]; + var obj = $(this); + var offset = obj.offset(); + var id = obj.attr('data-id'); + var modelid = 'model'+id; + var modelsize = obj.attr('data-modelsize'); + var modeltype = obj.attr('data-modeltype'); + var cat = obj.attr('data-cat'); + var name = obj.attr('data-name'); + X.parametersopen(dropdownlist,'dropdownlist',[offset.top+obj.height()+5,offset.left-150],function(d){ + + var data = { + report_id:id, + graph_size:modelsize, + graph_type:d.id, + model:cat, + name:name + } + X.api('dashboard/edit_show_report','post',{dashboard_id:X.DATA.dashboard_id,config:data},function(d){ + X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(val){ + for(let i in val){ + if(val[i]['report_id'] == id){ + X.pageLogic['dashboard'].fillmodeldata(val[i],modelid); + } + } + }) + }) + + }) + }); + + // 横纵切换 + $(document).off('click','.model-switch').on('click','.model-switch',function(){ + var id = $(this).attr('data-id'); + var modelswitch = $(this).attr('data-modelswitch'); + var d = X['DATA']['kanbanlist'][id]; + var modelid = 'model'+id; + var eventdata = []; + var startTime = d['query']['eventView']['startTime']; + var endTime = d['query']['eventView']['endTime']; + + if(startTime && endTime){ + var startTimearr = startTime.split(" "); + var endTimearr = endTime.split(" "); + }else { + var startTimearr = []; + var endTimearr = []; + } + + var timeParticleSize = d['query']['eventView']['timeParticleSize']; + var granularity = '' + if(timeParticleSize){ + X.granularity(timeParticleSize,function(d){ + granularity = d; + }); + } + X.api("ck/event_model","post",{report_id:id},function(val){ + X.eventtable(val,function(data){//表格数据处理 + data['name'] = d['name']; + data['modeltype'] = d['graph_type']; + data['id'] = d['report_id']; + data['modelsize'] = d['graph_size']; + data['cat'] = d['model']; + data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; + data['timeParticleSize'] = granularity; + eventdata.push(data); + }) + if(modelswitch){ + eventdata[0]['modelswitch'] = 1; + var originaldata;//原始数据 + originaldata= $.extend(true,[],eventdata[0]['condata']); + originaldata.unshift(eventdata[0]['titledata']); + var dataarr = []; + for(let i in originaldata[0]){ + var arr = []; + dataarr.push(arr); + } + for(let i in originaldata){ + for(let j in originaldata[i]){ + dataarr[j].push(originaldata[i][j]); + } + } + var titledata = dataarr[0]; + var condata = dataarr.slice(1, dataarr.length - 1); + eventdata[0]['titledata'] = titledata; + eventdata[0]['condata'] = condata; + } + X.template("modeltable",modelid,eventdata[0],function(){ + X.pageLogic['dashboard'].morefeatures(eventdata[0]); + }); + }) }); }, @@ -422,12 +522,24 @@ }, modeldata:function(d,val,type){ - console.log('aaa',val); var eventdata = []; var startTime = d['query']['eventView']['startTime']; var endTime = d['query']['eventView']['endTime']; - var startTimearr = startTime.split(" "); - var endTimearr = endTime.split(" "); + if(startTime && endTime){ + var startTimearr = startTime.split(" "); + var endTimearr = endTime.split(" "); + }else { + var startTimearr = []; + var endTimearr = []; + } + + var timeParticleSize = d['query']['eventView']['timeParticleSize']; + var granularity = '' + if(timeParticleSize){ + X.granularity(timeParticleSize,function(d){ + granularity = d; + }); + } if(d['model'] == "event"){ // 事件分析 @@ -452,6 +564,7 @@ data['modelsize'] = d['graph_size']; data['cat'] = d['model']; data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; + data['timeParticleSize'] = granularity; eventdata.push(data); }) }else if(d['graph_type'] == 'echarts'){ @@ -463,6 +576,7 @@ data['modelsize'] = d['graph_size']; data['cat'] = d['model']; data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; + data['timeParticleSize'] = granularity; eventdata.push(data); }) } @@ -486,6 +600,7 @@ data['modelsize'] = d['graph_size']; data['cat'] = d['model']; data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; + data['timeParticleSize'] = granularity; eventdata.push(data); }) @@ -497,6 +612,7 @@ data['modelsize'] = d['graph_size']; data['cat'] = d['model']; data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; + data['timeParticleSize'] = granularity; eventdata.push(data); }) } @@ -511,6 +627,7 @@ data['modelsize'] = d['graph_size']; data['cat'] = d['model']; data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; + data['timeParticleSize'] = granularity; eventdata.push(data); }) }else { @@ -521,6 +638,7 @@ data['modelsize'] = d['graph_size']; data['cat'] = d['model']; data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; + data['timeParticleSize'] = granularity; eventdata.push(data); }) } @@ -533,7 +651,7 @@ data['id'] = d['report_id']; data['modelsize'] = d['graph_size']; data['cat'] = d['model']; - data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; + data['date'] = ""; eventdata.push(data); }) }else { @@ -543,7 +661,7 @@ data['id'] = d['report_id']; data['modelsize'] = d['graph_size']; data['cat'] = d['model']; - data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; + data['date'] = ""; eventdata.push(data); }) } @@ -554,57 +672,6 @@ //画统计图和添加移入移出事件 morefeatures:function(eventdata){ - var dropdownlist = [ - {title:'表格',id:'table'}, - {title:'图形',id:'echarts'} - ]; - X.laydropdown("#chart"+eventdata.id,dropdownlist,function(d){ - var id = $("#chart"+eventdata.id).attr('data-id'); - var modelid = 'model'+id; - var modelsize = $("#chart"+eventdata.id).attr('data-modelsize'); - var modeltype = $("#chart"+eventdata.id).attr('data-modeltype'); - var cat = $("#chart"+eventdata.id).attr('data-cat'); - var name = $("#chart"+eventdata.id).attr('data-name'); - var data = { - report_id:id, - graph_size:modelsize, - graph_type:d.id, - model:cat, - name:name - } - X.api('dashboard/edit_show_report','post',{dashboard_id:X.DATA.dashboard_id,config:data},function(d){ - X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(val){ - for(let i in val){ - if(val[i]['report_id'] == id){ - X.pageLogic['dashboard'].fillmodeldata(val[i],modelid); - } - } - }) - }) - - }); - - //已废弃 留存分析模板特定留存流失按钮 - // var retentionlist = [ - // {'title':'留存','id':0}, - // {'title':'流失','id':1}, - // ] - // if(eventdata.cat == 'retention'){ - // X.laydropdown("#retention"+eventdata.id,retentionlist,function(d){ - - // var retentiontype = d.id; - // var modelid = "retention"+eventdata.id; - // X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(val){ - // for(let i in val){ - // if(val[i]['report_id'] == eventdata.id){ - // X.pageLogic['dashboard'].fillmodeldata(val[i],modelid,retentiontype); - // } - // } - // }) - - // }) - // }; - //更多按钮配置下拉框 X.laydropdown(".model-gengduo",X['DATA']['gengduolist'],function(d){ if(d.id == 'shezhi'){ @@ -667,6 +734,7 @@ model:eventdata['cat'], name:eventdata['name'], report_id:eventdata['id'], + query:query } var modeldata = X.pageLogic['dashboard'].modeldata(bbsetdata,val); @@ -679,35 +747,6 @@ }) }); - X.laydropdown(".model-screenlist",X['DATA']['screenlist'][eventdata.cat],function(d){ - var modelid = eventdata['cat']+eventdata.id; - var reportid = []; - reportid.push(eventdata.id); - X.api('report/read_report','post',{project_id:X.DATA['projectid'],report_id:reportid},function(val){ - var query = { - eventView:val[0]['query']['eventView'], - events:val[0]['query']['events'], - }; - query['eventView']['timeParticleSize'] = d.id; - X.api("ck/"+ eventdata.cat +"_model","post",query,function(val){ - var bbsetdata = { - graph_size:eventdata['modelsize'], - graph_type:eventdata['modeltype'], - model:eventdata['cat'], - name:eventdata['name'], - report_id:eventdata['id'], - } - - var modeldata = X.pageLogic['dashboard'].modeldata(bbsetdata,val); - // console.log(modeldata); - //渲染模板和数据 - X.template("modeltable",'model'+modeldata[0]['id'],modeldata[0],function(){ - X.pageLogic['dashboard'].morefeatures(modeldata); - }); - }) - }) - - }); if(eventdata['modeltype'] == 'echarts' && eventdata['modelsize'] != 'small' ){ var myChart = echarts.init(document.getElementById(eventdata['id'])); @@ -765,13 +804,14 @@ }, legend: { type:'scroll', + bottom:0, data: eventdata['legenddata'] }, grid: { left: '2%', right: '2%', - bottom: '2%', - top: '10%', + bottom: '10%', + top: '5%', containLabel: true }, xAxis: [ @@ -800,6 +840,7 @@ gettabledata:function(){ $("#model-box").html("");//清空表格数据 X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(d){ + X['DATA']['kanbanlist'] = d; var modellist=[]; for(let i in d){ var arr = { diff --git a/web/static/css/analysis.css b/web/static/css/analysis.css index 6d3c128..dac057e 100644 --- a/web/static/css/analysis.css +++ b/web/static/css/analysis.css @@ -273,7 +273,7 @@ .conditionquery-copy { cursor: pointer; color: #fff; background-color: #3d90ff; border-radius: 2px; padding: 0 16px; font-weight: 400; font-size: 14px; height: 32px; line-height: 32px; } .conditionquery-but-box span{ background-color: #eaecf8; color: #3d90ff; padding: 0 8px; cursor: pointer; display: inline-block; } -.table-div-box { width: 100%; max-height: 660px; overflow: auto; } +.table-div-box { width: 100%; max-height: 660px; overflow: auto; margin-top: 30px; } .table-fenxi-box { width: 100%; } .table-fenxi-box th { background-color: #f0f2f5; min-width: 100px; max-width: 200px; padding: 10px 16px; color: #202d3f; font-size: 13px; font-weight: 400; border-right: 1px solid #e6e6e6; border-bottom: 1px solid #f0f2f5; } .table-fenxi-box tr { text-align: center; border-left: 1px solid #e6e6e6; } diff --git a/web/static/img/qhuan.png b/web/static/img/qhuan.png new file mode 100644 index 0000000000000000000000000000000000000000..2a8f4466c4b6e1a0573cdfbbc7df143ad398d5fb GIT binary patch literal 346 zcmV-g0j2(lP)Px$6iGxuR5(wilQB-iKomr0RvaV+N&zJoaLWZ~XaWMfhz8qGC!wMtqCtSIH7Tfw z5Jv!dIxb)&I<7$WM~;vcIacyTw*K?M_ zAya@oeQ1gCT?ktXH=+b}2yNnaMeqn~+8DQDOoQ3Jf sfoy_uk`4|=%V3Qe*f@Xk@FNXi0)dxn8Una8uK)l507*qoM6N<$f?I@&Pyhe` literal 0 HcmV?d00001