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.

500 lines
21 KiB
HTML

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<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">
<if condition="$is_admin eq true ">
<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>
</if>
{$_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>