function starttradeView(id) { var srcurl = "/trade/tradeView/?enid=" + id; main.open("查看交易", srcurl, { area: ['1260px', '800px'] }); } const colModelGrid = (function () { function showToolName(cellValue, options, rowObject) { if (rowObject.TradeEncryptId) { return "".template(rowObject.TradeEncryptId, "查看"); } return ""; } function StrikeFormatter(cellValue, options, rowObject) { 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 0; } else { return ""; } } } var col = [ { name: '', label: '操作', index: '', width: 90, align: 'center', formatter: showToolName, sortable: false }, { name: 'id', label: 'id', index: 'id', width: 0, align: 'center', hidden: true }, { name: 'ClientId', label: 'ClientId', index: 'ClientId', width: 0, align: 'center', hidden: true }, { name: 'UnderlyingId', label: 'UnderlyingId', index: 'UnderlyingId', width: 0, align: 'center', hidden: true }, { name: 'TradeNumber', label: '交易编号', index: 'TradeNumber', width: 150, align: 'center', sortable: false }, { name: 'ClientName', label: '客户名称', index: 'ClientName', width: 150, align: 'center', sortable: false }, { name: 'TradeDate', label: '交易日期', index: 'TradeDate', width: 90, align: 'center', formatter: 'date', sortable: false }, { name: 'TradeAmount', label: '交易数量', index: 'TradeAmount', width: 90, align: 'left', sortable: false, formatter: otcformat.trading.notional }, { name: 'BuySell', label: '交易方向', index: 'BuySell', width: 90, align: 'center', sortable: false }, { name: 'UnderlyingCode', label: '标的代码', index: 'UnderlyingCode', width: 150, align: 'center', sortable: false }, { name: 'UnderlyingAssetClass', label: '标的品种', index: 'UnderlyingAssetClass', width: 150, align: 'center', sortable: false }, { name: 'TradeType', label: '结构类型', index: 'TradeType', width: 90, align: 'center', sortable: false, formatter: function (cellvalue, options, rowObject) { return rowObject.StructureType && rowObject.IsGroup != 2 ? rowObject.StructureType : rowObject.TradeType; } }, { name: 'OptionType', label: '看涨看跌', index: 'OptionType', width: 90, align: 'center', sortable: false }, { name: 'ExerciseDate', label: '到期日期', index: 'ExerciseDate', width: 150, align: 'center', formatter: 'date', sortable: false }, { name: 'Strike', label: '行权价', index: 'Strike', width: 90, align: 'center', formatter: StrikeFormatter, sortable: false }, { name: 'AssetBookName', label: '簿记账户', index: 'AssetBookName', width: 150, align: 'center', sortable: false }]; return tradeHelper.getAmountToNotional(col); }()); function jqgrid_init() { function gridComplete(data) { var jgrid = $(this); var rowIds = jgrid.jqGrid('getDataIDs'); for (var k = 0; k < rowIds.length; k++) { var curRowData = jgrid.jqGrid('getRowData', rowIds[k]); if (curRowData.TradeStatus === '已执行') { var iddata = "'jqg_listGrid_" + rowIds[k] + "'"; jgrid.find("input[id=" + iddata + "]").prop("disabled", "disabled"); } } $(".selftooltip").tooltip({ html: true, show: 50000, trigger: "hover" }); $("input[type=checkbox]").click(function (res) { var cbGridClick = $(this).prop("checked"); var id = $(this).attr("id"); if (!cbGridClick) { if (id.indexOf("listGrid") >= 0) $("#CheckboxAll").prop("checked", false); } }); selAllGrid(); $('.ui-jqgrid-bdiv', '#gbox_listGrid').floatingScroll(); } var grid = $('#listGrid').jqGrid({ url: '/ScenarioAnalysis/TradeScenarioQuery', datatype: 'json', multiselect: true, height: 'auto', width: '90%', autowidth: false, shrinkToFit: false, viewrecords: true, jsonReader: { repeatitems: false }, cmTemplate: { align: 'center', width: 120 }, mtype: 'POST', postData: {}, afterInsertRow: $.noop, onSelectRow: $.noop, ondblClickRow: $.noop, colModel: colModelGrid, pager: jQuery('#pagerGrid'), pagerpos: 'left', rowNum: 20, rowList: [20, 30, 50, 200, 10000], loadComplete: gridComplete, onPaging(r) { var checkAll = $("#CheckboxAll").prop("checked"); if (checkAll) { setTimeout(function () { $("#cb_listGrid").click(); var cbGridClick = $("#cb_listGrid").prop("checked"); if (checkAll !== cbGridClick) { $("#cb_listGrid").click(); } }, 200) } }, footerrow: false }); } $(function () { $(".datepicker").datepicker({ changeMonth: true, changeYear: true, showButtonPanel: true, showOtherMonths: true, selectOtherMonths: true }); main.setTradeDatePicker("", "#PositionDate", page.valueDate, null, false); $("#CheckboxAll").click(selAllGrid); document.onkeydown = function (event) { var e = event ? event : (window.event ? window.event : null); if (e.keyCode === 13) { SearchClick(true); } }; let underlyingCtrl = new tradeHelper.UnderlyingSelectCtrl('#UnderlyingIds') .setFlag(tradeHelper.UnderlyingSelectFlag.OtcTrade); jqgrid_init(); }); function selAllGrid() { var checkAll = $("#CheckboxAll").prop("checked"); $("#cb_listGrid").click(); var cbGridClick = $("#cb_listGrid").prop("checked"); if (checkAll !== cbGridClick) { $("#cb_listGrid").click(); $("#CheckboxAll").prop("checked", checkAll) } } function SearchClick(isSearchclick) { var listGrid = $('#listGrid'); listGrid.appendPostData({ AssetIds: $("#AssetIds").val() }); listGrid.appendPostData({ AssetGroupIds: $("#AssetGroupIds").val() }); listGrid.appendPostData({ ClientIds: $("#ClientIds").val() }); listGrid.appendPostData({ PositionDate: $("#PositionDate").val() }); listGrid.appendPostData({ UnderlyingIds: $("#UnderlyingIds").val() }); listGrid.appendPostData({ VarietyIds: $("#VarietyIds").val() }); listGrid.appendPostData({ TradeTypes: $("#TradeTypes").val() }); if (isSearchclick) { listGrid.jqGrid('setGridParam', { page: 1 }); } listGrid.trigger('reloadGrid'); } function scenarioCalc() { var selIds = main.GetGridIds($('#listGrid')); let data = Object.assign({ IsSelAll: $("#CheckboxAll").prop("checked") }, $('#listGrid').getPostData()); if (!data.IsSelAll) { if (!selIds.length) { return main.alert("请至少选择一笔交易"); } data.EodTradeIds = []; data.OtcTradeIds = []; data.ExchangeTradeIds = []; for (let idstr of selIds) { let index = idstr.lastIndexOf('_'); if (index < 0) continue; let id = parseInt(idstr.substring(0, index)); if (!id) continue; switch (idstr.substring(index + 1)) { case '历史': data.EodTradeIds.push(id); break; case '场外': data.OtcTradeIds.push(id); break; case '场内': data.ExchangeTradeIds.push(id); break; } } } layer.open({ type: 2, title: "情景分析计算", shadeClose: false, shade: 0.4, area: ['1360px', '90%'], content: "/ScenarioAnalysis/ScenarioCalc?" + $.param(data, true) }); } function openConfig() { layer.open({ type: 2, title: "情景分析配置", shadeClose: false, shade: 0.4, area: ['1200px', '600px'], content: "/ScenarioAnalysis/ScenarioList" }); } let testStstus = false; let testNum = 1; let testList = []; function testCalc(num = 1, status = false) { testNum = --num; if (!status) { testStstus = true; $("#CheckboxAll").prop("checked", true); selAllGrid(); } scenarioCalc(); } function getTestStatus() { return testStstus; } function setTestValue(list) { console.debug(list); if (testList.length === 0) { testList = list; } else { //if (testList.length !== list.length) { // main.alert("存在数量差异"); // testStatus = false; //} else { // for (var i = 0; i < testList.length; i++) { // if (list[i] !== testList[i]) { // main.alert("存在值差异"); // testStatus = false; // return; // } // } //} } if (testStstus && testNum > 0) { layer.closeAll(); testCalc(testNum, true); } else { testStstus = false; main.alert("计算完成"); } }