$(function () { var PostData = { SubstandardType: $("#SubstandardType").val() }; $('#createInvote2').click( function () { var tempTrim = String.prototype.trim; String.prototype.trim = function () { var firstChar = ""; if (this.indexOf("\t") === 0) { firstChar = "\t"; } return firstChar + this.replace(/(^\s*)|(\s*$)/g, ""); }; ExcellentExport.csv(this, 'excelTable'); String.prototype.trim = tempTrim; return; } ); // document.getElementById('createInvote2').click(); $(".datepicker").datepicker({ changeMonth: true, changeYear: true, showButtonPanel: true, showOtherMonths: true, selectOtherMonths: true }); var url = "/trade/tradeQuery"; var prmNames = { page: 'page', rows: 'rows', sort: 'sidx', order: 'sord' }; grid = jQuery('#listGrid').jqGrid({ cmTemplate: { width: 80, align: 'center', sortable: true }, url: url, prmNames: prmNames, datatype: 'json', multiselect: false, height: 'auto', width: '96%', autowidth: false, shrinkToFit: false, viewrecords: true, jsonReader: { repeatitems: false }, mtype: 'POST', postData: PostData, onSelectRow: rowclick, ondblClickRow: rowdblclick, colModel: getColModel(), pager: jQuery('#pagerGrid'), pagerpos: 'left', rowNum: 25, rowList: [25, 50, 100, 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(selAllGrid); }); const tradeStatus = ["已到期", "已平仓", "已行权", "已执行"]; function getColModelDefault() { var hideObj = { clientWidth: 160 }; let i = 0; let colModelGrid = [ { name: 'TradeStatus', label: '交易状态', index: 'TradeStatus', sortIndex: i++, width: 70, align: 'center', sortable: false }, { name: 'TradeNumber', label: '交易编号', index: 'TradeNumber', sortIndex: i++, width: 150, align: 'center', sortable: false, formatter: ShowStructFormater }, { name: 'ClientName', label: '交易对手方', index: 'ClientName', sortIndex: i++, width: hideObj.clientWidth, align: 'center', sortable: false }, { name: 'id', label: 'id', index: 'id', sortIndex: i++, width: 70, align: 'center', hidden: true, optionHide: true, sortable: false }, { name: 'EncryptId', label: 'EncryptId', index: 'EncryptId', sortIndex: i++, width: 70, align: 'center', hidden: true, optionHide: true, sortable: false }, { name: 'IsMoneynessOption', label: 'IsMoneynessOption', index: 'IsMoneynessOption', sortIndex: i++, width: 70, align: 'center', hidden: true, optionHide: true, sortable: false }, { name: 'GroupName', label: '分组名', index: 'GroupName', sortIndex: i++, width: 80, hidden: !page.setGroup, sortable: false }, { name: 'TradeDate', label: '成交日期', index: 'TradeDate', sortIndex: i++, width: 90, align: 'center', formatter: 'date', cellattr: function (cellvalue, options, rowObject) { if (rowObject.MetaDic.IsLockTradingDay === 'True') { if (tradeStatus.contains(rowObject.TradeStatus)) { return "style='background-color:gray;color:white;'"; } else { return "style='background-color: orange'"; } } } }, { name: 'ExerciseDate', label: '到期日期', index: 'ExerciseDate', sortIndex: i++, width: 90, align: 'center', formatter: 'date', cellattr: function (cellvalue, options, rowObject) { if (rowObject.MetaDic.IsMinTradingDay === 'True') { if (tradeStatus.contains(rowObject.TradeStatus)) { return "style='background-color:gray;color:white;'"; } else { return "style='background-color: orange'"; } } } }, { name: 'BuySell', label: '交易方向', index: 'BuySell', sortIndex: i++, width: 70, align: 'center', sortable: false }, { name: 'ExerciseModeCn', label: '行权方式', index: 'ExerciseModeCn', sortIndex: i++, width: 90, align: 'center', sortable: false }, { name: 'TradeType', label: '结构类型', index: 'TradeType', sortIndex: i++, width: 70, align: 'center', sortable: false, formatter: function (cellvalue, options, rowObject) { return rowObject.StructureType && rowObject.IsGroup != 2 ? rowObject.StructureType : rowObject.TradeType; } }, { name: 'OptionType', label: '看涨看跌', index: 'OptionType', sortIndex: i++, width: 70, align: 'center', sortable: false }, { name: 'UnderlyingAssetName', label: '标的名称', index: 'UnderlyingAssetName', sortIndex: i++, width: 95, align: 'center', sortable: false }, { name: 'UnderlyingCode', label: '标的代码', index: 'UnderlyingCode', sortIndex: i++, width: 60, align: 'center', sortable: false, formatter: ShowStructFormater }, { name: 'InitialSpotPrice', label: '期初标的价格', index: 'InitialSpotPrice', sortIndex: i++, width: 85, align: 'center', sortable: false, formatter: otcformat.trading.umprice }, { name: 'TradeType2', label: 'TradeType2', index: 'TradeType2', sortIndex: i++, width: 70, optionHide: true, hidden: true, sortable: false, formatter: function (cellvalue, options, rowObject) { return rowObject.TradeType; } }, { name: 'Strike', label: '执行价格', index: 'Strike', sortIndex: i++, width: 90, align: 'center', sortable: false, formatter: StrikeFormatter, cellattr: function (cellvalue, options, rowObject) { if (rowObject.MetaDic.IsStrikeOffset === 'True') { if (tradeStatus.contains(rowObject.TradeStatus)) { return "style='background-color:gray;color:white;'"; } else { return "style='background-color: orange'"; } } } }, { name: 'TradeSinglePrice', label: '权利金(成交)', index: 'TradeSinglePrice', sortIndex: i++, width: 90, align: 'center', sortable: false, formatter: TradeSinglePriceFormat }, { name: 'TradeOriginalAmount', label: '成交数量', index: 'TradeOriginalAmount', sortIndex: i++, width: 70, align: 'center', sortable: false, formatter: function (cellvalue, options, rowObject) { return otcformat.trading.notional(tradeHelper.getTradeAmountV(rowObject)); } }, { name: 'TradeOriginalAmount', label: '有效成交数量', index: 'TradeOriginalAmount', sortIndex: i++, width: 70, align: 'center', sortable: false, formatter: otcformat.trading.notional }, { name: 'OriginalStockEqvNotionalV2', label: '名义本金', index: 'OriginalStockEqvNotionalV2', sortIndex: i++, width: 70, align: 'center', sortable: false, formatter: otcformat.trading.StockEqvNotional }, { name: 'TradePrice', label: '成交金额', index: 'TradePrice', sortIndex: i++, width: 90, align: 'center', sortable: false, formatter: TradePriceFormat }, { name: 'FinalPrice', label: '期末价格', index: 'FinalPrice', sortIndex: i++, width: 85, align: 'center', hidden: true, optionHide: true, sortable: false, formatter: otcformat.trading.umprice }, { name: 'PairTrade', label: 'PairTrade', index: 'PairTrade', sortIndex: i++, align: 'center', hidden: true, optionHide: true, sortable: false }, { name: 'SyntheticUnderlyingTipsInfo', label: 'SyntheticUnderlyingTipsInfo', index: 'SyntheticUnderlyingTipsInfo', sortIndex: i++, align: 'center', hidden: true, optionHide: true, sortable: false }, { name: 'SalesCommission.Commission', label: '销售提成', index: 'SalesCommission.Commission', sortIndex: i++, width: 90, align: 'center', sortable: false, formatter: CommissionFormatter } ]; colModelGrid.push({ name: 'UnderlyingPrice', label: '最新标的价格', index: 'UnderlyingPrice', sortIndex: i++, width: 65, align: 'center', sortable: false, formatter: otcformat.trading.umprice }); return tradeHelper.getAmountToNotional(colModelGrid); } function ShowStructFormater(cellValue, options, rowObject) { if (rowObject.TradeType === "合成价差期权") { return "{0}" .template(cellValue || '', rowObject.SyntheticUnderlyingTipsInfo); } return cellValue || ''; } function StrikeFormatter(cellValue, options, rowObject) { if (rowObject.TradeType === "自定义交易") { return ""; } else if (rowObject.TradeType === "收益互换") { return "--"; } if (rowObject.Strike) { if (rowObject.IsMoneynessOption === "是") { return otcformat.trading.premiumRateP(rowObject.Strike); } else { return otcformat.trading.umprice(rowObject.Strike); } } else { if (rowObject.Strike === 0) { return otcformat.trading.umprice(0); } else { return ""; } } } 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 NotionalFormat(cellValue, options, rowObject) { if (rowObject.TradeStatus === page.trade_yizhixing || rowObject.TradeStatus === page.trade_yidaoqi || rowObject.TradeStatus === page.trade_yipingcang) { return "0.00"; } else { return otcformat.trading.notional(cellValue); } } function TradeAmountFormat(cellValue, options, rowObject) { if (rowObject.TradeStatus === page.trade_yizhixing || rowObject.TradeStatus === page.trade_yidaoqi || rowObject.TradeStatus === page.trade_yipingcang) { return otcformat.trading.notional(0); } else { return otcformat.trading.notional(cellValue); } } function TradePriceFormat(cellValue, options, rowObject) { return otcformat.trading.tradePrice(cellValue * (rowObject.BuySell === "买入" || rowObject.BuySell === "多头开仓" || rowObject.BuySell === "空头平仓" ? -1 : 1)); } function UnWindFeeFormat(cellValue, options, rowObject) { return otcformat.trading.tradePrice(cellValue); } function unwindDateFormat(cellValue, options, rowObject) { return (rowObject.TradeStatus === "已执行" || rowObject.TradeStatus === "已到期") ? moment(cellValue).format("YYYY-MM-DD") : ""; } function TradeSinglePriceFormat(cellValue, options, rowObject) { if (rowObject.IsUsePremiumRate) { return otcformat.trading.premiumRateP(rowObject.PremiumRate); } else { return otcformat.trading.tradeSinglePrice(cellValue); } } var duichong_TradeType = ["商品期货", "商品现货", "股票"]; function gridComplete() { var jgrid = $(this); $(".selftooltip").tooltip({ html: true, show: 50000, trigger: "hover", container: "body" }); main.setcolumnChooser(jgrid, page.configcolumn_data_substandard); var rowDatas = jgrid.jqGrid('getDataIDs'); for (var i = 0; i < rowDatas.length; i++) { var rowData = rowDatas[i]; var temp = i + 1; var rowdata = jgrid.getRowData(rowData); //股票和期货是绿色 if (duichong_TradeType.contains(rowdata.TradeType)) { //获取每行下的TD更改CSS var tr_temp = jgrid.find("tr:eq({0})".template(temp)); //tr_temp.css("background", "rgba(84, 255, 0, 0.99)"); tr_temp.find("[aria-describedby='listGrid_TradeSinglePrice']").html(" "); tr_temp.find("[aria-describedby='listGrid_StockEqvNotional']").html(" "); tr_temp.find("[aria-describedby='listGrid_Strike']").html(" "); tr_temp.find("[aria-describedby='listGrid_ExerciseModeCn']").html(" "); } } var newHeight = $(window).height() - 350; $(".ui-jqgrid .ui-jqgrid-bdiv").css("cssText", "height: " + newHeight + "px!important;"); selAllGrid(); $('.ui-jqgrid-bdiv', '#gbox_listGrid').floatingScroll(); var opt = { url: "/risk/CurrentSubstandardTradeRule", dataType: "json", success: function (data) { if (data && data.success) { var text = ""; //"合约期限30天以下、行权价偏离标的资产市场价格超过20%的合约" if (data.obj.MinTradingDay) { text += "合约期限" + data.obj.MinTradingDay + "天以下(到期日期高亮)、"; } if (data.obj.LockTradingDay) { text += "存续期" + data.obj.LockTradingDay + "天以内(成交日期高亮)、"; } if (data.obj.StrikeOffset) { text += "行权价偏离标的资产市场价格超过" + otcformat.fixed2P(data.obj.StrikeOffset) + "(执行价格高亮)"; } if (text.length > 0) { if (text.endsWith('、')) { text = text.substring(0, text.length - 1); } text += '的合约(高亮时,存续交易为橘色,已了结交易为灰色)'; } $("#ruleTip").text(text); } } }; main.ajax(opt); } function showToolName(cellValue, options, rowObject) { var color = ""; var title = "查看交易信息"; if (rowObject.PairTrade) { color = "color:blue"; title = "已有匹配交易编号:{0}".template(rowObject.PairTradeNumber); } var html = "" .template(rowObject.EncryptId, rowObject.TradeType, color, title); return html; } function rowdblclick(rowid) { var rowData = $(this).getRowData(rowid); if (rowData.EncryptId && rowData.TradeType) { starttradeView(rowData.EncryptId, rowData.TradeType); } } function starttradeView(id, tradeType) { if (tradeType.indexOf("远期") >= 0) { let srcurl = "/forwardtrade/tradeView/?enid=" + id + "&isFromPositionReport=true"; main.open("查看远期交易", srcurl); } else { let srcurl = "/trade/tradeView/?enid=" + id + "&checkBtn=1"; main.open("查看交易", srcurl, { area: ['1260px', '100%'], scrollbar: false }); } } function reloadtrade() { //重新加载 SearchClick(); } function selAllGrid() { var checkAll = $("#CheckboxAll").prop("checked"); $("#cb_listGrid").click(); var cbGridClick = $("#cb_listGrid").prop("checked"); if (checkAll !== cbGridClick) { $("#cb_listGrid").click(); } } function UpdatePostData() { var listGrid = $('#listGrid'); listGrid.appendPostData({ UnWindTimes: $("#UnWindTimes").val() }); listGrid.appendPostData({ UnWindType: $("#UnWindType").val() }); listGrid.appendPostData({ UnwindDateStart: $("#DateFromUnwindDate").val() }); listGrid.appendPostData({ UnwindDateEnd: $("#DateToUnwindDate").val() }); 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({ 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({ GroupNames: $("#GroupNames").val() }); listGrid.appendPostData({ VolTypes: $("#VolTypes").val() }); var reqTradeStatus = !$("#TradeStatus").val() ? "" : $("#TradeStatus").val().join(","); listGrid.appendPostData({ TradeStatus: reqTradeStatus }); listGrid.appendPostData({ TradeStatus: reqTradeStatus }); listGrid.appendPostData({ OptIds: !$("#OptIds").val() ? "" : $("#OptIds").val().join(",") }); listGrid.appendPostData({ OptDateStart: $("#DateFromOptDate").val() }); listGrid.appendPostData({ OptDateEnd: $("#DateToOptDate").val() }); listGrid.appendPostData({ SubstandardType: $("#SubstandardType").val() }); listGrid.appendPostData({ TraderNames: !$("#TraderName").val() ? "" : $("#TraderName").val().join(",") }); listGrid.appendPostData({ ExerciseDateStart: $("#DateFromExerciseDate").val() }); listGrid.appendPostData({ ExerciseDateEnd: $("#DateToExerciseDate").val() }); //listGrid.appendPostData({ GroupNames: !$("#GroupName").val() ? "" : $("#GroupName").val().join(",") }); if ($("#TradeProjectId").length > 0) { listGrid.appendPostData({ TradeProjectIds: !$("#TradeProjectId").val() ? "" : $("#TradeProjectId").val().join(",") }); } listGrid.appendPostData({ Comments: $("#Comments").val() }); listGrid.appendPostData({ ExerciseMode: $("#ExerciseMode").val() }); listGrid.appendPostData({ TabIndex: page.tabIndexSelect }); var isPairTrade = $("#PairTrade").val() === "是" ? true : ($("#PairTrade").val() === "否" ? false : null); listGrid.appendPostData({ IsPairTrade: isPairTrade }); listGrid.appendPostData({ Strike: $("#Strike").val() }); } function SearchClick(isSearchclick) { var listGrid = $('#listGrid'); UpdatePostData(); query_data = listGrid.jqGrid('getPostData'); if (typeof isSearchclick !== "undefined" && isSearchclick) { //点击搜索时默认第一页 listGrid.jqGrid('setGridParam', { page: 1 }); } listGrid.trigger('reloadGrid'); } function showcolumnChooser() { var jgrid = jQuery('#listGrid'); main.showcolumnChooser(jgrid, page.configcolumn_data_substandard); } function getColModel() { return getColModelDefault(); }