You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

498 lines
18 KiB
HTML

2 years ago
<extend name="Public/base"/>
<block name="body">
<link rel="stylesheet" href="__CSS__/select2.min.css" type="text/css" />
<script type="text/javascript" src="__JS__/select2.min.js"></script>
<script type="text/javascript" src="__JS__/bootstrap.min.js"></script>
<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;}
.lwx_dialog_prompt .layui-layer-content {padding-top:15px;}
.lwx_dialog_title{margin:0;padding:0;}
.launch_platform_prompt .layui-layer-input,.lwx_dialog_input { display: block;
width: 220px;
height: 30px;
margin: 0 auto;
line-height: 30px;
padding: 0 5px;
border: 1px solid #ccc;
box-shadow: 1px 1px 5px rgba(0,0,0,.1) inset;
color: #333;}
.lwx_dialog_input {width:240px;}
.launch_platform_prompt .layui-layer-btn,.lwx_dialog_prompt .layui-layer-btn {text-align:center;padding-bottom:25px;}
.launch_platform_prompt .layui-layer-btn .layui-layer-btn0,.lwx_dialog_prompt .layui-layer-btn .layui-layer-btn0 {width:81%;margin:0;}
.data_list table tbody tr.data_summary td {text-align:center;text-indent:0;font-size:13px;}
</style>
<div class="cf main-place top_nav_list navtab_list">
<h3 class="page_title">{$m_title}列表</h3>
<p class="description_text">说明:对推广员申请的投放链接带来的用户数据及投放效果进行数据分析</p>
<div class="question frq">
<i class="question_mark">?</i>
<ul class="question_content">
<li class="question_title">数据相关说明</li>
<li class="question_list">
<span class="">新增用户数</span>
<span class="">统计日内通过游戏注册的新用户数</span>
</li>
<li class="question_list">
<span class="">新增设备</span>
<span class="">统计日内首次安装并且打开游戏的设备数。一台设备只在首次安装打开应用时计作新增设备数1安装多款游戏的同一设备不会重复计量</span>
</li>
<li class="question_list">
<span class="">新增付费数</span>
<span class="">统计日内新用户中成功付费的用户数,统计游戏内消费</span>
</li>
<li class="question_list">
<span class="">新增付费率</span>
<span class="">统计日内新增付费数占新增用户数的比率如9.6日新增用户10其中1人成功付费则付费率为1/10=10.00%</span>
</li>
<li class="question_list">
<span class="">新增付费金额</span>
<span class="">统计日内新增用户的付费总额,统计游戏内消费</span>
</li>
<li class="question_list">
<span class="">活跃用户数</span>
<span class="">统计日内打开游戏的用户数,含新老用户</span>
</li>
<li class="question_list">
<span class="">活跃付费数</span>
<span class="">统计日内活跃用户中成功付费的用户数</span>
</li>
<li class="question_list">
<span class="">活跃付费金额</span>
<span class="">统计日内活跃用户的付费总额,统计游戏内消费</span>
</li>
<li class="question_list">
<span class="">活跃付费率</span>
<span class="">统计日内活跃付费数占活跃用户数的比率</span>
</li>
<li class="question_list">
<span class="">ARPU</span>
<span class="">活跃用户对游戏产生的平均收入。计算方式:游戏内消费金额÷游戏的活跃用户数</span>
</li>
<li class="question_list">
<span class="">ARPPU</span>
<span class="">付费用户对游戏产生的平均收入。计算方式:游戏内消费金额÷游戏的付费用户数</span>
</li>
</ul>
</div>
</div>
<div class="cf top_nav_list">
<div class="fl button_list">
<div class="tools">
</div>
</div>
<!-- 高级搜索 -->
<div class="jssearch fl cf search_list">
<div class="input-list search-title-box">
<label>搜索:</label>
</div>
<div class="input-list input-list-game search_label_rehab">
<select id="platform_id" name="platform_id" class="select_gallery" >
<option value="">全部投放平台</option>
<volist name=":get_launch_platform_list()" id="vo">
<option value="{$vo.id}">{$vo.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 value="{$vo.id}">{$vo.account}</option>
</volist>
</select>
</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 value="{$vo.id}">{$vo.game_name}</option>
</volist>
</select>
</div>
<div class="input-list">
<input type="text" id="timestart" name="timestart" class="" value="{:I('timestart')}" placeholder="投放开始时间" />
-
<div class="input-append date" id="datetimepicker" style="display:inline-block">
<input type="text" id="timeend" name="timeend" class="" value="{:I('timeend')}" placeholder="投放结束时间" />
<span class="add-on"><i class="icon-th"></i></span>
</div>
</div>
<div class="input-list">
<a class="sch-btn" href="javascript:;" id="search" url="{:U('data','model='.$model['name'].'&row='.I('row'),false)}">搜索</a>
</div>
</div>
</div>
<!-- 数据列表 -->
<div class="data_list">
<div class="">
<table>
<!-- 表头 -->
<thead>
<tr>
<th>日期</th>
<th>投放平台</th>
<th>游戏名称</th>
<th>新增用户数</th>
<th>新增设备</th>
<th>新增付费数</th>
<th>新增付费率</th>
<th>新增付费金额</th>
<th>活跃用户数</th>
<th>活跃付费人数</th>
<th>活跃付费金额</th>
<th>活跃付费率</th>
<th>活跃ARPU</th>
<th>付费ARPU</th>
</tr>
</thead>
<!-- 列表 -->
<tbody>
<empty name ="list_data">
<td colspan="14" class="text-center">aOh! 暂时还没有内容!</td>
<else />
<volist name="list_data" id="data">
<tr>
<td>{$data.duration|date='Y-m-d',###}</td>
<td>{:get_launch_platform_name($data['platform_id'],'全部')}</td>
<td>{:get_game_name_by_id($data['game_id'],'全部')}</td>
<td>{$data.new|default=0}</td>
<td>{$data.new_device|default=0}</td>
<td>{$data.new_pay|default=0}</td>
<td>{$data.new_rate|default='0.00'}%</td>
<td>{$data.new_money|default=0}</td>
<td>{$data.active|default=0}</td>
<td>{$data.active_pay|default=0}</td>
<td>{$data.active_money|default=0}</td>
<td>{$data.active_rate|default='0.00'}%</td>
<td>{$data.active_arpu|default='0.00'}</td>
<td>{$data.pay_arpu|default='0.00'}</td>
</tr>
</volist>
<tr class="data_summary">
<td><span>当页汇总</span></td>
<td>{:get_launch_platform_name($current['platform_id'],'--')}</td>
<td>{:get_game_name_by_id($current['game_id'],'--')}</td>
<td>{$current.new|default=0}</td>
<td>{$current.new_device|default=0}</td>
<td>{$current.new_pay|default=0}</td>
<td>{$current.new_rate|default='0.00'}%</td>
<td>{$current.new_money|default=0}</td>
<td>{$current.active|default=0}</td>
<td>{$current.active_pay|default=0}</td>
<td>{$current.active_money|default=0}</td>
<td>{$current.active_rate|default='0.00'}%</td>
<td>{$current.active_arpu|default='0.00'}</td>
<td>{$current.pay_arpu|default='0.00'}</td>
</tr>
<tr class="data_summary">
<td><span>全部汇总</span></td>
<td>{:get_launch_platform_name($total['platform_id'],'--')}</td>
<td>{:get_game_name_by_id($total['game_id'],'--')}</td>
<td>{$total.new|default=0}</td>
<td>{$total.new_device|default=0}</td>
<td>{$total.new_pay|default=0}</td>
<td>{$total.new_rate|default='0.00'}%</td>
<td>{$total.new_money|default=0}</td>
<td>{$total.active|default=0}</td>
<td>{$total.active_pay|default=0}</td>
<td>{$total.active_money|default=0}</td>
<td>{$total.active_rate|default='0.00'}%</td>
<td>{$total.active_arpu|default='0.00'}</td>
<td>{$total.pay_arpu|default='0.00'}</td>
</tr>
</empty>
</tbody>
</table>
</div>
</div>
<div class="page">
<a class="sch-btn" href="{:U('Export/launch_data',array(
'platform_id'=>I('get.platform_id'),
'promote_id'=>I('get.promote_id'),
'game_id'=>I('get.game_id'),
'timestart'=>I('get.timestart'),
'timeend'=>I('get.timeend'),'p'=>I('get.p',1),
'xlsname'=>'广告监测管理_广告监测管理_投放数据列表')
)}">导出</a>
{$_page|default=''}
</div>
<div class="common_settings">
<span class="plus_icon"><span><img src="__IMG__/zwmimages/icon_jia.png"></span></span>
<form class="addShortcutIcon">
<input type="hidden" name="title" value="{$m_title}">
<input type="hidden" name="url" value="{$m_url}">
</form>
<a class="ajax-post add-butn <notempty name='commonset'>addSIsetted</notempty>" href="javascript:;" target-form="addShortcutIcon" url="{:U('Think/addShortcutIcon')}"><img src="__IMG__/zwmimages/icon_jia.png"><span><notempty name='commonset'>已添加<else />添加至常用设置</notempty></span></a>
</div>
</block>
<block name="script">
<script src="__STATIC__/layer/layer.js"></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"></script>
<script src="__STATIC__/layer/extend/layer.ext.js"></script>
<script>
<volist name=":I('get.')" id="vo">
Think.setValue('{$key}',"{$vo}");
</volist>
</script>
<script type="text/javascript">
//导航高亮
highlight_subnav('{:U($m_url)}');
$(".select_gallery").select2();
$(function(){
//搜索功能
$("#search").click(function(){
var starttime = $.trim($('#timestart').val());
var endtime = $.trim($('#timeend').val());
if (starttime && endtime && starttime > endtime) {layer.msg('开始时间必须小于等于结束时间');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;
}
window.location.href = url;
});
//回车自动提交
$('.jssearch').find('input').keyup(function(event){
if(event.keyCode===13){
$("#search").click();
}
});
$('#timestart').datetimepicker({
format: 'yyyy-mm-dd',
language:"zh-CN",
minView:2,
autoclose:true,endDate:new Date(),
});
$('#timeend').datetimepicker({
format: 'yyyy-mm-dd',
language:"zh-CN",
minView:2,
autoclose:true,endDate:new Date(),
});
$('#jsplatformadd').on('click',function() {
var that = $(this);
var url = that.attr('url');
layer.confirm('<p class="lwx_dialog_title">投放平台</p><input id="lwx_dialog_input" type="text" class="lwx_dialog_input" value="">', {title:'投放平台添加',skin:'lwx_dialog_prompt',btn:['确定']}, function(index){
var input = $('#lwx_dialog_input');
var val = input.val();
if(!val) {input.focus();return false;}
layer.close(index);
$.ajax({
async: false,
url:url,
type:"POST",
dataType:"json",
data:{name:val},
success:function(result){
if(result.status){
updateAlert(result.info);
setTimeout(function(){
$('#tip').find('.tipclose').click();
window.location.reload();
},2000);
}else{
updateAlert(result.info,'tip_error');
setTimeout(function(){
$('#tip').find('.tipclose').click();
},2000);
}
},
error:function(){
updateAlert('服务器异常','tip_error');
setTimeout(function(){
$('#tip').find('.tipclose').click();
},2000);
}
});
});
return false;
});
$('.jsplatformedit').on('click',function() {
var that = $(this);
var url = that.attr('url');
var id = that.attr('data-id');
layer.confirm('<p class="lwx_dialog_title">投放平台</p><input id="lwx_dialog_input" type="text" class="lwx_dialog_input" value="">', {title:'投放平台编辑',skin:'lwx_dialog_prompt',btn:['确定']}, function(index){
var input = $('#lwx_dialog_input');
var val = input.val();
if(!val) {input.focus();return false;}
layer.close(index);
$.ajax({
async: false,
url:url,
type:"POST",
dataType:"json",
data:{id:id,name:val},
success:function(result){
if(result.status){
updateAlert(result.info);
setTimeout(function(){
$('#tip').find('.tipclose').click();
window.location.reload();
},2000);
}else{
updateAlert(result.info,'tip_error');
setTimeout(function(){
$('#tip').find('.tipclose').click();
},2000);
}
},
error:function(){
updateAlert('服务器异常','tip_error');
setTimeout(function(){
$('#tip').find('.tipclose').click();
},2000);
}
});
});
return false;
});
$('.jschangevalue').on('click',function() {
var that = $(this);
var id = that.attr('data-id');
var title = that.attr('data-title');
layer.prompt({title:title,formType:0},function(value,index) {
if (!/^(?:0|[1-9][0-9]*)$/.test(value)) {
updateAlert('请输入正整数','tip_error');
setTimeout(function(){
$('#tip').find('.tipclose').click();
},2000);
return false;
}
layer.close(index);
$.ajax({
async: false,
url:"{:U('change_value')}",
type:"POST",
dataType:"json",
data:{id:id,value:value},
success:function(result){
if(result.status){
updateAlert(result.info);
setTimeout(function(){
$('#tip').find('.tipclose').click();
window.location.reload();
},2000);
}else{
updateAlert(result.info,'tip_error');
setTimeout(function(){
$('#tip').find('.tipclose').click();
},2000);
}
},
error:function(){
updateAlert('服务器异常','tip_error');
setTimeout(function(){
$('#tip').find('.tipclose').click();
},2000);
}
});
});
return false;
});
})
</script>
</block>