var winloss = 0; // 已实现盈亏
var netFund = 0; // 初保账户
var vmFund = 0; // 追保账户
var transferOutMoney = 0; // 转出金额
const cardInputMgr = (new function () {
var _inited = 0, _inputFlag = 0;
if (page.changeBeforeConfirm) {
_inputFlag = page.IsBankOnlyDropDown ? 1 : page.OpenBankCard && !page.OpenBankId ? 4 : 3;
}
var self = this;
function __init() {
if (_inputFlag) {
let $html = $('
').html($('#cardInputTpl').html());
let html = $html.children(_inputFlag === 4 ? '.input' : '.select').html();
$('.card-input-wrap').html(html.trim());
}
self.updateOptions();
}
this.init = function () {
__init();
_inited = 1;
};
this.updateOptions = function () {
if (!(_inputFlag & 1)) return;
let clientId = $("#ClientId").val();
let direction = $("#Direction").val();
$('#OpenBankId').html("");
clientId && main.post("/client/GetValidBankCard", { ClientId: clientId, Direction: direction }, { waitMe: false }).done(function (resp) {
let html = resp.obj.reduce((s, cur) => {
return s += ``;
}, "");
$('#OpenBankId').html(html).val(page.OpenBankId);
$('#OpenBankUser').html("");
});
};
this.onBankIdChange = function () {
if (_inited && _inputFlag && _inputFlag < 4) {
let $s = $("#OpenBankId").find(":selected");
$("#OpenBankCard").val($s.text() || '');
$("#OpenBank").val($s.data("bank") || '');
$("#OpenBankUser").html($s.data("use") || '');
}
};
this.changeInputType = function (forceSelect) {
if (!_inited || forceSelect && _inputFlag < 4) return;
if (_inputFlag === 4) {
_inputFlag = 3;
__init();
}
else if (_inputFlag === 3) {
_inputFlag = 4;
__init();
}
};
this.toggle = function (blShow) {
$('.card-input-wrap').closest('.form-group').toggle(blShow);
};
this.checkSubmit = function () {
if ($("#Direction").val() === "出金") {
if (_inputFlag === 4) {
return $("#OpenBankCard").val() || main.message("请填写银行卡号!");
} else if (_inputFlag) {
return $("#OpenBankId").val() || main.message("请选择银行卡号!");
}
}
return true;
};
});
const moneyInputMgr = (new function () {
var _moneyEle, _moneyStrEle;
//转换成财务计数
function cc(s) {
if (/[^0-9.]/.test(s)) {
main.message("金额不能小于0");
return "";
}
s = s.replace(/^(\d*)$/, "$1.");
s = (s + "00").replace(/(\d*\.\d\d)\d*/, "$1");
s = s.replace(".", ",");
var re = /(\d)(\d{3},)/;
while (re.test(s))
s = s.replace(re, "$1,$2");
s = s.replace(/,(\d\d)$/, ".$1");
return s.replace(/^\./, "0.")
};
//转换为大写金额
function toAmountMoney(n) {
var unit = "千百拾亿千百拾万千百拾元角分", str = "";
var p = n.indexOf('.');
if (p < 0) {
n += '00';
} else {
n = _.trimStart(n.substring(0, p) + n.substr(p + 1, 2).padEnd(2, '0'), '0')
}
unit = unit.substr(unit.length - n.length);
for (var i = 0; i < n.length; i++)
str += '零壹贰叁肆伍陆柒捌玖'.charAt(n.charAt(i)) + unit.charAt(i);
return str.replace(/零(千|百|拾|角)/g, "零").replace(/(零)+/g, "零").replace(/零(万|亿|元)/g, "$1").replace(/(亿)万|壹(拾)/g, "$1$2").replace(/^元零?|零分/g, "").replace(/元$/g, "元");
}
function changeForm(s) {
let arr = s.split(",");
let newArr = toAmountMoney(arr.join(""));
$("#MoneyStr").next().html(newArr);
$("#MoneyStr").val(arr.join(""));
};
this.onInput = function () {
changeForm(_moneyEle.value = _moneyStrEle.value || '');
};
this.onChange = function () {
_moneyStrEle.value = cc(_moneyStrEle.value)
};
this.onFocus = function () {
var moneyStr = $("#MoneyStr").val().replace(/,/g, "");
$("#MoneyStr").val(moneyStr);
};
this.init = function () {
_moneyEle = document.getElementById('Money');
_moneyStrEle = document.getElementById('MoneyStr');
FastVue.numberInput(_moneyStrEle);
changeForm(_moneyEle.value);
};
});
const currencyInputMgr = (new function () {
this.updateOptions = function () {
let happenDate = $("#HappenDate").val();
main.post("/Currency/getCurrencyList?happenDate=" + happenDate).done(function (resp) {
let html = resp.obj.reduce((s, cur) => {
return s += ``;
}, "");
$('#CurrencyCode').html(html);
$('#CurrencyCode').val(page.currencyCode);
});
};
});
//------
function checkSubmitData() {
if (!$("#ClientId").val()) {
return main.message("请选择出入金客户!");
}
if (!$("#HappenDate").val()) {
return main.message("请设置出入金时间!");
}
if (!$("#Money").val()) {
return main.message("请设置出入金金额!");
}
else {
$("#Money").val($("#Money").val().replace(',', ''));
}
let direction = $("#Direction").val();
if (direction==="划转") {
var transfer_out_account = $("#TransferOutAccount").val();
var transfer_in_account = $("#TransferInAccount").val();
if (transfer_out_account === transfer_in_account) {
return main.message("转出科目与转入科目不能相同!");
}
var money = parseFloat($("#Money").val());
if (money <=0) {
return main.message("转出金额必须大于0!");
}
}
return cardInputMgr.checkSubmit();
}
function saveentryexit() {
if (!checkSubmitData()) return false;
//var openBankId= $("#OpenBankId").val();
//if (!openBankId) {
// $("#OpenBankCard").val("");
//}
var data = $("#entryexitEditForm").serialize();
var eventTarget = $(event.target).prop('disabled', true);
main.post("/entryexit/entryexitEditJson", data).done(function (res) {
window.location.href = "/entryexit/entryexitview?enid=" + res.obj.EncryptId;
layer.closeMe('reloadentryexit');
}).always(function () {
eventTarget.prop('disabled', false);
});
}
function setDirection(isInit) {
!isInit && cardInputMgr.changeInputType(true);
let direction = $("#Direction").val();
$(".changeInputBtn").toggleClass("hide", ["出金", "应付"].includes(direction));
if (direction === "入金") {
$("#cash_type_container").show(); // 显示资金类型
} else {
$("#cash_type_container").hide(); // 隐藏资金类型
}
if (direction === "划转") {
$("#transfer_out_container").show();
$("#transfer_in_container").show();
$("#transferAll").show();
} else {
$("#transfer_out_container").hide();
$("#transfer_in_container").hide();
$("#transferAll").hide();
}
cardInputMgr.toggle(["入金", "出金"].includes(direction));
cardInputMgr.updateOptions();
}
// 全部转出
function transferAll() {
$("#MoneyStr").val(transferOutMoney);
moneyInputMgr.onInput();
}
function setClientCash() {
var clientId = $("#ClientId").val();
if (!clientId) {
return;
}
main.post("/entryexit/GetClientCash?ClientId=" + clientId).done(function (res) {
if (res) {
$("#ClientCashCNY").val(res.CNY);
$("#ClientCashUSD").val(res.USD);
}
});
main.post("/trade_span/GetClientLatestBalance", { clientId: clientId }).done(function (data) {
winloss = numFormart(data.WinLoss);
netFund = numFormart(data.NetFund);
vmFund = numFormart(data.VmFundSum);
setTransferMoney();
});
}
function setTransferMoney() {
var clientId = $("#ClientId").val();
if (!clientId) {
return;
}
var transfer_out_account = $("#TransferOutAccount").val();
var transfer_in_account = $("#TransferInAccount").val();
if (transfer_out_account === "初保账户") {
transferOutMoney = netFund;
$("#transfer_out_account_money").text("余额:" + netFund);
}
else if (transfer_out_account === "追保账户") {
transferOutMoney = vmFund;
$("#transfer_out_account_money").text("余额:" + vmFund);
} else {
transferOutMoney = winloss;
$("#transfer_out_account_money").text("余额:" + winloss);
}
if (transfer_in_account === "初保账户") {
$("#transfer_in_account_money").text("余额:" + netFund);
}
else if (transfer_in_account === "追保账户") {
$("#transfer_in_account_money").text("余额:" + vmFund);
} else {
$("#transfer_in_account_money").text("余额:" + winloss);
}
}
function numFormart(num) {
num = num || 0;
var result = numeral(num).format("0,0.00") === "NaN" ? "0.00" : numeral(num).format("0,0.00");
if (result === "-0.00") {
result = "0.00";
}
return result;
}
$(function () {
cardInputMgr.init();
currencyInputMgr.updateOptions();
var width = 152;
for (var i = 0; i < page.clients.length; i++) {
let ele = document.createElement('span')
ele.innerText = page.clients[i].Name;
ele.style.fontSize = '14px';
document.documentElement.append(ele);
var charLength = ele.offsetWidth + 28;//滚动条
document.documentElement.removeChild(ele);
if (charLength > width) {
width = charLength
}
}
if (page.changeBeforeConfirm) {
let autoClient = FastVue.autocomplete(document.getElementById('ClientId'), {
lookup: page.clients, nameField: 'Name', valueField: 'id', searchField: ['Name', 'PinYin'], width: width,
onSelect(data) {
cardInputMgr.updateOptions();
$('#ClientName').val(data.Name);
$('#ClientId_auto').attr('title', data.Name);
setClientCash();
}
});
autoClient.setData(page.client);
setClientCash();
}
const fp = flatpickr(".form_datetime", {
enableTime: true, dateFormat: "Y-m-d H:i",
allowInput: true, time_24hr: true,
onChange: function (dateObject, dateString) {
currencyInputMgr.updateOptions();
}
});
setDirection(1);
moneyInputMgr.init();
if (!page.changeBeforeConfirm) {
if (!page.isChangeAfterConfirm) {
$("#MoneyStr").prop("disabled", true);
}
$("#HappenDate").prop("disabled", true);
}
});