function init() { var obj = { url: "/trade/QueryDividendTradeList", datatype: 'local', //multiselect: true, height: 'auto', width: '96%', autowidth: false, shrinkToFit: false, viewrecords: true, jsonReader: { repeatitems: false }, caption: '', mtype: 'POST', colModel: GetColModel(), ondblClickRow: rowdblclick, pager: jQuery('#pagerGrid'), pagerpos: 'left', //rowNum: 20, //rowList: [20, 30, 50, 200, 10000], footerrow: false, }; var g_grid = jQuery('#listGrid').jqGrid(obj); $(".datepicker").datepicker({ changeMonth: true, changeYear: true, showButtonPanel: true, showOtherMonths: true, selectOtherMonths: true }); $("#DateValueDate").val(sysdate); $("#DateValueDate").datepicker({ changeMonth: true, changeYear: true, showButtonPanel: true, showOtherMonths: true, selectOtherMonths: true, onSelect: function (se) { //queryReportInfo(); } }); //$("#DateValueDate").change(queryReportInfo); try { SetAceDropDown(); } catch (e) { } let underlyingCtrl = new tradeHelper.UnderlyingSelectCtrl('#UnderlyingId').setFlag(tradeHelper.UnderlyingSelectFlag.OtcTrade); FastVue.numberInput('closePrice', { precision: 6 }); FastVue.numberInput('dividRate', { precision: 6 }); FastVue.numberInput('giveCash', { precision: 6 }); FastVue.numberInput('giveShare', { precision: 6 }); FastVue.numberInput('rationedSharesAmount', { precision: 6 }); FastVue.numberInput('rationedSharesPrice', { precision: 6 }); FastVue.numberInput('dividendRatio', { precision: 6 }); var ratioFormat = main.numberFormat(6); $("[name='calcRatio']").change(() => { var closePrice = Number($("#closePrice").val()) || 0; var dividRate = Number($("#dividRate").val()) || 0; var giveCash = Number($("#giveCash").val()) || 0; var giveShare = Number($("#giveShare").val()) || 0; var rationedSharesAmount = Number($("#rationedSharesAmount").val()) || 0; var rationedSharesPrice = Number($("#rationedSharesPrice").val()) || 0; var tatio = closePrice / ((closePrice * 10 - (giveCash * (1 - dividRate)) + rationedSharesAmount * rationedSharesPrice) / (10 + giveShare + rationedSharesAmount)); if (tatio && tatio < 0) { tatio = 0; } $("#dividendRatio").val(ratioFormat(tatio)); }); SearchClick(); } function setDividendRatio(id) { //var ids = main.GetGridIds($("#listGrid"), "TradeId") //if (!ids || ids.length == 0) { // main.alert("请勾选要设置的条目"); // return; //} $("#dividendRatio").val(""); $("[name='calcRatio']").val(""); layer.open({ type: 1, title: "设置", shadeClose: false, shade: 0.4, area: ['420px', '580px'], content: $("#dividendRatioPanel"), btn: ['保存', '取消'], yes: function (index, layero) { var ratio = Number($("#dividendRatio").val()) || 0; if (ratio <= 0) { main.alert("除权除息系数应为大于0的值,请重新填写"); return; } var opt = { url: "/trade/DevidendRatio", data: { ids: [id], optDate: $("#DateValueDate").val(), ratio: $("#dividendRatio").val() }, dataType: "json", success: function (data) { if (data && data.Success) { main.message("保存成功"); $("#ratio_" + id).text($("#dividendRatio").val()); } else { main.alert("保存出错,请联系管理员查看系统日志"); } layer.close(index); } }; main.ajax(opt); }, cancel: function (index, layero) { layer.close(index); } }); } function removeDividendRatio(id) { var opt = { url: "/trade/DevidendRatio", data: { ids: [id], optDate: $("#DateValueDate").val(), ratio: 0 }, dataType: "json", success: function (data) { if (data && data.Success) { main.message("操作成功,已重置为默认值"); $("#ratio_" + id).text(""); } else { main.alert("操作出错,请联系管理员查看系统日志"); } } }; main.ajax(opt); } function GetColModel() { return [ { name: 'EncryptId', label: 'EncryptId', width: 150, sortable: false, hidden: true, optionHide: true }, { name: 'TradeId', label: 'TradeId', width: 150, sortable: false, hidden: true, optionHide: true }, { name: 'TradeNumber', label: '交易编号', width: 150, sortable: false }, { name: 'DividendStatus', label: '除权除息状态', width: 150, sortable: false, formatter: function (cellvalue, options, rowObject) { return cellvalue ? "已除权" : "未除权"; } }, { name: 'TradeStatus', label: '交易状态', width: 160, sortable: false }, { name: 'ClientName', label: '交易对手方', width: 160, sortable: false }, { name: 'TradeType', label: '结构类型', width: 70, sortable: false }, { name: 'StockEqvNotional', label: '名义本金', width: 90, sortable: false, formatter: formatter }, { name: 'TradeDate', label: '成交日期', width: 90, formatter: 'date', sortable: false }, { name: 'ExerciseDate', label: '到期日期', width: 90, formatter: 'date', sortable: false }, { name: 'UnderlyingCode', label: '标的代码', width: 80, sortable: false }, { name: 'DividendRatio', label: '除权除息系数', width: 120, sortable: false, formatter: ratioFormatter }, { name: 'SpotPrice', label: '期初标的价格', width: 90, sortable: false, formatter: formatter }, { name: 'Strike', label: '执行价格', width: 90, sortable: false, formatter: formatter }, { name: 'TradeOriginalAmountV', label: '成交数量', width: 70, sortable: false, formatter: formatter }, { name: 'TradeOriginalAmount', label: '有效成交数量', width: 90, sortable: false, formatter: formatter }, { name: 'StrikeHigh', label: '高行权价', width: 70, sortable: false, formatter: formatter }, { name: 'Barrier', label: '障碍价格', width: 70, sortable: false, formatter: formatter }, { name: 'BarrierHigh', label: '高障碍价格', width: 70, sortable: false, formatter: formatter }, { name: 'KIBarrier', label: '敲入障碍价格', width: 70, sortable: false, formatter: formatter }, { name: 'KOBarrier', label: '敲出障碍价格', width: 70, sortable: false, formatter: formatter }, { name: 'CouponBarrier', label: '票息障碍价格', width: 70, sortable: false, formatter: formatter }, { name: 'GetUnderlyingCode', label: '互换标的代码(收取方)', width: 70, sortable: false }, { name: 'GetSpotPrice', label: '互换标的价格(收取方)', width: 70, sortable: false, formatter: formatter }, { name: 'PayUnderlyingCode', label: '互换标的代码(支付方)', width: 70, sortable: false }, { name: 'PaySpotPrice', label: '互换标的价格(支付方)', width: 70, sortable: false, formatter: formatter }, { name: 'LowerRange', label: '区间下限', width: 70, sortable: false, formatter: formatter }, { name: 'UpperRange', label: '区间上限', width: 70, sortable: false, formatter: formatter }, { name: 'SpreadStrikeAtKO1', label: '敲出期权行权价1', width: 70, sortable: false, formatter: formatter }, { name: 'SpreadStrikeAtKO', label: '敲出期权行权价2', width: 70, sortable: false, formatter: formatter }, { name: 'SpreadStrikeAtMaturity1', label: '敲入期权行权价1', width: 70, sortable: false, formatter: formatter }, { name: 'SpreadStrikeAtMaturity', label: '封顶/封底行权价', width: 70, sortable: false, formatter: formatter }, ]; } function ratioFormatter(cellvalue, options, rowObject) { var html = "" + numberFormatter(cellvalue, options, rowObject) + ""; if (!rowObject.DividendStatus) { html += ""; html += ""; } return html; } function numberFormatter(cellvalue, options, rowObject) { var result = cellvalue; if (result && result == "NaN") { result = ""; } return result; } function formatter(cellvalue, options, rowObject) { var formatCallBack = {}; switch (options.colModel.label) { case "有效成交数量": case "成交数量": formatCallBack = otcformat.trading.notional; break; default: formatCallBack = otcformat.trading.umprice; break; } var afterName = options.colModel.name + "_After"; var tempValue = numberFormatter(cellvalue, options, rowObject); var result = ""; if (tempValue) { result = String(formatCallBack(tempValue)); } tempValue = numberFormatter(rowObject[afterName], options, rowObject) if (tempValue) { result = result + "(" + formatCallBack(tempValue) + ")"; } return result; } function exportTradeChoose() { $("#DateFromDividendDate").val($("#DateValueDate").val()); $("#DateToDividendDate").val($("#DateValueDate").val()); layer.open({ type: 1, title: "导出除权除息交易信息", shadeClose: false, shade: 0.4, area: ['300px', '180px'], content: $("#exportPanel"), btn: ['确定', '取消'], yes: function (index, layero) { exportSubmit("/trade/ExportDividendTradeList", { DividendDate: $("#DateFromDividendDate").val(), DividendDateEnd: $("#DateToDividendDate").val() }); }, cancel: function (index, layero) { layer.close(index); } }); } function exportSubmit(url, postData) { var $form = $('#exportForm').html(''); $form.attr("action", url) _.each(postData, (val, key) => { if (!val) { val = ''; } else if (_.isArray(val)) { _.each(val, x => { $form.append(``); }); return; } $form.append(``); }); $form.submit(); } function UpdatePostData() { var listGrid = $('#listGrid'); listGrid.appendPostData({ DividendDate: $("#DateValueDate").val() }); listGrid.appendPostData({ TradeNumber: $("#TradeNumber").val() }); listGrid.appendPostData({ ClientIds: !$("#ClientId").val() ? [] : $("#ClientId").val() }); listGrid.appendPostData({ TraderIds: !$("#TraderName").val() ? [] : $("#TraderName").val() }); listGrid.appendPostData({ TradeDateStart: $("#DateFromTradeDate").val() }); listGrid.appendPostData({ TradeDateEnd: $("#DateToTradeDate").val() }); listGrid.appendPostData({ ExerciseDateStart: $("#DateFromExerciseDate").val() }); listGrid.appendPostData({ ExerciseDateEnd: $("#DateToExerciseDate").val() }); listGrid.appendPostData({ AssetUnitIds: !$("#AssetId").val() ? [] : $("#AssetId").val() }) listGrid.appendPostData({ GroupId: $("#GroupId").val() }) listGrid.appendPostData({ TradeTypes: !$("#TradeTypes").val() ? [] : $("#TradeTypes").val() }); listGrid.appendPostData({ UnderlyingIds: !$("#UnderlyingId").val() ? [] : $("#UnderlyingId").val() }); listGrid.appendPostData({ DividendStatus: $("#DividendStatus").val().length == 1 ? $("#DividendStatus").val()[0] : null }); } 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 SearchClick(isSearchclick) { var listGrid = $('#listGrid'); listGrid.jqGrid('setGridParam', { datatype: 'json' }); UpdatePostData(); if (typeof (isSearchclick) != "undefined" && isSearchclick) { //点击搜索时默认第一页 listGrid.jqGrid('setGridParam', { page: 1 }); } listGrid.trigger('reloadGrid'); }