This commit is contained in:
罗松柏 2021-07-27 19:48:25 +08:00
parent d4f7854aa6
commit ed48c929e3
15 changed files with 1405 additions and 185 deletions

View File

@ -29,6 +29,7 @@
<dl class="layui-nav-child">
<dd><a class="ajax-content" href="analysis" data-id="conetnt">事件分析</a></dd>
<dd><a class="ajax-content" href="retained" data-id="conetnt">留存分析</a></dd>
<dd><a class="ajax-content" href="ltvmodel" data-id="conetnt">LTV模型</a></dd>
<dd><a class="ajax-content" href="funnelanalysis" data-id="conetnt">漏斗分析</a></dd>
<dd><a class="ajax-content" href="distribution" data-id="conetnt">分布分析</a></dd>
<dd><a class="ajax-content" href="routeanalysis" data-id="conetnt">路径分析</a></dd>
@ -169,7 +170,11 @@
</div>
<div style="padding: 15px; height: calc(100% - 17px); overflow-y:auto; ">
<div id="chart-box">
<div class="layui-row layui-col-space15" id="model-box" style="width: 100%; height: 780px;">
<!-- <div class="layui-row layui-col-space15" id="model-box" style="width: 100%; height: 780px;">
</div> -->
<!-- 图表数据显示区域 -->
<!-- onmousemove="moveaction('data1')" onmouseout="outaction('data1')" -->
@ -580,7 +585,7 @@
</li>
{{# } else { }}
<dd class="layui-left-dd" data-id="{{items._id}}"><a href="javascript:;" class="fontcolor second category"> <span>{{items.name}} </span>
<img src="./static/img/gengduo.png" alt=""></a>
<img src="./static/img/gengduo.png" alt="" class="nav-action-bar"></a>
</dd>
{{# } }}
{{# }); }}
@ -589,4 +594,222 @@
{{# } }}
{{# }); }}
</script>
</script>
<!-- 看板模板 -->
<script id="kanban-model-table-dot" type="text/html">
{{# if(d.modelsize === "small"){ }}
<div class="layui-col-md3">
<div class="layui-card">
<div class="row-top">
<div class="row-tit">
<p><a href="#">{{d.name}}</a></p>
</div>
<div class="control">
<div class="action-box" >
<div class="tishi" title="更新">
<img src="./static/img/gengxin.png" />
</div>
<div class="tishi" title="探索">
<img src="./static/img/fangda.png" />
</div>
<div class="tishi" title="更多">
<img src="./static/img/gengduo.png" />
</div>
</div>
</div>
</div>
<div class="condition-box">
<div class="time-cond">
<span>{{d.date}}</span>
</div>
</div>
<div class="small-data-box">{{d.num}}</div>
<div class="small-proportion">
{{# if(d.thedaypropsize === "+"){ }}
<div class="proportion-data">较环比 <div class="sanjiao"></div><span>{{d.thedayprop}}%</span></div>
{{# } else { }}
<div class="proportion-data">较环比 <div class="sanjiao fu"></div><span class="funum">{{d.thedayprop}}%</span></div>
{{# } }}
{{# if(d.weekpropsize === "+"){ }}
<div class="proportion-data">较同比 <div class="sanjiao"></div><span>{{d.weekprop}}%</span></div>
{{# } else { }}
<div class="proportion-data">较同比 <div class="sanjiao fu"></div><span class="funum">{{d.weekprop}}%</span></div>
{{# } }}
</div>
</div>
</div>
{{# } else { }}
{{# if(d.modeltype === "table"){ }}
{{# if(d.modelsize === "large"){ }}
<div class="layui-col-md12">
{{# } else { }}
<div class="layui-col-md6">
{{# } }}
<!-- <div class="layui-col-md6" style="float: none;"> -->
<div class="layui-card">
<div class="row-top">
<div class="row-tit">
<p><a href="#">{{d.name}}</a></p>
</div>
<div class="control">
<div class="action-box" >
<div class="tishi" title="更新">
<img src="./static/img/gengxin.png" />
</div>
<div class="tishi" title="探索">
<img src="./static/img/fangda.png" />
</div>
<div class="tishi" title="更多">
<img src="./static/img/gengduo.png" />
</div>
</div>
</div>
</div>
<div class="condition-box">
<div class="time-cond">
<span>
过去7天
</span>
<div class="xian"></div>
<span>按天</span>
</div>
<div class="chart control">
<img src="./static/img/qvshitu.png" /> <span>趋势图</span>
</div>
</div>
<div class="table-box">
<table class="table-fenxi-box">
<thead>
<tr class="table-fenxi-th">
{{# layui.each(d.titledata, function(indexs, items) { }}
<th>{{items}}</th>
{{# }); }}
</tr>
</thead>
{{# if(d.cat === "event"){ }}
<tbody class="table-fenxi-td">
{{# layui.each(d.condata, function(indexs, items) { }}
<tr >
{{# layui.each(items, function(indexss, itemss) { }}
<td>{{itemss}}</td>
{{# }); }}
</tr>
{{# }); }}
</tbody>
{{# } else if(d.cat === "retained"){ }}
<tbody class="table-fenxi-td">
{{# layui.each(d.condata, function(indexs, items) { }}
<tr >
<td>{{items.date}}</td>
<td>{{items.d0}}</td>
{{# layui.each(items.data, function(indexss, itemss){ }}
<td>
<p>{{itemss.n}}</p>
<p>{{itemss.p}}%</p>
</td>
{{# }); }}
</tr>
{{# }); }}
</tbody>
{{# } else if(d.cat === "ltv"){ }}
<tbody class="table-fenxi-td">
{{# layui.each(d.condata, function(indexs, items) { }}
<tr >
{{# layui.each(items, function(indexss, itemss){ }}
<td>{{indexss}}</td>
{{# }); }}
</tr>
{{# }); }}
</tbody>
{{# } }}
</table>
</div>
</div>
</div>
{{# } else { }}
{{# if(d.modelsize === "large"){ }}
<div class="layui-col-md12">
{{# } else { }}
<div class="layui-col-md6">
{{# } }}
<div class="layui-card">
<div class="row-top">
<div class="row-tit">
<p><a href="#">{{d.name}}</a></p>
<div class="tishi" title="活跃用户可以通过“登录.触发用户数”来进行计算,即有登录行为的用户的去重数.">
<img src="./static/img/tishi.png" />
</div>
</div>
<div class="control">
<div class="action-box" >
<div class="tishi" title="更新">
<img src="./static/img/gengxin.png" />
</div>
<div class="tishi" title="探索">
<img src="./static/img/fangda.png" />
</div>
<div class="tishi" title="更多">
<img src="./static/img/gengduo.png" />
</div>
</div>
</div>
</div>
<div class="condition-box">
<div class="time-cond">
<span>过去7天</span>
<div class="xian"></div>
<span>按天</span>
</div>
<div class="chart control">
<img src="./static/img/qvshitu.png" /> <span>趋势图</span>
</div>
</div>
<p class="dqtime">{{d.date}}</p>
<div class="data-box">
<div style="display: flex; align-items: center;">
<div class="data-num">{{d.sameday}}<span></span></div>
<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>
</div>
<div class="thesum">
<div class="thesum-box">
<div class="thesum-data">总和 <span>{{d.sum}}</span></div>
<div class="thesum-data">均值 <span>{{d.mean}}</span></div>
</div>
</div>
</div>
<div class="echarts-box">
<div id="{{d.id}}" class="echarts"></div>
</div>
</div>
</div>
{{# } }}
{{# } }}
</script>

View File

@ -10,18 +10,18 @@
<form class="layui-form" action="" lay-filter="kanbantypeexample">
<div class="layui-form-item">
<label class="layui-form-label">模板类型</label>
<div class="layui-input-block">
<input type="radio" name="graph_type" value="table" title="表格展示" checked="">
<input type="radio" name="graph_type" value="echarts" title="图形展示">
<div class="layui-input-block kanbantypeset-box-type">
<input type="radio" name="graph_type" value="table" title="表格展示" checked="" lay-filter="graph_type">
<input type="radio" name="graph_type" value="echarts" title="图形展示" lay-filter="graph_type">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">显示大小</label>
<div class="layui-input-block">
<input type="radio" name="graph_size" value="large" title="大图" checked="">
<input type="radio" name="graph_size" value="in" title="中图">
<input type="radio" name="graph_size" value="small" title="小图">
<input type="radio" name="graph_size" value="large" title="大图" checked="" lay-filter="graph_size">
<input type="radio" name="graph_size" value="in" title="中图" lay-filter="graph_size">
<input type="radio" name="graph_size" value="small" title="小图" lay-filter="graph_size">
</div>
</div>
</form>
@ -37,3 +37,4 @@
</div>

140
web/pages/ltvmodel.html Normal file
View File

@ -0,0 +1,140 @@
<!-- LTV模型 -->
<div class="analysis-zhanwei">
</div>
<div class="analysis-navigation-bar-box">
<div class="analysis-navigation-bar">
<div class="analysis-navigation-bar-left">
<span>LTV模型</span><img src="./static/img/capytishi.png" title=""/>
</div>
<div class="analysis-navigation-bar-right">
<div class="analysis-navigation-bar-right-jisuan">
<span>TA用户ID</span>
</div>
<div class="analysis-navigation-bar-right-img" title="最后更新时间2021-04-29 14:44:39">
<img src="./static/img/gengxin.png">
</div>
<div class="analysis-navigation-bar-right-img sqlquery" title="查看条件代码">
<i class="iconfont" style="font-size: 18px; color: #67729d;">&#xe727;</i>
</div>
<div class="analysis-navigation-bar-right-img" title="以页面格式下载全量数据">
<img src="./static/img/xiazai.png">
</div>
<div class="analysis-navigation-bar-right-img analysis-navigation-bar-right-img-baobiao" title="报表">
<img src="./static/img/baobiao2.png">
</div>
</div>
</div>
<div class="analysis-bg">
<!-- 左侧条件筛选区域 -->
<div class="analysis-con-left">
<!-- 伸缩按钮 -->
<div class="analysis-con-left-shrink"></div>
<div class="root___2a4tb">
<div class="block___2n0We analysis-overall" style="display: block;">
<div class="analysis-con-left-title">全局筛选</div>
<div class="analysis-con-left-screen-box">
<div class="analysis-overall-situation-box">
<div class="analysis-overall-situation-left-box">
<div class="analysis-overall-situation-left-xian"></div>
<div class="analysis-overall-situation-left-guanxi"></div>
</div>
<div class="analysis-overall-situation-list-box" id="xinwei-whole">
</div>
</div>
<div class="analysis-foot___P797w">
<span class="analysis-overall-situation-add">
<img src="./static/img/fenzu.png">
添加条件
</span>
</div>
</div>
</div>
</div>
<div class="analysis-but-box">
<div class="analysis-savereport">保存报表</div>
<div class="analysis-calculation">计 算</div>
</div>
</div>
<!-- 右边图表显示区域 -->
<div class="analysis-con-right">
<div class="analtsis-con-box">
<div class="analtsis-con-right-box">
<div class="analtsis-con-right-top-title">
玩法参与情况
</div>
<div class="analtsis-condition-box">
<div class="analtsis-time-box">
<div class="analtsis-condition" > <input id="retained-condition-date" readonly="readonly"></input> </div>
<div class="analtsis-condition analtsis-timeParticleSize">7天</div>
</div>
<div class="analtsis-condition-right-box">
<!-- <div class="analtsis-condition">指标</div>
<div class="analtsis-condition">分组</div> -->
<!-- <div class="analtsis-chart-switch-box">
<div class="analtsis-chart-switch select-chart" title="数据报表"> <i class="iconfont" style="font-size: 18px; ">&#xe670;</i> </div>
<div class="analtsis-chart-switch " title="第N日留存"> <i class="iconfont" style="font-size: 18px; ">&#xe601;</i> </div>
<div class="analtsis-chart-switch" title="每日留存"> <i class="iconfont" style="font-size: 18px; ">&#xe601;</i> </div>
</div> -->
</div>
</div>
<!-- 统计图 -->
<div class="analysis-echarts" id="analysis-echarts" style="display: none;"></div>
<div class="table-div-box">
<table class="table-fenxi-box">
<thead>
<tr class="table-fenxi-th">
</tr>
</thead>
<tbody class="table-fenxi-td">
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
<script id="table-fenxi-th-dot" type="text/html">
{{# layui.each(d, function(index, item){ }}
<th>{{item}}</th>
{{# }); }}
</script>
<script id="table-fenxi-td-dot" type="text/html">
{{# layui.each(d, function(index, item){ }}
<tr >
{{# layui.each(item, function(indexs, items){ }}
<td>{{items}}</td>
{{# }); }}
</tr>
{{# }); }}
</script>

View File

@ -1,8 +1,6 @@
<div class="layui-row layui-col-space15" id="model-box" style="width: 100%; height: 780px;">
</div>
<script id="kanban-model-table-dot" type="text/html">
{{# if(d.modelsize === "small"){ }}
@ -102,15 +100,35 @@
{{# }); }}
</tr>
</thead>
<tbody class="table-fenxi-td">
{{# layui.each(d.condata, function(indexs, items) { }}
{{# if(d.cat === "event"){ }}
<tbody class="table-fenxi-td">
{{# layui.each(d.condata, function(indexs, items) { }}
<tr >
{{# layui.each(items, function(indexss, itemss) { }}
<td>{{itemss}}</td>
{{# }); }}
</tr>
{{# }); }}
</tbody>
{{# } else { }}
<tbody class="table-fenxi-td">
{{# layui.each(d.condata, function(indexs, items) { }}
<tr >
{{# layui.each(items, function(indexss, itemss) { }}
<td>{{itemss}}</td>
<td>{{items.date}}</td>
<td>{{items.d0}}</td>
{{# layui.each(items.data, function(indexss, itemss){ }}
<td>
<p>{{itemss.n}}</p>
<p>{{itemss.p}}%</p>
</td>
{{# }); }}
</tr>
{{# }); }}
</tbody>
{{# }); }}
</tbody>
{{# } }}
</table>
</div>

View File

@ -16,6 +16,7 @@
<option value="4">属性分析</option>
<option value="trace">路径分析</option>
<option value="scatter">分布分析</option>
<option value="ltv">LTV模型</option>
<option value="7">SQL查询</option>
</select>
</div>

587
web/src/x.min.js vendored
View File

@ -497,13 +497,13 @@ var X = window.X || {
X.eventsmall = function(data,callback){
var date,num,thedayprop,weekprop,thedaypropsize,weekpropsize; //时间,当天数量,与前天对比,与上个星期对比,与前天对比正负,与上个星期对比正负
console.log(data);
for(let i in data){
if(data[i]['groups']['length'] == 0){
// console.log(data);
// for(let i in data){
// if(data[i]['groups']['length'] == 0){
}
}
// }
// }
var length = data[0]['date_range'].length - 1;
date = data[0]['date_range'][length];
num = data[0]['values'][0][length];
@ -535,7 +535,129 @@ var X = window.X || {
weekpropsize:weekpropsize
}
callback && callback(dataArr);
}
};
X.retentiontable=function(data,callback){
var tabledata=[];
for(let i in data['summary_values']){
var arr = {
date: i,
d0:data['summary_values'][i]['d0'],
data:[]
}
for(let j in data['summary_values'][i]["n"]){
var nrr = {
n:0,
p:0
}
nrr["n"] = data['summary_values'][i]["n"][j];
nrr["p"] = data['summary_values'][i]["p"][j]
arr['data'].push(nrr);
}
tabledata.push(arr);
}
var titdata = [];
for(let i in data['days']){
var tit = "第" + i + "日";
titdata.push(tit);
}
titdata.unshift("日期",data.title);
var dataArr = {
titledata:titdata,
condata:tabledata
}
callback && callback(dataArr);
};
X.retentionchart = function(d,callback){
var arr = {};
var legenddata = [];
var seriesData = [];
var xAxisData = [];
var date=0,sum=0,mean=0,sameday=0;
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]);
xAxisData.push(i);
}
seriesData = {
type: 'line',
data: arr
}
console.log(arr);
for(let i in arr){
sum = sum + arr[i];
sameday = arr[i];
}
console.log(mean);
date = '近'+xAxisData.length+'天时间';
mean = (sum / arr.length).toFixed(2);
}else {
var timearr = [];
for(let i in d.values){
timearr.push(i);
for(let j in d.values[i]){
if(arr[j]){
arr[j][i] = d.values[i][j]['p'];
}else {
arr[j]=[];
arr[j][i] = d.values[i][j]['p'];
}
}
}
var ydata = {};
for(let j in arr){
if(!ydata[j]){
ydata[j] = [];
}
for( let i in timearr ){
ydata[j].push("");
for(let z in arr[j]){
if(timearr[i] == z){
var index = arr[j][z].length - 1;
ydata[j][i] =arr[j][z][index];
}
}
}
}
for(let i in ydata){
legenddata.push(i);
var arr = {
name: i,
type: 'line',
data: ydata[i]
}
seriesData.push(arr)
}
}
var dataArr = {
xAxisData:xAxisData,
legenddata:legenddata,
seriesData:seriesData,
date:date,
sum:sum,
mean:mean,
sameday: sameday
}
// console.log(dataArr);
callback && callback(dataArr);
};
X.ltvtable=function(data,callback){
var dataArr = {
titledata:data.title,
condata:data.rows
}
callback && callback(dataArr);
};
// 分组项
// X.grouped=function(data,id){
@ -1457,7 +1579,7 @@ var X = window.X || {
"filts":[],//过滤项
"condrelation":'and',
"customEvent":'',
"eventNameDisplay":' '//重命名指标
"eventNameDisplay":''//重命名指标
}
data.events.push(defaultindicator);
X.laytpldata("#analysis-con-left-screen-list-dot",data.events,".analysis-con-left-screen-list-box");
@ -1503,7 +1625,7 @@ var X = window.X || {
//已存报表
var baobiaodata;
$(document).off('click','.analysis-navigation-bar-right .analysis-navigation-bar-right-img-baobiao').on('click','.analysis-navigation-bar-right .analysis-navigation-bar-right-img-baobiao',function(){
$(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){
@ -1781,7 +1903,7 @@ var X = window.X || {
"filts":[],//过滤项
"condrelation":'and',
"customEvent":'',
"eventNameDisplay":' '//重命名指标
"eventNameDisplay":''//重命名指标
}
data['events'].push(defaultindicator);
@ -3057,16 +3179,16 @@ var X = window.X || {
});
//a标签点击跳转事件
$(document).on('click','.layui-nav-child a',function(){
$(document).off('click','.layui-nav-child a').on('click','.layui-nav-child a',function(){
var url = $(this).attr("data-url");
X.gourl(url);
});
// 修改面板名
$(document).on('click','.layui-left-dd',function(){
$(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
$("#chart-box").html("");
$("#model-box").html("");
// 获取报表数据
me.gettabledata();
});
@ -3241,6 +3363,11 @@ var X = window.X || {
// X.laydropdown('.kanbanwenjianimg',X.DATA.taboperationdata[type]);
// }
$(document).off('click','.nav-action-bar').on('click','.nav-action-bar',function(e){
e.stopPropagation();
// console.log(111);
})
@ -3259,16 +3386,18 @@ var X = window.X || {
// 获取表格数据
gettabledata:function(){
$("#model-box").html("");//清空表格数据
X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(d){
var eventdata=[];
var index = d.length;
for(let z in d){
(function (i, model) { // 注意这里是形参
setTimeout(function () {
X.api("ck/"+model+"_model","post",{report_id:d[i]['report_id']},function(val){
var eventdata=[];
if(model == "event"){
// 事件分析
if(d[i]['graph_size'] == 'small'){
@ -3287,6 +3416,7 @@ var X = window.X || {
data['modeltype'] = d[i]['graph_type'];
data['id'] = d[i]['report_id'];
data['modelsize'] = d[i]['graph_size'];
data['cat'] = model;
eventdata.push(data);
})
}else if(d[i]['graph_type'] == 'echarts'){
@ -3301,65 +3431,109 @@ var X = window.X || {
}
}
} else if(model == "retention"){
if(d[i]['graph_size'] == 'small'){
}else {
if(d[i]['graph_type'] == 'table'){
X.retentiontable(val,function(data){
data['name'] = d[i]['name'];
data['modeltype'] = d[i]['graph_type'];
data['id'] = d[i]['report_id'];
data['modelsize'] = d[i]['graph_size'];
data['cat'] = model;
eventdata.push(data);
})
}else {
X.retentionchart(val,function(data){
data['name'] = d[i]['name'];
data['modeltype'] = d[i]['graph_type'];
data['id'] = d[i]['report_id'];
data['modelsize'] = d[i]['graph_size'];
eventdata.push(data);
})
}
}
}else if(model == 'ltv'){
if(d[i]['graph_type'] == 'table'){
X.ltvtable(val,function(data){
data['name'] = d[i]['name'];
data['modeltype'] = d[i]['graph_type'];
data['id'] = d[i]['report_id'];
data['modelsize'] = d[i]['graph_size'];
data['cat'] = model;
eventdata.push(data);
})
}else {
X.ltvchart(val,function(data){
data['name'] = d[i]['name'];
data['modeltype'] = d[i]['graph_type'];
data['id'] = d[i]['report_id'];
data['modelsize'] = d[i]['graph_size'];
eventdata.push(data);
})
}
}
index --;
if(index <= 0){
X.template("modeltable","chart-box",eventdata,function(){
for(let i in eventdata){
if(eventdata[i]['modeltype'] == 'echarts' && eventdata[i]['modelsize'] != 'small' ){
var myChart = echarts.init(document.getElementById(eventdata[i]['id']));
var option = {
title: {
text: ''
},
color: X.DATA.echartscolor,
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross',
label: {
backgroundColor: '#6a7985'
}
if(eventdata.length > 0){
for(var z in eventdata){
X.laytpldata("#kanban-model-table-dot",eventdata[z],null,function(html){
$('#model-box').append(html);
});
if(eventdata[z]['modeltype'] == 'echarts' && eventdata[z]['modelsize'] != 'small' ){
var myChart = echarts.init(document.getElementById(eventdata[z]['id']));
var option = {
title: {
text: ''
},
color: X.DATA.echartscolor,
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross',
label: {
backgroundColor: '#6a7985'
}
},
legend: {
type:'scroll',
data: eventdata[i]['legenddata']
},
grid: {
left: '2%',
right: '2%',
bottom: '2%',
top: '10%',
containLabel: true
},
xAxis: [
{
type: 'category',
boundaryGap: false,
data: eventdata[i]['xAxisData']
}
],
yAxis: [
{
type: 'value'
}
],
series: eventdata[i]['seriesData']
};
myChart.setOption(option,true);
}
}
},
legend: {
type:'scroll',
data: eventdata[z]['legenddata']
},
grid: {
left: '2%',
right: '2%',
bottom: '2%',
top: '10%',
containLabel: true
},
xAxis: [
{
type: 'category',
boundaryGap: false,
data: eventdata[z]['xAxisData']
}
],
yAxis: [
{
type: 'value'
}
],
series: eventdata[z]['seriesData']
};
myChart.setOption(option,true);
}
});
}
}
})
}, 500 * i); // 还是每秒执行一次,不是累加的
}, 0 * i); // 还是每秒执行一次,不是累加的
})(z, d[z]['model']) // 注意这里是实参,这里把要用的参数传进去
}
@ -5285,17 +5459,17 @@ var X = window.X || {
X.laytpldata('#to-added-baobiao-dot',d,'.to-added-baobiao');
var datalist = [
{title:'全部',id:'0'},
{title:'事件分析',id:'event'},
{title:'留存分析',id:'retention'},
{title:'漏斗分析',id:'funnel'},
{title:'属性分析',id:'0'},
{title:'分布分析',id:'scatter'},
{title:'SQL查询',id:'0'}
{title:'事件',id:'event'},
{title:'留存',id:'retention'},
{title:'漏斗',id:'funnel'},
{title:'属性',id:'0'},
{title:'分布',id:'scatter'},
{title:'SQL',id:'0'}
]
X.laydropdown('#kanbanadmin-ss-right',datalist,function(d){
$('#kanbanadmin-ss-right span').html(d.title);
updatalist(d.title);
updatalist(d.id);
})
toadddataprocessing();
})
@ -5523,12 +5697,14 @@ var X = window.X || {
this.parms = parms;
this.callback = parms.callback;
var listdata = parms.extData;
layui.form.render();
if(listdata){
layui.form.val('kanbantypeexample',{
graph_type: listdata.graph_type || 'table',
graph_size: listdata.graph_size || 'in'
})
});
}
$(document).off('click','.adduser-top-box img').on('click','.adduser-top-box img',function(){
@ -5537,14 +5713,35 @@ var X = window.X || {
$(document).off('click','.kanbantypeset-but-box .adduser-btn').on('click','.kanbantypeset-but-box .adduser-btn',function(){
layer.close(parms.layIndex);
})
});
layui.form.on('radio(graph_type)', function (data) {
if(listdata.model == 'ltv'){
if(data.value == "echarts"){
layui.form.val('kanbantypeexample',{
graph_type: listdata.graph_type || 'table'
});
layer.msg('ltv没有图像,请选择其他方式展示');
}
}
});
layui.form.on('radio(graph_size)', function (data) {
if(listdata.model == 'ltv'){
if(data.value == "small"){
layui.form.val('kanbantypeexample',{
graph_size: listdata.graph_size || 'table'
});
layer.msg('ltv没有小图,请选择其他方式展示');
}
}
});
$(document).off('click','.kanbantypeset-but-box .adduser-btn2').on('click','.kanbantypeset-but-box .adduser-btn2',function(){
var data = layui.form.val('kanbantypeexample');
console.log(data);
me.callback && me.callback(data);
layer.close(parms.layIndex);
})
});
}
};
@ -5734,6 +5931,226 @@ var X = window.X || {
}
};
})();
// srczip/logic/ltvmodel.js
(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":[],
"recentDay":"1-30",
"relation":"and",
"startTime":"2021-05-09 00:00:00",
"statType":"retention",
"timeParticleSize":"P1D",
"unitNum":7
},
"events":[
],
"cachedata":{
eventdata:[],
groupitemeventsdata:[],
}
};
// 日期渲染
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;
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 eventdata;
var groupitemeventsdata=[[],[]];//分组项里的事件
X.api("data_auth/my_event","get",{},function(d){
eventdata = d;
X.api("data_auth/load_filter_props","post",{event_name:d[0]['category'][0]['event_name']},function(val){
groupitemeventsdata = val;
})
});
//全局筛选
var filtsftvdata=[];
$(document).off('click','.analysis-overall-situation-add').on('click','.analysis-overall-situation-add',function(){
var screentypedata = groupitemeventsdata;
var drr={
"columnName":screentypedata[0]['category'][0]['title'],//事件中文显示
"column_id":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']
};
data['eventView']['filts'].push(drr);
filtsftvdata.push(screentypedata[0]['category'][0]['category']);
if(data['eventView']['filts'].length > 1){
$(".analysis-overall-situation-left-guanxi").show();
}else{
$(".analysis-overall-situation-left-guanxi").hide();
}
console.log(data);
X.template("globalfilter","xinwei-whole",data['eventView']['filts']);
});
//删除指定全局数据
$(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);
filtsftvdata.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']);
});
$(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]['columnName'] = val.title;
data['eventView']['filts'][index]['column_id'] = 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;
filtsftvdata[index]=val.category;
X.template("globalfilter","xinwei-whole",data['eventView']['filts']);
})
});
$(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");
X.querycriteriapop(filtsftvdata[index],'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']);
}
})
});
$(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");
data['eventView']['filts'][index]['strftv'] = val;
data['eventView']['filts'][index]['ftv'].push(val);
});
$(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(){
data['cachedata']['eventdata'] = eventdata;
data['cachedata']['groupitemeventsdata'] = groupitemeventsdata;
var dataArr = {
eventView: data.eventView,
events: data.events
}
X.api("ck/ltv_model","post",dataArr,function(d){
X.laytpldata("#table-fenxi-th-dot",d.title,".table-fenxi-th");
X.laytpldata("#table-fenxi-td-dot",d.rows,".table-fenxi-td");
})
};
$(document).off('click','.analysis-savereport').on('click','.analysis-savereport',function(){
X.parametersopen(data,'savereport','auto')
});
$(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){
data = d.query;
eventdata = data.cachedata.eventdata;
groupitemeventsdata = data.cachedata.groupitemeventsdata;
X.template("globalfilter","xinwei-whole",data['eventView']['filts']);
retaineddata();
}
})
});
}
};
})();
// srczip/logic/modeltable.js
(function(){
X.pageLogic['modeltable'] = {
@ -5744,8 +6161,9 @@ var X = window.X || {
var data = parms;
for(var i in data){
console.log(data[i]);
X.laytpldata("#kanban-model-table-dot",data[i],null,function(html){
// console.log($("#model-box").html());
console.log(html);
$('#model-box').append(html);
});
}
@ -6428,12 +6846,14 @@ var X = window.X || {
X.api("data_auth/load_filter_props","post",{event_name:d[0]['category'][0]['event_name']},function(val){
groupitemeventsdata[0] = val;
groupitemeventsdata[1] = val;
//初始事件
console.log(data['events'][0]);
X.template("event","initial-event",data['events'][0]);
X.template("returnvisitevent","returnvisit-event",data['events'][1]);
})
})
//初始事件
X.template("event","initial-event",data['events'][0]);
X.template("returnvisitevent","returnvisit-event",data['events'][1]);
//开启重命名
$(document).off('click','.analysis-chongmingming-initial-event').on('click','.analysis-chongmingming-initial-event',function(){
$("#analysis-con-left-screen-list-left-zhibiaoname-initial-event").show();
@ -6509,8 +6929,9 @@ var X = window.X || {
"timeUnit":""
}
initialevent.push(arr);
data['events'][1]['filts'] = initialevent;
data['events'][0]['filts'] = initialevent;
filtersymbols[0].push(groupitemeventsdata[0][0]['category'][0]['category']);
X.template("event","initial-event",data['events'][0]);
})
var returnevent = []
@ -6542,9 +6963,9 @@ var X = window.X || {
$(document).off('click','.analysis-zhibiao-list-del-return-event').on('click','.analysis-zhibiao-list-del-return-event',function(){
var index = $(this).attr("data-twonum");
data['events'][0]['filts'].splice(index,1);
data['events'][1]['filts'].splice(index,1);
filtersymbols[1].splice(index,1);
X.template("returnvisitevent","return-event",data['events'][0]);
X.template("returnvisitevent","return-event",data['events'][1]);
})
$(document).off('click','.analysis-con-left-screen-list-left-zhibiaoname-initial-event input').on('blur','.analysis-con-left-screen-list-left-zhibiaoname-initial-event input',function(){
@ -7688,7 +8109,6 @@ var X = window.X || {
})
function updatalist(title){
console.log(title);
var screendata=[];//筛选后的数据
for(let i in data){
if(title == 0){
@ -7699,7 +8119,6 @@ var X = window.X || {
}
}
}
X.laytpldata("#saved-list-box-dot",screendata,".saved-list-box");
}

View File

@ -496,13 +496,13 @@ var X = window.X || {
X.eventsmall = function(data,callback){
var date,num,thedayprop,weekprop,thedaypropsize,weekpropsize; //时间,当天数量,与前天对比,与上个星期对比,与前天对比正负,与上个星期对比正负
console.log(data);
for(let i in data){
if(data[i]['groups']['length'] == 0){
// console.log(data);
// for(let i in data){
// if(data[i]['groups']['length'] == 0){
}
}
// }
// }
var length = data[0]['date_range'].length - 1;
date = data[0]['date_range'][length];
num = data[0]['values'][0][length];
@ -534,7 +534,129 @@ var X = window.X || {
weekpropsize:weekpropsize
}
callback && callback(dataArr);
}
};
X.retentiontable=function(data,callback){
var tabledata=[];
for(let i in data['summary_values']){
var arr = {
date: i,
d0:data['summary_values'][i]['d0'],
data:[]
}
for(let j in data['summary_values'][i]["n"]){
var nrr = {
n:0,
p:0
}
nrr["n"] = data['summary_values'][i]["n"][j];
nrr["p"] = data['summary_values'][i]["p"][j]
arr['data'].push(nrr);
}
tabledata.push(arr);
}
var titdata = [];
for(let i in data['days']){
var tit = "第" + i + "日";
titdata.push(tit);
}
titdata.unshift("日期",data.title);
var dataArr = {
titledata:titdata,
condata:tabledata
}
callback && callback(dataArr);
};
X.retentionchart = function(d,callback){
var arr = {};
var legenddata = [];
var seriesData = [];
var xAxisData = [];
var date=0,sum=0,mean=0,sameday=0;
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]);
xAxisData.push(i);
}
seriesData = {
type: 'line',
data: arr
}
console.log(arr);
for(let i in arr){
sum = sum + arr[i];
sameday = arr[i];
}
console.log(mean);
date = '近'+xAxisData.length+'天时间';
mean = (sum / arr.length).toFixed(2);
}else {
var timearr = [];
for(let i in d.values){
timearr.push(i);
for(let j in d.values[i]){
if(arr[j]){
arr[j][i] = d.values[i][j]['p'];
}else {
arr[j]=[];
arr[j][i] = d.values[i][j]['p'];
}
}
}
var ydata = {};
for(let j in arr){
if(!ydata[j]){
ydata[j] = [];
}
for( let i in timearr ){
ydata[j].push("");
for(let z in arr[j]){
if(timearr[i] == z){
var index = arr[j][z].length - 1;
ydata[j][i] =arr[j][z][index];
}
}
}
}
for(let i in ydata){
legenddata.push(i);
var arr = {
name: i,
type: 'line',
data: ydata[i]
}
seriesData.push(arr)
}
}
var dataArr = {
xAxisData:xAxisData,
legenddata:legenddata,
seriesData:seriesData,
date:date,
sum:sum,
mean:mean,
sameday: sameday
}
// console.log(dataArr);
callback && callback(dataArr);
};
X.ltvtable=function(data,callback){
var dataArr = {
titledata:data.title,
condata:data.rows
}
callback && callback(dataArr);
};
// 分组项
// X.grouped=function(data,id){

View File

@ -86,7 +86,7 @@
"filts":[],//过滤项
"condrelation":'and',
"customEvent":'',
"eventNameDisplay":' '//重命名指标
"eventNameDisplay":''//重命名指标
}
data.events.push(defaultindicator);
X.laytpldata("#analysis-con-left-screen-list-dot",data.events,".analysis-con-left-screen-list-box");
@ -132,7 +132,7 @@
//已存报表
var baobiaodata;
$(document).off('click','.analysis-navigation-bar-right .analysis-navigation-bar-right-img-baobiao').on('click','.analysis-navigation-bar-right .analysis-navigation-bar-right-img-baobiao',function(){
$(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){
@ -410,7 +410,7 @@
"filts":[],//过滤项
"condrelation":'and',
"customEvent":'',
"eventNameDisplay":' '//重命名指标
"eventNameDisplay":''//重命名指标
}
data['events'].push(defaultindicator);

View File

@ -36,16 +36,16 @@
});
//a标签点击跳转事件
$(document).on('click','.layui-nav-child a',function(){
$(document).off('click','.layui-nav-child a').on('click','.layui-nav-child a',function(){
var url = $(this).attr("data-url");
X.gourl(url);
});
// 修改面板名
$(document).on('click','.layui-left-dd',function(){
$(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
$("#chart-box").html("");
$("#model-box").html("");
// 获取报表数据
me.gettabledata();
});
@ -220,6 +220,11 @@
// X.laydropdown('.kanbanwenjianimg',X.DATA.taboperationdata[type]);
// }
$(document).off('click','.nav-action-bar').on('click','.nav-action-bar',function(e){
e.stopPropagation();
// console.log(111);
})
@ -238,16 +243,18 @@
// 获取表格数据
gettabledata:function(){
$("#model-box").html("");//清空表格数据
X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(d){
var eventdata=[];
var index = d.length;
for(let z in d){
(function (i, model) { // 注意这里是形参
setTimeout(function () {
X.api("ck/"+model+"_model","post",{report_id:d[i]['report_id']},function(val){
var eventdata=[];
if(model == "event"){
// 事件分析
if(d[i]['graph_size'] == 'small'){
@ -266,6 +273,7 @@
data['modeltype'] = d[i]['graph_type'];
data['id'] = d[i]['report_id'];
data['modelsize'] = d[i]['graph_size'];
data['cat'] = model;
eventdata.push(data);
})
}else if(d[i]['graph_type'] == 'echarts'){
@ -280,65 +288,109 @@
}
}
} else if(model == "retention"){
if(d[i]['graph_size'] == 'small'){
}else {
if(d[i]['graph_type'] == 'table'){
X.retentiontable(val,function(data){
data['name'] = d[i]['name'];
data['modeltype'] = d[i]['graph_type'];
data['id'] = d[i]['report_id'];
data['modelsize'] = d[i]['graph_size'];
data['cat'] = model;
eventdata.push(data);
})
}else {
X.retentionchart(val,function(data){
data['name'] = d[i]['name'];
data['modeltype'] = d[i]['graph_type'];
data['id'] = d[i]['report_id'];
data['modelsize'] = d[i]['graph_size'];
eventdata.push(data);
})
}
}
}else if(model == 'ltv'){
if(d[i]['graph_type'] == 'table'){
X.ltvtable(val,function(data){
data['name'] = d[i]['name'];
data['modeltype'] = d[i]['graph_type'];
data['id'] = d[i]['report_id'];
data['modelsize'] = d[i]['graph_size'];
data['cat'] = model;
eventdata.push(data);
})
}else {
X.ltvchart(val,function(data){
data['name'] = d[i]['name'];
data['modeltype'] = d[i]['graph_type'];
data['id'] = d[i]['report_id'];
data['modelsize'] = d[i]['graph_size'];
eventdata.push(data);
})
}
}
index --;
if(index <= 0){
X.template("modeltable","chart-box",eventdata,function(){
for(let i in eventdata){
if(eventdata[i]['modeltype'] == 'echarts' && eventdata[i]['modelsize'] != 'small' ){
var myChart = echarts.init(document.getElementById(eventdata[i]['id']));
var option = {
title: {
text: ''
},
color: X.DATA.echartscolor,
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross',
label: {
backgroundColor: '#6a7985'
}
if(eventdata.length > 0){
for(var z in eventdata){
X.laytpldata("#kanban-model-table-dot",eventdata[z],null,function(html){
$('#model-box').append(html);
});
if(eventdata[z]['modeltype'] == 'echarts' && eventdata[z]['modelsize'] != 'small' ){
var myChart = echarts.init(document.getElementById(eventdata[z]['id']));
var option = {
title: {
text: ''
},
color: X.DATA.echartscolor,
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross',
label: {
backgroundColor: '#6a7985'
}
},
legend: {
type:'scroll',
data: eventdata[i]['legenddata']
},
grid: {
left: '2%',
right: '2%',
bottom: '2%',
top: '10%',
containLabel: true
},
xAxis: [
{
type: 'category',
boundaryGap: false,
data: eventdata[i]['xAxisData']
}
],
yAxis: [
{
type: 'value'
}
],
series: eventdata[i]['seriesData']
};
myChart.setOption(option,true);
}
}
},
legend: {
type:'scroll',
data: eventdata[z]['legenddata']
},
grid: {
left: '2%',
right: '2%',
bottom: '2%',
top: '10%',
containLabel: true
},
xAxis: [
{
type: 'category',
boundaryGap: false,
data: eventdata[z]['xAxisData']
}
],
yAxis: [
{
type: 'value'
}
],
series: eventdata[z]['seriesData']
};
myChart.setOption(option,true);
}
});
}
}
})
}, 500 * i); // 还是每秒执行一次,不是累加的
}, 0 * i); // 还是每秒执行一次,不是累加的
})(z, d[z]['model']) // 注意这里是实参,这里把要用的参数传进去
}

View File

@ -21,17 +21,17 @@
X.laytpldata('#to-added-baobiao-dot',d,'.to-added-baobiao');
var datalist = [
{title:'全部',id:'0'},
{title:'事件分析',id:'event'},
{title:'留存分析',id:'retention'},
{title:'漏斗分析',id:'funnel'},
{title:'属性分析',id:'0'},
{title:'分布分析',id:'scatter'},
{title:'SQL查询',id:'0'}
{title:'事件',id:'event'},
{title:'留存',id:'retention'},
{title:'漏斗',id:'funnel'},
{title:'属性',id:'0'},
{title:'分布',id:'scatter'},
{title:'SQL',id:'0'}
]
X.laydropdown('#kanbanadmin-ss-right',datalist,function(d){
$('#kanbanadmin-ss-right span').html(d.title);
updatalist(d.title);
updatalist(d.id);
})
toadddataprocessing();
})

View File

@ -5,12 +5,14 @@
this.parms = parms;
this.callback = parms.callback;
var listdata = parms.extData;
layui.form.render();
if(listdata){
layui.form.val('kanbantypeexample',{
graph_type: listdata.graph_type || 'table',
graph_size: listdata.graph_size || 'in'
})
});
}
$(document).off('click','.adduser-top-box img').on('click','.adduser-top-box img',function(){
@ -19,14 +21,35 @@
$(document).off('click','.kanbantypeset-but-box .adduser-btn').on('click','.kanbantypeset-but-box .adduser-btn',function(){
layer.close(parms.layIndex);
})
});
layui.form.on('radio(graph_type)', function (data) {
if(listdata.model == 'ltv'){
if(data.value == "echarts"){
layui.form.val('kanbantypeexample',{
graph_type: listdata.graph_type || 'table'
});
layer.msg('ltv没有图像,请选择其他方式展示');
}
}
});
layui.form.on('radio(graph_size)', function (data) {
if(listdata.model == 'ltv'){
if(data.value == "small"){
layui.form.val('kanbantypeexample',{
graph_size: listdata.graph_size || 'table'
});
layer.msg('ltv没有小图,请选择其他方式展示');
}
}
});
$(document).off('click','.kanbantypeset-but-box .adduser-btn2').on('click','.kanbantypeset-but-box .adduser-btn2',function(){
var data = layui.form.val('kanbantypeexample');
console.log(data);
me.callback && me.callback(data);
layer.close(parms.layIndex);
})
});
}
};

View File

@ -0,0 +1,219 @@
(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":[],
"recentDay":"1-30",
"relation":"and",
"startTime":"2021-05-09 00:00:00",
"statType":"retention",
"timeParticleSize":"P1D",
"unitNum":7
},
"events":[
],
"cachedata":{
eventdata:[],
groupitemeventsdata:[],
}
};
// 日期渲染
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;
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 eventdata;
var groupitemeventsdata=[[],[]];//分组项里的事件
X.api("data_auth/my_event","get",{},function(d){
eventdata = d;
X.api("data_auth/load_filter_props","post",{event_name:d[0]['category'][0]['event_name']},function(val){
groupitemeventsdata = val;
})
});
//全局筛选
var filtsftvdata=[];
$(document).off('click','.analysis-overall-situation-add').on('click','.analysis-overall-situation-add',function(){
var screentypedata = groupitemeventsdata;
var drr={
"columnName":screentypedata[0]['category'][0]['title'],//事件中文显示
"column_id":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']
};
data['eventView']['filts'].push(drr);
filtsftvdata.push(screentypedata[0]['category'][0]['category']);
if(data['eventView']['filts'].length > 1){
$(".analysis-overall-situation-left-guanxi").show();
}else{
$(".analysis-overall-situation-left-guanxi").hide();
}
console.log(data);
X.template("globalfilter","xinwei-whole",data['eventView']['filts']);
});
//删除指定全局数据
$(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);
filtsftvdata.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']);
});
$(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]['columnName'] = val.title;
data['eventView']['filts'][index]['column_id'] = 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;
filtsftvdata[index]=val.category;
X.template("globalfilter","xinwei-whole",data['eventView']['filts']);
})
});
$(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");
X.querycriteriapop(filtsftvdata[index],'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']);
}
})
});
$(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");
data['eventView']['filts'][index]['strftv'] = val;
data['eventView']['filts'][index]['ftv'].push(val);
});
$(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(){
data['cachedata']['eventdata'] = eventdata;
data['cachedata']['groupitemeventsdata'] = groupitemeventsdata;
var dataArr = {
eventView: data.eventView,
events: data.events
}
X.api("ck/ltv_model","post",dataArr,function(d){
X.laytpldata("#table-fenxi-th-dot",d.title,".table-fenxi-th");
X.laytpldata("#table-fenxi-td-dot",d.rows,".table-fenxi-td");
})
};
$(document).off('click','.analysis-savereport').on('click','.analysis-savereport',function(){
X.parametersopen(data,'savereport','auto')
});
$(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){
data = d.query;
eventdata = data.cachedata.eventdata;
groupitemeventsdata = data.cachedata.groupitemeventsdata;
X.template("globalfilter","xinwei-whole",data['eventView']['filts']);
retaineddata();
}
})
});
}
};
})();

View File

@ -7,8 +7,9 @@
var data = parms;
for(var i in data){
console.log(data[i]);
X.laytpldata("#kanban-model-table-dot",data[i],null,function(html){
// console.log($("#model-box").html());
console.log(html);
$('#model-box').append(html);
});
}

View File

@ -69,12 +69,14 @@
X.api("data_auth/load_filter_props","post",{event_name:d[0]['category'][0]['event_name']},function(val){
groupitemeventsdata[0] = val;
groupitemeventsdata[1] = val;
//初始事件
console.log(data['events'][0]);
X.template("event","initial-event",data['events'][0]);
X.template("returnvisitevent","returnvisit-event",data['events'][1]);
})
})
//初始事件
X.template("event","initial-event",data['events'][0]);
X.template("returnvisitevent","returnvisit-event",data['events'][1]);
//开启重命名
$(document).off('click','.analysis-chongmingming-initial-event').on('click','.analysis-chongmingming-initial-event',function(){
$("#analysis-con-left-screen-list-left-zhibiaoname-initial-event").show();
@ -150,8 +152,9 @@
"timeUnit":""
}
initialevent.push(arr);
data['events'][1]['filts'] = initialevent;
data['events'][0]['filts'] = initialevent;
filtersymbols[0].push(groupitemeventsdata[0][0]['category'][0]['category']);
X.template("event","initial-event",data['events'][0]);
})
var returnevent = []
@ -183,9 +186,9 @@
$(document).off('click','.analysis-zhibiao-list-del-return-event').on('click','.analysis-zhibiao-list-del-return-event',function(){
var index = $(this).attr("data-twonum");
data['events'][0]['filts'].splice(index,1);
data['events'][1]['filts'].splice(index,1);
filtersymbols[1].splice(index,1);
X.template("returnvisitevent","return-event",data['events'][0]);
X.template("returnvisitevent","return-event",data['events'][1]);
})
$(document).off('click','.analysis-con-left-screen-list-left-zhibiaoname-initial-event input').on('blur','.analysis-con-left-screen-list-left-zhibiaoname-initial-event input',function(){

View File

@ -42,7 +42,6 @@
})
function updatalist(title){
console.log(title);
var screendata=[];//筛选后的数据
for(let i in data){
if(title == 0){
@ -53,7 +52,6 @@
}
}
}
X.laytpldata("#saved-list-box-dot",screendata,".saved-list-box");
}