(function(){ X.pageLogic['analysis'] = { init : function(){ var me = this; // 渲染form样式 layui.form.render(); var dataArr; //分析指标 var groupeddata;//分组项 var type2data; //var filtersymbols=[];//筛选符号 // filtersymbols.push(drr); var defaultgroupdata; //默认添加分组项里的事件 var filter_map,quotas_map; var data = { "events":[], "eventView":{ "cksql":"event", "startTime":"", "timeParticleSize":"P1D", "endTime":"", "graphShape":"L0", "e_days":0, "s_days":7, "groupBy":[], "uiCommonConfig":{ "tableSorts":[], "chartSort":"num-desc" }, "filts":[],//全局筛选 "relation":'and', "zone_time":'8'//时区 } } var retdata,props; // 日期渲染 X.daterender("#analtsis-condition-date",function(start, end, label){ var startTime = start.format('YYYY-MM-DD')+ " "+ "00:00:00"; var endTime = end.format('YYYY-MM-DD')+ " "+ "23:59:59"; data['eventView']['startTime'] = startTime; data['eventView']['endTime'] = endTime; 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; data['eventView']['e_days'] = parseInt((sameday - endmonth)/86400); data['eventView']['s_days'] = parseInt((sameday - startmonth)/86400); console.log(parseInt((sameday - endmonth)/86400)); console.log(parseInt((sameday - startmonth)/86400)); // calculationdata(); }) var time = $("#analtsis-condition-date").val(); var timearr = time.split(" "); data['eventView']['startTime'] = timearr[0] + " "+"00:00:00"; data['eventView']['endTime'] = timearr[2]+" "+"23:59:59"; // X.template("toptab","analysis-zhanwei",X.DATA['projectarr'],function(){ X.api("data_auth/my_event","get",{},function(d){ dataArr = d; X.api("data_auth/load_prop_quotas","post",{event_name:dataArr[0]['category'][0]['event_name']},function(d){ retdata = d.staid_quots.concat(d.props); props = d.props; var defaultindicator = { "event_desc":dataArr[0]['category'][0]['event_desc'], "event_name":dataArr[0]['category'][0]['event_name'], "event_attr":"总次数", "event_attr_id":"*", "event_attr_type":"", "analysisname":'', "analysis":'total_count', "filts":[],//过滤项 "relation":'and', "customEvent":'', "eventNameDisplay":'',//重命名指标 "format":'float', "formatname":'两位小数', "is_show" : true } data.events.push(defaultindicator); updataindex(data.events); type2data= retdata X.api("data_auth/load_filter_props","post",{event_name:dataArr[0]['category'][0]['event_name']},function(val){ defaultgroupdata = val; X.api("data_auth/filter_map","get",{},function(d){ filter_map = d; X.api('data_auth/quotas_map',"get",{},function(d){ quotas_map = d; //从数据看板点击进来触发事件 if(X.DATA.eventid && X.DATA.eventid != ''){ var report_idarr = []; report_idarr.push(X.DATA.eventid); if(X.DATA.authority != 'rw'){ $('.analysis-savereport').hide(); } X.api('report/read_report','post',{project_id:X.DATA.projectid,report_id:report_idarr},function(d){ backfilldata(d[0]); }) } }) }) }) }) // groupeddata = d.group_by; }) // }); // 渲染选择时间下拉框 layui.dropdown.render({ elem: ".analysis-navigation-bar-datetime" ,data: X.DATA.timezone ,click: function(obj){ $(".analysis-navigation-bar-datetime").html(obj.title); data['eventView']['zone_time'] = obj.id; } }); // 伸缩左侧选项 $(".analysis-con-left-shrink").click(function(){ if($(".analysis-con-left").css('left') == "auto" || $(".analysis-con-left").css('left') == "0px"){ $(".analysis-con-left").css("position","absolute"); $(".analysis-con-left").css("left","-535px"); $(".analysis-con-left-shrink").css("transform","rotate(180deg)"); $(".analysis-con-right").css("width","calc(100% - 15px)"); $(".analysis-con-right").css("margin-left","16px"); }else { $(".analysis-con-left").css("position","relative"); $(".analysis-con-left").css("left","auto"); $(".analysis-con-left-shrink").css("transform","rotate(3600deg)"); $(".analysis-con-right").css("width","calc(100% - 550px)"); $(".analysis-con-right").css("margin-left","0px"); } }); //已存报表 var baobiaodata; $(document).off('click','.analysis-navigation-bar-right-img-baobiao').on('click','.analysis-navigation-bar-right-img-baobiao',function(){ X.parametersopen(data['eventView']['cksql'],'savedbaobiao','rt',function(d){ if(d){ backfilldata(d) } }) }); // 反向填充数据 function backfilldata(d){ data = d.query; // filtersymbols = data.cachedata.filtersymbols; var time = $("#analtsis-condition-date").val(); var timearr = time.split(" "); data['eventView']['startTime'] = timearr[0] + " "+"00:00:00"; data['eventView']['endTime'] = timearr[2]+" "+"23:59:59"; baobiaodata = d; if(d.query.events.length > 0){ $(".analysis-overall").show(); }else { $(".analysis-overall").hide(); } updataindex(d.query.events); X.laytpldata("#analysis-gpmain___3YGfw-dot",d.query.eventView.groupBy,".analysis-gpmain___3YGfw"); X.laytpldata("#analysis-overall-situation-list-box-dot",d.query['eventView']['filts'],".analysis-overall-situation-list-box",function(){ renderdate(); }); // analysisdown(); calculationdata(); }; // 更新指标 function updataindex(indexdata){ X.laytpldata("#analysis-con-left-screen-list-dot",indexdata,".analysis-con-left-screen-list-box",function(){ var sidebar = document.getElementById('analysis-con-left-screen-list-box'); new Sortable(sidebar, { handle: '.analysis-num', // handle class animation: 150, onUpdate:function(evt){ var newIndex = evt.newIndex; var oldIndex = evt.oldIndex; let item = data.events.splice(oldIndex, 1); // arr删除2,把2给item data.events.splice(newIndex, 0, item[0]); console.log(data); updataindex(data.events); } }); }); }; // sql语句显示 $(document).off('click','.sqlquery').on('click','.sqlquery',function(){ var obj = $(this); var offset = obj.offset(); X.querycriteriapop(data,'conditionquery',offset.left - 410,offset.top+obj.height(),function(){ }) }); // 显示隐藏 $(document).off("click",".analysis-isshow-click").on("click",".analysis-isshow-click",function(){ var index = $(this).attr("data-index"); var type = $(this).attr("data-type"); var isshow = (type == "true") ? false : true; data['events'][index]['is_show'] = isshow; updataindex(data.events); }); // 切换为指标公式或组合 $(document).off('click','.analysis-gongshi').on('click','.analysis-gongshi',function(){ var index = $(this).attr("data-index"); var type = $(this).attr("data-type"); data['events'][index]['customType'] = type; $("#analysis-con-left-screen-list-left-box-"+index).hide(); $("#analysis-custom-box-"+index).show(); $(this).hide(); $("#analysis-con-left-screen-list-right-"+index+" "+".analysis-zhibiao").show(); }); // 切换为指标选择 $(document).off('click','.analysis-zhibiao').on('click','.analysis-zhibiao',function(){ var index = $(this).attr("data-index"); $("#analysis-con-left-screen-list-left-box-"+index).show(); $("#analysis-custom-box-"+index).hide(); $(this).hide(); $("#analysis-con-left-screen-list-right-"+index+" "+".analysis-gongshi").show(); }); //复制指标 $(document).off('click','.analysis-fuzhi').on('click','.analysis-fuzhi',function(){ var index = $(this).attr("data-index"); var arr = data.events[index]; data.events.push(arr); updataindex(data.events); var num = data.events.length; // filtersymbols[num] = filtersymbols[index]; }); //重命名指标 $(document).off('click','.analysis-chongmingming').on('click','.analysis-chongmingming',function() { var index = $(this).attr('data-index'); $("#analysis-con-left-screen-list-left-zhibiaoname-"+index).show(); $(this).hide(); $("#analysis-con-left-screen-list-right-"+index+" "+".analysis-chongmingming-del").show(); }); //删除重命名 $(document).off('click','.analysis-chongmingming-del').on('click','.analysis-chongmingming-del',function() { var index = $(this).attr("data-index"); $("#analysis-con-left-screen-list-left-zhibiaoname-"+index).hide(); $("#analysis-con-left-screen-list-left-zhibiaoname-"+index+" "+"input").val(''); $(this).hide(); $("#analysis-con-left-screen-list-right-"+index+" "+".analysis-chongmingming").show(); }); // 设置一级事件 $(document).off('click','.ant-dropdown-trigger').on('click','.ant-dropdown-trigger',function() { var obj = $(this); var offset = obj.offset(); var index = obj.attr('data-index') X.querycriteriapop(dataArr,'setgrouping',offset.left,offset.top+obj.height(),function(val){ var htmlstring = val.id; obj.html(htmlstring); data['events'][index]['event_desc'] = val.id; data['events'][index]['event_name'] = val.name; }) }); //设置一级事件中第二个参数 $(document).off('click','.analysis-zhibiao-list-type2').on('click','.analysis-zhibiao-list-type2',function(){ var obj = $(this); var offset = obj.offset(); var index = obj.attr("data-index"); if(type2data.length >0){ X.parametersopen(type2data,'dropdownlist',[offset.top+obj.height(),offset.left],function(val){ if(val != undefined){ $("#analysis-zhibiao-list-type2-"+index).html(val.title); data['events'][index]['event_attr'] = val.title; data['events'][index]['event_attr_id'] = val.id; data['events'][index]['event_attr_type'] = val.data_type; if(val.data_type && val.data_type != null){ $("#analysis-zhibiao-list-type3-"+index).show(); $("#analysis-zhibiao-list-type3-"+index).html(quotas_map[val.data_type][0]['title']); data['events'][index]['analysisname'] = quotas_map[val.data_type][0]['title']; data['events'][index]['analysis'] = quotas_map[val.data_type][0]['id']; }else { $("#analysis-zhibiao-list-type3-"+index).hide(); data['events'][index]['analysis'] = val.analysis; } updataindex(data.events); } }) } }); //设置一级事件中第三个参数 $(document).off('click','.analysis-zhibiao-condition').on('click','.analysis-zhibiao-condition',function(){ var obj = $(this); var offset = obj.offset(); var index = obj.attr("data-index"); var type = data['events'][index]['event_attr_type']; X.parametersopen(quotas_map[type],'dropdownlist',[offset.top+obj.height(),offset.left],function(val){ $("#analysis-zhibiao-list-type3-"+index).html(val.title); data['events'][index]['analysisname'] = val.title; data['events'][index]['analysis'] = val.id; }) }); $(document).off('click','.ta-property-select').on('click','.ta-property-select',function(){ var obj = $(this); var offset = obj.offset(); var index = obj.attr("data-index"); var indexs = obj.attr("data-indexs"); X.querycriteriapop(defaultgroupdata,'category',offset.left,offset.top+obj.height(),function(val){ // console.log(val); var htmlstring = val.title; obj.html(htmlstring); // filtersymbols[index][indexs] = val.category; data['events'][index]['filts'][indexs]['columnDesc'] = htmlstring; data['events'][index]['filts'][indexs]['columnName'] = val.id; data['events'][index]['filts'][indexs]['data_type'] = val.type; data['events'][index]['filts'][indexs]['tableType'] = val.table_type; if(val.type == 'user_label'){ data['events'][index]['filts'][indexs]['comparator_name'] = "是"; data['events'][index]['filts'][indexs]['comparator'] = 'in'; } updataindex(data.events); }) }); $(document).off('click','.analysis-choicetypename').on('click','.analysis-choicetypename',function(){ var obj = $(this); var offset = obj.offset(); var index = $(this).attr("data-index"); var indexs = $(this).attr("data-indexs"); var type = data['events'][index]['filts'][indexs]['data_type']; X.parametersopen(filter_map[type],'dropdownlist',[offset.top+obj.height(),offset.left],function(val){ if(val != undefined){ obj.html(val.title); data['events'][index]['filts'][indexs]['comparator_name'] = val.title; data['events'][index]['filts'][indexs]['comparator'] = val.id; } }) }); // 添加筛选项 $(document).off('click','.analysis-shaix-jinting').on('click','.analysis-shaix-jinting',function(){ var obj = $(this); var index = obj.attr("data-index"); addscreen(index); }); // 添加筛选项 function addscreen(index){ X.api('data_auth/load_filter_props',"post",{event_name:data['events'][index]["event_name"]},function(d){ var arr = { "columnDesc":d[0]['category'][0]['title'],//事件中文显示 "columnName":d[0]['category'][0]['id'],//事件id "comparator_name":filter_map[d[0]['category'][0]['data_type']][0]['title'],//选择符号中文显示 "comparator":filter_map[d[0]['category'][0]['data_type']][0]['id'],//符号id "data_type":d[0]['category'][0]['data_type'], "ftv":[],//条件 "strftv":'',//字符串显示条件 "tableType": d[0]['id'] } //筛选数据 data['events'][index]['filts'].push(arr); updataindex(data.events); }) }; //监听重命名指标 $(document).off('change','.analysis-con-left-screen-list-left-zhibiaoname input').on('change','.analysis-con-left-screen-list-left-zhibiaoname input',function(){ var index = $(this).attr("data-index"); var txt = $(this).val(); data['events'][index]['eventNameDisplay'] = txt; }); $(document).off("click",".analysis-zhibiao-list-type4").on("click",".analysis-zhibiao-list-type4",function(){ var obj = $(this); var offset = obj.offset(); var index = $(this).attr("data-index"); var indexs = $(this).attr("data-indexs"); var comparator = obj.attr("data-comparator"); var columnName; if(indexs != undefined){ columnName = data['events'][index]['filts'][indexs]['columnName']; }else { columnName = data['eventView']['filts'][index]['columnName'] } X.api("data_mana/select_attr","post",{attr_name:columnName},function(val){ if(val != "查无数据"){ X.parametersopen(val['map_'],'dropdownlist',[offset.top+obj.height(),offset.left],function(val){ console.log(val); if(indexs != undefined){ data['events'][index]['filts'][indexs]['strftv'] = val.title; var arr = []; arr.push(val.id); data['events'][index]['filts'][indexs]['ftv'] = arr; updataindex(data.events) }else { data['eventView']['filts'][index]['strftv'] = val.title; var arr = []; arr.push(val.id); data['eventView']['filts'][index]['ftv'] = arr; X.laytpldata("#analysis-overall-situation-list-box-dot",data['eventView']['filts'],".analysis-overall-situation-list-box",function(){ renderdate(); }); } }) } }) }); // 监听文本框 $(document).off('change','.analysis-zhibiao-list-type4 input').on('change','.analysis-zhibiao-list-type4 input',function(){ var index = $(this).attr("data-index"); var indexs = $(this).attr("data-indexs"); var val = $(this).val(); var valarr = val.split(","); console.log(data['events'][index]); if(data['events'][index]['filts'][indexs]){ data['events'][index]['filts'][indexs]['ftv']=valarr; data['events'][index]['filts'][indexs]['strftv']=val; }else { } }); // 且和或切换 $(document).off('click','.analysis-con-left-screen-list-right-screen-qh-tit').on("click",".analysis-con-left-screen-list-right-screen-qh-tit",function(){ var html = $(this).html(); //relation筛选条件的关系 var index = $(this).attr("data-index"); if(html == "且"){ $(this).html('或'); data['events'][index]['relation'] = 'or' }else { $(this).html('且'); data['events'][index]['relation'] = 'and' } }); // 添加条件按钮 $(document).off('click','.analysis-zhibiao-updata').on('click',".analysis-zhibiao-updata",function(){ // addindex(); var obj = $(this); var index = obj.attr("data-index"); addscreen(index); }); // 删除二级筛选项 $(document).off('click','.analysis-zhibiao-list-del').on('click','.analysis-zhibiao-list-del',function(){ // var id = "analysis-zhibiao-list-mar-"+$(this).attr("data-twonum"); // $("#"+id).remove(); var index = $(this).attr("data-index"); var indexs = $(this).attr("data-twonum"); // filtersymbols[index].splice(indexs,1); data.events[index]['filts'].splice(indexs,1); updataindex(data.events); }); // 添加指标 function addindex(){ var defaultindicator = { "event_desc":dataArr[0]['category'][0]['event_desc'], "event_name":dataArr[0]['category'][0]['event_name'], "event_attr":"总次数", "event_attr_id":"*", "event_attr_type":"", "analysisname":'', "analysis":'total_count', "filts":[],//过滤项 "relation":'and', "customEvent":'', "eventNameDisplay":'',//重命名指标 "format":'float', "formatname":'两位小数', "is_show": true } data['events'].push(defaultindicator); updataindex(data.events); var index = data.events.length - 1; $(".analysis-del").show() //显示删除按钮 var drr = []; if(data.events.length > 1){ $(".analysis-overall").show(); }else { $(".analysis-overall").hide(); } }; //添加按钮 $(document).on('click','.analysis-jia1',function(){ addindex(); }); //添加指标按钮 $(document).on('click','.analysis-bottom-jia1',function(){ addindex(); }); //删除指标 $(document).off('click','.analysis-del').on('click',".analysis-del",function(){ if(data['events'].length != 1){ var index = $(this).attr("data-index"); data['events'].splice(index,1); if(data['events'].length == 1){ $(".analysis-del").hide(); //隐藏删除按钮 $(".analysis-overall").hide(); } updataindex(data.events); } }); $(".analysis-custom-event-box .analysis-custom-event-txt").blur(function(){ $(this).css("border-bottom","0px"); }); $(document).off('click','.analysis-custom-event-box .analysis-custom-event-txt').on('blur','.analysis-custom-event-box .analysis-custom-event-txt',function(){ // $(this).css("border-bottom","1px solid #3d90ff"); var obj = $(this); var offset = obj.offset(); var index = obj.attr("data-index"); console.log(data['events']); data['events'][index]['customEvent'] = $(this).val(); }); $(document).off('click','.analysis-con-left-screen-list-left-zhibiaoname2 input').on('blur','.analysis-con-left-screen-list-left-zhibiaoname2 input',function(){ var index = $(this).attr('data-index'); data['events'][index]['eventNameDisplay'] = $(this).val(); }); $(document).off('click','.ant-select-selector').on('click','.ant-select-selector',function(){ var obj = $(this); var offset = obj.offset(); var index = $(this).attr("data-index"); var downlist = [ {title:'两位小数',id:'float'}, {title:'百分比',id:'percent'}, {title:'取整',id:'integer'}, ]; X.parametersopen(downlist,'dropdownlist',[offset.top+obj.height(),offset.left],function(val){ if(val != undefined){ obj.html(val.title); data['events'][index]['format'] = val.id; data['events'][index]['formatname'] = val.title; } }) }); //分组项 var cat = "event"; $(document).off('click','.analysis-footadd___2D4YB').on('click','.analysis-footadd___2D4YB',function(){ var index = data['eventView']['groupBy'].length; for(let i in defaultgroupdata){ if(defaultgroupdata[i]['category'].length > 0){ var drr = { "columnDesc":defaultgroupdata[i]['category'][index]['title'],//事件中文显示 "columnName":defaultgroupdata[i]['category'][index]['id'],//事件id 'data_type':defaultgroupdata[i]['category'][index]['data_type'],//类型 'tableType': defaultgroupdata[i]['id'], "ftv":[],//条件 "section":''//区间 } break; } } data.eventView.groupBy.push(drr); X.laytpldata("#analysis-gpmain___3YGfw-dot",data.eventView.groupBy,".analysis-gpmain___3YGfw"); }); $(document).off('click','.analysis-ant-dropdown-trigger').on('click','.analysis-ant-dropdown-trigger',function(){ var obj = $(this); var offset = obj.offset(); var index = obj.attr("data-index"); X.querycriteriapop(defaultgroupdata,'category',offset.left,offset.top+obj.height(),function(val){ var htmlstring = val.title; obj.html(htmlstring); data.eventView.groupBy[index]['columnDesc'] = val.title; data.eventView.groupBy[index]['columnName'] = val.id; data.eventView.groupBy[index]['data_type'] = val.type; data.eventView.groupBy[index]['tableType'] = val.table_type; X.laytpldata("#analysis-gpmain___3YGfw-dot",data.eventView.groupBy,".analysis-gpmain___3YGfw"); }) }); $(document).off('click','.analysis-granularity').on("click",".analysis-granularity",function(){ var obj = $(this); var offset = obj.offset(); var type = obj.attr("data_type"); var index = obj.attr("data-index"); var arr; if(type == 'date'){ arr = { data:[ {'name':"按天",'id':'day','checked':true}, {'name':"按分钟",'id':'min','checked':false}, {'name':"按小时",'id':'hour','checked':false}, {'name':"按周",'id':'week','checked':false}, {'name':"按月",'id':'month','checked':false} ], default: data.eventView.groupBy[index]['ftv'] } }else { arr ={ data:[ {'name':"按元素",'id':'0','checked':true}, {'name':"按列表整体",'id':'1','checked':false}, {'name':"按元素集合",'id':'2','checked':false} ], default: data.eventView.groupBy[index]['ftv'] } } X.querycriteriapop(arr,'groupitem',offset.left,offset.top+obj.height(),function(val){ data.eventView.groupBy[index]['ftv'] = val.id; }) }); $(document).on("click",".analysis-section",function(){ var obj = $(this); var offset = obj.offset(); var sectionid = obj.attr("data-sectionid"); X.open({ type: 1, title: false, closeBtn: 0, shadeClose: true, skin: 'yourclass', url: 'groupeditemspop', extData : sectionid, callback : function(val){ } }) }); $(document).on('click','.analysis-action-right',function(){ var index = $(this).attr('data-index'); data.eventView.groupBy.splice(index,1); X.laytpldata("#analysis-gpmain___3YGfw-dot",data.eventView.groupBy,".analysis-gpmain___3YGfw"); }); $(document).on('click','.analysis-event-splitting',function(){ }); // 全局筛选 var filtsftvdata=[]; $(document).off('click','.analysis-overall-situation-add').on('click','.analysis-overall-situation-add',function(){ var drr={ "columnDesc":defaultgroupdata[0]['category'][0]['title'],//事件中文显示 columnDesc "columnName":defaultgroupdata[0]['category'][0]['id'],//事件id 'data_type':defaultgroupdata[0]['category'][0]['data_type'],//类型 'comparator_name':'等于',//默认等于 "comparator":'==',//符号id "ftv":[],//条件 "strftv":'',//显示条件 "section":[-1,1],//区间 "tableType":defaultgroupdata[0]['id'] }; data['eventView']['filts'].push(drr);//上传全局数据 filtsftvdata.push(defaultgroupdata[0]['category'][0]['category']) $(".analysis-overall-situation-left-box").show(); if(data['eventView']['filts'].length > 1){ $(".analysis-overall-situation-left-guanxi").show(); }else{ $(".analysis-overall-situation-left-guanxi").hide(); } X.laytpldata("#analysis-overall-situation-list-box-dot",data['eventView']['filts'],".analysis-overall-situation-list-box",function(){ renderdate(); }); // analysisdown(); }); $(document).off('click','.analysis-overall-situation-fuhao').on('click','.analysis-overall-situation-fuhao',function(){ var obj = $(this); var offset = obj.offset(); var index = obj.attr("data-index"); var type = data['eventView']['filts'][index]['data_type']; X.parametersopen(filter_map[type],'dropdownlist',[offset.top+obj.height(),offset.left],function(val){ $(this).html(val.title); data['eventView']['filts'][index]['comparator_name'] = val.title; data['eventView']['filts'][index]['comparator'] = val.id; if(val.id == "range"){ data['eventView']['filts'][index]['ftv'] = [-1,1]; } X.laytpldata("#analysis-overall-situation-list-box-dot",data['eventView']['filts'],".analysis-overall-situation-list-box",function(){ renderdate(); }); }) }); $(document).off('click','.analysis-overall-situation-del').on('click',".analysis-overall-situation-del",function(){ var index = $(this).attr("data-index"); data['eventView']['filts'].splice(index,1); filtsftvdata.splice(index,1); if(data['eventView']['filts'].length > 1){ $(".analysis-overall-situation-left-guanxi").show(); }else{ $(".analysis-overall-situation-left-guanxi").hide(); // $(".analysis-overall-situation-left-box").hide(); } X.laytpldata("#analysis-overall-situation-list-box-dot",data['eventView']['filts'],".analysis-overall-situation-list-box",function(){ renderdate(); }); // analysisdown(); }); var render_date_index;//且用户符合时间选择框的index $(document).off('click','.analysis-overall-situation-date').on('click','.analysis-overall-situation-date',function(){ var index = $(this).attr('data-index'); render_date_index = index; // console.log(index); }); // 渲染过滤项时间框 function renderdate(){ lay('.analysis-overall-situation-date').each(function(){ layui.laydate.render({ elem: this ,type:"datetime" ,trigger: 'click' ,done: function(value, date, endDate){ data['eventView']['filts'][render_date_index]['strftv'] = value; var datearr = []; datearr.push(value) data['eventView']['filts'][render_date_index]['ftv'] = datearr; } }); }); }; $(document).off('click','.analysis-overall-situation-left-guanxi').on('click','.analysis-overall-situation-left-guanxi',function(){ var html = $(this).html(); //relation筛选条件的关系 if(html == "且"){ $(this).html('或'); data['eventView']['relation'] = 'or' }else { $(this).html('且'); data['eventView']['relation'] = 'and' } }); // 全局属性选择 $(document).off('click','.analysis-overall-situation-attr').on('click',".analysis-overall-situation-attr",function(){ var obj = $(this); var offset = obj.offset(); var index = obj.attr("data-index"); X.querycriteriapop(defaultgroupdata,'category',offset.left,offset.top+obj.height(),function(val){ obj.html(val.title); data['eventView']['filts'][index]['columnDesc'] = val.title; data['eventView']['filts'][index]['columnName'] = val.id; data['eventView']['filts'][index]['data_type'] = val.type; data['eventView']['filts'][index]['comparator_name'] = '等于'; data['eventView']['filts'][index]['comparator'] = '=='; data['eventView']['filts'][index]['tableType'] = val.table_type; filtsftvdata[index]=val.category; if(val.type == 'user_label'){ data['eventView']['filts'][index]['comparator_name'] = "是"; data['eventView']['filts'][index]['comparator'] = 'in'; } X.laytpldata("#analysis-overall-situation-list-box-dot",data['eventView']['filts'],".analysis-overall-situation-list-box",function(){ renderdate(); }); // analysisdown(); }) }); $(document).off("click",".analysis-overall-situation-input").on("click",".analysis-overall-situation-input",function(event){ var obj = $(this); var offset = obj.offset(); var index = $(this).attr("data-index"); var comparator = obj.attr("data-comparator"); var columnName = data['eventView']['filts'][index]['columnName']; X.api("data_mana/select_attr","post",{attr_name:columnName},function(val){ if(val != "查无数据"){ X.parametersopen(val['map_'],'dropdownlist',[offset.top+obj.height(),offset.left],function(val){ if(comparator == "in"){ if(data['eventView']['filts'][index]['strftv'] == "" ){ var strftv = val.title; data['eventView']['filts'][index]['ftv'].push(val.id); }else { var strftv = data['eventView']['filts'][index]['strftv'] + "," + val.title; data['eventView']['filts'][index]['ftv'].push(val.id); } data['eventView']['filts'][index]['strftv'] = strftv; }else { data['eventView']['filts'][index]['strftv'] = val.title; var arr = []; arr.push(val.id); data['eventView']['filts'][index]['ftv'] = arr; } X.laytpldata("#analysis-overall-situation-list-box-dot",data['eventView']['filts'],".analysis-overall-situation-list-box",function(){ renderdate(); }); }) } }) }); $(document).off('blur','.analysis-overall-situation-input input').on('blur','.analysis-overall-situation-input input',function(event){ var index = $(this).attr("data-index"); var comparator = $(this).attr("data-comparator"); if(comparator != 'in'){ var val = $(this).val(); if(val != ""){ var valarr = val.split(","); data['eventView']['filts'][index]['ftv']=valarr; data['eventView']['filts'][index]['strftv']=val; } } }); $(document).off('blur','.analysis-overall-situation-input2 input').on('blur','.analysis-overall-situation-input2 input',function(){ var name = $(this).attr('name'); var val = $(this).val(); var index = $(this).attr("data-index"); if(name == 'start'){ data['eventView']['filts'][index]['ftv'][0] = val; data['eventView']['filts'][index]['section'][0] = val; }else { data['eventView']['filts'][index]['ftv'][1] = val; data['eventView']['filts'][index]['section'][1] = val; } }); // 时间粒度 X.laydropdown('.analtsis-timeParticleSize',X['DATA']['screenlist']['event'],function(d){ $(".analtsis-timeParticleSize").html(d.title); data['eventView']['timeParticleSize'] = d.id; calculationdata(); }); X.layuidate('#analysis-overall-situation-time1'); // 计算 $(document).off('click','.analysis-calculation').on('click','.analysis-calculation',function(){ calculationdata(); }); var querydata;//查询数据 $(document).on('click','.analtsis-chart-switch-box .analtsis-chart-switch',function(){ if(querydata){ $('.analtsis-chart-switch-box .analtsis-chart-switch').removeClass('select-chart'); $(this).addClass('select-chart'); if($(this).attr('title') == '趋势图'){trendchart(querydata)} else if($(this).attr('title') == '堆积图'){stackingdiagram(querydata);} else if($(this).attr('title') == '累计图'){} else if($(this).attr('title') == '分布图'){distributionmap(querydata)} else if($(this).attr('title') == '饼状分布'){} }else{ // layer.msg('请先计算数据,在切换图表'); } }); //堆积图 function stackingdiagram(d){ var xAxisData=[]; for(let i in d){ for(let z in d[i]['groups']){ var pj = d[i]['event_name']+d[i]['groups'][z]; xAxisData.push(pj); } } var seriesData=[]; for(let i in d){ for(let z in d[i]['values']){ var arr = { name: '', type: 'line', stack: '总量', areaStyle: {}, emphasis: { focus: 'series' }, data: d[i]['values'][z] } seriesData.push(arr); } } if(xAxisData.length > 0){ for(let i in seriesData){ seriesData[i]['name'] = xAxisData[i]; } } var myChart = echarts.init(document.getElementById('analysis-echarts')); var option = { title: { text: '' }, color: X.DATA.echartscolor, tooltip: { trigger: 'axis', axisPointer: { type: 'cross', label: { backgroundColor: '#6a7985' } }, formatter:function(params){ var axisIndex = params[0]['axisIndex']; if(d[axisIndex]['proid_name'] && d[axisIndex]['proid_name'].length > 0){ var index = params[0]['dataIndex']; var money = d[axisIndex]['proid_money'][index]; var name = d[axisIndex]['proid_name'][index]; var html = name+'
'+'次数:'+ params[axisIndex]['data']+"
"+'总金额:'+money; }else { var html = params[0]['axisValue']+'
'; for(let i in params){ html+= params[i]['seriesName']+':'+ params[i]['value']+"
" } } return html; } }, legend: { type:'scroll', data: xAxisData }, grid: { left: '2%', right: '2%', bottom: '2%', top: '10%', containLabel: true }, xAxis: [ { type: 'category', boundaryGap: false, data: d[0]['date_range'] } ], yAxis: [ { type: 'value' } ], series: seriesData }; myChart.setOption(option,true); }; //趋势图 function trendchart(d){ var xAxisData=[]; for(let i in d){ for(let z in d[i]['groups']){ var pj = d[i]['event_name']+d[i]['groups'][z]; xAxisData.push(pj); } } var seriesData=[]; for(let i in d){ for(let z in d[i]['values']){ var arr = { name: '', type: 'line', data: d[i]['values'][z] } seriesData.push(arr); } } if(xAxisData.length > 0){ for(let i in seriesData){ seriesData[i]['name'] = xAxisData[i]; } } console.log(xAxisData) console.log(seriesData) console.log(d[0]['date_range']); var myChart = echarts.init(document.getElementById('analysis-echarts')); var option = { title: { text: '' }, color: X.DATA.echartscolor, tooltip: { trigger: 'axis', axisPointer: { type: 'cross', label: { backgroundColor: '#6a7985' } } }, legend: { type:'scroll', data: xAxisData }, // toolbox: { // feature: { // saveAsImage: {} // } // }, grid: { left: '2%', right: '2%', bottom: '2%', top: '10%', containLabel: true }, xAxis: [ { type: 'category', boundaryGap: false, data: d[0]['date_range'] } ], yAxis: [ { type: 'value' } ], series: seriesData }; myChart.setOption(option,true); }; //分布图 function distributionmap(d){ var legendData =[]; var xAxisData=[]; var seriesData=[]; if(jQuery.isEmptyObject(d[0]["groups"])){ for(let i in d){ xAxisData.push(d[i]['event_name']); legendData.push(d[i]['event_name']); var num =0; for(let j in d[i]['values'][i]){ num = num + d[i]['values'][i][j] } var arr = { name: d[i]['event_name'], type: 'bar', barWidth : 30, data: [], } arr['data'].push(num); seriesData.push(arr); } }else { for(let i in d){ xAxisData.push(d[i]['event_name']); for(let j in d[i]['groups']){ var num =0; for(let z in d[i]['values'][j]){ num = parseFloat(num) + parseFloat(d[i]['values'][j][z]) } if(i > 0){ for(let q in seriesData){ if(d[i]['groups'][j] == seriesData[q]['name']){ seriesData[q]['data'].push(num); }else { var arr = { name: d[i]['groups'][j], type: 'bar', barWidth : 30, data: [], } arr['data'].push(num); seriesData.push(arr); } } }else { var arr = { name: d[i]['groups'][j], type: 'bar', barWidth : 30, data: [], } arr['data'].push(num); seriesData.push(arr); } } } } // for(let i in d){ // for(let z in d[i]['groups']){ // var pj = d[i]['event_name']+d[i]['groups'][z]; // xAxisData.push(pj); // } // } // var seriesData=[]; // for(let i in d){ // for(let z in d[i]['values']){ // var arr = { // name: '', // type: 'bar', // data: d[i]['values'][z] // } // seriesData.push(arr); // } // } // if(xAxisData.length > 0){ // for(let i in seriesData){ // seriesData[i]['name'] = xAxisData[i]; // } // } // return; var myChart = echarts.init(document.getElementById('analysis-echarts')); var option = { tooltip: { trigger: 'axis', axisPointer: { type: 'shadow' } }, color: X.DATA.echartscolor, legend: { data: legendData }, grid: { left: '2%', right: '2%', bottom: '2%', top: '10%', containLabel: true }, xAxis: [ { type: 'category', axisTick: {show: false}, data: xAxisData } ], yAxis: [ { type: 'value' } ], series: seriesData }; myChart.setOption(option,true); }; //表格 function tabledata(d){ var titledata,condata=[]; for(let i in d){ titledata= $.extend(true,[],d[0]['date_range']) ; if(d[i]['groups']['length'] != 0){ titledata.unshift('指标','分组','阶段总和'); for(let j in d[i]['values']){ var arr; arr = $.extend(true,[],d[i].values[j]); arr.unshift(d[i]['event_name'],d[i]['groups'][j],d[i]['sum'][j]); condata.push(arr); } // for(let j in condata){ // condata[j].splice(1,0,d[i]['groups'][j]); // } }else { titledata.unshift('指标','阶段总和'); var arr; arr = $.extend(true,[],d[i].values[0]) arr.unshift(d[i]['event_name'],d[i]['sum'][0]); condata.push(arr); } } X.laytpldata("#table-fenxi-th-dot",titledata,".table-fenxi-th"); X.laytpldata("#table-fenxi-td-dot",condata ,".table-fenxi-td"); }; function calculationdata(){ var dataArr = { eventView: data.eventView, events: data.events } X.api("ck/event_model","post",dataArr,function(d){ querydata = d; if(d != "查无数据"){ if(d[0].values.length > 0 ){ updata(); tabledata(d); $(".chawushuj").hide(); }else { $("#analysis-echarts").empty(); layer.msg("无数据"); } }else { $("#analysis-echarts").empty(); $(".table-fenxi-td").html(""); $(".chawushuj").show(); // layer.msg("无数据"); } }) }; function updata(){ var tit = $(".select-chart").attr("title"); if(tit == '趋势图'){trendchart(querydata)} else if(tit == '堆积图'){stackingdiagram(querydata);} else if(tit == '累计图'){} else if(tit == '分布图'){distributionmap(querydata)} else if(tit == '饼状分布'){} }; // 保存报表 $(document).off('click','.analysis-savereport').on('click','.analysis-savereport',function(){ if(baobiaodata != '' && baobiaodata != undefined && baobiaodata != null){ X.parametersopen(baobiaodata,'savereport','auto'); }else{ X.parametersopen(data,'savereport','auto'); } }); // 下载 $(document).off('click','.download-table').on('click','.download-table',function(){ // console.log(11111); X.download('ck/event_model_export',data,'事件分析'); }); // 返回 $(document).off('click','.analysis-fanhui').on('click','.analysis-fanhui',function(){ X.gourl("dashboard"); // return; }); }, // 保存报表 // savereport:function(d){ // } }; })();