265 lines
11 KiB
JavaScript
265 lines
11 KiB
JavaScript
//--------------------------------------
|
|
// 远期多次了结页面JS
|
|
//--------------------------------------
|
|
|
|
var g_grid = {};
|
|
var query_data = {};
|
|
|
|
var getColModelGrid = function () {
|
|
function DoubleFormat(cellValue, options, rowObject) {
|
|
return cellValue ? cellValue.toFixed(2) : "0.00";
|
|
}
|
|
function StrikeFormatter(cellValue, options, rowObject) {
|
|
if (rowObject.Strike) {
|
|
if (rowObject.IsMoneynessOption === "是") {
|
|
var num = new Number(rowObject.Strike) * 100;
|
|
return num.toFixed(2) + "%";
|
|
} else {
|
|
return rowObject.Strike.toFixed(2);
|
|
}
|
|
} else {
|
|
if (rowObject.Strike === 0) {
|
|
return 0;
|
|
}
|
|
else {
|
|
return "";
|
|
}
|
|
}
|
|
}
|
|
return [
|
|
{ name: 'id', hidden: true, optionHide: true },
|
|
{ name: 'TradeCashId', hidden: true, optionHide: true, key: true },
|
|
{ name: 'IsMoneynessOption', hidden: true, optionHide: true },
|
|
{ name: 'EncryptId', hidden: true, optionHide: true },
|
|
{ name: 'TradeNumber', label: '交易编号', width: 150 },
|
|
{ name: 'ClientName', label: '交易对手方', width: 160 },
|
|
{ name: 'TradeDate', label: '成交日期', width: 90, formatter: 'date', sortable: true },
|
|
{ name: 'ExerciseDate', label: '到期日期', width: 90, formatter: 'date', sortable: true },
|
|
{ name: 'BuySell', label: '买卖方向', width: 70 },
|
|
{ name: 'OptionType', label: '多空方向', width: 70 },
|
|
{
|
|
name: 'TradeType', label: '结构类型', width: 70, formatter: function (cellvalue, options, rowObject) {
|
|
return rowObject.StructureType && rowObject.IsGroup != 2 ? rowObject.StructureType : rowObject.TradeType;
|
|
}
|
|
},
|
|
{ name: 'UnderlyingCode', label: '标的代码', width: 60 },
|
|
{ name: 'UnderlyingName', label: '标的名称', width: 100 },
|
|
{ name: 'SpotPrice', label: '期初标的价格', width: 85, formatter: DoubleFormat, sortable: true },
|
|
{ name: 'Strike', label: '交割价格', width: 90, formatter: StrikeFormatter, sortable: true },
|
|
{ name: 'ForwardValue', label: '远期价值(成交)', width: 90, formatter: DoubleFormat, sortable: true },
|
|
{ name: 'OriginalNotional', label: '成交数量', width: 70, formatter: tradeHelper.getNotionalFormatByDouble, sortable: true },
|
|
{ name: 'TradeCommission', label: '成交手续费', width: 70, formatter: DoubleFormat },
|
|
{ name: 'CloseSeq', label: '了结序号', width: 70 },
|
|
{ name: 'CloseType', label: '了结方式', width: 70 },
|
|
{ name: 'CloseDate', label: '了结日期', width: 70, formatter: 'date', sortable: true },
|
|
{ name: 'FinalPrice', label: '了结标的价格', width: 70, formatter: DoubleFormat, sortable: true },
|
|
{ name: 'UnWindForwardValue', label: '了结远期收益', width: 70, formatter: DoubleFormat },
|
|
{ name: 'UnWindNotional', label: '了结数量', width: 70, formatter: tradeHelper.getNotionalFormatByDouble, sortable: true },
|
|
{ name: 'UnwindPrice', label: '每手了结费用', width: 70, formatter: DoubleFormat, sortable: true },
|
|
{ name: 'UnWindCapitalCost', label: '了结资金成本', width: 70, formatter: DoubleFormat, sortable: true},
|
|
{ name: 'UnwindFee', label: '了结总费用', width: 70, formatter: DoubleFormat, sortable: true },
|
|
{ name: 'RealizedPnl', label: '实现盈亏', width: 70, formatter: DoubleFormat},
|
|
{ name: 'SyntheticUnderlyingTipsInfo', hidden: true, optionHide: true },
|
|
{ name: 'Comments', label: '备注', width: 70 },
|
|
{
|
|
name: 'Tags',
|
|
label: '标签值',
|
|
index: 'Tags',
|
|
width: 150,
|
|
align: 'left',
|
|
sortable: false,
|
|
formatter: function (cellvalue, options, rowObject) {
|
|
var html = '<div class="tag-context">';
|
|
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 += '<span class="tag-item" data-id="' + rowObject.Tags[i].Id + '" data-name="' + rowObject.Tags[i].Name + '"><span class="tag-text" data-value="' + rowObject.Tags[i].Id + '">' + rowObject.Tags[i].Name + '</span></span>';
|
|
}
|
|
html += '<span class="tag-add" title="' + tagNames + '">...</span>';
|
|
} else {
|
|
for (var i = 0; i < rowObject.Tags.length; i++) {
|
|
html += '<span class="tag-item" data-id="' + rowObject.Tags[i].Id + '" data-name="' + rowObject.Tags[i].Name + '"><span class="tag-text" data-value="' + rowObject.Tags[i].Id + '">' + rowObject.Tags[i].Name + '</span></span>';
|
|
}
|
|
}
|
|
}
|
|
html += '</div>';
|
|
return html;
|
|
}
|
|
}
|
|
];
|
|
};
|
|
|
|
var colModelGrid = getColModelGrid();
|
|
|
|
$(function () {
|
|
var PostData = {};
|
|
$(".datepicker").datepicker({
|
|
changeMonth: true,
|
|
changeYear: true,
|
|
showButtonPanel: true,
|
|
showOtherMonths: true,
|
|
selectOtherMonths: true
|
|
});
|
|
|
|
grid = jQuery('#listGrid').jqGrid({
|
|
cmTemplate: {
|
|
width: 80,
|
|
align: 'center',
|
|
sortable: false
|
|
},
|
|
prmNames: { page: 'page', rows: 'rows', sort: 'sidx', order: 'sord' },
|
|
url: '/forwardTrade/AjaxGetMultiCloseList',
|
|
datatype: 'json',
|
|
multiselect: true,
|
|
height: 'auto',
|
|
width: '96%',
|
|
autowidth: false,
|
|
shrinkToFit: false,
|
|
viewrecords: false,
|
|
jsonReader: { repeatitems: false },
|
|
mtype: 'POST',
|
|
postData: PostData,
|
|
ondblClickRow: rowdblclick,
|
|
colModel: colModelGrid,
|
|
pager: jQuery('#pagerGrid'),
|
|
pagerpos: 'left',
|
|
rowNum: 25,
|
|
rowList: [25, 50, 100, 200, 10000],
|
|
footerrow: false,
|
|
loadComplete: gridComplete
|
|
});
|
|
|
|
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.OtcForward);
|
|
|
|
$(window).resize();
|
|
});
|
|
|
|
function gridComplete() {
|
|
var jgrid = $(this);
|
|
$(".selftooltip").tooltip({ html: true, show: 50000, trigger: "hover" });
|
|
var newHeight = $(window).height() - 350;
|
|
$(".ui-jqgrid .ui-jqgrid-bdiv").css("cssText", "height: " + newHeight + "px!important;");
|
|
$('.ui-jqgrid-bdiv', '#gbox_listGrid').floatingScroll();
|
|
}
|
|
|
|
function rowdblclick(rowid) {
|
|
var rowData = $(this).getRowData(rowid);
|
|
if (rowData.EncryptId && rowData.TradeType) {
|
|
starttradeView(rowData.EncryptId, rowData.TradeType);
|
|
}
|
|
}
|
|
|
|
function starttradeView(id, tradeType) {
|
|
let srcurl = "/forwardtrade/tradeView/?enid=" + id + "&isFromPositionReport=true";
|
|
main.open("查看" + tradeType + "交易", srcurl);
|
|
}
|
|
|
|
function reloadtrade() {
|
|
//重新加载
|
|
SearchClick();
|
|
}
|
|
|
|
function SearchClick(isSearchclick) {
|
|
var listGrid = $('#listGrid');
|
|
listGrid.appendPostData({ TradeNumber: $("#TradeNumber").val() });
|
|
listGrid.appendPostData({ ContractCode: $("#ContractCode").val() });
|
|
listGrid.appendPostData({ ClientIds: !$("#ClientId").val() ? "" : $("#ClientId").val().join(",") });
|
|
listGrid.appendPostData({ UnderlyingIds: !$("#UnderlyingId").val() ? "" : $("#UnderlyingId").val().join(",") });
|
|
listGrid.appendPostData({ TradeDateStart: $("#DateFromTradeDate").val() });
|
|
listGrid.appendPostData({ TradeDateEnd: $("#DateToTradeDate").val() });
|
|
listGrid.appendPostData({ StartDateStart: $("#DateFromStartDate").val() });
|
|
listGrid.appendPostData({ StartDateEnd: $("#DateToStartDate").val() });
|
|
listGrid.appendPostData({ ExerciseDateStart: $("#DateFromExerciseDate").val() });
|
|
listGrid.appendPostData({ ExerciseDateEnd: $("#DateToExerciseDate").val() });
|
|
listGrid.appendPostData({ UnwindDateStart: $("#DateFromUnwindDate").val() });
|
|
listGrid.appendPostData({ UnwindDateEnd: $("#DateToUnwindDate").val() });
|
|
listGrid.appendPostData({ TagIds: $("#TagIds").val() });
|
|
query_data = listGrid.jqGrid('getPostData');
|
|
if (isSearchclick) {
|
|
//点击搜索时默认第一页
|
|
listGrid.jqGrid('setGridParam', { page: 1 });
|
|
}
|
|
listGrid.trigger('reloadGrid');
|
|
}
|
|
|
|
function exportData() {
|
|
var $form = $('#exportForm').html('');
|
|
_.each(query_data, (val, key) => {
|
|
if (!val) {
|
|
val = '';
|
|
} else if (_.isArray(val)) {
|
|
_.each(val, x => {
|
|
$form.append(`<input type="hidden" name="${key}" value="${x}">`);
|
|
});
|
|
return;
|
|
}
|
|
$form.append(`<input type="hidden" name="${key}" value="${val}">`);
|
|
});
|
|
$form.submit();
|
|
}
|
|
|
|
function exportTrade(isExportAllCol) {
|
|
if (!isExportAllCol) {
|
|
var dateTemp = new Date().Format("yyyyMMddhhmmss");
|
|
var fileName = "远期了结记录导出" + dateTemp;
|
|
main.toExcel("listGrid", fileName, "xls", null, "操作者,操作时间,操作", [
|
|
{
|
|
colName: "交易编号",
|
|
formatter: "text"
|
|
},
|
|
{
|
|
colName: "交易对手方",
|
|
formatter: "text"
|
|
}, {
|
|
colName: "标的代码",
|
|
formatter: function (cellValue, options, rowObject) {
|
|
if (rowObject.TradeType === "合成价差期权") {
|
|
return rowObject.SyntheticUnderlyingTipsInfo;
|
|
}
|
|
return cellValue;
|
|
}
|
|
}, {
|
|
colName: "标的名称",
|
|
formatter: "text"
|
|
}]);
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
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 });
|
|
}
|
|
|
|
function reloadtrade() {
|
|
//重新加载
|
|
SearchClick();
|
|
}
|
|
|
|
window.reloadData = reloadtrade; |