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.

799 lines
33 KiB
HTML

5 years ago
<!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;
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="0" selected>海南万盟天下科技有限公司</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="{$company_id}" selected>{$company_name}</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="position: fixed;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>
<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: 30px;">%</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: 30px;">%</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: 30px;">%</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: 30px;">%</td>
<td>${it.sum_money}元</td>
</tr>
{@/each}
<tr>
<td></td>
<td>罚款</td>
<td><input type="text" class="txt statementchange" name="fine" data-change="fine" value="${fine}" style="width: 50px;"></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>${fine}元</td>
</tr>
<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)
}
})
},
deepCompare(x, y) {
var i, l, leftChain, rightChain;
function compare2Objects(x, y) {
var p;
if (isNaN(x) && isNaN(y) && typeof x === 'number' && typeof y === 'number') {
return true;
}
if (x === y) {
return true;
}
if ((typeof x === 'function' && typeof y === 'function') ||
(x instanceof Date && y instanceof Date) ||
(x instanceof RegExp && y instanceof RegExp) ||
(x instanceof String && y instanceof String) ||
(x instanceof Number && y instanceof Number)) {
return x.toString() === y.toString();
}
if (!(x instanceof Object && y instanceof Object)) {
return false;
}
if (x.isPrototypeOf(y) || y.isPrototypeOf(x)) {
return false;
}
if (x.constructor !== y.constructor) {
return false;
}
if (x.prototype !== y.prototype) {
return false;
}
if (leftChain.indexOf(x) > -1 || rightChain.indexOf(y) > -1) {
return false;
}
for (p in y) {
if (y.hasOwnProperty(p) !== x.hasOwnProperty(p)) {
return false;
} else if (typeof y[p] !== typeof x[p]) {
return false;
}
}
for (p in x) {
if (y.hasOwnProperty(p) !== x.hasOwnProperty(p)) {
return false;
} else if (typeof y[p] !== typeof x[p]) {
return false;
}
switch (typeof (x[p])) {
case 'object':
case 'function':
leftChain.push(x);
rightChain.push(y);
if (!compare2Objects(x[p], y[p])) {
return false;
}
leftChain.pop();
rightChain.pop();
break;
default:
if (x[p] !== y[p]) {
return false;
}
break;
}
}
return true;
}
if (arguments.length < 1) {
return true;
}
for (i = 1, l = arguments.length; i < l; i++) {
leftChain = []; //Todo: this can be cached
rightChain = [];
if (!compare2Objects(arguments[0], arguments[i])) {
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;
if (t[key] === '') {
layer.msg('甲方信息不全,请先补全 code:' + key);
return false;
}
if (key == "link_phone" && !CHECK.mobile.test(t[key])) {
layer.msg('甲方联系人手机号格式错误');
return false;
}
if (key == "bank_account" && !CHECK.BankNo.test(t[key])) {
layer.msg('甲方银行卡号格式错误');
return false;
}
}
//乙方
for (const key in DATAOBJ.second_party_info) {
var t = DATAOBJ.second_party_info;
if (!t[key] || t[key] == '') {
layer.msg('乙方信息不全,请先补全 code:' + key);
return false;
}
if (key == "link_phone" && !CHECK.mobile.test(t[key])) {
layer.msg('乙方联系人手机号格式错误');
return false;
}
if (key == "bank_account" && !CHECK.BankNo.test(t[key])) {
layer.msg('乙方银行卡号格式错误');
return false;
}
}
console.log(DATAOBJ);
layer.load(2);
$("#createStatement").off("click");//自我解绑
5 years ago
PUBLIC.postData("{:U('doAddCpStatement',['id'=>$id])}",DATAOBJ,function(data){
if(data.code == 0){
5 years ago
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();
if (!CHECK.number.test(val)) {
layer.msg('结算单中的罚款和税率必须是数字');
$(this).val(0);
return false;
}
var str = "DATAOBJ." + sort + "='" + val + "';";
if (sort != 'fine') {
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'] -= td['sum_money'];
td['sum_money'] = Math.floor((td['pay_amount'] * (100 - td['promote_ratio']) / 100 * ratio * (100 - td['fax_ratio']) / 100) * 100) / 100;
DATAOBJ.statement_count['sum_money'] += (td['sum_money'] - 0);
} else {
DATAOBJ.fine = Math.floor(DATAOBJ.fine * 100) / 100;
if (val > DATAOBJ.statement_count['sum_money']) {
layer.msg('罚款金额过大,总计不允许为负数');
$(this).val(DATAOBJ.fine);
return false;
}
DATAOBJ.statement_count['sum_money'] = (DATAOBJ.statement_count['sum_money'] - 0 + DATAOBJ.fine);
DATAOBJ.statement_count['pay_amount'] = (DATAOBJ.statement_count['pay_amount'] - 0 + DATAOBJ.fine);
eval(str);
DATAOBJ.statement_count['sum_money'] = DATAOBJ.statement_count['sum_money'] - DATAOBJ.fine;
DATAOBJ.statement_count['pay_amount'] = DATAOBJ.statement_count['pay_amount'] - DATAOBJ.fine;
}
DATAOBJ.statement_count['pay_amount'] = Math.floor(DATAOBJ.statement_count['pay_amount'] * 100) / 100;
DATAOBJ.statement_count['sum_money'] = Math.floor(DATAOBJ.statement_count['sum_money'] * 100) / 100;
TPLSHOW.showStatementList(true);
})
}
}
var CHECK = {
number: /^\d+(\.{1}\d+)?$/,
mobile: /^1[3456789]\d{9}$/,
BankNo: /^([1-9]{1})(\d{15}|\d{18})$/,
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>