sql
This commit is contained in:
parent
8dc1cb4b47
commit
eca96f7f21
177
web/pages/funnel.html
Normal file
177
web/pages/funnel.html
Normal file
@ -0,0 +1,177 @@
|
||||
<!-- 留存分析 -->
|
||||
<div class="analysis-zhanwei">
|
||||
|
||||
</div>
|
||||
|
||||
<div class="analysis-navigation-bar-box">
|
||||
<div class="analysis-navigation-bar">
|
||||
<div class="analysis-navigation-bar-left">
|
||||
<span>留存分析</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">
|
||||
<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>
|
||||
<div class="analysis-foot___P797w">
|
||||
<span class="analysis-footadd___2D4YB">
|
||||
<img src="./static/img/fenzu.png">
|
||||
添加分组项
|
||||
</span>
|
||||
</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){ }}
|
||||
{{# 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>
|
@ -2,7 +2,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.columnName}}</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>
|
||||
|
915
web/src/x.min.js
vendored
915
web/src/x.min.js
vendored
File diff suppressed because it is too large
Load Diff
@ -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){
|
||||
|
@ -803,11 +803,11 @@
|
||||
type:'scroll',
|
||||
data: xAxisData
|
||||
},
|
||||
toolbox: {
|
||||
feature: {
|
||||
saveAsImage: {}
|
||||
}
|
||||
},
|
||||
// toolbox: {
|
||||
// feature: {
|
||||
// saveAsImage: {}
|
||||
// }
|
||||
// },
|
||||
grid: {
|
||||
left: '2%',
|
||||
right: '2%',
|
||||
@ -847,7 +847,6 @@
|
||||
var arr = {
|
||||
name: '',
|
||||
type: 'line',
|
||||
stack: '总量',
|
||||
data: d[i]['values'][z]
|
||||
}
|
||||
seriesData.push(arr);
|
||||
@ -877,11 +876,11 @@
|
||||
type:'scroll',
|
||||
data: xAxisData
|
||||
},
|
||||
toolbox: {
|
||||
feature: {
|
||||
saveAsImage: {}
|
||||
}
|
||||
},
|
||||
// toolbox: {
|
||||
// feature: {
|
||||
// saveAsImage: {}
|
||||
// }
|
||||
// },
|
||||
grid: {
|
||||
left: '2%',
|
||||
right: '2%',
|
||||
|
@ -12,7 +12,7 @@
|
||||
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));
|
||||
$(".conditionquery-apidata").html(JSON.stringify(dataArr));
|
||||
})
|
||||
var tab = 0
|
||||
layui.element.on('tab(conditionquery)', function(data){
|
||||
|
694
web/srczip/logic/funnel.js
Normal file
694
web/srczip/logic/funnel.js
Normal file
@ -0,0 +1,694 @@
|
||||
(function(){
|
||||
X.pageLogic['funnel'] = {
|
||||
init : function(parms){
|
||||
|
||||
// X.gourl("grouped","shushi");
|
||||
X.template("grouped","shushi");
|
||||
|
||||
var data ={
|
||||
"eventView":{
|
||||
"cksql":"retention",
|
||||
"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":[
|
||||
|
||||
],
|
||||
"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":""
|
||||
},{
|
||||
"eventDesc":eventdata[0]['category'][0]['event_desc'],
|
||||
"eventName":eventdata[0]['category'][0]['event_name'],
|
||||
"filts":[],
|
||||
"relation":"and",
|
||||
"relationUser":"and",
|
||||
"renameindicator":""
|
||||
}
|
||||
]
|
||||
data['events'] = 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");
|
||||
var dataevent= data['events'][index];
|
||||
// console.log(dataevent);
|
||||
X.querycriteriapop(eventdata,'setgrouping',offset.left,offset.top+obj.height(),function(val){
|
||||
console.log(val);
|
||||
obj.html(val.id);
|
||||
dataevent['eventName'] = val.name;
|
||||
dataevent['eventDesc'] = val.id;
|
||||
|
||||
X.api("data_auth/load_filter_props","post",{event_name:val.name},function(val){
|
||||
groupitemeventsdata[index] = val;
|
||||
})
|
||||
// console.log(data['events']);
|
||||
|
||||
})
|
||||
})
|
||||
|
||||
$(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'],function(){
|
||||
analysisdown();
|
||||
});
|
||||
})
|
||||
|
||||
$(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){
|
||||
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_id'] = '==';
|
||||
data['eventView']['filts'][index]['table_type'] = val.table_type;
|
||||
filtsftvdata[index]=val.category;
|
||||
analysisdown();//渲染下拉框
|
||||
})
|
||||
})
|
||||
|
||||
//循环给条件框渲染下拉框
|
||||
function analysisdown(){
|
||||
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'],function(){
|
||||
analysisdown();
|
||||
});
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// 分组项
|
||||
$(document).off('click','.analysis-action-right').on('click','.analysis-action-right',function() {
|
||||
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 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'] = parseInt(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;
|
||||
updata(d)
|
||||
})
|
||||
}
|
||||
|
||||
function updata(d){
|
||||
var title = $(".select-chart").attr("title");
|
||||
if(title == '数据报表'){ $(".table-div-box").show(); $(".analysis-echarts").hide(); retainedtable(d)}
|
||||
else if(title == '第N日留存'){ $(".table-div-box").hide(); $(".analysis-echarts").show(); retainednRetained(d) }
|
||||
else if(title == '每日留存'){ $(".table-div-box").hide(); $(".analysis-echarts").show(); retaineddayRetained(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 arr = {};
|
||||
var xAxisData=[];
|
||||
var seriesData=[];
|
||||
var legenddata = [];
|
||||
if(jQuery.isEmptyObject(d.values)){
|
||||
legenddata = d.date_range;
|
||||
for(let i in d['days']){
|
||||
var tit = "第" + i + "日";
|
||||
xAxisData.push(tit);
|
||||
}
|
||||
for(let i in d['summary_values']){
|
||||
var arr = {
|
||||
name: i,
|
||||
type: 'line',
|
||||
data: d['summary_values'][i]['p']
|
||||
}
|
||||
seriesData.push(arr);
|
||||
}
|
||||
}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];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
console.log(ydata);
|
||||
// for(let i in ydata){
|
||||
// legenddata.push(i);
|
||||
// var arr = {
|
||||
// name: i,
|
||||
// type: 'line',
|
||||
// data: ydata[i]
|
||||
// }
|
||||
// seriesData.push(arr)
|
||||
// }
|
||||
}
|
||||
return;
|
||||
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: legenddata,
|
||||
},
|
||||
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 arr = {};
|
||||
var legenddata = [];
|
||||
var seriesData = [];
|
||||
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]);
|
||||
}
|
||||
|
||||
seriesData = {
|
||||
type: 'line',
|
||||
data: arr
|
||||
}
|
||||
}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 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: legenddata
|
||||
},
|
||||
grid: {
|
||||
left: '2%',
|
||||
right: '2%',
|
||||
bottom: '2%',
|
||||
top: '10%',
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: [
|
||||
{
|
||||
type: 'category',
|
||||
boundaryGap: false,
|
||||
data: d.date_range
|
||||
}
|
||||
],
|
||||
yAxis: [
|
||||
{
|
||||
type: 'value'
|
||||
}
|
||||
],
|
||||
series: seriesData
|
||||
};
|
||||
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('请先计算数据,在切换图表');
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
};
|
||||
})();
|
@ -317,7 +317,9 @@
|
||||
}else{
|
||||
$(".analysis-overall-situation-left-guanxi").hide();
|
||||
}
|
||||
X.template("globalfilter","xinwei-whole",data['eventView']['filts']);
|
||||
X.template("globalfilter","xinwei-whole",data['eventView']['filts'],function(){
|
||||
analysisdown();
|
||||
});
|
||||
})
|
||||
|
||||
$(document).off('click','.analysis-overall-situation-attr').on('click','.analysis-overall-situation-attr',function(){
|
||||
@ -325,6 +327,7 @@
|
||||
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);
|
||||
obj.html(val.title);
|
||||
data['eventView']['filts'][index]['columnName'] = val.title;
|
||||
data['eventView']['filts'][index]['column_id'] = val.id;
|
||||
@ -339,8 +342,6 @@
|
||||
|
||||
//循环给条件框渲染下拉框
|
||||
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);
|
||||
@ -349,8 +350,9 @@
|
||||
if(val.id == "range"){
|
||||
data['eventView']['filts'][i]['ftv'] = [-1,1];
|
||||
}
|
||||
X.template("globalfilter","xinwei-whole",data['eventView']['filts']);
|
||||
analysisdown();
|
||||
X.template("globalfilter","xinwei-whole",data['eventView']['filts'],function(){
|
||||
analysisdown();
|
||||
});
|
||||
})
|
||||
}
|
||||
}
|
||||
@ -415,7 +417,7 @@
|
||||
X.laydropdown('.analtsis-timeParticleSize',timeParticleSizearr,function(d){
|
||||
console.log(d);
|
||||
$(".analtsis-timeParticleSize").html(d.title);
|
||||
data['eventView']['unitNum'] = d.id;
|
||||
data['eventView']['unitNum'] = parseInt(d.id);
|
||||
retaineddata();
|
||||
})
|
||||
|
||||
@ -428,10 +430,17 @@
|
||||
X.api("ck/retention_model","post",data,function(d){
|
||||
console.log(data);
|
||||
querydata = d;
|
||||
retainedtable(d)
|
||||
updata(d)
|
||||
})
|
||||
}
|
||||
|
||||
function updata(d){
|
||||
var title = $(".select-chart").attr("title");
|
||||
if(title == '数据报表'){ $(".table-div-box").show(); $(".analysis-echarts").hide(); retainedtable(d)}
|
||||
else if(title == '第N日留存'){ $(".table-div-box").hide(); $(".analysis-echarts").show(); retainednRetained(d) }
|
||||
else if(title == '每日留存'){ $(".table-div-box").hide(); $(".analysis-echarts").show(); retaineddayRetained(d) }
|
||||
}
|
||||
|
||||
function retainedtable(d){
|
||||
var tabledata=[];
|
||||
for(let i in d['summary_values']){
|
||||
@ -465,21 +474,65 @@
|
||||
|
||||
// 每日留存
|
||||
function retaineddayRetained(d){
|
||||
var arr = {};
|
||||
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']
|
||||
var legenddata = [];
|
||||
if(jQuery.isEmptyObject(d.values)){
|
||||
legenddata = d.date_range;
|
||||
for(let i in d['days']){
|
||||
var tit = "第" + i + "日";
|
||||
xAxisData.push(tit);
|
||||
}
|
||||
seriesData.push(arr);
|
||||
for(let i in d['summary_values']){
|
||||
var arr = {
|
||||
name: i,
|
||||
type: 'line',
|
||||
data: d['summary_values'][i]['p']
|
||||
}
|
||||
seriesData.push(arr);
|
||||
}
|
||||
}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];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
console.log(ydata);
|
||||
// for(let i in ydata){
|
||||
// legenddata.push(i);
|
||||
// var arr = {
|
||||
// name: i,
|
||||
// type: 'line',
|
||||
// data: ydata[i]
|
||||
// }
|
||||
// seriesData.push(arr)
|
||||
// }
|
||||
}
|
||||
return;
|
||||
var myChart = echarts.init(document.getElementById('analysis-echarts'));
|
||||
var option = {
|
||||
title: {
|
||||
@ -497,12 +550,7 @@
|
||||
},
|
||||
legend: {
|
||||
type:'scroll',
|
||||
data: d.date_range
|
||||
},
|
||||
toolbox: {
|
||||
feature: {
|
||||
saveAsImage: {}
|
||||
}
|
||||
data: legenddata,
|
||||
},
|
||||
grid: {
|
||||
left: '2%',
|
||||
@ -529,19 +577,80 @@
|
||||
}
|
||||
|
||||
function retainednRetained(d){
|
||||
var data = [];
|
||||
var arr = {};
|
||||
var legenddata = [];
|
||||
var seriesData = [];
|
||||
if(jQuery.isEmptyObject(d.values)){
|
||||
var arr = []
|
||||
for(let i in d['summary_values']){
|
||||
var index = d['summary_values'][i]['p'].length - 1;
|
||||
data.push(d['summary_values'][i]['p'][index]);
|
||||
arr.push(d['summary_values'][i]['p'][index]);
|
||||
}
|
||||
console.log(data);
|
||||
|
||||
seriesData = {
|
||||
type: 'line',
|
||||
data: arr
|
||||
}
|
||||
}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 myChart = echarts.init(document.getElementById('analysis-echarts'));
|
||||
var option = {
|
||||
xAxis: {
|
||||
type: 'category',
|
||||
data: d['date_range']
|
||||
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: legenddata
|
||||
},
|
||||
color: [ '#3ea7fd'],
|
||||
grid: {
|
||||
left: '2%',
|
||||
right: '2%',
|
||||
@ -549,14 +658,20 @@
|
||||
top: '10%',
|
||||
containLabel: true
|
||||
},
|
||||
yAxis: {
|
||||
type: 'value'
|
||||
},
|
||||
series: [{
|
||||
data: data,
|
||||
type: 'line'
|
||||
}]
|
||||
}
|
||||
xAxis: [
|
||||
{
|
||||
type: 'category',
|
||||
boundaryGap: false,
|
||||
data: d.date_range
|
||||
}
|
||||
],
|
||||
yAxis: [
|
||||
{
|
||||
type: 'value'
|
||||
}
|
||||
],
|
||||
series: seriesData
|
||||
};
|
||||
myChart.setOption(option,true);
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user