1
This commit is contained in:
parent
a6f244fee0
commit
a4efd88c7a
@ -33,15 +33,15 @@
|
||||
<div class="small-data-box">{{d.num}}</div>
|
||||
|
||||
<div class="small-proportion">
|
||||
{{# if(d.thedaypropsize === "+"){ }}
|
||||
<div class="proportion-data">较环比 <div class="sanjiao"></div><span>{{d.thedayprop}}%</span></div>
|
||||
{{# if(d.wowtyle == '-'){ }}
|
||||
<div class="proportion-data">较环比 <div class="sanjiao"></div><span>{{d.wow}}%</span></div>
|
||||
{{# } else { }}
|
||||
<div class="proportion-data">较环比 <div class="sanjiao fu"></div><span class="funum">{{d.thedayprop}}%</span></div>
|
||||
<div class="proportion-data">较环比 <div class="sanjiao fu"></div><span class="funum">{{d.wow}}%</span></div>
|
||||
{{# } }}
|
||||
{{# if(d.weekpropsize === "+"){ }}
|
||||
<div class="proportion-data">较同比 <div class="sanjiao"></div><span>{{d.weekprop}}%</span></div>
|
||||
{{# if(d.chain_ratiotype == "+"){ }}
|
||||
<div class="proportion-data">较同比 <div class="sanjiao"></div><span>{{d.chain_ratio}}%</span></div>
|
||||
{{# } else { }}
|
||||
<div class="proportion-data">较同比 <div class="sanjiao fu"></div><span class="funum">{{d.weekprop}}%</span></div>
|
||||
<div class="proportion-data">较同比 <div class="sanjiao fu"></div><span class="funum">{{d.chain_ratio}}%</span></div>
|
||||
{{# } }}
|
||||
</div>
|
||||
|
||||
@ -76,9 +76,9 @@
|
||||
|
||||
<div class="condition-box controlhover">
|
||||
<div class="time-cond">
|
||||
<span>过去7天</span>
|
||||
<span class="model-times" id="times{{d.id}}">过去7天</span>
|
||||
<div class="xian"></div>
|
||||
<span>按天</span>
|
||||
<span class="model-screenlist">按天</span>
|
||||
{{# if(d.cat === "retention"){ }}
|
||||
<div class="xian"></div>
|
||||
{{# if(d.retentiontype === 0){ }}
|
||||
@ -206,9 +206,9 @@
|
||||
|
||||
<div class="condition-box controlhover">
|
||||
<div class="time-cond">
|
||||
<span>过去7天</span>
|
||||
<span class="model-times" id="times{{d.id}}">过去7天</span>
|
||||
<div class="xian"></div>
|
||||
<span>按天</span>
|
||||
<span class="model-screenlist">按天</span>
|
||||
{{# if(d.cat === "retention"){ }}
|
||||
<div class="xian"></div>
|
||||
{{# if(d.retentiontype === 0){ }}
|
||||
@ -229,6 +229,16 @@
|
||||
<div class="proportion">
|
||||
<!-- <div class="proportion-data">较环比 <div class="sanjiao"></div><span>5.4%</span></div>
|
||||
<div class="proportion-data">较同比 <div class="sanjiao"></div><span>5.4%</span></div> -->
|
||||
{{# if(d.wowtyle == '-'){ }}
|
||||
<div class="proportion-data">较环比 <div class="sanjiao"></div><span>{{d.wow}}%</span></div>
|
||||
{{# } else { }}
|
||||
<div class="proportion-data">较环比 <div class="sanjiao fu"></div><span class="funum">{{d.wow}}%</span></div>
|
||||
{{# } }}
|
||||
{{# if(d.chain_ratiotype == "+"){ }}
|
||||
<div class="proportion-data">较同比 <div class="sanjiao"></div><span>{{d.chain_ratio}}%</span></div>
|
||||
{{# } else { }}
|
||||
<div class="proportion-data">较同比 <div class="sanjiao fu"></div><span class="funum">{{d.chain_ratio}}%</span></div>
|
||||
{{# } }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
119
web/pages/setupbaobiao.html
Normal file
119
web/pages/setupbaobiao.html
Normal file
@ -0,0 +1,119 @@
|
||||
<!-- 报表设置 -->
|
||||
<div class="setupbaobiao-box">
|
||||
<div class="setupbaobiao-top-box">
|
||||
<p>
|
||||
看板报表设置 该设置对共享成员也生效
|
||||
</p>
|
||||
<div class="setupbaobiao-but-box">
|
||||
<div class="setupbaobiao-xq">取消</div>
|
||||
<div class="setupbaobiao-yy">应 用</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="setupbaobiao-content-box">
|
||||
|
||||
<div class="setupbaobiao-left-box">
|
||||
<div class="setupbaobiao-con-top-box">
|
||||
<i class="iconfont" style="font-size: 12px; color: #67729d; margin-right:10px;"></i>
|
||||
<span>修改报表设置 修改后报表同时修改</span>
|
||||
</div>
|
||||
<div class="setupbaobiao-left-from">
|
||||
<div class="setupbaobiao-left-from-list-box">
|
||||
<span class="setupbaobiao-left-from-list-title">报表名称</span>
|
||||
<div class="setupbaobiao-left-from-list-input">
|
||||
<input autocomplete="off" type="text" class="setupbaobiao-title"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="setupbaobiao-left-from-list-box">
|
||||
<span class="setupbaobiao-left-from-list-title">分析时间粒度</span>
|
||||
<div class="setupbaobiao-left-from-list-input">
|
||||
<select class="setupbaobiao-select">
|
||||
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="setupbaobiao-left-from-list-box">
|
||||
<span class="setupbaobiao-left-from-list-title">报表备注</span>
|
||||
<div class="setupbaobiao-left-from-list-input">
|
||||
<textarea class="setupbaobiao-textarea"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="setupbaobiao-right-box">
|
||||
<div class="setupbaobiao-con-top-box">
|
||||
<i class="iconfont" style="font-size: 12px; color: #67729d; margin-right:10px;"></i>
|
||||
<span>修改图表设置 修改后只修改展示样式</span>
|
||||
</div>
|
||||
|
||||
<div class="setupbaobiao-right-from">
|
||||
<div class="setupbaobiao-left-from-list-box">
|
||||
<span class="setupbaobiao-left-from-list-title">时间选框</span>
|
||||
<div class="setupbaobiao-left-from-list-input">
|
||||
<div class="setupbaobiao-rli-box">
|
||||
<span class="setupbaobiao-rli-box2">
|
||||
<span style="display: inline-block;"><img src="./static/img/rli.png"/> <span style="position: relative; top: 2px;" class="setupbaobiao-time">过去30天</span></span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="setupbaobiao-left-from-list-box">
|
||||
<span class="setupbaobiao-left-from-list-title">图表类型</span>
|
||||
<div class="setupbaobiao-left-from-list-input">
|
||||
<div>
|
||||
<div class="setupbaobiao-charttype">
|
||||
<div class="shape___2nUUi" data-type="echarts" id="setupbaobiao-echarts">
|
||||
<i class="iconfont" style="font-size: 14px;"></i>
|
||||
</div>
|
||||
<!-- <div class="shape___2nUUi">
|
||||
<i class="iconfont" style="font-size: 14px;"></i>
|
||||
</div>
|
||||
<div class="shape___2nUUi">
|
||||
<i class="iconfont" style="font-size: 14px;"></i>
|
||||
</div> -->
|
||||
<div class="shape___2nUUi" data-type="table" id="setupbaobiao-table">
|
||||
<i class="iconfont" style="font-size: 14px;"></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="setupbaobiao-left-from-list-box">
|
||||
<span class="setupbaobiao-left-from-list-title">视窗大小</span>
|
||||
<div class="setupbaobiao-left-from-list-radio">
|
||||
<div class="setupbaobiao-left-from-list-radio-box">
|
||||
<div>
|
||||
<input type="radio" name="modelsize" value="small" id="setupbaobiao-small">小图
|
||||
</div>
|
||||
<div style="margin-left: 20px;">
|
||||
<input type="radio" name="modelsize" value="in" id="setupbaobiao-in">中图
|
||||
</div>
|
||||
<div style="margin-left: 20px;">
|
||||
<input type="radio" name="modelsize" value="large" id="setupbaobiao-large">大图
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="setupbaobiao-zs">小图:只展示最核心数据,适用于定位核心数据数值</p>
|
||||
<p class="setupbaobiao-zs">中图:根据图表类型展示,使用于快速浏览图表信息</p>
|
||||
<p class="setupbaobiao-zs">大图:根据图表类型展示,适用于细致观察图表信息</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<script id="setupbaobiao-select-dot" type="text/html">
|
||||
{{# layui.each(d, function(index, item) { }}
|
||||
<option value="{{item.id}}">{{item.title}}</option>
|
||||
{{# }); }}
|
||||
|
||||
</script>
|
539
web/src/x.min.js
vendored
539
web/src/x.min.js
vendored
@ -80,8 +80,32 @@ var X = window.X || {
|
||||
{'title': "UTC-07:00",id:7},
|
||||
{'title': "UTC±00:00",id:0}
|
||||
],
|
||||
'analysis':{
|
||||
|
||||
'analysis':{},
|
||||
'screenlist':{
|
||||
'event':[
|
||||
{'title':'按天','id':'P1D'},
|
||||
{'title':'按分钟','id':'PT1M'},
|
||||
{'title':'每五分钟','id':'PT5M'},
|
||||
{'title':'每十分钟','id':'PT10M'},
|
||||
{'title':'每十五分钟','id':'PT15M'},
|
||||
{'title':'按小时','id':'PT1H'},
|
||||
{'title':'按周','id':'P1W'},
|
||||
{'title':'按月','id':'P1M'},
|
||||
{'title':'合计','id':'total'},
|
||||
],
|
||||
'retention':[
|
||||
{'title':'当日','id':'1'},
|
||||
{'title':'次日','id':'2'},
|
||||
{'title':'7日','id':'7'},
|
||||
{'title':'14日','id':'14'},
|
||||
{'title':'30日','id':'30'}
|
||||
],
|
||||
'distribution':[
|
||||
{'title':'按天','id':'P1D'},
|
||||
{'title':'按周','id':'P1W'},
|
||||
{'title':'按月','id':'P1M'},
|
||||
{'title':'合计','id':'total'}
|
||||
]
|
||||
}
|
||||
},
|
||||
};
|
||||
@ -156,6 +180,43 @@ var X = window.X || {
|
||||
});
|
||||
};
|
||||
|
||||
//下载报表
|
||||
X.download=function(url, params,name){
|
||||
console.log(url);
|
||||
postDownload(url, params,name);
|
||||
};
|
||||
|
||||
async function postDownload(url, params,name) {
|
||||
var loginCache = X.loginCache();
|
||||
var token = (loginCache? loginCache.token:"");
|
||||
token = "Bearer "+token;
|
||||
|
||||
var url = ipurl+url+"?game="+ X.DATA.game;
|
||||
const request = {
|
||||
async: true,
|
||||
body: JSON.stringify(params),
|
||||
method: 'POST',
|
||||
headers: {
|
||||
Authorization:token//此处放置请求到的用户token
|
||||
}
|
||||
}
|
||||
|
||||
const response = await fetch(url, request);
|
||||
|
||||
// const filename = response.headers.get('content-disposition').split('=')[1];
|
||||
const filename = name+'.xlsx';
|
||||
const blob = await response.blob();
|
||||
|
||||
const link = document.createElement('a')
|
||||
link.download = decodeURIComponent(filename)
|
||||
link.style.display = 'none'
|
||||
link.href = URL.createObjectURL(blob)
|
||||
document.body.appendChild(link)
|
||||
link.click()
|
||||
URL.revokeObjectURL(link.href)
|
||||
document.body.removeChild(link)
|
||||
};
|
||||
|
||||
X.template = function(url,id,data,callback){
|
||||
$.get('pages/'+ url + '.html',function(content){
|
||||
$('#'+id).html(content);
|
||||
@ -478,12 +539,24 @@ var X = window.X || {
|
||||
var titledata,condata = [];
|
||||
for(let i in data){
|
||||
if(data[i]['values'].length > 0 ){
|
||||
if(data[i]['groups']['length'] == 0){
|
||||
titledata= $.extend(true,[],data[0]['date_range']) ;
|
||||
titledata.unshift('指标','阶段总和');
|
||||
condata.push(data[i].values[0]);
|
||||
condata[i].unshift(data[i]['event_name'],data[i]['sum']);
|
||||
titledata= $.extend(true,[],data[0]['date_range']);
|
||||
titledata.unshift('指标','阶段总和');
|
||||
if(data[i]['groups']['length'] != 0){
|
||||
|
||||
for(let j in data[i]['values']){
|
||||
var arr;
|
||||
arr = $.extend(true,[],data[i].values[j])
|
||||
arr.unshift(data[i]['event_name'],data[i]['sum'][j]);
|
||||
condata.push(arr);
|
||||
}
|
||||
// condata.push(data[i].values[0]);
|
||||
// condata[i].unshift(data[i]['event_name'],data[i]['sum']);
|
||||
// console.log(condata);
|
||||
}else {
|
||||
var arr;
|
||||
arr = $.extend(true,[],data[i].values[0])
|
||||
arr.unshift(data[i]['event_name'],data[i]['sum'][0]);
|
||||
condata.push(arr)
|
||||
}
|
||||
}else {
|
||||
layer.msg('查询数据为空');
|
||||
@ -493,7 +566,6 @@ var X = window.X || {
|
||||
titledata:titledata,
|
||||
condata:condata
|
||||
}
|
||||
|
||||
callback && callback(dataArr);
|
||||
};
|
||||
|
||||
@ -510,6 +582,7 @@ var X = window.X || {
|
||||
var mean = 0;
|
||||
var sameday = 0;
|
||||
var date;
|
||||
var wowtype,chain_ratiotype;//判断较环比和较同比的正负
|
||||
|
||||
var length = data[0]['date_range'].length - 1;
|
||||
date = data[0]['date_range'][length];
|
||||
@ -518,8 +591,6 @@ var X = window.X || {
|
||||
var arr = {
|
||||
name: '',
|
||||
type: 'line',
|
||||
stack: '总量',
|
||||
|
||||
data: data[i]['values'][z]
|
||||
}
|
||||
seriesData.push(arr);
|
||||
@ -537,6 +608,18 @@ var X = window.X || {
|
||||
}
|
||||
}
|
||||
|
||||
if(data[0]['wow'] >= 0){
|
||||
wowtype = '+'
|
||||
}else{
|
||||
wowtype = '-'
|
||||
}
|
||||
|
||||
if(data[0]['chain_ratio'] >= 0){
|
||||
chain_ratiotype = '+'
|
||||
}else{
|
||||
chain_ratiotype = '-'
|
||||
}
|
||||
console.log(111,data[0]['date_range']);
|
||||
var dataArr = {
|
||||
xAxisData:data[0]['date_range'],
|
||||
legenddata:legenddata,
|
||||
@ -544,14 +627,20 @@ var X = window.X || {
|
||||
date:date,
|
||||
sum:sum,
|
||||
mean:mean,
|
||||
sameday: sameday
|
||||
sameday: sameday,
|
||||
wowtype:wowtype,
|
||||
wow: 0,
|
||||
chain_ratio: 0,
|
||||
// wow: Math.abs(data[0]['wow']),//环比
|
||||
// chain_ratio: Math.abs(data[0]['chain_ratio']),//同比
|
||||
chain_ratiotype:chain_ratiotype
|
||||
}
|
||||
|
||||
callback && callback(dataArr);
|
||||
};
|
||||
|
||||
X.eventsmall = function(data,callback){
|
||||
var date,num,thedayprop,weekprop,thedaypropsize,weekpropsize; //时间,当天数量,与前天对比,与上个星期对比,与前天对比正负,与上个星期对比正负
|
||||
var date,num,wowtype,chain_ratiotype; //时间,当天数量
|
||||
// console.log(data);
|
||||
// for(let i in data){
|
||||
// if(data[i]['groups']['length'] == 0){
|
||||
@ -562,32 +651,23 @@ var X = window.X || {
|
||||
var length = data[0]['date_range'].length - 1;
|
||||
date = data[0]['date_range'][length];
|
||||
num = data[0]['values'][0][length];
|
||||
thedayprop = num / data[0]['values'][0][length - 1];
|
||||
weekprop = num / data[0]['values'][0][length - 8];
|
||||
var prop1,prop2;
|
||||
if(thedayprop >= 1){
|
||||
prop1 = parseFloat((thedayprop - 1)*100);
|
||||
thedaypropsize = '+';
|
||||
}else {
|
||||
prop1 = parseFloat((1 - thedayprop)*100);
|
||||
thedaypropsize = '-';
|
||||
if(data[0]['wow'] >= 0){
|
||||
wowtype = '+'
|
||||
}else{
|
||||
wowtype = '-'
|
||||
}
|
||||
|
||||
if(weekprop >= 1){
|
||||
prop2 = parseFloat((weekprop - 1)*100);
|
||||
weekpropsize = '+';
|
||||
}else {
|
||||
prop2 = parseFloat((1 - weekprop)*100);
|
||||
weekpropsize = '-';
|
||||
if(data[0]['chain_ratio'] >= 0){
|
||||
chain_ratiotype = '+'
|
||||
}else{
|
||||
chain_ratiotype = '-'
|
||||
}
|
||||
|
||||
var dataArr = {
|
||||
date: date,
|
||||
num: num,
|
||||
thedayprop: prop1.toFixed(2),
|
||||
thedaypropsize:thedaypropsize,
|
||||
weekprop: weekprop.toFixed(2),
|
||||
weekpropsize:weekpropsize
|
||||
wowtype: wowtype,
|
||||
chain_ratiotype: chain_ratiotype
|
||||
}
|
||||
callback && callback(dataArr);
|
||||
};
|
||||
@ -2409,19 +2489,7 @@ var X = window.X || {
|
||||
});
|
||||
|
||||
// 时间粒度
|
||||
var timeParticleSizearr = [
|
||||
{'title':'按天','id':'P1D'},
|
||||
{'title':'按分钟','id':'PT1M'},
|
||||
{'title':'每五分钟','id':'PT5M'},
|
||||
{'title':'每十分钟','id':'PT10M'},
|
||||
{'title':'每十五分钟','id':'PT15M'},
|
||||
{'title':'按小时','id':'PT1H'},
|
||||
{'title':'按周','id':'P1W'},
|
||||
{'title':'按月','id':'P1M'},
|
||||
{'title':'合计','id':'total'},
|
||||
];
|
||||
|
||||
X.laydropdown('.analtsis-timeParticleSize',timeParticleSizearr,function(d){
|
||||
X.laydropdown('.analtsis-timeParticleSize',X['DATA']['screenlist']['event'],function(d){
|
||||
$(".analtsis-timeParticleSize").html(d.title);
|
||||
data['eventView']['timeParticleSize'] = d.id;
|
||||
calculationdata();
|
||||
@ -2551,6 +2619,9 @@ var X = window.X || {
|
||||
seriesData[i]['name'] = xAxisData[i];
|
||||
}
|
||||
}
|
||||
console.log(xAxisData)
|
||||
console.log(seriesData)
|
||||
console.log(d[0]['date_range']);
|
||||
var myChart = echarts.init(document.getElementById('analysis-echarts'));
|
||||
var option = {
|
||||
title: {
|
||||
@ -2763,8 +2834,6 @@ var X = window.X || {
|
||||
if(d[0].values.length > 0 ){
|
||||
updata();
|
||||
tabledata(d);
|
||||
// stackingdiagram(d);
|
||||
// tabledata(d);
|
||||
}else {
|
||||
$("#analysis-echarts").empty();
|
||||
layer.msg("无数据");
|
||||
@ -3877,7 +3946,6 @@ var X = window.X || {
|
||||
//更新报表
|
||||
$(document).off('click','.model-gengx').on('click','.model-gengx',function(){
|
||||
var id = $(this).attr('data-id');
|
||||
// console.log(id);
|
||||
X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(d){
|
||||
// return;
|
||||
X.pageLogic['dashboard'].fillmodeldata(d[id]);
|
||||
@ -3929,7 +3997,6 @@ var X = window.X || {
|
||||
//删除看板
|
||||
$(document).off('click','.nav-action-bar').on('click','.nav-action-bar',function(e){
|
||||
e.stopPropagation();
|
||||
// console.log('更多操作按钮');
|
||||
var obj = $(this);
|
||||
var offset = obj.offset();
|
||||
var offsets = [ offset.top + 10,offset.left];
|
||||
@ -3978,121 +4045,9 @@ var X = window.X || {
|
||||
//填充看板数据
|
||||
//总体逻辑是:根据获取到的看板内容去先渲染放置的框,在根据不同分析模型处理对应的数据进行填充
|
||||
fillmodeldata:function(d,id,type){//
|
||||
// console.log(d);
|
||||
X.api("ck/"+d['model']+"_model","post",{report_id:d['report_id']},function(val){
|
||||
var eventdata=[];
|
||||
var eventdata = X.pageLogic['dashboard'].modeldata(d,val,type);
|
||||
var data;
|
||||
if(d['model'] == "event"){
|
||||
// 事件分析
|
||||
if(d['graph_size'] == 'small'){
|
||||
X.eventsmall(val,function(data){//表格数据处理
|
||||
data['name'] = d['name'];
|
||||
data['modeltype'] = d['graph_type'];
|
||||
data['id'] = d['report_id'];
|
||||
data['modelsize'] = d['graph_size'];
|
||||
data['cat'] = d['model'];
|
||||
eventdata.push(data);
|
||||
})
|
||||
}else {
|
||||
if(d['graph_type'] == 'table'){
|
||||
//表格样式
|
||||
X.eventtable(val,function(data){//表格数据处理
|
||||
data['name'] = d['name'];
|
||||
data['modeltype'] = d['graph_type'];
|
||||
data['id'] = d['report_id'];
|
||||
data['modelsize'] = d['graph_size'];
|
||||
data['cat'] = d['model'];
|
||||
eventdata.push(data);
|
||||
})
|
||||
}else if(d['graph_type'] == 'echarts'){
|
||||
//图形
|
||||
X.eventchart(val,function(data){
|
||||
data['name'] = d['name'];
|
||||
data['modeltype'] = d['graph_type'];
|
||||
data['id'] = d['report_id'];
|
||||
data['modelsize'] = d['graph_size'];
|
||||
data['cat'] = d['model'];
|
||||
eventdata.push(data);
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
} else if(d['model'] == "retention"){
|
||||
//留存分析
|
||||
if(type){
|
||||
val['retentiontype'] = type;
|
||||
}else {
|
||||
val['retentiontype'] = 0
|
||||
}
|
||||
if(d['graph_size'] == 'small'){
|
||||
|
||||
}else {
|
||||
if(d['graph_type'] == 'table'){
|
||||
X.retentiontable(val,function(data){
|
||||
data['name'] = d['name'];
|
||||
data['modeltype'] = d['graph_type'];
|
||||
data['id'] = d['report_id'];
|
||||
data['modelsize'] = d['graph_size'];
|
||||
data['cat'] = d['model'];
|
||||
eventdata.push(data);
|
||||
})
|
||||
|
||||
}else {
|
||||
X.retentionchart(val,function(data){
|
||||
data['name'] = d['name'];
|
||||
data['modeltype'] = d['graph_type'];
|
||||
data['id'] = d['report_id'];
|
||||
data['modelsize'] = d['graph_size'];
|
||||
data['cat'] = d['model'];
|
||||
eventdata.push(data);
|
||||
})
|
||||
}
|
||||
}
|
||||
}else if(d['model'] == 'ltv'){
|
||||
//ltv模型
|
||||
if(d['graph_type'] == 'table'){
|
||||
X.ltvtable(val,function(data){
|
||||
data['name'] = d['name'];
|
||||
data['modeltype'] = d['graph_type'];
|
||||
data['id'] = d['report_id'];
|
||||
data['modelsize'] = d['graph_size'];
|
||||
data['cat'] = d['model'];
|
||||
eventdata.push(data);
|
||||
})
|
||||
}else {
|
||||
X.ltvtable(val,function(data){
|
||||
data['name'] = d['name'];
|
||||
data['modeltype'] = d['graph_type'];
|
||||
data['id'] = d['report_id'];
|
||||
data['modelsize'] = d['graph_size'];
|
||||
data['cat'] = d['model'];
|
||||
eventdata.push(data);
|
||||
})
|
||||
}
|
||||
}else if(d['model'] == 'user_property'){
|
||||
// 属性分析
|
||||
if(d['graph_type'] == 'table'){
|
||||
X.userpropertytable(val,function(data){
|
||||
data['name'] = d['name'];
|
||||
data['modeltype'] = d['graph_type'];
|
||||
data['id'] = d['report_id'];
|
||||
data['modelsize'] = d['graph_size'];
|
||||
data['cat'] = d['model'];
|
||||
eventdata.push(data);
|
||||
})
|
||||
}else {
|
||||
X.userpropertychart(val,function(data){
|
||||
data['name'] = d['name'];
|
||||
data['modeltype'] = d['graph_type'];
|
||||
data['id'] = d['report_id'];
|
||||
data['modelsize'] = d['graph_size'];
|
||||
data['cat'] = d['model'];
|
||||
eventdata.push(data);
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
if(eventdata.length > 0){
|
||||
for(var z in eventdata){
|
||||
if(id){
|
||||
@ -4109,17 +4064,125 @@ var X = window.X || {
|
||||
}
|
||||
}
|
||||
|
||||
// $('.layui-row').dad({
|
||||
// draggable: '.layui-card'
|
||||
// });
|
||||
// $('.layui-row').dad({
|
||||
// draggable:'table'
|
||||
// });
|
||||
|
||||
|
||||
})
|
||||
},
|
||||
|
||||
modeldata:function(d,val,type){
|
||||
var eventdata = [];
|
||||
if(d['model'] == "event"){
|
||||
// 事件分析
|
||||
if(d['graph_size'] == 'small'){
|
||||
X.eventsmall(val,function(data){//表格数据处理
|
||||
data['name'] = d['name'];
|
||||
data['modeltype'] = d['graph_type'];
|
||||
data['id'] = d['report_id'];
|
||||
data['modelsize'] = d['graph_size'];
|
||||
data['cat'] = d['model'];
|
||||
data['wow'] = Math.abs(val[0]['wow']);
|
||||
data['chain_ratio'] = Math.abs(val[0]['chain_ratio']);
|
||||
eventdata.push(data);
|
||||
})
|
||||
}else {
|
||||
if(d['graph_type'] == 'table'){
|
||||
//表格样式
|
||||
X.eventtable(val,function(data){//表格数据处理
|
||||
data['name'] = d['name'];
|
||||
data['modeltype'] = d['graph_type'];
|
||||
data['id'] = d['report_id'];
|
||||
data['modelsize'] = d['graph_size'];
|
||||
data['cat'] = d['model'];
|
||||
eventdata.push(data);
|
||||
})
|
||||
}else if(d['graph_type'] == 'echarts'){
|
||||
//图形
|
||||
X.eventchart(val,function(data){
|
||||
data['name'] = d['name'];
|
||||
data['modeltype'] = d['graph_type'];
|
||||
data['id'] = d['report_id'];
|
||||
data['modelsize'] = d['graph_size'];
|
||||
data['cat'] = d['model'];
|
||||
eventdata.push(data);
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
} else if(d['model'] == "retention"){
|
||||
//留存分析
|
||||
if(type){
|
||||
val['retentiontype'] = type;
|
||||
}else {
|
||||
val['retentiontype'] = 0
|
||||
}
|
||||
if(d['graph_size'] == 'small'){
|
||||
|
||||
}else {
|
||||
if(d['graph_type'] == 'table'){
|
||||
X.retentiontable(val,function(data){
|
||||
data['name'] = d['name'];
|
||||
data['modeltype'] = d['graph_type'];
|
||||
data['id'] = d['report_id'];
|
||||
data['modelsize'] = d['graph_size'];
|
||||
data['cat'] = d['model'];
|
||||
eventdata.push(data);
|
||||
})
|
||||
|
||||
}else {
|
||||
X.retentionchart(val,function(data){
|
||||
data['name'] = d['name'];
|
||||
data['modeltype'] = d['graph_type'];
|
||||
data['id'] = d['report_id'];
|
||||
data['modelsize'] = d['graph_size'];
|
||||
data['cat'] = d['model'];
|
||||
eventdata.push(data);
|
||||
})
|
||||
}
|
||||
}
|
||||
}else if(d['model'] == 'ltv'){
|
||||
//ltv模型
|
||||
if(d['graph_type'] == 'table'){
|
||||
X.ltvtable(val,function(data){
|
||||
data['name'] = d['name'];
|
||||
data['modeltype'] = d['graph_type'];
|
||||
data['id'] = d['report_id'];
|
||||
data['modelsize'] = d['graph_size'];
|
||||
data['cat'] = d['model'];
|
||||
eventdata.push(data);
|
||||
})
|
||||
}else {
|
||||
X.ltvtable(val,function(data){
|
||||
data['name'] = d['name'];
|
||||
data['modeltype'] = d['graph_type'];
|
||||
data['id'] = d['report_id'];
|
||||
data['modelsize'] = d['graph_size'];
|
||||
data['cat'] = d['model'];
|
||||
eventdata.push(data);
|
||||
})
|
||||
}
|
||||
}else if(d['model'] == 'user_property'){
|
||||
// 属性分析
|
||||
if(d['graph_type'] == 'table'){
|
||||
X.userpropertytable(val,function(data){
|
||||
data['name'] = d['name'];
|
||||
data['modeltype'] = d['graph_type'];
|
||||
data['id'] = d['report_id'];
|
||||
data['modelsize'] = d['graph_size'];
|
||||
data['cat'] = d['model'];
|
||||
eventdata.push(data);
|
||||
})
|
||||
}else {
|
||||
X.userpropertychart(val,function(data){
|
||||
data['name'] = d['name'];
|
||||
data['modeltype'] = d['graph_type'];
|
||||
data['id'] = d['report_id'];
|
||||
data['modelsize'] = d['graph_size'];
|
||||
data['cat'] = d['model'];
|
||||
eventdata.push(data);
|
||||
})
|
||||
}
|
||||
}
|
||||
return eventdata;
|
||||
},
|
||||
|
||||
//画统计图和添加移入移出事件
|
||||
morefeatures:function(eventdata){
|
||||
|
||||
@ -4142,7 +4205,6 @@ var X = window.X || {
|
||||
name:name
|
||||
}
|
||||
X.api('dashboard/edit_show_report','post',{dashboard_id:X.DATA.dashboard_id,config:data},function(d){
|
||||
// console.log(d);
|
||||
X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(val){
|
||||
for(let i in val){
|
||||
if(val[i]['report_id'] == id){
|
||||
@ -4161,8 +4223,7 @@ var X = window.X || {
|
||||
]
|
||||
if(eventdata.cat == 'retention'){
|
||||
X.laydropdown("#retention"+eventdata.id,retentionlist,function(d){
|
||||
console.log(d.id);
|
||||
console.log(eventdata);
|
||||
|
||||
var retentiontype = d.id;
|
||||
var modelid = "retention"+eventdata.id;
|
||||
X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(val){
|
||||
@ -4178,7 +4239,6 @@ var X = window.X || {
|
||||
|
||||
//更多按钮配置下拉框
|
||||
X.laydropdown(".model-gengduo",X['DATA']['gengduolist'],function(d){
|
||||
console.log(eventdata);
|
||||
if(d.id == 'shezhi'){
|
||||
var data = {
|
||||
id : eventdata.id,
|
||||
@ -4186,10 +4246,10 @@ var X = window.X || {
|
||||
modeltype : eventdata.modeltype
|
||||
}
|
||||
X.parametersopen(data,'setupbaobiao',"auto",function(d){
|
||||
|
||||
X.pageLogic['dashboard'].gettabledata();
|
||||
})
|
||||
}else if(d.id == 'export'){
|
||||
layer.msg('暂未开放功能');
|
||||
X.download('ck/event_model_export',{report_id:eventdata.id},eventdata.name);
|
||||
}else {
|
||||
|
||||
layer.confirm('确认移除['+ eventdata.name + ']', {
|
||||
@ -4203,11 +4263,46 @@ var X = window.X || {
|
||||
X.pageLogic['dashboard'].gettabledata();
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
//设置时间
|
||||
X.daterender(".model-times",function(start, end, label){
|
||||
// console.log(eventdata);
|
||||
// console.log('times'+eventdata.id);
|
||||
var id = 'times'+eventdata.id;
|
||||
$("#"+id).html('111');
|
||||
});
|
||||
|
||||
X.laydropdown(".model-screenlist",X['DATA']['screenlist'][eventdata.cat],function(d){
|
||||
var modelid = eventdata['cat']+eventdata.id;
|
||||
var reportid = [];
|
||||
reportid.push(eventdata.id);
|
||||
X.api('report/read_report','post',{project_id:X.DATA['projectid'],report_id:reportid},function(val){
|
||||
var query = {
|
||||
eventView:val[0]['query']['eventView'],
|
||||
events:val[0]['query']['events'],
|
||||
};
|
||||
query['eventView']['timeParticleSize'] = d.id;
|
||||
X.api("ck/"+ eventdata.cat +"_model","post",query,function(val){
|
||||
var bbsetdata = {
|
||||
graph_size:eventdata['modelsize'],
|
||||
graph_type:eventdata['modeltype'],
|
||||
model:eventdata['cat'],
|
||||
name:eventdata['name'],
|
||||
report_id:eventdata['id'],
|
||||
}
|
||||
|
||||
var modeldata = X.pageLogic['dashboard'].modeldata(bbsetdata,val);
|
||||
// console.log(modeldata);
|
||||
//渲染模板和数据
|
||||
X.template("modeltable",'model'+modeldata[0]['id'],modeldata[0],function(){
|
||||
X.pageLogic['dashboard'].morefeatures(modeldata);
|
||||
});
|
||||
})
|
||||
})
|
||||
|
||||
});
|
||||
|
||||
if(eventdata['modeltype'] == 'echarts' && eventdata['modelsize'] != 'small' ){
|
||||
var myChart = echarts.init(document.getElementById(eventdata['id']));
|
||||
@ -4253,9 +4348,6 @@ var X = window.X || {
|
||||
};
|
||||
}else{
|
||||
var option = {
|
||||
title: {
|
||||
text: ''
|
||||
},
|
||||
color: X.DATA.echartscolor,
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
@ -4280,7 +4372,7 @@ var X = window.X || {
|
||||
xAxis: [
|
||||
{
|
||||
type: 'category',
|
||||
boundaryGap: false,
|
||||
axisTick: {show: false},
|
||||
data: eventdata['xAxisData']
|
||||
}
|
||||
],
|
||||
@ -4294,7 +4386,7 @@ var X = window.X || {
|
||||
}
|
||||
|
||||
myChart.setOption(option,true);
|
||||
}
|
||||
};
|
||||
|
||||
},
|
||||
|
||||
@ -4675,7 +4767,7 @@ var X = window.X || {
|
||||
"comparator_name":d[0]['category'][0]['category'][0]['title'],//选择符号中文显示
|
||||
"comparator":d[0]['category'][0]['category'][0]['id'],//符号id
|
||||
"data_type":d[0]['category'][0]['data_type'],
|
||||
"ftv":'',//条件
|
||||
"ftv":[],//条件
|
||||
"strftv":'',//字符串显示条件
|
||||
"tableType": d[0]['id']
|
||||
} //筛选数据
|
||||
@ -4775,13 +4867,7 @@ var X = window.X || {
|
||||
})
|
||||
|
||||
// 时间粒度
|
||||
var timeParticleSizearr = [
|
||||
{'title':'按天','id':'P1D'},
|
||||
{'title':'按周','id':'P1W'},
|
||||
{'title':'按月','id':'P1M'},
|
||||
{'title':'合计','id':'total'}
|
||||
]
|
||||
X.laydropdown('.analtsis-timeParticleSize',timeParticleSizearr,function(d){
|
||||
X.laydropdown('.analtsis-timeParticleSize',X['DATA']['screenlist']['distribution'],function(d){
|
||||
console.log(d);
|
||||
$(".analtsis-timeParticleSize").html(d.title);
|
||||
data['eventView']['timeParticleSize'] = d.id;
|
||||
@ -7069,7 +7155,7 @@ var X = window.X || {
|
||||
this.parms = parms;
|
||||
this.callback = parms.callback;
|
||||
var data = parms;
|
||||
|
||||
console.log(data);
|
||||
X.laytpldata("#kanban-model-modify-table-dot",data,"model"+data.id,function(html){
|
||||
|
||||
$("#model"+data.id).html(html);
|
||||
@ -8270,14 +8356,7 @@ var X = window.X || {
|
||||
});
|
||||
|
||||
// 时间粒度
|
||||
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){
|
||||
X.laydropdown('.analtsis-timeParticleSize',X['DATA']['screenlist']['retention'],function(d){
|
||||
// console.log(d);
|
||||
$(".analtsis-timeParticleSize").html(d.title);
|
||||
data['eventView']['unitNum'] = parseInt(d.id);
|
||||
@ -8365,6 +8444,7 @@ var X = window.X || {
|
||||
else if(title == '每日留存'){ $(".table-div-box").hide(); $(".analysis-echarts").show(); retaineddayRetained(d) }
|
||||
};
|
||||
|
||||
//数据报表渲染
|
||||
function retainedtable(d){
|
||||
var nname,pname
|
||||
if(retentiontype == 0) {
|
||||
@ -8507,7 +8587,7 @@ var X = window.X || {
|
||||
};
|
||||
myChart.setOption(option,true);
|
||||
};
|
||||
|
||||
// 第N日留存
|
||||
function retainednRetained(d){
|
||||
var nname,pname
|
||||
if(retentiontype == 0) {
|
||||
@ -9750,14 +9830,15 @@ var X = window.X || {
|
||||
init : function(parms){
|
||||
var me = this;
|
||||
this.parms = parms;
|
||||
this.callback = parms.callback;
|
||||
var data = parms.extData;
|
||||
var report_id = [];
|
||||
console.log(data);
|
||||
report_id.push(data.id);
|
||||
var postdata;//上传数据
|
||||
X.api('report/read_report','post',{project_id:X.DATA.projectid,report_id:report_id},function(d){
|
||||
console.log(d);
|
||||
postdata = d;
|
||||
$('.setupbaobiao-title').val(d[0]['name']);
|
||||
$('.setupbaobiao-textarea').html(d[0]['desc']);
|
||||
$('.setupbaobiao-textarea').val(d[0]['desc']);
|
||||
// 初始化时间
|
||||
var endTime = d[0]['query']['eventView']['endTime'];
|
||||
var startTime = d[0]['query']['eventView']['startTime'];
|
||||
@ -9775,15 +9856,34 @@ var X = window.X || {
|
||||
}else{//大图
|
||||
$("#setupbaobiao-large").prop("checked",true);
|
||||
}
|
||||
X.laytpldata("#setupbaobiao-select-dot",X['DATA']['screenlist'][d[0]['cat']],".setupbaobiao-select");
|
||||
});
|
||||
|
||||
X.daterender(".setupbaobiao-rli-box2",function(start, end, label){
|
||||
var startTime = start.format('YYYY-MM-DD')+ " "+ "00:00:00";
|
||||
var endTime = end.format('YYYY-MM-DD')+ " "+ "23:59:59";
|
||||
postdata[0]['query']['eventView']['startTime'] = startTime;
|
||||
postdata[0]['query']['eventView']['endTime'] = endTime;
|
||||
$(".setupbaobiao-time").html(startTime +' - '+ endTime);
|
||||
|
||||
var sameday = Date.parse(new Date()) / 1000; //当天时间戳
|
||||
|
||||
var enddate = new Date(end.format('YYYY-MM-DD'));
|
||||
var endmonth = Date.parse(enddate)/1000;
|
||||
|
||||
var startdate = new Date(start.format('YYYY-MM-DD'));
|
||||
var startmonth = Date.parse(startdate)/1000;
|
||||
postdata[0]['query']['e_days'] = parseInt((sameday - endmonth)/86400);
|
||||
postdata[0]['query']['s_days'] = parseInt((sameday - startmonth)/86400);
|
||||
|
||||
console.log(startTime);
|
||||
console.log(endTime);
|
||||
});
|
||||
|
||||
// 分析时间粒度
|
||||
$(document).off('click','.setupbaobiao-select').on('change','.setupbaobiao-select',function(){
|
||||
postdata[0]['query']['eventView']['timeParticleSize'] = $(this).val();
|
||||
});
|
||||
|
||||
$(document).off('click','.shape___2nUUi').on('click','.shape___2nUUi',function(){
|
||||
$('.shape___2nUUi').removeClass('icon___XxbtJ');
|
||||
@ -9795,6 +9895,35 @@ var X = window.X || {
|
||||
});
|
||||
|
||||
$(document).off('click','.setupbaobiao-yy').on('click','.setupbaobiao-yy',function(){
|
||||
var title = $('.setupbaobiao-title').val();
|
||||
var desc = $(".setupbaobiao-textarea").val();
|
||||
var modeltype = $(".icon___XxbtJ").attr('data-type');
|
||||
var modelsize = $('input:radio[name="modelsize"]:checked').val()
|
||||
var arr = {
|
||||
_id:X.DATA.dashboard_id,
|
||||
report:{
|
||||
name: title,
|
||||
report_id:postdata[0]['_id'],
|
||||
desc:desc,
|
||||
model:postdata[0]['cat'],
|
||||
graph_type:modeltype,
|
||||
graph_size:modelsize
|
||||
}
|
||||
}
|
||||
console.log(arr);
|
||||
X.api('dashboard/edit_report','post',arr,function(d){
|
||||
console.log(d);
|
||||
var reportedit = {
|
||||
name: title,
|
||||
desc:desc,
|
||||
query:postdata[0]['query'],
|
||||
report_id:postdata[0]['_id']
|
||||
}
|
||||
X.api('report/edit','post',reportedit,function(d){
|
||||
me.callback && me.callback(d);
|
||||
layer.closeAll();
|
||||
})
|
||||
})
|
||||
|
||||
});
|
||||
|
||||
|
@ -79,8 +79,32 @@ var X = window.X || {
|
||||
{'title': "UTC-07:00",id:7},
|
||||
{'title': "UTC±00:00",id:0}
|
||||
],
|
||||
'analysis':{
|
||||
|
||||
'analysis':{},
|
||||
'screenlist':{
|
||||
'event':[
|
||||
{'title':'按天','id':'P1D'},
|
||||
{'title':'按分钟','id':'PT1M'},
|
||||
{'title':'每五分钟','id':'PT5M'},
|
||||
{'title':'每十分钟','id':'PT10M'},
|
||||
{'title':'每十五分钟','id':'PT15M'},
|
||||
{'title':'按小时','id':'PT1H'},
|
||||
{'title':'按周','id':'P1W'},
|
||||
{'title':'按月','id':'P1M'},
|
||||
{'title':'合计','id':'total'},
|
||||
],
|
||||
'retention':[
|
||||
{'title':'当日','id':'1'},
|
||||
{'title':'次日','id':'2'},
|
||||
{'title':'7日','id':'7'},
|
||||
{'title':'14日','id':'14'},
|
||||
{'title':'30日','id':'30'}
|
||||
],
|
||||
'distribution':[
|
||||
{'title':'按天','id':'P1D'},
|
||||
{'title':'按周','id':'P1W'},
|
||||
{'title':'按月','id':'P1M'},
|
||||
{'title':'合计','id':'total'}
|
||||
]
|
||||
}
|
||||
},
|
||||
};
|
||||
@ -155,6 +179,43 @@ var X = window.X || {
|
||||
});
|
||||
};
|
||||
|
||||
//下载报表
|
||||
X.download=function(url, params,name){
|
||||
console.log(url);
|
||||
postDownload(url, params,name);
|
||||
};
|
||||
|
||||
async function postDownload(url, params,name) {
|
||||
var loginCache = X.loginCache();
|
||||
var token = (loginCache? loginCache.token:"");
|
||||
token = "Bearer "+token;
|
||||
|
||||
var url = ipurl+url+"?game="+ X.DATA.game;
|
||||
const request = {
|
||||
async: true,
|
||||
body: JSON.stringify(params),
|
||||
method: 'POST',
|
||||
headers: {
|
||||
Authorization:token//此处放置请求到的用户token
|
||||
}
|
||||
}
|
||||
|
||||
const response = await fetch(url, request);
|
||||
|
||||
// const filename = response.headers.get('content-disposition').split('=')[1];
|
||||
const filename = name+'.xlsx';
|
||||
const blob = await response.blob();
|
||||
|
||||
const link = document.createElement('a')
|
||||
link.download = decodeURIComponent(filename)
|
||||
link.style.display = 'none'
|
||||
link.href = URL.createObjectURL(blob)
|
||||
document.body.appendChild(link)
|
||||
link.click()
|
||||
URL.revokeObjectURL(link.href)
|
||||
document.body.removeChild(link)
|
||||
};
|
||||
|
||||
X.template = function(url,id,data,callback){
|
||||
$.get('pages/'+ url + '.html',function(content){
|
||||
$('#'+id).html(content);
|
||||
@ -477,12 +538,24 @@ var X = window.X || {
|
||||
var titledata,condata = [];
|
||||
for(let i in data){
|
||||
if(data[i]['values'].length > 0 ){
|
||||
if(data[i]['groups']['length'] == 0){
|
||||
titledata= $.extend(true,[],data[0]['date_range']) ;
|
||||
titledata.unshift('指标','阶段总和');
|
||||
condata.push(data[i].values[0]);
|
||||
condata[i].unshift(data[i]['event_name'],data[i]['sum']);
|
||||
titledata= $.extend(true,[],data[0]['date_range']);
|
||||
titledata.unshift('指标','阶段总和');
|
||||
if(data[i]['groups']['length'] != 0){
|
||||
|
||||
for(let j in data[i]['values']){
|
||||
var arr;
|
||||
arr = $.extend(true,[],data[i].values[j])
|
||||
arr.unshift(data[i]['event_name'],data[i]['sum'][j]);
|
||||
condata.push(arr);
|
||||
}
|
||||
// condata.push(data[i].values[0]);
|
||||
// condata[i].unshift(data[i]['event_name'],data[i]['sum']);
|
||||
// console.log(condata);
|
||||
}else {
|
||||
var arr;
|
||||
arr = $.extend(true,[],data[i].values[0])
|
||||
arr.unshift(data[i]['event_name'],data[i]['sum'][0]);
|
||||
condata.push(arr)
|
||||
}
|
||||
}else {
|
||||
layer.msg('查询数据为空');
|
||||
@ -492,7 +565,6 @@ var X = window.X || {
|
||||
titledata:titledata,
|
||||
condata:condata
|
||||
}
|
||||
|
||||
callback && callback(dataArr);
|
||||
};
|
||||
|
||||
@ -509,6 +581,7 @@ var X = window.X || {
|
||||
var mean = 0;
|
||||
var sameday = 0;
|
||||
var date;
|
||||
var wowtype,chain_ratiotype;//判断较环比和较同比的正负
|
||||
|
||||
var length = data[0]['date_range'].length - 1;
|
||||
date = data[0]['date_range'][length];
|
||||
@ -517,8 +590,6 @@ var X = window.X || {
|
||||
var arr = {
|
||||
name: '',
|
||||
type: 'line',
|
||||
stack: '总量',
|
||||
|
||||
data: data[i]['values'][z]
|
||||
}
|
||||
seriesData.push(arr);
|
||||
@ -536,6 +607,18 @@ var X = window.X || {
|
||||
}
|
||||
}
|
||||
|
||||
if(data[0]['wow'] >= 0){
|
||||
wowtype = '+'
|
||||
}else{
|
||||
wowtype = '-'
|
||||
}
|
||||
|
||||
if(data[0]['chain_ratio'] >= 0){
|
||||
chain_ratiotype = '+'
|
||||
}else{
|
||||
chain_ratiotype = '-'
|
||||
}
|
||||
console.log(111,data[0]['date_range']);
|
||||
var dataArr = {
|
||||
xAxisData:data[0]['date_range'],
|
||||
legenddata:legenddata,
|
||||
@ -543,14 +626,20 @@ var X = window.X || {
|
||||
date:date,
|
||||
sum:sum,
|
||||
mean:mean,
|
||||
sameday: sameday
|
||||
sameday: sameday,
|
||||
wowtype:wowtype,
|
||||
wow: 0,
|
||||
chain_ratio: 0,
|
||||
// wow: Math.abs(data[0]['wow']),//环比
|
||||
// chain_ratio: Math.abs(data[0]['chain_ratio']),//同比
|
||||
chain_ratiotype:chain_ratiotype
|
||||
}
|
||||
|
||||
callback && callback(dataArr);
|
||||
};
|
||||
|
||||
X.eventsmall = function(data,callback){
|
||||
var date,num,thedayprop,weekprop,thedaypropsize,weekpropsize; //时间,当天数量,与前天对比,与上个星期对比,与前天对比正负,与上个星期对比正负
|
||||
var date,num,wowtype,chain_ratiotype; //时间,当天数量
|
||||
// console.log(data);
|
||||
// for(let i in data){
|
||||
// if(data[i]['groups']['length'] == 0){
|
||||
@ -561,32 +650,23 @@ var X = window.X || {
|
||||
var length = data[0]['date_range'].length - 1;
|
||||
date = data[0]['date_range'][length];
|
||||
num = data[0]['values'][0][length];
|
||||
thedayprop = num / data[0]['values'][0][length - 1];
|
||||
weekprop = num / data[0]['values'][0][length - 8];
|
||||
var prop1,prop2;
|
||||
if(thedayprop >= 1){
|
||||
prop1 = parseFloat((thedayprop - 1)*100);
|
||||
thedaypropsize = '+';
|
||||
}else {
|
||||
prop1 = parseFloat((1 - thedayprop)*100);
|
||||
thedaypropsize = '-';
|
||||
if(data[0]['wow'] >= 0){
|
||||
wowtype = '+'
|
||||
}else{
|
||||
wowtype = '-'
|
||||
}
|
||||
|
||||
if(weekprop >= 1){
|
||||
prop2 = parseFloat((weekprop - 1)*100);
|
||||
weekpropsize = '+';
|
||||
}else {
|
||||
prop2 = parseFloat((1 - weekprop)*100);
|
||||
weekpropsize = '-';
|
||||
if(data[0]['chain_ratio'] >= 0){
|
||||
chain_ratiotype = '+'
|
||||
}else{
|
||||
chain_ratiotype = '-'
|
||||
}
|
||||
|
||||
var dataArr = {
|
||||
date: date,
|
||||
num: num,
|
||||
thedayprop: prop1.toFixed(2),
|
||||
thedaypropsize:thedaypropsize,
|
||||
weekprop: weekprop.toFixed(2),
|
||||
weekpropsize:weekpropsize
|
||||
wowtype: wowtype,
|
||||
chain_ratiotype: chain_ratiotype
|
||||
}
|
||||
callback && callback(dataArr);
|
||||
};
|
||||
|
@ -734,19 +734,7 @@
|
||||
});
|
||||
|
||||
// 时间粒度
|
||||
var timeParticleSizearr = [
|
||||
{'title':'按天','id':'P1D'},
|
||||
{'title':'按分钟','id':'PT1M'},
|
||||
{'title':'每五分钟','id':'PT5M'},
|
||||
{'title':'每十分钟','id':'PT10M'},
|
||||
{'title':'每十五分钟','id':'PT15M'},
|
||||
{'title':'按小时','id':'PT1H'},
|
||||
{'title':'按周','id':'P1W'},
|
||||
{'title':'按月','id':'P1M'},
|
||||
{'title':'合计','id':'total'},
|
||||
];
|
||||
|
||||
X.laydropdown('.analtsis-timeParticleSize',timeParticleSizearr,function(d){
|
||||
X.laydropdown('.analtsis-timeParticleSize',X['DATA']['screenlist']['event'],function(d){
|
||||
$(".analtsis-timeParticleSize").html(d.title);
|
||||
data['eventView']['timeParticleSize'] = d.id;
|
||||
calculationdata();
|
||||
@ -876,6 +864,9 @@
|
||||
seriesData[i]['name'] = xAxisData[i];
|
||||
}
|
||||
}
|
||||
console.log(xAxisData)
|
||||
console.log(seriesData)
|
||||
console.log(d[0]['date_range']);
|
||||
var myChart = echarts.init(document.getElementById('analysis-echarts'));
|
||||
var option = {
|
||||
title: {
|
||||
@ -1088,8 +1079,6 @@
|
||||
if(d[0].values.length > 0 ){
|
||||
updata();
|
||||
tabledata(d);
|
||||
// stackingdiagram(d);
|
||||
// tabledata(d);
|
||||
}else {
|
||||
$("#analysis-echarts").empty();
|
||||
layer.msg("无数据");
|
||||
|
@ -243,7 +243,6 @@
|
||||
//更新报表
|
||||
$(document).off('click','.model-gengx').on('click','.model-gengx',function(){
|
||||
var id = $(this).attr('data-id');
|
||||
// console.log(id);
|
||||
X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(d){
|
||||
// return;
|
||||
X.pageLogic['dashboard'].fillmodeldata(d[id]);
|
||||
@ -295,7 +294,6 @@
|
||||
//删除看板
|
||||
$(document).off('click','.nav-action-bar').on('click','.nav-action-bar',function(e){
|
||||
e.stopPropagation();
|
||||
// console.log('更多操作按钮');
|
||||
var obj = $(this);
|
||||
var offset = obj.offset();
|
||||
var offsets = [ offset.top + 10,offset.left];
|
||||
@ -344,121 +342,9 @@
|
||||
//填充看板数据
|
||||
//总体逻辑是:根据获取到的看板内容去先渲染放置的框,在根据不同分析模型处理对应的数据进行填充
|
||||
fillmodeldata:function(d,id,type){//
|
||||
// console.log(d);
|
||||
X.api("ck/"+d['model']+"_model","post",{report_id:d['report_id']},function(val){
|
||||
var eventdata=[];
|
||||
var eventdata = X.pageLogic['dashboard'].modeldata(d,val,type);
|
||||
var data;
|
||||
if(d['model'] == "event"){
|
||||
// 事件分析
|
||||
if(d['graph_size'] == 'small'){
|
||||
X.eventsmall(val,function(data){//表格数据处理
|
||||
data['name'] = d['name'];
|
||||
data['modeltype'] = d['graph_type'];
|
||||
data['id'] = d['report_id'];
|
||||
data['modelsize'] = d['graph_size'];
|
||||
data['cat'] = d['model'];
|
||||
eventdata.push(data);
|
||||
})
|
||||
}else {
|
||||
if(d['graph_type'] == 'table'){
|
||||
//表格样式
|
||||
X.eventtable(val,function(data){//表格数据处理
|
||||
data['name'] = d['name'];
|
||||
data['modeltype'] = d['graph_type'];
|
||||
data['id'] = d['report_id'];
|
||||
data['modelsize'] = d['graph_size'];
|
||||
data['cat'] = d['model'];
|
||||
eventdata.push(data);
|
||||
})
|
||||
}else if(d['graph_type'] == 'echarts'){
|
||||
//图形
|
||||
X.eventchart(val,function(data){
|
||||
data['name'] = d['name'];
|
||||
data['modeltype'] = d['graph_type'];
|
||||
data['id'] = d['report_id'];
|
||||
data['modelsize'] = d['graph_size'];
|
||||
data['cat'] = d['model'];
|
||||
eventdata.push(data);
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
} else if(d['model'] == "retention"){
|
||||
//留存分析
|
||||
if(type){
|
||||
val['retentiontype'] = type;
|
||||
}else {
|
||||
val['retentiontype'] = 0
|
||||
}
|
||||
if(d['graph_size'] == 'small'){
|
||||
|
||||
}else {
|
||||
if(d['graph_type'] == 'table'){
|
||||
X.retentiontable(val,function(data){
|
||||
data['name'] = d['name'];
|
||||
data['modeltype'] = d['graph_type'];
|
||||
data['id'] = d['report_id'];
|
||||
data['modelsize'] = d['graph_size'];
|
||||
data['cat'] = d['model'];
|
||||
eventdata.push(data);
|
||||
})
|
||||
|
||||
}else {
|
||||
X.retentionchart(val,function(data){
|
||||
data['name'] = d['name'];
|
||||
data['modeltype'] = d['graph_type'];
|
||||
data['id'] = d['report_id'];
|
||||
data['modelsize'] = d['graph_size'];
|
||||
data['cat'] = d['model'];
|
||||
eventdata.push(data);
|
||||
})
|
||||
}
|
||||
}
|
||||
}else if(d['model'] == 'ltv'){
|
||||
//ltv模型
|
||||
if(d['graph_type'] == 'table'){
|
||||
X.ltvtable(val,function(data){
|
||||
data['name'] = d['name'];
|
||||
data['modeltype'] = d['graph_type'];
|
||||
data['id'] = d['report_id'];
|
||||
data['modelsize'] = d['graph_size'];
|
||||
data['cat'] = d['model'];
|
||||
eventdata.push(data);
|
||||
})
|
||||
}else {
|
||||
X.ltvtable(val,function(data){
|
||||
data['name'] = d['name'];
|
||||
data['modeltype'] = d['graph_type'];
|
||||
data['id'] = d['report_id'];
|
||||
data['modelsize'] = d['graph_size'];
|
||||
data['cat'] = d['model'];
|
||||
eventdata.push(data);
|
||||
})
|
||||
}
|
||||
}else if(d['model'] == 'user_property'){
|
||||
// 属性分析
|
||||
if(d['graph_type'] == 'table'){
|
||||
X.userpropertytable(val,function(data){
|
||||
data['name'] = d['name'];
|
||||
data['modeltype'] = d['graph_type'];
|
||||
data['id'] = d['report_id'];
|
||||
data['modelsize'] = d['graph_size'];
|
||||
data['cat'] = d['model'];
|
||||
eventdata.push(data);
|
||||
})
|
||||
}else {
|
||||
X.userpropertychart(val,function(data){
|
||||
data['name'] = d['name'];
|
||||
data['modeltype'] = d['graph_type'];
|
||||
data['id'] = d['report_id'];
|
||||
data['modelsize'] = d['graph_size'];
|
||||
data['cat'] = d['model'];
|
||||
eventdata.push(data);
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
if(eventdata.length > 0){
|
||||
for(var z in eventdata){
|
||||
if(id){
|
||||
@ -475,17 +361,125 @@
|
||||
}
|
||||
}
|
||||
|
||||
// $('.layui-row').dad({
|
||||
// draggable: '.layui-card'
|
||||
// });
|
||||
// $('.layui-row').dad({
|
||||
// draggable:'table'
|
||||
// });
|
||||
|
||||
|
||||
})
|
||||
},
|
||||
|
||||
modeldata:function(d,val,type){
|
||||
var eventdata = [];
|
||||
if(d['model'] == "event"){
|
||||
// 事件分析
|
||||
if(d['graph_size'] == 'small'){
|
||||
X.eventsmall(val,function(data){//表格数据处理
|
||||
data['name'] = d['name'];
|
||||
data['modeltype'] = d['graph_type'];
|
||||
data['id'] = d['report_id'];
|
||||
data['modelsize'] = d['graph_size'];
|
||||
data['cat'] = d['model'];
|
||||
data['wow'] = Math.abs(val[0]['wow']);
|
||||
data['chain_ratio'] = Math.abs(val[0]['chain_ratio']);
|
||||
eventdata.push(data);
|
||||
})
|
||||
}else {
|
||||
if(d['graph_type'] == 'table'){
|
||||
//表格样式
|
||||
X.eventtable(val,function(data){//表格数据处理
|
||||
data['name'] = d['name'];
|
||||
data['modeltype'] = d['graph_type'];
|
||||
data['id'] = d['report_id'];
|
||||
data['modelsize'] = d['graph_size'];
|
||||
data['cat'] = d['model'];
|
||||
eventdata.push(data);
|
||||
})
|
||||
}else if(d['graph_type'] == 'echarts'){
|
||||
//图形
|
||||
X.eventchart(val,function(data){
|
||||
data['name'] = d['name'];
|
||||
data['modeltype'] = d['graph_type'];
|
||||
data['id'] = d['report_id'];
|
||||
data['modelsize'] = d['graph_size'];
|
||||
data['cat'] = d['model'];
|
||||
eventdata.push(data);
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
} else if(d['model'] == "retention"){
|
||||
//留存分析
|
||||
if(type){
|
||||
val['retentiontype'] = type;
|
||||
}else {
|
||||
val['retentiontype'] = 0
|
||||
}
|
||||
if(d['graph_size'] == 'small'){
|
||||
|
||||
}else {
|
||||
if(d['graph_type'] == 'table'){
|
||||
X.retentiontable(val,function(data){
|
||||
data['name'] = d['name'];
|
||||
data['modeltype'] = d['graph_type'];
|
||||
data['id'] = d['report_id'];
|
||||
data['modelsize'] = d['graph_size'];
|
||||
data['cat'] = d['model'];
|
||||
eventdata.push(data);
|
||||
})
|
||||
|
||||
}else {
|
||||
X.retentionchart(val,function(data){
|
||||
data['name'] = d['name'];
|
||||
data['modeltype'] = d['graph_type'];
|
||||
data['id'] = d['report_id'];
|
||||
data['modelsize'] = d['graph_size'];
|
||||
data['cat'] = d['model'];
|
||||
eventdata.push(data);
|
||||
})
|
||||
}
|
||||
}
|
||||
}else if(d['model'] == 'ltv'){
|
||||
//ltv模型
|
||||
if(d['graph_type'] == 'table'){
|
||||
X.ltvtable(val,function(data){
|
||||
data['name'] = d['name'];
|
||||
data['modeltype'] = d['graph_type'];
|
||||
data['id'] = d['report_id'];
|
||||
data['modelsize'] = d['graph_size'];
|
||||
data['cat'] = d['model'];
|
||||
eventdata.push(data);
|
||||
})
|
||||
}else {
|
||||
X.ltvtable(val,function(data){
|
||||
data['name'] = d['name'];
|
||||
data['modeltype'] = d['graph_type'];
|
||||
data['id'] = d['report_id'];
|
||||
data['modelsize'] = d['graph_size'];
|
||||
data['cat'] = d['model'];
|
||||
eventdata.push(data);
|
||||
})
|
||||
}
|
||||
}else if(d['model'] == 'user_property'){
|
||||
// 属性分析
|
||||
if(d['graph_type'] == 'table'){
|
||||
X.userpropertytable(val,function(data){
|
||||
data['name'] = d['name'];
|
||||
data['modeltype'] = d['graph_type'];
|
||||
data['id'] = d['report_id'];
|
||||
data['modelsize'] = d['graph_size'];
|
||||
data['cat'] = d['model'];
|
||||
eventdata.push(data);
|
||||
})
|
||||
}else {
|
||||
X.userpropertychart(val,function(data){
|
||||
data['name'] = d['name'];
|
||||
data['modeltype'] = d['graph_type'];
|
||||
data['id'] = d['report_id'];
|
||||
data['modelsize'] = d['graph_size'];
|
||||
data['cat'] = d['model'];
|
||||
eventdata.push(data);
|
||||
})
|
||||
}
|
||||
}
|
||||
return eventdata;
|
||||
},
|
||||
|
||||
//画统计图和添加移入移出事件
|
||||
morefeatures:function(eventdata){
|
||||
|
||||
@ -508,7 +502,6 @@
|
||||
name:name
|
||||
}
|
||||
X.api('dashboard/edit_show_report','post',{dashboard_id:X.DATA.dashboard_id,config:data},function(d){
|
||||
// console.log(d);
|
||||
X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(val){
|
||||
for(let i in val){
|
||||
if(val[i]['report_id'] == id){
|
||||
@ -527,8 +520,7 @@
|
||||
]
|
||||
if(eventdata.cat == 'retention'){
|
||||
X.laydropdown("#retention"+eventdata.id,retentionlist,function(d){
|
||||
console.log(d.id);
|
||||
console.log(eventdata);
|
||||
|
||||
var retentiontype = d.id;
|
||||
var modelid = "retention"+eventdata.id;
|
||||
X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(val){
|
||||
@ -544,7 +536,6 @@
|
||||
|
||||
//更多按钮配置下拉框
|
||||
X.laydropdown(".model-gengduo",X['DATA']['gengduolist'],function(d){
|
||||
console.log(eventdata);
|
||||
if(d.id == 'shezhi'){
|
||||
var data = {
|
||||
id : eventdata.id,
|
||||
@ -552,10 +543,10 @@
|
||||
modeltype : eventdata.modeltype
|
||||
}
|
||||
X.parametersopen(data,'setupbaobiao',"auto",function(d){
|
||||
|
||||
X.pageLogic['dashboard'].gettabledata();
|
||||
})
|
||||
}else if(d.id == 'export'){
|
||||
layer.msg('暂未开放功能');
|
||||
X.download('ck/event_model_export',{report_id:eventdata.id},eventdata.name);
|
||||
}else {
|
||||
|
||||
layer.confirm('确认移除['+ eventdata.name + ']', {
|
||||
@ -569,11 +560,46 @@
|
||||
X.pageLogic['dashboard'].gettabledata();
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
//设置时间
|
||||
X.daterender(".model-times",function(start, end, label){
|
||||
// console.log(eventdata);
|
||||
// console.log('times'+eventdata.id);
|
||||
var id = 'times'+eventdata.id;
|
||||
$("#"+id).html('111');
|
||||
});
|
||||
|
||||
X.laydropdown(".model-screenlist",X['DATA']['screenlist'][eventdata.cat],function(d){
|
||||
var modelid = eventdata['cat']+eventdata.id;
|
||||
var reportid = [];
|
||||
reportid.push(eventdata.id);
|
||||
X.api('report/read_report','post',{project_id:X.DATA['projectid'],report_id:reportid},function(val){
|
||||
var query = {
|
||||
eventView:val[0]['query']['eventView'],
|
||||
events:val[0]['query']['events'],
|
||||
};
|
||||
query['eventView']['timeParticleSize'] = d.id;
|
||||
X.api("ck/"+ eventdata.cat +"_model","post",query,function(val){
|
||||
var bbsetdata = {
|
||||
graph_size:eventdata['modelsize'],
|
||||
graph_type:eventdata['modeltype'],
|
||||
model:eventdata['cat'],
|
||||
name:eventdata['name'],
|
||||
report_id:eventdata['id'],
|
||||
}
|
||||
|
||||
var modeldata = X.pageLogic['dashboard'].modeldata(bbsetdata,val);
|
||||
// console.log(modeldata);
|
||||
//渲染模板和数据
|
||||
X.template("modeltable",'model'+modeldata[0]['id'],modeldata[0],function(){
|
||||
X.pageLogic['dashboard'].morefeatures(modeldata);
|
||||
});
|
||||
})
|
||||
})
|
||||
|
||||
});
|
||||
|
||||
if(eventdata['modeltype'] == 'echarts' && eventdata['modelsize'] != 'small' ){
|
||||
var myChart = echarts.init(document.getElementById(eventdata['id']));
|
||||
@ -619,9 +645,6 @@
|
||||
};
|
||||
}else{
|
||||
var option = {
|
||||
title: {
|
||||
text: ''
|
||||
},
|
||||
color: X.DATA.echartscolor,
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
@ -646,7 +669,7 @@
|
||||
xAxis: [
|
||||
{
|
||||
type: 'category',
|
||||
boundaryGap: false,
|
||||
axisTick: {show: false},
|
||||
data: eventdata['xAxisData']
|
||||
}
|
||||
],
|
||||
@ -660,7 +683,7 @@
|
||||
}
|
||||
|
||||
myChart.setOption(option,true);
|
||||
}
|
||||
};
|
||||
|
||||
},
|
||||
|
||||
|
@ -215,7 +215,7 @@
|
||||
"comparator_name":d[0]['category'][0]['category'][0]['title'],//选择符号中文显示
|
||||
"comparator":d[0]['category'][0]['category'][0]['id'],//符号id
|
||||
"data_type":d[0]['category'][0]['data_type'],
|
||||
"ftv":'',//条件
|
||||
"ftv":[],//条件
|
||||
"strftv":'',//字符串显示条件
|
||||
"tableType": d[0]['id']
|
||||
} //筛选数据
|
||||
@ -315,13 +315,7 @@
|
||||
})
|
||||
|
||||
// 时间粒度
|
||||
var timeParticleSizearr = [
|
||||
{'title':'按天','id':'P1D'},
|
||||
{'title':'按周','id':'P1W'},
|
||||
{'title':'按月','id':'P1M'},
|
||||
{'title':'合计','id':'total'}
|
||||
]
|
||||
X.laydropdown('.analtsis-timeParticleSize',timeParticleSizearr,function(d){
|
||||
X.laydropdown('.analtsis-timeParticleSize',X['DATA']['screenlist']['distribution'],function(d){
|
||||
console.log(d);
|
||||
$(".analtsis-timeParticleSize").html(d.title);
|
||||
data['eventView']['timeParticleSize'] = d.id;
|
||||
|
@ -5,7 +5,7 @@
|
||||
this.parms = parms;
|
||||
this.callback = parms.callback;
|
||||
var data = parms;
|
||||
|
||||
console.log(data);
|
||||
X.laytpldata("#kanban-model-modify-table-dot",data,"model"+data.id,function(html){
|
||||
|
||||
$("#model"+data.id).html(html);
|
||||
|
@ -475,14 +475,7 @@
|
||||
});
|
||||
|
||||
// 时间粒度
|
||||
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){
|
||||
X.laydropdown('.analtsis-timeParticleSize',X['DATA']['screenlist']['retention'],function(d){
|
||||
// console.log(d);
|
||||
$(".analtsis-timeParticleSize").html(d.title);
|
||||
data['eventView']['unitNum'] = parseInt(d.id);
|
||||
@ -570,6 +563,7 @@
|
||||
else if(title == '每日留存'){ $(".table-div-box").hide(); $(".analysis-echarts").show(); retaineddayRetained(d) }
|
||||
};
|
||||
|
||||
//数据报表渲染
|
||||
function retainedtable(d){
|
||||
var nname,pname
|
||||
if(retentiontype == 0) {
|
||||
@ -712,7 +706,7 @@
|
||||
};
|
||||
myChart.setOption(option,true);
|
||||
};
|
||||
|
||||
// 第N日留存
|
||||
function retainednRetained(d){
|
||||
var nname,pname
|
||||
if(retentiontype == 0) {
|
||||
|
105
web/srczip/logic/setupbaobiao.js
Normal file
105
web/srczip/logic/setupbaobiao.js
Normal file
@ -0,0 +1,105 @@
|
||||
(function(){
|
||||
X.pageLogic['setupbaobiao'] = {
|
||||
init : function(parms){
|
||||
var me = this;
|
||||
this.parms = parms;
|
||||
this.callback = parms.callback;
|
||||
var data = parms.extData;
|
||||
var report_id = [];
|
||||
report_id.push(data.id);
|
||||
var postdata;//上传数据
|
||||
X.api('report/read_report','post',{project_id:X.DATA.projectid,report_id:report_id},function(d){
|
||||
postdata = d;
|
||||
$('.setupbaobiao-title').val(d[0]['name']);
|
||||
$('.setupbaobiao-textarea').val(d[0]['desc']);
|
||||
// 初始化时间
|
||||
var endTime = d[0]['query']['eventView']['endTime'];
|
||||
var startTime = d[0]['query']['eventView']['startTime'];
|
||||
$(".setupbaobiao-time").html(startTime +' - '+ endTime);
|
||||
if(data.modeltype == "table"){ //初始化图表类型
|
||||
$("#setupbaobiao-table").addClass("icon___XxbtJ");
|
||||
}else {
|
||||
$("#setupbaobiao-echarts").addClass("icon___XxbtJ");
|
||||
}
|
||||
//初始化窗体大小
|
||||
if(data.modelsize == 'in'){ //中图
|
||||
$("#setupbaobiao-in").prop("checked",true);
|
||||
}else if( data.modelsize == 'small' ){//小图
|
||||
$("#setupbaobiao-small").prop("checked",true);
|
||||
}else{//大图
|
||||
$("#setupbaobiao-large").prop("checked",true);
|
||||
}
|
||||
X.laytpldata("#setupbaobiao-select-dot",X['DATA']['screenlist'][d[0]['cat']],".setupbaobiao-select");
|
||||
});
|
||||
|
||||
X.daterender(".setupbaobiao-rli-box2",function(start, end, label){
|
||||
var startTime = start.format('YYYY-MM-DD')+ " "+ "00:00:00";
|
||||
var endTime = end.format('YYYY-MM-DD')+ " "+ "23:59:59";
|
||||
postdata[0]['query']['eventView']['startTime'] = startTime;
|
||||
postdata[0]['query']['eventView']['endTime'] = endTime;
|
||||
$(".setupbaobiao-time").html(startTime +' - '+ endTime);
|
||||
|
||||
var sameday = Date.parse(new Date()) / 1000; //当天时间戳
|
||||
|
||||
var enddate = new Date(end.format('YYYY-MM-DD'));
|
||||
var endmonth = Date.parse(enddate)/1000;
|
||||
|
||||
var startdate = new Date(start.format('YYYY-MM-DD'));
|
||||
var startmonth = Date.parse(startdate)/1000;
|
||||
postdata[0]['query']['e_days'] = parseInt((sameday - endmonth)/86400);
|
||||
postdata[0]['query']['s_days'] = parseInt((sameday - startmonth)/86400);
|
||||
|
||||
console.log(startTime);
|
||||
console.log(endTime);
|
||||
});
|
||||
|
||||
// 分析时间粒度
|
||||
$(document).off('click','.setupbaobiao-select').on('change','.setupbaobiao-select',function(){
|
||||
postdata[0]['query']['eventView']['timeParticleSize'] = $(this).val();
|
||||
});
|
||||
|
||||
$(document).off('click','.shape___2nUUi').on('click','.shape___2nUUi',function(){
|
||||
$('.shape___2nUUi').removeClass('icon___XxbtJ');
|
||||
$(this).addClass('icon___XxbtJ');
|
||||
});
|
||||
|
||||
$(document).off('click','.setupbaobiao-xq').on('click','.setupbaobiao-xq',function(){
|
||||
layer.closeAll();
|
||||
});
|
||||
|
||||
$(document).off('click','.setupbaobiao-yy').on('click','.setupbaobiao-yy',function(){
|
||||
var title = $('.setupbaobiao-title').val();
|
||||
var desc = $(".setupbaobiao-textarea").val();
|
||||
var modeltype = $(".icon___XxbtJ").attr('data-type');
|
||||
var modelsize = $('input:radio[name="modelsize"]:checked').val()
|
||||
var arr = {
|
||||
_id:X.DATA.dashboard_id,
|
||||
report:{
|
||||
name: title,
|
||||
report_id:postdata[0]['_id'],
|
||||
desc:desc,
|
||||
model:postdata[0]['cat'],
|
||||
graph_type:modeltype,
|
||||
graph_size:modelsize
|
||||
}
|
||||
}
|
||||
console.log(arr);
|
||||
X.api('dashboard/edit_report','post',arr,function(d){
|
||||
console.log(d);
|
||||
var reportedit = {
|
||||
name: title,
|
||||
desc:desc,
|
||||
query:postdata[0]['query'],
|
||||
report_id:postdata[0]['_id']
|
||||
}
|
||||
X.api('report/edit','post',reportedit,function(d){
|
||||
me.callback && me.callback(d);
|
||||
layer.closeAll();
|
||||
})
|
||||
})
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
};
|
||||
})();
|
@ -159,7 +159,7 @@
|
||||
.echarts-box { padding: 0 24px; margin-top: 10px; height: 204px; }
|
||||
.layui-card:last-child { padding-bottom: 12px; }
|
||||
.echarts { width: 100%; height: 204px; }
|
||||
.control { height: 21px; display: none; }
|
||||
.control { height: 21px; display: block; }
|
||||
.tool-show .control { display: block; }
|
||||
|
||||
.table-box { margin: 10px 24px 0 24px; height: 283px; overflow-x: auto; overflow-y: hidden; }
|
||||
|
Loading…
Reference in New Issue
Block a user