function getColModelGrid() { var i = 0; var colModelGrid = [ { name: 'trade.id', hidden: true, optionHide: true }, { name: 'id', hidden: true, optionHide: true }, { name: 'trade.IsMoneynessOption', label: 'trade.IsMoneynessOption', index: 'trade.IsMoneynessOption', sortIndex: i++, width: 70, align: 'center', hidden: true, optionHide: true }, { name: 'trade.EncryptId', label: 'trade.EncryptId', index: 'trade.EncryptId', sortIndex: i++, width: 70, align: 'center', hidden: true, optionHide: true }, { name: 'trade.TradeStatus', label: '交易状态', index: 'trade.TradeStatus', sortIndex: i++, width: 100, align: 'center', formatter: tradeStatusFormat }, { name: 'trade.TradeNumber', label: '交易编号', index: 'trade.TradeNumber', sortIndex: i++, width: 240, align: 'center' }, { name: 'trade.AssetBookName', label: '簿记帐户', index: 'trade.AssetBookName', sortIndex: i++, width: 150, align: 'center' }, { name: 'trade.ClientName', label: '交易对手方', index: 'trade.ClientName', sortIndex: i++, width: 300, align: 'center' }, { name: 'trade.TradeDate', label: '成交日期', index: 'trade.TradeDate', sortIndex: i++, width: 90, align: 'center', formatter: 'date' }, { name: 'trade.ExerciseDate', label: '到期日期', index: 'trade.ExerciseDate', sortIndex: i++, width: 90, align: 'center', formatter: 'date' }, { name: 'trade.SettlementDate', label: '结算日期', index: 'trade.SettlementDate', sortIndex: i++, width: 90, align: 'center', formatter: 'date' }, { name: 'trade.SettlementFlag', label: '是否延期结算', index: 'trade.SettlementFlag', sortIndex: i++, width: 100, align: 'center', sortable: false, formatter: YesOrNoFormat }, { name: 'trade.TradeType', label: '结构类型', index: 'trade.TradeType', sortIndex: i++, width: 120, align: 'center', formatter: function (cellvalue, options, rowObject) { return rowObject.trade.StructureType && rowObject.trade.IsGroup != 2 ? rowObject.trade.StructureType : rowObject.trade.TradeType; } }, { name: 'trade.OriginalStockEqvNotional', label: '名义本金', index: 'trade.OriginalStockEqvNotional', sortIndex: i++, width: 70, align: 'center', formatter: doubleFormat }, { name: 'trade.trade_swap.AnnualDays', label: '年化天数', index: 'trade.trade_swap.AnnualDays', sortIndex: i++, width: 70, align: 'center', sortable: false, }, { name: 'trade_cash.ValueDate', label: '终止日期', index: 'trade_cash.ValueDate', sortIndex: i++, width: 95, align: 'right', formatter: 'date' }, { name: 'trade_cash.Amount', label: '终止金额', index: 'trade_cash.Amount', sortIndex: i++, width: 70, align: 'right', formatter: otcformat.trading.tradePrice }, { name: 'trade.trade_swap.IsGetFloatingProfit', label: '[收取]浮动收益', index: 'trade.trade_swap.IsGetFloatingProfit', sortIndex: i++, width: 100, align: 'center', sortable: false, formatter: YesOrNoFormat }, { name: 'trade.trade_swap.GetUnderlyingCode', label: '[收取]标的代码', index: 'trade.trade_swap.GetUnderlyingCode', sortIndex: i++, width: 100, align: 'center', sortable: false, }, { name: 'trade.MetaDic.GetUnderlyingName', label: '[收取]标的名称', index: 'trade.MetaDic.GetUnderlyingName', sortIndex: i++, width: 100, align: 'center', sortable: false, }, { name: 'trade.trade_swap.GetLongShort', label: '[收取]多头空头', index: 'trade.trade_swap.GetLongShort', sortIndex: i++, width: 100, align: 'center', sortable: false, }, { name: 'trade.trade_swap.GetSpotPrice', label: '[收取]标的期初价格', index: 'trade.trade_swap.GetSpotPrice', sortIndex: i++, width: 100, align: 'center', sortable: false, formatter: otcformat.trading.umprice }, { name: 'trade.trade_swap.GetTradeAmount', label: '[收取]交易数量', index: 'trade.trade_swap.GetTradeAmount', sortIndex: i++, width: 100, align: 'center', sortable: false, formatter: function (cellValue, options, rowObject) { return otcformat.trading.notional(page.IsUseDisplayNotional ? (rowObject.trade.CountRatio || 1) * cellValue : cellValue); } }, { name: 'trade.trade_swap.GetTradePrice', label: '[收取]交易费用', index: 'trade.trade_swap.GetTradePrice', sortIndex: i++, width: 100, align: 'center', sortable: false, formatter: otcformat.trading.tradePrice }, { name: 'trade.trade_swap.GetSwapTimeAndRate', label: '[收取]互换利率(年化)', index: 'trade.trade_swap.GetSwapTimeAndRate', sortIndex: i++, width: 100, align: 'center', sortable: false, formatter: SwapTimeAndRateFormat }, { name: 'trade_cash_swap.GetFinalPrice', label: '[收取]终止标的价格', index: 'trade_cash_swap.GetFinalPrice', sortIndex: i++, width: 100, align: 'center', sortable: false, formatter: otcformat.trading.umprice }, { name: 'trade.trade_swap.IsPayFloatingProfit', label: '[支付]浮动收益', index: 'trade.trade_swap.IsPayFloatingProfit', sortIndex: i++, width: 100, align: 'center', sortable: false, formatter: YesOrNoFormat }, { name: 'trade.trade_swap.PayUnderlyingCode', label: '[支付]标的代码', index: 'trade.trade_swap.PayUnderlyingCode', sortIndex: i++, width: 100, align: 'center', sortable: false, }, { name: 'trade.MetaDic.PayUnderlyingName', label: '[支付]标的名称', index: 'trade.MetaDic.PayUnderlyingName', sortIndex: i++, width: 100, align: 'center', sortable: false, }, { name: 'trade.trade_swap.PayLongShort', label: '[支付]多头空头', index: 'trade.trade_swap.PayLongShort', sortIndex: i++, width: 100, align: 'center', sortable: false, }, { name: 'trade.trade_swap.PaySpotPrice', label: '[支付]标的期初价格', index: 'trade.trade_swap.PaySpotPrice', sortIndex: i++, width: 100, align: 'center', sortable: false, formatter: otcformat.trading.umprice }, { name: 'trade.trade_swap.PayTradeAmount', label: '[支付]交易数量', index: 'trade.trade_swap.PayTradeAmount', sortIndex: i++, width: 100, align: 'center', sortable: false, formatter: function (cellValue, options, rowObject) { return otcformat.trading.notional(page.IsUseDisplayNotional ? (rowObject.trade.CountRatio || 1) * cellValue : cellValue); } }, { name: 'trade.trade_swap.PayTradePrice', label: '[支付]交易费用', index: 'trade.trade_swap.PayTradePrice', sortIndex: i++, width: 100, align: 'center', sortable: false, formatter: otcformat.trading.tradePrice }, { name: 'trade.trade_swap.PaySwapTimeAndRate', label: '[支付]互换利率(年化)', index: 'trade.trade_swap.PaySwapTimeAndRate', sortIndex: i++, width: 100, align: 'center', sortable: false, formatter: SwapTimeAndRateFormat }, { name: 'trade_cash_swap.PayFinalPrice', label: '[支付]终止标的价格', index: 'trade_cash_swap.PayFinalPrice', sortIndex: i++, width: 100, align: 'center', sortable: false, formatter: otcformat.trading.umprice } ]; return colModelGrid; } function exportTrade() { var dateTemp = new Date().Format("yyyyMMddhhmmss"); var fileName = "Trade_" + page.tabName + "_" + dateTemp; main.toExcel("listGrid", fileName, "xls", null, "操作者,操作时间,操作", [{ colName: "标的代码", formatter: function (cellValue, options, rowObject) { if (rowObject["trade.TradeType"] === "合成价差期权") { return rowObject.trade.SyntheticUnderlyingTipsInfo; } return cellValue; } }]); } var g_grid = {}; $(function () { showTabTotalCount(); $("#tab3_4NotShow").show(); var PostData = {}; PostData.ValueDateStart = page.valueDate; PostData.ValueDateEnd = page.valueDate; PostData.TabIndex = page.tabIndex; PostData.IsHistoryWithUnconfirmed = true; $(".datepicker").datepicker({ changeMonth: true, changeYear: true, showButtonPanel: true, showOtherMonths: true, selectOtherMonths: true }); var colModelGrid = getColModelGrid(); grid = jQuery('#listGrid').jqGrid({ url: "/clientbalance/GetPreEndList/swap", datatype: 'json', multiselect: true, height: 'auto', width: '96%', autowidth: false, shrinkToFit: false, viewrecords: true, jsonReader: { repeatitems: false }, caption: '', mtype: 'POST', postData: PostData, colModel: colModelGrid, pager: jQuery('#pagerGrid'), pagerpos: 'left', ondblClickRow: rowdblclick, rowNum: 20, rowList: [20, 30, 50, 200, 10000], footerrow: false, loadComplete: gridComplete, grouping: true }); main.isSearching = true; g_grid = jQuery('#listGrid'); function keyEnter(event) { try { var e = event || window.event || {}; if (e.keyCode === 13) { SearchClick(true); } } catch (e) { // } } document.onkeydown = keyEnter; let underlyingCtrl = new tradeHelper.UnderlyingSelectCtrl('#UnderlyingId').setFlag(tradeHelper.UnderlyingSelectFlag.OtcTrade); }); function showTabTotalCount() { main.post("/swaptrade/tradeCountsOnValueDateQuery").done(function (data) { for (var i in data) { $(`#tab${i}`).find("a").attr("title", `总数${data[i]}笔`); } $(".selftooltip").tooltip({ html: true, show: 50000, trigger: "hover" }); }); } function rowdblclick(rowid) { var rowData = $(this).getRowData(rowid); starttradeView(rowData["trade.EncryptId"], rowData["trade.TradeType"]); } function doubleFormat(cellValue, options, rowObject) { return cellValue === null || cellValue === undefined ? "0.00" : otcformat.trading.StockEqvNotional(cellValue) === "NaN" ? "0.00" : otcformat.trading.StockEqvNotional(cellValue); } function tradeStatusFormat(cellValue, options, rowObject) { return (rowObject.trade_cash.Action === "系统操作-行权费" || ((rowObject.trade.TradeStatus === "行权待复核" || rowObject.trade.TradeStatus === "平仓待复核") && rowObject.trade_cash.ValidState === "InValid")) ? rowObject.trade.TradeStatus : (rowObject.trade_cash.Action === "系统操作-互换" ? "互换" : (rowObject.trade_cash.Notional - rowObject.trade_cash.UnwindNotional > 1e-5 ? "部分平仓" : "已平仓")); } function YesOrNoFormat(cellValue, options, rowObject) { return cellValue ? "是" : "否"; } function gridComplete() { var jgrid = $(this); var newHeight = $(window).height() - 400; $(".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" }); main.setcolumnChooser(jgrid, page.configcolumn_name); } function customButton(cellValue, options, rowObject) { var imageHtml = ""; return imageHtml; } function downloadFiles(files) { if (files instanceof Array) { if (files.length > 0) { $.each(files, function (index, val) { val && setTimeout(function () { window.open(val); }, 500); }); } } else { files && window.open(files); } } function rowclick(id) { } function starttradeView(id, tradeType) { main.open("查看交易", "/trade/tradeView/?enid={0}".template(id)); } function reloadtrade() { //重新加载 SearchClick(); $('#modal-edittrade').modal('hide'); } function setGridPostData() { var listGrid = $('#listGrid'); listGrid.appendPostData({ ClientIds: $("#ClientId").val() }); listGrid.appendPostData({ UnderlyingIds: $("#UnderlyingId").val() }); listGrid.appendPostData({ TradeNumber: $("#TradeNumber").val() }); listGrid.appendPostData({ TradeDateStart: $("#DateFromTradeDate").val() }); listGrid.appendPostData({ TradeDateEnd: $("#DateToTradeDate").val() }); listGrid.appendPostData({ ExerciseDateStart: $("#DateFromExerciseDate").val() }); listGrid.appendPostData({ ExerciseDateEnd: $("#DateToExerciseDate").val() }); listGrid.appendPostData({ TabIndex: page.tabIndex }); } function SearchClick(isSearchclick) { setGridPostData(); if (isSearchclick) { //点击搜索时默认第一页 $('#listGrid').jqGrid('setGridParam', { page: 1 }); } $('#listGrid').trigger('reloadGrid'); } function showcolumnChooser() { var jgrid = jQuery('#listGrid'); main.showcolumnChooser(jgrid, page.configcolumn_name); } function PercentFormat(cellValue, options, rowObject) { if (cellValue) { var num = new Number(cellValue) * 100; return num.toFixed(2) + "%"; } else { return "0.00%"; } } function SwapTimeAndRateFormat(cellValue, options, rowObject) { if (cellValue != null && cellValue.indexOf(";") > 0) { var spCellValue = cellValue.split(";")[1]; if (spCellValue != null && spCellValue.indexOf(",") > 0) { return PercentFormat(spCellValue.split(",")[0]); } else { return PercentFormat(spCellValue); } } return PercentFormat(cellValue); }