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.

569 lines
21 KiB
HTML

<extend name="Public/promote_base"/>
<block name="css">
<link href="__CSS__/20180207/account.css" rel="stylesheet" >
<link href="https://cdn.bootcss.com/twitter-bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="https://cdn.bootcss.com/font-awesome/4.6.0/css/font-awesome.min.css">
<link href="__CSS__/transfer.css" rel="stylesheet" >
</block>
<block name="body">
<div class="page-list normal_list promote-mychlid-list">
<div class="trunk-title">
<div class="location">
<div class="location-container">当前位置:<span>管理中心></span><span>{$promoteTypeName}管理</span></div>
</div>
<img src="__IMG__/20180207/icon_normal_ziqudao.png">
<span class="title_main">{$promoteTypeName}管理</span>
</div>
<div class="trunk-content article">
<div class="trunk-search clearfix jssearch">
<input type="hidden" name="promote_type" value="{:I('promote_type', 0)}">
<div class="form-group fl normal_space">
<a href="{:U('Promote/addPromote', ['promote_type' => I('promote_type', 0)])}" class="submit btn" style="line-height: 25px"><i class="add_qudao"></i><span>添加{$promoteTypeName}</span></a>
</div>
<div class="form-group fr">
<input type="submit" class="submit" id='submit' url="{:U('Promote/children','model='.$model['name'],false)}"
value="查询">
</div>
<div class="form-group fr normal_space">
<select name="status" class="reselect select_gallery" style="width: 220px;" >
<option value="all">请选择状态</option>
<option value="1" <if condition="I('status') === '1'">selected</if>>启用</option>
<option value="2" <if condition="I('status') === '2'">selected</if>>冻结中</option>
</select>
</div>
<div class="form-group fr normal_space">
<input type="text" name="real_name" class="txt normal_txt" id="uid" placeholder="请输入姓名" value="{:I('real_name')}">
</div>
<div class="form-group fr normal_space">
<input type="text" name="mobile" class="txt normal_txt" id="uid" placeholder="请输入手机号" value="{:I('mobile')}">
</div>
<div class="form-group fr normal_space">
<input type="text" name="idcard" class="txt normal_txt" id="uid" placeholder="请输入身份证" value="{:I('idcard')}">
</div>
<div class="form-group fr normal_space">
<input type="text" name="account" class="txt normal_txt" id="uid" placeholder="请输入帐号" value="{:I('account')}">
</div>
</div>
<div class="trunk-list list_normal">
<table class="table normal_table">
<tr class="odd">
<th>ID</th>
<th>帐号</th>
<th>真实姓名</th>
<th>身份证</th>
<th>手机号</th>
<th>上级渠道</th>
<th>昵称</th>
<th>帐号状态</th>
<th>创建时间</th>
<th>操作</th>
</tr>
<empty name="records">
<tr><td colspan="10" style="text-align: center;height: 45vh;"><img src="__IMG__/20180207/icon_wushujv2.png"/><p style="line-height: 40px;color: #A5A5A5;">暂无数据</p></td></tr>
<else />
<volist name="records" id="record" mod="2">
<tr data-id="{$record.id}" data-parent-id="{$record.parent_id}" class="<eq name='mod' value='1'>odd</eq>">
<td>{$record.id}</td>
<td class="account">{$record.account}</td>
<td class="real-name">{$record.real_name}</td>
<td>{$record.idcard}</td>
<td>{$record.mobile_phone}</td>
<td>{$record.parent_name}</td>
<td>{$record.nickname}</td>
<td>
<if condition="$record['status'] eq 0">
<span class="status_close">审核中</span>
<elseif condition="$record['status'] eq 1"/>
启用
<elseif condition="$record['status'] eq 2"/>
<span class="status_close">冻结中</span>
<else />
<span class="status_close">未知状态</span>
</if>
</td>
<td>{$record.create_time|date='Y-m-d H:i:s',###}</td>
<td>
<a href="{:U('Promote/edit_chlid','id='.$record['id'])}" class="editbtn">修改</a>
<if condition="$record['status'] eq 1">
<a href="javascript:;" class="froze-btn editbtn">冻结</a>
<elseif condition="$record['status'] eq 2"/>
<a href="javascript:;" style="color: red;" class="unfreeze-btn editbtn">解冻</a>
</if>
<a href="javascript:;" class="reset-password-btn editbtn">重置密码</a>
<?php if(in_array($record['id'], $hasChildList)):?>
<?php if(!in_array($record['id'], $hasShiftList)):?>
<a href="javascript:;" class="shift-btn editbtn" data-promote-shift-type="1">渠道迁移</a>
<?php else:?>
<a href="javascript:;" style="color: red;" data-promote-shift-type="1" class="cancel-shift-btn editbtn">取消渠道迁移</a>
<?php endif;?>
<?php endif;?>
<?php if(in_array($record['id'], $hasPlayerList)):?>
<?php if(!in_array($record['id'], $hasShiftPlayerList)):?>
<a href="javascript:;" class="shift-player-btn editbtn">玩家迁移</a>
<?php else:?>
<a href="javascript:;" style="color: red;" class="cancel-shift-player-btn editbtn">取消玩家迁移</a>
<?php endif;?>
<?php endif;?>
</td>
</tr>
</volist>
</empty>
</table>
</div>
<div class="pagenation clearfix">
<?php if ($loginer['level'] !== 4) :?>
<a id="sch-btn" href="{:U('download/children_data_export',array_merge(['promote_type'=>I('promote_type')],I('post.')))}" class="ajax-get" >导出</a>
<?php endif ;?>
{$pagination}
</div>
</div>
<div class="page-explain promote-mychlid-explain">
<div class="trunk-content article border_normal">
<!-- <table class="desccontent">
<tr><td class="title" style="width: 100px;display: inline-block;">二级渠道说明:</td><td class="det">推广员默认为一级渠道,一级渠道可通过推广员后台新增二级渠道;二级渠道由一级渠道管理开启权限,并由一级渠道给二级渠道结算,结算可到财务管理操作。</td></tr>
</table>-->
</div>
</div>
</div>
<script>
setValue('row','{:I("get.row",10)}');
</script>
<div id="shift-box" class="layer-box" style="display: none;">
<form method="post" enctype="multipart/form-data">
<input type="hidden" name="promote_id" value="">
<input type="hidden" name="parent_id" value="">
<div class="form-group">
<label>账号(真实姓名)</label>
<div class="form-item">
<p class="static-input show-account"></p>
</div>
</div>
<div class="form-group">
<label>转移至推广账号</label>
<div class="form-item">
<select id="promote-to-promote" name="to_promote_id" class="reselect select_gallery" style="width: 220px;" >
<option value="0">请选择推广账号</option>
</select>
</div>
</div>
<div class="form-group">
<label>指定订单日期</label>
<div class="form-item">
<input type="text" id="shift-order-time" autocomplete="off" class="form-input" name="order_time" placeholder="订单日期"" value="" style="width: 199px;">
</div>
</div>
<div class="form-group">
<label>平台币管理</label>
<div class="form-item">
<label class="radio-item"><input type="radio" value="1" name="balance_coin_mode" checked> 平台币平移最高账户</label>
<label class="radio-item"><input type="radio" value="2" name="balance_coin_mode"> 平台币清零</label>
</div>
</div>
<?php if(I('promote_type', 0) != 2):?>
<div class="form-group">
<label>迁移方式</label>
<div class="form-item">
<label class="radio-item"><input type="radio" value="1" name="shift_mode" checked> 全部迁移</label>
<label class="radio-item"><input type="radio" value="2" name="shift_mode"> 部分迁移</label>
</div>
</div>
<div id="shift-transfer" class="form-group" style="display: none;">
<include file="Public/transfer" />
</div>
<?php endif;?>
<div class="form-group">
<label></label>
<a id="shift-submit" href="javascript:;" class="shift-submit btn">确定</a>
</div>
</form>
</div>
<div id="shift-player-box" class="layer-box" style="display: none;">
<form method="post" enctype="multipart/form-data">
<input type="hidden" name="promote_id" value="">
<div class="form-group">
<label>账号(真实姓名)</label>
<div class="form-item">
<p class="static-input show-account"></p>
</div>
</div>
<div class="form-group">
<label>转移至推广账号</label>
<div class="form-item">
<select id="player-to-promote" name="to_promote_id" class="reselect select_gallery" style="width: 220px;" >
<option value="0">请选择推广账号</option>
</select>
</div>
</div>
<div class="form-group">
<label>指定订单日期</label>
<div class="form-item">
<input type="text" id="shift-player-order-time" autocomplete="off" class="form-input" name="order_time" placeholder="订单日期"" value="" style="width: 199px;">
</div>
</div>
<div class="form-group">
<label></label>
<a id="shift-player-submit" href="javascript:;" class="shift-submit btn">确定</a>
</div>
</form>
</div>
</block>
<block name="script">
<script type="text/javascript" src="__JS__/20170831/select2.min.js"></script>
<link href="__STATIC__/datetimepicker/css/datetimepicker.css" rel="stylesheet" type="text/css">
<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__/vue.js"></script>
<script src="__JS__/transfer.js"></script>
<script type="text/javascript">
$(function(){
$(".select_gallery").select2();
var promoteType = $('input[name=promote_type]').val()
var level = 0
var subLevel = 0
if (promoteType == 0) {
level = 2
subLevel = 3
} else if (promoteType == 1) {
level = 3
subLevel = 4
} else if (promoteType == 2) {
level = 3
}
$('#submit').click(function () {
var url = $(this).attr('url');
console.log(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;
});
getSubPromotes({level: level}, function(response) {
var options = '<option value="0">请选择推广账号</option>'
for (var i in response.data.promotes) {
var promote = response.data.promotes[i]
options += '<option value="' + promote.id + '">' + promote.account + '(' + promote.real_name + ')' + '</option>'
}
$('#promote-to-promote').html(options)
})
getSubPromotes({level: 0}, function(response) {
var options = '<option value="0">请选择推广账号</option>'
for (var i in response.data.promotes) {
var promote = response.data.promotes[i]
options += '<option value="' + promote.id + '">' + promote.account + '(' + promote.real_name + ')' + '</option>'
}
$('#player-to-promote').html(options)
})
$('[name=shift_mode]').on({
click: function () {
if ($(this).val() == 2) {
$('#shift-transfer').show()
} else {
$('#shift-transfer').hide()
}
}
})
function getSubPromotes(data, successCallback) {
$.ajax({
url: "{:U('Promote/getSubPromotes')}",
data: data,
type: 'post',
dataType: 'json',
success: function(response) {
successCallback(response)
}
})
}
$('#shift-player-order-time').datetimepicker({
format: 'yyyy-mm-dd',
language:"zh-CN",
minView:2,
autoclose:true,
scrollMonth:false,
scrollTime:false,
scrollInput:false
});
$('#shift-order-time').datetimepicker({
format: 'yyyy-mm-dd',
language:"zh-CN",
minView:2,
autoclose:true,
scrollMonth:false,
scrollTime:false,
scrollInput:false
});
$('.reset-password-btn').on({
click: function() {
var id = $(this).parents('tr').eq(0).attr('data-id')
layer.confirm('是否确认重置密码?', {icon: 3, title:'提示'}, function(index){
$.ajax({
url: "{:U('Promote/resetPassword')}",
data: {promote_id: id},
type: 'post',
dataType: 'json',
success: function(response) {
layer.close(index)
if (response.status == 1) {
layer.open({
content: '重置密码成功,您的新密码为:' + response.data.password
})
} else {
layer.msg(response.msg)
}
}
})
})
}
})
$('.froze-btn').on({
click: function() {
var id = $(this).parents('tr').eq(0).attr('data-id')
layer.confirm('是否确认冻结帐号?', {icon: 3, title:'提示'}, function(index){
$.ajax({
url: "{:U('Promote/froze')}",
data: {promote_id: id},
type: 'post',
dataType: 'json',
success: function(response) {
layer.msg(response.msg, {time: 1000}, function() {
window.location.href = window.location.href
})
}
})
})
}
})
$('.unfreeze-btn').on({
click: function() {
var id = $(this).parents('tr').eq(0).attr('data-id')
layer.confirm('是否确认解冻帐号?', {icon: 3, title:'提示'}, function(index){
$.ajax({
url: "{:U('Promote/unfreeze')}",
data: {promote_id: id},
type: 'post',
dataType: 'json',
success: function(response) {
layer.msg(response.msg, {time: 1000}, function() {
window.location.href = window.location.href
})
}
})
})
}
})
function getShiftTypeName(shiftType) {
var shiftTypeName = ''
if (shiftType == 1) {
shiftTypeName = '渠道迁移'
} else if (shiftType == 2) {
shiftTypeName = '换组'
}
return shiftTypeName
}
$('.cancel-shift-btn').on({
click: function() {
var tr = $(this).parents('tr').eq(0)
var id = tr.attr('data-id')
var parentId = tr.attr('data-parent-id')
var shiftType = $(this).attr('data-promote-shift-type')
var shiftTypeName = getShiftTypeName(shiftType)
layer.confirm('是否要取消' + shiftTypeName, {icon: 3, title:'提示'}, function(index){
$.ajax({
url: "{:U('Promote/cancelShift')}",
data: {promote_id: id, type: 1},
type: 'post',
dataType: 'json',
success: function(response) {
layer.msg(response.msg, {time: 1000}, function() {
window.location.href = window.location.href
})
}
})
})
}
})
$('.cancel-shift-player-btn').on({
click: function() {
var id = $(this).parents('tr').eq(0).attr('data-id')
layer.confirm('是否要取消玩家迁移?', {icon: 3, title:'提示'}, function(index){
$.ajax({
url: "{:U('Promote/cancelShift')}",
data: {promote_id: id, type: 2},
type: 'post',
dataType: 'json',
success: function(response) {
layer.msg(response.msg, {time: 1000}, function() {
window.location.href = window.location.href
})
}
})
})
}
})
$('.shift-btn').on({
click: function() {
var shiftType = $(this).attr('data-promote-shift-type')
var shiftTypeName = getShiftTypeName(shiftType)
var box = $('#shift-box')
var tr = $(this).parents('tr').eq(0)
var id = tr.attr('data-id')
var parentId = tr.attr('data-parent-id')
getSubPromotes({promote_id: id, level: subLevel}, function (response) {
vm.init()
for (var i in response.data.promotes) {
var promote = response.data.promotes[i]
vm.initList.push({id: promote.id, name: promote.account + '(' + promote.real_name + ')', type:false, isSearch:true, number:6})
}
})
var account = $(this).parents('tr').eq(0).find('td.account').html()
var realName = $(this).parents('tr').eq(0).find('td.real-name').html()
box.find('.show-account').html(account + (realName == '' ? '' : '(' + realName + ')'))
box.find('[name=promote_id]').val(id)
box.find('[name=parent_id]').val(parentId)
layer.open({
title: shiftTypeName,
type: 1,
content: box,
area: ['600px', '600px'],
zIndex: 250,
})
}
})
$('#shift-submit').on({
click: function() {
var box = $('#shift-box')
var id = box.find('[name=promote_id]').val()
var parentId = box.find('[name=parent_id]').val()
var toPromoteId = box.find('[name=to_promote_id]').val()
var orderTime = box.find('[name=order_time]').val()
var balanceCoinMode = box.find('[name=balance_coin_mode]:checked').val()
var shiftIds = []
var fromPromoteId = 0
if (toPromoteId == 0) {
layer.msg('请选择转移至的推广账号')
return
}
if (promoteType == 2) {
fromPromoteId = parentId
shiftIds = [id]
} else {
fromPromoteId = id
if ($('[name=shift_mode]:checked').val() == 2) {
shiftIds = vm.getTargetIds()
if (shiftIds.length == 0) {
layer.msg('请选择要转移的下级推广账号')
return
}
}
}
var data = {
from_promote_id: fromPromoteId,
to_promote_id: toPromoteId,
order_time: orderTime,
balance_coin_mode: balanceCoinMode,
type: 1,
shift_ids: shiftIds
}
$.ajax({
url: "{:U('Promote/shift')}",
data: data,
type: 'post',
dataType: 'json',
success: function(response) {
if (response.status) {
layer.msg(response.msg, {time: 2000}, function() {
window.location.href = window.location.href
})
} else {
layer.msg(response.msg)
}
}
})
}
})
$('.shift-player-btn').on({
click: function() {
var box = $('#shift-player-box')
var id = $(this).parents('tr').eq(0).attr('data-id')
var account = $(this).parents('tr').eq(0).find('td.account').html();
var realName = $(this).parents('tr').eq(0).find('td.real-name').html();
box.find('.show-account').html(account + (realName == '' ? '' : '(' + realName + ')'))
box.find('[name=promote_id]').val(id)
layer.open({
title: '玩家迁移',
type: 1,
content: box,
area: ['600px', '350px'],
zIndex: 250,
})
}
})
$('#shift-player-submit').on({
click: function() {
var box = $('#shift-player-box')
var id = box.find('[name=promote_id]').val()
var toPromoteId = box.find('[name=to_promote_id]').val()
var orderTime = box.find('[name=order_time]').val()
var balanceCoinMode = box.find('[name=balance_coin_mode]:checked').val()
var shiftIds = []
if (toPromoteId == 0) {
layer.msg('请选择转移至的推广账号')
return
}
var data = {
from_promote_id: id,
to_promote_id: toPromoteId,
order_time: orderTime,
balance_coin_mode: balanceCoinMode,
type: 2,
shift_ids: shiftIds
}
$.ajax({
url: "{:U('Promote/shift')}",
data: data,
type: 'post',
dataType: 'json',
success: function(response) {
if (response.status) {
layer.msg(response.msg, {time: 2000}, function() {
window.location.href = window.location.href
})
} else {
layer.msg(response.msg)
}
}
})
}
})
})
</script>
</block>