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.
579 lines
22 KiB
HTML
579 lines
22 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>
|
|
<?php if($parents):?>
|
|
<div class="form-group fr normal_space">
|
|
<select name="parent_id" class="reselect select_gallery" style="width: 220px;" >
|
|
<option value="0">请选择上级</option>
|
|
<?php foreach($parents as $parent):?>
|
|
<option value="<?=$parent['id']?>" <?php if(I('parent_id')==$parent['id']):?>selected<?php endif;?>><?=$parent['account']?>(<?=$parent['real_name']?>)</option>
|
|
<?php endforeach;?>
|
|
</select>
|
|
</div>
|
|
<?php endif;?>
|
|
<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'],'promote_type'=>$promoteType])}" 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(false && 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('get.')))}" 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" style="display:none">
|
|
<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>
|
|
|