(function(){ X.pageLogic['attribute'] = { init : function(){ var data ={ "eventView":{ "cksql":'user_property', "groupBy":[ ], "userCrowds":[ ] }, "events":{ "analysis":"", "analysisName":"", "eventNameDisplay":"", "filts":[ ], "quota":"", "quotaDesc":"", "quotatype":"", "relation":"and", "tableType":"user" }, "cachedata":{} }; // 分析属性控制重命名 $(document).off('click','.analysis-chongmingming').on('click','.analysis-chongmingming',function(){ $('.analysis-con-left-screen-list-left-zhibiaoname').show(); $(this).hide(); $('.analysis-chongmingming-del').show(); }); $(document).off('click','.analysis-chongmingming-del').on('click','.analysis-chongmingming-del',function(){ $('.analysis-con-left-screen-list-left-zhibiaoname').hide(); $(this).hide(); $('.analysis-chongmingming').show(); }); //用户属性数据请求 var user_attr = []; var quotas_map = []; var filter_map = []; var user_data = []; //分组项,用户符合,人群对比数据格式 X.api("data_auth/user_property","get",{},function(val){ for(let i in val){ var arr = { id : val[i]['name'], data_type : val[i]['data_type'], title : val[i]['name'] }; user_attr.push(arr); } data['events']['quota'] = user_attr[0]['id']; data['events']['quotaDesc'] = user_attr[0]['title']; data['events']['quotatype'] = user_attr[0]['data_type']; $('.ant-dropdown-trigger').html(user_attr[0]['title']); var arr = { category: user_attr, id:'', title:'用户属性' } user_data.push(arr); X.api("data_auth/quotas_map","get",{},function(val){ quotas_map = val; if(user_attr[0]['data_type'] == ""){ $('.analysis-choicetypename').hide(); }else { $('.analysis-choicetypename').html(quotas_map[user_attr[0]['data_type']][0]['title']); data['events']['analysis'] = quotas_map[user_attr[0]['data_type']][0]['id']; data['events']['analysisName'] = quotas_map[user_attr[0]['data_type']][0]['title']; } }) X.api("data_auth/filter_map","get",{},function(val){ filter_map = val; }) //从数据看板点击进来触发事件 if(X.DATA.user_propertyid && X.DATA.user_propertyid != ''){ var report_idarr = []; report_idarr.push(X.DATA.user_propertyid); X.api('report/read_report','post',{project_id:X.DATA.projectid,report_id:report_idarr},function(d){ backfilldata(d[0]); }) } }); // 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','.ant-dropdown-trigger').on('click','.ant-dropdown-trigger',function(){ var obj = $(this); var offset = obj.offset(); X.parametersopen(user_attr,'dropdownlist',[offset.top+obj.height(),offset.left],function(val){ obj.html(val.title); data['events']['quota'] = val.id; data['events']['quotaDesc'] = val.title; data['events']['quotatype'] = val.data_type; if(val.data_type == ""){ $('.analysis-choicetypename').hide(); }else { $('.analysis-choicetypename').show(); data['events']['analysis'] = quotas_map[val.data_type][0].id; data['events']['analysisDesc'] = quotas_map[val.data_type][0].title; $('.analysis-choicetypename').html(quotas_map[val.data_type][0]['title']); } }) }); $(document).off('click','.analysis-choicetypename').on('click','.analysis-choicetypename',function(){ var obj = $(this); var offset = obj.offset(); X.parametersopen(quotas_map[data['events']['quotatype']],'dropdownlist',[offset.top+obj.height(),offset.left],function(val){ obj.html(val.title); data['events']['analysis'] = val.id; data['events']['analysisDesc'] = val.title; }) }); $(document).off('click','.analysis-con-left-screen-list-left-zhibiaoname input').on('blur','.analysis-con-left-screen-list-left-zhibiaoname input',function(){ data['events']['eventNameDisplay'] = $(this).val(); }); // 分组项 X.template("grouped","shushi",data['eventView']['groupBy']); $(document).off('click','.analysis-footadd___2D4YB').on('click','.analysis-footadd___2D4YB',function(){ console.log(user_data); var arr = { "columnDesc": user_data[0]['category'][0]['title'],//事件中文显示 "columnName": user_data[0]['category'][0]['id'],//事件id 'data_type': user_data[0]['category'][0]['data_type'],//类型 'table_type': "", "ftv":'',//条件 "intervalType":'def', "quotaIntervalArr":[] }; data['eventView']['groupBy'].push(arr); if(data['eventView']['groupBy'].length >= 2){ $(this).hide(); } X.template("grouped","shushi",data['eventView']['groupBy']); }); $(document).off('click','.analysis-action-right').on('click','.analysis-action-right',function(){ var index = $(this).attr('data-index'); data['eventView']['groupBy'].splice(index,1); if(data['eventView']['groupBy'].length < 2){ $(".analysis-footadd___2D4YB").show(); } X.template("grouped","shushi",data['eventView']['groupBy']); }); $(document).off('click','.analysis-ant-dropdown-trigger').on('click','.analysis-ant-dropdown-trigger',function(){ var obj = $(this); var index = obj.attr('data-index'); var offset = obj.offset(); X.querycriteriapop(user_data,'category',offset.left,offset.top+obj.height(),function(val){ // console.log(val); obj.html(val.title); data['eventView']['groupBy'][index]['columnName'] = val.id; data['eventView']['groupBy'][index]['columnDesc'] = val.title; data['eventView']['groupBy'][index]['data_type'] = val.type; X.template("grouped","shushi",data['eventView']['groupBy']); }) }); $(document).off('click','.analysis-ta-property-range').on('click','.analysis-ta-property-range',function(){ var index = $(this).attr('data-index'); var sectionid = data['eventView']['groupBy'][index]; X.parametersopen(sectionid,'groupeditemspop',"auto",function(val){ data['eventView']['groupBy'][index]['intervalType'] = val.type; if(val.type == "user_defined"){ data['eventView']['groupBy'][index]['quotaIntervalArr'] = val.quotaIntervalArr; } }) }); //且用户符合 $(document).off('click','.analysis-overall-situation-add').on('click','.analysis-overall-situation-add',function(){ var drr={ "columnDesc":user_data[0]['category'][0]['title'],//事件中文显示 "columnName":user_data[0]['category'][0]['id'],//事件id 'data_type':user_data[0]['category'][0]['data_type'],//类型 'comparator_name':'等于',//默认等于 "comparator":'==',//符号id "ftv":[],//条件 "strftv":'',//显示条件 "section":[-1,1],//区间 "table_type":user_data[0]['id'] }; data['events']['filts'].push(drr); if(data['events']['filts'].length > 1){ $(".analysis-overall-situation-left-guanxi").show(); }else{ $(".analysis-overall-situation-left-guanxi").hide(); } X.template("globalfilter","xinwei-whole",data['events']['filts']); }); $(document).off('click','.analysis-overall-situation-left-guanxi').on('click',".analysis-overall-situation-left-guanxi",function(){ var tit = $(this).html(); if(tit == "且"){ $(this).html('或'); data['events']['relation'] = 'or'; }else { $(this).html('且'); data['events']['relation'] = 'and'; } }); $(document).off('click','.analysis-overall-situation-attr').on('click','.analysis-overall-situation-attr',function(){ var obj = $(this); var index = obj.attr('data-index'); var offset = obj.offset(); X.querycriteriapop(user_data,'category',offset.left,offset.top+obj.height(),function(val){ obj.html(val.title); data['events']['filts'][index]['columnName'] = val.id; data['events']['filts'][index]['columnDesc'] = val.title; data['events']['filts'][index]['data_type'] = val.type; X.template("globalfilter","xinwei-whole",data['events']['filts']); }) }); $(document).off('click','.analysis-overall-situation-fuhao').on('click','.analysis-overall-situation-fuhao',function(){ var obj = $(this); var index = obj.attr('data-index'); var offset = obj.offset(); // console.log(filter_map); var filter_type = data['events']['filts'][index]['data_type']; X.parametersopen( filter_map[filter_type] ,'dropdownlist',[offset.top+obj.height(),offset.left],function(val){ obj.html(val.title); data['events']['filts'][index]['comparator'] = val.id; data['events']['filts'][index]['comparator_name'] = val.title; if(val.id == "range"){ data['events']['filts'][index]['ftv'] = [-1,1]; } X.template("globalfilter","xinwei-whole",data['events']['filts']); }) }); $(document).off('click','.analysis-overall-situation-input input').on('blur','.analysis-overall-situation-input input',function(){ var val = $(this).val(); var titarr = val.split(","); var index = $(this).attr("data-index"); data['events']['filts'][index]['strftv'] = val; data['events']['filts'][index]['ftv'] = titarr; }); $(document).off('click','.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['events']['filts'][index][index]['ftv'][0] = val; }else { data['events']['filts'][index]['ftv'][1] = val; } }); $(document).off('click','.analysis-overall-situation-del').on('click','.analysis-overall-situation-del',function(){ var index = $(this).attr('data-index'); data['events']['filts'].splice(index,1); if(data['events']['filts'].length > 1){ $(".analysis-overall-situation-left-guanxi").show(); }else{ $(".analysis-overall-situation-left-guanxi").hide(); } X.template("globalfilter","xinwei-whole",data['events']['filts']); }); // 计算按钮 $(document).off('click','.analysis-calculation').on('click','.analysis-calculation',function(){ calculationdata(); }); function calculationdata(){ var dataArr = { eventView: data.eventView, events: data.events } X.api("ck/user_property_model","post",dataArr,function(val){ attributetable(val); querydata = val; updata(val) }) }; function updata(d){ var title = $(".select-chart").attr("title"); if(title == '柱状分布图'){ attributebar(d);} else if(title == '饼状图'){ attributepie(d); } }; var querydata; $(document).off('click','.analtsis-chart-switch').on('click','.analtsis-chart-switch',function(){ if(querydata){ $('.analtsis-chart-switch-box .analtsis-chart-switch').removeClass('select-chart'); $(this).addClass('select-chart'); if($(this).attr('title') == '柱状分布图'){ attributebar(querydata);} else if($(this).attr('title') == '饼状图'){ attributepie(querydata); } }else{ layer.msg('请先计算数据,在切换图表'); } }); function attributetable(val){ X.laytpldata("#table-attrbute-th-dot",val.title,".table-attrbute-th"); X.laytpldata("#table-attrbute-td-dot",val.value,".table-attrbute-td"); }; function attributebar(val){ var xAxisData = []; var seriesdata =[]; for(let i in val.value){ xAxisData.push(i); seriesdata.push(val.value[i]); } var myChart = echarts.init(document.getElementById('attribute-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: [{ data: seriesdata, type: 'bar', }] }; myChart.setOption(option,true); }; function attributepie(val){ // console.log(val); var seriesdata = []; for(let i in val.value){ var arr = { value: val['value'][i], name: i }; seriesdata.push(arr); } // console.log(seriesdata); var myChart = echarts.init(document.getElementById('attribute-echarts')); var option = { // color: X.DATA.echartscolor, tooltip: { trigger: 'item' }, legend: { orient: 'vertical', left: 'left', }, series: [ { name: '访问来源', type: 'pie', radius: ['40%', '70%'], data: seriesdata, emphasis: { itemStyle: { shadowBlur: 10, shadowOffsetX: 0, shadowColor: 'rgba(0, 0, 0, 0.5)' } } } ] }; myChart.setOption(option,true); }; //已存报表 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) } }) }); // 保存报表 $(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'); } }); // 反向填充数据 function backfilldata(d){ data = d.query; baobiaodata = d; // if(d.query.eventView.filts.length > 0){ // $(".analysis-overall").show(); // }else { // $(".analysis-overall").hide(); // } X.template("globalfilter","xinwei-whole",data['events']['filts']); X.template("grouped","shushi",data['eventView']['groupBy']); calculationdata(); } // 返回 $(document).off('click','.analysis-fanhui').on('click','.analysis-fanhui',function(){ X.gourl("dashboard"); // return; }); } }; })();