<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>