xfrontend/web/srczip/logic/ltvmodel.js
2021-09-18 15:05:22 +08:00

308 lines
13 KiB
JavaScript

(function(){
X.pageLogic['ltvmodel'] = {
init : function(){
X.template("grouped","xinwei-whole");
var data ={
"eventView":{
"cksql":"ltv",
"endTime":"2021-06-07 23:59:59",
"filts":[],
"groupBy":[],
"e_days":0,
"s_days":7,
"relation":"and",
"startTime":"2021-05-09 00:00:00",
"statType":"retention",
"timeParticleSize":"P1D",
"unitNum":7,
"quota":'#account_id'
},
"events":[
]
};
// 日期渲染
X.daterender("#retained-condition-date",function(start, end, label){
var startTime = start.format('YYYY-MM-DD')+ " "+ "00:00:00";
var endTime = end.format('YYYY-MM-DD')+ " "+ "23:59:59";
data['eventView']['startTime'] = startTime;
data['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;
data['eventView']['e_days'] = parseInt((sameday - endmonth)/86400);
data['eventView']['s_days'] = parseInt((sameday - startmonth)/86400);
retaineddata();
});
var time = $("#retained-condition-date").val();
var timearr = time.split(" ");
data['eventView']['startTime'] = timearr[0] + " "+"00:00:00";
data['eventView']['endTime'] = timearr[2]+" "+"23:59:59";
var groupitemeventsdata,filter_map;//分组项里的事件
X.api("data_auth/load_filter_props","post",{event_name:'pay'},function(val){
groupitemeventsdata = val;
X.api("data_auth/filter_map","get",{},function(d){
filter_map = d;
//从数据看板点击进来触发事件
if(X.DATA.ltvid && X.DATA.ltvid != ''){
var report_idarr = [];
report_idarr.push(X.DATA.ltvid);
X.api('report/read_report','post',{project_id:X.DATA.projectid,report_id:report_idarr},function(d){
backfilldata(d[0]);
})
}
})
});
//全局筛选
$(document).off('click','.analysis-overall-situation-add').on('click','.analysis-overall-situation-add',function(){
var screentypedata = groupitemeventsdata;
var drr={
"columnDesc":screentypedata[0]['category'][0]['title'],//事件中文显示
"columnName":screentypedata[0]['category'][0]['id'],//事件id
'data_type':screentypedata[0]['category'][0]['data_type'],//类型
'comparator_name':'等于',//默认等于
"comparator":'==',//符号id
"ftv":[],//条件
"strftv":'',//显示条件
"section":[-1,1],//区间
"table_type":screentypedata[0]['id'],
};
if(data['eventView']['filts'].length == 1){
layer.msg('此项只能添加一个');
return;
}
data['eventView']['filts'].push(drr);
if(data['eventView']['filts'].length > 1){
$(".analysis-overall-situation-left-guanxi").show();
}else{
$(".analysis-overall-situation-left-guanxi").hide();
}
X.template("globalfilter","xinwei-whole",data['eventView']['filts'],function(){
renderdate();
});
});
var listarr =[
{title:'角色',id:'#account_id'},
{title:'设备',id:'#distinct_id'},
// {title:'账号',id:'binduid'},
]
X.laydropdown('.eventsplit',listarr,function(d){
$('.eventsplit').html(d.title);
data['eventView']['quota'] = d.id;
// console.log(d);
});
//删除指定全局数据
$(document).off('click','.analysis-overall-situation-del').on('click','.analysis-overall-situation-del',function(){
var index = $(this).attr('data-index');
data['eventView']['filts'].splice(index,1);
if(data['eventView']['filts'].length > 1){
$(".analysis-overall-situation-left-guanxi").show();
}else{
$(".analysis-overall-situation-left-guanxi").hide();
}
X.template("globalfilter","xinwei-whole",data['eventView']['filts'],function(){
renderdate();
});
});
$(document).off('click','.analysis-overall-situation-attr').on('click','.analysis-overall-situation-attr',function(){
var obj = $(this);
var offset = obj.offset();
var index = obj.attr("data-index");
X.querycriteriapop(groupitemeventsdata,'category',offset.left,offset.top+obj.height(),function(val){
console.log(val);
obj.html(val.title);
data['eventView']['filts'][index]['columnDesc'] = val.title;
data['eventView']['filts'][index]['columnName'] = val.id;
data['eventView']['filts'][index]['data_type'] = val.type;
data['eventView']['filts'][index]['comparator_name'] = '等于';
data['eventView']['filts'][index]['comparator'] = '==';
data['eventView']['filts'][index]['table_type'] = val.table_type;
X.template("globalfilter","xinwei-whole",data['eventView']['filts'],function(){
renderdate();
});
})
});
$(document).off('click','.analysis-overall-situation-fuhao').on('click','.analysis-overall-situation-fuhao',function(){
var obj = $(this);
var offset = obj.offset();
var index = $(this).attr("data-index");
var type = data['eventView']['filts'][index]['data_type'];
console.log(type)
X.querycriteriapop(filter_map[type],'dropdownlist',offset.left,offset.top+obj.height(),function(val){
if(val != undefined){
obj.html(val.title);
data['eventView']['filts'][index]['comparator_name'] = val.title;
data['eventView']['filts'][index]['comparator'] = val.id;
if(val.id == "range"){
data['eventView']['filts'][index]['ftv'] = [-1,1];
}
X.template("globalfilter","xinwei-whole",data['eventView']['filts'],function(){
renderdate();
});
}
})
});
var render_date_index;//且用户符合时间选择框的index
$(document).off('click','.analysis-overall-situation-date').on('click','.analysis-overall-situation-date',function(){
var index = $(this).attr('data-index');
render_date_index = index;
// console.log(index);
});
// 渲染过滤项时间框
function renderdate(){
lay('.analysis-overall-situation-date').each(function(){
layui.laydate.render({
elem: this
,type:"datetime"
,trigger: 'click'
,done: function(value, date, endDate){
data['eventView']['filts'][render_date_index]['strftv'] = value;
var datearr = [];
datearr.push(value)
data['eventView']['filts'][render_date_index]['ftv'] = datearr;
}
});
});
};
$(document).off('click','.analysis-overall-situation-input input').on('blur','.analysis-overall-situation-input input',function(){
var val = $(this).val();
var index = $(this).attr("data-index");
var valarr = val.split(",");
data['eventView']['filts'][index]['strftv'] = val;
data['eventView']['filts'][index]['ftv']= valarr;
});
$(document).off('click','.analysis-overall-situation-input2 input').on('blur','.analysis-overall-situation-input2 input',function(){
var name = $(this).attr('name');
var val = $(this).val();
var index = $(this).attr("data-index");
if(name == 'start'){
data['eventView']['filts'][index]['ftv'][0] = val;
data['eventView']['filts'][index]['section'][0] = val;
data['eventView']['filts'][index]['ftv'].push(val);
}else {
data['eventView']['filts'][index]['ftv'][1] = val;
data['eventView']['filts'][index]['section'][1] = val;
data['eventView']['filts'][index]['ftv'].push(val);
}
});
// sql语句显示
$(document).off('click','.sqlquery').on('click','.sqlquery',function(){
var obj = $(this);
var offset = obj.offset();
X.querycriteriapop(data,'conditionquery',offset.left - 410,offset.top+obj.height(),function(){
})
});
// 时间粒度
var timeParticleSizearr = [
{'title':'当日','id':'1'},
{'title':'次日','id':'2'},
{'title':'7日','id':'7'},
{'title':'14日','id':'14'},
{'title':'30日','id':'30'},
];
X.laydropdown('.analtsis-timeParticleSize',timeParticleSizearr,function(d){
console.log(d);
$(".analtsis-timeParticleSize").html(d.title);
data['eventView']['unitNum'] = parseInt(d.id);
retaineddata();
});
// 计算按钮
$(document).off('click','.analysis-calculation').on('click','.analysis-calculation',function(){
retaineddata()
});
function retaineddata(){
var dataArr = {
eventView: data.eventView,
events: data.events
}
X.api("ck/ltv_model","post",dataArr,function(d){
if(d.title.length == 0){
layer.msg('无数据');
return;
}else{
X.laytpldata("#table-fenxi-th-dot",d.title,".table-fenxi-th");
X.laytpldata("#table-fenxi-td-dot",d.rows,".table-fenxi-td");
}
})
};
var baobiaodata;//已存报表
$(document).off('click','.analysis-navigation-bar-right-img-baobiao').on('click','.analysis-navigation-bar-right-img-baobiao',function(){
X.parametersopen(data['eventView']['cksql'],'savedbaobiao','rt',function(d){
console.log(d);
if(d){
backfilldata(d);
}
})
});
function backfilldata(d){
data = d.query;
baobiaodata = d;
var time = $("#retained-condition-date").val();
var timearr = time.split(" ");
data['eventView']['startTime'] = timearr[0] + " "+"00:00:00";
data['eventView']['endTime'] = timearr[2]+" "+"23:59:59";
X.template("globalfilter","xinwei-whole",data['eventView']['filts'],function(){
renderdate();
});
retaineddata();
};
$(document).off('click','.analysis-savereport').on('click','.analysis-savereport',function(){
if(baobiaodata != '' && baobiaodata != undefined && baobiaodata != null){
X.parametersopen(baobiaodata,'savereport','auto');
}else{
X.parametersopen(data,'savereport','auto');
}
});
// 返回
$(document).off('click','.analysis-fanhui').on('click','.analysis-fanhui',function(){
X.gourl("dashboard");
// return;
});
// 下载
$(document).off('click','.download-table').on('click','.download-table',function(){
// console.log(11111);
X.download('ck/ltv_model_export',data,'事件分析');
});
}
};
})();