留存分析

This commit is contained in:
罗松柏 2021-06-11 16:40:13 +08:00
parent f1a929ea39
commit d549f46379
26 changed files with 1687 additions and 303 deletions

View File

@ -224,12 +224,12 @@
<!-- 指标选择 -->
<div class="analysis-con-left-screen-list-left-box" id="analysis-con-left-screen-list-left-box-{{index}}">
<div class="analysis-con-left-screen-list-left-zhibiaoname" id="analysis-con-left-screen-list-left-zhibiaoname-{{index}}">
<input type="text" placeholder="请入指标名" class="analysis-con-left-screen-list-left-zhibiaoname-txt" data-index="{{index}}"/>
<input type="text" placeholder="请入指标名" class="analysis-con-left-screen-list-left-zhibiaoname-txt" data-index="{{index}}"/>
</div>
<div class="analysis-con-left-screen-list-left">
<div class="analysis-num">{{index}}</div>
<div class="analysis-zhibiao-list">
<div class="ant-dropdown-trigger analysis-zhibiao-list-type1 analysis-background" data-index="{{index}}"> {{item.event_name}}</div>
<div class="ant-dropdown-trigger analysis-zhibiao-list-type1 analysis-background" data-index="{{index}}"> {{item.event_desc}}</div>
<span style="margin-left: 6px;"></span>
<div id="analysis-zhibiao-list-type2-{{index}}" class="analysis-zhibiao-list-type2 analysis-background" data-index="{{index}}">{{item.event_attr}}</div>
{{# if(item.event_attr_id != "*"){ }}
@ -239,12 +239,12 @@
{{# } }}
</div>
</div>
{{# if(item.filters.length > 0){ }}
{{# if(item.filts.length > 0){ }}
<div class="analysis-con-left-screen-list-right-screen-bg" id="analysis-con-left-screen-list-right-screen-bg-{{index}}">
<div class="analysis-con-left-screen-list-right-screen-box">
<div class="analysis-con-left-screen-list-right-screen-qh">
<div class="analysis-con-left-screen-list-right-screen-qh-xian"></div>
{{# if(item.filters.length > 1){ }}
{{# if(item.filts.length > 1){ }}
{{# if(item.condrelation === "and"){ }}
<div class="analysis-con-left-screen-list-right-screen-qh-tit" data-index="{{index}}"></div>
{{# } else { }}
@ -253,11 +253,13 @@
{{# } }}
</div>
<div style="padding-bottom: 10px;" class="analysis-zhibiao-list2-box">
{{# layui.each(item.filters, function(indexs, items){ }}
{{# layui.each(item.filts, function(indexs, items){ }}
<div class="analysis-zhibiao-list analysis-zhibiao-list-mar" id="analysis-zhibiao-list-mar-{{index}}-{{indexs}}">
<div id="ta-property-select-{{index}}-{{indexs}}" class="ta-property-select analysis-zhibiao-list-type1 analysis-background" data-index="{{index}}" data-indexs="{{indexs}}"> {{items.column_name}}</div>
<div id="ta-property-select-{{index}}-{{indexs}}" class="ta-property-select analysis-zhibiao-list-type1 analysis-background" data-index="{{index}}" data-indexs="{{indexs}}"> {{items.columnDesc}}</div>
<div class="analysis-zhibiao-list-type3 analysis-background analysis-choicetypename" data-index="{{index}}" data-indexs="{{indexs}}">{{items.comparator_name}}</div>
<!-- {{# if(item.comparator_id != "is null" && item.comparator_id != "is not null" && item.comparator_id !="not null" && item.comparator_id != "range"){ }} -->
<div class="analysis-zhibiao-list-type4" id="analysis-zhibiao-list-type4-{{index}}-{{indexs}}"> <input type="text" data-index="{{index}}" data-indexs="{{indexs}}" placeholder="多个条件用,隔开" value="{{items.strftv}}"> </div>
<!-- {{# } }} -->
<div class="analysis-zhibiao-list-del" data-index="{{index}}" data-twonum="{{indexs}}"></div>
</div>
{{# }); }}
@ -315,7 +317,7 @@
<div class="analysis-num bgcolor">{{index}}</div>
<div class="analysis-ant-dropdown-trigger" data-index="{{index}}">
<!-- <img src="./static/img/shaix2.png"/> -->
<span>{{item.column_name}}</span>
<span>{{item.columnDesc}}</span>
</div>
</div>
<!-- <div class="analysis-ta-property-range analysis-granularity" data-index="{{index}}" data-type="{{item.data_type}}"> <img src="./static/img/shezhi2.png"> </div> -->
@ -338,7 +340,7 @@
<script id="analysis-overall-situation-list-box-dot" type="text/html">
{{# layui.each(d, function(index, item){ }}
<div class="analysis-overall-situation-list">
<div class="analysis-overall-situation-attr" data-index="{{index}}">{{item.column_name}}</div>
<div class="analysis-overall-situation-attr" data-index="{{index}}">{{item.columnDesc}}</div>
<div class="analysis-overall-situation-fuhao" id="analysis-overall-situation-fuhao-{{index}}" data-index="{{index}}" data-type="{{item.data_type}}" >{{item.comparator_name}}</div>
{{# if(item.comparator_id != "is null" && item.comparator_id != "is not null" && item.comparator_id !="not null" && item.comparator_id != "range"){ }}
<div class="analysis-overall-situation-input" > <input type="text" data-index="{{index}}" placeholder="多个用,隔开" value="{{item.strftv}}" /> </div>

56
web/pages/event.html Normal file
View File

@ -0,0 +1,56 @@
<script id="analysis-overall-situation-list-box-dot" type="text/html">
<div class="analysis-con-left-screen-list">
<!-- 指标选择 -->
<div class="analysis-con-left-screen-list-left-box" id="analysis-con-left-screen-list-left-box">
<div class="analysis-con-left-screen-list-left-zhibiaoname analysis-con-left-screen-list-left-zhibiaoname-initial-event" id="analysis-con-left-screen-list-left-zhibiaoname-initial-event">
<input type="text" placeholder="请输入指标名" class="analysis-con-left-screen-list-left-zhibiaoname-txt"/>
</div>
<div class="analysis-con-left-screen-list-left" style="margin-left: 24px;">
<div class="analysis-zhibiao-list">
<div class="ant-dropdown-trigger analysis-zhibiao-list-type1 analysis-background" data-index="0"> {{d.eventDesc}}</div>
</div>
</div>
{{# if(d.filts.length > 0){ }}
<div class="analysis-con-left-screen-list-right-screen-bg" id="analysis-con-left-screen-list-right-screen-bg">
<div class="analysis-con-left-screen-list-right-screen-box">
<div class="analysis-con-left-screen-list-right-screen-qh">
<div class="analysis-con-left-screen-list-right-screen-qh-xian"></div>
{{# if(d.filts.length > 1){ }}
{{# if(d.relation === "and"){ }}
<div class="analysis-con-left-screen-list-right-screen-qh-tit"></div>
{{# } else { }}
<div class="analysis-con-left-screen-list-right-screen-qh-tit"></div>
{{# } }}
{{# } }}
</div>
<div style="padding-bottom: 10px;" class="analysis-zhibiao-list2-box">
{{# layui.each(d.filts, function(indexs, items){ }}
<div class="analysis-zhibiao-list analysis-zhibiao-list-mar" id="analysis-zhibiao-list-mar-{{indexs}}">
<div id="ta-property-select-{{indexs}}" class="ta-property-select analysis-zhibiao-list-type1 analysis-background" data-index="0" data-indexs="{{indexs}}"> {{items.columnDesc}}</div>
<div class="analysis-zhibiao-list-type3 analysis-background analysis-choicetypename" data-index="0" data-indexs="{{indexs}}">{{items.comparatorName}}</div>
{{# if(items.comparator != "is null" && items.comparator != "is not null" && items.comparator !="not null" && items.comparator != "range"){ }}
<div class="analysis-zhibiao-list-type4" id="analysis-zhibiao-list-type4-{{indexs}}"> <input type="text" data-index="0" data-indexs="{{indexs}}" placeholder="多个条件用,隔开" value="{{items.strftv}}"> </div>
{{# } }}
<div class="analysis-zhibiao-list-del analysis-zhibiao-list-del-initial-event" data-twonum="{{indexs}}"></div>
</div>
{{# }); }}
</div>
</div>
<div class="analysis-zhibiao-updata-list-box">
<span class="analysis-zhibiao-updata analysis-zhibiao-updata-initial-event"> <img src="./static/img/shaix.png" /> 添加条件 </span>
</div>
</div>
{{# } }}
</div>
<!-- 操作按钮 -->
<div class="analysis-con-left-screen-list-right-box">
<div class="analysis-con-left-screen-list-right" >
<div class="analysis-chongmingming analysis-chongmingming-initial-event" title="重命名指标"></div>
<div class="analysis-chongmingming-del analysis-chongmingming-del-initial-event" title="取消重命名"></div>
<div class="analysis-shaix analysis-shaix-initial-event" title="指标筛选"></div>
</div>
</div>
</div>
</script>

View File

@ -0,0 +1,17 @@
<!-- 全局筛选 -->
<script id="analysis-overall-situation-list-box-dot" type="text/html">
{{# layui.each(d, function(index, item){ }}
<div class="analysis-overall-situation-list">
<div class="analysis-overall-situation-attr" data-index="{{index}}">{{item.column_name}}</div>
<div class="analysis-overall-situation-fuhao" id="analysis-overall-situation-fuhao-{{index}}" data-index="{{index}}" data-type="{{item.data_type}}" >{{item.comparator_name}}</div>
{{# if(item.comparator_id != "is null" && item.comparator_id != "is not null" && item.comparator_id !="not null" && item.comparator_id != "range"){ }}
<div class="analysis-overall-situation-input" > <input type="text" data-index="{{index}}" placeholder="多个用,隔开" value="{{item.strftv}}" /> </div>
{{# } }}
{{# if(item.comparator_id === "range"){ }}
<div class="analysis-overall-situation-input2" > <input data-index="{{index}}" type="text" value="{{item.section[0]}}" name="start"/> <span></span> <input data-index="{{index}}" name="end" type="text" value="{{item.section[1]}}"/> <span>之间</span> </div>
{{# } }}
<p class="analysis-overall-situation-del" data-index="{{index}}"> <img src="./static/img/cha1.png"> </p>
</div>
{{# }); }}
</script>

View File

@ -3,16 +3,23 @@
<div class="analysis-action-row">
<div class="analysis-action-left">
<div class="analysis-num bgcolor">{{index}}</div>
<div class="analysis-ant-dropdown-trigger">
<img src="./static/img/shaix2.png"/>
<span>SDK类型</span>
<div class="analysis-ant-dropdown-trigger" data-index="{{index}}">
<!-- <img src="./static/img/shaix2.png"/> -->
<span>{{item.columnName}}</span>
</div>
</div>
<div class="analysis-ta-property-range analysis-granularity"> <img src="./static/img/shezhi2.png"> </div>
<!-- <div class="analysis-ta-property-range analysis-granularity" data-index="{{index}}" data-type="{{item.data_type}}"> <img src="./static/img/shezhi2.png"> </div> -->
<!-- {{# if(item.data_type === "int"){ }}
<div class="analysis-ta-property-range analysis-section"> <img src="./static/img/shezhi2.png"> </div>
<div class="analysis-action-right"> <img src="./static/img/cha1.png"/> </div>
{{# } }} -->
{{# if(item.data_type === "datetime"){ }}
<div class="analysis-ta-property-range analysis-granularity" data-index="{{index}}" data-type="{{item.data_type}}"> <img src="./static/img/shezhi2.png"> </div>
{{# } }}
{{# if(item.data_type === "array"){ }}
<div class="analysis-ta-property-range analysis-granularity" data-index="{{index}}" data-type="{{item.data_type}}"> <img src="./static/img/shezhi2.png"> </div>
{{# } }}
<div class="analysis-action-right" data-index="{{index}}"> <img src="./static/img/cha1.png"/> </div>
</div>
{{# }); }}
</script>

View File

@ -34,8 +34,53 @@
<div class="analysis-con-left-shrink"></div>
<div class="root___2a4tb">
<div class="block___2n0We">
<div class="analysis-con-left-title">初始事件</div>
<div class="analysis-con-left-screen-list-box" id="initial-event">
</div>
</div>
<div class="block___2n0We">
<div class="analysis-con-left-title">回访事件</div>
<div class="analysis-con-left-screen-list-box" id="returnvisit-event">
</div>
</div>
<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 class="block___2n0We">
<div class="analysis-con-left-title">分组项</div>
<div class="analysis-con-left-screen-box" id="shushi">
</div>
@ -65,25 +110,23 @@
</div>
<div class="analtsis-condition-box">
<div class="analtsis-time-box">
<div class="analtsis-condition" > <input id="analtsis-condition-date" readonly="readonly"></input> </div>
<div class="analtsis-condition analtsis-timeParticleSize"></div>
<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-condition">指标</div>
<div class="analtsis-condition">分组</div> -->
<div class="analtsis-chart-switch-box">
<div class="analtsis-chart-switch" title="趋势图"> <i class="iconfont" style="font-size: 18px; ">&#xe600;</i> </div>
<div class="analtsis-chart-switch select-chart" title="堆积图"> <i class="iconfont" style="font-size: 18px; ">&#xe61f;</i> </div>
<!-- <div class="analtsis-chart-switch" title="累计图"> <i class="iconfont" style="font-size: 18px; ">&#xe711;</i> </div> -->
<div class="analtsis-chart-switch" title="分布图"> <i class="iconfont" style="font-size: 18px; ">&#xe60b;</i> </div>
<!-- <div class="analtsis-chart-switch" title="饼状分布"> <i class="iconfont" style="font-size: 18px;">&#xe684;</i> </div> -->
<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"></div>
<div class="analysis-echarts" id="analysis-echarts" style="display: none;"></div>
<div class="table-div-box">
<table class="table-fenxi-box">
@ -92,10 +135,9 @@
</tr>
</thead>
<tbody>
<tr class="table-fenxi-td">
<tbody class="table-fenxi-td">
</tr>
</tbody>
</table>
</div>
@ -108,3 +150,28 @@
</div>
</div>
<script id="table-fenxi-th-dot" type="text/html">
{{# layui.each(d, function(index, item){ }}
{{# if(item == "第0日"){ }}
<th>当日</th>
{{# } else { }}
<th>{{item}}</th>
{{# } }}
{{# }); }}
</script>
<script id="table-fenxi-td-dot" type="text/html">
{{# layui.each(d, function(index, item){ }}
<tr >
<td>{{item.date}}</td>
<td>{{item.d0}}</td>
{{# layui.each(item.data, function(indexs, items){ }}
<td>
<p>{{items.n}}</p>
<p>{{items.p}}%</p>
</td>
{{# }); }}
</tr>
{{# }); }}
</script>

View File

@ -0,0 +1,52 @@
<script id="analysis-overall-situation-list-box-return-dot" type="text/html">
<div class="analysis-con-left-screen-list">
<!-- 指标选择 -->
<div class="analysis-con-left-screen-list-left-box" id="analysis-con-left-screen-list-left-box">
<div class="analysis-con-left-screen-list-left-zhibiaoname analysis-con-left-screen-list-left-zhibiaoname-return-event" id="analysis-con-left-screen-list-left-zhibiaoname-return-event">
<input type="text" placeholder="请输入指标名" class="analysis-con-left-screen-list-left-zhibiaoname-txt"/>
</div>
<div class="analysis-con-left-screen-list-left" style="margin-left: 24px;">
<div class="analysis-zhibiao-list">
<div class="ant-dropdown-trigger analysis-zhibiao-list-type1 analysis-background" data-index="1"> {{d.eventDesc}}</div>
</div>
</div>
{{# if(d.filts.length > 0){ }}
<div class="analysis-con-left-screen-list-right-screen-bg" id="analysis-con-left-screen-list-right-screen-bg">
<div class="analysis-con-left-screen-list-right-screen-box">
<div class="analysis-con-left-screen-list-right-screen-qh">
<div class="analysis-con-left-screen-list-right-screen-qh-xian"></div>
{{# if(d.filts.length > 1){ }}
{{# if(d.relation === "and"){ }}
<div class="analysis-con-left-screen-list-right-screen-qh-tit"></div>
{{# } else { }}
<div class="analysis-con-left-screen-list-right-screen-qh-tit"></div>
{{# } }}
{{# } }}
</div>
<div style="padding-bottom: 10px;" class="analysis-zhibiao-list2-box">
{{# layui.each(d.filts, function(indexs, items){ }}
<div class="analysis-zhibiao-list analysis-zhibiao-list-mar" id="analysis-zhibiao-list-mar-{{indexs}}">
<div id="ta-property-select-{{indexs}}" class="ta-property-select analysis-zhibiao-list-type1 analysis-background" data-index="0" data-indexs="{{indexs}}"> {{items.columnDesc}}</div>
<div class="analysis-zhibiao-list-type3 analysis-background analysis-choicetypename" data-index="0" data-indexs="{{indexs}}">{{items.comparatorName}}</div>
<div class="analysis-zhibiao-list-type4" id="analysis-zhibiao-list-type4-{{indexs}}"> <input type="text" data-index="0" data-indexs="{{indexs}}" placeholder="多个条件用,隔开" value="{{items.strftv}}"> </div>
<div class="analysis-zhibiao-list-del analysis-zhibiao-list-del-return-event" data-twonum="{{indexs}}"></div>
</div>
{{# }); }}
</div>
</div>
<div class="analysis-zhibiao-updata-list-box">
<span class="analysis-zhibiao-updata analysis-zhibiao-updata-return-event"> <img src="./static/img/shaix.png" /> 添加条件 </span>
</div>
</div>
{{# } }}
</div>
<!-- 操作按钮 -->
<div class="analysis-con-left-screen-list-right-box">
<div class="analysis-con-left-screen-list-right" >
<div class="analysis-chongmingming analysis-chongmingming-return-event" title="重命名指标"></div>
<div class="analysis-chongmingming-del analysis-chongmingming-del-return-event" title="取消重命名"></div>
<div class="analysis-shaix analysis-shaix-return-event" title="指标筛选"></div>
</div>
</div>
</div>
</script>

View File

@ -24,8 +24,8 @@
<div class="setgrouping-content-title">{{item.title}}</div>
<div class="setgrouping-content-list-box">
{{# layui.each(item.category, function(indexs, items){ }}
<div class="setgrouping-content-list" data-index="{{index}}" data-indexs="{{indexs}}" data-id="{{items.event_name}}" data-name="{{items.event_name}}">
<div>{{items.event_name}}</div>
<div class="setgrouping-content-list" data-index="{{index}}" data-indexs="{{indexs}}" data-id="{{items.event_desc}}" data-name="{{items.event_name}}">
<div>{{items.event_desc}}</div>
<!-- {{# if(items.isshoucang != 1){ }} -->
<img src="./static/img/xing1.png" class="setgrouping-content-list-img">
<!-- {{# } else { }}

805
web/src/x.min.js vendored

File diff suppressed because it is too large Load Diff

View File

@ -122,8 +122,8 @@ var X = window.X || {
};
(function(){
// var ipurl = "http://10.0.0.77:7889/api/v1/"
var ipurl = "http://119.29.176.224:7889/api/v1/"
// var ipurl = "http://10.0.0.77:7889/api/v1/";
var ipurl = "http://119.29.176.224:7889/api/v1/";
//设置或读取登录缓存需要保存到localStorage防止刷新时候登录数据丢失
X.loginCache = function(data){
@ -189,10 +189,12 @@ var X = window.X || {
});
}
X.template = function(url,id){
X.template = function(url,id,data,callback){
$.get('pages/'+ url + '.html',function(content){
$('#'+id).html(content);
X.pageLogic[url] && X.pageLogic[url].init && X.pageLogic[url].init();
X.pageLogic[url] && X.pageLogic[url].init && X.pageLogic[url].init(data);
callback && callback();
// X.pageLogic[parms.url] && X.pageLogic[parms.url].init && X.pageLogic[parms.url].init( parms );
});
};
@ -387,9 +389,9 @@ var X = window.X || {
"startDate": moment().subtract(29, 'days'),
"endDate": new Date(),
"opens": "right",
callback:callback
}, function (start, end, label) {
}, function (start, end, label) {
callback && callback(start,end,label);
// console.log(start.format('YYYY-MM-DD') + ' to ' + end.format('YYYY-MM-DD'));
});
}

View File

@ -18,6 +18,7 @@
var data = {
"events":[],
"eventView":{
"cksql":"event",
"startTime":"",
"timeParticleSize":"P1D",
"endTime":"",
@ -28,7 +29,7 @@
"tableSorts":[],
"chartSort":"num-desc"
},
"filters":[],//全局筛选
"filts":[],//全局筛选
"relation":1,
"zone_time":'8'//时区
},
@ -84,8 +85,6 @@
var time = $("#analtsis-condition-date").val();
var timearr = time.split(" ");
console.log(time);
console.log(timearr);
data['eventView']['startTime'] = timearr[0] + " "+"00:00:00";
data['eventView']['endTime'] = timearr[2]+" "+"23:59:59";
@ -96,13 +95,14 @@
retdata = d.staid_quots.concat(d.props);
props = d.props;
var defaultindicator = {
"event_desc":dataArr[0]['category'][0]['event_desc'],
"event_name":dataArr[0]['category'][0]['event_name'],
"event_attr":"总次数",
"event_attr_id":"*",
"analysisname":'',
"analysis":'total_count',
"renameindicator":"", //重命名指标
"filters":[],//过滤项
"filts":[],//过滤项
"condrelation":'and',
}
data.events.push(defaultindicator);
@ -158,7 +158,7 @@
screentypearr = data.cachedata.screentypearr;
filtersymbols = data.cachedata.filtersymbols;
if(d.query.eventView.filters.length > 0){
if(d.query.eventView.filts.length > 0){
$(".analysis-overall").show();
}else {
$(".analysis-overall").hide();
@ -166,7 +166,7 @@
X.laytpldata("#analysis-con-left-screen-list-dot",d.query.events,".analysis-con-left-screen-list-box");
X.laytpldata("#analysis-gpmain___3YGfw-dot",d.query.eventView.groupBy,".analysis-gpmain___3YGfw");
X.laytpldata("#analysis-overall-situation-list-box-dot",d.query['eventView']['filters'],".analysis-overall-situation-list-box");
X.laytpldata("#analysis-overall-situation-list-box-dot",d.query['eventView']['filts'],".analysis-overall-situation-list-box");
analysisdown();
calculationdata();
@ -243,17 +243,19 @@
var offset = obj.offset();
var index = obj.attr('data-index');
X.querycriteriapop(dataArr,'setgrouping',offset.left,offset.top+obj.height(),function(val){
var htmlstring = val.name;
var htmlstring = val.id;
obj.html(htmlstring);
data['events'][index]['event_desc'] = val.id;
data['events'][index]['event_name'] = val.name;
X.api("data_auth/load_prop_quotas","post",{event_name:val.id},function(d){
X.api("data_auth/load_prop_quotas","post",{event_name:val.name},function(d){
var retdata = d.staid_quots.concat(d.props);
type2data[index]=retdata;
screentypearr[index] = d.props;
})
X.api("data_auth/load_filter_props","post",{event_name:val.id},function(d){
X.api("data_auth/load_filter_props","post",{event_name:val.name},function(d){
groupitemeventsdata[index] = d;
console.log(groupitemeventsdata);
})
@ -313,10 +315,10 @@
var htmlstring = val.title;
obj.html(htmlstring);
filtersymbols[index][indexs] = val.category;
data['events'][index]['filters'][indexs]['column_name'] = htmlstring;
data['events'][index]['filters'][indexs]['column_id'] = val.id;
data['events'][index]['filters'][indexs]['data_type'] = val.type;
data['events'][index]['filters'][indexs]['table_type'] = val.table_type;
data['events'][index]['filts'][indexs]['columnDesc'] = htmlstring;
data['events'][index]['filts'][indexs]['columnName'] = val.id;
data['events'][index]['filts'][indexs]['data_type'] = val.type;
data['events'][index]['filts'][indexs]['tableType'] = val.table_type;
})
})
@ -329,8 +331,8 @@
X.querycriteriapop(filtersymbols[index][indexs],'dropdownlist',offset.left,offset.top+obj.height(),function(val){
if(val != undefined){
obj.html(val.title);
data['events'][index]['filters'][indexs]['comparator_name'] = val.title;
data['events'][index]['filters'][indexs]['comparator_id'] = val.id;
data['events'][index]['filts'][indexs]['comparator_name'] = val.title;
data['events'][index]['filts'][indexs]['comparator'] = val.id;
}
})
})
@ -347,16 +349,16 @@
X.api('data_auth/load_filter_props',"post",{event_name:data['events'][index]["event_name"]},function(d){
console.log(d);
var arr = {
"column_name":d[0]['category'][0]['title'],//事件中文显示
"column_id":d[0]['category'][0]['id'],//事件id
"columnDesc":d[0]['category'][0]['title'],//事件中文显示
"columnName":d[0]['category'][0]['id'],//事件id
"comparator_name":d[0]['category'][0]['category'][0]['title'],//选择符号中文显示
"comparator_id":d[0]['category'][0]['category'][0]['id'],//符号id
"comparator":d[0]['category'][0]['category'][0]['id'],//符号id
"data_type":d[0]['category'][0]['data_type'],
"ftv":'',//条件
"strftv":'',//字符串显示条件
"table_type": d[0]['id']
"tableType": d[0]['id']
} //筛选数据
data['events'][index]['filters'].push(arr);
data['events'][index]['filts'].push(arr);
X.laytpldata("#analysis-con-left-screen-list-dot",data.events,".analysis-con-left-screen-list-box");
var drr=[];
filtersymbols.push(drr);
@ -378,8 +380,8 @@
var indexs = $(this).attr("data-indexs");
var val = $(this).val();
var valarr = val.split(",");
data['events'][index]['filters'][indexs]['ftv']=valarr;
data['events'][index]['filters'][indexs]['strftv']=val;
data['events'][index]['filts'][indexs]['ftv']=valarr;
data['events'][index]['filts'][indexs]['strftv']=val;
})
// 且和或切换
@ -407,20 +409,21 @@
var index = $(this).attr("data-index");
var indexs = $(this).attr("data-indexs");
filtersymbols[index].splice(indexs,1);
data.events[index]['filters'].splice(indexs,1);
data.events[index]['filts'].splice(indexs,1);
X.laytpldata("#analysis-con-left-screen-list-dot",data.events,".analysis-con-left-screen-list-box");
})
// 添加指标
function addindex(){
var defaultindicator = {
"event_desc":dataArr[0]['category'][0]['event_desc'],
"event_name":dataArr[0]['category'][0]['event_name'],
"event_attr":"总次数",
"event_attr_id":"*",
"analysisname":'',
"analysis":'total_count',
"renameindicator":"", //重命名指标
"filters":[],//过滤项
"filts":[],//过滤项
"condrelation":'and',
}
data['events'].push(defaultindicator);
@ -493,10 +496,10 @@
var screentypedata = filteringdata();
console.log(screentypedata);
var drr = {
"column_name":screentypedata[0]['category'][index]['title'],//事件中文显示
"column_id":screentypedata[0]['category'][index]['id'],//事件id
"columnDesc":screentypedata[0]['category'][index]['title'],//事件中文显示
"columnName":screentypedata[0]['category'][index]['id'],//事件id
'data_type':screentypedata[0]['category'][index]['data_type'],//类型
'table_type': screentypedata[0]['id'],
'tableType': screentypedata[0]['id'],
"ftv":'',//条件
"section":''//区间
}
@ -512,10 +515,10 @@
X.querycriteriapop(filteringdata(),'category',offset.left,offset.top+obj.height(),function(val){
var htmlstring = val.title;
obj.html(htmlstring);
data.eventView.groupBy[index]['column_name'] = val.title;
data.eventView.groupBy[index]['column_id'] = val.id;
data.eventView.groupBy[index]['columnDesc'] = val.title;
data.eventView.groupBy[index]['columnName'] = val.id;
data.eventView.groupBy[index]['data_type'] = val.type;
data.eventView.groupBy[index]['table_type'] = val.table_type;
data.eventView.groupBy[index]['tableType'] = val.table_type;
X.laytpldata("#analysis-gpmain___3YGfw-dot",data.eventView.groupBy,".analysis-gpmain___3YGfw");
})
})
@ -611,42 +614,42 @@
var screentypedata = filteringdata();
var drr={
"column_name":screentypedata[0]['category'][0]['title'],//事件中文显示
"column_id":screentypedata[0]['category'][0]['id'],//事件id
"columnDesc":screentypedata[0]['category'][0]['title'],//事件中文显示 columnDesc
"columnName":screentypedata[0]['category'][0]['id'],//事件id
'data_type':screentypedata[0]['category'][0]['data_type'],//类型
'comparator_name':'等于',//默认等于
"comparator_id":'==',//符号id
"comparator":'==',//符号id
"ftv":[],//条件
"strftv":'',//显示条件
"section":[-1,1],//区间
"table_type":screentypedata[0]['id']
"tableType":screentypedata[0]['id']
};
data['eventView']['filters'].push(drr);//上传全局数据
console.log(drr);
data['eventView']['filts'].push(drr);//上传全局数据
filtsftvdata.push(screentypedata[0]['category'][0]['category'])
$(".analysis-overall-situation-left-box").show();
if(data['eventView']['filters'].length > 1){
if(data['eventView']['filts'].length > 1){
$(".analysis-overall-situation-left-guanxi").show();
}else{
$(".analysis-overall-situation-left-guanxi").hide();
}
X.laytpldata("#analysis-overall-situation-list-box-dot",data['eventView']['filters'],".analysis-overall-situation-list-box");
X.laytpldata("#analysis-overall-situation-list-box-dot",data['eventView']['filts'],".analysis-overall-situation-list-box");
analysisdown();
})
//循环给条件框渲染下拉框
function analysisdown(){
for(let i in data['eventView']['filters']){
for(let i in data['eventView']['filts']){
X.laydropdown("#analysis-overall-situation-fuhao-"+i,filtsftvdata[i],function(val){
$(this).html(val.title);
data['eventView']['filters'][i]['comparator_name'] = val.title;
data['eventView']['filters'][i]['comparator_id'] = val.id;
data['eventView']['filts'][i]['comparator_name'] = val.title;
data['eventView']['filts'][i]['comparator'] = val.id;
if(val.id == "range"){
data['eventView']['filters'][i]['ftv'] = [-1,1];
data['eventView']['filts'][i]['ftv'] = [-1,1];
}
X.laytpldata("#analysis-overall-situation-list-box-dot",data['eventView']['filters'],".analysis-overall-situation-list-box");
X.laytpldata("#analysis-overall-situation-list-box-dot",data['eventView']['filts'],".analysis-overall-situation-list-box");
analysisdown();
})
}
@ -654,15 +657,15 @@
$(document).on('click',".analysis-overall-situation-del",function(){
var index = $(this).attr("data-index");
data['eventView']['filters'].splice(index,1);
data['eventView']['filts'].splice(index,1);
filtsftvdata.splice(index,1);
if(data['eventView']['filters'].length > 1){
if(data['eventView']['filts'].length > 1){
$(".analysis-overall-situation-left-guanxi").show();
}else{
$(".analysis-overall-situation-left-guanxi").hide();
// $(".analysis-overall-situation-left-box").hide();
}
X.laytpldata("#analysis-overall-situation-list-box-dot",data['eventView']['filters'],".analysis-overall-situation-list-box");
X.laytpldata("#analysis-overall-situation-list-box-dot",data['eventView']['filts'],".analysis-overall-situation-list-box");
analysisdown();
})
@ -673,14 +676,14 @@
var index = obj.attr("data-index");
X.querycriteriapop(filteringdata(),'category',offset.left,offset.top+obj.height(),function(val){
obj.html(val.title);
data['eventView']['filters'][index]['column_name'] = val.title;
data['eventView']['filters'][index]['column_id'] = val.id;
data['eventView']['filters'][index]['data_type'] = val.type;
data['eventView']['filters'][index]['comparator_name'] = '等于';
data['eventView']['filters'][index]['comparator_id'] = '==';
data['eventView']['filters'][index]['table_type'] = val.table_type;
data['eventView']['filts'][index]['columnDesc'] = val.title;
data['eventView']['filts'][index]['columnName'] = val.id;
data['eventView']['filts'][index]['data_type'] = val.type;
data['eventView']['filts'][index]['comparator_name'] = '等于';
data['eventView']['filts'][index]['comparator'] = '==';
data['eventView']['filts'][index]['tableType'] = val.table_type;
filtsftvdata[index]=val.category;
X.laytpldata("#analysis-overall-situation-list-box-dot",data['eventView']['filters'],".analysis-overall-situation-list-box");
X.laytpldata("#analysis-overall-situation-list-box-dot",data['eventView']['filts'],".analysis-overall-situation-list-box");
analysisdown();
})
})
@ -689,8 +692,8 @@
var index = $(this).attr("data-index");
var val = $(this).val();
var valarr = val.split(",");
data['eventView']['filters'][index]['ftv']=valarr;
data['eventView']['filters'][index]['strftv']=val;
data['eventView']['filts'][index]['ftv']=valarr;
data['eventView']['filts'][index]['strftv']=val;
})
$(document).on('blur','.analysis-overall-situation-input2 input',function(){
@ -699,11 +702,11 @@
var index = $(this).attr("data-index");
if(name == 'start'){
data['eventView']['filters'][index]['ftv'][0] = val;
data['eventView']['filters'][index]['section'][0] = val;
data['eventView']['filts'][index]['ftv'][0] = val;
data['eventView']['filts'][index]['section'][0] = val;
}else {
data['eventView']['filters'][index]['ftv'][1] = val;
data['eventView']['filters'][index]['section'][1] = val;
data['eventView']['filts'][index]['ftv'][1] = val;
data['eventView']['filts'][index]['section'][1] = val;
}
})

View File

@ -63,7 +63,7 @@
})
//单击属性
$(document).on("click",".zhuang_conetnt .ta-pso-line",function(){
$(document).off('click','.zhuang_conetnt .ta-pso-line').on('click','.zhuang_conetnt .ta-pso-line',function(){
// var index = $(this).attr("data-index");
var indexs = $(this).attr("data-indexs");
var valdata = {

View File

@ -9,7 +9,7 @@
eventView:data.eventView,
events:data.events
}
X.api('ck/event_model_sql','post',data,function(d){
X.api('ck/'+ dataArr['eventView']['cksql'] +'_model_sql','post',dataArr,function(d){
console.log(d);
$(".conditionquery-sqldata").html(d[0]['sql']);
$(".conditionquery-apidata").html(JSON.stringify(data));

15
web/srczip/logic/event.js Normal file
View File

@ -0,0 +1,15 @@
(function(){
X.pageLogic['event'] = {
init : function(parms){
var me = this;
if(parms){
this.parms = parms;
var data = parms;
}else {
var data = []
}
X.laytpldata("#analysis-overall-situation-list-box-dot",data,"#initial-event");
}
};
})();

View File

@ -0,0 +1,18 @@
(function(){
X.pageLogic['globalfilter'] = {
init : function(parms){
var me = this;
if(parms){
this.parms = parms;
var data = parms;
}else {
var data = []
}
console.log(111,data);
X.laytpldata("#analysis-overall-situation-list-box-dot",data,"#xinwei-whole");
}
};
})();

View File

@ -1,9 +1,15 @@
(function(){
X.pageLogic['grouped'] = {
init : function(){
var data = [
{}
]
init : function(parms){
var me = this;
if(parms){
this.parms = parms;
var data = parms;
}else {
var data = []
}
console.log(111,data);
X.laytpldata("#analysis-con-left-screen-box-dot",data,"#shushi");

View File

@ -1,74 +1,570 @@
(function(){
X.pageLogic['retained'] = {
init : function(){
init : function(parms){
// X.gourl("grouped","shushi");
X.template("grouped","shushi");
var data ={
"events": [
{
"event_name": "create_role",
"event_attr": "总次数",
"event_attr_id": "*",
"analysisname": "",
"analysis": "total_count",
"renameindicator": "",
"filters": [],
"condrelation": "and"
}
],
"eventView":{
"startTime": "2021-05-01 00:00:00",
"timeParticleSize": "P1D",
"endTime": "2021-05-19 23:59:59",
"graphShape": "L0",
"cksql":"retention",
"endTime":"2021-06-07 23:59:59",
"filts":[],
"groupBy":[],
"recentDay":"1-30",
"groupBy": [
{
"column_name": "#account_id",
"column_id": "#account_id",
"data_type": "string",
"table_type": "event",
"ftv": "",
"section": ""
"relation":"and",
"startTime":"2021-05-09 00:00:00",
"statType":"retention",
"timeParticleSize":"P1D",
"unitNum":7
},
{
"column_name": "#app_id",
"column_id": "#app_id",
"data_type": "string",
"table_type": "event",
"ftv": "",
"section": ""
}
],
"uiCommonConfig": {
"tableSorts": [],
"chartSort": "num-desc"
},
"filters": [],
"relation": 1,
"zone_time": "8"
},
}
X.grouped(data['eventView']['groupBy'],"#shushi")
"events":[
$(document).off('click','.analysis-calculation').on("click",'.analysis-calculation',function(){
console.log(211);
],
"projectId":1
};
// 日期渲染
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";
X.grouped(data['eventView']['groupBy'],"#shushi");
// $(document).off('click','.analysis-calculation').on("click",'.analysis-calculation',function(){
// console.log(211);
// })
var eventdata;
var filtersymbols = [[],[]];//默认两个事件
var groupitemeventsdata=[[],[]]//分组项里的事件
X.api("data_auth/my_event","get",{},function(d){
eventdata = d;
var arr = {
"eventDesc":eventdata[0]['category'][0]['event_desc'],
"eventName":eventdata[0]['category'][0]['event_name'],
"filts":[],
"relation":"and",
"relationUser":"and",
"renameindicator":""
}
data['events'].push(arr);
data['events'].push(arr);
X.api("data_auth/load_filter_props","post",{event_name:d[0]['category'][0]['event_name']},function(val){
groupitemeventsdata[0] = val;
groupitemeventsdata[1] = val;
})
})
//初始事件
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();
$(this).hide();
$(".analysis-chongmingming-del-initial-event").show();
})
$(document).off('click','.analysis-chongmingming-return-event').on('click','.analysis-chongmingming-return-event',function(){
$("#analysis-con-left-screen-list-left-zhibiaoname-return-event").show();
$(this).hide();
$(".analysis-chongmingming-del-return-event").show();
})
//取消重命名
$(document).off('click','.analysis-chongmingming-del-initial-event').on('click','.analysis-chongmingming-del-initial-event',function(){
$("#analysis-con-left-screen-list-left-zhibiaoname-initial-event").hide();
$("#analysis-con-left-screen-list-left-zhibiaoname-initial-event input").val('');
$(this).hide();
$(".analysis-chongmingming-initial-event").show();
})
$(document).off('click','.analysis-chongmingming-del-return-event').on('click','.analysis-chongmingming-del-return-event',function(){
$("#analysis-con-left-screen-list-left-zhibiaoname-return-event").hide();
$("#analysis-con-left-screen-list-left-zhibiaoname-return-event input").val('');
$(this).hide();
$(".analysis-chongmingming-return-event").show();
})
// 添加初始事件筛选
// $(document).off('click','.analysis-zhibiao-updata-list-box .analysis-zhibiao-updata-initial-event').on('click','.analysis-zhibiao-updata-list-box .analysis-zhibiao-updata',function(){
// var arr = {
// "columnDesc":groupitemeventsdata[0][0]['category'][0]['title'],
// "columnName":groupitemeventsdata[0][0]['category'][0]['id'],
// "comparator":"==",
// "comparatorName":"等于",
// "ftv":[],
// "strftv":"",
// "table_type":groupitemeventsdata[0][0]['category'][0]['data_type'],
// "timeUnit":""
// }
// data['events'][0]['filts'].push(arr);
// filtersymbols[0].push(groupitemeventsdata[0][0]['category'][0]['category']);
// X.template("event","initial-event",data['events'][0]);
// })
// $(document).off('click','.analysis-zhibiao-updata-list-box .analysis-zhibiao-updata-return-event').on('click','.analysis-zhibiao-updata-list-box .analysis-zhibiao-updata',function(){
// var arr = {
// "columnDesc":groupitemeventsdata[1][0]['category'][0]['title'],
// "columnName":groupitemeventsdata[1][0]['category'][0]['id'],
// "comparator":"==",
// "comparatorName":"等于",
// "ftv":[],
// "strftv":"",
// "table_type":groupitemeventsdata[1][0]['category'][0]['data_type'],
// "timeUnit":""
// }
// data['events'][1]['filts'].push(arr);
// filtersymbols[1].push(groupitemeventsdata[1][0]['category'][0]['category']);
// X.template("returnvisitevent","returnvisit-event",data['events'][1]);
// })
// 添加初始事件筛选
var initialevent = []
$(document).off('click','.analysis-shaix-initial-event').on('click','.analysis-shaix-initial-event',function(){
var arr = {
"columnDesc":groupitemeventsdata[0][0]['category'][0]['title'],
"columnName":groupitemeventsdata[0][0]['category'][0]['id'],
"comparator":"==",
"comparatorName":"等于",
"ftv":[],
"strftv":"",
"table_type":groupitemeventsdata[0][0]['category'][0]['data_type'],
"timeUnit":""
}
initialevent.push(arr);
data['events'][1]['filts'] = initialevent;
filtersymbols[0].push(groupitemeventsdata[0][0]['category'][0]['category']);
X.template("event","initial-event",data['events'][0]);
})
var returnevent = []
$(document).off('click','.analysis-shaix-return-event').on('click','.analysis-shaix-return-event',function(){
var arr = {
"columnDesc":groupitemeventsdata[1][0]['category'][0]['title'],
"columnName":groupitemeventsdata[1][0]['category'][0]['id'],
"comparator":"==",
"comparatorName":"等于",
"ftv":[],
"strftv":"",
"table_type":groupitemeventsdata[1][0]['category'][0]['data_type'],
"timeUnit":""
}
// data['events'][1]['filts'].push(arr);
returnevent.push(arr);
data['events'][1]['filts'] = returnevent;
filtersymbols[1].push(groupitemeventsdata[1][0]['category'][0]['category']);
X.template("returnvisitevent","returnvisit-event",data['events'][1]);
})
// 删除指定初始事件筛选
$(document).off('click','.analysis-zhibiao-list-del-initial-event').on('click','.analysis-zhibiao-list-del-initial-event',function(){
var index = $(this).attr("data-twonum");
data['events'][0]['filts'].splice(index,1);
filtersymbols[0].splice(index,1);
X.template("event","initial-event",data['events'][0]);
})
$(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);
filtersymbols[1].splice(index,1);
X.template("returnvisitevent","return-event",data['events'][0]);
})
$(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(){
var txt = $(this).val();
data['events'][0]['renameindicator'] = txt;
})
$(document).off('click','.analysis-con-left-screen-list-left-zhibiaoname-return-event input').on('blur','.analysis-con-left-screen-list-left-zhibiaoname-return-event input',function(){
var txt = $(this).val();
data['events'][1]['renameindicator'] = txt;
})
$(document).off('click','.ant-dropdown-trigger').on('click','.ant-dropdown-trigger',function(){
var obj = $(this);
var offset = obj.offset();
var index = obj.attr("data-index");
X.querycriteriapop(eventdata,'setgrouping',offset.left,offset.top+obj.height(),function(val){
console.log(val);
obj.html(val.id);
data['events'][index]['eventName'] = val.name;
data['events'][index]['eventDesc'] = val.id;
X.api("data_auth/load_filter_props","post",{event_name:val.id},function(val){
console.log(val);
groupitemeventsdata[index] = val;
})
console.log(groupitemeventsdata)
})
})
$(document).off('click','.ta-property-select').on('click','.ta-property-select',function(){
var obj = $(this);
var offset = obj.offset();
var index = obj.attr("data-index");
var indexs = obj.attr("data-indexs");
X.querycriteriapop(filteringdata(),'category',offset.left,offset.top+obj.height(),function(val){
console.log(val);
var htmlstring = val.title;
obj.html(htmlstring);
filtersymbols[index][indexs] = val.category;
data['events'][index]['filts'][indexs]['columnDesc'] = htmlstring;
data['events'][index]['filts'][indexs]['columnName'] = val.id;
data['events'][index]['filts'][indexs]['data_type'] = val.type;
data['events'][index]['filts'][indexs]['table_type'] = val.table_type;
})
})
// 过滤数据
function filteringdata(){
var screentypedata;
if(groupitemeventsdata.length>1){
for(var i =0; i < groupitemeventsdata.length - 1; i++){
if(i == 0){
X.groupintersection(groupitemeventsdata[i] , groupitemeventsdata[Number(i) + Number(1)],function(d){
screentypedata = d;
});
}else {
X.groupintersection(screentypedata , groupitemeventsdata[Number(i) + Number(1)],function(d){
screentypedata = d;
})
}
}
}else {
screentypedata = groupitemeventsdata[0];
}
return screentypedata;
}
$(document).off('click','.analysis-choicetypename').on('click','.analysis-choicetypename',function(){
var obj = $(this);
var offset = obj.offset();
var index = $(this).attr("data-index");
var indexs = $(this).attr("data-indexs");
X.querycriteriapop(filtersymbols[index][indexs],'dropdownlist',offset.left,offset.top+obj.height(),function(val){
if(val != undefined){
obj.html(val.title);
data['events'][index]['filts'][indexs]['comparatorName'] = val.title;
data['events'][index]['filts'][indexs]['comparator'] = val.id;
}
})
})
$(document).off('click','.analysis-zhibiao-list-type4 input').on('blur','.analysis-zhibiao-list-type4 input',function(){
var index = $(this).attr('data-index');
var indexs = $(this).attr('data-indexs');
var txt = $(this).val();
var txtarr = txt.split(",");
data['events'][index]['filts'][indexs]['strftv'] = txt;
data['events'][index]['filts'][indexs]['ftv'] = txtarr;
})
//全局筛选
var filtsftvdata=[];
$(document).off('click','.analysis-overall-situation-add').on('click','.analysis-overall-situation-add',function(){
var screentypedata = filteringdata();
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":'==',//符号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();
}
X.template("globalfilter","xinwei-whole",data['eventView']['filts'],function(){
analysisdown();
});
})
//删除指定全局数据
$(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(filteringdata(),'category',offset.left,offset.top+obj.height(),function(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_id'] = '==';
data['eventView']['filts'][index]['table_type'] = val.table_type;
filtsftvdata[index]=val.category;
analysisdown();//渲染下拉框
})
})
//循环给条件框渲染下拉框
function analysisdown(){
console.log(data['eventView']['filts']);
console.log(filtsftvdata);
for(let i in data['eventView']['filts']){
X.laydropdown("#analysis-overall-situation-fuhao-"+i,filtsftvdata[i],function(val){
$(this).html(val.title);
data['eventView']['filts'][i]['comparator_name'] = val.title;
data['eventView']['filts'][i]['comparator_id'] = val.id;
if(val.id == "range"){
data['eventView']['filts'][i]['ftv'] = [-1,1];
}
X.template("globalfilter","xinwei-whole",data['eventView']['filts']);
analysisdown();
})
}
}
// 分组项
$(document).off('click','.analysis-action-right').on('click','.analysis-action-right',function() {
console.log(111);
var index = $(this).attr("data-index");
data.eventView.groupBy.splice(index,1);
X.template("grouped","shushi",data['eventView']['groupBy']);
})
$(document).off('click','.analysis-footadd___2D4YB').on('click','.analysis-footadd___2D4YB',function() {
var data= [
{},{}
]
X.laytpldata("#analysis-con-left-screen-box-dot",data,"#shushi");
var arr = {
"columnName": "#account_id",//事件中文显示
"column_id": "#account_id",//事件id
'data_type': "string",//类型
'table_type': "event",
"ftv":'',//条件
"section":''//区间
};
data['eventView']['groupBy'].push(arr);
X.template("grouped","shushi",data['eventView']['groupBy']);
})
$(document).off('click','.analysis-ant-dropdown-trigger').on('click','.analysis-ant-dropdown-trigger',function(){
var obj = $(this);
var offset = obj.offset();
var index = obj.attr("data-index");
X.querycriteriapop(filteringdata(),'category',offset.left,offset.top+obj.height(),function(val){
console.log(val);
var htmlstring = val.title;
obj.html(htmlstring);
data.eventView.groupBy[index]['columnName'] = val.title;
data.eventView.groupBy[index]['column_id'] = val.id;
data.eventView.groupBy[index]['data_type'] = val.type;
data.eventView.groupBy[index]['table_type'] = val.table_type;
})
})
// 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'] = d.id;
retaineddata();
})
// 计算按钮
$(document).off('click','.analysis-calculation').on('click','.analysis-calculation',function(){
retaineddata()
})
function retaineddata(){
X.api("ck/retention_model","post",data,function(d){
console.log(data);
querydata = d;
retainedtable(d)
})
}
function retainedtable(d){
var tabledata=[];
for(let i in d['summary_values']){
var arr = {
date: i,
d0:d['summary_values'][i]['d0'],
data:[]
}
for(let j in d['summary_values'][i]["n"]){
var nrr = {
n:0,
p:0
}
nrr["n"] = d['summary_values'][i]["n"][j];
nrr["p"] = d['summary_values'][i]["p"][j]
arr['data'].push(nrr);
}
tabledata.push(arr)
}
var titdata = [];
for(let i in d['days']){
var tit = "第" + i + "日";
titdata.push(tit);
}
titdata.unshift("日期",d.title);
X.laytpldata("#table-fenxi-th-dot",titdata,".table-fenxi-th");
X.laytpldata("#table-fenxi-td-dot",tabledata,".table-fenxi-td");
}
// 每日留存
function retaineddayRetained(d){
var xAxisData=[];
for(let i in d['days']){
var tit = "第" + i + "日";
xAxisData.push(tit);
}
var seriesData=[];
for(let i in d['summary_values']){
var arr = {
name: i,
type: 'line',
stack: '',
data: d['summary_values'][i]['p']
}
seriesData.push(arr);
}
var myChart = echarts.init(document.getElementById('analysis-echarts'));
var option = {
title: {
text: ''
},
color: [ '#3ea7fd', '#cdddfd', '#5ad8a6', '#cdf3e4', '#5d7092', '#ced4de', '#f6bd16','#fcebb9','#e86452','#f8d0cb','#6dc8ec', '#d3eef9', '#9270ca', '#d3c6ea', '#ff9d4d', '#ffd8b8', '#269a99','#aad8d8','#ff99c3','#ffd6e7' ],
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross',
label: {
backgroundColor: '#6a7985'
}
}
},
legend: {
type:'scroll',
data: d.date_range
},
toolbox: {
feature: {
saveAsImage: {}
}
},
grid: {
left: '2%',
right: '2%',
bottom: '2%',
top: '10%',
containLabel: true
},
xAxis: [
{
type: 'category',
boundaryGap: false,
data: xAxisData
}
],
yAxis: [
{
type: 'value'
}
],
series: seriesData
};
myChart.setOption(option,true);
}
function retainednRetained(d){
var data = [];
for(let i in d['summary_values']){
var index = d['summary_values'][i]['p'].length - 1;
data.push(d['summary_values'][i]['p'][index]);
}
console.log(data);
var myChart = echarts.init(document.getElementById('analysis-echarts'));
var option = {
xAxis: {
type: 'category',
data: d['date_range']
},
color: [ '#3ea7fd'],
grid: {
left: '2%',
right: '2%',
bottom: '2%',
top: '10%',
containLabel: true
},
yAxis: {
type: 'value'
},
series: [{
data: data,
type: 'line'
}]
}
myChart.setOption(option,true);
}
var querydata;
$(document).off('click','.analtsis-chart-switch').on('click','.analtsis-chart-switch',function(){
if(querydata){
$('.analtsis-chart-switch-box .analtsis-chart-switch').removeClass('select-chart');
$(this).addClass('select-chart');
if($(this).attr('title') == '数据报表'){ $(".table-div-box").show(); $(".analysis-echarts").hide(); retainedtable(querydata)}
else if($(this).attr('title') == '第N日留存'){ $(".table-div-box").hide(); $(".analysis-echarts").show(); retainednRetained(querydata) }
else if($(this).attr('title') == '每日留存'){ $(".table-div-box").hide(); $(".analysis-echarts").show(); retaineddayRetained(querydata) }
}else{
layer.msg('请先计算数据,在切换图表');
}
})
}
};
})();

View File

@ -0,0 +1,16 @@
(function(){
X.pageLogic['returnvisitevent'] = {
init : function(parms){
var me = this;
if(parms){
this.parms = parms;
var data = parms;
}else {
var data = []
}
console.log(data);
X.laytpldata("#analysis-overall-situation-list-box-return-dot",data,"#returnvisit-event");
}
};
})();

View File

@ -46,7 +46,7 @@
X.laytpldata("#judge-box-dot",data,".setgrouping-box .setgrouping-content-box");
})
$(document).on("click",".setgrouping-content-list",function(){
$(document).off('click','.setgrouping-content-list').on('click','.setgrouping-content-list',function(){
var index = $(this).attr('data-index');
var indexs = $(this).attr('data-indexs');
var valdata = {

View File

@ -88,7 +88,7 @@
/* .analysis-con-left-screen-list-right-screen-qh-xian { width: 1px; min-height: 38px; position: absolute; left: 45px; background-color: #d9dfe6;} */
.analysis-con-left-screen-list-right-screen-qh-tit { border-radius: 24px; width: 24px; height: 24px; line-height: 24px; text-align: center; font-size: 12px; color: #3d90ff; background-color: #ffffff; border: 1px solid #d9dfe6; }
.analysis-zhibiao-list-mar { margin-top: 10px; }
.analysis-zhibiao-updata-list-box { display: none; margin-top: 6px; width: 100%; padding-left: 32px }
.analysis-zhibiao-updata-list-box { display: block; margin-top: 6px; width: 100%; padding-left: 32px }
.analysis-zhibiao-updata { padding: 4px; cursor: pointer; border-radius: 2px; font-size: 13px; color: #3d90ff; }
.analysis-zhibiao-updata:hover { background-color: #e4f2ff; }
@ -242,11 +242,11 @@
.conditionquery-copy { cursor: pointer; color: #fff; background-color: #3d90ff; border-radius: 2px; padding: 0 16px; font-weight: 400; font-size: 14px; height: 32px; line-height: 32px; }
.conditionquery-but-box span{ background-color: #eaecf8; color: #3d90ff; padding: 0 8px; cursor: pointer; display: inline-block; }
.table-div-box { width: 100%; overflow: auto; }
.table-div-box { width: 100%; height: 670px; overflow: auto; }
.table-fenxi-box { width: 100%; }
.table-fenxi-box th { min-width: 100px; max-width: 200px; padding: 16px; }
.table-fenxi-box th { background-color: #f0f2f5; min-width: 100px; max-width: 200px; padding: 10px 16px; color: #202d3f; font-size: 13px; font-weight: 400; border-right: 1px solid #e6e6e6; border-bottom: 1px solid #f0f2f5; }
.table-fenxi-box tr { text-align: center; }
.table-fenxi-box tr td{ padding: 16px; }
.table-fenxi-box tr td{ padding: 10px 16px; color: #202d3f; font-size: 13px; font-weight: 400; border-right: 1px solid #e6e6e6; border-bottom: 1px solid #f0f2f5; }

View File

@ -54,6 +54,18 @@
<div class="content unicode" style="display: block;">
<ul class="icon_lists dib-box">
<li class="dib">
<span class="icon iconfont">&#xe601;</span>
<div class="name">流失</div>
<div class="code-name">&amp;#xe601;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe670;</span>
<div class="name">数据表</div>
<div class="code-name">&amp;#xe670;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe727;</span>
<div class="name">sql</div>
@ -108,9 +120,9 @@
<pre><code class="language-css"
>@font-face {
font-family: 'iconfont';
src: url('iconfont.woff2?t=1622169041664') format('woff2'),
url('iconfont.woff?t=1622169041664') format('woff'),
url('iconfont.ttf?t=1622169041664') format('truetype');
src: url('iconfont.woff2?t=1623376633178') format('woff2'),
url('iconfont.woff?t=1623376633178') format('woff'),
url('iconfont.ttf?t=1623376633178') format('truetype');
}
</code></pre>
<h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
@ -136,6 +148,24 @@
<div class="content font-class">
<ul class="icon_lists dib-box">
<li class="dib">
<span class="icon iconfont icon-liushi"></span>
<div class="name">
流失
</div>
<div class="code-name">.icon-liushi
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-shujubiao"></span>
<div class="name">
数据表
</div>
<div class="code-name">.icon-shujubiao
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-sql"></span>
<div class="name">
@ -217,6 +247,22 @@
<div class="content symbol">
<ul class="icon_lists dib-box">
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-liushi"></use>
</svg>
<div class="name">流失</div>
<div class="code-name">#icon-liushi</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-shujubiao"></use>
</svg>
<div class="name">数据表</div>
<div class="code-name">#icon-shujubiao</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-sql"></use>

View File

@ -1,8 +1,8 @@
@font-face {
font-family: "iconfont"; /* Project id 2570810 */
src: url('iconfont.woff2?t=1622169041664') format('woff2'),
url('iconfont.woff?t=1622169041664') format('woff'),
url('iconfont.ttf?t=1622169041664') format('truetype');
src: url('iconfont.woff2?t=1623376633178') format('woff2'),
url('iconfont.woff?t=1623376633178') format('woff'),
url('iconfont.ttf?t=1623376633178') format('truetype');
}
.iconfont {
@ -13,6 +13,14 @@
-moz-osx-font-smoothing: grayscale;
}
.icon-liushi:before {
content: "\e601";
}
.icon-shujubiao:before {
content: "\e670";
}
.icon-sql:before {
content: "\e727";
}

File diff suppressed because one or more lines are too long

View File

@ -5,6 +5,20 @@
"css_prefix_text": "icon-",
"description": "",
"glyphs": [
{
"icon_id": "2332742",
"name": "流失",
"font_class": "liushi",
"unicode": "e601",
"unicode_decimal": 58881
},
{
"icon_id": "20666187",
"name": "数据表",
"font_class": "shujubiao",
"unicode": "e670",
"unicode_decimal": 58992
},
{
"icon_id": "3031210",
"name": "sql",

Binary file not shown.