From 753a349ae5e0f6974da8c17fb276ad7d3dae9e3f Mon Sep 17 00:00:00 2001 From: luosongbai <15272473386@163.com> Date: Tue, 7 Sep 2021 17:25:31 +0800 Subject: [PATCH] 1 --- web/pages/modeltable.html | 381 ++++++++++----------------------- web/pages/modeltype.html | 274 ++++++++++++++++++++++++ web/src/x.min.js | 362 ++++++++++++++++++------------- web/srczip/common.js | 64 ++++-- web/srczip/logic/dashboard.js | 279 +++++++++++++----------- web/srczip/logic/modeltable.js | 14 +- web/srczip/logic/modeltype.js | 24 +++ 7 files changed, 834 insertions(+), 564 deletions(-) create mode 100644 web/pages/modeltype.html create mode 100644 web/srczip/logic/modeltype.js diff --git a/web/pages/modeltable.html b/web/pages/modeltable.html index 8fd2802..b34d843 100644 --- a/web/pages/modeltable.html +++ b/web/pages/modeltable.html @@ -3,36 +3,109 @@ {{# if(d.modelsize === "small"){ }} - -
-
- -
-
-
- -
-
- -
-
- -
-
-
-
+
+
+ {{d.date}} +
+
-
-
- {{d.date}} -
-
+
{{d.num}}
-
{{d.num}}
+
+ {{# if(d.wowtype != ''){ }} + {{# if(d.wowtype == '-'){ }} +
较环比
{{d.wow}}%
+ {{# } else { }} +
较环比
{{d.wow}}%
+ {{# } }} + {{# } }} + {{# if(d.chain_ratiotype != ''){ }} + {{# if(d.chain_ratiotype == "+"){ }} +
较同比
{{d.chain_ratio}}%
+ {{# } else { }} +
较同比
{{d.chain_ratio}}%
+ {{# } }} + {{# } }} +
-
+ {{# } else { }} + + {{# if(d.modeltype === "table"){ }} + +
+
+ + + + {{# layui.each(d.titledata, function(indexs, items) { }} + + {{# }); }} + + + {{# layui.each(d.titledata, function(indexs, items) { }} + + {{# }); }} + + + + {{# if(d.cat === "event"){ }} + + + {{# layui.each(d.condata, function(indexs, items) { }} + + {{# layui.each(items, function(indexss, itemss) { }} + + {{# }); }} + + {{# }); }} + + {{# } else if(d.cat === "retention"){ }} + + + {{# layui.each(d.condata, function(indexs, items) { }} + + + + {{# layui.each(items.data, function(indexss, itemss){ }} + + {{# }); }} + + {{# }); }} + + {{# } else if(d.cat === "ltv"){ }} + + + {{# layui.each(d.condata, function(indexs, items) { }} + + {{# layui.each(items, function(indexss, itemss){ }} + + {{# }); }} + + {{# }); }} + + {{# } else if(d.cat === "user_property"){ }} + {{# layui.each(d.condata, function(indexs, items) { }} + + + + + {{# }); }} + {{# } }} + +
{{items}}
{{itemss}}
{{items.date}}{{items.d0}} +

{{itemss.n}}

+

{{itemss.p}}%

+
{{itemss}}
{{indexs}}{{items}}
+
+ +
+ + + {{# } else { }} +
+
+
{{d.sameday}}
+
{{# if(d.wowtype != ''){ }} {{# if(d.wowtype == '-'){ }}
较环比
{{d.wow}}%
@@ -48,251 +121,23 @@ {{# } }} {{# } }}
- -
- - - {{# } else { }} - - {{# if(d.modeltype === "table"){ }} - - -
-
- -
-
-
- -
-
- -
- -
- -
-
-
+ +
+
+ {{# if(d.sum != -1){ }} +
总和 {{d.sum}}
+ {{# } }} + {{# if(d.mean != -1){ }} +
均值 {{d.mean}}
+ {{# } }}
- -
-
- {{# if(d.cat != "user_property"){ }} - {{# if(d.date != ""){ }} - {{d.date}} - {{# } }} -
- - {{d.timeParticleSize}} - - {{# if(d.cat === "retention"){ }} -
- {{# if(d.retentiontype === 0){ }} - 留存 - {{# } else { }} - 流失 - {{# } }} - {{# } }} - {{# } }} -
-
- 报表 -
-
- -
- - -
- - - - {{# layui.each(d.titledata, function(indexs, items) { }} - - {{# }); }} - - - {{# layui.each(d.titledata, function(indexs, items) { }} - - {{# }); }} - - - - {{# if(d.cat === "event"){ }} - - - {{# layui.each(d.condata, function(indexs, items) { }} - - {{# layui.each(items, function(indexss, itemss) { }} - - {{# }); }} - - {{# }); }} - - {{# } else if(d.cat === "retention"){ }} - - - {{# layui.each(d.condata, function(indexs, items) { }} - - - - {{# layui.each(items.data, function(indexss, itemss){ }} - - {{# }); }} - - {{# }); }} - - {{# } else if(d.cat === "ltv"){ }} - - - {{# layui.each(d.condata, function(indexs, items) { }} - - {{# layui.each(items, function(indexss, itemss){ }} - - {{# }); }} - - {{# }); }} - - {{# } else if(d.cat === "user_property"){ }} - {{# layui.each(d.condata, function(indexs, items) { }} - - - - - {{# }); }} - {{# } }} - -
{{items}}
{{itemss}}
{{items.date}}{{items.d0}} -

{{itemss.n}}

-

{{itemss.p}}%

-
{{itemss}}
{{indexs}}{{items}}
-
- -
-
- - {{# } else { }} -
-
-
-

{{d.name}}

- -
-
-
-
- -
-
- -
-
- -
-
-
-
- -
-
- {{# if(d.cat != "user_property"){ }} - {{d.date}} -
- {{# if(d.date != ""){ }} - {{d.timeParticleSize}} - {{# } }} - {{# if(d.cat === "retention"){ }} -
- {{# if(d.retentiontype === 0){ }} - 留存 - {{# } else { }} - 流失 - {{# } }} - {{# } }} - {{# } }} +
- - -
-
- 趋势图 -
-
- -
-
-
{{d.sameday}}
-
- - {{# if(d.wowtype != ''){ }} - {{# if(d.wowtype == '-'){ }} -
较环比
{{d.wow}}%
- {{# } else { }} -
较环比
{{d.wow}}%
- {{# } }} - {{# } }} - {{# if(d.chain_ratiotype != ''){ }} - {{# if(d.chain_ratiotype == "+"){ }} -
较同比
{{d.chain_ratio}}%
- {{# } else { }} -
较同比
{{d.chain_ratio}}%
- {{# } }} - {{# } }} -
-
- -
-
- {{# if(d.sum != -1){ }} -
总和 {{d.sum}}
- {{# } }} - {{# if(d.mean != -1){ }} -
均值 {{d.mean}}
- {{# } }} -
-
-
- -
-
-
- -
+
+
+
{{# } }} diff --git a/web/pages/modeltype.html b/web/pages/modeltype.html new file mode 100644 index 0000000..71cf2c1 --- /dev/null +++ b/web/pages/modeltype.html @@ -0,0 +1,274 @@ + + \ No newline at end of file diff --git a/web/src/x.min.js b/web/src/x.min.js index 5bc7f55..1111e95 100644 --- a/web/src/x.min.js +++ b/web/src/x.min.js @@ -116,9 +116,9 @@ var X = window.X || { (function(){ //本地 - var ipurl = "http://10.0.0.77:7889/api/v1/"; + // var ipurl = "http://10.0.0.77:7889/api/v1/"; //线上 - // var ipurl = "http://139.159.159.3:9865/api/v1/"; + var ipurl = "http://139.159.159.3:9865/api/v1/"; //设置或读取登录缓存,需要保存到localStorage,防止刷新时候登录数据丢失 X.loginCache = function(data){ @@ -405,6 +405,40 @@ var X = window.X || { callback && callback(granularity); }; + //根据中文名获取时间粒度id + X.granularityid=function(timeParticleSize,callback){ + if(timeParticleSize == '按天'){ + granularity = 'P1D' + }else if(timeParticleSize == '按分钟'){ + granularity = 'PT1M' + }else if(timeParticleSize == '每五分钟'){ + granularity = 'PT5M' + }else if(timeParticleSize == '每十分钟'){ + granularity = 'PT10M' + }else if(timeParticleSize == '每十五分钟'){ + granularity = 'PT15M' + }else if(timeParticleSize == '按小时'){ + granularity = 'PT1H' + }else if(timeParticleSize == '按周'){ + granularity = 'P1W' + }else if(timeParticleSize == '按月'){ + granularity = 'P1M' + }else if(timeParticleSize == '合计'){ + granularity = 'total' + }else if(timeParticleSize == '当日'){ + granularity = '1' + }else if(timeParticleSize == '次日'){ + granularity = '2' + }else if(timeParticleSize == '7日'){ + granularity = '7' + }else if(timeParticleSize == '14日'){ + granularity = '14' + }else if(timeParticleSize == '30日'){ + granularity = '30' + } + callback && callback(granularity); + }; + // 分组项取交集 X.groupintersection=function(c , a , callback){ @@ -582,7 +616,7 @@ var X = window.X || { }; X.eventtable=function(data,callback){ - var titledata,condata = []; + var titledata,date,condata = []; for(let i in data){ if(data[i]['values'].length > 0 ){ titledata= $.extend(true,[],data[0]['date_range']); @@ -608,11 +642,11 @@ var X = window.X || { layer.msg('查询数据为空'); } } - // console.log(condata); - // return; + date = data[0]['start_date'] + " - " + data[0]['end_date']; var dataArr = { titledata:titledata, - condata:condata + condata:condata, + date:date } callback && callback(dataArr); }; @@ -633,8 +667,8 @@ var X = window.X || { var wowtype='',chain_ratiotype='';//判断较环比和较同比的正负 var selected = {};//线多的话默认显示5条 - var length = data[0]['date_range'].length - 1; - date = data[0]['date_range'][length]; + date = data[0]['start_date'] + " - " + data[0]['end_date']; + // console.log(date); for(let i in data){ for(let z in data[i]['values']){ var arr = { @@ -820,12 +854,12 @@ var X = window.X || { } } titdata.unshift("日期",data.title); - console.log(titdata); - console.log(tabledata) + var date = data['start_date'] + " - " + data['end_date']; var dataArr = { titledata:titdata, condata:tabledata, - retentiontype:data.retentiontype + retentiontype:data.retentiontype, + date:date } callback && callback(dataArr); }; @@ -843,7 +877,8 @@ var X = window.X || { var legenddata = []; var seriesData = []; var xAxisData = []; - var date=0,sum=0,mean=0,sameday=0; + var date,sum=0,mean=0,sameday=0; + date = d['start_date'] + " - " + d['end_date']; if(jQuery.isEmptyObject(d.values)){ var arr = [] for(let i in d['summary_values']){ @@ -860,7 +895,6 @@ var X = window.X || { sum = sum + arr[i]; sameday = arr[i]; } - date = '近'+xAxisData.length+'天时间'; mean = (sum / arr.length).toFixed(2); }else { @@ -936,9 +970,11 @@ var X = window.X || { }; X.ltvtable=function(data,callback){ + var date = data['start_date'] + " - " + data['end_date']; var dataArr = { titledata:data.title, - condata:data.rows + condata:data.rows, + date:date } callback && callback(dataArr); }; @@ -4139,16 +4175,66 @@ var X = window.X || { var obj = $(this); var offset = obj.offset(); var id = obj.attr('data-id'); + var cat = obj.attr('data-cat'); + var modelsize = obj.attr('data-modelsize'); + var modeltype = obj.attr('data-modeltype'); + var name = obj.attr('data-name'); X.parametersopen(X['DATA']['retentionlist'],'dropdownlist',[offset.top+obj.height(),offset.left],function(d){ + obj.html(d.title); var retentiontype = d.id; var modelid = "retention"+id; - X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(val){ - for(let i in val){ - if(val[i]['report_id'] == id){ - X.pageLogic['dashboard'].fillmodeldata(val[i],modelid,retentiontype); - } - } - }) + var reportid = []; + reportid.push(id); + // X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(val){ + // for(let i in val){ + // if(val[i]['report_id'] == id){ + // X.pageLogic['dashboard'].fillmodeldata(val[i],modelid,retentiontype); + // } + // } + // }) + X.api("report/read_report",'post',{project_id:X.DATA['projectid'],report_id:reportid},function(val){ + console.log(val); + var query = { + eventView:val[0]['query']['eventView'], + events:val[0]['query']['events'], + }; + //获取修改的时间 + var dateid = "times"+id; + var time = $("#"+dateid).html(); + var timearr = time.split(" "); + query['eventView']['startTime'] = timearr[0] + ' 00:00:00'; + query['eventView']['endTime'] = timearr[2] + ' 23:59:59'; + //获取修改的时间粒度 + var timeParticleSizeid = "screenlist"+id; + var timeParticleSizename = $("#"+timeParticleSizeid).html(); + var timeParticleSize; + X.granularityid(timeParticleSizename,function(d){ + timeParticleSize = d; + query['eventView']['timeParticleSize'] = timeParticleSize; + X.api("ck/"+ cat +"_model","post",query,function(val){ + if(JSON.stringify(val) != "{}"){ + var bbsetdata = { + graph_size:modelsize, + graph_type:modeltype, + model:cat, + name:name, + report_id:id, + query:query + } + + var modeldata = X.pageLogic['dashboard'].modeldata(bbsetdata,val,retentiontype); + //渲染模板和数据 + X.template("modeltable",'conent-box'+modeldata[0]['id'],modeldata[0],function(){ + X.pageLogic['dashboard'].morefeatures(modeldata[0]); + }); + + }else { + layer.msg('无数据!!!'); + } + + }) + }) + }) }) }); @@ -4156,7 +4242,7 @@ var X = window.X || { $(document).off('click','.model-screenlist').on('click','.model-screenlist',function(){ var obj = $(this); var offset = obj.offset(); - + var id = obj.attr('data-id'); var cat = obj.attr('data-cat'); var modelsize = obj.attr('data-modelsize'); @@ -4164,7 +4250,8 @@ var X = window.X || { var name = obj.attr('data-name'); X.parametersopen(X['DATA']['screenlist'][cat],'dropdownlist',[offset.top+obj.height(),offset.left],function(d){ - console.log(d); + // console.log(d); + obj.html(d.title); var reportid = []; reportid.push(id); X.api('report/read_report','post',{project_id:X.DATA['projectid'],report_id:reportid},function(val){ @@ -4173,6 +4260,14 @@ var X = window.X || { events:val[0]['query']['events'], }; query['eventView']['timeParticleSize'] = d.id; + //时间获取修改后的时间 + // 报表时间id + var dateid = "times"+id; + var time = $("#"+dateid).html(); + var timearr = time.split(" "); + query['eventView']['startTime'] = timearr[0] + ' 00:00:00'; + query['eventView']['endTime'] = timearr[2] + ' 23:59:59'; + // console.log(query); X.api("ck/"+ cat +"_model","post",query,function(vals){ var bbsetdata = { graph_size:modelsize, @@ -4185,7 +4280,7 @@ var X = window.X || { // debugger; var modeldata = X.pageLogic['dashboard'].modeldata(bbsetdata,vals); //渲染模板和数据 - X.template("modeltable",'model'+modeldata[0]['id'],modeldata[0],function(){ + X.template("modeltable",'conent-box'+modeldata[0]['id'],modeldata[0],function(){ X.pageLogic['dashboard'].morefeatures(modeldata[0]); }); }) @@ -4229,67 +4324,17 @@ var X = window.X || { }) }); - // 横纵切换 - // $(document).off('click','.model-switch').on('click','.model-switch',function(){ - // var id = $(this).attr('data-id'); - // var modelswitch = $(this).attr('data-modelswitch'); - // var d = X['DATA']['kanbanlist'][id]; - // var modelid = 'model'+id; - // var eventdata = []; - // var startTime = d['query']['eventView']['startTime']; - // var endTime = d['query']['eventView']['endTime']; - - // if(startTime && endTime){ - // var startTimearr = startTime.split(" "); - // var endTimearr = endTime.split(" "); - // }else { - // var startTimearr = []; - // var endTimearr = []; - // } - - // var timeParticleSize = d['query']['eventView']['timeParticleSize']; - // var granularity = '' - // if(timeParticleSize){ - // X.granularity(timeParticleSize,function(d){ - // granularity = d; - // }); - // } - // X.api("ck/event_model","post",{report_id:id},function(val){ - // 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']; - // data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; - // data['timeParticleSize'] = granularity; - // eventdata.push(data); - // }) - // if(modelswitch){ - // eventdata[0]['modelswitch'] = 1; - // var originaldata;//原始数据 - // originaldata= $.extend(true,[],eventdata[0]['condata']); - // originaldata.unshift(eventdata[0]['titledata']); - // var dataarr = []; - // for(let i in originaldata[0]){ - // var arr = []; - // dataarr.push(arr); - // } - // for(let i in originaldata){ - // for(let j in originaldata[i]){ - // dataarr[j].push(originaldata[i][j]); - // } - // } - // var titledata = dataarr[0]; - // var condata = dataarr.slice(1, dataarr.length - 1); - // eventdata[0]['titledata'] = titledata; - // eventdata[0]['condata'] = condata; - // } - // X.template("modeltable",modelid,eventdata[0],function(){ - // X.pageLogic['dashboard'].morefeatures(eventdata[0]); - // }); - // }) - // }); + //点击时间获取到单击的报表id + $(document).off('click','.model-times').on('click','.model-times',function(){ + var arr = { + id:$(this).attr('data-id'), + cat:$(this).attr('data-cat'), + modeltype:$(this).attr('data-modeltype'), + modelsize:$(this).attr('data-modelsize'), + name:$(this).attr('data-name'), + } + X.DATA.oclickarr =arr; + }); }, @@ -4306,7 +4351,7 @@ var X = window.X || { //填充看板数据 //总体逻辑是:根据获取到的看板内容去先渲染放置的框,在根据不同分析模型处理对应的数据进行填充 - fillmodeldata:function(d,id,type){// + fillmodeldata:function(d,id,type){ X.api("ck/"+d['model']+"_model","post",{report_id:d['report_id']},function(val){ var eventdata = X.pageLogic['dashboard'].modeldata(d,val,type); var data; @@ -4314,13 +4359,19 @@ var X = window.X || { for(var z in eventdata){ if(id){ //当有id时更新对应id看板内的内容 - X.template("modeltable",id,eventdata[z],function(){ - X.pageLogic['dashboard'].morefeatures(eventdata[z]); + X.template("modeltype",id,eventdata[z],function(){ + // X.pageLogic['dashboard'].morefeatures(eventdata[z]); + X.template("modeltable",'conent-box'+eventdata[z]['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]); + X.template("modeltype",'model'+eventdata[z]['id'],eventdata[z],function(){ + //X.pageLogic['dashboard'].morefeatures(eventdata[z]); + X.template("modeltable",'conent-box'+eventdata[z]['id'],eventdata[z],function(){ + X.pageLogic['dashboard'].morefeatures(eventdata[z]); + }); }); } } @@ -4331,16 +4382,6 @@ var X = window.X || { modeldata:function(d,val,type){ var eventdata = []; - var startTime = d['query']['eventView']['startTime']; - var endTime = d['query']['eventView']['endTime']; - if(startTime && endTime){ - var startTimearr = startTime.split(" "); - var endTimearr = endTime.split(" "); - }else { - var startTimearr = []; - var endTimearr = []; - } - var timeParticleSize = d['query']['eventView']['timeParticleSize']; var granularity = '' if(timeParticleSize){ @@ -4371,7 +4412,7 @@ var X = window.X || { data['id'] = d['report_id']; data['modelsize'] = d['graph_size']; data['cat'] = d['model']; - data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; + // data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; data['timeParticleSize'] = granularity; data['modelswitch'] = d['modelswitch']; eventdata.push(data); @@ -4405,7 +4446,7 @@ var X = window.X || { data['id'] = d['report_id']; data['modelsize'] = d['graph_size']; data['cat'] = d['model']; - data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; + // data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; data['timeParticleSize'] = granularity; eventdata.push(data); }) @@ -4429,7 +4470,7 @@ var X = window.X || { data['id'] = d['report_id']; data['modelsize'] = d['graph_size']; data['cat'] = d['model']; - data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; + // data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; data['timeParticleSize'] = granularity; eventdata.push(data); }) @@ -4441,7 +4482,7 @@ var X = window.X || { data['id'] = d['report_id']; data['modelsize'] = d['graph_size']; data['cat'] = d['model']; - data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; + // data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; data['timeParticleSize'] = granularity; eventdata.push(data); }) @@ -4456,7 +4497,7 @@ var X = window.X || { data['id'] = d['report_id']; data['modelsize'] = d['graph_size']; data['cat'] = d['model']; - data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; + // data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; data['timeParticleSize'] = granularity; eventdata.push(data); }) @@ -4467,7 +4508,7 @@ var X = window.X || { data['id'] = d['report_id']; data['modelsize'] = d['graph_size']; data['cat'] = d['model']; - data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; + // data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; data['timeParticleSize'] = granularity; eventdata.push(data); }) @@ -4534,47 +4575,65 @@ var X = window.X || { //设置时间 X.daterender(".model-times",function(start, end, label){ - var id = 'times'+eventdata.id; + // var id = $(this).attr('data-id'); + var oclickarr = X.DATA.oclickarr; + var id = 'times'+oclickarr.id; var startTime = start.format('YYYY-MM-DD')+ " "+ "00:00:00"; var endTime = end.format('YYYY-MM-DD')+ " "+ "23:59:59"; - $("#"+id).html(startTime + ' - ' + endTime); + $("#"+id).html(start.format('YYYY-MM-DD') + ' - ' + end.format('YYYY-MM-DD')); var reportid = []; - reportid.push(eventdata.id); + reportid.push(oclickarr.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']['startTime'] = startTime; - query['eventView']['endTime'] = 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; - query['eventView']['e_days'] = parseInt((sameday - endmonth)/86400); - query['eventView']['s_days'] = parseInt((sameday - startmonth)/86400); - - 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'], - query:query - } - - 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(val.length > 0){ + var query = { + eventView:val[0]['query']['eventView'], + events:val[0]['query']['events'], + }; + query['eventView']['startTime'] = startTime; + query['eventView']['endTime'] = 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; + query['eventView']['e_days'] = parseInt((sameday - endmonth)/86400); + query['eventView']['s_days'] = parseInt((sameday - startmonth)/86400); + // 获取选择后的时间粒度 + var timeParticleSizeid = "screenlist"+oclickarr.id; + var timeParticleSizename = $("#"+timeParticleSizeid).html(); + var timeParticleSize; + X.granularityid(timeParticleSizename,function(d){ + timeParticleSize = d; + query['eventView']['timeParticleSize'] = timeParticleSize; + X.api("ck/"+ oclickarr.cat +"_model","post",query,function(val){ + if(val.length > 0){ + var bbsetdata = { + graph_size:oclickarr['modelsize'], + graph_type:oclickarr['modeltype'], + model:oclickarr['cat'], + name:oclickarr['name'], + report_id:oclickarr['id'], + query:query + } + + var modeldata = X.pageLogic['dashboard'].modeldata(bbsetdata,val); + //渲染模板和数据 + X.template("modeltable",'conent-box'+modeldata[0]['id'],modeldata[0],function(){ + X.pageLogic['dashboard'].morefeatures(modeldata[0]); + }); + + }else { + layer.msg('无数据!!!'); + } + + }) }); - }) + }else { + layer.msg('无数据!!!'); + } }) }); @@ -7435,9 +7494,26 @@ var X = window.X || { this.parms = parms; this.callback = parms.callback; var data = parms; - // console.log(data); + // console.log("table",data); X.laytpldata("#kanban-model-modify-table-dot",data,"model"+data.id,function(html){ + $("#conent-box"+data.id).html(html); + + }) + + } + }; +})(); +// srczip/logic/modeltype.js +(function(){ + X.pageLogic['modeltype'] = { + init : function(parms){ + var me = this; + this.parms = parms; + this.callback = parms.callback; + var data = parms; + // console.log("type",data); + X.laytpldata("#kanban-model-modify-type-dot",data,"model"+data.id,function(html){ $("#model"+data.id).html(html); }) diff --git a/web/srczip/common.js b/web/srczip/common.js index ab86fe0..bc85855 100644 --- a/web/srczip/common.js +++ b/web/srczip/common.js @@ -115,9 +115,9 @@ var X = window.X || { (function(){ //本地 - var ipurl = "http://10.0.0.77:7889/api/v1/"; + // var ipurl = "http://10.0.0.77:7889/api/v1/"; //线上 - // var ipurl = "http://139.159.159.3:9865/api/v1/"; + var ipurl = "http://139.159.159.3:9865/api/v1/"; //设置或读取登录缓存,需要保存到localStorage,防止刷新时候登录数据丢失 X.loginCache = function(data){ @@ -404,6 +404,40 @@ var X = window.X || { callback && callback(granularity); }; + //根据中文名获取时间粒度id + X.granularityid=function(timeParticleSize,callback){ + if(timeParticleSize == '按天'){ + granularity = 'P1D' + }else if(timeParticleSize == '按分钟'){ + granularity = 'PT1M' + }else if(timeParticleSize == '每五分钟'){ + granularity = 'PT5M' + }else if(timeParticleSize == '每十分钟'){ + granularity = 'PT10M' + }else if(timeParticleSize == '每十五分钟'){ + granularity = 'PT15M' + }else if(timeParticleSize == '按小时'){ + granularity = 'PT1H' + }else if(timeParticleSize == '按周'){ + granularity = 'P1W' + }else if(timeParticleSize == '按月'){ + granularity = 'P1M' + }else if(timeParticleSize == '合计'){ + granularity = 'total' + }else if(timeParticleSize == '当日'){ + granularity = '1' + }else if(timeParticleSize == '次日'){ + granularity = '2' + }else if(timeParticleSize == '7日'){ + granularity = '7' + }else if(timeParticleSize == '14日'){ + granularity = '14' + }else if(timeParticleSize == '30日'){ + granularity = '30' + } + callback && callback(granularity); + }; + // 分组项取交集 X.groupintersection=function(c , a , callback){ @@ -581,7 +615,7 @@ var X = window.X || { }; X.eventtable=function(data,callback){ - var titledata,condata = []; + var titledata,date,condata = []; for(let i in data){ if(data[i]['values'].length > 0 ){ titledata= $.extend(true,[],data[0]['date_range']); @@ -607,11 +641,11 @@ var X = window.X || { layer.msg('查询数据为空'); } } - // console.log(condata); - // return; + date = data[0]['start_date'] + " - " + data[0]['end_date']; var dataArr = { titledata:titledata, - condata:condata + condata:condata, + date:date } callback && callback(dataArr); }; @@ -632,8 +666,8 @@ var X = window.X || { var wowtype='',chain_ratiotype='';//判断较环比和较同比的正负 var selected = {};//线多的话默认显示5条 - var length = data[0]['date_range'].length - 1; - date = data[0]['date_range'][length]; + date = data[0]['start_date'] + " - " + data[0]['end_date']; + // console.log(date); for(let i in data){ for(let z in data[i]['values']){ var arr = { @@ -819,12 +853,12 @@ var X = window.X || { } } titdata.unshift("日期",data.title); - console.log(titdata); - console.log(tabledata) + var date = data['start_date'] + " - " + data['end_date']; var dataArr = { titledata:titdata, condata:tabledata, - retentiontype:data.retentiontype + retentiontype:data.retentiontype, + date:date } callback && callback(dataArr); }; @@ -842,7 +876,8 @@ var X = window.X || { var legenddata = []; var seriesData = []; var xAxisData = []; - var date=0,sum=0,mean=0,sameday=0; + var date,sum=0,mean=0,sameday=0; + date = d['start_date'] + " - " + d['end_date']; if(jQuery.isEmptyObject(d.values)){ var arr = [] for(let i in d['summary_values']){ @@ -859,7 +894,6 @@ var X = window.X || { sum = sum + arr[i]; sameday = arr[i]; } - date = '近'+xAxisData.length+'天时间'; mean = (sum / arr.length).toFixed(2); }else { @@ -935,9 +969,11 @@ var X = window.X || { }; X.ltvtable=function(data,callback){ + var date = data['start_date'] + " - " + data['end_date']; var dataArr = { titledata:data.title, - condata:data.rows + condata:data.rows, + date:date } callback && callback(dataArr); }; diff --git a/web/srczip/logic/dashboard.js b/web/srczip/logic/dashboard.js index 4834281..4ea2a42 100644 --- a/web/srczip/logic/dashboard.js +++ b/web/srczip/logic/dashboard.js @@ -329,16 +329,66 @@ var obj = $(this); var offset = obj.offset(); var id = obj.attr('data-id'); + var cat = obj.attr('data-cat'); + var modelsize = obj.attr('data-modelsize'); + var modeltype = obj.attr('data-modeltype'); + var name = obj.attr('data-name'); X.parametersopen(X['DATA']['retentionlist'],'dropdownlist',[offset.top+obj.height(),offset.left],function(d){ + obj.html(d.title); var retentiontype = d.id; var modelid = "retention"+id; - X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(val){ - for(let i in val){ - if(val[i]['report_id'] == id){ - X.pageLogic['dashboard'].fillmodeldata(val[i],modelid,retentiontype); - } - } - }) + var reportid = []; + reportid.push(id); + // X.api('dashboard/','post',{id:X.DATA['dashboard_id']},function(val){ + // for(let i in val){ + // if(val[i]['report_id'] == id){ + // X.pageLogic['dashboard'].fillmodeldata(val[i],modelid,retentiontype); + // } + // } + // }) + X.api("report/read_report",'post',{project_id:X.DATA['projectid'],report_id:reportid},function(val){ + console.log(val); + var query = { + eventView:val[0]['query']['eventView'], + events:val[0]['query']['events'], + }; + //获取修改的时间 + var dateid = "times"+id; + var time = $("#"+dateid).html(); + var timearr = time.split(" "); + query['eventView']['startTime'] = timearr[0] + ' 00:00:00'; + query['eventView']['endTime'] = timearr[2] + ' 23:59:59'; + //获取修改的时间粒度 + var timeParticleSizeid = "screenlist"+id; + var timeParticleSizename = $("#"+timeParticleSizeid).html(); + var timeParticleSize; + X.granularityid(timeParticleSizename,function(d){ + timeParticleSize = d; + query['eventView']['timeParticleSize'] = timeParticleSize; + X.api("ck/"+ cat +"_model","post",query,function(val){ + if(JSON.stringify(val) != "{}"){ + var bbsetdata = { + graph_size:modelsize, + graph_type:modeltype, + model:cat, + name:name, + report_id:id, + query:query + } + + var modeldata = X.pageLogic['dashboard'].modeldata(bbsetdata,val,retentiontype); + //渲染模板和数据 + X.template("modeltable",'conent-box'+modeldata[0]['id'],modeldata[0],function(){ + X.pageLogic['dashboard'].morefeatures(modeldata[0]); + }); + + }else { + layer.msg('无数据!!!'); + } + + }) + }) + }) }) }); @@ -346,7 +396,7 @@ $(document).off('click','.model-screenlist').on('click','.model-screenlist',function(){ var obj = $(this); var offset = obj.offset(); - + var id = obj.attr('data-id'); var cat = obj.attr('data-cat'); var modelsize = obj.attr('data-modelsize'); @@ -354,7 +404,8 @@ var name = obj.attr('data-name'); X.parametersopen(X['DATA']['screenlist'][cat],'dropdownlist',[offset.top+obj.height(),offset.left],function(d){ - console.log(d); + // console.log(d); + obj.html(d.title); var reportid = []; reportid.push(id); X.api('report/read_report','post',{project_id:X.DATA['projectid'],report_id:reportid},function(val){ @@ -363,6 +414,14 @@ events:val[0]['query']['events'], }; query['eventView']['timeParticleSize'] = d.id; + //时间获取修改后的时间 + // 报表时间id + var dateid = "times"+id; + var time = $("#"+dateid).html(); + var timearr = time.split(" "); + query['eventView']['startTime'] = timearr[0] + ' 00:00:00'; + query['eventView']['endTime'] = timearr[2] + ' 23:59:59'; + // console.log(query); X.api("ck/"+ cat +"_model","post",query,function(vals){ var bbsetdata = { graph_size:modelsize, @@ -375,7 +434,7 @@ // debugger; var modeldata = X.pageLogic['dashboard'].modeldata(bbsetdata,vals); //渲染模板和数据 - X.template("modeltable",'model'+modeldata[0]['id'],modeldata[0],function(){ + X.template("modeltable",'conent-box'+modeldata[0]['id'],modeldata[0],function(){ X.pageLogic['dashboard'].morefeatures(modeldata[0]); }); }) @@ -419,67 +478,17 @@ }) }); - // 横纵切换 - // $(document).off('click','.model-switch').on('click','.model-switch',function(){ - // var id = $(this).attr('data-id'); - // var modelswitch = $(this).attr('data-modelswitch'); - // var d = X['DATA']['kanbanlist'][id]; - // var modelid = 'model'+id; - // var eventdata = []; - // var startTime = d['query']['eventView']['startTime']; - // var endTime = d['query']['eventView']['endTime']; - - // if(startTime && endTime){ - // var startTimearr = startTime.split(" "); - // var endTimearr = endTime.split(" "); - // }else { - // var startTimearr = []; - // var endTimearr = []; - // } - - // var timeParticleSize = d['query']['eventView']['timeParticleSize']; - // var granularity = '' - // if(timeParticleSize){ - // X.granularity(timeParticleSize,function(d){ - // granularity = d; - // }); - // } - // X.api("ck/event_model","post",{report_id:id},function(val){ - // 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']; - // data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; - // data['timeParticleSize'] = granularity; - // eventdata.push(data); - // }) - // if(modelswitch){ - // eventdata[0]['modelswitch'] = 1; - // var originaldata;//原始数据 - // originaldata= $.extend(true,[],eventdata[0]['condata']); - // originaldata.unshift(eventdata[0]['titledata']); - // var dataarr = []; - // for(let i in originaldata[0]){ - // var arr = []; - // dataarr.push(arr); - // } - // for(let i in originaldata){ - // for(let j in originaldata[i]){ - // dataarr[j].push(originaldata[i][j]); - // } - // } - // var titledata = dataarr[0]; - // var condata = dataarr.slice(1, dataarr.length - 1); - // eventdata[0]['titledata'] = titledata; - // eventdata[0]['condata'] = condata; - // } - // X.template("modeltable",modelid,eventdata[0],function(){ - // X.pageLogic['dashboard'].morefeatures(eventdata[0]); - // }); - // }) - // }); + //点击时间获取到单击的报表id + $(document).off('click','.model-times').on('click','.model-times',function(){ + var arr = { + id:$(this).attr('data-id'), + cat:$(this).attr('data-cat'), + modeltype:$(this).attr('data-modeltype'), + modelsize:$(this).attr('data-modelsize'), + name:$(this).attr('data-name'), + } + X.DATA.oclickarr =arr; + }); }, @@ -496,7 +505,7 @@ //填充看板数据 //总体逻辑是:根据获取到的看板内容去先渲染放置的框,在根据不同分析模型处理对应的数据进行填充 - fillmodeldata:function(d,id,type){// + fillmodeldata:function(d,id,type){ X.api("ck/"+d['model']+"_model","post",{report_id:d['report_id']},function(val){ var eventdata = X.pageLogic['dashboard'].modeldata(d,val,type); var data; @@ -504,13 +513,19 @@ for(var z in eventdata){ if(id){ //当有id时更新对应id看板内的内容 - X.template("modeltable",id,eventdata[z],function(){ - X.pageLogic['dashboard'].morefeatures(eventdata[z]); + X.template("modeltype",id,eventdata[z],function(){ + // X.pageLogic['dashboard'].morefeatures(eventdata[z]); + X.template("modeltable",'conent-box'+eventdata[z]['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]); + X.template("modeltype",'model'+eventdata[z]['id'],eventdata[z],function(){ + //X.pageLogic['dashboard'].morefeatures(eventdata[z]); + X.template("modeltable",'conent-box'+eventdata[z]['id'],eventdata[z],function(){ + X.pageLogic['dashboard'].morefeatures(eventdata[z]); + }); }); } } @@ -521,16 +536,6 @@ modeldata:function(d,val,type){ var eventdata = []; - var startTime = d['query']['eventView']['startTime']; - var endTime = d['query']['eventView']['endTime']; - if(startTime && endTime){ - var startTimearr = startTime.split(" "); - var endTimearr = endTime.split(" "); - }else { - var startTimearr = []; - var endTimearr = []; - } - var timeParticleSize = d['query']['eventView']['timeParticleSize']; var granularity = '' if(timeParticleSize){ @@ -561,7 +566,7 @@ data['id'] = d['report_id']; data['modelsize'] = d['graph_size']; data['cat'] = d['model']; - data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; + // data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; data['timeParticleSize'] = granularity; data['modelswitch'] = d['modelswitch']; eventdata.push(data); @@ -595,7 +600,7 @@ data['id'] = d['report_id']; data['modelsize'] = d['graph_size']; data['cat'] = d['model']; - data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; + // data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; data['timeParticleSize'] = granularity; eventdata.push(data); }) @@ -619,7 +624,7 @@ data['id'] = d['report_id']; data['modelsize'] = d['graph_size']; data['cat'] = d['model']; - data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; + // data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; data['timeParticleSize'] = granularity; eventdata.push(data); }) @@ -631,7 +636,7 @@ data['id'] = d['report_id']; data['modelsize'] = d['graph_size']; data['cat'] = d['model']; - data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; + // data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; data['timeParticleSize'] = granularity; eventdata.push(data); }) @@ -646,7 +651,7 @@ data['id'] = d['report_id']; data['modelsize'] = d['graph_size']; data['cat'] = d['model']; - data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; + // data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; data['timeParticleSize'] = granularity; eventdata.push(data); }) @@ -657,7 +662,7 @@ data['id'] = d['report_id']; data['modelsize'] = d['graph_size']; data['cat'] = d['model']; - data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; + // data['date'] = startTimearr[0] + ' - ' + endTimearr[0]; data['timeParticleSize'] = granularity; eventdata.push(data); }) @@ -724,47 +729,65 @@ //设置时间 X.daterender(".model-times",function(start, end, label){ - var id = 'times'+eventdata.id; + // var id = $(this).attr('data-id'); + var oclickarr = X.DATA.oclickarr; + var id = 'times'+oclickarr.id; var startTime = start.format('YYYY-MM-DD')+ " "+ "00:00:00"; var endTime = end.format('YYYY-MM-DD')+ " "+ "23:59:59"; - $("#"+id).html(startTime + ' - ' + endTime); + $("#"+id).html(start.format('YYYY-MM-DD') + ' - ' + end.format('YYYY-MM-DD')); var reportid = []; - reportid.push(eventdata.id); + reportid.push(oclickarr.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']['startTime'] = startTime; - query['eventView']['endTime'] = 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; - query['eventView']['e_days'] = parseInt((sameday - endmonth)/86400); - query['eventView']['s_days'] = parseInt((sameday - startmonth)/86400); - - 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'], - query:query - } - - 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(val.length > 0){ + var query = { + eventView:val[0]['query']['eventView'], + events:val[0]['query']['events'], + }; + query['eventView']['startTime'] = startTime; + query['eventView']['endTime'] = 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; + query['eventView']['e_days'] = parseInt((sameday - endmonth)/86400); + query['eventView']['s_days'] = parseInt((sameday - startmonth)/86400); + // 获取选择后的时间粒度 + var timeParticleSizeid = "screenlist"+oclickarr.id; + var timeParticleSizename = $("#"+timeParticleSizeid).html(); + var timeParticleSize; + X.granularityid(timeParticleSizename,function(d){ + timeParticleSize = d; + query['eventView']['timeParticleSize'] = timeParticleSize; + X.api("ck/"+ oclickarr.cat +"_model","post",query,function(val){ + if(val.length > 0){ + var bbsetdata = { + graph_size:oclickarr['modelsize'], + graph_type:oclickarr['modeltype'], + model:oclickarr['cat'], + name:oclickarr['name'], + report_id:oclickarr['id'], + query:query + } + + var modeldata = X.pageLogic['dashboard'].modeldata(bbsetdata,val); + //渲染模板和数据 + X.template("modeltable",'conent-box'+modeldata[0]['id'],modeldata[0],function(){ + X.pageLogic['dashboard'].morefeatures(modeldata[0]); + }); + + }else { + layer.msg('无数据!!!'); + } + + }) }); - }) + }else { + layer.msg('无数据!!!'); + } }) }); diff --git a/web/srczip/logic/modeltable.js b/web/srczip/logic/modeltable.js index 7a312ed..fb6c0b2 100644 --- a/web/srczip/logic/modeltable.js +++ b/web/srczip/logic/modeltable.js @@ -5,21 +5,13 @@ this.parms = parms; this.callback = parms.callback; var data = parms; - // console.log(data); + // console.log("table",data); X.laytpldata("#kanban-model-modify-table-dot",data,"model"+data.id,function(html){ - $("#model"+data.id).html(html); + $("#conent-box"+data.id).html(html); + }) - // for(var i in data){ - // X.laytpldata("#kanban-model-table-dot",data[i],null,function(html){ - // // console.log($("#model-box").html()); - // console.log(html); - // $('#model-box').append(html); - // }); - // } - - } }; })(); \ No newline at end of file diff --git a/web/srczip/logic/modeltype.js b/web/srczip/logic/modeltype.js new file mode 100644 index 0000000..5dbae2d --- /dev/null +++ b/web/srczip/logic/modeltype.js @@ -0,0 +1,24 @@ +(function(){ + X.pageLogic['modeltype'] = { + init : function(parms){ + var me = this; + this.parms = parms; + this.callback = parms.callback; + var data = parms; + // console.log("type",data); + X.laytpldata("#kanban-model-modify-type-dot",data,"model"+data.id,function(html){ + $("#model"+data.id).html(html); + }) + + // for(var i in data){ + // X.laytpldata("#kanban-model-table-dot",data[i],null,function(html){ + // // console.log($("#model-box").html()); + // console.log(html); + // $('#model-box').append(html); + // }); + // } + + + } + }; +})(); \ No newline at end of file