|
|
<extend name="Public/promote_base"/>
|
|
|
<block name="css">
|
|
|
<link href="__CSS__/20180207/data.css" rel="stylesheet">
|
|
|
<link href="__CSS__/20180207/finance.css" rel="stylesheet">
|
|
|
</block>
|
|
|
|
|
|
<block name="body">
|
|
|
<style type="text/css">
|
|
|
@media screen and (max-width: 1370px) {
|
|
|
.trunk-search .select-time .txt{width: 100px;}
|
|
|
.form-group .submit{width: 55px;}
|
|
|
}
|
|
|
</style>
|
|
|
|
|
|
<div class="page-search normal_list query-earning-search">
|
|
|
<div class="trunk-title">
|
|
|
<div class="location">
|
|
|
<div class="location-container">当前位置:<span>财务管理></span><span>子渠道结算</span></div>
|
|
|
</div>
|
|
|
<img src="__IMG__/20180207/icon_normal_jiesuan.png">
|
|
|
<span class="title_main">子渠道结算</span>
|
|
|
</div>
|
|
|
<div class="trunk-content article">
|
|
|
<form action="{:U('Query/son_earning')}" method="post" enctype="multipart/form-data">
|
|
|
|
|
|
<div class="trunk-search clearfix">
|
|
|
<div class="tab fl">
|
|
|
<a href="#" class="current">子渠道结算</a>
|
|
|
<a href="{:U('Query/son_list')}" class="">结算记录</a>
|
|
|
</div>
|
|
|
|
|
|
<div class="form-group normal_space fr">
|
|
|
<input type="submit" class="submit" value="查询" data-type='sett'>
|
|
|
</div>
|
|
|
|
|
|
<div class="form-group normal_space fr">
|
|
|
<label class="form-title select-title">结算周期:</label>
|
|
|
<div class="select-time">
|
|
|
<input type="text" id="sdate" class="txt" autocomplete="off" name="timestart" placeholder="开始时间" value="{$starttime}" >
|
|
|
</div>
|
|
|
<label class="form-title select-title zhi_color"> — </label>
|
|
|
<div class="select-time">
|
|
|
<input type="text" id="edate" class="txt" autocomplete="off" name="timeend" placeholder="结束时间" value="{$endtime}">
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="form-group normal_space fr">
|
|
|
<label class="form-title select-title"></label>
|
|
|
<select id="ch_promote_id" name="ch_promote_id" class="reselect select_gallery" style="min-width:170px;">
|
|
|
<option value="0">全部子渠道</option>
|
|
|
<volist name=":get_promote_list_by_id()" id ="vo">
|
|
|
<option value="{$vo.id}">{$vo.account}</option>
|
|
|
</volist>
|
|
|
</select>
|
|
|
</div>
|
|
|
|
|
|
<div class="form-group fr">
|
|
|
<label class="form-title select-title">参与结算设置:</label>
|
|
|
<label class="form-title includes">
|
|
|
|
|
|
<input type="checkbox" class="inp_radio" value="1" name="bind_coin">
|
|
|
|
|
|
<i class="check_icon"></i>
|
|
|
<span>包含绑币</span>
|
|
|
</label>
|
|
|
<!--<label>
|
|
|
<input type="radio" class="inp_radio" value="0" name="bind_coin" <if condition="I('bind_coin',0) eq 0">checked="checked"</if>> 排除绑币
|
|
|
</label>
|
|
|
|
|
|
<label>
|
|
|
<input type="radio" class="inp_radio" value="1" name="bind_coin" <if condition="I('bind_coin',0) eq 1">checked="checked"</if>> 包含绑币
|
|
|
</label>-->
|
|
|
</div>
|
|
|
</div>
|
|
|
</form>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="page-list query-earning-list">
|
|
|
<div class="trunk-content article" style="margin-top: 0;min-height: 50vh;">
|
|
|
<div class="trunk-search clearfix">
|
|
|
<input type="button" class="submit btn_calc" value="结算" onclick="submitFrom('#settlement_table')">
|
|
|
</div>
|
|
|
<div class="trunk-list">
|
|
|
<table class="table4 normal_table" id="settlement_table">
|
|
|
<tr class="odd">
|
|
|
<th>
|
|
|
<label class="checked">
|
|
|
<input class="check-all" type="checkbox">
|
|
|
<i class="check_icon"></i>
|
|
|
</label>
|
|
|
</th>
|
|
|
<th>结算周期</th>
|
|
|
<th>游戏名称</th>
|
|
|
<th>总充值</th>
|
|
|
<th>总注册</th>
|
|
|
<th>结算模式</th>
|
|
|
<th>分成比例</th>
|
|
|
<th>注册单价</th>
|
|
|
<th>结算金额(元)</th>
|
|
|
<th>状态</th>
|
|
|
</tr>
|
|
|
<empty name="list_data">
|
|
|
<tr><td colspan="10" style="text-align: center;height: 35vh;"><img src="__IMG__/20180207/icon_wushujv2.png"/><p style="line-height: 40px;color: #A5A5A5;">暂无数据</p></td></tr>
|
|
|
<else />
|
|
|
<volist name="list_data" id="vo" mod="2">
|
|
|
<tr class="<eq name='mod' value='1'>odd</eq>">
|
|
|
<td class="ids">
|
|
|
|
|
|
<label class="checked">
|
|
|
<input class="ids" type="checkbox" value='
|
|
|
{
|
|
|
"settlement_start_time":"{$starttime}",
|
|
|
"settlement_end_time":"{$endtime}",
|
|
|
"promote_id":"{$vo.promote_id}",
|
|
|
"promote_account":"{$vo.promote_account}",
|
|
|
"game_id":"{$vo.game_id}",
|
|
|
"game_name":"{$vo.game_name}",
|
|
|
"sum_money":"{$vo.total_amount}",
|
|
|
"reg_number":"{$vo.total_number}",
|
|
|
"bind_coin_status":"0",
|
|
|
"cooperation":"CPS",
|
|
|
"ratio":"{$vo.ratio}",
|
|
|
"money":"{$vo.money}","tpid":"{$vo.tpromote_id}"
|
|
|
}' name="ids[]">
|
|
|
<i class="check_icon"></i>
|
|
|
</label>
|
|
|
|
|
|
</td>
|
|
|
<td>{$starttime}~{$endtime}</td>
|
|
|
<td>{$vo.game_name}</td>
|
|
|
<td class="amount"><notempty name="vo.total_amount">{$vo.total_amount}<else />0</notempty></td>
|
|
|
<td class="number"><notempty name="vo.total_number">{$vo.total_number}<else />0</notempty></td>
|
|
|
<td class="coop">
|
|
|
<select name="cooperation" class="cooperation" >
|
|
|
<option value="CPS" selected>CPS</option>
|
|
|
<option value="CPA">CPA</option>
|
|
|
</select>
|
|
|
</td>
|
|
|
|
|
|
<td class="cps">
|
|
|
<input type="text" placeholder="填写" value="{$vo.ratio}" /> %
|
|
|
</td>
|
|
|
<td class="cpa">
|
|
|
<input type="text" placeholder="填写" value="{$vo.money}" /> 元
|
|
|
</td>
|
|
|
<td class="money">{:round($vo['ratio']*$vo['total_amount']*1/100,2)}</td>
|
|
|
<td>可结算</td>
|
|
|
|
|
|
</tr>
|
|
|
</volist>
|
|
|
<tr class="odd">
|
|
|
<td style="font-weight: bold;">结算汇总(元)</td>
|
|
|
<td colspan="8" id="total">0</td>
|
|
|
<td></td>
|
|
|
</tr>
|
|
|
</empty>
|
|
|
</table>
|
|
|
<div class="pagenation clearfix">{$_page}</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
<div class="page-explain query-my_earning-explain">
|
|
|
<div class="trunk-content article border_normal">
|
|
|
<table class="desccontent">
|
|
|
<tr><td class="title" style="width: 112px;display: inline-block;">子渠道结算说明:</td><td class="det">二级渠道数据结算,由一级推广员自主完成以及打款;一级推广员通过推广员后台选择子渠道、游戏、结算方式,填写相关分成比例,系统自动计算出结算数据。</td></tr>
|
|
|
<tr><td class="title">注意:</td><td class="det">1、推广结算只结算消费到游戏的所有订单记录。(系统默认全部排除绑币,可视情况自行勾选)</td></tr>
|
|
|
<tr><td></td><td class="det">2、包含绑币勾选请慎重,由于玩家账户部分绑币的来源属于后台发放或者会长代充等,涉及到成本盈亏,是否参与推广员结算请考虑清楚!</td></tr>
|
|
|
<tr><td></td><td class="det">3、推广结算时间请按规律时间统一结算,否则时间不统一容易导致个别游戏在统一时间内无法结算。</td></tr>
|
|
|
</table>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
</block>
|
|
|
<block name="script">
|
|
|
|
|
|
<script type="text/javascript">
|
|
|
setValue('ch_promote_id',{$Think.request.ch_promote_id|default=0});
|
|
|
setValue('bind_coin',{$Think.request.bind_coin|default=0});
|
|
|
$(function() {
|
|
|
|
|
|
function set_json_data(str,param,val){
|
|
|
var jsonObj = eval("("+str+")");
|
|
|
jsonObj[""+param+""] = val;
|
|
|
var jsonText = JSON.stringify(jsonObj);
|
|
|
return jsonText;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
$('.cps input').on('change',function() {
|
|
|
var cps = $(this).val();
|
|
|
if (cps == '') {layer.msg('请输入分成比例',{icon:2});return false;}
|
|
|
//if (!/^(\d)+(\.\d{0,2})*$/.test(cps)) {layer.msg('请输入正确的数字',{icon:2});return false;}
|
|
|
if (!/^(((\d|[1-9]\d)(\.\d{1,2})?)|100|100.0|100.00)$/.test(cps)) {layer.msg('请输入100以内的数字',{icon:2});return false;}
|
|
|
var that = $(this).closest('.cps'),amount=0,
|
|
|
smoney=that.siblings('.money').text(),
|
|
|
total = $('#total').text()*100,
|
|
|
coom = $.trim(that.siblings('.coop').find('.cooperation :selected').val());
|
|
|
if (coom === 'CPS') {
|
|
|
amount=that.siblings('.amount').text(),
|
|
|
money = ((cps*100*amount*100/10000)/100).toFixed(2),
|
|
|
total = (( total + (money-smoney)*100)/100).toFixed(2);
|
|
|
that.siblings('.money').text(money);
|
|
|
$('#total').text('').text(total);
|
|
|
} else {
|
|
|
|
|
|
}
|
|
|
var jsonText = $(this).parent().siblings('.ids').find('input[name="ids[]"]').val();
|
|
|
var text = set_json_data(Trim(jsonText,"g"),"ratio",cps);
|
|
|
$(this).parent().siblings('.ids').find('input[name="ids[]"]').val(text);
|
|
|
});
|
|
|
|
|
|
$('.cps input').keyup(function(event) {if (event.keyCode ==13) $(this).change();});
|
|
|
$('.cpa input').on('change',function() {
|
|
|
var cpa = $(this).val();
|
|
|
if (cpa == '') {layer.msg('请输入注册单价',{icon:2});return false;}
|
|
|
if (!/^\d+(\.\d{0,2})*$/.test(cpa)) {layer.msg('请输入正确的数字',{icon:2});return false;}
|
|
|
var that = $(this).closest('.cpa'),amount=0,
|
|
|
smoney=that.siblings('.money').text(),
|
|
|
total = $('#total').text()*100,
|
|
|
coom = $.trim(that.siblings('.coop').find('.cooperation :selected').val());
|
|
|
|
|
|
if (coom === 'CPA') {
|
|
|
anumber=that.siblings('.number').text(),
|
|
|
money = (cpa*anumber).toFixed(2),
|
|
|
total = (( total + (money-smoney)*100)/100).toFixed(2);
|
|
|
that.siblings('.money').text(money);
|
|
|
$('#total').text('').text(total);
|
|
|
} else {
|
|
|
// that.siblings('.money').text(0);
|
|
|
// total = (total - (smoney)*100)/100;
|
|
|
//$('#total').text(total);
|
|
|
}
|
|
|
var jsonText = $(this).parent().siblings('.ids').find('input[name="ids[]"]').val();
|
|
|
var text = set_json_data(Trim(jsonText,"g"),"money",cpa);
|
|
|
$(this).parent().siblings('.ids').find('input[name="ids[]"]').val(text);
|
|
|
});
|
|
|
$('.cpa input').keyup(function(event) {if (event.keyCode ==13) $(this).change();});
|
|
|
|
|
|
$('.coop select').on('change',function() {
|
|
|
var val = $.trim($(this).val()),top = $(this).closest('.coop'),
|
|
|
smoney=top.siblings('.money').text(),total = $('#total').text()*100;
|
|
|
if (val == 'CPS') {
|
|
|
var cps = $.trim(top.siblings('.cps').find('input').val()),
|
|
|
amount=top.siblings('.amount').text();
|
|
|
if (cps == '') {cps=0;}
|
|
|
money = ((cps*100 * amount*100/10000)/100).toFixed(2);
|
|
|
total = ((total + (money-smoney)*100)/100).toFixed(2);
|
|
|
top.siblings('.money').text(money);
|
|
|
$('#total').text('').text(total);
|
|
|
} else if (val == 'CPA') {
|
|
|
var cpa = $.trim(top.siblings('.cpa').find('input').val()),
|
|
|
anumber=top.siblings('.number').text();
|
|
|
if (cpa == '') {cpa=0;}
|
|
|
money = (cpa * anumber).toFixed(2);
|
|
|
total = ((total + (money-smoney)*100)/100).toFixed(2);
|
|
|
top.siblings('.money').text(money);
|
|
|
$('#total').text('').text(total);
|
|
|
} else {
|
|
|
layer.msg('误操作',{icon:2});
|
|
|
}
|
|
|
var jsonText = $(this).parent().siblings('.ids').find('input[name="ids[]"]').val();
|
|
|
var text = set_json_data(Trim(jsonText,"g"),"cooperation",val);
|
|
|
$(this).parent().siblings('.ids').find('input[name="ids[]"]').val(text);
|
|
|
});
|
|
|
|
|
|
$('.queren').on('click',function() {
|
|
|
var that = $(this).closest('.op'),
|
|
|
coop = $.trim(that.siblings('.coop').find('.cooperation :selected').val()),
|
|
|
cp=0;
|
|
|
if (coop == 'CPS') {
|
|
|
cp = that.siblings('.cps').find('input').val();
|
|
|
if (cp == '') {layer.msg('请输入分成比例',{icon:2});return false;}
|
|
|
if (!/^(((\d|[1-9]\d)(\.\d{1,2})?)|100|100.0|100.00)$/.test(cp)) {layer.msg('请输入正确的数字',{icon:2});return false;}
|
|
|
} else if (coop == 'CPA') {
|
|
|
cp = that.siblings('.cpa').find('input').val();
|
|
|
if (cp == '') {layer.msg('请输入注册单价',{icon:2});return false;}
|
|
|
if (!/^\d+(\.\d{1,2})*$/.test(cp)) {layer.msg('请输入正确的数字',{icon:2});return false;}
|
|
|
} else {
|
|
|
layer.msg('误操作',{icon:2});
|
|
|
}
|
|
|
if (that.hasClass('disabled')) {return false;}
|
|
|
var target = $(this).attr('url');
|
|
|
that.addClass('disabled').attr('autocomplete','off').prop('disabled',true);
|
|
|
$.post(target,{cp:cp,cooperation:coop}).success(function(data) {
|
|
|
if (data.status == 1) {
|
|
|
layer.msg(data.info,{icon:1,time:2000},function() {
|
|
|
that.removeClass('disabled').prop('disabled',false);
|
|
|
window.location.reload();
|
|
|
});
|
|
|
} else {
|
|
|
layer.msg(data.info,{icon:2},function() {
|
|
|
that.removeClass('disabled').prop('disabled',false);
|
|
|
});
|
|
|
}
|
|
|
});
|
|
|
});
|
|
|
|
|
|
|
|
|
});
|
|
|
</script>
|
|
|
|
|
|
|
|
|
<link rel="stylesheet" type="text/css" href="__CSS__/p_jquery.datetimepicker.css">
|
|
|
<script type="text/javascript" src="__JS__/jquery.datetimepicker.js"></script>
|
|
|
<script type="text/javascript" src="__JS__/20170831/select2.min.js"></script>
|
|
|
<script type="text/javascript">
|
|
|
|
|
|
$().ready(function(){
|
|
|
$("#pagehtml a").on("click",function(event){
|
|
|
event.preventDefault();//使a自带的方法失效,即无法调整到href中的URL(http://www.baidu.com)
|
|
|
var geturl = $(this).attr('href');
|
|
|
$('#data_form').attr('action',geturl);
|
|
|
$('#data_form').submit();
|
|
|
});
|
|
|
$('#sdate').datetimepicker({
|
|
|
lang:'ch',
|
|
|
format:'Y-m-d',
|
|
|
formatDate:'Y-m-d',
|
|
|
scrollMonth:false,
|
|
|
scrollTime:false,
|
|
|
scrollInput:false,
|
|
|
timepicker:false,
|
|
|
maxDate:'{:date("Y-m-d",strtotime("-1 day"))}'
|
|
|
});
|
|
|
|
|
|
$('#edate').datetimepicker({
|
|
|
lang:'ch',
|
|
|
format:'Y-m-d',
|
|
|
formatDate:'Y-m-d',
|
|
|
timepicker:false,
|
|
|
scrollMonth:false,
|
|
|
scrollTime:false,
|
|
|
scrollInput:false,
|
|
|
maxDate:'{:date("Y-m-d",strtotime("-1 day"))}'
|
|
|
});
|
|
|
|
|
|
$('.submit').click(function(){
|
|
|
var sdate = $('#sdate').val();
|
|
|
var edate = $('#edate').val();
|
|
|
// if(sdate =='' || edate ==''){
|
|
|
// layer.msg('请完整时间搜索');
|
|
|
// return false;
|
|
|
// }
|
|
|
if(Date.parse(sdate) > Date.parse(edate)){
|
|
|
layer.msg('开始时间必须小于等于结束时间');
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
var pID = $('#ch_promote_id option:selected').val();
|
|
|
if(pID == '0' && $(this).attr('data-type') == 'sett'){
|
|
|
layer.msg('请选择子渠道');
|
|
|
return false;
|
|
|
}
|
|
|
});
|
|
|
$(".select_gallery").select2();
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
function submitFrom(target){
|
|
|
var validation = true;
|
|
|
$.each($('input[name="ids[]"][type="checkbox"]:checked'),function(){
|
|
|
var coop = $(target).find('.coop .cooperation :selected').val();
|
|
|
switch(coop){
|
|
|
case 'CPS':
|
|
|
var cps = $(target).find('.cps input').val();
|
|
|
if (cps == '') {validation=false; layer.msg('请输入分成比例',{icon:2});return false;}
|
|
|
if (!/^(((\d|[1-9]\d)(\.\d{1,2})?)|100|100.0|100.00)$/.test(cps)) {validation=false;layer.msg('请输入正确的分成比例数字',{icon:2});return false;}
|
|
|
break;
|
|
|
case 'CPA':
|
|
|
var cpa = $(target).find('.cpa input').val();
|
|
|
if (cpa == '') {validation=false;layer.msg('请输入注册单价',{icon:2});return false;}
|
|
|
if (!/^\d+(\.\d{1,2})*$/.test(cpa)) {validation=false;layer.msg('请输入正确的注册单价数字',{icon:2});return false;}
|
|
|
break;
|
|
|
default:
|
|
|
validation=false;layer.msg('未知错误',{icon:2});return false;
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
var json_text = Trim($(this).val(),"g");
|
|
|
var json_obj = eval("("+json_text+")");
|
|
|
var bind_coin = $('input[name="bind_coin"]:checked').val();
|
|
|
json_obj["bind_coin_status"] = bind_coin?bind_coin:0;
|
|
|
var json_text = JSON.stringify(json_obj);
|
|
|
$(this).val(json_text);
|
|
|
});
|
|
|
|
|
|
|
|
|
if(validation){
|
|
|
var text = $('.ids').serialize();
|
|
|
var url = "{:U('generatesub',array('timestart'=>I('timestart'),'timeend'=>I('timeend')))}";
|
|
|
$.post(url,text).success(function(result){
|
|
|
if(result.status == 1){
|
|
|
layer.msg(result.info,{icon:1,time:2000},function() {
|
|
|
//that.removeClass('disabled').prop('disabled',false);
|
|
|
window.location.href = result.url
|
|
|
});
|
|
|
}else{
|
|
|
layer.msg(result.info,{icon:2});
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function Trim(str,is_global)
|
|
|
{
|
|
|
var result;
|
|
|
result = str.replace(/(^\s+)|(\s+$)/g,"");
|
|
|
if(is_global.toLowerCase()=="g")
|
|
|
{
|
|
|
result = result.replace(/\s/g,"");
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
function details(id,number){
|
|
|
layer.open({
|
|
|
type: 2,
|
|
|
title: '结算详情',
|
|
|
shadeClose: true,
|
|
|
shade: 0.3,
|
|
|
area: ['60%', '50%'],
|
|
|
content: '/index.php?s=/Home/Query/son_details/promote_id/'+id+'/settlement_number/'+number//iframe的url
|
|
|
});
|
|
|
}
|
|
|
|
|
|
function tixian(settlement_number) {
|
|
|
$.ajax({
|
|
|
url: '{:U("son_apply_withdraw")}',
|
|
|
type: 'POST',
|
|
|
dataType: 'json',
|
|
|
data: {'settlement_number': settlement_number},
|
|
|
success:function(data){
|
|
|
if(data.status==0){
|
|
|
layer.msg('请勿重复操作', {icon: 5});
|
|
|
|
|
|
}else{
|
|
|
layer.msg('申请成功', {icon: 6});
|
|
|
setTimeout(function(){location.reload();},2000);
|
|
|
}
|
|
|
},
|
|
|
error:function(){
|
|
|
layer.msg('服务器故障', {icon: 4});
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
</script>
|
|
|
</block>
|