Files
zszq-trs/YLErpWeb/wwwroot/Scripts/app/marginRate/marginRateSwapMonitorV2.js
T
2024-05-09 14:06:26 +08:00

198 lines
7.3 KiB
JavaScript

var _jqgridMgr;
var g_grid = {};
var query_data = {};
var g_threshold = 0;
var openWaringLineMonitor = page.swapMonitorConfg.WarningLine;
var openCloseLineMonitor = page.swapMonitorConfg.UnwindLine;
var ggridData;
const dateFormat = function (val) { return val ? val.substring(0, 10) : ''; };
function percentFormat(cellValue, options, rowObject) {
return cellValue ? (cellValue * 100).toFixed(2) + "%" : "0.00%";
}
$(function () {
var PostData = { };
var grid = jQuery('#listGrid').jqGrid({
url: '/MarginRateSwap/MarginRateSwapMonitorQueryV2',
datatype: 'json',
height: '520px',
width: '96%',
autowidth: false,
shrinkToFit: false,
viewrecords: true,
jsonReader: { repeatitems: false },
caption: '',
mtype: 'POST',
postData: PostData,
onSelectRow: rowclick,
ondblClickRow: rowdblclick,
colModel: getColModelGrid(),
pager: jQuery('#pagerGrid'),
pagerpos: 'left',
rowNum: 20,
rowList: [20, 30, 50, 200, 10000],
loadComplete: gridComplete,
onPaging: onJqgridPaging,
});
g_grid = jQuery('#listGrid');
});
function getColModelGrid() {
var colModelGrid = [ {
name: 'ClientNumber', label: '客户编号', index: 'ClientNumber', width: 100, align: 'center', frozen: true
}, {
name: 'ClientName', label: '客户名称', index: 'ClientName', width: 238, align: 'center', frozen: true
}, {
name: 'ClientTypeStr', label: '收益互换交易类别', index: 'ClientTypeStr', width: 130, align: 'center', frozen: true
}, {
name: 'AmountFund', label: '期末结存', index: 'AmountFund', width: 100, align: 'right', formatter: 'number', sorttype: 'number'
}, {
name: 'GuaranteesTotalAmount', label: '质押市值', index: 'GuaranteesTotalAmount', width: 100, align: 'right', formatter: 'number', sorttype: 'number'
},
{
name: 'TotalCredit', label: '授信额度', index: 'TotalCredit', width: 100, align: 'right', formatter: 'number', sorttype: 'number'
}, {
name: 'MinusPayableMargin', label: '预付金占用', index: 'MinusPayableMargin', width: 120, align: 'right', formatter: holdingDepositFormat, sorttype: 'number'
}, {
name: 'PayableFund', label: '应付资金总额', index: 'PayableFund', width: 100, align: 'right', formatter: 'number', sorttype: 'number'
}, {
name: 'MarginByPayableMarginTotal', label: '追加预付金金额', index: 'MarginByPayableMarginTotal', width: 120, align: 'right', value: '0', formatter: 'number', sorttype: 'number'
}
, {
name: 'MaintenanceLine', label: '维持预付金线', index: 'MaintenanceLine', width: 120, align: 'right', value: '0', formatter: 'number', sorttype: 'number'
}
];
return colModelGrid;
}
function holdingDepositFormat(cellValue, options, rowObject) {
cellValue = numeral(cellValue).format("0,0.00");
if (cellValue === "NaN") {
cellValue = "0.00";
}
var html;
var margintype = $("#ShownType").val();
if (margintype == "default") {
html = `<div data-value="#=${cellValue}#"><span class="holdingDepositSpan" >${cellValue}</span><input type="text" value="${cellValue}" class="holdingDepositInput" style="display:none"/><input type="hidden" class="clientId" value="${rowObject.id}"/><input type="hidden" class="clientName" value="${rowObject.Name}"/></div>`;
}
else {
html = `<div data-value="#=${cellValue}#">${cellValue}</div>`;
}
return html;
}
function OpenSetMonitor() {
var htmlContent = $('#setMonitor').html();
main.open2("预警设置",
htmlContent,
{
area: ["450px", "250px"],
success: function (layero, index) {
$("#WarningLine").val(openWaringLineMonitor);
$("#ClosePositionLine").val(openCloseLineMonitor);
}
}
);
}
function setMonitor() {
var warningLine = $('#WarningLine').val();
var unwindLine = $('#ClosePositionLine').val();
if (warningLine < -100 || warningLine > 100) {
main.alert("预警线填写错误");
return;
}
if (unwindLine < -100 || unwindLine > 100) {
main.alert("平仓线填写错误");
return;
}
if (unwindLine > warningLine) {
main.alert("平仓线必须小于等于预警线");
return;
}
var monitor = {
WarningLine: warningLine,
UnwindLine: unwindLine,
}
main.post("/MarginRateSwap/SetSwapMonitor", monitor).done(function (resp) {
openWaringLineMonitor = monitor.WarningLine;
openCloseLineMonitor = monitor.UnwindLine
SearchClick();
layer.closeAll();
});
}
function gridComplete(data) {
if (data instanceof Array) {
ggridData = data;
}
var jgrid = $('#listGrid');
var rowIds = jgrid.jqGrid('getDataIDs');
for (var i = 0; i < rowIds.length; i++) {
var rowId = rowIds[i];
var rowdata = jgrid.getRowData(rowId);
if (openCloseLineMonitor != 0 && openWaringLineMonitor != 0) {
if (rowdata.MaintenanceLine * 100 <= openCloseLineMonitor) {
$('#' + rowIds[i]).addClass("close-position-line");
}
else if (rowdata.MaintenanceLine * 100 > openCloseLineMonitor && rowdata.MaintenanceLine * 100 <= openWaringLineMonitor) {
$('#' + rowIds[i]).addClass("waring-line");
} else {
$('#' + rowIds[i])[0].classList.remove("close-position-line");
$('#' + rowIds[i])[0].classList.remove("waring-line");
}
} else {
$('#' + rowIds[i])[0].classList.remove("close-position-line");
$('#' + rowIds[i])[0].classList.remove("waring-line");
}
}
main.setcolumnChooser(jgrid, page.configcolumn_name);
refreshSearchTime();
}
function showcolumnChooser() {
main.showcolumnChooser(jQuery('#listGrid'), page.configcolumn_name);
}
var searchPostData = {};
function SearchClick(isSearchclick) {
var listGrid = $('#listGrid');
searchPostData.WarnningTypes = $("#WarnningType").val();
searchPostData.ClientIds = $("#ClientId").val();
searchPostData.SwapTypes = $("#SwapType").val();
listGrid.appendPostData(searchPostData);
query_data = listGrid.jqGrid('getPostData');
if (isSearchclick) {
//点击搜索时默认第一页
listGrid.jqGrid('setGridParam', { page: 1 });
}
listGrid.trigger('reloadGrid');
}
function execExport() {
var dateTemp = new Date().Format("yyyyMMddhhmmss");
var fileName = "互换预付金监控导出" + dateTemp;
main.toExcel("listGrid", fileName, "xls");
//var $form = $('#exportForm').html('');
//$form.attr("action", '/MarginRateSwap/ExportMarginRateSwapMonitor')
//_.each(query_data, (val, key) => {
// if (!val) {
// val = '';
// } else if (_.isArray(val)) {
// _.each(val, x => {
// $form.append(`<input type="hidden" name="${key}" value="${x}">`);
// });
// return;
// }
// $form.append(`<input type="hidden" name="${key}" value="${val}">`);
//});
//$form.submit();
}
function refreshSearchTime() {
$("#searchTime").text(main.formartDate(new Date(), "YYYY-MM-DD HH:mm:ss"));
}