var g_grid = {}; var query_data = {}; $(function () { var PostData = {}; if (observationDate) { $("#DateValueDate").val(observationDate); PostData.ValueDate = observationDate; } if (settleDate) { $("#DateFromExerciseDate").val(settleDate); $("#DateToExerciseDate").val(settleDate); PostData.ExerciseDateStart = settleDate; PostData.ExerciseDateEnd = settleDate; } $(".datepicker").datepicker({ changeMonth: true, changeYear: true, showButtonPanel: true, showOtherMonths: true, selectOtherMonths: true }); grid = jQuery('#listGrid').jqGrid({ cmTemplate: { width: 80, align: 'center', sortable: false }, url: '/swapTrade/TradeQuery', datatype: 'json', multiselect: true, height: 'auto', width: '96%', autowidth: false, shrinkToFit: false, viewrecords: true, jsonReader: { repeatitems: false }, caption: '', mtype: 'POST', postData: PostData, afterInsertRow: AfterInsertRow, onSelectRow: rowclick, ondblClickRow: rowdblclick, colModel: colModelGrid, pager: jQuery('#pagerGrid'), pagerpos: 'left', rowNum: 20, rowList: [20, 30, 50, 200, 10000], footerrow: false, loadComplete: gridComplete, onPaging: onJqgridPaging, }); function keyEnter(event) { try { var e = event ? event : (window.event ? window.event : null); if (e.keyCode === 13) { SearchClick(true); } } catch (e) { // } } document.onkeydown = keyEnter; let underlyingCtrl = new tradeHelper.UnderlyingSelectCtrl('#UnderlyingId') .setFlag(tradeHelper.UnderlyingSelectFlag.OtcTrade); $("#CheckboxAll").click(function () { //setall selAllGrid(); }); }); var hideObj = { clientWidth: 160 }; var i = 0; var getColModelGrid = function () { if (isguojun) { var col = [ { name: 'id', label: 'id', index: 'id', sortIndex: i++, width: 70, align: 'center', hidden: true, optionHide: true }, { name: 'EncryptId', label: 'EncryptId', index: 'EncryptId', sortIndex: i++, width: 70, align: 'center', hidden: true, optionHide: true }, { name: 'UnwindDate', label: 'UnwindDate', hidden: true, optionHide: true }, { name: 'trade_swap.GetSwapTimeAndRate', label: 'trade_swap.GetSwapTimeAndRate', index: 'trade_swap.GetSwapTimeAndRate', sortIndex: i++, width: 70, align: 'center', hidden: true, optionHide: true }, { name: 'trade_swap.PaySwapTimeAndRate', label: 'trade_swap.PaySwapTimeAndRate', index: 'trade_swap.PaySwapTimeAndRate', sortIndex: i++, width: 70, align: 'center', hidden: true, optionHide: true, }, { name: 'OptDate', label: '操作时间', index: 'OptDate', sortIndex: i++, width: 160, align: 'center', sortable: true, formatter: 'datetime' }, { name: 'OptName', label: '操作者', index: 'OptName', sortIndex: i++, width: 70, align: 'center' }, { name: 'CreatorName', label: '创建者', index: 'CreatorName', sortIndex: i++, width: 70, align: 'center' }, { name: 'Comments', label: '备注', index: 'Comments', sortIndex: i++, width: 110, align: 'center', formatter: function (cellValue, options, rowObject) { if (cellValue && cellValue.startsWith("http://")) { return "{0}".template(cellValue); } return cellValue == null ? "" : cellValue; }, hidden: true }, { name: 'TradeStatus', label: '交易状态', index: 'TradeStatus', sortIndex: i++, width: 70, align: 'center' }, { name: 'ClientNumber', label: '客户编号', index: 'ClientNumber', sortIndex: i++, width: 100, align: 'center' }, { name: 'ClientName', label: '客户名称', index: 'ClientName', sortIndex: i++, width: hideObj.clientWidth, align: 'center' }, { name: 'AssetBookName', label: '簿记账户', index: 'AssetBookName', sortIndex: i++, width: 110, align: 'center' }, { name: 'TradeNumber', label: '交易编号', index: 'TradeNumber', sortIndex: i++, width: 240, align: 'center', formatter: ShowStructFormater }, { name: 'TradeDate', label: '交易日期', index: 'TradeDate', sortIndex: i++, width: 90, align: 'center', sortable: true, formatter: 'date' }, { name: 'StartDate', label: '开始日期', index: 'StartDate', sortIndex: i++, width: 90, align: 'center', sortable: true, formatter: 'date' }, { name: 'ExerciseDate', label: '到期日期', index: 'ExerciseDate', sortIndex: i++, width: 90, align: 'center', sortable: true, formatter: 'date' }, { name: 'SettlementDate', label: '结算日期', index: 'SettlementDate', sortIndex: i++, width: 90, align: 'center', sortable: true, formatter: 'date' }, { name: 'UnderlyingCode', label: '标的代码', index: 'UnderlyingCode', sortIndex: i++, width: 100, align: 'center', sortable: false, }, { name: 'UnderlyingName', label: '标的名称', index: 'UnderlyingName', sortIndex: i++, width: 100, align: 'center', sortable: false, }, { name: 'QuoteCurrency', label: '计价货币', index: 'QuoteCurrency', sortIndex: i++, width: 70, align: 'center' }, { name: 'TraderName', label: '交易员', index: 'TraderName', sortIndex: i++, width: 100, align: 'center', hidden: true }, { name: 'SalesCommission.Commission', label: '销售提成', index: 'SalesCommission.Commission', sortIndex: i++, width: 90, align: 'center', sortable: false, formatter: CommissionFormatter, hidden: true }, { name: 'trade_swap_gj.LongShort', label: '多头空头', index: 'trade_swap_gj.LongShort', sortIndex: i++, width: 100, align: 'center', sortable: false, }, { name: 'SpotPrice', label: '标的期初价格', index: 'SpotPrice', sortIndex: i++, width: 100, align: 'center', sortable: false, formatter: Format6 }, { name: 'OriginalNotional', label: '成交数量', index: 'OriginalNotional', sortIndex: i++, width: 100, align: 'center', sortable: false, formatter: otcformat.trading.notional }, { name: 'trade_swap_gj.OpenPrice', label: '标的期初价格(费后)', index: 'trade_swap_gj.OpenPrice', sortIndex: i++, width: 120, align: 'center', sortable: false, formatter: Format6 }, { name: 'trade_swap_gj.TradeCommission', label: '开仓费用', index: 'trade_swap_gj.TradeCommission', sortIndex: i++, width: 100, align: 'center', sortable: false, formatter: otcformat.trading.umprice }, { name: 'trade_swap_gj.OpenCurrencyRate', label: '期初汇率', index: 'trade_swap_gj.OpenCurrencyRate', sortIndex: i++, width: 100, align: 'center', sortable: false, formatter: otcformat.trading.umprice }, { name: 'trade_swap_gj.PricingOriginalStockEqvNotional', label: '期初名义本金(计价货币)', index: 'trade_swap_gj.PricingOriginalStockEqvNotional', sortIndex: i++, width: 150, align: 'center', formatter: otcformat.trading.StockEqvNotional }, { name: 'OriginalStockEqvNotional', label: '期初名义本金(结算货币)', index: 'OriginalStockEqvNotional', sortIndex: i++, width: 150, align: 'center', formatter: otcformat.trading.StockEqvNotional }, { name: 'trade_swap_gj.SwapTimeAndRate', label: '固定收益率', index: 'trade_swap_gj.SwapTimeAndRate', sortIndex: i++, width: 100, align: 'center', sortable: false, formatter: SwapTimeAndRateFormat2 }, { name: 'Notional', label: '存续数量', index: 'Notional', width: 100, sortIndex: i++, align: 'center', sortable: false, formatter: otcformat.trading.notional }, { name: 'trade_swap_gj.PricingStockEqvNotional', label: '存续名义本金(计价货币)', index: 'trade_swap_gj.PricingStockEqvNotional', sortIndex: i++, width: 150, align: 'center', formatter: otcformat.trading.StockEqvNotional }, { name: 'StockEqvNotional', label: '存续名义本金(结算货币)', index: 'StockEqvNotional', sortIndex: i++, width: 150, align: 'center', formatter: otcformat.trading.StockEqvNotional } ]; return tradeHelper.getAmountToNotional(col); } else { var col = [ { // name: 'rowFlag', // label: ' ', // width: 30, // optionHide: true, // formatter: expandFormat, // align: 'center', // sortable: false //}, { name: 'id', label: 'id', index: 'id', sortIndex: i++, width: 70, align: 'center', hidden: true, optionHide: true }, { name: 'EncryptId', label: 'EncryptId', index: 'EncryptId', sortIndex: i++, width: 70, align: 'center', hidden: true, optionHide: true //}, { // name: 'trade_swap.GetSwapTimeAndRate', // label: 'trade_swap.GetSwapTimeAndRate', // index: 'trade_swap.GetSwapTimeAndRate', // sortIndex: i++, // width: 70, // align: 'center', // hidden: true, // optionHide: true //}, { // name: 'trade_swap.PaySwapTimeAndRate', // label: 'trade_swap.PaySwapTimeAndRate', // index: 'trade_swap.PaySwapTimeAndRate', // sortIndex: i++, // width: 70, // align: 'center', // hidden: true, // optionHide: true }, { name: 'UnwindDate', label: 'UnwindDate', hidden: true, optionHide: true }, { name: 'OptDate', label: '操作时间', index: 'OptDate', sortIndex: i++, width: 160, align: 'center', sortable: true, formatter: 'datetime' }, { name: 'OptName', label: '操作者', index: 'OptName', sortIndex: i++, width: 70, align: 'center' }, { name: 'CreatorName', label: '创建者', index: 'CreatorName', sortIndex: i++, width: 70, align: 'center' }, { name: 'Comments', label: '备注', index: 'Comments', sortIndex: i++, width: 110, align: 'center', formatter: function (cellValue, options, rowObject) { if (cellValue && cellValue.startsWith("http://")) { return "{0}".template(cellValue); } return cellValue == null ? "" : cellValue; } } , { name: 'AssetBookName', label: '簿记账户', index: 'AssetBookName', sortIndex: i++, width: 110, align: 'center' }, { name: 'TradeStatus', label: '交易状态', index: 'TradeStatus', sortIndex: i++, width: 70, align: 'center' }, { name: 'TradeNumber', label: '交易编号', index: 'TradeNumber', sortIndex: i++, width: 240, align: 'center', formatter: ShowStructFormater }, { name: 'ContractCode', label: '确认书编号', index: 'ContractCode', sortIndex: i++, width: 240, align: 'center', hidden: true, formatter: ShowStructFormater }, { name: 'TradeDate', label: '交易日期', index: 'TradeDate', sortIndex: i++, width: 90, align: 'center', sortable: true, formatter: 'date' }, { name: 'StartDate', label: '开始日期', index: 'StartDate', sortIndex: i++, width: 90, align: 'center', sortable: true, formatter: 'date' }, { name: 'ExerciseDate', label: '到期日期', index: 'ExerciseDate', sortIndex: i++, width: 90, align: 'center', sortable: true, formatter: 'date' }, { name: 'SettlementDate', label: '结算日期', index: 'SettlementDate', sortIndex: i++, width: 90, align: 'center', sortable: true, formatter: 'date' }, { name: 'SettlementFlag', label: '是否延期结算', index: 'SettlementFlag', sortIndex: i++, width: 100, align: 'center', sortable: false, formatter: YesOrNoFormat }, { name: 'TradeType', label: '结构类型', index: 'TradeType', sortIndex: i++, width: 70, align: 'center' }, { name: 'trade_swap.SwapType', label: '互换类型', index: 'trade_swap.SwapType', sortIndex: i++, width: 70, align: 'center' }, { name: 'OriginalStockEqvNotional', label: '名义本金', index: 'OriginalStockEqvNotional', sortIndex: i++, width: 70, align: 'center', sortable: true, formatter: otcformat.trading.StockEqvNotional }, { name: 'ClientName', label: '交易对手方', index: 'ClientName', sortIndex: i++, width: hideObj.clientWidth, align: 'center' }, { name: 'QuoteCurrency', label: '计价货币', index: 'QuoteCurrency', sortIndex: i++, width: 70, align: 'center' }, { name: 'TradeAmount', label: '持仓数量', width: 100, sortIndex: i++, align: 'center', sortable: false, formatter: otcformat.trading.notional }, { name: 'trade_swap.IsGetFloatingProfit', label: '[收取]浮动收益', index: 'trade_swap.IsGetFloatingProfit', sortIndex: i++, width: 100, align: 'center', sortable: false, formatter: YesOrNoFormat }, { name: 'trade_swap.GetUnderlyingCode', label: '[收取]标的代码', index: 'trade_swap.GetUnderlyingCode', sortIndex: i++, width: 100, align: 'center', sortable: false, }, { name: 'MetaDic.GetUnderlyingName', label: '[收取]标的名称', index: 'MetaDic.GetUnderlyingName', sortIndex: i++, width: 100, align: 'center', sortable: false, }, { name: 'trade_swap.GetLongShort', label: '[收取]多头空头', index: 'trade_swap.GetLongShort', sortIndex: i++, width: 100, align: 'center', sortable: false, }, { name: 'trade_swap.GetSpotPrice', label: '[收取]标的期初价格', index: 'trade_swap.GetSpotPrice', sortIndex: i++, width: 100, align: 'center', sortable: false, formatter: otcformat.trading.umprice }, { name: 'trade_swap.GetOpenPrice', label: '[收取]开仓价格', index: 'trade_swap.GetOpenPrice', sortIndex: i++, width: 100, align: 'center', sortable: false, formatter: otcformat.trading.umprice }, { name: 'trade_swap.GetTradeAmount', label: '[收取]交易数量', index: 'trade_swap.GetTradeAmount', sortIndex: i++, width: 100, align: 'center', sortable: false, formatter: otcformat.trading.notional }, { name: 'trade_swap.GetLot', label: '[收取]手数', index: 'trade_swap.GetLot', sortIndex: i++, width: 100, align: 'center', sortable: false, formatter: otcformat.trading.notional }, { name: 'trade_swap.GetTradePrice', label: '[收取]交易费用', index: 'trade_swap.GetTradePrice', sortIndex: i++, width: 100, align: 'center', sortable: false, formatter: otcformat.trading.tradePrice }, { name: 'trade_swap.GetMarginRate', label: '[收取]初始预付金率', index: 'trade_swap.GetMarginRate', sortIndex: i++, width: 100, align: 'center', sortable: false, formatter: otcformat.trading.premiumRateP }, { name: 'trade_swap.GetSwapTimeAndRate', label: '[收取]互换利率(年化)', index: 'trade_swap.GetSwapTimeAndRate', sortIndex: i++, width: 100, align: 'center', sortable: false, formatter: SwapTimeAndRateFormat }, { name: 'TraderName', label: '交易员', index: 'TraderName', sortIndex: i++, width: 100, align: 'center' }, { name: 'trade_swap.IsPayFloatingProfit', label: '[支付]浮动收益', index: 'trade_swap.IsPayFloatingProfit', sortIndex: i++, width: 100, align: 'center', sortable: false, formatter: YesOrNoFormat }, { name: 'trade_swap.PayUnderlyingCode', label: '[支付]标的代码', index: 'trade_swap.PayUnderlyingCode', sortIndex: i++, width: 100, align: 'center', sortable: false, }, { name: 'MetaDic.PayUnderlyingName', label: '[支付]标的名称', index: 'MetaDic.PayUnderlyingName', sortIndex: i++, width: 100, align: 'center', sortable: false, }, { name: 'trade_swap.PayLongShort', label: '[支付]多头空头', index: 'trade_swap.PayLongShort', sortIndex: i++, width: 100, align: 'center', sortable: false, }, { name: 'trade_swap.PaySpotPrice', label: '[支付]标的期初价格', index: 'trade_swap.PaySpotPrice', sortIndex: i++, width: 100, align: 'center', sortable: false, formatter: otcformat.trading.umprice }, { name: 'trade_swap.PayOpenPrice', label: '[支付]开仓价格', index: 'trade_swap.PayOpenPrice', sortIndex: i++, width: 100, align: 'center', sortable: false, formatter: otcformat.trading.umprice }, { name: 'trade_swap.PayTradeAmount', label: '[支付]交易数量', index: 'trade_swap.PayTradeAmount', sortIndex: i++, width: 100, align: 'center', sortable: false, formatter: otcformat.trading.notional }, { name: 'trade_swap.PayLot', label: '[支付]手数', index: 'trade_swap.PayLot', sortIndex: i++, width: 100, align: 'center', sortable: false, formatter: otcformat.trading.notional }, { name: 'trade_swap.PayTradePrice', label: '[支付]交易费用', index: 'trade_swap.PayTradePrice', sortIndex: i++, width: 100, align: 'center', sortable: false, formatter: otcformat.trading.tradePrice }, { name: 'trade_swap.PaySwapTimeAndRate', label: '[支付]互换利率(年化)', index: 'trade_swap.PaySwapTimeAndRate', sortIndex: i++, width: 100, align: 'center', sortable: false, formatter: SwapTimeAndRateFormat }, { name: 'trade_swap.PayMarginRate', label: '[支付]初始预付金率', index: 'trade_swap.PayMarginRate', sortIndex: i++, width: 100, align: 'center', sortable: false, formatter: otcformat.trading.premiumRateP }, { name: 'SalesCommission.Commission', label: '销售提成', index: 'SalesCommission.Commission', sortIndex: i++, width: 90, align: 'center', sortable: false, formatter: CommissionFormatter } ]; if (page.ViewTagPermission) { col.push({ name: 'Tags', label: '标签值', index: 'Tags', width: 150, align: 'left', sortable: false, formatter: function (cellvalue, options, rowObject) { var html = '
'; var tagNames = ""; if (rowObject.Tags != null && rowObject.Tags.length > 0) { for (var i = 0; i < rowObject.Tags.length; i++) { if (i == rowObject.Tags.length - 1) { tagNames += "[" + rowObject.Tags[i].Name + "]"; } else { tagNames += "[" + rowObject.Tags[i].Name + "],"; } } if (rowObject.Tags.length > 2) { for (var i = 0; i < 2; i++) { html += '' + rowObject.Tags[i].Name + ''; } html += '...'; } else { for (var i = 0; i < rowObject.Tags.length; i++) { html += '' + rowObject.Tags[i].Name + ''; } } } html += '
'; return html; } }, { name: 'OutputTags', label: 'OutputTags', index: 'OutputTags', width: 70, align: 'center', hidden: true, optionHide: true }); } return tradeHelper.getAmountToNotional(col); } }; var colModelGrid = getColModelGrid(); function ShowStructFormater(cellValue, options, rowObject) { return cellValue || ''; } function DoubleFormat(cellValue, options, rowObject) { return !cellValue ? "0.00" : cellValue.toFixed(2); } function Format6(cellValue, options, rowObject) { return cellValue ? cellValue.toFixed(6) : "0.000000"; } function YesOrNoFormat(cellValue, options, rowObject) { return cellValue ? "是" : "否"; } 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); } function SwapTimeAndRateFormat2(cellValue, options, rowObject) { if (cellValue != null && cellValue.indexOf(";") > 0) { var spCellValue = cellValue.split(";")[1]; if (rowObject.trade_swap.IsGetFloatingProfit) { if (spCellValue != null && spCellValue.indexOf(",") > 0) { return PercentFormat(-spCellValue.split(",")[0]); } else { return PercentFormat(-spCellValue); } } else { if (spCellValue != null && spCellValue.indexOf(",") > 0) { return PercentFormat(spCellValue.split(",")[0]); } else { return PercentFormat(spCellValue); } } } return PercentFormat(cellValue); } function CommissionFormatter(cellValue, options, rowObject) { if (rowObject.SalesCommission.Commission) { if (rowObject.SalesCommission.CommissionFixed == false) { return otcformat.trading.premiumRateP(rowObject.SalesCommission.Commission); } else { return otcformat.trading.umprice(rowObject.SalesCommission.Commission); } } else { if (rowObject.SalesCommission.Commission === 0) { return otcformat.trading.umprice(0); } else { return ""; } } } //展开折叠 function expandFormat(cellValue, options, rowObject) { var hasExpandIcon = rowObject.IsGroup == 1; if (hasExpandIcon) { return ``; } return ""; } function exportUnwindSwapTrade() { var url = "/swaptrade/UnwindSwapTradeExport"; downLoadFile(url); } function downLoadFile(downloadUrlStr) { window.open(downloadUrlStr); } function gridComplete() { var jgrid = $(this); var rowIds = jgrid.jqGrid('getDataIDs'); for (var i = 0; i < rowIds.length; i++) { var rowId = rowIds[i]; var rowdata = jgrid.getRowData(rowId); if (rowdata.ExerciseDate == page.systemDate && (rowdata.TradeStatus != "已平仓" && rowdata.TradeStatus != "已到期")) { $('#' + rowIds[i]).addClass("ExerciseDateBg"); } else if (rowdata['trade_swap.GetSwapTimeAndRate'].indexOf(page.systemDate) > -1 || rowdata['trade_swap.PaySwapTimeAndRate'].indexOf(page.systemDate) > -1) { $('#' + rowIds[i]).addClass("SwapDateBg"); } if (rowdata.TradeStatus == "已平仓" && rowdata.UnwindDate == page.systemDate) { $('#' + rowIds[i]).addClass("UnwindTradeBg"); } } $(".selftooltip").tooltip({ html: true, show: 50000, trigger: "hover" }); main.setcolumnChooser(jgrid, page.configcolumn_data_hhjyss); var newHeight = $(window).height() - 250; $(".ui-jqgrid .ui-jqgrid-bdiv").css("cssText", "height: " + newHeight + "px!important;"); selAllGrid(); $('.ui-jqgrid-bdiv', '#gbox_listGrid').floatingScroll(); } function customButton(cellValue, options, rowObject) { var imageHtml = ""; return imageHtml; } function deletetrade(encryptId) { if (confirm("确定删除吗?")) { $.ajax({ type: "Post", url: "/forwardTrade/InValidTrade", data: { id: encryptId, d: new Date() }, success: function (data) { showmiddlemessage(data.obj); if (data.success) { $('#listGrid').trigger('reloadGrid'); } }, error: function (msg) { alert("error:" + msg); } }); } } function rowdblclick(rowid) { var rowData = $(this).getRowData(rowid); if (rowData.EncryptId) { starttradeView(rowData.EncryptId); } } function toggleExpand(rowid) { event.stopPropagation(); $(event.target).toggleClass('fa-minus'); if ($(event.target).hasClass('fa-minus')) { main.post("/swaptrade/SearchGroupChildrenList", { id: rowid }).done(function (res) { for (var i = 0; i < res.length; i++) { jQuery('#listGrid').jqGrid('addRowData', res[i].id, res[i], 'after', rowid); $('#' + res[i].id).find("td").addClass("ChildrenBG"); } }); } else { main.post("/trade/SearchGroupChildrenList", { id: rowid }).done(function (res) { for (var i = 0; i < res.length; i++) { jQuery('#listGrid').jqGrid('delRowData', res[i].id); } }); } } function startAddtrade() { layer.open({ type: 2, title: "新增互换交易", shadeClose: false, shade: 0.4, area: ['1380px', '800px'], content: "/swapTrade/TradeEdit/0" }); } function starttradeView(id) { var srcurl = "/trade/TradeView/?enid=" + id + "&checkBtn=1"; main.open("查看交易", srcurl); } function reloadtrade() { //重新加载 SearchClick(); } function confirmAllSelect() { var selectedIds = jQuery('#listGrid').jqGrid('getGridParam', 'selarrrow'); if (selectedIds.length < 1) { main.message("请选择需确认的交易"); return; } var confirmFunc = function (additionalProcessing) { var ggrid = jQuery('#listGrid'); var rowIds = ggrid.jqGrid('getGridParam', 'selarrrow'); var ors = []; for (var i = 0; i < rowIds.length; i++) { var or = ggrid.getRowData(rowIds[i]).id; ors.push(or); } var pData = { tradeids: ors.join(",") }; pData.IsSkipCheck = true; if (!main.isEmpty(additionalProcessing)) { pData.additionalProcessing = additionalProcessing; } main.post("/trade/tradeConfirm", pData).done(function (data) { //错误是打印错误提示 if (!data.success) { main.message(data.msg); return; } SearchClick(true); }); }; ///批量结算 main.confirm("确认所有选中交易?", confirmFunc); } function uploadTrade() { main.open("导入互换流水", "/swapTrade/tradeUpload", { area: ['800px', '600px'] }); } function uploadTradeFlowGroup() { main.open("导入互换流水", "/swapTrade/tradeFlowGroupUpload", { area: ['800px', '600px'] }); } function SearchClick(isSearchclick) { var listGrid = $('#listGrid'); listGrid.appendPostData({ TradeNumber: $("#TradeNumber").val() }); listGrid.appendPostData({ ContractCode: $("#ContractCode").val() }); listGrid.appendPostData({ AssetIds: !$("#AssetId").val() ? "" : $("#AssetId").val().join(",") }); listGrid.appendPostData({ AssetIdGroupList: $("#GroupId").val() }); listGrid.appendPostData({ ClientIds: !$("#ClientId").val() ? "" : $("#ClientId").val().join(",") }); listGrid.appendPostData({ AssetType: $("#AssetType").val() }); listGrid.appendPostData({ UnderlyingIds: !$("#UnderlyingId").val() ? "" : $("#UnderlyingId").val().join(",") }); listGrid.appendPostData({ ExchangeAccountCodes: $("#ExchangeAccountCode").val() }); listGrid.appendPostData({ TradeTypes: !$("#TradeTypes").val() ? "" : $("#TradeTypes").val().join(",") }); listGrid.appendPostData({ TradeDateStart: $("#DateFromTradeDate").val() }); listGrid.appendPostData({ TradeDateEnd: $("#DateToTradeDate").val() }); listGrid.appendPostData({ StartDateStart: $("#DateFromStartDate").val() }); listGrid.appendPostData({ StartDateEnd: $("#DateToStartDate").val() }); var reqTradeStatus = !$("#TradeStatus").val() ? page.AllTradeStatus : $("#TradeStatus").val().join(","); if (!reqTradeStatus) { reqTradeStatus = page.AllTradeStatus; } listGrid.appendPostData({ TradeStatus: reqTradeStatus }); listGrid.appendPostData({ TraderNames: !$("#TraderName").val() ? "" : $("#TraderName").val().join(",") }); listGrid.appendPostData({ ExerciseDateStart: $("#DateFromExerciseDate").val() }); listGrid.appendPostData({ ExerciseDateEnd: $("#DateToExerciseDate").val() }); listGrid.appendPostData({ SettlementDateStart: $("#DateFromSettlementDate").val() }); listGrid.appendPostData({ SettlementDateEnd: $("#DateToSettlementDate").val() }); listGrid.appendPostData({ ValueDate: $("#DateValueDate").val() }); listGrid.appendPostData({ SettlementFlags: $("#SettlementFlag").val() }); listGrid.appendPostData({ TagIds: $("#TagIds").val() }); query_data = listGrid.jqGrid('getPostData'); if (typeof isSearchclick !== "undefined" && isSearchclick) { //点击搜索时默认第一页 listGrid.jqGrid('setGridParam', { page: 1 }); } listGrid.trigger('reloadGrid'); } function openTradeConfirmList() { window.open("tradeConfirmList", "_blank"); } function openTradeFlowList() { if (page.company == "国泰君安") { window.open("TradeFlowListMore", "_blank"); } else { window.open("TradeFlowList", "_blank"); } } function downloadFlowInfo() { exportSubmit('/SwapTrade/ExportTradeFlowInfo'); } function downloadOpenInfo() { exportSubmit('/SwapTrade/ExportTradeOpenInfo'); } function exportSubmit(url) { var $form = $('#exportForm').html(''); $form.attr("action", url) $form.submit(); } function getValidVal(val, defaultVal) { if (!val) { return defaultVal || ""; } return val; } function getRowText(data, rowModel, template) { var rowText = ""; for (var i = 0; i < data.length; i++) { var val = getValidVal(data[i].value); if (data[i].visible) { if (typeof data[i].visible === "boolean" && !data[i].visible) { continue; } if (typeof data[i].visible === "function" && !data[i].visible(val, rowModel)) { continue; } } if (data[i].func && typeof data[i].func === "function") { val = data[i].func(val, rowModel); } rowText += template.template(data[i].name, val); } return rowText; } Array.prototype.contains = function (obj) { if (this.length === 0) { return false; } for (var i = 0; i < this.length; i++) { if (this[i] === obj) { return true; } } return false; } function removeconfigcolumn() { } function showcolumnChooser() { var jgrid = jQuery('#listGrid'); main.showcolumnChooser(jgrid, page.configcolumn_data_hhjyss); } function selAllGrid() { var checkAll = $("#CheckboxAll").prop("checked"); $("#cb_listGrid").click(); var cbGridClick = $("#cb_listGrid").prop("checked"); if (checkAll !== cbGridClick) { $("#cb_listGrid").click(); } } function GetSelAll() { var listGrid = $('#listGrid'); return { IsSelAll: $("#CheckboxAll").prop("checked"), PostData: listGrid.getPostData() }; } function getSelectTradeIds() { return main.GetGridIds($('#listGrid')); } function GetGridObjs() { return main.GetGridObjs($('#listGrid')); } function importTrade(type) { main.open("互换交易导入", "/SwapTrade/SwapTradeUpload", { area: ['800px', '600px'] }); } function uploadTrades() { let fileName = $("#uploadfileButton").val(); if (!fileName) { return main.alert("请选择要导入的文件!"); } let index = fileName.lastIndexOf("."); let fileEx = index > 0 ? fileName.substr(index).toLowerCase() : ''; if (fileEx !== '.xlsx') { return main.alert("只能上传.xlsx类型的文件!"); } function success(data) { if (data.success) { _reloadData = 'reloadData'; main.alert(!data.totalNum ? '导入成功!' : "共 {0} 条数据,导入成功 {1} 条数据!".template(data.totalNum, data.successNum)); } else { main.alert("导入失败:" + data.msg); } } var url = "/swapTrade/UploadSwapTrade";//区分导入,了结导入 main.confirm("确定导入?", UploadFile.bind(null, { inputId: 'openFile', url: url, success: success })); } function UploadFile(options) { if (!options || !options.url || !options.inputId) { throw '[UploadFile]参数错误'; } let file = $("#uploadfile").prop('files'); if (!file || !file[0]) return; file = file[0]; var formData = new FormData(); formData.append("file", file, file.name); formData.append("upload_file", true); $.ajax({ type: "POST", url: options.url, xhr: function () { var myXhr = $.ajaxSettings.xhr(); if (myXhr.upload) { myXhr.upload.addEventListener('progress', options.progressFn, false); } return myXhr; }, beforeSend() { main.waitMe("show"); }, success: options.success, error(error) { main.alert("导入失败:" + error.statusText); }, complete(result) { main.waitMe("hide"); }, async: true, data: formData, cache: false, contentType: false, processData: false, timeout: 60000 }); } function downTemplate() { if (page.company == "山西") { window.open("../App_Docs/导入模板/互换交易数据导入模板.xlsx"); } } function approvalList() { var grid = $("#listGrid"); var selRow = grid.jqGrid('getGridParam', 'selarrrow'); if (selRow.length == 0) { main.message("请勾选要匹配的交易"); return; } if (selRow.length > 1) { main.message("请仅勾选一条交易操作"); return; } var trade = grid.getRowData(selRow[0]); main.open("审批记录", "/trade/InterfaceApprovalRecord?type=1&code=" + trade.TradeNumber, { area: ["1200px", "600px"] }); } //ESC $(document).keyup(function (event) { switch (event.keyCode) { case 27: window.parent.layer.closeAll(); $(".jconfirm-open").addClass("hide");//关闭取消分组弹层 } }); $(".three-wrap-gtja #AssetId").prev().addClass("Bookkeeping-account"); $(".three-wrap-gtja #TraderName").prev().addClass("Trader-account"); $(".morebtn").click(function (e) { $(".hidediv").toggle(); }); function exportTradeChoose() { layer.open({ type: 1, title: "导出交易", shadeClose: false, shade: 0.4, area: ['300px', '240px'], content: $('#exportTpl').html() }); } function exportTrade() { var dateTemp = new Date().Format("yyyyMMddhhmmss"); var fileName = "互换交易导出" + dateTemp; var toExcelArray = []; if (page.ViewTagPermission) { toExcelArray.push({ colName: "标签值", formatter: function (cellValue, options, rowObject) { return rowObject.OutputTags; } }); } main.toExcel("listGrid", fileName, "xls", null, "", toExcelArray); } function BatchSetTradeTag() { var jgrid = jQuery('#listGrid'); var selIds = main.GetGridIds(jgrid); if (selIds.length === 0) { main.message("请选择至少一个交易"); return; } let srcurl = "/Tag/BatchSetTradeTag/?ids=" + selIds.join(','); main.open("批量设置标签", srcurl, { area: ['778px', '257px'], scrollbar: false }); } window.reloadData = reloadtrade;