const ConsTradeStatus = { 已执行: '已执行', 已到期: '已到期', 已平仓: '已平仓' }; const configcolumn_data = { 当日成交: "todayConfirmList", 今日到期: "todayMaturityList", 明日到期: "tomorrowMaturityList" }; const TradeTabIndexEnum = { 今日成交: 1, 今日提前终止: 2, 今日到期: 3, 明日到期: 4, 场内成交记录: 5, 场外成交记录: 11, 对冲交易: 12, 全部: 13 }; const g_ConfirmedState = ["已到期", "已执行", "已平仓"]; function GetGridColModes() { var i = 0; var colModelGrid = [ { name: 'id', hidden: true, optionHide: true }, { name: 'IsMoneynessOption', hidden: true, optionHide: true }, { name: 'EncryptId', hidden: true, optionHide: true }, { name: 'rowFlag', label: ' ', width: 30, optionHide: true, formatter: expandFormat, align: 'center', sortable: false }, { name: 'TradeStatus', label: '交易状态', index: 'TradeStatus', width: 95, align: 'center' }, { name: 'TradeNumber', label: '交易编号', index: 'TradeNumber', width: 150, align: 'center' }, { name: 'AssetBookName', label: '簿记帐户', index: 'AssetBookName', width: 150, align: 'center' }, { name: 'ClientName', label: '交易对手方', index: 'ClientName', width: 300, align: 'center' }, { name: 'TradeDate', label: '成交日期', index: 'TradeDate', width: 90, align: 'center', formatter: 'date' }, { name: 'ExerciseDate', label: '到期日期', index: 'ExerciseDate', width: 90, align: 'center', formatter: 'date' }, { name: 'BuySell', label: '买卖方向', index: 'BuySell', width: 70, align: 'center' }, { name: 'ExerciseMode', label: '行权方式', index: 'ExerciseMode', width: 70, align: 'center', formatter: function (cellvalue, options, rowObject) { return rowObject.ExerciseModeCn; } }, { name: 'TradeType', label: '结构类型', index: 'TradeType', width: 120, align: 'center', formatter: function (cellvalue, options, rowObject) { return rowObject.StructureType && rowObject.IsGroup != 2 ? rowObject.StructureType : rowObject.TradeType; } }, { name: 'SyntheticUnderlyingTipsInfo', label: '组合标的信息', index: 'SyntheticUnderlyingTipsInfo', width: 120, align: 'left', hidden: true, optionHide: true }, { name: 'OptionType', label: '看涨看跌', index: 'OptionType', width: 70, align: 'center' }, { name: 'UnderlyingCode', label: '标的代码', index: 'UnderlyingCode', width: 100, align: 'center', formatter: ShowStructFormater }, { name: 'UnderlyingName', label: '标的名称', index: 'UnderlyingName', width: 100, align: 'center', sortable: false }, { name: 'InitialSpotPrice', label: '期初标的价格', index: 'InitialSpotPrice', width: 90, align: 'right', sorttype: 'float', formatter: otcformat.trading.umprice, sortable: false }, { name: 'Strike', label: '执行价格', index: 'Strike', width: 90, align: 'right', formatter: strikeFormat }, { name: 'TradeSinglePrice', label: '权利金(成交)', index: 'TradeSinglePrice', width: 90, align: 'right', formatter: TradeSinglePriceFormat }, { name: 'TradeOriginalAmount1', label: '成交数量', width: 70, sortable: false, formatter: function (cellvalue, options, rowObject) { return otcformat.trading.notional(tradeHelper.getTradeAmountV(rowObject)); } }, { name: 'TradeOriginalAmount1', label: '有效成交数量', index: 'TradeOriginalAmount1', width: 96, align: 'center', sortable: false, formatter: function (cellValue, options, rowObject) { return otcformat.trading.notional(rowObject.TradeOriginalAmount); } } ]; if (page.tabIndexSelect === TradeTabIndexEnum.今日成交) { colModelGrid.push({ name: 'TradePrice', label: '成交总额', index: 'TradePrice', width: 90, align: 'right', formatter: TradePriceFormat, sorttype: 'float' }); colModelGrid.push({ name: 'Comments', label: '备注', index: 'Comments', width: 140, align: 'left', hidden: true }); colModelGrid.push({ name: 'OriginalStockEqvNotional', label: '名义本金', index: 'OriginalStockEqvNotional', width: 70, align: 'right', formatter: otcformat.trading.StockEqvNotional, sortable: false, hidden: true }); if (page.IsTradeVol) { colModelGrid.push({ name: 'TradeOpenVolatility', label: '成交波动率', index: 'TradeOpenVolatility', width: 100, sortable: false, align: 'right', formatter: PercentFormat }); colModelGrid.push({ name: 'TradeCloseVolatility', label: '目标波动率', index: 'TradeCloseVolatility', width: 100, sortable: false, align: 'right', formatter: PercentFormat }); colModelGrid.push({ name: 'NumOfSmoothingDays', label: '平滑天数', index: 'NumOfSmoothingDays', width: 65, sortable: false, align: 'center' }); } } if (page.tabIndexSelect === TradeTabIndexEnum.今日成交 || page.tabIndexSelect === TradeTabIndexEnum.今日到期) { colModelGrid.push({ name: 'TraderName', label: '交易员', index: 'TraderName', width: 70, align: 'right', sortable: false, hidden: true }); } if (page.tabIndexSelect === TradeTabIndexEnum.今日到期 || page.tabIndexSelect === TradeTabIndexEnum.明日到期) { colModelGrid.push({ name: 'RealizedPnl', label: '实现盈亏', index: 'RealizedPnl', width: 130, align: 'right', sortable: false , formatter: GetRealizedPnl }); colModelGrid.push({ name: 'UnderlyingPrice', label: '最新标的价格', index: 'UnderlyingPrice', width: 90, align: 'right', formatter: function (cellValue, options, rowObject) { if (rowObject.TradeStatus == "已执行" || rowObject.TradeStatus == "已到期") { return "--"; } return otcformat.trading.umprice(cellValue); }, sortable: false }); colModelGrid.push({ name: 'SinglePV', label: '权利金(存续)',//期权现价 index: 'SinglePV', width: 85, align: 'right', formatter: GetLatestSinglePVDesc, sortable: false }); colModelGrid.push({ name: 'TradeAmount', label: '存续数量', index: 'TradeAmount', width: 65, align: 'center', formatter: function (cellValue, options, rowObject) { if (rowObject.TradeStatus === ConsTradeStatus.已执行 || rowObject.TradeStatus === ConsTradeStatus.已到期 || rowObject.TradeStatus === ConsTradeStatus.已平仓) { var html = ""; return html; } else { return otcformat.trading.notional(cellValue); } } }); colModelGrid.push({ name: 'DeltaInLots', label: 'Delta手数', index: 'DeltaInLots', width: 90, align: 'right', formatter: 'number', sortable: false }); colModelGrid.push({ name: 'ValueStatus', label: '价值状态', index: 'ValueStatus', width: 150, align: 'center', formatter: function (cellValue, options, rowObject) { if (cellValue.indexOf('ITM') >= 0) { var html = "" .template(cellValue); return html; } return cellValue; }, sortable: false }); colModelGrid.push({ name: 'FinalPrice', label: '到期标的价格', index: 'FinalPrice', width: 90, align: 'right', formatter: function (cellValue, options, rowObject) { if (rowObject.trade_cash == undefined) { return "--"; } return otcformat.trading.umprice(cellValue); } }); //到期收益 payoff*到期数量 colModelGrid.push({ name: 'trade_cash.UnwindPrice', label: '到期收益', index: 'trade_cash.UnwindPrice', width: 150, align: 'right', sortable: false, formatter: unwindPriceFormat }); colModelGrid.push({ name: 'trade_cash.TradeAmount', label: '到期数量', index: 'trade_cash.TradeAmount', width: 100, align: 'center', formatter: unwindTradeAmountFormat, sortable: false }); colModelGrid.push({ name: '1', label: '操作', index: '', align: 'center', width: 200, formatter: showToolName }); } return tradeHelper.getAmountToNotional(colModelGrid); } $(function () { $("#Btn_BatchExpire").hide(); $("#tab1NotShow").hide(); $("#tab3_4NotShow").show(); var PostData = {}; PostData.ValidState = $("#ValidState").val(); PostData.TabIndex = page.tabIndexSelect; $(".datepicker").datepicker({ changeMonth: true, changeYear: true, showButtonPanel: true, showOtherMonths: true, selectOtherMonths: true }); colModelGrid = GetGridColModes(); grid = jQuery('#listGrid').jqGrid({ url: "/trade/tradeOnValueDateQuery", datatype: 'json', multiselect: true, height: '500px', 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: 500, rowList: [20, 30, 50, 200, 500, 10000], footerrow: false, loadComplete: gridComplete, grouping: true }); 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); tabSelect(page.tabIndexSelect); showTabTotalCount(); }); function showTabTotalCount() { main.post("/trade/tradeCountsOnValueDateQuery", null, { waitMe: false }).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.EncryptId, rowData.TradeType); } function setStructTable(rowObject) { structTrades = rowObject.SubTrades; var trhtml = ""; var trcode = "标的代码{1}".template(structTrades.length, rowObject.UnderlyingCode); var trstrike = "执行价格"; var trbuysell = "买卖方向"; var trvarity = "结构类型{1}".template(structTrades.length, rowObject.StructureType); var trstockeqvnotional = "名义本金{1}".template(structTrades.length, (new Number(rowObject.StockEqvNotional) / 10000).toFixed(2) + "万"); var trmaturedate = "到期日期{1}".template(structTrades.length, moment(rowObject.ExerciseDate).format("YYYY-MM-DD")); //trtradestatus = "交易状态{1}".template(structTrades.length, rowObject.TradeStatus); if (structTrades) { for (var i = 0; i < structTrades.length; i++) { trstrike += "{0}".template(structTrades[i].IsMoneynessOption === "是" ? (new Number(structTrades[i].Strike) * 100).toFixed(2) + "%" : structTrades[i].Strike); trbuysell += "{0}".template(structTrades[i].BuySell); } } trhtml = "{0}".template(trcode); trhtml += "{0}".template(trstrike); trhtml += "{0}".template(trbuysell); trhtml += "{0}".template(trstockeqvnotional); trhtml += "{0}".template(trmaturedate); //trhtml += "{0}".template(trtradestatus); trhtml += "{0}".template(trvarity); var showTable = "{0}
".template(trhtml); return showTable; } function ShowStructFormater(cellValue, options, rowObject) { var html; //if (rowObject.TradeType === "结构化交易") { // html = "{0}" // .template(cellValue || '', setStructTable(rowObject)); // return html; //} if (rowObject.TradeType === "合成价差期权") { html = "{0}" .template(cellValue || '', rowObject.SyntheticUnderlyingTipsInfo); return html; } return cellValue || ''; } function NotionalFormat(cellValue, options, rowObject) { if (rowObject.TradeStatus === ConsTradeStatus.已执行 || rowObject.TradeStatus === ConsTradeStatus.已到期 || rowObject.TradeStatus === ConsTradeStatus.已平仓) { return 0; } else { return cellValue; } } function GetLatestSinglePVDesc(cellValue, options, rowObject) { var html = "{1}"; if (rowObject.TradeStatus === page.trade_yizhixing || rowObject.TradeStatus === page.trade_yidaoqi || rowObject.TradeStatus === page.trade_yipingcang) { return html.template("期权现价", "--"); } var voltype = page.volType; if (rowObject.PV) { var jgObj = JSON.parse(rowObject.PV); var pv = $.grep(jgObj, function (d, i) { return d.Key === voltype; }); if (pv.length > 0) { if (rowObject.IsUsePremiumRate) { return html.template("期权现价", otcformat.trading.premiumRateP(Math.abs(pv[0].Value / rowObject.Notional / rowObject.UnderlyingPrice))); } else { return html.template("期权现价", otcformat.trading.tradeSinglePrice(Math.abs(pv[0].Value / rowObject.Notional))); } } } return html.template("期权现价", "--"); } function GetRealizedPnl(cellValue, options, rowObject) { var html = "{1}"; return html.template("实现盈亏", otcformat.trading.tradePrice(cellValue)); } function unwindTradeAmountFormat(cellValue, options, rowObject) { if (rowObject.trade_cash == undefined) { return otcformat.trading.notional(rowObject.TradeAmount); } return otcformat.trading.notional(rowObject.trade_cash.TradeAmount == null || rowObject.trade_cash.TradeAmount == undefined ? 0 : rowObject.trade_cash.TradeAmount); } function unwindPriceFormat(cellValue, options, rowObject) { if (rowObject.trade_cash == undefined) { return "--"; } if (rowObject.IsUsePremiumRate) { return rowObject.trade_cash.Action == "系统操作-行权费" ? otcformat.trading.tradeSinglePrice(Math.abs(rowObject.trade_cash.UnwindPrice)) : otcformat.trading.premiumRateP(Math.abs(rowObject.trade_cash.UnwindPricePercentRate)); } else { return otcformat.trading.tradeSinglePrice(Math.abs(rowObject.trade_cash.UnwindPrice)); } } function TradeAmountFormat(cellValue, options, rowObject) { if (rowObject.TradeStatus === ConsTradeStatus.已执行 || rowObject.TradeStatus === ConsTradeStatus.已到期 || rowObject.TradeStatus === ConsTradeStatus.已平仓) { return 0; } else { return cellValue; } } function TradePriceFormat(cellValue, options, rowObject) { return otcformat.trading.tradePrice(cellValue); } function TradeSinglePriceFormat(cellValue, options, rowObject) { if (rowObject.IsUsePremiumRate) { return otcformat.trading.premiumRateP(rowObject.PremiumRate); } else { return otcformat.trading.tradeSinglePrice(cellValue); } } function PercentFormat(cellValue, options, rowObject) { if (cellValue) { var num = new Number(cellValue) * 100; return num.toFixed(2) + "%"; } else { return "0.00%"; } } function strikeFormat(cellValue, options, rowObject) { if (rowObject.TradeType == "自定义交易") { return rowObject.StrikeToShow; } else if (rowObject.TradeType === "收益互换") { return "--"; } if (rowObject.Strike) { if (rowObject.IsMoneynessOption === "是") { return otcformat.trading.umprice(rowObject.InitialSpotPrice * rowObject.Strike); } else { return otcformat.trading.umprice(rowObject.Strike); } } else { if (rowObject.Strike === 0) { return otcformat.trading.umprice(0); } else { return ""; } } } //展开折叠 function expandFormat(cellValue, options, rowObject) { var hasExpandIcon = rowObject.IsGroup == 1; if (hasExpandIcon) { return ``; } return ""; } function toggleExpand(rowid) { event.stopPropagation(); $(event.target).toggleClass('fa-minus'); var url = "/trade/SearchGroupChildrenConfirmList"; if ($(event.target).hasClass('fa-minus')) { main.post(url, { id: rowid, isExerciseDate: page.tabIndexSelect === TradeTabIndexEnum.今日到期 }).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(url, { id: rowid, isExerciseDate: page.tabIndexSelect === TradeTabIndexEnum.今日到期 }).done(function (res) { for (var i = 0; i < res.length; i++) { jQuery('#listGrid').jqGrid('delRowData', res[i].id); } }); } } 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.ValueStatus != undefined && rowdata.ValueStatus.indexOf("ITM") == 0 && rowdata.ExerciseDate === page.valueDate) { $('#' + rowIds[i]).find("td").addClass("SelectBG"); } } 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" }); var columnKey = ""; if (page.tabIndexSelect === TradeTabIndexEnum.今日成交) { columnKey = configcolumn_data.当日成交; } else if (page.tabIndexSelect === TradeTabIndexEnum.今日到期) { columnKey = configcolumn_data.今日到期; } else if (page.tabIndexSelect === TradeTabIndexEnum.明日到期) { columnKey = configcolumn_data.明日到期; } main.setcolumnChooser(jgrid, columnKey); } function customButton(cellValue, options, rowObject) { var imageHtml = ""; return imageHtml; } function downloadFiles(files) { if (files instanceof Array) { if (files.length <= 0) { return; } $.each(files, function (index, val) { val && setTimeout(function () { window.open(val); }, 500); }); } else { files && window.open(files); } } function confirmAllSelect() { var selectedIds = jQuery('#listGrid').jqGrid('getGridParam', 'selarrrow'); if (selectedIds.length < 1) { main.message("请选择需确认的交易"); return; } var confirmFunc = function (additionalProcessing, id, useRecall) { var ggrid = jQuery('#listGrid'); var rowIds = ggrid.jqGrid('getGridParam', 'selarrrow'); var ors = []; if (id) { ors.push(id); } else { 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 = false; if (!main.isEmpty(additionalProcessing)) { pData.additionalProcessing = additionalProcessing; } var ajaxopt = { type: "Post", url: "/trade/tradeConfirm", data: pData, success: function (data) { //错误是打印错误提示 if (!data.success) { main.alert(data.msg + "\r\n批量操作已终止"); if (reloadtrade) { reloadtrade(); } return; } if (data.obj && data.obj.proccessType === "AdditionalProcessing") { if (data.obj.TrialDataId) { var layerSetting = { type: 2, title: "提示", shadeClose: false, shade: 0.4, area: ['800px', '500px'], content: "/trade/showQuotaTrial?id=" + data.obj.TrialDataId, yes: function (index) { var obj = window["layui-layer-iframe" + index].page; if (obj.IsTF) { if (obj.Data.Remark && obj.Data.Remark.length > 0) { main.post("/trade/SaveQuotaTrial", obj.Data, { async: false }).done(function (res) { if (!res || !res.success) { main.message(res.msg); } }); confirmFunc("LackOfMoney", obj.Data.TradeId, true); } else { main.message("必须填写说明内容,才可以录入交易"); return; } } else { if (obj.Data.Remark && obj.Data.Remark.length > 0) { main.post("/trade/SaveQuotaTrial", obj.Data, { async: false }).done(function (res) { if (!res || !res.success) { main.message(res.msg); } }); } confirmFunc("LackOfMoney", obj.Data.TradeId, true); } (parent || window).layer.closeAll(); }, cancel: function () { if (window.parent && window.parent.reloadtrade) { window.parent.reloadtrade(); } (parent || window).layer.closeAll(); } }; if (data.obj.type === "LackOfMoney") { layerSetting.btn = [page.buttonStr, '取消']; } // 只展示“资金状况”的情况 if (data.obj.typecode === "FundStatus") { layerSetting.btn = ["确认", '取消']; } layer.open(layerSetting); } else { if (data.obj.message) { main.message(data.obj.message); } } return; } if (useRecall) { confirmFunc(); return; } else { main.message(data.msg); } if (page.generateAmendDoc && data.obj && data.obj.generateChangeSuccess) { main.downloadFiles(data.obj.url); } if (page.needSendChangeEmail && data.obj && data.obj.generateChangeSuccess) { main.confirm("确认发送变更确认书?", function () { main.post("/trade/SendChangeConfirmEmails", { tradeids: ors.join(",") }) .done(function (data) { if (data.success) { main.message("发送成功"); } else { main.message(data.msg); } }); }); } SearchClick(true); }, beforeSend: function () { main.waitMe(true); }, complete: function () { main.waitMe(false); }, error: function (msg) { main.message(msg); } }; $.ajax(ajaxopt); }; ///批量结算 main.confirm("确认所有选中交易?", confirmFunc); } function showToolName(cellValue, options, rowObject) { var html = "" .template(rowObject.EncryptId, "查看", rowObject.TradeType); if (page.tabIndexSelect === TradeTabIndexEnum.今日到期) { if (rowObject.TradeStatus === "确认成交" && rowObject.TradeType != "自定义交易") { if (rowObject.TradeType === "收益互换") { if (page.swap) { html = html + "" .template(rowObject.EncryptId, "收益互换"); } } else { if (page.toEnd && rowObject.IsGroup == 0) { html = html + "" .template(rowObject.EncryptId, "执行到期"); } } } } return html; } 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({ TradeNumber: $("#TradeNumber").val() }); listGrid.appendPostData({ ClientIds: $("#ClientId").val() }); listGrid.appendPostData({ AssetIds: $("#AssetId").val() }); listGrid.appendPostData({ AssetIdGroupList: $("#GroupId").val() }); listGrid.appendPostData({ TraderIds: $("#TraderId").val() }); listGrid.appendPostData({ UnderlyingIds: $("#UnderlyingId").val() }); listGrid.appendPostData({ VarietyId: $("#VarietyId").val() }); listGrid.appendPostData({ TradeDateStart: $("#DateFromTradeDate").val() }); listGrid.appendPostData({ TradeDateEnd: $("#DateToTradeDate").val() }); listGrid.appendPostData({ BuySell: $("#BuySell").val() }); listGrid.appendPostData({ OptionType: $("#OptionType").val() }); listGrid.appendPostData({ StartDateStart: $("#DateFromStartDate").val() }); listGrid.appendPostData({ StartDateEnd: $("#DateToStartDate").val() }); listGrid.appendPostData({ MaturityDateStart: $("#DateFromMaturityDate").val() }); listGrid.appendPostData({ MaturityDateEnd: $("#DateToMaturityDate").val() }); listGrid.appendPostData({ TradePrice: $("#TradePrice").val() }); listGrid.appendPostData({ TradeStatus: $("#TradeStatus").val() }); listGrid.appendPostData({ OptName: $("#OptName").val() }); listGrid.appendPostData({ ValidState: $("#ValidState").val() }); listGrid.appendPostData({ TradeTypes: $("#TradeTypes").val() }); listGrid.appendPostData({ Comments: $("#Comments").val() }); listGrid.appendPostData({ ExerciseDateStart: $("#DateFromExerciseDate").val() }); listGrid.appendPostData({ ExerciseDateEnd: $("#DateToExerciseDate").val() }); listGrid.appendPostData({ ExerciseMode: $("#ExerciseMode").val() }); listGrid.appendPostData({ TabIndex: page.tabIndexSelect }); } function SearchClick(isSearchclick) { setGridPostData(); if (isSearchclick) { //点击搜索时默认第一页 $('#listGrid').jqGrid('setGridParam', { page: 1 }); } main.isSearching = true; $('#listGrid').trigger('reloadGrid'); } function showcolumnChooser() { var jgrid = jQuery('#listGrid'); var columnKey = ""; if (page.tabIndexSelect === TradeTabIndexEnum.今日成交) { columnKey = configcolumn_data.当日成交; } else if (page.tabIndexSelect === TradeTabIndexEnum.今日到期) { columnKey = configcolumn_data.今日到期; } else if (page.tabIndexSelect === TradeTabIndexEnum.明日到期) { columnKey = configcolumn_data.明日到期; } main.showcolumnChooser(jgrid, columnKey); } function exportTrade() { var dateTemp = new Date().Format("yyyyMMddhhmmss"); var tabName = ""; if (page.tabIndexSelect === TradeTabIndexEnum.今日到期) { tabName = "今日到期"; } else if (page.tabIndexSelect === TradeTabIndexEnum.今日终止) { tabName = "今日终止"; } else if (page.tabIndexSelect === TradeTabIndexEnum.明日到期) { tabName = "明日到期"; } else { tabName = "今日成交"; } var fileName = "Trade_" + tabName + "_" + dateTemp; main.toExcel("listGrid", fileName, "xls", null, " ,操作者,操作时间,操作", [{ colName: "标的代码", formatter: function (cellValue, options, rowObject) { if (rowObject.TradeType === "合成价差期权") { return rowObject.SyntheticUnderlyingTipsInfo; } return cellValue; } }]); } function downCsv(fileName, exStrr, fileExtension) { if (!fileExtension) { fileExtension = ".csv"; } var isIE = navigator.userAgent.indexOf('MSIE') >= 0; if (isIE) { var strHTML = exStrr; var winSave = window.open(); winSave.document.open("text", "utf-8"); winSave.document.write(strHTML); winSave.document.execCommand("SaveAs", true, fileName + fileExtension); winSave.close(); } else { var mimeType = 'text/plain'; $('#createInvote').attr('download', fileName + fileExtension); //\uFEFF bom $('#createInvote').attr('href', 'data:' + mimeType + ';charset=utf-8,\uFEFF' + encodeURIComponent(exStrr)); document.getElementById('createInvote').click(); } } function tabSelect(tabIndex) { $("#myTab").children().removeClass("active"); $("#tab" + tabIndex).addClass("active"); page.tabIndexSelect = tabIndex; $("#Btn_BatchExpire").hide(); $("#tab1NotShow").hide(); $("#tab3_4NotShow").show(); if (tabIndex === TradeTabIndexEnum.今日到期 || tabIndex === TradeTabIndexEnum.明日到期) { if (tabIndex === TradeTabIndexEnum.今日到期) { $("#Btn_BatchExpire").show(); } $("#DateFromExerciseDate").prop("disabled", true); $("#DateToExerciseDate").prop("disabled", true); //$("#VolTypesSpan").show(); } else { $("#DateFromExerciseDate").prop("disabled", false); $("#DateToExerciseDate").prop("disabled", false); //$("#VolTypesSpan").hide(); } if (tabIndex === TradeTabIndexEnum.今日终止) { $("#tab1NotShow").show(); $("#tab3_4NotShow").show(); } else if (tabIndex === TradeTabIndexEnum.今日到期 || tabIndex === TradeTabIndexEnum.明日到期) { $("#tab1NotShow").show(); $("#tab3_4NotShow").hide(); } SearchClick(true); } //执行到期行权 无确认界面 function SetAsExpired(id) { var ors = []; if (id) { ors.push(id); } else { var ggrid = jQuery('#listGrid'); var selectedIds = jQuery('#listGrid').jqGrid('getGridParam', 'selarrrow'); if (selectedIds.length > 0) { for (var i = 0; i < selectedIds.length; i++) { var or = ggrid.getRowData(selectedIds[i]).id; ors.push(or); } } } //批量到期 main.confirm("确认批量执行到期吗?", function () { main.post("/trade/MultipleTradeExpireConfirm/", { tradeIds: ors }).done(function (res) { //showmiddlemessage(res.msg); reloadtrade(); }); }); } //执行合约 function executionTrade(id) { main.post("/trade_cash/checkEodPrice/", { enid: id }).done(function (res) { var srcurl = "/trade_cash/executionTradeCash/?enid=" + id + "&isexpire=" + true; main.open("执行到期", srcurl, { end: function () { SearchClick(true); }, area: ["1000px", "800px"] }); }); } function swapTrade(id) { var title = "收益结算"; var srcurl = "/trade/tradeSwapUnwind/?enid=" + id + "&isswap=" + 1; main.open(title, srcurl, { end: function () { SearchClick(true); } }); } //批量移除新增未确认的交易 function invalidUnconfirmedTrades() { var selectedIds = $('#listGrid').jqGrid('getGridParam', 'selarrrow'); if (selectedIds.length < 1) { main.message("请选择需删除的交易"); return; } main.confirmV2("确认要删除所选的'新增待确认'状态的交易?").done(function () { main.post("/trade/AjaxInvalidTodayUnconfirmedTrades", { ids: selectedIds }).done(function () { SearchClick(true); }); }); }