1
This commit is contained in:
parent
442dd288d7
commit
72f9ac5401
@ -33,16 +33,20 @@
|
|||||||
<div class="small-data-box">{{d.num}}</div>
|
<div class="small-data-box">{{d.num}}</div>
|
||||||
|
|
||||||
<div class="small-proportion">
|
<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>
|
<div class="proportion-data">较环比 <div class="sanjiao"></div><span>{{d.wow}}%</span></div>
|
||||||
{{# } else { }}
|
{{# } else { }}
|
||||||
<div class="proportion-data">较环比 <div class="sanjiao fu"></div><span class="funum">{{d.wow}}%</span></div>
|
<div class="proportion-data">较环比 <div class="sanjiao fu"></div><span class="funum">{{d.wow}}%</span></div>
|
||||||
{{# } }}
|
{{# } }}
|
||||||
|
{{# } }}
|
||||||
|
{{# if(d.chain_ratiotype != ''){ }}
|
||||||
{{# if(d.chain_ratiotype == "+"){ }}
|
{{# if(d.chain_ratiotype == "+"){ }}
|
||||||
<div class="proportion-data">较同比 <div class="sanjiao"></div><span>{{d.chain_ratio}}%</span></div>
|
<div class="proportion-data">较同比 <div class="sanjiao"></div><span>{{d.chain_ratio}}%</span></div>
|
||||||
{{# } else { }}
|
{{# } else { }}
|
||||||
<div class="proportion-data">较同比 <div class="sanjiao fu"></div><span class="funum">{{d.chain_ratio}}%</span></div>
|
<div class="proportion-data">较同比 <div class="sanjiao fu"></div><span class="funum">{{d.chain_ratio}}%</span></div>
|
||||||
{{# } }}
|
{{# } }}
|
||||||
|
{{# } }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
@ -67,6 +71,17 @@
|
|||||||
<div class="tishi model-fuzhi" title="复制" data-id="{{d.id}}">
|
<div class="tishi model-fuzhi" title="复制" data-id="{{d.id}}">
|
||||||
<img src="./static/img/fuzhi2.png" />
|
<img src="./static/img/fuzhi2.png" />
|
||||||
</div>
|
</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="更多">
|
<div class="tishi model-gengduo" title="更多">
|
||||||
<img src="./static/img/gengduo.png" />
|
<img src="./static/img/gengduo.png" />
|
||||||
</div>
|
</div>
|
||||||
@ -76,9 +91,14 @@
|
|||||||
|
|
||||||
<div class="condition-box controlhover">
|
<div class="condition-box controlhover">
|
||||||
<div class="time-cond">
|
<div class="time-cond">
|
||||||
|
{{# if(d.cat != "user_property"){ }}
|
||||||
|
{{# if(d.date != ""){ }}
|
||||||
<span class="model-times" id="times{{d.id}}">{{d.date}}</span>
|
<span class="model-times" id="times{{d.id}}">{{d.date}}</span>
|
||||||
|
{{# } }}
|
||||||
<div class="xian"></div>
|
<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"){ }}
|
{{# if(d.cat === "retention"){ }}
|
||||||
<div class="xian"></div>
|
<div class="xian"></div>
|
||||||
{{# if(d.retentiontype === 0){ }}
|
{{# if(d.retentiontype === 0){ }}
|
||||||
@ -87,6 +107,7 @@
|
|||||||
<span class="kanben-retained-type" data-id="{{d.id}}" id="retention{{d.id}}">流失</span>
|
<span class="kanben-retained-type" data-id="{{d.id}}" id="retention{{d.id}}">流失</span>
|
||||||
{{# } }}
|
{{# } }}
|
||||||
{{# } }}
|
{{# } }}
|
||||||
|
{{# } }}
|
||||||
</div>
|
</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}}">
|
<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>
|
<img src="./static/img/qvshitu.png" /> <span>报表</span>
|
||||||
@ -206,9 +227,12 @@
|
|||||||
|
|
||||||
<div class="condition-box controlhover">
|
<div class="condition-box controlhover">
|
||||||
<div class="time-cond">
|
<div class="time-cond">
|
||||||
|
{{# if(d.cat != "user_property"){ }}
|
||||||
<span class="model-times" id="times{{d.id}}">{{d.date}}</span>
|
<span class="model-times" id="times{{d.id}}">{{d.date}}</span>
|
||||||
<div class="xian"></div>
|
<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"){ }}
|
{{# if(d.cat === "retention"){ }}
|
||||||
<div class="xian"></div>
|
<div class="xian"></div>
|
||||||
{{# if(d.retentiontype === 0){ }}
|
{{# if(d.retentiontype === 0){ }}
|
||||||
@ -217,26 +241,27 @@
|
|||||||
<span class="kanben-retained-type" data-id="{{d.id}}" id="retention{{d.id}}">流失</span>
|
<span class="kanben-retained-type" data-id="{{d.id}}" id="retention{{d.id}}">流失</span>
|
||||||
{{# } }}
|
{{# } }}
|
||||||
{{# } }}
|
{{# } }}
|
||||||
|
{{# } }}
|
||||||
</div>
|
</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}}">
|
<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>
|
<img src="./static/img/qvshitu.png" /> <span>趋势图</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<p class="dqtime">{{d.date}}</p>
|
<!-- <p class="dqtime">{{d.date}}</p> -->
|
||||||
<div class="data-box">
|
<div class="data-box">
|
||||||
<div style="display: flex; align-items: center;">
|
<div style="display: flex; align-items: center;">
|
||||||
<div class="data-num">{{d.sameday}}<span></span></div>
|
<div class="data-num">{{d.sameday}}<span></span></div>
|
||||||
<div class="proportion">
|
<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>
|
||||||
<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.wowtype != ''){ }}
|
||||||
{{# if(d.wowtyle == '-'){ }}
|
{{# if(d.wowtype == '-'){ }}
|
||||||
<div class="proportion-data">较环比 <div class="sanjiao"></div><span>{{d.wow}}%</span></div>
|
<div class="proportion-data">较环比 <div class="sanjiao"></div><span>{{d.wow}}%</span></div>
|
||||||
{{# } else { }}
|
{{# } else { }}
|
||||||
<div class="proportion-data">较环比 <div class="sanjiao fu"></div><span class="funum">{{d.wow}}%</span></div>
|
<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 == "+"){ }}
|
{{# if(d.chain_ratiotype == "+"){ }}
|
||||||
<div class="proportion-data">较同比 <div class="sanjiao"></div><span>{{d.chain_ratio}}%</span></div>
|
<div class="proportion-data">较同比 <div class="sanjiao"></div><span>{{d.chain_ratio}}%</span></div>
|
||||||
{{# } else { }}
|
{{# } else { }}
|
||||||
@ -248,8 +273,12 @@
|
|||||||
|
|
||||||
<div class="thesum">
|
<div class="thesum">
|
||||||
<div class="thesum-box">
|
<div class="thesum-box">
|
||||||
|
{{# if(d.sum != -1){ }}
|
||||||
<div class="thesum-data">总和 <span>{{d.sum}}</span></div>
|
<div class="thesum-data">总和 <span>{{d.sum}}</span></div>
|
||||||
|
{{# } }}
|
||||||
|
{{# if(d.mean != -1){ }}
|
||||||
<div class="thesum-data">均值 <span>{{d.mean}}</span></div>
|
<div class="thesum-data">均值 <span>{{d.mean}}</span></div>
|
||||||
|
{{# } }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
336
web/src/x.min.js
vendored
336
web/src/x.min.js
vendored
@ -96,9 +96,9 @@ var X = window.X || {
|
|||||||
'retention':[
|
'retention':[
|
||||||
{'title':'当日','id':'1'},
|
{'title':'当日','id':'1'},
|
||||||
{'title':'次日','id':'2'},
|
{'title':'次日','id':'2'},
|
||||||
{'title':'7日','id':'P1W'},
|
{'title':'7日','id':'7'},
|
||||||
{'title':'14日','id':'14'},
|
{'title':'14日','id':'14'},
|
||||||
{'title':'30日','id':'P1M'}
|
{'title':'30日','id':'30'}
|
||||||
],
|
],
|
||||||
'distribution':[
|
'distribution':[
|
||||||
{'title':'按天','id':'P1D'},
|
{'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){
|
X.groupintersection=function(c , a , callback){
|
||||||
var dataArr=[];
|
var dataArr=[];
|
||||||
@ -583,11 +618,11 @@ var X = window.X || {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
var seriesData=[];
|
var seriesData=[];
|
||||||
var sum = 0;
|
var sum = -1;
|
||||||
var mean = 0;
|
var mean = -1;
|
||||||
var sameday = 0;
|
var sameday = 0;
|
||||||
var date;
|
var date;
|
||||||
var wowtype,chain_ratiotype;//判断较环比和较同比的正负
|
var wowtype='',chain_ratiotype='';//判断较环比和较同比的正负
|
||||||
|
|
||||||
var length = data[0]['date_range'].length - 1;
|
var length = data[0]['date_range'].length - 1;
|
||||||
date = data[0]['date_range'][length];
|
date = data[0]['date_range'][length];
|
||||||
@ -600,31 +635,37 @@ var X = window.X || {
|
|||||||
}
|
}
|
||||||
seriesData.push(arr);
|
seriesData.push(arr);
|
||||||
sameday = data[i]['values'][z][data[i]['values'][z].length - 1];
|
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){
|
if(legenddata.length > 0){
|
||||||
for(let i in seriesData){
|
for(let i in seriesData){
|
||||||
seriesData[i]['name'] = legenddata[i];
|
seriesData[i]['name'] = legenddata[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(data[0]['wow']){
|
||||||
if(data[0]['wow'] >= 0){
|
if(data[0]['wow'] >= 0){
|
||||||
wowtype = '+'
|
wowtype = '+'
|
||||||
}else{
|
}else{
|
||||||
wowtype = '-'
|
wowtype = '-'
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(data[0]['chain_ratio']){
|
||||||
if(data[0]['chain_ratio'] >= 0){
|
if(data[0]['chain_ratio'] >= 0){
|
||||||
chain_ratiotype = '+'
|
chain_ratiotype = '+'
|
||||||
}else{
|
}else{
|
||||||
chain_ratiotype = '-'
|
chain_ratiotype = '-'
|
||||||
}
|
}
|
||||||
console.log(111,data[0]['date_range']);
|
}
|
||||||
|
|
||||||
var dataArr = {
|
var dataArr = {
|
||||||
xAxisData:data[0]['date_range'],
|
xAxisData:data[0]['date_range'],
|
||||||
legenddata:legenddata,
|
legenddata:legenddata,
|
||||||
@ -634,8 +675,6 @@ var X = window.X || {
|
|||||||
mean:mean,
|
mean:mean,
|
||||||
sameday: sameday,
|
sameday: sameday,
|
||||||
wowtype:wowtype,
|
wowtype:wowtype,
|
||||||
// wow: 0,
|
|
||||||
// chain_ratio: 0,
|
|
||||||
wow: Math.abs(data[0]['wow']),//环比
|
wow: Math.abs(data[0]['wow']),//环比
|
||||||
chain_ratio: Math.abs(data[0]['chain_ratio']),//同比
|
chain_ratio: Math.abs(data[0]['chain_ratio']),//同比
|
||||||
chain_ratiotype:chain_ratiotype
|
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){
|
X.parametersopen(X['DATA']['retentionlist'],'dropdownlist',[offset.top+obj.height(),offset.left],function(d){
|
||||||
var retentiontype = d.id;
|
var retentiontype = d.id;
|
||||||
var modelid = "retention"+id;
|
var modelid = "retention"+id;
|
||||||
console.log(d);
|
|
||||||
console.log(modelid);
|
|
||||||
X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(val){
|
X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(val){
|
||||||
for(let i in val){
|
for(let i in val){
|
||||||
if(val[i]['report_id'] == id){
|
if(val[i]['report_id'] == id){
|
||||||
@ -4054,41 +4091,143 @@ var X = window.X || {
|
|||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
|
//报表时间粒度修改
|
||||||
$(document).off('click','.model-screenlist').on('click','.model-screenlist',function(){
|
$(document).off('click','.model-screenlist').on('click','.model-screenlist',function(){
|
||||||
var obj = $(this);
|
var obj = $(this);
|
||||||
var offset = obj.offset();
|
var offset = obj.offset();
|
||||||
|
|
||||||
// var id = obj.attr('data-id');
|
var id = obj.attr('data-id');
|
||||||
// X.parametersopen(X['DATA']['screenlist'][eventdata.cat],'dropdownlist',[offset.top+obj.height(),offset.left],function(d){
|
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;
|
X.parametersopen(X['DATA']['screenlist'][cat],'dropdownlist',[offset.top+obj.height(),offset.left],function(d){
|
||||||
// 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);
|
var reportid = [];
|
||||||
// // console.log(modeldata);
|
reportid.push(id);
|
||||||
// //渲染模板和数据
|
X.api('report/read_report','post',{project_id:X.DATA['projectid'],report_id:reportid},function(val){
|
||||||
// X.template("modeltable",'model'+modeldata[0]['id'],modeldata[0],function(){
|
var query = {
|
||||||
// X.pageLogic['dashboard'].morefeatures(modeldata);
|
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){
|
modeldata:function(d,val,type){
|
||||||
console.log('aaa',val);
|
|
||||||
var eventdata = [];
|
var eventdata = [];
|
||||||
var startTime = d['query']['eventView']['startTime'];
|
var startTime = d['query']['eventView']['startTime'];
|
||||||
var endTime = d['query']['eventView']['endTime'];
|
var endTime = d['query']['eventView']['endTime'];
|
||||||
|
if(startTime && endTime){
|
||||||
var startTimearr = startTime.split(" ");
|
var startTimearr = startTime.split(" ");
|
||||||
var endTimearr = endTime.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"){
|
if(d['model'] == "event"){
|
||||||
// 事件分析
|
// 事件分析
|
||||||
@ -4160,6 +4311,7 @@ var X = window.X || {
|
|||||||
data['modelsize'] = d['graph_size'];
|
data['modelsize'] = d['graph_size'];
|
||||||
data['cat'] = d['model'];
|
data['cat'] = d['model'];
|
||||||
data['date'] = startTimearr[0] + ' - ' + endTimearr[0];
|
data['date'] = startTimearr[0] + ' - ' + endTimearr[0];
|
||||||
|
data['timeParticleSize'] = granularity;
|
||||||
eventdata.push(data);
|
eventdata.push(data);
|
||||||
})
|
})
|
||||||
}else if(d['graph_type'] == 'echarts'){
|
}else if(d['graph_type'] == 'echarts'){
|
||||||
@ -4171,6 +4323,7 @@ var X = window.X || {
|
|||||||
data['modelsize'] = d['graph_size'];
|
data['modelsize'] = d['graph_size'];
|
||||||
data['cat'] = d['model'];
|
data['cat'] = d['model'];
|
||||||
data['date'] = startTimearr[0] + ' - ' + endTimearr[0];
|
data['date'] = startTimearr[0] + ' - ' + endTimearr[0];
|
||||||
|
data['timeParticleSize'] = granularity;
|
||||||
eventdata.push(data);
|
eventdata.push(data);
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -4194,6 +4347,7 @@ var X = window.X || {
|
|||||||
data['modelsize'] = d['graph_size'];
|
data['modelsize'] = d['graph_size'];
|
||||||
data['cat'] = d['model'];
|
data['cat'] = d['model'];
|
||||||
data['date'] = startTimearr[0] + ' - ' + endTimearr[0];
|
data['date'] = startTimearr[0] + ' - ' + endTimearr[0];
|
||||||
|
data['timeParticleSize'] = granularity;
|
||||||
eventdata.push(data);
|
eventdata.push(data);
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -4205,6 +4359,7 @@ var X = window.X || {
|
|||||||
data['modelsize'] = d['graph_size'];
|
data['modelsize'] = d['graph_size'];
|
||||||
data['cat'] = d['model'];
|
data['cat'] = d['model'];
|
||||||
data['date'] = startTimearr[0] + ' - ' + endTimearr[0];
|
data['date'] = startTimearr[0] + ' - ' + endTimearr[0];
|
||||||
|
data['timeParticleSize'] = granularity;
|
||||||
eventdata.push(data);
|
eventdata.push(data);
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -4219,6 +4374,7 @@ var X = window.X || {
|
|||||||
data['modelsize'] = d['graph_size'];
|
data['modelsize'] = d['graph_size'];
|
||||||
data['cat'] = d['model'];
|
data['cat'] = d['model'];
|
||||||
data['date'] = startTimearr[0] + ' - ' + endTimearr[0];
|
data['date'] = startTimearr[0] + ' - ' + endTimearr[0];
|
||||||
|
data['timeParticleSize'] = granularity;
|
||||||
eventdata.push(data);
|
eventdata.push(data);
|
||||||
})
|
})
|
||||||
}else {
|
}else {
|
||||||
@ -4229,6 +4385,7 @@ var X = window.X || {
|
|||||||
data['modelsize'] = d['graph_size'];
|
data['modelsize'] = d['graph_size'];
|
||||||
data['cat'] = d['model'];
|
data['cat'] = d['model'];
|
||||||
data['date'] = startTimearr[0] + ' - ' + endTimearr[0];
|
data['date'] = startTimearr[0] + ' - ' + endTimearr[0];
|
||||||
|
data['timeParticleSize'] = granularity;
|
||||||
eventdata.push(data);
|
eventdata.push(data);
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -4241,7 +4398,7 @@ var X = window.X || {
|
|||||||
data['id'] = d['report_id'];
|
data['id'] = d['report_id'];
|
||||||
data['modelsize'] = d['graph_size'];
|
data['modelsize'] = d['graph_size'];
|
||||||
data['cat'] = d['model'];
|
data['cat'] = d['model'];
|
||||||
data['date'] = startTimearr[0] + ' - ' + endTimearr[0];
|
data['date'] = "";
|
||||||
eventdata.push(data);
|
eventdata.push(data);
|
||||||
})
|
})
|
||||||
}else {
|
}else {
|
||||||
@ -4251,7 +4408,7 @@ var X = window.X || {
|
|||||||
data['id'] = d['report_id'];
|
data['id'] = d['report_id'];
|
||||||
data['modelsize'] = d['graph_size'];
|
data['modelsize'] = d['graph_size'];
|
||||||
data['cat'] = d['model'];
|
data['cat'] = d['model'];
|
||||||
data['date'] = startTimearr[0] + ' - ' + endTimearr[0];
|
data['date'] = "";
|
||||||
eventdata.push(data);
|
eventdata.push(data);
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -4262,57 +4419,6 @@ var X = window.X || {
|
|||||||
//画统计图和添加移入移出事件
|
//画统计图和添加移入移出事件
|
||||||
morefeatures:function(eventdata){
|
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){
|
X.laydropdown(".model-gengduo",X['DATA']['gengduolist'],function(d){
|
||||||
if(d.id == 'shezhi'){
|
if(d.id == 'shezhi'){
|
||||||
@ -4375,6 +4481,7 @@ var X = window.X || {
|
|||||||
model:eventdata['cat'],
|
model:eventdata['cat'],
|
||||||
name:eventdata['name'],
|
name:eventdata['name'],
|
||||||
report_id:eventdata['id'],
|
report_id:eventdata['id'],
|
||||||
|
query:query
|
||||||
}
|
}
|
||||||
|
|
||||||
var modeldata = X.pageLogic['dashboard'].modeldata(bbsetdata,val);
|
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' ){
|
if(eventdata['modeltype'] == 'echarts' && eventdata['modelsize'] != 'small' ){
|
||||||
var myChart = echarts.init(document.getElementById(eventdata['id']));
|
var myChart = echarts.init(document.getElementById(eventdata['id']));
|
||||||
@ -4473,13 +4551,14 @@ var X = window.X || {
|
|||||||
},
|
},
|
||||||
legend: {
|
legend: {
|
||||||
type:'scroll',
|
type:'scroll',
|
||||||
|
bottom:0,
|
||||||
data: eventdata['legenddata']
|
data: eventdata['legenddata']
|
||||||
},
|
},
|
||||||
grid: {
|
grid: {
|
||||||
left: '2%',
|
left: '2%',
|
||||||
right: '2%',
|
right: '2%',
|
||||||
bottom: '2%',
|
bottom: '10%',
|
||||||
top: '10%',
|
top: '5%',
|
||||||
containLabel: true
|
containLabel: true
|
||||||
},
|
},
|
||||||
xAxis: [
|
xAxis: [
|
||||||
@ -4508,6 +4587,7 @@ var X = window.X || {
|
|||||||
gettabledata:function(){
|
gettabledata:function(){
|
||||||
$("#model-box").html("");//清空表格数据
|
$("#model-box").html("");//清空表格数据
|
||||||
X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(d){
|
X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(d){
|
||||||
|
X['DATA']['kanbanlist'] = d;
|
||||||
var modellist=[];
|
var modellist=[];
|
||||||
for(let i in d){
|
for(let i in d){
|
||||||
var arr = {
|
var arr = {
|
||||||
|
@ -95,9 +95,9 @@ var X = window.X || {
|
|||||||
'retention':[
|
'retention':[
|
||||||
{'title':'当日','id':'1'},
|
{'title':'当日','id':'1'},
|
||||||
{'title':'次日','id':'2'},
|
{'title':'次日','id':'2'},
|
||||||
{'title':'7日','id':'P1W'},
|
{'title':'7日','id':'7'},
|
||||||
{'title':'14日','id':'14'},
|
{'title':'14日','id':'14'},
|
||||||
{'title':'30日','id':'P1M'}
|
{'title':'30日','id':'30'}
|
||||||
],
|
],
|
||||||
'distribution':[
|
'distribution':[
|
||||||
{'title':'按天','id':'P1D'},
|
{'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){
|
X.groupintersection=function(c , a , callback){
|
||||||
var dataArr=[];
|
var dataArr=[];
|
||||||
@ -582,11 +617,11 @@ var X = window.X || {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
var seriesData=[];
|
var seriesData=[];
|
||||||
var sum = 0;
|
var sum = -1;
|
||||||
var mean = 0;
|
var mean = -1;
|
||||||
var sameday = 0;
|
var sameday = 0;
|
||||||
var date;
|
var date;
|
||||||
var wowtype,chain_ratiotype;//判断较环比和较同比的正负
|
var wowtype='',chain_ratiotype='';//判断较环比和较同比的正负
|
||||||
|
|
||||||
var length = data[0]['date_range'].length - 1;
|
var length = data[0]['date_range'].length - 1;
|
||||||
date = data[0]['date_range'][length];
|
date = data[0]['date_range'][length];
|
||||||
@ -599,31 +634,37 @@ var X = window.X || {
|
|||||||
}
|
}
|
||||||
seriesData.push(arr);
|
seriesData.push(arr);
|
||||||
sameday = data[i]['values'][z][data[i]['values'][z].length - 1];
|
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){
|
if(legenddata.length > 0){
|
||||||
for(let i in seriesData){
|
for(let i in seriesData){
|
||||||
seriesData[i]['name'] = legenddata[i];
|
seriesData[i]['name'] = legenddata[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(data[0]['wow']){
|
||||||
if(data[0]['wow'] >= 0){
|
if(data[0]['wow'] >= 0){
|
||||||
wowtype = '+'
|
wowtype = '+'
|
||||||
}else{
|
}else{
|
||||||
wowtype = '-'
|
wowtype = '-'
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(data[0]['chain_ratio']){
|
||||||
if(data[0]['chain_ratio'] >= 0){
|
if(data[0]['chain_ratio'] >= 0){
|
||||||
chain_ratiotype = '+'
|
chain_ratiotype = '+'
|
||||||
}else{
|
}else{
|
||||||
chain_ratiotype = '-'
|
chain_ratiotype = '-'
|
||||||
}
|
}
|
||||||
console.log(111,data[0]['date_range']);
|
}
|
||||||
|
|
||||||
var dataArr = {
|
var dataArr = {
|
||||||
xAxisData:data[0]['date_range'],
|
xAxisData:data[0]['date_range'],
|
||||||
legenddata:legenddata,
|
legenddata:legenddata,
|
||||||
@ -633,8 +674,6 @@ var X = window.X || {
|
|||||||
mean:mean,
|
mean:mean,
|
||||||
sameday: sameday,
|
sameday: sameday,
|
||||||
wowtype:wowtype,
|
wowtype:wowtype,
|
||||||
// wow: 0,
|
|
||||||
// chain_ratio: 0,
|
|
||||||
wow: Math.abs(data[0]['wow']),//环比
|
wow: Math.abs(data[0]['wow']),//环比
|
||||||
chain_ratio: Math.abs(data[0]['chain_ratio']),//同比
|
chain_ratio: Math.abs(data[0]['chain_ratio']),//同比
|
||||||
chain_ratiotype:chain_ratiotype
|
chain_ratiotype:chain_ratiotype
|
||||||
|
@ -334,8 +334,6 @@
|
|||||||
X.parametersopen(X['DATA']['retentionlist'],'dropdownlist',[offset.top+obj.height(),offset.left],function(d){
|
X.parametersopen(X['DATA']['retentionlist'],'dropdownlist',[offset.top+obj.height(),offset.left],function(d){
|
||||||
var retentiontype = d.id;
|
var retentiontype = d.id;
|
||||||
var modelid = "retention"+id;
|
var modelid = "retention"+id;
|
||||||
console.log(d);
|
|
||||||
console.log(modelid);
|
|
||||||
X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(val){
|
X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(val){
|
||||||
for(let i in val){
|
for(let i in val){
|
||||||
if(val[i]['report_id'] == id){
|
if(val[i]['report_id'] == id){
|
||||||
@ -346,41 +344,143 @@
|
|||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
|
//报表时间粒度修改
|
||||||
$(document).off('click','.model-screenlist').on('click','.model-screenlist',function(){
|
$(document).off('click','.model-screenlist').on('click','.model-screenlist',function(){
|
||||||
var obj = $(this);
|
var obj = $(this);
|
||||||
var offset = obj.offset();
|
var offset = obj.offset();
|
||||||
|
|
||||||
// var id = obj.attr('data-id');
|
var id = obj.attr('data-id');
|
||||||
// X.parametersopen(X['DATA']['screenlist'][eventdata.cat],'dropdownlist',[offset.top+obj.height(),offset.left],function(d){
|
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;
|
X.parametersopen(X['DATA']['screenlist'][cat],'dropdownlist',[offset.top+obj.height(),offset.left],function(d){
|
||||||
// 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);
|
var reportid = [];
|
||||||
// // console.log(modeldata);
|
reportid.push(id);
|
||||||
// //渲染模板和数据
|
X.api('report/read_report','post',{project_id:X.DATA['projectid'],report_id:reportid},function(val){
|
||||||
// X.template("modeltable",'model'+modeldata[0]['id'],modeldata[0],function(){
|
var query = {
|
||||||
// X.pageLogic['dashboard'].morefeatures(modeldata);
|
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){
|
modeldata:function(d,val,type){
|
||||||
console.log('aaa',val);
|
|
||||||
var eventdata = [];
|
var eventdata = [];
|
||||||
var startTime = d['query']['eventView']['startTime'];
|
var startTime = d['query']['eventView']['startTime'];
|
||||||
var endTime = d['query']['eventView']['endTime'];
|
var endTime = d['query']['eventView']['endTime'];
|
||||||
|
if(startTime && endTime){
|
||||||
var startTimearr = startTime.split(" ");
|
var startTimearr = startTime.split(" ");
|
||||||
var endTimearr = endTime.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"){
|
if(d['model'] == "event"){
|
||||||
// 事件分析
|
// 事件分析
|
||||||
@ -452,6 +564,7 @@
|
|||||||
data['modelsize'] = d['graph_size'];
|
data['modelsize'] = d['graph_size'];
|
||||||
data['cat'] = d['model'];
|
data['cat'] = d['model'];
|
||||||
data['date'] = startTimearr[0] + ' - ' + endTimearr[0];
|
data['date'] = startTimearr[0] + ' - ' + endTimearr[0];
|
||||||
|
data['timeParticleSize'] = granularity;
|
||||||
eventdata.push(data);
|
eventdata.push(data);
|
||||||
})
|
})
|
||||||
}else if(d['graph_type'] == 'echarts'){
|
}else if(d['graph_type'] == 'echarts'){
|
||||||
@ -463,6 +576,7 @@
|
|||||||
data['modelsize'] = d['graph_size'];
|
data['modelsize'] = d['graph_size'];
|
||||||
data['cat'] = d['model'];
|
data['cat'] = d['model'];
|
||||||
data['date'] = startTimearr[0] + ' - ' + endTimearr[0];
|
data['date'] = startTimearr[0] + ' - ' + endTimearr[0];
|
||||||
|
data['timeParticleSize'] = granularity;
|
||||||
eventdata.push(data);
|
eventdata.push(data);
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -486,6 +600,7 @@
|
|||||||
data['modelsize'] = d['graph_size'];
|
data['modelsize'] = d['graph_size'];
|
||||||
data['cat'] = d['model'];
|
data['cat'] = d['model'];
|
||||||
data['date'] = startTimearr[0] + ' - ' + endTimearr[0];
|
data['date'] = startTimearr[0] + ' - ' + endTimearr[0];
|
||||||
|
data['timeParticleSize'] = granularity;
|
||||||
eventdata.push(data);
|
eventdata.push(data);
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -497,6 +612,7 @@
|
|||||||
data['modelsize'] = d['graph_size'];
|
data['modelsize'] = d['graph_size'];
|
||||||
data['cat'] = d['model'];
|
data['cat'] = d['model'];
|
||||||
data['date'] = startTimearr[0] + ' - ' + endTimearr[0];
|
data['date'] = startTimearr[0] + ' - ' + endTimearr[0];
|
||||||
|
data['timeParticleSize'] = granularity;
|
||||||
eventdata.push(data);
|
eventdata.push(data);
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -511,6 +627,7 @@
|
|||||||
data['modelsize'] = d['graph_size'];
|
data['modelsize'] = d['graph_size'];
|
||||||
data['cat'] = d['model'];
|
data['cat'] = d['model'];
|
||||||
data['date'] = startTimearr[0] + ' - ' + endTimearr[0];
|
data['date'] = startTimearr[0] + ' - ' + endTimearr[0];
|
||||||
|
data['timeParticleSize'] = granularity;
|
||||||
eventdata.push(data);
|
eventdata.push(data);
|
||||||
})
|
})
|
||||||
}else {
|
}else {
|
||||||
@ -521,6 +638,7 @@
|
|||||||
data['modelsize'] = d['graph_size'];
|
data['modelsize'] = d['graph_size'];
|
||||||
data['cat'] = d['model'];
|
data['cat'] = d['model'];
|
||||||
data['date'] = startTimearr[0] + ' - ' + endTimearr[0];
|
data['date'] = startTimearr[0] + ' - ' + endTimearr[0];
|
||||||
|
data['timeParticleSize'] = granularity;
|
||||||
eventdata.push(data);
|
eventdata.push(data);
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -533,7 +651,7 @@
|
|||||||
data['id'] = d['report_id'];
|
data['id'] = d['report_id'];
|
||||||
data['modelsize'] = d['graph_size'];
|
data['modelsize'] = d['graph_size'];
|
||||||
data['cat'] = d['model'];
|
data['cat'] = d['model'];
|
||||||
data['date'] = startTimearr[0] + ' - ' + endTimearr[0];
|
data['date'] = "";
|
||||||
eventdata.push(data);
|
eventdata.push(data);
|
||||||
})
|
})
|
||||||
}else {
|
}else {
|
||||||
@ -543,7 +661,7 @@
|
|||||||
data['id'] = d['report_id'];
|
data['id'] = d['report_id'];
|
||||||
data['modelsize'] = d['graph_size'];
|
data['modelsize'] = d['graph_size'];
|
||||||
data['cat'] = d['model'];
|
data['cat'] = d['model'];
|
||||||
data['date'] = startTimearr[0] + ' - ' + endTimearr[0];
|
data['date'] = "";
|
||||||
eventdata.push(data);
|
eventdata.push(data);
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -554,57 +672,6 @@
|
|||||||
//画统计图和添加移入移出事件
|
//画统计图和添加移入移出事件
|
||||||
morefeatures:function(eventdata){
|
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){
|
X.laydropdown(".model-gengduo",X['DATA']['gengduolist'],function(d){
|
||||||
if(d.id == 'shezhi'){
|
if(d.id == 'shezhi'){
|
||||||
@ -667,6 +734,7 @@
|
|||||||
model:eventdata['cat'],
|
model:eventdata['cat'],
|
||||||
name:eventdata['name'],
|
name:eventdata['name'],
|
||||||
report_id:eventdata['id'],
|
report_id:eventdata['id'],
|
||||||
|
query:query
|
||||||
}
|
}
|
||||||
|
|
||||||
var modeldata = X.pageLogic['dashboard'].modeldata(bbsetdata,val);
|
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' ){
|
if(eventdata['modeltype'] == 'echarts' && eventdata['modelsize'] != 'small' ){
|
||||||
var myChart = echarts.init(document.getElementById(eventdata['id']));
|
var myChart = echarts.init(document.getElementById(eventdata['id']));
|
||||||
@ -765,13 +804,14 @@
|
|||||||
},
|
},
|
||||||
legend: {
|
legend: {
|
||||||
type:'scroll',
|
type:'scroll',
|
||||||
|
bottom:0,
|
||||||
data: eventdata['legenddata']
|
data: eventdata['legenddata']
|
||||||
},
|
},
|
||||||
grid: {
|
grid: {
|
||||||
left: '2%',
|
left: '2%',
|
||||||
right: '2%',
|
right: '2%',
|
||||||
bottom: '2%',
|
bottom: '10%',
|
||||||
top: '10%',
|
top: '5%',
|
||||||
containLabel: true
|
containLabel: true
|
||||||
},
|
},
|
||||||
xAxis: [
|
xAxis: [
|
||||||
@ -800,6 +840,7 @@
|
|||||||
gettabledata:function(){
|
gettabledata:function(){
|
||||||
$("#model-box").html("");//清空表格数据
|
$("#model-box").html("");//清空表格数据
|
||||||
X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(d){
|
X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(d){
|
||||||
|
X['DATA']['kanbanlist'] = d;
|
||||||
var modellist=[];
|
var modellist=[];
|
||||||
for(let i in d){
|
for(let i in d){
|
||||||
var arr = {
|
var arr = {
|
||||||
|
@ -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-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; }
|
.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 { 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 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; }
|
.table-fenxi-box tr { text-align: center; border-left: 1px solid #e6e6e6; }
|
||||||
|
BIN
web/static/img/qhuan.png
Normal file
BIN
web/static/img/qhuan.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 346 B |
Loading…
Reference in New Issue
Block a user