This commit is contained in:
罗松柏 2021-08-27 18:34:37 +08:00
parent 442dd288d7
commit 72f9ac5401
6 changed files with 500 additions and 311 deletions

View File

@ -33,16 +33,20 @@
<div class="small-data-box">{{d.num}}</div>
<div class="small-proportion">
{{# if(d.wowtyle == '-'){ }}
{{# if(d.wowtype != ''){ }}
{{# if(d.wowtype == '-'){ }}
<div class="proportion-data">较环比 <div class="sanjiao"></div><span>{{d.wow}}%</span></div>
{{# } else { }}
<div class="proportion-data">较环比 <div class="sanjiao fu"></div><span class="funum">{{d.wow}}%</span></div>
{{# } }}
{{# } }}
{{# if(d.chain_ratiotype != ''){ }}
{{# if(d.chain_ratiotype == "+"){ }}
<div class="proportion-data">较同比 <div class="sanjiao"></div><span>{{d.chain_ratio}}%</span></div>
{{# } else { }}
<div class="proportion-data">较同比 <div class="sanjiao fu"></div><span class="funum">{{d.chain_ratio}}%</span></div>
{{# } }}
{{# } }}
</div>
@ -67,6 +71,17 @@
<div class="tishi model-fuzhi" title="复制" data-id="{{d.id}}">
<img src="./static/img/fuzhi2.png" />
</div>
{{# if(d.cat == "event"){ }}
{{# if(d.modelswitch){ }}
<div class="tishi model-switch" title="切换横纵坐标" data-id="{{d.id}}">
<img src="./static/img/qhuan.png" />
</div>
{{# } else { }}
<div class="tishi model-switch" title="切换横纵坐标" data-id="{{d.id}}" data-modelswitch="{{d.modelswitch}}" >
<img src="./static/img/qhuan.png" />
</div>
{{# } }}
{{# } }}
<div class="tishi model-gengduo" title="更多">
<img src="./static/img/gengduo.png" />
</div>
@ -76,9 +91,14 @@
<div class="condition-box controlhover">
<div class="time-cond">
{{# if(d.cat != "user_property"){ }}
{{# if(d.date != ""){ }}
<span class="model-times" id="times{{d.id}}">{{d.date}}</span>
{{# } }}
<div class="xian"></div>
<span class="model-screenlist" data-cat="{{d.cat}}" data-id="{{d.id}}" >按天</span>
<span class="model-screenlist" data-modelsize="{{d.modelsize}}" data-modeltype="{{d.modeltype}}" data-name="{{d.name}}" data-cat="{{d.cat}}" data-id="{{d.id}}" >
{{d.timeParticleSize}}
</span>
{{# if(d.cat === "retention"){ }}
<div class="xian"></div>
{{# if(d.retentiontype === 0){ }}
@ -87,6 +107,7 @@
<span class="kanben-retained-type" data-id="{{d.id}}" id="retention{{d.id}}">流失</span>
{{# } }}
{{# } }}
{{# } }}
</div>
<div class="chart control" id="chart{{d.id}}" data-modelsize="{{d.modelsize}}" data-modeltype={{d.modeltype}} data-cat="{{d.cat}}" data-name="{{d.name}}" data-id="{{d.id}}">
<img src="./static/img/qvshitu.png" /> <span>报表</span>
@ -206,9 +227,12 @@
<div class="condition-box controlhover">
<div class="time-cond">
{{# if(d.cat != "user_property"){ }}
<span class="model-times" id="times{{d.id}}">{{d.date}}</span>
<div class="xian"></div>
<span class="model-screenlist">按天</span>
{{# if(d.date != ""){ }}
<span class="model-screenlist" data-modelsize="{{d.modelsize}}" data-modeltype="{{d.modeltype}}" data-name="{{d.name}}" data-cat="{{d.cat}}" data-id="{{d.id}}" >{{d.timeParticleSize}}</span>
{{# } }}
{{# if(d.cat === "retention"){ }}
<div class="xian"></div>
{{# if(d.retentiontype === 0){ }}
@ -217,26 +241,27 @@
<span class="kanben-retained-type" data-id="{{d.id}}" id="retention{{d.id}}">流失</span>
{{# } }}
{{# } }}
{{# } }}
</div>
<div class="chart control" id="chart{{d.id}}" data-modelsize="{{d.modelsize}}" data-modeltype={{d.modeltype}} data-cat="{{d.cat}}" data-name="{{d.name}}" data-id="{{d.id}}">
<img src="./static/img/qvshitu.png" /> <span>趋势图</span>
</div>
</div>
<p class="dqtime">{{d.date}}</p>
<!-- <p class="dqtime">{{d.date}}</p> -->
<div class="data-box">
<div style="display: flex; align-items: center;">
<div class="data-num">{{d.sameday}}<span></span></div>
<div class="proportion">
<!-- <div class="proportion-data">较环比 <div class="sanjiao"></div><span>5.4%</span></div>
<div class="proportion-data">较同比 <div class="sanjiao"></div><span>5.4%</span></div> -->
{{# if(d.wow != undefined){ }}
{{# if(d.wowtyle == '-'){ }}
{{# if(d.wowtype != ''){ }}
{{# if(d.wowtype == '-'){ }}
<div class="proportion-data">较环比 <div class="sanjiao"></div><span>{{d.wow}}%</span></div>
{{# } else { }}
<div class="proportion-data">较环比 <div class="sanjiao fu"></div><span class="funum">{{d.wow}}%</span></div>
{{# } }}
{{# } }}
{{# if(d.chain_ratio != undefined){ }}
{{# if(d.chain_ratiotype != ''){ }}
{{# if(d.chain_ratiotype == "+"){ }}
<div class="proportion-data">较同比 <div class="sanjiao"></div><span>{{d.chain_ratio}}%</span></div>
{{# } else { }}
@ -248,8 +273,12 @@
<div class="thesum">
<div class="thesum-box">
{{# if(d.sum != -1){ }}
<div class="thesum-data">总和 <span>{{d.sum}}</span></div>
{{# } }}
{{# if(d.mean != -1){ }}
<div class="thesum-data">均值 <span>{{d.mean}}</span></div>
{{# } }}
</div>
</div>
</div>

336
web/src/x.min.js vendored
View File

@ -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']){
if(data[0]['wow'] >= 0){
wowtype = '+'
}else{
wowtype = '-'
}
}
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'];
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 = {

View File

@ -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']){
if(data[0]['wow'] >= 0){
wowtype = '+'
}else{
wowtype = '-'
}
}
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

View File

@ -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'];
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 = {

View File

@ -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; }

BIN
web/static/img/qhuan.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 346 B