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

340 lines
14 KiB
JavaScript

var _jqgridMgr;
var g_grid = {};
var query_data = {};
var g_threshold = 0;
var openWaringLineMonitor = "true";
var openCloseLineMonitor = "true";
var ggridData;
let underlyingCtrl = new tradeHelper.UnderlyingSelectCtrl('#UnderlyingId').setFlag(tradeHelper.UnderlyingSelectFlag.OtcTrade);
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 = { ValueDate: page.ValueDate };
main.setTradeDatePicker(moment(page.ValueDate));
var grid = jQuery('#listGrid').jqGrid({
url: '',
datatype: '',
height: '520px',
width: '96%',
multiselect: true,
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],
loadonce: true,
loadComplete: gridComplete,
onPaging: onJqgridPaging,
});
g_grid = jQuery('#listGrid');
g_grid.setGridParam({
resizeStop: function (newWidth, index) {
$theadInTable = $(".ui-jqgrid-hdiv").find("table:first").children("thead");
$theadInTable.find("tr.jqg-first-row-header").find('th').eq(index)[0].style.width = newWidth + "px";
$(".frozen-div").find("table:first").children("thead").find("tr.jqg-first-row-header").find('th').eq(index)[0].style.width = newWidth + "px";
$(".frozen-bdiv").find("table:first").find("tr").find('td').eq(index)[0].style.width = newWidth + "px";
$(".frozen-sdiv").find("table:first").find("tr").find('td').eq(index)[0].style.width = newWidth + "px";
}
});
g_grid.jqGrid('destroyFrozenColumns');
g_grid.jqGrid('setFrozenColumns');
function keyEnter(event) {
try {
var e = event ? event : (window.event ? window.event : null);
if (e.keyCode === 13) {
if (e.target.className === "holdingDepositInput") {
$(e.target).blur();
return;
}
SearchClick(true);
}
} catch (e) {
//
}
}
//var setColumn = main.setcolumnChooser2(g_grid, page.configcolumn_name);
//if (setColumn) {
// debugger
// setColumn.done(function () {
// g_grid.jqGrid('destroyFrozenColumns');
// g_grid.jqGrid('setFrozenColumns');
// });
//}
document.onkeydown = keyEnter;
SetAceDropDown();
//setHoldingDepositFunc();
//LoadGrid();
});
function getColModelGrid() {
var colModelGrid = [
{
name: 'WaringStatus', hidden: true, optionHide: true
},
{
name: 'TradeNumber', label: '交易编号', index: 'TradeNumber', width: 135, align: 'center'
}, {
name: 'ClientName', label: '客户名称', index: 'ClientName', width: 165, align: 'center'
}, {
name: 'AssetBookName', label: '簿记账号', index: 'AssetBookName', width: 165, align: 'center'
}, {
name: 'SwapType', label: '互换类型', index: 'SwapType', width: 100, align: 'center'
}, {
name: 'LongShort', label: '多空方向', index: 'LongShort', width: 100, align: 'center'
}, {
name: 'FloatingProfitTypeStr', label: '浮动收益方向', index: 'FloatingProfitTypeStr', width: 100, align: 'center'
}, {
name: 'TradeDate', label: '交易日期', index: 'TradeDate', width: 100, align: 'center',formatter: dateFormat,
}, {
name: 'StockEqvNotional', label: '成交名义本金', index: 'StockEqvNotional', width: 120, align: 'right', formatter: 'number'
}, {
name: 'tradeAmount', label: '成交数量', index: 'tradeAmount', width: 120, align: 'right', formatter: 'number', formatter: showToolName
}, {
name: 'PositionNotional', label: '持仓名义本金', index: 'PositionNotional', width: 120, align: 'right', formatter: 'number'
}, {
name: 'PositionAmount', label: '持仓数量', index: 'PositionAmount', width: 120, align: 'right', formatter: 'number', formatter: showToolName
}, {
name: 'UnderlyingCode', label: '标的代码 ', index: 'UnderlyingCode', width: 120, align: 'center', formatter: showToolName
}, {
name: 'SpotPrice', label: '期初标的价格', index: 'SpotPrice', width: 100, align: 'right', formatter: 'number', formatter: showToolName
}, {
name: 'Price', label: '标的现价', index: 'Price', width: 100, align: 'right', formatter: 'number', formatter: showToolName
}, {
name: 'InitMarginRate', label: '初始预付金率', index: 'InitMarginRate', width: 100, align: 'right', formatter: percentFormat
}, {
name: 'PostionProfitLoss', label: '总盈亏', index: 'PostionProfitLoss', width: 120, align: 'right', formatter: 'number'
}, {
name: 'PositionValue', label: '持仓盈亏', index: 'PositionValue', width: 120, align: 'right', formatter: 'number', sortable: true
}, {
name: 'InitMargin', label: '初始预付金', index: 'InitMargin', width: 120, align: 'right', formatter: 'number'
}, {
name: 'PositionMargin', label: '维持预付金', index: 'PositionMargin', width: 120, align: 'right', formatter: 'number'
}, {
name: 'PositionMarginRate', label: '维持预付金率', index: 'PositionMarginRate', width: 100, align: 'right', formatter: percentFormat
}, {
name: 'Margin', label: '追保金额', index: 'Margin', width: 120, align: 'right', formatter: 'number'
},
];
return colModelGrid;
}
function showToolName(cellValue, options, rowObject) {
if (rowObject.SwapType == "多空组合") {
var html = "--";
if (options.colModel.index == "UnderlyingCode") {
var html = "<input type=\"button\" class=\"wentiEdit\" title='删除' onclick=\"moreDetail('{0}')\" value=\"{1}\" />".template(options.rowId, "查看");
return html
}
return html
} else {
return cellValue;
}
}
function moreDetail(value) {
if (ggridData != undefined) {
var tradeSwapDetailList = ggridData.filter(t => { return t.TradeId == value });
var detailDiv = $('#detailDiv').html();
main.open2("多空组合持仓详情",
detailDiv,
{
area: ["900px", "640px"],
success: function (layero, index) {
listGrid_1Init(ggridData[value-1].TradeSwapDetailList)
}
}
);
}
}
function OpenSetMonitor() {
var htmlContent = $('#setMonitor').html();
main.open2("预警线显示设置",
htmlContent,
{
area: ["450px", "250px"],
success: function (layero, index) {
$("#OpenWaringLineMonitor").find("option[value='" + openWaringLineMonitor + "']").attr("selected", true);
$("#OpenCloseLineMonitor").find("option[value='" + openCloseLineMonitor + "']").attr("selected", true);
}
}
);
}
function setMonitor() {
openWaringLineMonitor = $('#OpenWaringLineMonitor').val()
openCloseLineMonitor = $('#OpenCloseLineMonitor').val()
gridComplete();
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);
//console.log(rowdata)
if (rowdata.WaringStatus == "达到平仓线") {
if (openCloseLineMonitor=="true") {
$('#' + rowIds[i]).addClass("close-position-line");
} else {
$('#' + rowIds[i])[0].classList.remove("close-position-line");
}
} else if (rowdata.WaringStatus == "达到预警线") {
if (openWaringLineMonitor=="true") {
$('#' + rowIds[i]).addClass("waring-line");
} else {
$('#' + rowIds[i])[0].classList.remove("waring-line");
}
}
}
//var newHeight = $(window).height() - 250;
//$(".ui-jqgrid .ui-jqgrid-bdiv").css("cssText", "height: " + newHeight + "px!important;");
//$('.ui-jqgrid-bdiv', '#gbox_listGrid').floatingScroll();
//$(".selftooltip").tooltip({ html: true, show: 50000, trigger: "hover" });
//var columnKey = "";
//if (tabIndexSelect === ObservationStatusTradeEnum.Barrier) {
// columnKey = configcolumn_data.Barrier;
//}
//else if (tabIndexSelect === ObservationStatusTradeEnum.DoubleShark) {
// columnKey = configcolumn_data.DoubleShark;
//}
//else if (tabIndexSelect === ObservationStatusTradeEnum.AutoCall) {
// columnKey = configcolumn_data.AutoCall;
//}
//else if (tabIndexSelect === ObservationStatusTradeEnum.SnowBall) {
// columnKey = configcolumn_data.SnowBall;
//}
main.setcolumnChooser(jgrid, page.configcolumn_name);
}
function showcolumnChooser() {
main.showcolumnChooser(jQuery('#listGrid'), page.configcolumn_name);
}
var searchPostData = {};
function SearchClick(isSearchclick) {
var listGrid = $('#listGrid');
listGrid.jqGrid('setGridParam', {
url: '/MarginRateSwap/MarginRateSwapMonitorQuery',
datatype: 'json'
})
searchPostData.WarnningTypes = $("#WarnningType").val();
searchPostData.ClientIds = $("#ClientId").val();
//searchPostData.CreditRatingIds = $("#CreditRatingId").val();
searchPostData.VarietyIds = $("#VarietyId").val();
searchPostData.DateFromTradeDate = $("#DateFromTradeDate").val();
searchPostData.DateToTradeDate = $("#DateToTradeDate").val();
searchPostData.AssetIds = $("#AssetId").val();
searchPostData.UnderlyingIds = $("#UnderlyingId").val();
searchPostData.SwapType = $("#SwapType").val();
searchPostData.TradeNumber = $("#TradeNumber").val();
searchPostData.OpenWaringLineMonitor = true;
searchPostData.OpenCloseLineMonitor = true;
listGrid.appendPostData(searchPostData);
query_data = listGrid.jqGrid('getPostData');
if (isSearchclick) {
//点击搜索时默认第一页
listGrid.jqGrid('setGridParam', { page: 1 });
}
listGrid.trigger('reloadGrid');
}
function execExport() {
searchPostData.WarnningTypes = $("#WarnningType").val();
searchPostData.ClientIds = $("#ClientId").val();
//searchPostData.CreditRatingIds = $("#CreditRatingId").val();
searchPostData.VarietyIds = $("#VarietyId").val();
searchPostData.DateFromTradeDate = $("#DateFromTradeDate").val();
searchPostData.DateToTradeDate = $("#DateToTradeDate").val();
searchPostData.AssetIds = $("#AssetId").val();
searchPostData.UnderlyingIds = $("#UnderlyingId").val();
searchPostData.SwapType = $("#SwapType").val();
searchPostData.TradeNumber = $("#TradeNumber").val();
searchPostData.OpenWaringLineMonitor = true;
searchPostData.OpenCloseLineMonitor = true;
main.post("/MarginRateSwap/execlExport", searchPostData).done(function (res) {
main.downloadFiles(res.obj);
});
parent.layer.closeAll();
}
function isForGetFormat(cellValue, options, rowObject) {
if (cellValue == true) {
return "收取"
} else {
return "支付"
}
}
function listGrid_1Init(dataList) {
var PostData = { ValueDate: page.ValueDate };
main.setTradeDatePicker(moment(page.ValueDate));
var grid = jQuery('#listGrid_1').jqGrid(
{
autowidth: false,
shrinkToFit: false,
viewrecords: true,
jsonReader: { repeatitems: false },
datatype: "local",
height: '520px',
width: '450px',
colModel: [
{
name: 'UnderlyingCode', label: '标的代码 ', index: 'UnderlyingCode', width: 100, align: 'center'
}, {
name: 'LongShort', label: '多空方向', index: 'LongShort', width: 100, align: 'center'
}, {
name: 'SpotPrice', label: '期初标的价格', index: 'SpotPrice', width: 100, align: 'right', formatter: 'number'
}, {
name: 'price', label: '标的现价', index: 'price', width: 100, align: 'right', formatter: 'number'
}, {
name: 'Notional', label: '份额', index: 'Notional', width: 100, align: 'right', formatter: 'number'
},{
name: 'profitLoss', label: '总盈亏', index: 'profitLoss', width: 120, align: 'right', formatter: 'number'
}, {
name: 'pv', label: '持仓盈亏', index: 'pv', width: 120, align: 'right', formatter: 'number'
}, {
name: 'IsForGet', label: '收取/支付', index: 'IsForGet', width: 80, align: 'center', formatter: isForGetFormat
}
],
pager: jQuery('#pagerGrid_1'),
pagerpos: 'left',
rowNum: 20,
rowList: [20, 30, 50, 200, 10000],
onPaging: onJqgridPaging,
});
for (var i = 0; i <= dataList.length; i++) {
jQuery("#listGrid_1").jqGrid('addRowData', i + 1, dataList[i]);
}
}