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.

632 lines
30 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__/bootstrap.min.js"></script>
<script type="text/javascript" src="__JS__/select2.min.js"></script>
<script type="text/javascript" src="__STATIC__/layer3/layer.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;}
</style>
<!-- 标题栏 -->
<div class="cf main-place top_nav_list navtab_list">
<div class="fr">
<a <if condition="(I('type') eq 1) or (I('type') eq '') "> class="tabchose" </if> href="{:U('user_info',array('type'=>1))}">本站玩家</a>
<a <if condition="I('type') eq 2"> class="tabchose" </if> href="{:U('user_info',array('type'=>2))}">第三方玩家</a>
<a href="{:U('public_account')}">公用账户</a>
</div>
<h3 class="page_title">玩家列表</h3>
<if condition="(I('type',1) eq 1) ">
<p class="description_text">说明:此列表统计平台账号总数,当筛选条件为游戏不含区服时为该游戏的玩家数量,含区服时为玩家创建角色数量</p>
<else/>
<p class="description_text">说明游客登录默认属于第三方用户当用户通过SDK设置了用户名以后记录变换到本站用户列表里账户自动更换为设置的账号</p>
</if>
</div>
<style>
</style>
<div class="cf top_nav_list">
<!-- 高级搜索 -->
<div class="jssearch search_list fl cf">
<div class="input-list search-title-box">
<label>搜索:</label>
</div>
<if condition="I('type') eq 2 ">
<div class="input-list input-list-resway search_label_rehab">
<select id="register_type" name="register_type" class="select_gallery" style="width:120px;">
<option value="">第三方来源</option>
<volist name=":all_register_type()" id="vo">
<option value="{$vo.key}">{$vo.value}</option>
</volist>
</select>
</div>
</if>
<div class="input-list">
<input type="text" name="user_id" class="" placeholder="账号ID" value="{:I('user_id')}"/>&nbsp;
</div>
<div class="input-list">
<input type="text" name="account" class="" placeholder="玩家账号" value="{:I('account')}"/>&nbsp;
</div>
<div class="input-list">
<input type="text" readonly id="time_start" name="time_start" class="" value="{:I('time_start')}" placeholder="注册开始时间" />
&nbsp;-&nbsp;
<div class="input-append date" id="datetimepicker" style="display:inline-block">
<input type="text" readonly id="time_end" name="time_end" class="" value="{:I('time_end')}" placeholder="注册结束时间" />
<span class="add-on"><i class="icon-th"></i></span>
</div>
</div>
<!-- <div class="input-list input-list-promote search_label_rehab">
<select style="width: 120px;" id="promote_id" name="promote_id" class="select_gallery" >
<option value="">所属推广员</option>
<option value="0">官方渠道</option>
<option value="UC">UC用户</option>
<volist name=":get_promote_list(1)" id="vo">
<option promote-id="{$vo.id}" value="{$vo.id}">{$vo.account}</option>
</volist>
</select>
</div> -->
<if condition="I('type') eq 1 or I('type') eq ''">
<div class="input-list input-list-resway search_label_rehab">
<select id="register_way" name="register_way" class="select_gallery" style="width:120px;">
<option value="">注册方式</option>
<option value="1">账号</option>
<option value="2">手机号</option>
<option value="7">邮箱</option>
</select>
</div>
</if>
<div class="sleft">
<select id="status1" name="status" class="select_gallery">
<option value="" <if condition="I('status') eq ''" >selected="true"</if>>账号状态</option>
<option value="1" <if condition="I('status') eq '1'" >selected="true"</if>>正常</option>
<option value="0" <if condition="I('status') eq '0'" >selected="true"</if>>已{:L('Lock')}</option>
</select>
</div>
<div class="sleft">
<select id="viplevel" name="viplevel" class="select_gallery">
<option value="">VIP等级</option>
<option value="0">VIP 0</option>
<option value="1">VIP 1</option>
<option value="2">VIP 2</option>
<option value="3">VIP 3</option>
</select>
</div>
<div class="input-list input-list-game search_label_rehab">
<select id="game_name" name="game_name" class="select_gallery" >
<option value="">游戏名称</option>
<volist name=":getAllGame()" id="vo">
<option value="{$vo.game_name}" <if condition="$vo.game_name eq I('game_name')">selected</if> >{$vo.game_name}</option>
</volist>
</select>
</div>
<div class="input-list input-list-game search_label_rehab">
<select id="game_type" name="game_type" class="select_gallery" >
<option value="">设备类型</option>
<option value="1" <?php echo I('game_type') == 1 ? "selected" : ''?>>安卓</option>
<option value="2" <?php echo I('game_type') == 2 ? "selected" : ''?>>苹果</option>
</select>
</div>
<div class="input-list input-list-server search_label_rehab">
<select id="server_id" name="server_id" class="select_gallery" style="width:120px;">
<option value="">区服名称</option>
</select>
</div>
<br>
<div class="input-list search_item input-list-gamenoticestatus">
<select name="promote_level" style="color:#444" class="select_gallery" id="promote_level">
<option value="">请选择推广员等级</option>
<option value="1" <?php if ($_POST['promote_level'] == 1):?>selected<?php endif;?>>会长</option>
<option value="2" <?php if ($_POST['promote_level'] == 2):?>selected<?php endif;?>>部门长</option>
<option value="3" <?php if ($_POST['promote_level'] == 3):?>selected<?php endif;?>>组长</option>
<option value="4" <?php if ($_POST['promote_level'] == 4):?>selected<?php endif;?>>组员</option>
</select>
-
</div>
<div class="input-list search_item input-list-gamenoticestatus">
<select name="promote_id" style="color:#444" class="select_gallery" id="promote_id">
<option value="">请选择推广员</option>
<option value="0" <?php if ($_POST['promote_id'] == 0):?>selected<?php endif;?>>官方渠道</option>
<option value="UC" <?php if ($_POST['promote_id'] == 'UC'):?>selected<?php endif;?>>UC用户</option>
</select>
</div>
<div class="input-list">
<input type="text" name="device_number" class="" placeholder="设备号" value="{:I('device_number')}"/>&nbsp;
</div>
<input type="hidden" name="" value="" class="sortBy">
<input type="hidden" name="type" value="{:I('type')}" class="sortBy">
<input type="hidden" name="balance_status" value="" id="balance_status">
<input type="hidden" name="recharge_status" value="" id="recharge_status">
<input type="hidden" name="key" value="" id='key'>
<input type="hidden" name="value" value="" id='value'>
<div class="input-list">
<a class="sch-btn" href="javascript:;" id="search" url="{:U('Member/user_info','model='.$model['name'] .'&row='.I('row'),false)}">
搜索</a>
</div>
<!-- <div class="input-list">
<a class="sch-btn" href="{:U('Export/expUser',array_merge(['id'=>3],I('get.')))}">导出</a>
</div> -->
<div class="fl button_list">
<a target-form="ids" onclick="shenhe(0)"><span class="button_icon button_icon5 "></span>批量锁定</a>
<a id="dtnn" target-form="ids" onclick="shenhe(1)"><span class="button_icon button_icon9 "></span>批量开启</a>
</div>
</div>
</div>
<!-- 数据列表 -->
<div class="data_list">
<div class="">
<table>
<!-- 表头 -->
<thead>
<tr>
<th class="" style="width: 50px;">
<input class="check-all" type="checkbox">
</th>
<th>账号ID</th>
<if condition="I('type') eq 2">
<th>第三方来源</th>
<th>绑定账号</th>
<else/>
<th>玩家账号</th>
</if>
<th>所属推广员</th>
<th>
<a class="paixu" data-order="{:I('balance_status',1)}" name="balance_status">
账户平台币
</a>
</th>
<th>
<a class="paixu" data-order="{:I('recharge_status',1)}" name="recharge_status">
累计充值
</a>
</th>
<th>
金币
</th>
<!-- <th>
绑定支付宝
</th>
<th>
小号
</th>-->
<th>
VIP等级
</th>
<if condition="I('type') eq 1 or I('type') eq ''">
<th>注册方式</th>
</if>
<th >注册时间</th>
<th >注册IP</th>
<th >最后登录时间</th>
<th >设备号</th>
<th >锁定备注</th>
<th >账号状态</th>
<th >拉黑状态</th>
<th >操作</th>
</tr>
</thead>
<!-- 列表 -->
<tbody>
<empty name ="list_data">
<td colspan="18" class="text-center">aOh! 暂时还没有内容!</td>
<else/>
<volist name="list_data" id="data">
<tr>
<td ><input class="ids" type="checkbox" value="{$data.account}" name="ids[]"></td>
<td >{$data.id}</td>
<if condition="I('type') eq 2">
<td >{:get_registertype($data['register_type'])}</td>
<td >
<if condition="$show_data_power eq true ">
{$data.account}
<else />
{$data.account|encryptStr}
</if>
<!--{$data.account}-->
</td>
<else/>
<td >
<if condition="$show_data_power eq true ">
{$data.account}
<else />
{$data.account|encryptStr}
</if>
<!--{$data.account}-->
</td>
</if>
<td >
<if condition="$data['promote_account'] eq '自然注册'">
官方渠道
<else/>
<empty name='data["promote_account"]'>---<else/>
<if condition="$show_data_power eq true ">
{$data.promote_account}
<else />
{$data.promote_account|encryptStr}
</if>
<!--{$data.promote_account}-->
</empty>
</if>
</td>
<td >{$data.balance}</td>
<td >{$data.recharge_total}</td>
<td >{$data.gold_coin|default='0.00'}</td>
<!--<td >{$data.alipay|default='&#45;&#45;'}</td>
<td >
<gt name="data.small_count" value="0">
<a class="jssamlllist" data-url="{:U('Member/small_list',array('id'=>$data['id'],'account'=>$data['account']))}" data-account="{$data.account}" href="javascript:;">{$data.small_count|default=0}</a>
<else />&#45;&#45;
</gt>
</td>-->
<td>{:get_vip_level($data['recharge_total'])}</td>
<if condition="I('type') eq 1 or I('type') eq ''">
<td >
<switch name="data['register_type']">
<case value='2'>手机号</case>
<case value='7'>邮箱</case>
<default />账号
</switch>
</td>
</if>
<td >{$data.register_time|date='Y-m-d H:i:s',###}</td>
<td >{$data.register_ip}</td>
<td >
<if condition="$data.login_time eq null">
<else />
<span class="login_old">{$data['login_time']|date='Y-m-d H:i:s',###}</span>
</if>
</td>
<td >
<if condition="$show_data_power eq true ">
{$data.device_number}
<else />
{$data.device_number|encryptStr}
</if>
<!--{$data.device_number}-->
</td>
<td >
<if condition="get_info_status($data['lock_status'],4) eq 锁定">
{$data.lock_remark}
</if>
</td>
<if condition="get_info_status($data['lock_status'],4) eq 锁定">
<td style="color:red;">已{:get_info_status($data['lock_status'],4)}</td>
<else />
<td >{:get_info_status($data['lock_status'],4)}</td>
</if>
<eq name="data.check_status" value="1">
<td>正常</td>
<else/>
<td style="color:red;">已拉黑</td>
</eq>
<td >
<a href="{:U('Member/edit?id='.$data['id'])}">查看 </a>
<if condition="get_info_status($data['lock_status'],4) eq 锁定">
<a class="ajax-get" href="{:U('Member/lock_status',array('id'=>$data['id'],'lock_status'=>1))}">启用 </a>
<else />
<a href="javascript:;" id="lock" data-url="{:U('Member/lock_status',array('id'=>$data['id'],'lock_status'=>0))}">{:L('Lock')}</a>
</if>
</td>
</tr>
</volist>
</empty>
<if condition="$rule_count_check">
<tr class="data_summary">
<td colspan="3" style="text-align: center;">汇总:</td>
<if condition="I('promote_id') && I('promote_id') gt 0 ">
<td colspan="8">
当前用户累计充值:{$now_count} &#12288;&#12288;
历史累计充值:{$history_count}&#12288;&#12288;
用户数:{$user_count}&#12288;&#12288;
去重用户数:{$device_count}
</td>
<td colspan="8" style="font-style: 12px;color: #a9a9a9;text-align: center;">
当前用户累计充值:&#12288;当前属于该推广员的用户的充值累计(不含用户换绑前记录)&#12288;&#12288;/&#12288;&#12288;
历史累计充值:&#12288;历史中属于该推广员的用户的充值累计(含用户换绑前记录)&#12288;&#12288;
去重用户数:{$device_count}
</td>
<else />
<td colspan="99">
当前用户累计充值:{$now_count}&#12288;&#12288;用户数:{$user_count}&#12288;&#12288;
去重用户数:{$device_count}
</td>
</if>
</tr>
</if>
</tbody>
</table>
</div>
</div>
<div class="page">
<if condition="$is_admin eq true ">
<a class="sch-btn export-btn"
href="{:U(CONTROLLER_NAME.'/'.ACTION_NAME,array_merge(['export'=>1],I('get.')))}" target="_blank">导出</a>
<!-- <a class="sch-btn" href="{:U('Export/expUser',array_merge(['id'=>3,'xlsname'=>'玩家_玩家列表_'.(I('get.type')==2?'第三方玩家':'本站玩家')],I('get.')))}">导出</a> -->
</if>
{$_page|default=''}
</div>
<!-- 添加常用设置 begin-->
<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="Member/user_info">
</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>
<!--end 添加常用设置 -->
</block>
<block name="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 type="text/javascript">
</script>
<script type="text/javascript">
//导航高亮
highlight_subnav('{:U('Member/user_info')}');
$(function(){
<volist name=":I('get.')" id="vo">
Think.setValue('{$key}',"{$vo}");
</volist>
});
</script>
<script type="text/javascript">
$(function(){
$(".select_gallery").select2();
$(".export-btn").on("click",function(e){
e.preventDefault();
var cont = {$user_count};
if(cont < 50000){
window.location.href=$(this).attr("href")
}else{
layer.msg('为保证导出效率大于50000条数据暂不支持导出请更换检索条件后再次尝试');
}
})
//搜索功能
$("#search").click(function(){
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;
});
$('.jssamlllist').click(function() {
var that = $(this),url = that.attr('data-url');
var url =
layer.open({
type: 2,
title: "【"+that.attr('data-account')+"】小号列表",
shadeClose: true,
shade: 0.8,
area: ['1062px', '80%'],
content: url,//iframe的url
});
return false;
});
$(".paixu").click(function(){
var val = $(this).attr('data-order');
if(val == 1){
val = 2;
}else if(val == 2){
val = 1;
}
var name = $(this).attr('name');
if (name == 'balance_status') {
$('#key').val(1);
}else{
$('#key').val(2);
}
$("#"+name).val(val);
$("#search").click();
});
//回车自动提交
$('.jssearch').find('input').keyup(function(event){
if(event.keyCode===13){
$("#search").click();
}
});
$("#total_status").click(function(){
$("#search").click();
})
$('#time_start').datetimepicker({
format: 'yyyy-mm-dd',
language:"zh-CN",
minView:2,
autoclose:true
});
$('#datetimepicker').datetimepicker({
format: 'yyyy-mm-dd',
language:"zh-CN",
minView:2,
autoclose:true,
pickerPosition:'bottom-left'
})
var promote_id = "{:I('promote_id')}";
$("#promote_level").change(function(){
$.ajax({
url:"{:U('Ajax/getPromotersByLevelOther')}",
type:"get",
data:{level:$("#promote_level option:selected").val()},
dataType:'json',
success:function(response){
str = '<option value="">请选择推广员</option>' +
// '<option value="0"'+(promote_id && 0 == promote_id?'selected':'')+'>官方渠道</option>' +
// '<option value="UC"'+(promote_id && 'UC' == promote_id?'selected':'')+'>UC渠道</option>' +
'';
// $.each(response.data, function(index, item){
// console.log(item.id);
// str += '<option value="'+item.id+' '+(promote_id && item.id == promote_id?'selected':'')+'">'+item.nickname+'</option>';
// });
data = response.data;
for (var i in data){
str += "<option value='"+data[i].id+"' "+(promote_id && data[i].id == promote_id?'selected':'')+">"+data[i].nickname+"</option>"
}
$("#promote_id").empty();
$("#promote_id").append(str);
$("#promote_id").select2();
}
})
});
$("#promote_level").change();
})
var game_server = "{:I('server_id')}";
$("#game_type").change(function(){
console.log({sdk_version:$("#game_type option:selected").val(), game_name:$("#game_name option:selected").val()})
$.ajax({
url:"{:U('Ajax/getGmeServer')}",
type:"post",
data:{sdk_version:$("#game_type option:selected").val(), game_name:$("#game_name option:selected").val()},
dataType:'json',
success:function(data){
console.log(data)
str = "<option value=''>请选择区服</option>";
for (var i in data){
str += "<option value='"+data[i].server_id+"' "+(game_server && data[i].server_id == game_server?'selected':'')+">"+data[i].server_name+"</option>"
}
$("#server_id").empty();
$("#server_id").append(str);
$("#server_id").select2();
}
})
});
$("#game_name").change(function(){
$("#game_type").change();
});
$("#game_name").change();
function shenhe(status){
var text = $("input:checkbox[name='ids[]']:checked").map(function(index,elem) {
return $(elem).val();
}).get().join("\n");
var desc = '';
if (status == 0) {
desc = '锁定';
} else {
desc = '开启';
}
layer.prompt({
formType: 2,
value: text,
placeholder : '玩家账号(一个账号一行)',
title: '请输入要'+desc+'的玩家账号(一个账号一行)',
area: ['800px', '350px'] //自定义文本域宽高
}, function(value, index, elem){
if(value=='') {
layer.msg("请输入账户ID");
return;
}
$.ajax({
cache: true,
type: "POST",
url:"{:U('Member/lock_status')}",
data:{accounts:value, lock_status:status},// 你的formid
async: false,
error: function(data) {
layer.alert("服务器故障,请稍后重试!",{icon: 2});
},
success: function(data) {
// var obj = JSON.parse(data);
// layer.alert(obj.info,{icon:obj.status})
layer.alert(data.info,{icon:data.status})
window.location.reload()
}
});
layer.close(index);
});
}
</script>
<script>
$(document).on('click', '#lock', function(){
var url = $(this).attr("data-url");
layer.prompt({
formType: 3,
title: "请备注锁定原因",
value: ''
}, function (remark,index) {
$.ajax({
cache: true,
type: "POST",
url: url,
data:{
lock_remark:remark
},
async: false,
error: function(data) {
layer.alert("服务器故障,请稍后重试!",{icon: 2});
},
success: function(data) {
location.reload()
}
});
layer.close(index);
});
})
</script>
</block>