Files
zszq-trs/YLErpWeb/wwwroot/Scripts/app/trade/forwardmultiCloseList.js
T
2024-05-09 14:06:26 +08:00

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;