提交
This commit is contained in:
parent
d4f7854aa6
commit
ed48c929e3
@ -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>
|
||||
{{# } }}
|
||||
{{# }); }}
|
||||
@ -590,3 +595,221 @@
|
||||
{{# }); }}
|
||||
|
||||
</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>
|
||||
|
@ -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
140
web/pages/ltvmodel.html
Normal 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;"></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; "></i> </div>
|
||||
<div class="analtsis-chart-switch " title="第N日留存"> <i class="iconfont" style="font-size: 18px; "></i> </div>
|
||||
<div class="analtsis-chart-switch" title="每日留存"> <i class="iconfont" style="font-size: 18px; "></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>
|
@ -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,6 +100,8 @@
|
||||
{{# }); }}
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
{{# if(d.cat === "event"){ }}
|
||||
<tbody class="table-fenxi-td">
|
||||
{{# layui.each(d.condata, function(indexs, items) { }}
|
||||
<tr >
|
||||
@ -111,6 +111,24 @@
|
||||
</tr>
|
||||
{{# }); }}
|
||||
</tbody>
|
||||
{{# } else { }}
|
||||
<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>
|
||||
{{# } }}
|
||||
|
||||
|
||||
</table>
|
||||
</div>
|
||||
|
||||
|
@ -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>
|
||||
|
511
web/src/x.min.js
vendored
511
web/src/x.min.js
vendored
@ -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);
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
@ -3260,15 +3387,17 @@ 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,13 +3431,61 @@ 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']));
|
||||
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: ''
|
||||
@ -3324,7 +3502,7 @@ var X = window.X || {
|
||||
},
|
||||
legend: {
|
||||
type:'scroll',
|
||||
data: eventdata[i]['legenddata']
|
||||
data: eventdata[z]['legenddata']
|
||||
},
|
||||
grid: {
|
||||
left: '2%',
|
||||
@ -3337,7 +3515,7 @@ var X = window.X || {
|
||||
{
|
||||
type: 'category',
|
||||
boundaryGap: false,
|
||||
data: eventdata[i]['xAxisData']
|
||||
data: eventdata[z]['xAxisData']
|
||||
}
|
||||
],
|
||||
yAxis: [
|
||||
@ -3345,21 +3523,17 @@ var X = window.X || {
|
||||
type: 'value'
|
||||
}
|
||||
],
|
||||
series: eventdata[i]['seriesData']
|
||||
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");
|
||||
}
|
||||
|
||||
|
@ -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){
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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);
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
@ -239,15 +244,17 @@
|
||||
// 获取表格数据
|
||||
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,13 +288,61 @@
|
||||
}
|
||||
}
|
||||
|
||||
} 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']));
|
||||
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: ''
|
||||
@ -303,7 +359,7 @@
|
||||
},
|
||||
legend: {
|
||||
type:'scroll',
|
||||
data: eventdata[i]['legenddata']
|
||||
data: eventdata[z]['legenddata']
|
||||
},
|
||||
grid: {
|
||||
left: '2%',
|
||||
@ -316,7 +372,7 @@
|
||||
{
|
||||
type: 'category',
|
||||
boundaryGap: false,
|
||||
data: eventdata[i]['xAxisData']
|
||||
data: eventdata[z]['xAxisData']
|
||||
}
|
||||
],
|
||||
yAxis: [
|
||||
@ -324,21 +380,17 @@
|
||||
type: 'value'
|
||||
}
|
||||
],
|
||||
series: eventdata[i]['seriesData']
|
||||
series: eventdata[z]['seriesData']
|
||||
};
|
||||
myChart.setOption(option,true);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
})
|
||||
|
||||
}, 500 * i); // 还是每秒执行一次,不是累加的
|
||||
}, 0 * i); // 还是每秒执行一次,不是累加的
|
||||
})(z, d[z]['model']) // 注意这里是实参,这里把要用的参数传进去
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -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();
|
||||
})
|
||||
|
@ -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);
|
||||
})
|
||||
});
|
||||
|
||||
}
|
||||
};
|
||||
|
219
web/srczip/logic/ltvmodel.js
Normal file
219
web/srczip/logic/ltvmodel.js
Normal 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();
|
||||
}
|
||||
|
||||
})
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
};
|
||||
})();
|
@ -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);
|
||||
});
|
||||
}
|
||||
|
@ -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(){
|
||||
|
@ -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");
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user