893 lines
38 KiB
JavaScript
893 lines
38 KiB
JavaScript
//cc
|
|
(function(){
|
|
X.pageLogic['dashboard'] = {
|
|
init :function(){
|
|
var me = this;
|
|
|
|
var popid='';
|
|
|
|
layui.element.init();
|
|
|
|
var userinfo = localStorage.getItem('loginData');
|
|
if(userinfo){
|
|
X.DATA["userinfo"] = JSON.parse(userinfo);
|
|
}else {
|
|
layer.msg('登录过期请重新登录!!!');
|
|
X.gourl("login");
|
|
return;
|
|
}
|
|
|
|
// 项目列表
|
|
// http://10.0.0.7:6789/
|
|
X.api("project/","get",{},function(d){
|
|
X.laytpldata('#layui-project-dot',d,'.layui-project-box');
|
|
X.DATA['projectarr'] = d;
|
|
X.DATA['projectid'] = X.DATA['projectid'] || d[0]["_id"];
|
|
X.DATA["game"] = X.DATA["game"] || d[0]["game"];
|
|
for(let i in d){
|
|
if(d[i]['game'] == X.DATA["game"]){
|
|
$(".projecttit").html(d[i]['name']);
|
|
}
|
|
}
|
|
me.freshMenu(X.DATA['projectid']);
|
|
// X.template("toptab","analysis-zhanwei",d);
|
|
});
|
|
|
|
// $(".username").html(X.DATA.userinfo.name);
|
|
|
|
// 选择项目
|
|
$(document).off('click','.selectproject').on('click','.selectproject',function(){
|
|
var id = $(this).attr("data-id");
|
|
var game = $(this).attr("data-game");
|
|
$(".projecttit").html($(this).html());
|
|
X.DATA['projectid'] = id;
|
|
X.DATA["game"] = game;
|
|
//侧边栏数据渲染
|
|
me.freshMenu(id);
|
|
// X.pageLogic.dashboard.freshMenu(id);
|
|
});
|
|
|
|
//a标签点击跳转事件
|
|
$(document).off('click','.layui-nav-child a').on('click','.layui-nav-child a',function(){
|
|
var url = $(this).attr("data-url");
|
|
X.gourl(url);
|
|
});
|
|
|
|
// 修改面板名
|
|
$(document).off('click','.layui-left-dd').on('click','.layui-left-dd',function(){
|
|
$(".tab-tit-box .tab-tit").html($(this).find("span").html());
|
|
X.DATA['dashboard_id'] = $(this).attr('data-id'); //看板id
|
|
$("#model-box").html("");
|
|
// 获取报表数据
|
|
me.gettabledata();
|
|
});
|
|
|
|
// 渲染添加按钮侧边栏下拉框
|
|
X.laydropdown("#chuangjian",X.DATA.createsidebar,function(d){
|
|
if(d.url){
|
|
X.open({
|
|
type: 1,
|
|
title: false,
|
|
closeBtn: 0,
|
|
shadeClose: true,
|
|
url: d.url
|
|
})
|
|
}
|
|
this.elem.val(d.title);
|
|
});
|
|
|
|
// 时间控件渲染
|
|
X.daterender(".tab-right-box .time",function(start, end, label) {
|
|
var startTime = start.format('YYYY-MM-DD')+ " "+ "00:00:00";
|
|
var endTime = end.format('YYYY-MM-DD')+ " "+ "23:59:59";
|
|
// console.log(startTime);
|
|
// console.log(endTime);
|
|
});
|
|
|
|
// X.echartsdata("#charts");
|
|
|
|
//更新时间按钮
|
|
$(".updatetime").click(function(){
|
|
X.updatatime(".updatetime");
|
|
me.gettabledata();
|
|
});
|
|
|
|
//管理我创建的看板
|
|
$(document).off('click','.sousuo-box .kbglkanbanbtn').on("click",".sousuo-box .kbglkanbanbtn",function(){
|
|
X.open({
|
|
type: 1,
|
|
title: false,
|
|
closeBtn: 0,
|
|
shadeClose: true,
|
|
offset: 'lt',
|
|
anim: 5,
|
|
skin: 'yourclass',
|
|
url: 'adminkanban'
|
|
})
|
|
});
|
|
|
|
//渲染时区下拉框
|
|
layui.dropdown.render({
|
|
elem: ".tab-tit-box .tab-shiqvshezhi"
|
|
,data: X.DATA.timezone
|
|
,click: function(obj){
|
|
$(".tab-tit-box .tab-shiqvshezhi").html(obj.title);
|
|
|
|
//数据更新
|
|
// this.elem.val(obj.title);
|
|
}
|
|
});
|
|
|
|
//筛选
|
|
$(document).off('click','.tab-right-box .tjsx').on("click",".tab-right-box .tjsx",function(){
|
|
// layer.msg('该功能暂未开放');
|
|
// return;
|
|
X.open({
|
|
type: 1,
|
|
title: false,
|
|
closeBtn: 0,
|
|
shade:0,
|
|
shadeClose: false,
|
|
offset: [120,270],
|
|
url: "screen",
|
|
extData : {}
|
|
})
|
|
})
|
|
|
|
// 侧边栏搜索
|
|
$('.sousuo-txt').bind('input propertychange', function() {
|
|
var tit = $(this).val()
|
|
var KanBanData = X.DATA['KanBanData'];
|
|
var ProjectData = X.DATA['ProjectData'];
|
|
if(tit != ''){
|
|
var ssKanBanData = [],
|
|
ssProjectData = []
|
|
for(let i in KanBanData){
|
|
if(KanBanData[i]['title'].indexOf(tit) != -1){
|
|
ssKanBanData.push(KanBanData[i]);
|
|
}else {
|
|
for(let j in KanBanData[i]['children']){
|
|
if(KanBanData[i]['children'][j]['title'].indexOf(tit) != -1 ){
|
|
var arr = KanBanData[i];
|
|
arr['children'].push(KanBanData[i]['children'][j]);
|
|
ssKanBanData.push(arr);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
for(let i in ProjectData){
|
|
for(let i in ProjectData){
|
|
if(ProjectData[i]['children'].length > 0){
|
|
if(ProjectData[i]['title'].indexOf(tit) != -1){
|
|
ssProjectData.push(ProjectData[i]);
|
|
}else {
|
|
var towProjectData = ProjectData[i]['children'];
|
|
for(let j in towProjectData){
|
|
if(towProjectData[j]['children'].length > 0){
|
|
if(towProjectData[j]['children'].length > 0){
|
|
var threProjectData = ProjectData[i]['children'][j]['children'];
|
|
for(let z in threProjectData){
|
|
if(threProjectData[z]['title'].indexOf(tit) != -1){
|
|
var arr = ProjectData[i];
|
|
arr['children'] = towProjectData[j];
|
|
arr['children']['children'] = threProjectData[z];
|
|
// arr['children'].push( threProjectData[z] )
|
|
ssProjectData.push(arr);
|
|
}
|
|
}
|
|
}
|
|
}else {
|
|
if(towProjectData[j]['title'].indexOf(tit) != -1 ){
|
|
var arr = ProjectData[i];
|
|
arr['children'].push(towProjectData[j]);
|
|
ssProjectData.push(arr);
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
}else {
|
|
if(ProjectData[i]['title'].indexOf(tit) != -1){
|
|
ssProjectData.push(ProjectData[i]);
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
X.laytpldata('#mykanban-dot',ssKanBanData,'#mykanban');
|
|
X.laytpldata('#kongjian-dot',ssProjectData,'#kongjian');
|
|
|
|
}else {
|
|
me.freshMenu(X.DATA['projectid']);
|
|
}
|
|
|
|
});
|
|
|
|
// 用户搜索
|
|
$("#search").click(function(){
|
|
layer.msg('该功能暂未开放');
|
|
return;
|
|
X.open({
|
|
type: 1,
|
|
title: false,
|
|
closeBtn: 0,
|
|
shadeClose: true,
|
|
skin: 'yourclass',
|
|
url: 'search'
|
|
})
|
|
});
|
|
|
|
$(document).off('click','.tab-right-box .shezhi').on("click",".tab-right-box .shezhi",function(){
|
|
layer.msg('该功能暂未开放');
|
|
return;
|
|
X.open({
|
|
type: 1,
|
|
title: false,
|
|
closeBtn: 0,
|
|
shadeClose: true,
|
|
offset: 'rt',
|
|
anim: 5,
|
|
skin: 'yourclass',
|
|
url: 'kanbanshezhi'
|
|
})
|
|
});
|
|
// 保存报表列表
|
|
$(document).off('click','.baobiao').on('click','.baobiao',function(){
|
|
X.parametersopen({},'kanbanadmin','rt',function(){
|
|
me.gettabledata();
|
|
})
|
|
});
|
|
|
|
//更新报表
|
|
$(document).off('click','.model-gengx').on('click','.model-gengx',function(){
|
|
var id = $(this).attr('data-id');
|
|
X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(d){
|
|
// return;
|
|
X.pageLogic['dashboard'].fillmodeldata(d[id]);
|
|
|
|
})
|
|
|
|
});
|
|
|
|
//报表跳转到详情s
|
|
$(document).off('click','.gobaobiaoinfo').on('click','.gobaobiaoinfo',function(){
|
|
var cat = $(this).attr('data-cat');
|
|
var id = $(this).attr('data-id');
|
|
var gourl='';
|
|
if(cat == 'event'){
|
|
gourl = 'analysis';
|
|
}else if(cat == 'retention'){
|
|
gourl = 'retained';
|
|
// layer.msg('暂未处理当前逻辑');
|
|
// return;
|
|
}else if(cat == 'ltv'){
|
|
gourl = 'ltvmodel';
|
|
// layer.msg('暂未处理当前逻辑');
|
|
// return;
|
|
}else if(cat == 'user_property'){
|
|
gourl = 'attribute';
|
|
}
|
|
X.gourl(gourl,'conetnt');//跳到对应的分析页面
|
|
X.DATA[cat+'id'] = id;
|
|
});
|
|
|
|
//复制单个报表
|
|
$(document).off('click','.model-fuzhi').on('click','.model-fuzhi',function(e) {
|
|
e.stopPropagation();
|
|
var id = $(this).attr('data-id')
|
|
X.parametersopen(id,'copyreport',"auto",function(d) {
|
|
|
|
})
|
|
});
|
|
|
|
//删除空间
|
|
$(document).off('click','.nav-space-bar').on('click','.nav-space-bar',function(e){
|
|
e.stopPropagation();
|
|
var id = $(this).attr('data-id');
|
|
X.parametersopen(id,"kongjianshezhi",'auto',function(d){
|
|
|
|
})
|
|
})
|
|
|
|
//删除看板
|
|
$(document).off('click','.nav-action-bar').on('click','.nav-action-bar',function(e){
|
|
e.stopPropagation();
|
|
var obj = $(this);
|
|
var offset = obj.offset();
|
|
var offsets = [ offset.top + 10,offset.left];
|
|
var id = $(this).attr('data-id');
|
|
X.parametersopen(X.DATA.taboperationdata['kanban'],"dropdownlist",offsets,function(d){
|
|
var arr = [];
|
|
arr.push(id);
|
|
if(d.click != 'del'){
|
|
X.parametersopen(arr,d.click,'auto',function(){
|
|
// me.updata(X.DATA['projectid']);
|
|
me.freshMenu();
|
|
})
|
|
}else {
|
|
layer.confirm('确认删除选中的看板吗?该操作不可恢复', {
|
|
btn: ['取消','删除 '] //按钮
|
|
}, function(){
|
|
//取消
|
|
layer.close(layer.index);
|
|
}, function(){
|
|
//删除
|
|
X.api("dashboard/delete",'post',{ids:arr},function(d){
|
|
layer.msg('删除成功');
|
|
layer.close(layer.index);
|
|
X.pageLogic.dashboard.freshMenu(X.DATA.projectid);//刷新侧边栏
|
|
me.updata(X.DATA.projectid);//刷新数据
|
|
})
|
|
});
|
|
}
|
|
|
|
});
|
|
});
|
|
|
|
//留存分析模板特定留存流失按钮
|
|
$(document).off('click',".kanben-retained-type").on('click',".kanben-retained-type",function(d){
|
|
var obj = $(this);
|
|
var offset = obj.offset();
|
|
var id = obj.attr('data-id');
|
|
X.parametersopen(X['DATA']['retentionlist'],'dropdownlist',[offset.top+obj.height(),offset.left],function(d){
|
|
var retentiontype = d.id;
|
|
var modelid = "retention"+id;
|
|
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,retentiontype);
|
|
}
|
|
}
|
|
})
|
|
})
|
|
});
|
|
|
|
//报表时间粒度修改
|
|
$(document).off('click','.model-screenlist').on('click','.model-screenlist',function(){
|
|
var obj = $(this);
|
|
var offset = obj.offset();
|
|
|
|
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');
|
|
|
|
X.parametersopen(X['DATA']['screenlist'][cat],'dropdownlist',[offset.top+obj.height(),offset.left],function(d){
|
|
console.log(d);
|
|
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]);
|
|
// });
|
|
// })
|
|
// });
|
|
|
|
},
|
|
|
|
// X.pageLogic.dashboard.freshMenu();
|
|
freshMenu : function(id){
|
|
//获取对应侧边栏
|
|
X.api('project/kanban',"post",{"_id":id},function (d){
|
|
X.DATA['KanBanData'] = d.kanban;
|
|
X.DATA['ProjectData'] = d.spaces;
|
|
X.laytpldata('#mykanban-dot',d.kanban,'#mykanban');
|
|
X.laytpldata('#kongjian-dot',d.spaces,'#kongjian');
|
|
});
|
|
},
|
|
|
|
//填充看板数据
|
|
//总体逻辑是:根据获取到的看板内容去先渲染放置的框,在根据不同分析模型处理对应的数据进行填充
|
|
fillmodeldata:function(d,id,type){//
|
|
X.api("ck/"+d['model']+"_model","post",{report_id:d['report_id']},function(val){
|
|
var eventdata = X.pageLogic['dashboard'].modeldata(d,val,type);
|
|
var data;
|
|
if(eventdata.length > 0){
|
|
for(var z in eventdata){
|
|
if(id){
|
|
//当有id时更新对应id看板内的内容
|
|
X.template("modeltable",id,eventdata[z],function(){
|
|
X.pageLogic['dashboard'].morefeatures(eventdata[z]);
|
|
});
|
|
}else {
|
|
//渲染模板和数据
|
|
X.template("modeltable",'model'+eventdata[z]['id'],eventdata[z],function(){
|
|
X.pageLogic['dashboard'].morefeatures(eventdata[z]);
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|
|
})
|
|
},
|
|
|
|
modeldata:function(d,val,type){
|
|
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"){
|
|
// 事件分析
|
|
if(d['graph_size'] == 'small'){
|
|
X.eventsmall(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['wow'] = Math.abs(val[0]['wow']);
|
|
data['chain_ratio'] = Math.abs(val[0]['chain_ratio']);
|
|
eventdata.push(data);
|
|
})
|
|
}else {
|
|
if(d['graph_type'] == 'table'){
|
|
//表格样式
|
|
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;
|
|
data['modelswitch'] = d['modelswitch'];
|
|
eventdata.push(data);
|
|
|
|
if(d['modelswitch']){
|
|
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;
|
|
}
|
|
})
|
|
|
|
}else if(d['graph_type'] == 'echarts'){
|
|
//图形
|
|
X.eventchart(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);
|
|
})
|
|
}
|
|
}
|
|
|
|
} else if(d['model'] == "retention"){
|
|
//留存分析
|
|
if(type){
|
|
val['retentiontype'] = type;
|
|
}else {
|
|
val['retentiontype'] = 0
|
|
}
|
|
if(d['graph_size'] == 'small'){
|
|
|
|
}else {
|
|
if(d['graph_type'] == 'table'){
|
|
X.retentiontable(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);
|
|
})
|
|
|
|
}else {
|
|
X.retentionchart(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);
|
|
})
|
|
}
|
|
}
|
|
}else if(d['model'] == 'ltv'){
|
|
//ltv模型
|
|
if(d['graph_type'] == 'table'){
|
|
X.ltvtable(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);
|
|
})
|
|
}else {
|
|
X.ltvtable(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);
|
|
})
|
|
}
|
|
}else if(d['model'] == 'user_property'){
|
|
// 属性分析
|
|
if(d['graph_type'] == 'table'){
|
|
X.userpropertytable(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'] = "";
|
|
eventdata.push(data);
|
|
})
|
|
}else {
|
|
X.userpropertychart(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'] = "";
|
|
eventdata.push(data);
|
|
})
|
|
}
|
|
}
|
|
return eventdata;
|
|
},
|
|
|
|
//画统计图和添加移入移出事件
|
|
morefeatures:function(eventdata){
|
|
|
|
//更多按钮配置下拉框
|
|
X.laydropdown(".model-gengduo",X['DATA']['gengduolist'],function(d){
|
|
if(d.id == 'shezhi'){
|
|
var data = {
|
|
id : eventdata.id,
|
|
modelsize : eventdata.modelsize,
|
|
modeltype : eventdata.modeltype,
|
|
modelswitch: eventdata.modelswitch
|
|
}
|
|
X.parametersopen(data,'setupbaobiao',"auto",function(d){
|
|
X.pageLogic['dashboard'].gettabledata();
|
|
})
|
|
}else if(d.id == 'export'){
|
|
X.download('ck/'+ eventdata.cat +'_model_export',{report_id:eventdata.id},eventdata.name);
|
|
}else {
|
|
|
|
layer.confirm('确认移除['+ eventdata.name + ']', {
|
|
btn: ['取消','删除 '] //按钮
|
|
}, function(){
|
|
//取消
|
|
layer.close(layer.index);
|
|
}, function(){
|
|
//删除
|
|
X.api('dashboard/del_report','post',{_id:X['DATA']['dashboard_id'],report_id:eventdata.id},function(){
|
|
X.pageLogic['dashboard'].gettabledata();
|
|
});
|
|
});
|
|
}
|
|
});
|
|
|
|
//设置时间
|
|
X.daterender(".model-times",function(start, end, label){
|
|
var id = 'times'+eventdata.id;
|
|
var startTime = start.format('YYYY-MM-DD')+ " "+ "00:00:00";
|
|
var endTime = end.format('YYYY-MM-DD')+ " "+ "23:59:59";
|
|
$("#"+id).html(startTime + ' - ' + endTime);
|
|
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']['startTime'] = startTime;
|
|
query['eventView']['endTime'] = endTime;
|
|
|
|
var sameday = Date.parse(new Date()) / 1000; //当天时间戳
|
|
|
|
var enddate = new Date(end.format('YYYY-MM-DD'));
|
|
var endmonth = Date.parse(enddate)/1000;
|
|
|
|
var startdate = new Date(start.format('YYYY-MM-DD'));
|
|
var startmonth = Date.parse(startdate)/1000;
|
|
query['eventView']['e_days'] = parseInt((sameday - endmonth)/86400);
|
|
query['eventView']['s_days'] = parseInt((sameday - startmonth)/86400);
|
|
|
|
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'],
|
|
query:query
|
|
}
|
|
|
|
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']));
|
|
if(eventdata['cat'] == 'user_property'){
|
|
var option = {
|
|
tooltip: {
|
|
trigger: 'axis',
|
|
axisPointer: {
|
|
type: 'cross',
|
|
label: {
|
|
backgroundColor: '#6a7985'
|
|
}
|
|
}
|
|
},
|
|
color: X.DATA.echartscolor,
|
|
// legend: {
|
|
// data: legendData
|
|
// },
|
|
grid: {
|
|
left: '2%',
|
|
right: '2%',
|
|
bottom: '2%',
|
|
top: '10%',
|
|
containLabel: true
|
|
},
|
|
xAxis: [
|
|
{
|
|
type: 'category',
|
|
axisTick: {show: false},
|
|
data: eventdata['xAxisData']
|
|
}
|
|
],
|
|
yAxis: [
|
|
{
|
|
type: 'value'
|
|
}
|
|
],
|
|
series: [{
|
|
data: eventdata['seriesData'],
|
|
type: 'bar',
|
|
|
|
}]
|
|
};
|
|
}else{
|
|
var option = {
|
|
color: X.DATA.echartscolor,
|
|
tooltip: {
|
|
trigger: 'axis',
|
|
axisPointer: {
|
|
type: 'cross',
|
|
label: {
|
|
backgroundColor: '#6a7985'
|
|
}
|
|
}
|
|
},
|
|
legend: {
|
|
type:'scroll',
|
|
bottom:0,
|
|
data: eventdata['legenddata'],
|
|
selected:eventdata['selected']
|
|
},
|
|
grid: {
|
|
left: '2%',
|
|
right: '2%',
|
|
bottom: '10%',
|
|
top: '5%',
|
|
containLabel: true
|
|
},
|
|
xAxis: [
|
|
{
|
|
type: 'category',
|
|
axisTick: {show: false},
|
|
data: eventdata['xAxisData']
|
|
}
|
|
],
|
|
yAxis: [
|
|
{
|
|
type: 'value'
|
|
}
|
|
],
|
|
series: eventdata['seriesData']
|
|
};
|
|
}
|
|
|
|
myChart.setOption(option,true);
|
|
};
|
|
|
|
},
|
|
|
|
//获取表格数据
|
|
//渲染外框大小位置
|
|
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 = {
|
|
sort:d[i]['sort'],
|
|
report_id:d[i]['report_id']
|
|
}
|
|
modellist.push(arr);
|
|
}
|
|
|
|
modellist.sort( X.compare("sort") );
|
|
for(let i in modellist){
|
|
for(let z in d){
|
|
if(modellist[i]['sort'] == d[z]['sort'] && modellist[i]['report_id'] == d[z]['report_id']){
|
|
//渲染模板和数据
|
|
X.laytpldata("#kanban-model-box-dot",d[z],null,function(html){
|
|
$('#model-box').append(html);
|
|
X.pageLogic['dashboard'].fillmodeldata(d[z]);
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|
|
})
|
|
},
|
|
|
|
};
|
|
})();
|