340 lines
14 KiB
JavaScript
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]);
|
|
}
|
|
} |