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.

763 lines
32 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.

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" type="text/css" href="__CSS__/base.css" media="all">
<link rel="stylesheet" type="text/css" href="__CSS__/common.css" media="all">
<link rel="stylesheet" type="text/css" href="__CSS__/style.css" media="all">
<link rel="stylesheet" type="text/css" href="__CSS__/default_color.css" media="all">
<link href="__STATIC__/datetimepicker/css/datetimepicker.css" rel="stylesheet" type="text/css">
<link href="__STATIC__/datetimepicker/css/dropdown.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="__CSS__/select2.min.css" type="text/css" />
<script type="text/javascript" src="__STATIC__/jquery-2.0.3.min.js"></script>
<script type="text/javascript" src="__JS__/select2.min.js"></script>
<script type="text/javascript" src="__STATIC__/layer3/layer.js"></script>
<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__/juicer-min.js" type="text/javascript"></script>
</head>
<style>
html {
min-width: 100%;
}
body {
padding: 0px 0px 150px;
width: 960px;
margin: auto;
}
.tabcon1711 table {
width: 480px;
}
table {
margin: auto;
}
.hidebox {
display: none;
}
.r {
width: 300px;
}
.l {
width: 180px;
}
.select2-container--default .select2-selection--single {
color: #000;
resize: none;
border-width: 1px;
border-style: solid;
border-color: #a7b5bc #ced9df #ced9df #a7b5bc;
box-shadow: 0px 3px 3px #F7F8F9 inset;
height: 35px;
height: 28px;
border-radius: 3px;
font-size: 12px;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
line-height: 35px;
line-height: 28px;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
height: 26px;
}
.select2-container--default .select2-search--dropdown .select2-search__field {
height: 26px;
line-height: 26px;
font-size: 12px;
}
.select2-results__option[aria-selected] {
font-size: 12px;
}
.input-list,
.i_list {
float: left;
margin: 0;
}
</style>
<body>
<!-- <div style="width: 100%;line-height: 100px;font-size: 25px;font-weight: 600;text-align: center;">
海南万盟天下科技有限公司
</div> -->
<div style="display: flex;margin: auto;">
<div class="tab-content tabcon1711" id="firstPartBaseInfo">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="l">甲方:</td>
<td class="r">
<div class="input-list input-list-game search_label_rehab">
<select id="first_partner_id" name="partner_id" class="select_gallery">
<option value="{$data['first_party_info']['id']}" selected>{$data['first_part_company']}</option>
</select>
</div>
</td>
</tr>
<tbody id="first_part_bser_info_show">
<tr>
<td class="l">联系人:</td>
<td class="r">
<input type="text" class="txt" name="link_man" value="" placeholder="请输入联系人">
</td>
</tr>
<tr>
<td class="l">联系电话:</td>
<td class="r">
<input type="text" class="txt" name="link_phone" value="" placeholder="请输入联系电话">
</td>
</tr>
<tr>
<td class="l">邮寄地址:</td>
<td class="r">
<input type="text" class="txt" name="address" value="" placeholder="请输入地址">
</td>
</tr>
<tr>
<td class="l">公司税号:</td>
<td class="r">
<input type="text" class="txt" name="company_tax_no" value="" placeholder="请输入公司税号">
</td>
</tr>
</tbody>
</tbody>
</table>
</div>
<div class="tab-content tabcon1711" id="secondPartBaseInfo">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="l">乙方:</td>
<td class="r">
<div class="input-list input-list-game search_label_rehab">
<select id="second_partner_id" name="partner_id" class="select_gallery">
<option value="{$data['second_party_info']['id']}" selected>{$data['second_part_company']}</option>
</select>
</div>
</td>
</tr>
<tbody id="second_part_bser_info_show">
<tr>
<td class="l">联系人:</td>
<td class="r">
<input type="text" class="txt" name="link_man" value="" disabled="disabled"
placeholder="请先选择合作公司">
</td>
</tr>
<tr>
<td class="l">联系电话:</td>
<td class="r">
<input type="text" class="txt" name="link_phone" value="" disabled="disabled"
placeholder="请先选择合作公司">
</td>
</tr>
<tr>
<td class="l">邮寄地址:</td>
<td class="r">
<input type="text" class="txt" name="address" value="" disabled="disabled"
placeholder="请先选择合作公司">
</td>
</tr>
<tr>
<td class="l">公司税号:</td>
<td class="r">
<input type="text" class="txt" name="company_tax_no" value="" disabled="disabled"
placeholder="请先选择合作公司">
</td>
</tr>
</tbody>
</tbody>
</table>
</div>
</div>
<div style="padding: 30px 0px 10px;display: block;height:30px;">
<div class="input-list input-list-server search_label_rehab">
<p style="font-size: 20px;font-weight: 600;">支付给:<spen style="margin-left: 15px;font-size: 16px;">{$company}
</spen>
</p>
</div>
</div>
<div class="search_list" style="display: block;line-height: 30px;height: 10px;">
<div class="input-list input-list-server search_label_rehab">
<p>结算订单的月份:</p>
</div>
<div class="input-list" style="margin-left: 20px;">
<input type="text" readonly class="" value="{$statement_begin_time}" placeholder="开始时间" />
&nbsp;-&nbsp;
<div class="input-append date" style="display:inline-block">
<input type="text" readonly value="{$statement_end_time}" placeholder="结束时间" />
<span class="add-on"><i class="icon-th"></i></span>
</div>
</div>
</div>
<div class="data_list box_mt" style="margin-top: 40px;">
<div class="">
<table>
<!-- 表头 -->
<thead>
<tr>
<th rowspan="2" style="border-right: solid 1px #b6cad2;">结算时间</th>
<th rowspan="2" style="border-right: solid 1px #b6cad2;">产品</th>
<th rowspan="2" style="border-right: solid 1px #b6cad2;">平台总额</th>
<th colspan=2 style="border-right: solid 1px #b6cad2;">分成比例</th>
<th rowspan="2" style="border-right: solid 1px #b6cad2;">渠道费率</th>
<th rowspan="2" style="border-right: solid 1px #b6cad2;">税费费率</th>
<th>结算金额</th>
</tr>
<tr>
<th style="border-right: solid 1px #b6cad2;min-width: 50px;">甲方</th>
<th style="min-width: 50px;">乙方</th>
<th style="font-size: 10px;font-weight: 400;max-width: 100px;line-height: 1.2;">
结算金额=平台总额*1-渠道费)*分成比例*(1-税费费率)</th>
</tr>
</thead>
<!-- 列表 -->
<tbody id="statementInit" class="">
<tr style="height: 100px;">
<td colspan=8>
请先选择生成条件后点击生成对账数据
</td>
</tr>
</tbody>
<tbody id="statementShow">
</tbody>
</table>
</div>
</div>
<div id="partpatinfo" style="display: flex;margin: auto;">
<div class="tab-content tabcon1711" id="skf_payinfo">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="l">收款方名称:</td>
<td class="r">
<input type="text" class="txt" name="" disabled="disabled" placeholder="请先选择支付给谁" value="">
</td>
</tr>
<tr>
<td class="l">银行账号:</td>
<td class="r">
<input type="text" class="txt" name="" value="" disabled="disabled" placeholder="请先选择支付给谁">
</td>
</tr>
<tr>
<td class="l">开户行:</td>
<td class="r">
<input type="text" class="txt" name="password" value="" disabled="disabled"
placeholder="请先选择支付给谁">
</td>
</tr>
</tbody>
</table>
</div>
<div class="tab-content tabcon1711" id="fkf_payinfo">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="l">付款方名称:</td>
<td class="r">
<input type="text" class="txt" name="" value="" disabled="disabled" placeholder="请先选择支付给谁">
</td>
</tr>
<tr>
<td class="l">银行账号:</td>
<td class="r">
<input type="text" class="txt" name="password" value="" disabled="disabled"
placeholder="请先选择支付给谁">
</td>
</tr>
<tr>
<td class="l">开户行:</td>
<td class="r">
<input type="text" class="txt" name="" value="" disabled="disabled" placeholder="请先选择支付给谁">
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="search_list" style="display:flex;justify-content:flex-end;width:960px;">
<div class="input-list" style="margin-left: 30px;float: right;">
<a class="sch-btn" href="javascript:;" id="createStatement" style="width: 150px;">确认修改</a>
</div>
</div>
<script type="text/html" id="partbasetpl">
<tr>
<td class="l">联系人</td>
<td class="r">
<input type="text" class="txt normalchange" data-change="${type}.link_man" name="link_man" value="${link_man|nonull}" placeholder="请输入联系人">
</td>
</tr>
<tr>
<td class="l">联系电话</td>
<td class="r">
<input type="text" class="txt normalchange" name="link_phone" data-change="${type}.link_phone" value="${link_phone|nonull}" placeholder="请输入联系电话">
</td>
</tr>
<tr>
<td class="l">邮寄地址</td>
<td class="r">
<input type="text" class="txt normalchange" name="address" data-change="${type}.address" value="${address|nonull}" placeholder="请输入地址">
</td>
</tr>
<tr>
<td class="l">公司税号</td>
<td class="r">
<input type="text" class="txt normalchange" name="company_tax_no" data-change="${type}.company_tax_no" value="${company_tax_no|nonull}" placeholder="请输入公司税号">
</td>
</tr>
</script>
<script type="text/html" id="partpaytpl">
<div class="tab-content tabcon1711" id="skf_payinfo">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="l">收款方名称:</td>
<td class="r">
<input type="text" class="txt normalchange" placeholder="请输入收款方名称" data-change="${'skf'|setChange}.payee_name" name="payee_name" value="${skfdata.payee_name|nonull}">
</td>
</tr>
<tr>
<td class="l">银行账号</td>
<td class="r">
<input type="text" class="txt normalchange" placeholder="请输入银行账号" name="bank_account" data-change="${'skf'|setChange}.bank_account" value="${skfdata.bank_account|nonull}">
</td>
</tr>
<tr>
<td class="l">开户行</td>
<td class="r">
<input type="text" class="txt normalchange" placeholder="请输入开户行" data-change="${'skf'|setChange}.opening_bank" value="${skfdata.opening_bank|nonull}" name="opening_bank">
</td>
</tr>
</tbody>
</table>
</div>
<div class="tab-content tabcon1711" id="fkf_payinfo">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="l">付款方名称:</td>
<td class="r">
<input type="text" class="txt normalchange" placeholder="请输入付款方名称" data-change="${'fkf'|setChange}.payee_name" name="payee_name" value="${fkfdata.payee_name|nonull}">
</td>
</tr>
<tr>
<td class="l">银行账号</td>
<td class="r">
<input type="text" class="txt normalchange" placeholder="请输入银行账号" data-change="${'fkf'|setChange}.bank_account" name="bank_account" value="${fkfdata.bank_account|nonull}" >
</td>
</tr>
<tr>
<td class="l">开户行</td>
<td class="r">
<input type="text" class="txt normalchange" placeholder="请输入开户行" data-change="${'fkf'|setChange}.opening_bank" value="${fkfdata.opening_bank|nonull}" name="opening_bank">
</td>
</tr>
</tbody>
</table>
</div>
</script>
<script type="text/html" id="statementTpl">
{@each list as it,index}
<tr>
<td>${it.statement_begin_time}~${it.statement_end_time}</td>
<td>${it.game_name}</td>
<td>${it.pay_amount}</td>
{@if it.statement_type==0}
<td><input type="text" class="txt statementchange" name="first_ratio" data-index ="${index}" data-change="statement_info[${index}]['first_ratio']" value="${it.first_ratio}" style="width: 40px;">%</td>
<td><input type="text" class="txt statementchange" name="second_ratio" data-index ="${index}" data-change="statement_info[${index}]['second_ratio']" value="${it.second_ratio}" style="width: 40px;">%</td>
<td><input type="text" class="txt statementchange" name="promote_ratio" data-index ="${index}" data-change="statement_info[${index}]['promote_ratio']" value="${it.promote_ratio}" style="width: 40px;">%</td>
<td><input type="text" class="txt statementchange" name="fax_ratio" data-index ="${index}" data-change="statement_info[${index}]['fax_ratio']" value="${it.fax_ratio}" style="width: 40px;">%</td>
{@else}
<td></td>
<td></td>
<td></td>
<td></td>
{@/if}
<td>${it.sum_money}</td>
</tr>
{@/each}
<tr>
<td>合计</td>
<td></td>
<td>${count.pay_amount}</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>${count.sum_money}</td>
</tr>
<tr>
<td colspan=7>本月分成总金额(人民币大写):</td>
<td>${count.sum_money|number_chinese}</td>
</tr>
</script>
<script>
$(function () {
TPLSHOW.juicerInit();
$(".select_gallery").select2();
$('#time_start').datetimepicker({
format: 'yyyy-mm-dd',
language: "zh-CN",
minView: 2,
autoclose: true
});
$('#datetimepicker').datetimepicker({
format: 'yyyy-mm-dd',
language: "zh-CN",
minView: 2,
autoclose: true,
pickerPosition: 'bottom-left'
})
EVENT.changeCompany();
EVENT.createStatement();
$("#first_partner_id").change();
// $("#second_partner_id").change();
});
//基础类
var PUBLIC = {
postData(url, data, callback) {
$.ajax({
url: url,
data: data,
type: "post",
dataType: "json",
success: function (data) {
callback(data)
}
})
},
floatAdd(a,b){
return Math.round(a*100+b*100)/100;
},
floatCut(a,b){
return Math.round(a*100-b*100)/100;
},
CompanyKeyName:{
id:"公司表id",
partner:"公司名称",
link_man:'联系人',
link_phone:"联系电话",
address:'邮寄地址',
company_tax_no:'公司税号',
payee_name:'名称',
bank_account:"银行账号",
opening_bank:"开户行"
},
checkCompanyKey(type,key){
//获取公司名
var company = '';
if(key == "payee_name" || key == "bank_account" || key == "opening_bank"){
if((DATAOBJ.statement_type == 0 && type == "first_party_info") || (DATAOBJ.statement_type == 1 && type == "second_party_info")){
company = "收款方";
}
if((DATAOBJ.statement_type == 0 && type == "second_party_info")|| (DATAOBJ.statement_type == 1 && type == "first_party_info")){
company = "付款方";
}
}else{
if(type == "first_party_info"){
company = "甲方";
}else{
company = "乙方";
}
}
//获取键名
try {
var keyname = company+PUBLIC.CompanyKeyName[key];
} catch (error) {
var keyname = false;
}
//验证
if(DATAOBJ[type][key] ===''){
layer.msg(keyname+"不能为空");
return false;
}
if(key == "link_phone" && !CHECK.mobile.test(DATAOBJ[type][key])){
layer.msg(keyname+"格式错误");
return false;
}
if(key == "bank_account" && !CHECK.BankNo.test(DATAOBJ[type][key])){
layer.msg(keyname+"格式错误");
return false;
}
return true;
},
}
//数据类
var DATAOBJ = {$data|json_encode=###,JSON_UNESCAPED_UNICODE};
//事件类
var EVENT = {
changeCompany() {
$("#first_partner_id").on("change", function () {
TPLSHOW.firstPartInfo(DATAOBJ.first_party_info);
TPLSHOW.secondPartInfo(DATAOBJ.second_party_info);
TPLSHOW.showPartPayInfo();
TPLSHOW.showStatementList(true);
})
$("#first_partner_id").on("change", function () {
TPLSHOW.secondPartInfo(DATAOBJ.second_party_info);
})
},
createStatement() {
$("#createStatement").on("click", function () {
//验证信息
for (const key in DATAOBJ) {
if (DATAOBJ[key] === false) {
layer.msg('页面中的参数均是必填项目,请先填满');
return false;
}
}
//验证甲方信息
for (const key in DATAOBJ.first_party_info) {
var t = DATAOBJ.first_party_info;
var flag = PUBLIC.checkCompanyKey("first_party_info",key);
if(!flag){
return flag;
}
}
//乙方
for (const key in DATAOBJ.second_party_info) {
var t = DATAOBJ.second_party_info;
var flag = PUBLIC.checkCompanyKey("second_party_info",key);
if(!flag){
return flag;
}
}
layer.load(2);
$("#createStatement").off("click");//自我解绑
PUBLIC.postData("{:U('doAddCpStatement',['id'=>$id])}",DATAOBJ,function(data){
if(data.code == 0){
layer.closeAll('loading');
layer.msg('修改成功');
setTimeout(function(){
window.parent.reload();
},350);
}else{
alert("修改失败,请联系管理员")
}
});
//发送添加请求
})
},
normalchange() {
$(".normalchange").off("blur");
$(".normalchange").on("blur", function () {
var val = $(this).val();
var index = $(this).data("change");
var str = "DATAOBJ." + index + "='" + val + "';";
eval(str);
if (val !== eval("YDATAOBJ." + index)) {
isedit = true;
}
})
},
statementchange() {
$(".statementchange").off("blur");
$(".statementchange").on("blur",function(){
var sort = $(this).data("change");
var val = $(this).val();
var vdata = eval("DATAOBJ."+sort);//原先值
var dom = $(this);
if(!CHECK.number.test(val)){
layer.msg('结算单中的罚款和税率必须是数字,且不能为空');
dom.val(vdata);
return false;
}
var str = "DATAOBJ."+sort+"='"+val+"';";
if(sort != 'fine'){
if(val > 100 || val < 0){
layer.msg('结算单中的税率不允许大于100和小于0');
dom.val(vdata);
return false;
}
eval(str);
var index = $(this).data("index");
var td = DATAOBJ.statement_info[index];
if( $(this).attr("name") == "first_ratio"){
td['second_ratio'] = 100-val;
}
if( $(this).attr("name") == "second_ratio"){
td['first_ratio'] = 100-val;
}
if(DATAOBJ.statement_type == 0){
var ratio = td['first_ratio']/100;
}else{
var ratio = td['second_ratio']/100;
}
DATAOBJ.statement_count['sum_money'] = PUBLIC.floatCut(DATAOBJ.statement_count['sum_money'],td['sum_money']);
td['sum_money'] = Math.round((td['pay_amount']*(100-td['promote_ratio'])/100*ratio*(100-td['fax_ratio'])/100)* 100) / 100 ;
DATAOBJ.statement_count['sum_money']=PUBLIC.floatAdd(DATAOBJ.statement_count['sum_money'],td['sum_money']);
}else{
DATAOBJ.fine = Math.round(DATAOBJ.fine * 100) / 100 ;
if(!CHECK.money.test(val)){
layer.msg('罚款金额格式错误');
$(this).val(DATAOBJ.fine);
return false;
}
if(val > DATAOBJ.statement_count['sum_money']){
layer.msg('罚款金额过大,总计不允许为负数');
$(this).val(DATAOBJ.fine);
return false;
}
console.log(str);
DATAOBJ.statement_count['sum_money'] =PUBLIC.floatAdd(DATAOBJ.statement_count['sum_money'],DATAOBJ.fine);
DATAOBJ.statement_count['pay_amount'] = PUBLIC.floatAdd(DATAOBJ.statement_count['pay_amount'],DATAOBJ.fine);
eval(str);
DATAOBJ.statement_count['sum_money'] =PUBLIC.floatCut(DATAOBJ.statement_count['sum_money'],DATAOBJ.fine);
DATAOBJ.statement_count['pay_amount'] = PUBLIC.floatCut(DATAOBJ.statement_count['pay_amount'],DATAOBJ.fine);
}
TPLSHOW.showStatementList(true);
})
}
}
var CHECK = {
number: /^\d+(\.{1}\d+)?$/,
mobile: /^1[3456789]\d{9}$/,
BankNo: /^([1-9]{1})\d{10,19}$/,
money: /((^[1-9]\d*)|^0)(\.\d{0,2}){0,1}$/
}
//
var TPLSHOW = {
juicerInit() {
var nonull = function (data) {
if (!data) {
return '';
}
return data;
};
var setChange = function (typestr) {
if (DATAOBJ.statement_type == 0) {
if (typestr == "fkf") {
return 'second_party_info';
} else {
return 'first_party_info';
}
} else {
if (typestr == "fkf") {
return 'first_party_info';
} else {
return 'second_party_info';
}
}
};
var number_chinese = function (str) {
var num = parseFloat(str);
var strOutput = "",
strUnit = '仟佰拾亿仟佰拾万仟佰拾元角分';
num += "00";
var intPos = num.indexOf('.');
if (intPos >= 0) {
num = num.substring(0, intPos) + num.substr(intPos + 1, 2);
}
strUnit = strUnit.substr(strUnit.length - num.length);
for (var i = 0; i < num.length; i++) {
strOutput += '零壹贰叁肆伍陆柒捌玖'.substr(num.substr(i, 1), 1) + strUnit.substr(i, 1);
}
return strOutput.replace(/零角零分$/, '整').replace(/零[仟佰拾]/g, '零').replace(/零{2,}/g, '零').replace(/零([亿|万])/g, '$1').replace(/零+元/, '元').replace(/亿零{0,3}万/, '亿').replace(/^元/, "零元")
}
juicer.register('nonull', nonull);
juicer.register('setChange', setChange);
juicer.register('number_chinese', number_chinese);
},
//
firstPartInfo(data) {
var tpl = $("#partbasetpl").html();
var html = juicer(tpl, data);
$("#first_part_bser_info_show").html(html);
TPLSHOW.pushStatementTypeOption();
},
secondPartInfo(data) {
var tpl = $("#partbasetpl").html();
var html = juicer(tpl, data);
$("#second_part_bser_info_show").html(html);
TPLSHOW.pushStatementTypeOption();
},
//支付给公司
pushStatementTypeOption() {
EVENT.normalchange();
},
//支付信息显示
showPartPayInfo() {
var data = {};
if (DATAOBJ.statement_type !== false) {
if (DATAOBJ.statement_type == 1) {
data.fkfdata = DATAOBJ.first_party_info;
data.skfdata = DATAOBJ.second_party_info;
} else {
data.skfdata = DATAOBJ.first_party_info;
data.fkfdata = DATAOBJ.second_party_info;
}
data.type = DATAOBJ.statement_type;
} else {
data.skfdata = {};
data.fkfdata = {};
}
var tpl = $("#partpaytpl").html();
var html = juicer(tpl, data);
$("#partpatinfo").html(html);
EVENT.normalchange();
},
//订单信息显示
showStatementList(flag) {
if (flag) {
var data = { list: DATAOBJ.statement_info, count: DATAOBJ.statement_count, fine: DATAOBJ.fine };
console.log(data);
$("#statementInit").addClass("hidebox");
var tpl = $("#statementTpl").html();
var html = juicer(tpl, data);
$("#statementShow").html(html);
EVENT.statementchange();
}
}
}
</script>
</body>
</html>