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.

453 lines
18 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/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">&nbsp;&nbsp;</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>
&nbsp;&nbsp;&nbsp;&nbsp;
<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>