<extend name="Public/base"/> <block name="css"> <link rel="stylesheet" href="__CSS__/select2.min.css" type="text/css" /> <style> .select2-container--default .select2-selection--single { color: #000; resize: none; border-width: 1px; border-style: solid; border-color: #a7b5bc #ced9df #ced9df #a7b5bc; box-shadow: 0px 3px 3px #F7F8F9 inset;height:35px; height:28px;border-radius:3px;font-size:12px; } .select2-container--default .select2-selection--single .select2-selection__rendered { line-height:35px; line-height:28px; } .select2-container--default .select2-selection--single .select2-selection__arrow { height:26px; } .select2-container--default .select2-search--dropdown .select2-search__field { height:26px;line-height:26px;font-size:12px; } .select2-results__option[aria-selected] {font-size:12px;} .bindcoinsbox {height:33px;line-height:37px;} .bindcoinsbox .radio {cursor:pointer;} .bindcoinsbox .radio input {cursor:pointer;} </style> </block> <block name="body"> <style>.button_list2 { margin: 9px 0; margin: 5px 0 32px; margin-right: 15px; }</style> <script type="text/javascript" src="__JS__/bootstrap.min.js"></script> <script type="text/javascript" src="__JS__/select2.min.js"></script> <div class="cf main-place top_nav_list navtab_list"> <h3 class="page_title">ARPU分析</h3> <p class="description_text">说明:根据日期,游戏,推广员分析ARPU等相关数据信息</p> <div class="keywords_information"> <i class="keywords_mark"><span>关键词说明</span></i> <ul class="keywords_content"> <li class="keywords_title">关键词说明<a href="javascript:;" class="keywords_close">X</a></li> <li class="keywords_list"> <span class="">活跃玩家</span> <span class="">当天登录的玩家总数</span> </li> <li class="keywords_list"> <span class="">1日留存</span> <span class="">注册第二天的登录率</span> </li> <li class="keywords_list"> <span class="">付费玩家</span> <span class="">当天付费的玩家数量</span> </li> <li class="keywords_list"> <span class="">新付费玩家</span> <span class="">当天付费玩家中第一次付费的玩家数</span> </li> <li class="keywords_list"> <span class="">付费率</span> <span class="">付费玩家/活跃玩家</span> </li> <li class="keywords_list"> <span class="">ARPU(每用户平均付费)</span> <span class="">当日总充值数/活跃玩家数</span> </li> <li class="keywords_list"> <span class="">ARPPU(付费用户的平均付费)</span> <span class="">当日总充值/付费玩家数</span> </li> </ul> </div> </div> <div class="cf jssearch top_nav_list"> <div class="fl button_list2"> <div class="bindcoinsbox"> 参与统计设置: <label class="radio radio-primary"> <input type="radio" class="coins" value="0" name="hasbindcoins"> <span>排除绑币</span> </label> <label class="radio radio-primary"> <input type="radio" class="coins" value="1" name="hasbindcoins"> <span>包含绑币</span> </label> </div> </div> <!-- 高级搜索 --> <div class=" fl cf search_list"> <div class="input-list search-title-box"> <label>搜索:</label> </div> <div class="input-list"> <input type="text" id="time-start" name="start" class="" value="{:I('start',date('Y-m-d',strtotime('-7 day')))}" placeholder="选择开始时间" /> - <input type="text" id="time-end" name="end" class="" value="{:I('end',date('Y-m-d',time()))}" placeholder="选择结束时间" /> </div> <div class="input-list input-list-game search_label_rehab"> <select id="game_id" name="game_id" class="select_gallery"> <option value="">请选择游戏</option> <volist name=":get_game_list()" id="vo"> <option game-id="{$vo.game_name}" value="{$vo.id}">{$vo.game_name}</option> </volist> </select> </div> <div class="input-list input-list-promote search_label_rehab"> <select id="promote_id" name="promote_id" class="select_gallery" > <option value="">推广员账号</option> <volist name=":get_promote_list(1)" id="vo"> <option promote-id="{$vo.account}" value="{$vo.id}">{$vo.account}</option> </volist> </select> </div> <input type="hidden" name="" value="" class="sortBy"> <div class="input-list"> <a class="sch-btn" href="javascript:;" id="search" url="{:U('stat/userarpu','model='.$model['name'].'&row='.I('row'),false)}">搜索</a> </div> </div> </div> <!-- 数据列表 --> <div class="data_list"> <div class=""> <table> <!-- 表头 --> <thead> <tr> <th ><a class="paixu" data-order='time'><if condition="$userarpu_order eq 4 and $userarpu_order_type eq 'time'">日期▲<elseif condition="$userarpu_order eq 3 and $userarpu_order_type eq 'time'"/>日期▼<else />日期<img src="__IMG__/up-down.png" width="13px"></if></a></th> <if condition="$game_name neq ''"> <th>游戏名称</th> </if> <if condition="$promote_name neq ''"> <th>渠道名称</th> </if> <th ><a class="paixu" data-order='register_num'><if condition="$userarpu_order eq 4 and $userarpu_order_type eq 'register_num'">新增玩家▲<elseif condition="$userarpu_order eq 3 and $userarpu_order_type eq 'register_num'"/>新增玩家▼<else />新增玩家<img src="__IMG__/up-down.png" width="13px"></if></a></th> <th ><a class="paixu" data-order='act_user'><if condition="$userarpu_order eq 4 and $userarpu_order_type eq 'act_user'">活跃玩家▲<elseif condition="$userarpu_order eq 3 and $userarpu_order_type eq 'act_user'"/>活跃玩家▼<else />活跃玩家<img src="__IMG__/up-down.png" width="13px"></if></a></th> <th ><a class="paixu" data-order='keep_num'><if condition="$userarpu_order eq 4 and $userarpu_order_type eq 'keep_num'">1日留存▲<elseif condition="$userarpu_order eq 3 and $userarpu_order_type eq 'keep_num'"/>1日留存▼<else />1日留存<img src="__IMG__/up-down.png" width="13px"></if></a></th> <th ><a class="paixu" data-order='spend'><if condition="$userarpu_order eq 4 and $userarpu_order_type eq 'spend'">充值▲<elseif condition="$userarpu_order eq 3 and $userarpu_order_type eq 'spend'"/>充值▼<else />充值<img src="__IMG__/up-down.png" width="13px"></if></a></th> <th ><a class="paixu" data-order='spend_people'><if condition="$userarpu_order eq 4 and $userarpu_order_type eq 'spend_people'">付费玩家▲<elseif condition="$userarpu_order eq 3 and $userarpu_order_type eq 'spend_people'"/>付费玩家▼<else />付费玩家<img src="__IMG__/up-down.png" width="13px"></if></a></th> <th ><a class="paixu" data-order='new_pop'><if condition="$userarpu_order eq 4 and $userarpu_order_type eq 'new_pop'">新付费玩家▲<elseif condition="$userarpu_order eq 3 and $userarpu_order_type eq 'new_pop'"/>新付费玩家▼<else />新付费玩家<img src="__IMG__/up-down.png" width="13px"></if></a></th> <th ><a class="paixu" data-order='spend_rate'><if condition="$userarpu_order eq 4 and $userarpu_order_type eq 'spend_rate'">付费率▲<elseif condition="$userarpu_order eq 3 and $userarpu_order_type eq 'spend_rate'"/>付费率▼<else />付费率<img src="__IMG__/up-down.png" width="13px"></if></a></th> <th ><a class="paixu" data-order='ARPU'><if condition="$userarpu_order eq 4 and $userarpu_order_type eq 'ARPU'">ARPU▲<elseif condition="$userarpu_order eq 3 and $userarpu_order_type eq 'ARPU'"/>ARPU▼<else />ARPU<img src="__IMG__/up-down.png" width="13px"></if></a></th> <th ><a class="paixu" data-order='ARPPU'><if condition="$userarpu_order eq 4 and $userarpu_order_type eq 'ARPPU'">ARPPU▲<elseif condition="$userarpu_order eq 3 and $userarpu_order_type eq 'ARPPU'"/>ARPPU▼<else />ARPPU<img src="__IMG__/up-down.png" width="13px"></if></a></th> <th ><a class="paixu" data-order='pop_num'><if condition="$userarpu_order eq 4 and $userarpu_order_type eq 'pop_num'">累计付费玩家▲<elseif condition="$userarpu_order eq 3 and $userarpu_order_type eq 'pop_num'"/>累计付费玩家▼<else />累计付费玩家<img src="__IMG__/up-down.png" width="13px"></if></a></th> <if condition="$game_name eq ''"> <if condition="$game_name eq ''"> <th>详情</th> </if> </tr> </thead> <!-- 列表 --> <tbody> <volist name="data" id="vo"> <tr> <td>{$vo.time}</td> <if condition="$game_name neq ''"> <td>{$game_name}</td> </if> <if condition="$promote_name neq ''"> <td>{$promote_name}</td> </if> <td>{$vo.register_num}</td> <td>{$vo.act_user}</td> <td>{$vo.keep_num}%</td> <td>{$vo.spend}</td> <td>{$vo.spend_people}</td> <td>{$vo.new_pop}</td> <td>{$vo.spend_rate}%</td> <td>{$vo.ARPU}</td> <td>{$vo.ARPPU}</td> <td>{$vo.pop_num}</td> <if condition="$game_name eq ''"> <td><a style="cursor:pointer;width:100%;text-align:center" class="chakan" timetitle="{$vo['time']}" ptitle="{$promote_name}" href-url="{:U('stat/cha_userarpu',array('time'=>$vo['time'],'hasbindcoins'=>I('hasbindcoins'),'promote_name'=>$promote_name,'promote_id'=>$_REQUEST['promote_id']))}">查看</td> </if> </tr> </volist> </tbody> </table> </div> </div> <div class="page"> <a class="sch-btn" href="{:U('Export/userarpuExport',array( 'start'=>$_GET['start'], 'end'=>$_GET['end'], 'game_id'=>$_GET['game_id'], 'promote_id'=>$_GET['promote_id'], 'xlsname'=>'数据分析_ARPU分析', ),false)}">导出</a> {$_page|default=''} </div> </block> <block name="script"> <script> Think.setValue('hasbindcoins',{$Think.get.hasbindcoins|default=0}); Think.setValue('start',"{$Think.get.start|default=''}"); Think.setValue('end',"{$Think.get.end|default=''}"); Think.setValue('promote_id',{$Think.get.promote_id|default='""'}); Think.setValue('game_id',{$Think.get.game_id|default='""'}); Think.setValue('row',{$Think.get.row|default=10}); $(".select_gallery").select2(); </script> <link href="__STATIC__/datetimepicker/css/datetimepicker.css" rel="stylesheet" type="text/css"> <php>if(C('COLOR_STYLE')=='blue_color') echo '<link href="__STATIC__/datetimepicker/css/datetimepicker_blue.css" rel="stylesheet" type="text/css">';</php> <link href="__STATIC__/datetimepicker/css/dropdown.css" rel="stylesheet" type="text/css"> <script type="text/javascript" src="__STATIC__/datetimepicker/js/bootstrap-datetimepicker.min.js"></script> <script type="text/javascript" src="__STATIC__/datetimepicker/js/locales/bootstrap-datetimepicker.zh-CN.js" charset="UTF-8"></script> <script src="__STATIC__/layer/layer.js" type="text/javascript"></script> <script type="text/javascript"> //导航高亮 highlight_subnav('{:U('stat/userarpu')}'); $(function(){ //计算天数差的函数,通用 function GetDateDiff(startDate,endDate) { var startTime = new Date(Date.parse(startDate.replace(/-/g, "/"))).getTime(); var endTime = new Date(Date.parse(endDate.replace(/-/g, "/"))).getTime(); var dates = Math.abs((startTime - endTime))/(1000*60*60*24); return dates; } //搜索功能 $("#search").click(function(){ var start = $("#time-start").val(); start = start.substring(0,19); var end = ($("#time-end").val() == "") ? "{:date('Y-m-d')}" : $("#time-end").val(); end = end.substring(0,19); var interval = GetDateDiff(start,end); if(interval < 0 || start == ''){ layer.msg('请选择搜索时间'); return false; }else if(interval>90){ layer.msg('请选择90日内的时间段'); return false; } var url = $(this).attr('url'); var query = $('.jssearch').find('input').serialize(); query += "&"+$('.jssearch').find('select').serialize(); query = query.replace(/(&|^)(\w*?\d*?\-*?_*?)*?=?((?=&)|(?=$))/g,''); query = query.replace(/^&/g,''); if( url.indexOf('?')>0 ){ url += '&' + query; }else{ url += '?' + query; } var start = $("#time-start").val(); var end = $("#time-end").val(); if (start !='' && end != ''){ if (Date.parse(start) > Date.parse(end)){ layer.msg('开始时间必须小于等于结束时间'); return false; } } window.location.href = url; }); $('input[name="hasbindcoins"]').click(function() { $("#search").click(); }); $(".paixu").click(function(){ var that=$(this); $data_order=that.attr('data-order'); $order_type='{$userarpu_order}'; if($order_type==''||$order_type=='4'){ $(".sortBy").attr('name','data_order'); val='3,'+$data_order; $(".sortBy").attr('value',val); $("#search").click(); }else if($order_type=='3'){ $(".sortBy").attr('name','data_order'); val='4,'+$data_order; $(".sortBy").attr('value',val); $("#search").click(); } }); //回车自动提交 $('.jssearch').find('input').keyup(function(event){ if(event.keyCode===13){ $("#search").click(); } }); $('#time-start').datetimepicker({ format: 'yyyy-mm-dd', language:"zh-CN", minView:2, autoclose:1, }); $('#time-end').datetimepicker({ format: 'yyyy-mm-dd', language:"zh-CN", minView:2, autoclose:1, pickerPosition:'bottom-right' }); $(".chakan").click(function () { that = $(this); url = that.attr('href-url'); timetitle = that.attr('timetitle'); ptitle = ' ' + that.attr('ptitle') + ' '; layer.open({ type: 2, title: false, closeBtn: 0, //不显示关闭按钮 shade: [0], area: ['1px', '1px'], offset: 'rb', //右下角弹出 time: 1, // 秒后自动关闭 这里设置成1ms 不显示过度页面 anim: 2, content: ['', 'no'], //iframe的url,no代表不显示滚动条 end: function () { // layer.open({ type: 2, title: timetitle + ptitle + '游戏数据', shadeClose: true, shade: false, maxmin: true, //开启最大化最小化按钮 area: ['50%', '45%'], content: url//iframe的url }); } }); }); $("#game").on('click',function(event) { var navlist = $(this).find('.i_list_li'); if (navlist.hasClass('hidden')) { navlist.removeClass('hidden'); $(this).find('#i_list_id').focus().val(''); } else { navlist.addClass('hidden'); } $(document).one("click", function(){ navlist.addClass('hidden'); }); event.stopPropagation(); }); $('#game #i_list_id').on('keyup',function(event) { var val = $.trim($(this).val()).toLowerCase(); $(this).closest('.drop-down').find('#i_list_idh').val(val); }); $("#game #i_list_li").find("a").each(function(){ $(this).click(function(){ var text = $.trim($(this).text()).toLowerCase(); var val = $.trim($(this).attr('value')); $(this).closest('.drop-down').find("#i_list_id").val(text); $(this).closest('.drop-down').find('#i_list_idh').val(val); }) }); $("#promote").on('click',function(event) { var navlist = $(this).find('.i_list_li'); if (navlist.hasClass('hidden')) { navlist.removeClass('hidden'); $(this).find('#i_list_id').focus().val(''); } else { navlist.addClass('hidden'); } $(document).one("click", function(){ navlist.addClass('hidden'); }); event.stopPropagation(); }); $('#promote #i_list_id').on('keyup',function(event) { $(this).closest('.drop-down').find('#i_list_idh').val(-1); }); $("#promote #i_list_li").find("a").each(function(){ $(this).click(function(){ var text = $.trim($(this).text()).toLowerCase(); $(this).closest('.drop-down').find("#i_list_id").val(text); $(this).closest('.drop-down').find('#i_list_idh').val($(this).attr('value')); }) }); paramnum="{:count(I('get.'))}"; if(paramnum==0){ $("#search").click(); } }) </script> </block>