//cc
(function(){
X.pageLogic['dashboard'] = {
init :function(){
var me = this;
var popid='';
layui.element.init();
// 项目列表
// 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");
// X.echartsdata("#charts");
//更新时间按钮
$(".updatetime").click(function(){
X.updatatime(".updatetime");
});
//管理我创建的看板
$(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){
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='';
//
事件分析
// 留存分析
// LTV模型
// 漏斗分析
// 分布分析
// 路径分析
// SQL查询
if(cat == 'event'){
gourl = 'analysis';
}else if(cat == 'retention'){
gourl = 'retained';
// layer.msg('暂未处理当前逻辑');
// return;
}else if(cat == 'ltv'){
gourl = 'ltvmodel';
// layer.msg('暂未处理当前逻辑');
// return;
}
X.gourl(gourl,'conetnt');//跳到对应的分析页面
X.DATA[cat+'id'] = id;
});
// 渲染下拉框
$(document).off('click','.nav-action-bar').on('click','.nav-action-bar',function(e){
e.stopPropagation();
console.log('更多操作按钮');
});
},
// 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){
// console.log(d);
X.api("ck/"+d['model']+"_model","post",{report_id:d['report_id']},function(val){
var eventdata=[];
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'];
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'];
eventdata.push(data);
})
}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'];
eventdata.push(data);
})
}
}
} else if(d['model'] == "retention"){
//留存分析
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'];
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'];
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'];
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'];
eventdata.push(data);
})
}
}
if(eventdata.length > 0){
for(var z in eventdata){
if(id){
X.template("modeltable",id,eventdata[z],function(){
X.pageLogic['dashboard'].morefeatures(eventdata[z]);
});
}else {
X.laytpldata("#kanban-model-table-dot",eventdata[z],null,function(html){
$('#model-box').append(html);
X.pageLogic['dashboard'].morefeatures(eventdata[z]);
});
}
}
}
})
},
//画统计图和添加移入移出事件
morefeatures:function(eventdata){
$(".layui-card").mouseenter(function () {
var classname = $(this).attr('class');
if(classname.indexOf("tool-show") == -1){
$(this).addClass('tool-show');
}
});
$(".layui-card").mouseleave(function () {
var classname = $(this).attr('class');
if(classname.indexOf("tool-show") != -1){
$(this).removeClass('tool-show');
}
});
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){
// console.log(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);
}
}
})
})
});
if(eventdata['modeltype'] == 'echarts' && eventdata['modelsize'] != 'small' ){
var myChart = echarts.init(document.getElementById(eventdata['id']));
var option = {
title: {
text: ''
},
color: X.DATA.echartscolor,
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross',
label: {
backgroundColor: '#6a7985'
}
}
},
legend: {
type:'scroll',
data: eventdata['legenddata']
},
grid: {
left: '2%',
right: '2%',
bottom: '2%',
top: '10%',
containLabel: true
},
xAxis: [
{
type: 'category',
boundaryGap: 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){
for(let z in d){
X.pageLogic['dashboard'].fillmodeldata(d[z]);
}
})
},
};
})();