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-data-box">{{d.num}}</div>
|
||||||
|
|
||||||
<div class="small-proportion">
|
<div class="small-proportion">
|
||||||
{{# if(d.thedaypropsize === "+"){ }}
|
{{# if(d.wowtyle == '-'){ }}
|
||||||
<div class="proportion-data">较环比 <div class="sanjiao"></div><span>{{d.thedayprop}}%</span></div>
|
<div class="proportion-data">较环比 <div class="sanjiao"></div><span>{{d.wow}}%</span></div>
|
||||||
{{# } else { }}
|
{{# } 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 === "+"){ }}
|
{{# if(d.chain_ratiotype == "+"){ }}
|
||||||
<div class="proportion-data">较同比 <div class="sanjiao"></div><span>{{d.weekprop}}%</span></div>
|
<div class="proportion-data">较同比 <div class="sanjiao"></div><span>{{d.chain_ratio}}%</span></div>
|
||||||
{{# } else { }}
|
{{# } 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>
|
</div>
|
||||||
|
|
||||||
@ -76,9 +76,9 @@
|
|||||||
|
|
||||||
<div class="condition-box controlhover">
|
<div class="condition-box controlhover">
|
||||||
<div class="time-cond">
|
<div class="time-cond">
|
||||||
<span>过去7天</span>
|
<span class="model-times" id="times{{d.id}}">过去7天</span>
|
||||||
<div class="xian"></div>
|
<div class="xian"></div>
|
||||||
<span>按天</span>
|
<span class="model-screenlist">按天</span>
|
||||||
{{# if(d.cat === "retention"){ }}
|
{{# if(d.cat === "retention"){ }}
|
||||||
<div class="xian"></div>
|
<div class="xian"></div>
|
||||||
{{# if(d.retentiontype === 0){ }}
|
{{# if(d.retentiontype === 0){ }}
|
||||||
@ -206,9 +206,9 @@
|
|||||||
|
|
||||||
<div class="condition-box controlhover">
|
<div class="condition-box controlhover">
|
||||||
<div class="time-cond">
|
<div class="time-cond">
|
||||||
<span>过去7天</span>
|
<span class="model-times" id="times{{d.id}}">过去7天</span>
|
||||||
<div class="xian"></div>
|
<div class="xian"></div>
|
||||||
<span>按天</span>
|
<span class="model-screenlist">按天</span>
|
||||||
{{# if(d.cat === "retention"){ }}
|
{{# if(d.cat === "retention"){ }}
|
||||||
<div class="xian"></div>
|
<div class="xian"></div>
|
||||||
{{# if(d.retentiontype === 0){ }}
|
{{# if(d.retentiontype === 0){ }}
|
||||||
@ -229,6 +229,16 @@
|
|||||||
<div class="proportion">
|
<div class="proportion">
|
||||||
<!-- <div class="proportion-data">较环比 <div class="sanjiao"></div><span>5.4%</span></div>
|
<!-- <div class="proportion-data">较环比 <div class="sanjiao"></div><span>5.4%</span></div>
|
||||||
<div 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>
|
||||||
</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>
|
345
web/src/x.min.js
vendored
345
web/src/x.min.js
vendored
@ -80,8 +80,32 @@ var X = window.X || {
|
|||||||
{'title': "UTC-07:00",id:7},
|
{'title': "UTC-07:00",id:7},
|
||||||
{'title': "UTC±00:00",id:0}
|
{'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){
|
X.template = function(url,id,data,callback){
|
||||||
$.get('pages/'+ url + '.html',function(content){
|
$.get('pages/'+ url + '.html',function(content){
|
||||||
$('#'+id).html(content);
|
$('#'+id).html(content);
|
||||||
@ -478,12 +539,24 @@ var X = window.X || {
|
|||||||
var titledata,condata = [];
|
var titledata,condata = [];
|
||||||
for(let i in data){
|
for(let i in data){
|
||||||
if(data[i]['values'].length > 0 ){
|
if(data[i]['values'].length > 0 ){
|
||||||
if(data[i]['groups']['length'] == 0){
|
|
||||||
titledata= $.extend(true,[],data[0]['date_range']);
|
titledata= $.extend(true,[],data[0]['date_range']);
|
||||||
titledata.unshift('指标','阶段总和');
|
titledata.unshift('指标','阶段总和');
|
||||||
condata.push(data[i].values[0]);
|
if(data[i]['groups']['length'] != 0){
|
||||||
condata[i].unshift(data[i]['event_name'],data[i]['sum']);
|
|
||||||
|
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);
|
// 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 {
|
}else {
|
||||||
layer.msg('查询数据为空');
|
layer.msg('查询数据为空');
|
||||||
@ -493,7 +566,6 @@ var X = window.X || {
|
|||||||
titledata:titledata,
|
titledata:titledata,
|
||||||
condata:condata
|
condata:condata
|
||||||
}
|
}
|
||||||
|
|
||||||
callback && callback(dataArr);
|
callback && callback(dataArr);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -510,6 +582,7 @@ var X = window.X || {
|
|||||||
var mean = 0;
|
var mean = 0;
|
||||||
var sameday = 0;
|
var sameday = 0;
|
||||||
var date;
|
var date;
|
||||||
|
var wowtype,chain_ratiotype;//判断较环比和较同比的正负
|
||||||
|
|
||||||
var length = data[0]['date_range'].length - 1;
|
var length = data[0]['date_range'].length - 1;
|
||||||
date = data[0]['date_range'][length];
|
date = data[0]['date_range'][length];
|
||||||
@ -518,8 +591,6 @@ var X = window.X || {
|
|||||||
var arr = {
|
var arr = {
|
||||||
name: '',
|
name: '',
|
||||||
type: 'line',
|
type: 'line',
|
||||||
stack: '总量',
|
|
||||||
|
|
||||||
data: data[i]['values'][z]
|
data: data[i]['values'][z]
|
||||||
}
|
}
|
||||||
seriesData.push(arr);
|
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 = {
|
var dataArr = {
|
||||||
xAxisData:data[0]['date_range'],
|
xAxisData:data[0]['date_range'],
|
||||||
legenddata:legenddata,
|
legenddata:legenddata,
|
||||||
@ -544,14 +627,20 @@ var X = window.X || {
|
|||||||
date:date,
|
date:date,
|
||||||
sum:sum,
|
sum:sum,
|
||||||
mean:mean,
|
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);
|
callback && callback(dataArr);
|
||||||
};
|
};
|
||||||
|
|
||||||
X.eventsmall = function(data,callback){
|
X.eventsmall = function(data,callback){
|
||||||
var date,num,thedayprop,weekprop,thedaypropsize,weekpropsize; //时间,当天数量,与前天对比,与上个星期对比,与前天对比正负,与上个星期对比正负
|
var date,num,wowtype,chain_ratiotype; //时间,当天数量
|
||||||
// console.log(data);
|
// console.log(data);
|
||||||
// for(let i in data){
|
// for(let i in data){
|
||||||
// if(data[i]['groups']['length'] == 0){
|
// if(data[i]['groups']['length'] == 0){
|
||||||
@ -562,32 +651,23 @@ var X = window.X || {
|
|||||||
var length = data[0]['date_range'].length - 1;
|
var length = data[0]['date_range'].length - 1;
|
||||||
date = data[0]['date_range'][length];
|
date = data[0]['date_range'][length];
|
||||||
num = data[0]['values'][0][length];
|
num = data[0]['values'][0][length];
|
||||||
thedayprop = num / data[0]['values'][0][length - 1];
|
if(data[0]['wow'] >= 0){
|
||||||
weekprop = num / data[0]['values'][0][length - 8];
|
wowtype = '+'
|
||||||
var prop1,prop2;
|
|
||||||
if(thedayprop >= 1){
|
|
||||||
prop1 = parseFloat((thedayprop - 1)*100);
|
|
||||||
thedaypropsize = '+';
|
|
||||||
}else{
|
}else{
|
||||||
prop1 = parseFloat((1 - thedayprop)*100);
|
wowtype = '-'
|
||||||
thedaypropsize = '-';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(weekprop >= 1){
|
if(data[0]['chain_ratio'] >= 0){
|
||||||
prop2 = parseFloat((weekprop - 1)*100);
|
chain_ratiotype = '+'
|
||||||
weekpropsize = '+';
|
|
||||||
}else{
|
}else{
|
||||||
prop2 = parseFloat((1 - weekprop)*100);
|
chain_ratiotype = '-'
|
||||||
weekpropsize = '-';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var dataArr = {
|
var dataArr = {
|
||||||
date: date,
|
date: date,
|
||||||
num: num,
|
num: num,
|
||||||
thedayprop: prop1.toFixed(2),
|
wowtype: wowtype,
|
||||||
thedaypropsize:thedaypropsize,
|
chain_ratiotype: chain_ratiotype
|
||||||
weekprop: weekprop.toFixed(2),
|
|
||||||
weekpropsize:weekpropsize
|
|
||||||
}
|
}
|
||||||
callback && callback(dataArr);
|
callback && callback(dataArr);
|
||||||
};
|
};
|
||||||
@ -2409,19 +2489,7 @@ var X = window.X || {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// 时间粒度
|
// 时间粒度
|
||||||
var timeParticleSizearr = [
|
X.laydropdown('.analtsis-timeParticleSize',X['DATA']['screenlist']['event'],function(d){
|
||||||
{'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){
|
|
||||||
$(".analtsis-timeParticleSize").html(d.title);
|
$(".analtsis-timeParticleSize").html(d.title);
|
||||||
data['eventView']['timeParticleSize'] = d.id;
|
data['eventView']['timeParticleSize'] = d.id;
|
||||||
calculationdata();
|
calculationdata();
|
||||||
@ -2551,6 +2619,9 @@ var X = window.X || {
|
|||||||
seriesData[i]['name'] = xAxisData[i];
|
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 myChart = echarts.init(document.getElementById('analysis-echarts'));
|
||||||
var option = {
|
var option = {
|
||||||
title: {
|
title: {
|
||||||
@ -2763,8 +2834,6 @@ var X = window.X || {
|
|||||||
if(d[0].values.length > 0 ){
|
if(d[0].values.length > 0 ){
|
||||||
updata();
|
updata();
|
||||||
tabledata(d);
|
tabledata(d);
|
||||||
// stackingdiagram(d);
|
|
||||||
// tabledata(d);
|
|
||||||
}else {
|
}else {
|
||||||
$("#analysis-echarts").empty();
|
$("#analysis-echarts").empty();
|
||||||
layer.msg("无数据");
|
layer.msg("无数据");
|
||||||
@ -3877,7 +3946,6 @@ var X = window.X || {
|
|||||||
//更新报表
|
//更新报表
|
||||||
$(document).off('click','.model-gengx').on('click','.model-gengx',function(){
|
$(document).off('click','.model-gengx').on('click','.model-gengx',function(){
|
||||||
var id = $(this).attr('data-id');
|
var id = $(this).attr('data-id');
|
||||||
// console.log(id);
|
|
||||||
X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(d){
|
X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(d){
|
||||||
// return;
|
// return;
|
||||||
X.pageLogic['dashboard'].fillmodeldata(d[id]);
|
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){
|
$(document).off('click','.nav-action-bar').on('click','.nav-action-bar',function(e){
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
// console.log('更多操作按钮');
|
|
||||||
var obj = $(this);
|
var obj = $(this);
|
||||||
var offset = obj.offset();
|
var offset = obj.offset();
|
||||||
var offsets = [ offset.top + 10,offset.left];
|
var offsets = [ offset.top + 10,offset.left];
|
||||||
@ -3978,10 +4045,30 @@ var X = window.X || {
|
|||||||
//填充看板数据
|
//填充看板数据
|
||||||
//总体逻辑是:根据获取到的看板内容去先渲染放置的框,在根据不同分析模型处理对应的数据进行填充
|
//总体逻辑是:根据获取到的看板内容去先渲染放置的框,在根据不同分析模型处理对应的数据进行填充
|
||||||
fillmodeldata:function(d,id,type){//
|
fillmodeldata:function(d,id,type){//
|
||||||
// console.log(d);
|
|
||||||
X.api("ck/"+d['model']+"_model","post",{report_id:d['report_id']},function(val){
|
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;
|
var data;
|
||||||
|
if(eventdata.length > 0){
|
||||||
|
for(var z in eventdata){
|
||||||
|
if(id){
|
||||||
|
//当有id时更新对应id看板内的内容
|
||||||
|
X.template("modeltable",id,eventdata[z],function(){
|
||||||
|
X.pageLogic['dashboard'].morefeatures(eventdata[z]);
|
||||||
|
});
|
||||||
|
}else {
|
||||||
|
//渲染模板和数据
|
||||||
|
X.template("modeltable",'model'+eventdata[z]['id'],eventdata[z],function(){
|
||||||
|
X.pageLogic['dashboard'].morefeatures(eventdata[z]);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
modeldata:function(d,val,type){
|
||||||
|
var eventdata = [];
|
||||||
if(d['model'] == "event"){
|
if(d['model'] == "event"){
|
||||||
// 事件分析
|
// 事件分析
|
||||||
if(d['graph_size'] == 'small'){
|
if(d['graph_size'] == 'small'){
|
||||||
@ -3991,6 +4078,8 @@ var X = window.X || {
|
|||||||
data['id'] = d['report_id'];
|
data['id'] = d['report_id'];
|
||||||
data['modelsize'] = d['graph_size'];
|
data['modelsize'] = d['graph_size'];
|
||||||
data['cat'] = d['model'];
|
data['cat'] = d['model'];
|
||||||
|
data['wow'] = Math.abs(val[0]['wow']);
|
||||||
|
data['chain_ratio'] = Math.abs(val[0]['chain_ratio']);
|
||||||
eventdata.push(data);
|
eventdata.push(data);
|
||||||
})
|
})
|
||||||
}else {
|
}else {
|
||||||
@ -4090,34 +4179,8 @@ var X = window.X || {
|
|||||||
eventdata.push(data);
|
eventdata.push(data);
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
if(eventdata.length > 0){
|
return eventdata;
|
||||||
for(var z in eventdata){
|
|
||||||
if(id){
|
|
||||||
//当有id时更新对应id看板内的内容
|
|
||||||
X.template("modeltable",id,eventdata[z],function(){
|
|
||||||
X.pageLogic['dashboard'].morefeatures(eventdata[z]);
|
|
||||||
});
|
|
||||||
}else {
|
|
||||||
//渲染模板和数据
|
|
||||||
X.template("modeltable",'model'+eventdata[z]['id'],eventdata[z],function(){
|
|
||||||
X.pageLogic['dashboard'].morefeatures(eventdata[z]);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// $('.layui-row').dad({
|
|
||||||
// draggable: '.layui-card'
|
|
||||||
// });
|
|
||||||
// $('.layui-row').dad({
|
|
||||||
// draggable:'table'
|
|
||||||
// });
|
|
||||||
|
|
||||||
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
|
|
||||||
//画统计图和添加移入移出事件
|
//画统计图和添加移入移出事件
|
||||||
@ -4142,7 +4205,6 @@ var X = window.X || {
|
|||||||
name:name
|
name:name
|
||||||
}
|
}
|
||||||
X.api('dashboard/edit_show_report','post',{dashboard_id:X.DATA.dashboard_id,config:data},function(d){
|
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){
|
X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(val){
|
||||||
for(let i in val){
|
for(let i in val){
|
||||||
if(val[i]['report_id'] == id){
|
if(val[i]['report_id'] == id){
|
||||||
@ -4161,8 +4223,7 @@ var X = window.X || {
|
|||||||
]
|
]
|
||||||
if(eventdata.cat == 'retention'){
|
if(eventdata.cat == 'retention'){
|
||||||
X.laydropdown("#retention"+eventdata.id,retentionlist,function(d){
|
X.laydropdown("#retention"+eventdata.id,retentionlist,function(d){
|
||||||
console.log(d.id);
|
|
||||||
console.log(eventdata);
|
|
||||||
var retentiontype = d.id;
|
var retentiontype = d.id;
|
||||||
var modelid = "retention"+eventdata.id;
|
var modelid = "retention"+eventdata.id;
|
||||||
X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(val){
|
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){
|
X.laydropdown(".model-gengduo",X['DATA']['gengduolist'],function(d){
|
||||||
console.log(eventdata);
|
|
||||||
if(d.id == 'shezhi'){
|
if(d.id == 'shezhi'){
|
||||||
var data = {
|
var data = {
|
||||||
id : eventdata.id,
|
id : eventdata.id,
|
||||||
@ -4186,10 +4246,10 @@ var X = window.X || {
|
|||||||
modeltype : eventdata.modeltype
|
modeltype : eventdata.modeltype
|
||||||
}
|
}
|
||||||
X.parametersopen(data,'setupbaobiao',"auto",function(d){
|
X.parametersopen(data,'setupbaobiao',"auto",function(d){
|
||||||
|
X.pageLogic['dashboard'].gettabledata();
|
||||||
})
|
})
|
||||||
}else if(d.id == 'export'){
|
}else if(d.id == 'export'){
|
||||||
layer.msg('暂未开放功能');
|
X.download('ck/event_model_export',{report_id:eventdata.id},eventdata.name);
|
||||||
}else {
|
}else {
|
||||||
|
|
||||||
layer.confirm('确认移除['+ eventdata.name + ']', {
|
layer.confirm('确认移除['+ eventdata.name + ']', {
|
||||||
@ -4203,11 +4263,46 @@ var X = window.X || {
|
|||||||
X.pageLogic['dashboard'].gettabledata();
|
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' ){
|
if(eventdata['modeltype'] == 'echarts' && eventdata['modelsize'] != 'small' ){
|
||||||
var myChart = echarts.init(document.getElementById(eventdata['id']));
|
var myChart = echarts.init(document.getElementById(eventdata['id']));
|
||||||
@ -4253,9 +4348,6 @@ var X = window.X || {
|
|||||||
};
|
};
|
||||||
}else{
|
}else{
|
||||||
var option = {
|
var option = {
|
||||||
title: {
|
|
||||||
text: ''
|
|
||||||
},
|
|
||||||
color: X.DATA.echartscolor,
|
color: X.DATA.echartscolor,
|
||||||
tooltip: {
|
tooltip: {
|
||||||
trigger: 'axis',
|
trigger: 'axis',
|
||||||
@ -4280,7 +4372,7 @@ var X = window.X || {
|
|||||||
xAxis: [
|
xAxis: [
|
||||||
{
|
{
|
||||||
type: 'category',
|
type: 'category',
|
||||||
boundaryGap: false,
|
axisTick: {show: false},
|
||||||
data: eventdata['xAxisData']
|
data: eventdata['xAxisData']
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@ -4294,7 +4386,7 @@ var X = window.X || {
|
|||||||
}
|
}
|
||||||
|
|
||||||
myChart.setOption(option,true);
|
myChart.setOption(option,true);
|
||||||
}
|
};
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -4675,7 +4767,7 @@ var X = window.X || {
|
|||||||
"comparator_name":d[0]['category'][0]['category'][0]['title'],//选择符号中文显示
|
"comparator_name":d[0]['category'][0]['category'][0]['title'],//选择符号中文显示
|
||||||
"comparator":d[0]['category'][0]['category'][0]['id'],//符号id
|
"comparator":d[0]['category'][0]['category'][0]['id'],//符号id
|
||||||
"data_type":d[0]['category'][0]['data_type'],
|
"data_type":d[0]['category'][0]['data_type'],
|
||||||
"ftv":'',//条件
|
"ftv":[],//条件
|
||||||
"strftv":'',//字符串显示条件
|
"strftv":'',//字符串显示条件
|
||||||
"tableType": d[0]['id']
|
"tableType": d[0]['id']
|
||||||
} //筛选数据
|
} //筛选数据
|
||||||
@ -4775,13 +4867,7 @@ var X = window.X || {
|
|||||||
})
|
})
|
||||||
|
|
||||||
// 时间粒度
|
// 时间粒度
|
||||||
var timeParticleSizearr = [
|
X.laydropdown('.analtsis-timeParticleSize',X['DATA']['screenlist']['distribution'],function(d){
|
||||||
{'title':'按天','id':'P1D'},
|
|
||||||
{'title':'按周','id':'P1W'},
|
|
||||||
{'title':'按月','id':'P1M'},
|
|
||||||
{'title':'合计','id':'total'}
|
|
||||||
]
|
|
||||||
X.laydropdown('.analtsis-timeParticleSize',timeParticleSizearr,function(d){
|
|
||||||
console.log(d);
|
console.log(d);
|
||||||
$(".analtsis-timeParticleSize").html(d.title);
|
$(".analtsis-timeParticleSize").html(d.title);
|
||||||
data['eventView']['timeParticleSize'] = d.id;
|
data['eventView']['timeParticleSize'] = d.id;
|
||||||
@ -7069,7 +7155,7 @@ var X = window.X || {
|
|||||||
this.parms = parms;
|
this.parms = parms;
|
||||||
this.callback = parms.callback;
|
this.callback = parms.callback;
|
||||||
var data = parms;
|
var data = parms;
|
||||||
|
console.log(data);
|
||||||
X.laytpldata("#kanban-model-modify-table-dot",data,"model"+data.id,function(html){
|
X.laytpldata("#kanban-model-modify-table-dot",data,"model"+data.id,function(html){
|
||||||
|
|
||||||
$("#model"+data.id).html(html);
|
$("#model"+data.id).html(html);
|
||||||
@ -8270,14 +8356,7 @@ var X = window.X || {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// 时间粒度
|
// 时间粒度
|
||||||
var timeParticleSizearr = [
|
X.laydropdown('.analtsis-timeParticleSize',X['DATA']['screenlist']['retention'],function(d){
|
||||||
{'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);
|
// console.log(d);
|
||||||
$(".analtsis-timeParticleSize").html(d.title);
|
$(".analtsis-timeParticleSize").html(d.title);
|
||||||
data['eventView']['unitNum'] = parseInt(d.id);
|
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) }
|
else if(title == '每日留存'){ $(".table-div-box").hide(); $(".analysis-echarts").show(); retaineddayRetained(d) }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//数据报表渲染
|
||||||
function retainedtable(d){
|
function retainedtable(d){
|
||||||
var nname,pname
|
var nname,pname
|
||||||
if(retentiontype == 0) {
|
if(retentiontype == 0) {
|
||||||
@ -8507,7 +8587,7 @@ var X = window.X || {
|
|||||||
};
|
};
|
||||||
myChart.setOption(option,true);
|
myChart.setOption(option,true);
|
||||||
};
|
};
|
||||||
|
// 第N日留存
|
||||||
function retainednRetained(d){
|
function retainednRetained(d){
|
||||||
var nname,pname
|
var nname,pname
|
||||||
if(retentiontype == 0) {
|
if(retentiontype == 0) {
|
||||||
@ -9750,14 +9830,15 @@ var X = window.X || {
|
|||||||
init : function(parms){
|
init : function(parms){
|
||||||
var me = this;
|
var me = this;
|
||||||
this.parms = parms;
|
this.parms = parms;
|
||||||
|
this.callback = parms.callback;
|
||||||
var data = parms.extData;
|
var data = parms.extData;
|
||||||
var report_id = [];
|
var report_id = [];
|
||||||
console.log(data);
|
|
||||||
report_id.push(data.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){
|
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-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 endTime = d[0]['query']['eventView']['endTime'];
|
||||||
var startTime = d[0]['query']['eventView']['startTime'];
|
var startTime = d[0]['query']['eventView']['startTime'];
|
||||||
@ -9775,15 +9856,34 @@ var X = window.X || {
|
|||||||
}else{//大图
|
}else{//大图
|
||||||
$("#setupbaobiao-large").prop("checked",true);
|
$("#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){
|
X.daterender(".setupbaobiao-rli-box2",function(start, end, label){
|
||||||
var startTime = start.format('YYYY-MM-DD')+ " "+ "00:00:00";
|
var startTime = start.format('YYYY-MM-DD')+ " "+ "00:00:00";
|
||||||
var endTime = end.format('YYYY-MM-DD')+ " "+ "23:59:59";
|
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(startTime);
|
||||||
console.log(endTime);
|
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(){
|
$(document).off('click','.shape___2nUUi').on('click','.shape___2nUUi',function(){
|
||||||
$('.shape___2nUUi').removeClass('icon___XxbtJ');
|
$('.shape___2nUUi').removeClass('icon___XxbtJ');
|
||||||
@ -9795,6 +9895,35 @@ var X = window.X || {
|
|||||||
});
|
});
|
||||||
|
|
||||||
$(document).off('click','.setupbaobiao-yy').on('click','.setupbaobiao-yy',function(){
|
$(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-07:00",id:7},
|
||||||
{'title': "UTC±00:00",id:0}
|
{'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){
|
X.template = function(url,id,data,callback){
|
||||||
$.get('pages/'+ url + '.html',function(content){
|
$.get('pages/'+ url + '.html',function(content){
|
||||||
$('#'+id).html(content);
|
$('#'+id).html(content);
|
||||||
@ -477,12 +538,24 @@ var X = window.X || {
|
|||||||
var titledata,condata = [];
|
var titledata,condata = [];
|
||||||
for(let i in data){
|
for(let i in data){
|
||||||
if(data[i]['values'].length > 0 ){
|
if(data[i]['values'].length > 0 ){
|
||||||
if(data[i]['groups']['length'] == 0){
|
|
||||||
titledata= $.extend(true,[],data[0]['date_range']);
|
titledata= $.extend(true,[],data[0]['date_range']);
|
||||||
titledata.unshift('指标','阶段总和');
|
titledata.unshift('指标','阶段总和');
|
||||||
condata.push(data[i].values[0]);
|
if(data[i]['groups']['length'] != 0){
|
||||||
condata[i].unshift(data[i]['event_name'],data[i]['sum']);
|
|
||||||
|
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);
|
// 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 {
|
}else {
|
||||||
layer.msg('查询数据为空');
|
layer.msg('查询数据为空');
|
||||||
@ -492,7 +565,6 @@ var X = window.X || {
|
|||||||
titledata:titledata,
|
titledata:titledata,
|
||||||
condata:condata
|
condata:condata
|
||||||
}
|
}
|
||||||
|
|
||||||
callback && callback(dataArr);
|
callback && callback(dataArr);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -509,6 +581,7 @@ var X = window.X || {
|
|||||||
var mean = 0;
|
var mean = 0;
|
||||||
var sameday = 0;
|
var sameday = 0;
|
||||||
var date;
|
var date;
|
||||||
|
var wowtype,chain_ratiotype;//判断较环比和较同比的正负
|
||||||
|
|
||||||
var length = data[0]['date_range'].length - 1;
|
var length = data[0]['date_range'].length - 1;
|
||||||
date = data[0]['date_range'][length];
|
date = data[0]['date_range'][length];
|
||||||
@ -517,8 +590,6 @@ var X = window.X || {
|
|||||||
var arr = {
|
var arr = {
|
||||||
name: '',
|
name: '',
|
||||||
type: 'line',
|
type: 'line',
|
||||||
stack: '总量',
|
|
||||||
|
|
||||||
data: data[i]['values'][z]
|
data: data[i]['values'][z]
|
||||||
}
|
}
|
||||||
seriesData.push(arr);
|
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 = {
|
var dataArr = {
|
||||||
xAxisData:data[0]['date_range'],
|
xAxisData:data[0]['date_range'],
|
||||||
legenddata:legenddata,
|
legenddata:legenddata,
|
||||||
@ -543,14 +626,20 @@ var X = window.X || {
|
|||||||
date:date,
|
date:date,
|
||||||
sum:sum,
|
sum:sum,
|
||||||
mean:mean,
|
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);
|
callback && callback(dataArr);
|
||||||
};
|
};
|
||||||
|
|
||||||
X.eventsmall = function(data,callback){
|
X.eventsmall = function(data,callback){
|
||||||
var date,num,thedayprop,weekprop,thedaypropsize,weekpropsize; //时间,当天数量,与前天对比,与上个星期对比,与前天对比正负,与上个星期对比正负
|
var date,num,wowtype,chain_ratiotype; //时间,当天数量
|
||||||
// console.log(data);
|
// console.log(data);
|
||||||
// for(let i in data){
|
// for(let i in data){
|
||||||
// if(data[i]['groups']['length'] == 0){
|
// if(data[i]['groups']['length'] == 0){
|
||||||
@ -561,32 +650,23 @@ var X = window.X || {
|
|||||||
var length = data[0]['date_range'].length - 1;
|
var length = data[0]['date_range'].length - 1;
|
||||||
date = data[0]['date_range'][length];
|
date = data[0]['date_range'][length];
|
||||||
num = data[0]['values'][0][length];
|
num = data[0]['values'][0][length];
|
||||||
thedayprop = num / data[0]['values'][0][length - 1];
|
if(data[0]['wow'] >= 0){
|
||||||
weekprop = num / data[0]['values'][0][length - 8];
|
wowtype = '+'
|
||||||
var prop1,prop2;
|
|
||||||
if(thedayprop >= 1){
|
|
||||||
prop1 = parseFloat((thedayprop - 1)*100);
|
|
||||||
thedaypropsize = '+';
|
|
||||||
}else{
|
}else{
|
||||||
prop1 = parseFloat((1 - thedayprop)*100);
|
wowtype = '-'
|
||||||
thedaypropsize = '-';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(weekprop >= 1){
|
if(data[0]['chain_ratio'] >= 0){
|
||||||
prop2 = parseFloat((weekprop - 1)*100);
|
chain_ratiotype = '+'
|
||||||
weekpropsize = '+';
|
|
||||||
}else{
|
}else{
|
||||||
prop2 = parseFloat((1 - weekprop)*100);
|
chain_ratiotype = '-'
|
||||||
weekpropsize = '-';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var dataArr = {
|
var dataArr = {
|
||||||
date: date,
|
date: date,
|
||||||
num: num,
|
num: num,
|
||||||
thedayprop: prop1.toFixed(2),
|
wowtype: wowtype,
|
||||||
thedaypropsize:thedaypropsize,
|
chain_ratiotype: chain_ratiotype
|
||||||
weekprop: weekprop.toFixed(2),
|
|
||||||
weekpropsize:weekpropsize
|
|
||||||
}
|
}
|
||||||
callback && callback(dataArr);
|
callback && callback(dataArr);
|
||||||
};
|
};
|
||||||
|
@ -734,19 +734,7 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
// 时间粒度
|
// 时间粒度
|
||||||
var timeParticleSizearr = [
|
X.laydropdown('.analtsis-timeParticleSize',X['DATA']['screenlist']['event'],function(d){
|
||||||
{'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){
|
|
||||||
$(".analtsis-timeParticleSize").html(d.title);
|
$(".analtsis-timeParticleSize").html(d.title);
|
||||||
data['eventView']['timeParticleSize'] = d.id;
|
data['eventView']['timeParticleSize'] = d.id;
|
||||||
calculationdata();
|
calculationdata();
|
||||||
@ -876,6 +864,9 @@
|
|||||||
seriesData[i]['name'] = xAxisData[i];
|
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 myChart = echarts.init(document.getElementById('analysis-echarts'));
|
||||||
var option = {
|
var option = {
|
||||||
title: {
|
title: {
|
||||||
@ -1088,8 +1079,6 @@
|
|||||||
if(d[0].values.length > 0 ){
|
if(d[0].values.length > 0 ){
|
||||||
updata();
|
updata();
|
||||||
tabledata(d);
|
tabledata(d);
|
||||||
// stackingdiagram(d);
|
|
||||||
// tabledata(d);
|
|
||||||
}else {
|
}else {
|
||||||
$("#analysis-echarts").empty();
|
$("#analysis-echarts").empty();
|
||||||
layer.msg("无数据");
|
layer.msg("无数据");
|
||||||
|
@ -243,7 +243,6 @@
|
|||||||
//更新报表
|
//更新报表
|
||||||
$(document).off('click','.model-gengx').on('click','.model-gengx',function(){
|
$(document).off('click','.model-gengx').on('click','.model-gengx',function(){
|
||||||
var id = $(this).attr('data-id');
|
var id = $(this).attr('data-id');
|
||||||
// console.log(id);
|
|
||||||
X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(d){
|
X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(d){
|
||||||
// return;
|
// return;
|
||||||
X.pageLogic['dashboard'].fillmodeldata(d[id]);
|
X.pageLogic['dashboard'].fillmodeldata(d[id]);
|
||||||
@ -295,7 +294,6 @@
|
|||||||
//删除看板
|
//删除看板
|
||||||
$(document).off('click','.nav-action-bar').on('click','.nav-action-bar',function(e){
|
$(document).off('click','.nav-action-bar').on('click','.nav-action-bar',function(e){
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
// console.log('更多操作按钮');
|
|
||||||
var obj = $(this);
|
var obj = $(this);
|
||||||
var offset = obj.offset();
|
var offset = obj.offset();
|
||||||
var offsets = [ offset.top + 10,offset.left];
|
var offsets = [ offset.top + 10,offset.left];
|
||||||
@ -344,10 +342,30 @@
|
|||||||
//填充看板数据
|
//填充看板数据
|
||||||
//总体逻辑是:根据获取到的看板内容去先渲染放置的框,在根据不同分析模型处理对应的数据进行填充
|
//总体逻辑是:根据获取到的看板内容去先渲染放置的框,在根据不同分析模型处理对应的数据进行填充
|
||||||
fillmodeldata:function(d,id,type){//
|
fillmodeldata:function(d,id,type){//
|
||||||
// console.log(d);
|
|
||||||
X.api("ck/"+d['model']+"_model","post",{report_id:d['report_id']},function(val){
|
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;
|
var data;
|
||||||
|
if(eventdata.length > 0){
|
||||||
|
for(var z in eventdata){
|
||||||
|
if(id){
|
||||||
|
//当有id时更新对应id看板内的内容
|
||||||
|
X.template("modeltable",id,eventdata[z],function(){
|
||||||
|
X.pageLogic['dashboard'].morefeatures(eventdata[z]);
|
||||||
|
});
|
||||||
|
}else {
|
||||||
|
//渲染模板和数据
|
||||||
|
X.template("modeltable",'model'+eventdata[z]['id'],eventdata[z],function(){
|
||||||
|
X.pageLogic['dashboard'].morefeatures(eventdata[z]);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
modeldata:function(d,val,type){
|
||||||
|
var eventdata = [];
|
||||||
if(d['model'] == "event"){
|
if(d['model'] == "event"){
|
||||||
// 事件分析
|
// 事件分析
|
||||||
if(d['graph_size'] == 'small'){
|
if(d['graph_size'] == 'small'){
|
||||||
@ -357,6 +375,8 @@
|
|||||||
data['id'] = d['report_id'];
|
data['id'] = d['report_id'];
|
||||||
data['modelsize'] = d['graph_size'];
|
data['modelsize'] = d['graph_size'];
|
||||||
data['cat'] = d['model'];
|
data['cat'] = d['model'];
|
||||||
|
data['wow'] = Math.abs(val[0]['wow']);
|
||||||
|
data['chain_ratio'] = Math.abs(val[0]['chain_ratio']);
|
||||||
eventdata.push(data);
|
eventdata.push(data);
|
||||||
})
|
})
|
||||||
}else {
|
}else {
|
||||||
@ -456,34 +476,8 @@
|
|||||||
eventdata.push(data);
|
eventdata.push(data);
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
if(eventdata.length > 0){
|
return eventdata;
|
||||||
for(var z in eventdata){
|
|
||||||
if(id){
|
|
||||||
//当有id时更新对应id看板内的内容
|
|
||||||
X.template("modeltable",id,eventdata[z],function(){
|
|
||||||
X.pageLogic['dashboard'].morefeatures(eventdata[z]);
|
|
||||||
});
|
|
||||||
}else {
|
|
||||||
//渲染模板和数据
|
|
||||||
X.template("modeltable",'model'+eventdata[z]['id'],eventdata[z],function(){
|
|
||||||
X.pageLogic['dashboard'].morefeatures(eventdata[z]);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// $('.layui-row').dad({
|
|
||||||
// draggable: '.layui-card'
|
|
||||||
// });
|
|
||||||
// $('.layui-row').dad({
|
|
||||||
// draggable:'table'
|
|
||||||
// });
|
|
||||||
|
|
||||||
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
|
|
||||||
//画统计图和添加移入移出事件
|
//画统计图和添加移入移出事件
|
||||||
@ -508,7 +502,6 @@
|
|||||||
name:name
|
name:name
|
||||||
}
|
}
|
||||||
X.api('dashboard/edit_show_report','post',{dashboard_id:X.DATA.dashboard_id,config:data},function(d){
|
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){
|
X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(val){
|
||||||
for(let i in val){
|
for(let i in val){
|
||||||
if(val[i]['report_id'] == id){
|
if(val[i]['report_id'] == id){
|
||||||
@ -527,8 +520,7 @@
|
|||||||
]
|
]
|
||||||
if(eventdata.cat == 'retention'){
|
if(eventdata.cat == 'retention'){
|
||||||
X.laydropdown("#retention"+eventdata.id,retentionlist,function(d){
|
X.laydropdown("#retention"+eventdata.id,retentionlist,function(d){
|
||||||
console.log(d.id);
|
|
||||||
console.log(eventdata);
|
|
||||||
var retentiontype = d.id;
|
var retentiontype = d.id;
|
||||||
var modelid = "retention"+eventdata.id;
|
var modelid = "retention"+eventdata.id;
|
||||||
X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(val){
|
X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(val){
|
||||||
@ -544,7 +536,6 @@
|
|||||||
|
|
||||||
//更多按钮配置下拉框
|
//更多按钮配置下拉框
|
||||||
X.laydropdown(".model-gengduo",X['DATA']['gengduolist'],function(d){
|
X.laydropdown(".model-gengduo",X['DATA']['gengduolist'],function(d){
|
||||||
console.log(eventdata);
|
|
||||||
if(d.id == 'shezhi'){
|
if(d.id == 'shezhi'){
|
||||||
var data = {
|
var data = {
|
||||||
id : eventdata.id,
|
id : eventdata.id,
|
||||||
@ -552,10 +543,10 @@
|
|||||||
modeltype : eventdata.modeltype
|
modeltype : eventdata.modeltype
|
||||||
}
|
}
|
||||||
X.parametersopen(data,'setupbaobiao',"auto",function(d){
|
X.parametersopen(data,'setupbaobiao',"auto",function(d){
|
||||||
|
X.pageLogic['dashboard'].gettabledata();
|
||||||
})
|
})
|
||||||
}else if(d.id == 'export'){
|
}else if(d.id == 'export'){
|
||||||
layer.msg('暂未开放功能');
|
X.download('ck/event_model_export',{report_id:eventdata.id},eventdata.name);
|
||||||
}else {
|
}else {
|
||||||
|
|
||||||
layer.confirm('确认移除['+ eventdata.name + ']', {
|
layer.confirm('确认移除['+ eventdata.name + ']', {
|
||||||
@ -569,11 +560,46 @@
|
|||||||
X.pageLogic['dashboard'].gettabledata();
|
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' ){
|
if(eventdata['modeltype'] == 'echarts' && eventdata['modelsize'] != 'small' ){
|
||||||
var myChart = echarts.init(document.getElementById(eventdata['id']));
|
var myChart = echarts.init(document.getElementById(eventdata['id']));
|
||||||
@ -619,9 +645,6 @@
|
|||||||
};
|
};
|
||||||
}else{
|
}else{
|
||||||
var option = {
|
var option = {
|
||||||
title: {
|
|
||||||
text: ''
|
|
||||||
},
|
|
||||||
color: X.DATA.echartscolor,
|
color: X.DATA.echartscolor,
|
||||||
tooltip: {
|
tooltip: {
|
||||||
trigger: 'axis',
|
trigger: 'axis',
|
||||||
@ -646,7 +669,7 @@
|
|||||||
xAxis: [
|
xAxis: [
|
||||||
{
|
{
|
||||||
type: 'category',
|
type: 'category',
|
||||||
boundaryGap: false,
|
axisTick: {show: false},
|
||||||
data: eventdata['xAxisData']
|
data: eventdata['xAxisData']
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@ -660,7 +683,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
myChart.setOption(option,true);
|
myChart.setOption(option,true);
|
||||||
}
|
};
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -215,7 +215,7 @@
|
|||||||
"comparator_name":d[0]['category'][0]['category'][0]['title'],//选择符号中文显示
|
"comparator_name":d[0]['category'][0]['category'][0]['title'],//选择符号中文显示
|
||||||
"comparator":d[0]['category'][0]['category'][0]['id'],//符号id
|
"comparator":d[0]['category'][0]['category'][0]['id'],//符号id
|
||||||
"data_type":d[0]['category'][0]['data_type'],
|
"data_type":d[0]['category'][0]['data_type'],
|
||||||
"ftv":'',//条件
|
"ftv":[],//条件
|
||||||
"strftv":'',//字符串显示条件
|
"strftv":'',//字符串显示条件
|
||||||
"tableType": d[0]['id']
|
"tableType": d[0]['id']
|
||||||
} //筛选数据
|
} //筛选数据
|
||||||
@ -315,13 +315,7 @@
|
|||||||
})
|
})
|
||||||
|
|
||||||
// 时间粒度
|
// 时间粒度
|
||||||
var timeParticleSizearr = [
|
X.laydropdown('.analtsis-timeParticleSize',X['DATA']['screenlist']['distribution'],function(d){
|
||||||
{'title':'按天','id':'P1D'},
|
|
||||||
{'title':'按周','id':'P1W'},
|
|
||||||
{'title':'按月','id':'P1M'},
|
|
||||||
{'title':'合计','id':'total'}
|
|
||||||
]
|
|
||||||
X.laydropdown('.analtsis-timeParticleSize',timeParticleSizearr,function(d){
|
|
||||||
console.log(d);
|
console.log(d);
|
||||||
$(".analtsis-timeParticleSize").html(d.title);
|
$(".analtsis-timeParticleSize").html(d.title);
|
||||||
data['eventView']['timeParticleSize'] = d.id;
|
data['eventView']['timeParticleSize'] = d.id;
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
this.parms = parms;
|
this.parms = parms;
|
||||||
this.callback = parms.callback;
|
this.callback = parms.callback;
|
||||||
var data = parms;
|
var data = parms;
|
||||||
|
console.log(data);
|
||||||
X.laytpldata("#kanban-model-modify-table-dot",data,"model"+data.id,function(html){
|
X.laytpldata("#kanban-model-modify-table-dot",data,"model"+data.id,function(html){
|
||||||
|
|
||||||
$("#model"+data.id).html(html);
|
$("#model"+data.id).html(html);
|
||||||
|
@ -475,14 +475,7 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
// 时间粒度
|
// 时间粒度
|
||||||
var timeParticleSizearr = [
|
X.laydropdown('.analtsis-timeParticleSize',X['DATA']['screenlist']['retention'],function(d){
|
||||||
{'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);
|
// console.log(d);
|
||||||
$(".analtsis-timeParticleSize").html(d.title);
|
$(".analtsis-timeParticleSize").html(d.title);
|
||||||
data['eventView']['unitNum'] = parseInt(d.id);
|
data['eventView']['unitNum'] = parseInt(d.id);
|
||||||
@ -570,6 +563,7 @@
|
|||||||
else if(title == '每日留存'){ $(".table-div-box").hide(); $(".analysis-echarts").show(); retaineddayRetained(d) }
|
else if(title == '每日留存'){ $(".table-div-box").hide(); $(".analysis-echarts").show(); retaineddayRetained(d) }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//数据报表渲染
|
||||||
function retainedtable(d){
|
function retainedtable(d){
|
||||||
var nname,pname
|
var nname,pname
|
||||||
if(retentiontype == 0) {
|
if(retentiontype == 0) {
|
||||||
@ -712,7 +706,7 @@
|
|||||||
};
|
};
|
||||||
myChart.setOption(option,true);
|
myChart.setOption(option,true);
|
||||||
};
|
};
|
||||||
|
// 第N日留存
|
||||||
function retainednRetained(d){
|
function retainednRetained(d){
|
||||||
var nname,pname
|
var nname,pname
|
||||||
if(retentiontype == 0) {
|
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; }
|
.echarts-box { padding: 0 24px; margin-top: 10px; height: 204px; }
|
||||||
.layui-card:last-child { padding-bottom: 12px; }
|
.layui-card:last-child { padding-bottom: 12px; }
|
||||||
.echarts { width: 100%; height: 204px; }
|
.echarts { width: 100%; height: 204px; }
|
||||||
.control { height: 21px; display: none; }
|
.control { height: 21px; display: block; }
|
||||||
.tool-show .control { display: block; }
|
.tool-show .control { display: block; }
|
||||||
|
|
||||||
.table-box { margin: 10px 24px 0 24px; height: 283px; overflow-x: auto; overflow-y: hidden; }
|
.table-box { margin: 10px 24px 0 24px; height: 283px; overflow-x: auto; overflow-y: hidden; }
|
||||||
|
Loading…
Reference in New Issue
Block a user