111
This commit is contained in:
parent
5ca1930de7
commit
f44f2999b6
@ -76,11 +76,17 @@
|
||||
|
||||
<div class="condition-box controlhover">
|
||||
<div class="time-cond">
|
||||
<span>
|
||||
过去7天
|
||||
</span>
|
||||
<span>过去7天</span>
|
||||
<div class="xian"></div>
|
||||
<span>按天</span>
|
||||
{{# if(d.cat === "retention"){ }}
|
||||
<div class="xian"></div>
|
||||
{{# if(d.retentiontype === 0){ }}
|
||||
<span class="kanben-retained-type" id="retention{{d.id}}">留存</span>
|
||||
{{# } else { }}
|
||||
<span class="kanben-retained-type" 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>
|
||||
@ -203,6 +209,14 @@
|
||||
<span>过去7天</span>
|
||||
<div class="xian"></div>
|
||||
<span>按天</span>
|
||||
{{# if(d.cat === "retention"){ }}
|
||||
<div class="xian"></div>
|
||||
{{# if(d.retentiontype === 0){ }}
|
||||
<span class="kanben-retained-type" id="retention{{d.id}}">留存</span>
|
||||
{{# } else { }}
|
||||
<span class="kanben-retained-type" 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>
|
||||
|
103
web/src/x.min.js
vendored
103
web/src/x.min.js
vendored
@ -28,31 +28,7 @@ var X = window.X || {
|
||||
//用户搜索条件
|
||||
'search':{
|
||||
category:[
|
||||
{
|
||||
'title':'全部',
|
||||
'id':'0',
|
||||
'Category':[]
|
||||
},
|
||||
{
|
||||
'title':'用户属性',
|
||||
'id':'1',
|
||||
'Category':[
|
||||
{'title':'账户ID','id':'10','type':'string'},
|
||||
{'title':'访客ID','id':'11','type':'string'},
|
||||
{'title':'注册时间','id':'12','type':'time'},
|
||||
{'title':'来源渠道','id':'13','type':'time'},
|
||||
]
|
||||
},
|
||||
{
|
||||
'title':'测试',
|
||||
'id':'2',
|
||||
'Category':[
|
||||
{'title':'账户ID','id':'10','type':'string'},
|
||||
{'title':'访客ID','id':'11','type':'string'},
|
||||
{'title':'注册时间','id':'12','type':'time'},
|
||||
{'title':'来源渠道','id':'13','type':'time'},
|
||||
]
|
||||
}
|
||||
|
||||
],
|
||||
condition:[
|
||||
{'title':'等于','id':'0','default':false},
|
||||
@ -612,6 +588,14 @@ var X = window.X || {
|
||||
};
|
||||
|
||||
X.retentiontable=function(data,callback){
|
||||
var nname,pname
|
||||
if(data.retentiontype == 0) {
|
||||
nname = 'n';
|
||||
pname = 'p';
|
||||
}else {
|
||||
nname = 'n_outflow';
|
||||
pname = 'p_outflow';
|
||||
}
|
||||
var tabledata=[];
|
||||
for(let i in data['summary_values']){
|
||||
var arr = {
|
||||
@ -619,13 +603,13 @@ var X = window.X || {
|
||||
d0:data['summary_values'][i]['d0'],
|
||||
data:[]
|
||||
}
|
||||
for(let j in data['summary_values'][i]["n"]){
|
||||
for(let j in data['summary_values'][i][nname]){
|
||||
var nrr = {
|
||||
n:0,
|
||||
p:0
|
||||
}
|
||||
nrr["n"] = data['summary_values'][i]["n"][j];
|
||||
nrr["p"] = data['summary_values'][i]["p"][j]
|
||||
nrr["n"] = data['summary_values'][i][nname][j];
|
||||
nrr["p"] = data['summary_values'][i][pname][j]
|
||||
arr['data'].push(nrr);
|
||||
}
|
||||
tabledata.push(arr);
|
||||
@ -639,12 +623,21 @@ var X = window.X || {
|
||||
titdata.unshift("日期",data.title);
|
||||
var dataArr = {
|
||||
titledata:titdata,
|
||||
condata:tabledata
|
||||
condata:tabledata,
|
||||
retentiontype:data.retentiontype
|
||||
}
|
||||
callback && callback(dataArr);
|
||||
};
|
||||
|
||||
X.retentionchart = function(d,callback){
|
||||
var nname,pname
|
||||
if(d.retentiontype == 0) {
|
||||
nname = 'n';
|
||||
pname = 'p';
|
||||
}else {
|
||||
nname = 'n_outflow';
|
||||
pname = 'p_outflow';
|
||||
}
|
||||
var arr = {};
|
||||
var legenddata = [];
|
||||
var seriesData = [];
|
||||
@ -653,8 +646,8 @@ var X = window.X || {
|
||||
if(jQuery.isEmptyObject(d.values)){
|
||||
var arr = []
|
||||
for(let i in d['summary_values']){
|
||||
var index = d['summary_values'][i]['p'].length - 1;
|
||||
arr.push(d['summary_values'][i]['p'][index]);
|
||||
var index = d['summary_values'][i][pname].length - 1;
|
||||
arr.push(d['summary_values'][i][pname][index]);
|
||||
xAxisData.push(i);
|
||||
}
|
||||
|
||||
@ -675,10 +668,10 @@ var X = window.X || {
|
||||
timearr.push(i);
|
||||
for(let j in d.values[i]){
|
||||
if(arr[j]){
|
||||
arr[j][i] = d.values[i][j]['p'];
|
||||
arr[j][i] = d.values[i][j][pname];
|
||||
}else {
|
||||
arr[j]=[];
|
||||
arr[j][i] = d.values[i][j]['p'];
|
||||
arr[j][i] = d.values[i][j][pname];
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -716,7 +709,8 @@ var X = window.X || {
|
||||
date:date,
|
||||
sum:sum.toFixed(2),
|
||||
mean:mean,
|
||||
sameday: sameday
|
||||
sameday: sameday,
|
||||
retentiontype:d.retentiontype
|
||||
}
|
||||
// console.log(dataArr);
|
||||
callback && callback(dataArr);
|
||||
@ -2047,13 +2041,14 @@ var X = window.X || {
|
||||
});
|
||||
|
||||
// 监听文本框
|
||||
$(document).off('click','.analysis-zhibiao-list-type4 input').on('blur','.analysis-zhibiao-list-type4 input',function(){
|
||||
$(document).off('click','.analysis-zhibiao-list-type4 input').on('change','.analysis-zhibiao-list-type4 input',function(){
|
||||
var index = $(this).attr("data-index");
|
||||
var indexs = $(this).attr("data-indexs");
|
||||
var val = $(this).val();
|
||||
var valarr = val.split(",");
|
||||
data['events'][index]['filts'][indexs]['ftv']=valarr;
|
||||
data['events'][index]['filts'][indexs]['strftv']=val;
|
||||
console.log(val);
|
||||
});
|
||||
|
||||
// 且和或切换
|
||||
@ -3879,7 +3874,7 @@ var X = window.X || {
|
||||
var id = $(this).attr('data-id');
|
||||
// console.log(id);
|
||||
X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(d){
|
||||
return;
|
||||
// return;
|
||||
X.pageLogic['dashboard'].fillmodeldata(d[id]);
|
||||
|
||||
})
|
||||
@ -3976,7 +3971,8 @@ var X = window.X || {
|
||||
},
|
||||
|
||||
//填充看板数据
|
||||
fillmodeldata:function(d,id){
|
||||
//总体逻辑是:根据获取到的看板内容去先渲染放置的框,在根据不同分析模型处理对应的数据进行填充
|
||||
fillmodeldata:function(d,id,type){//
|
||||
// console.log(d);
|
||||
X.api("ck/"+d['model']+"_model","post",{report_id:d['report_id']},function(val){
|
||||
var eventdata=[];
|
||||
@ -4018,6 +4014,11 @@ var X = window.X || {
|
||||
|
||||
} else if(d['model'] == "retention"){
|
||||
//留存分析
|
||||
if(type){
|
||||
val['retentiontype'] = type;
|
||||
}else {
|
||||
val['retentiontype'] = 0
|
||||
}
|
||||
if(d['graph_size'] == 'small'){
|
||||
|
||||
}else {
|
||||
@ -4109,6 +4110,8 @@ var X = window.X || {
|
||||
// $('.layui-row').dad({
|
||||
// draggable:'table'
|
||||
// });
|
||||
|
||||
|
||||
})
|
||||
},
|
||||
|
||||
@ -4146,6 +4149,29 @@ var X = window.X || {
|
||||
|
||||
});
|
||||
console.log(eventdata);
|
||||
// 留存分析模板特定留存流失按钮
|
||||
var retentionlist = [
|
||||
{'title':'留存','id':0},
|
||||
{'title':'流失','id':1},
|
||||
]
|
||||
if(eventdata.cat == 'retention'){
|
||||
X.laydropdown("#retention"+eventdata.id,retentionlist,function(d){
|
||||
console.log(d.id);
|
||||
console.log(eventdata);
|
||||
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);
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
if(eventdata['modeltype'] == 'echarts' && eventdata['modelsize'] != 'small' ){
|
||||
var myChart = echarts.init(document.getElementById(eventdata['id']));
|
||||
if(eventdata['cat'] == 'user_property'){
|
||||
@ -4236,6 +4262,7 @@ var X = window.X || {
|
||||
},
|
||||
|
||||
//获取表格数据
|
||||
//渲染外框大小位置
|
||||
gettabledata:function(){
|
||||
$("#model-box").html("");//清空表格数据
|
||||
X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(d){
|
||||
@ -8321,8 +8348,8 @@ var X = window.X || {
|
||||
titdata.push(tit);
|
||||
}
|
||||
titdata.unshift("日期",d.title);
|
||||
// X.fixedTable=function(id,type,classname,headdata){
|
||||
X.laytpldata("#table-fenxi-th-dot",titdata,".table-fenxi-th");
|
||||
|
||||
X.laytpldata("#table-fenxi-td-dot",tabledata,".table-fenxi-td");
|
||||
};
|
||||
|
||||
|
@ -27,31 +27,7 @@ var X = window.X || {
|
||||
//用户搜索条件
|
||||
'search':{
|
||||
category:[
|
||||
{
|
||||
'title':'全部',
|
||||
'id':'0',
|
||||
'Category':[]
|
||||
},
|
||||
{
|
||||
'title':'用户属性',
|
||||
'id':'1',
|
||||
'Category':[
|
||||
{'title':'账户ID','id':'10','type':'string'},
|
||||
{'title':'访客ID','id':'11','type':'string'},
|
||||
{'title':'注册时间','id':'12','type':'time'},
|
||||
{'title':'来源渠道','id':'13','type':'time'},
|
||||
]
|
||||
},
|
||||
{
|
||||
'title':'测试',
|
||||
'id':'2',
|
||||
'Category':[
|
||||
{'title':'账户ID','id':'10','type':'string'},
|
||||
{'title':'访客ID','id':'11','type':'string'},
|
||||
{'title':'注册时间','id':'12','type':'time'},
|
||||
{'title':'来源渠道','id':'13','type':'time'},
|
||||
]
|
||||
}
|
||||
|
||||
],
|
||||
condition:[
|
||||
{'title':'等于','id':'0','default':false},
|
||||
@ -611,6 +587,14 @@ var X = window.X || {
|
||||
};
|
||||
|
||||
X.retentiontable=function(data,callback){
|
||||
var nname,pname
|
||||
if(data.retentiontype == 0) {
|
||||
nname = 'n';
|
||||
pname = 'p';
|
||||
}else {
|
||||
nname = 'n_outflow';
|
||||
pname = 'p_outflow';
|
||||
}
|
||||
var tabledata=[];
|
||||
for(let i in data['summary_values']){
|
||||
var arr = {
|
||||
@ -618,13 +602,13 @@ var X = window.X || {
|
||||
d0:data['summary_values'][i]['d0'],
|
||||
data:[]
|
||||
}
|
||||
for(let j in data['summary_values'][i]["n"]){
|
||||
for(let j in data['summary_values'][i][nname]){
|
||||
var nrr = {
|
||||
n:0,
|
||||
p:0
|
||||
}
|
||||
nrr["n"] = data['summary_values'][i]["n"][j];
|
||||
nrr["p"] = data['summary_values'][i]["p"][j]
|
||||
nrr["n"] = data['summary_values'][i][nname][j];
|
||||
nrr["p"] = data['summary_values'][i][pname][j]
|
||||
arr['data'].push(nrr);
|
||||
}
|
||||
tabledata.push(arr);
|
||||
@ -638,12 +622,21 @@ var X = window.X || {
|
||||
titdata.unshift("日期",data.title);
|
||||
var dataArr = {
|
||||
titledata:titdata,
|
||||
condata:tabledata
|
||||
condata:tabledata,
|
||||
retentiontype:data.retentiontype
|
||||
}
|
||||
callback && callback(dataArr);
|
||||
};
|
||||
|
||||
X.retentionchart = function(d,callback){
|
||||
var nname,pname
|
||||
if(d.retentiontype == 0) {
|
||||
nname = 'n';
|
||||
pname = 'p';
|
||||
}else {
|
||||
nname = 'n_outflow';
|
||||
pname = 'p_outflow';
|
||||
}
|
||||
var arr = {};
|
||||
var legenddata = [];
|
||||
var seriesData = [];
|
||||
@ -652,8 +645,8 @@ var X = window.X || {
|
||||
if(jQuery.isEmptyObject(d.values)){
|
||||
var arr = []
|
||||
for(let i in d['summary_values']){
|
||||
var index = d['summary_values'][i]['p'].length - 1;
|
||||
arr.push(d['summary_values'][i]['p'][index]);
|
||||
var index = d['summary_values'][i][pname].length - 1;
|
||||
arr.push(d['summary_values'][i][pname][index]);
|
||||
xAxisData.push(i);
|
||||
}
|
||||
|
||||
@ -674,10 +667,10 @@ var X = window.X || {
|
||||
timearr.push(i);
|
||||
for(let j in d.values[i]){
|
||||
if(arr[j]){
|
||||
arr[j][i] = d.values[i][j]['p'];
|
||||
arr[j][i] = d.values[i][j][pname];
|
||||
}else {
|
||||
arr[j]=[];
|
||||
arr[j][i] = d.values[i][j]['p'];
|
||||
arr[j][i] = d.values[i][j][pname];
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -715,7 +708,8 @@ var X = window.X || {
|
||||
date:date,
|
||||
sum:sum.toFixed(2),
|
||||
mean:mean,
|
||||
sameday: sameday
|
||||
sameday: sameday,
|
||||
retentiontype:d.retentiontype
|
||||
}
|
||||
// console.log(dataArr);
|
||||
callback && callback(dataArr);
|
||||
|
@ -371,13 +371,14 @@
|
||||
});
|
||||
|
||||
// 监听文本框
|
||||
$(document).off('click','.analysis-zhibiao-list-type4 input').on('blur','.analysis-zhibiao-list-type4 input',function(){
|
||||
$(document).off('click','.analysis-zhibiao-list-type4 input').on('change','.analysis-zhibiao-list-type4 input',function(){
|
||||
var index = $(this).attr("data-index");
|
||||
var indexs = $(this).attr("data-indexs");
|
||||
var val = $(this).val();
|
||||
var valarr = val.split(",");
|
||||
data['events'][index]['filts'][indexs]['ftv']=valarr;
|
||||
data['events'][index]['filts'][indexs]['strftv']=val;
|
||||
console.log(val);
|
||||
});
|
||||
|
||||
// 且和或切换
|
||||
|
@ -245,7 +245,7 @@
|
||||
var id = $(this).attr('data-id');
|
||||
// console.log(id);
|
||||
X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(d){
|
||||
return;
|
||||
// return;
|
||||
X.pageLogic['dashboard'].fillmodeldata(d[id]);
|
||||
|
||||
})
|
||||
@ -342,7 +342,8 @@
|
||||
},
|
||||
|
||||
//填充看板数据
|
||||
fillmodeldata:function(d,id){
|
||||
//总体逻辑是:根据获取到的看板内容去先渲染放置的框,在根据不同分析模型处理对应的数据进行填充
|
||||
fillmodeldata:function(d,id,type){//
|
||||
// console.log(d);
|
||||
X.api("ck/"+d['model']+"_model","post",{report_id:d['report_id']},function(val){
|
||||
var eventdata=[];
|
||||
@ -384,6 +385,11 @@
|
||||
|
||||
} else if(d['model'] == "retention"){
|
||||
//留存分析
|
||||
if(type){
|
||||
val['retentiontype'] = type;
|
||||
}else {
|
||||
val['retentiontype'] = 0
|
||||
}
|
||||
if(d['graph_size'] == 'small'){
|
||||
|
||||
}else {
|
||||
@ -475,6 +481,8 @@
|
||||
// $('.layui-row').dad({
|
||||
// draggable:'table'
|
||||
// });
|
||||
|
||||
|
||||
})
|
||||
},
|
||||
|
||||
@ -512,6 +520,29 @@
|
||||
|
||||
});
|
||||
console.log(eventdata);
|
||||
// 留存分析模板特定留存流失按钮
|
||||
var retentionlist = [
|
||||
{'title':'留存','id':0},
|
||||
{'title':'流失','id':1},
|
||||
]
|
||||
if(eventdata.cat == 'retention'){
|
||||
X.laydropdown("#retention"+eventdata.id,retentionlist,function(d){
|
||||
console.log(d.id);
|
||||
console.log(eventdata);
|
||||
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);
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
if(eventdata['modeltype'] == 'echarts' && eventdata['modelsize'] != 'small' ){
|
||||
var myChart = echarts.init(document.getElementById(eventdata['id']));
|
||||
if(eventdata['cat'] == 'user_property'){
|
||||
@ -602,6 +633,7 @@
|
||||
},
|
||||
|
||||
//获取表格数据
|
||||
//渲染外框大小位置
|
||||
gettabledata:function(){
|
||||
$("#model-box").html("");//清空表格数据
|
||||
X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(d){
|
||||
|
@ -590,8 +590,8 @@
|
||||
titdata.push(tit);
|
||||
}
|
||||
titdata.unshift("日期",d.title);
|
||||
// X.fixedTable=function(id,type,classname,headdata){
|
||||
X.laytpldata("#table-fenxi-th-dot",titdata,".table-fenxi-th");
|
||||
|
||||
X.laytpldata("#table-fenxi-td-dot",tabledata,".table-fenxi-td");
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user