Files
zszq-trs/YLErpWeb/wwwroot/Scripts/app/trade/swapTradePreEndList.js
T
2025-04-23 14:06:41 +08:00

488 lines
16 KiB
JavaScript

function getColModelGrid() {
var i = 0;
var colModelGrid = [
{
name: 'trade.id',
hidden: true,
optionHide: true
}, {
name: 'id',
hidden: true,
optionHide: true
}, {
name: 'trade.IsMoneynessOption',
label: 'trade.IsMoneynessOption',
index: 'trade.IsMoneynessOption',
sortIndex: i++,
width: 70,
align: 'center',
hidden: true,
optionHide: true
}, {
name: 'trade.EncryptId',
label: 'trade.EncryptId',
index: 'trade.EncryptId',
sortIndex: i++,
width: 70,
align: 'center',
hidden: true,
optionHide: true
}, {
name: 'trade.TradeStatus',
label: '交易状态',
index: 'trade.TradeStatus',
sortIndex: i++,
width: 100,
align: 'center',
formatter: tradeStatusFormat
},
{
name: 'trade.TradeNumber',
label: '交易编号',
index: 'trade.TradeNumber',
sortIndex: i++,
width: 240,
align: 'center'
}, {
name: 'trade.AssetBookName',
label: '簿记帐户',
index: 'trade.AssetBookName',
sortIndex: i++,
width: 150,
align: 'center'
}, {
name: 'trade.ClientName',
label: '交易对手方',
index: 'trade.ClientName',
sortIndex: i++,
width: 300,
align: 'center'
}, {
name: 'trade.TradeDate',
label: '成交日期',
index: 'trade.TradeDate',
sortIndex: i++,
width: 90,
align: 'center',
formatter: 'date'
}, {
name: 'trade.ExerciseDate',
label: '到期日期',
index: 'trade.ExerciseDate',
sortIndex: i++,
width: 90,
align: 'center',
formatter: 'date'
}, {
name: 'trade.SettlementDate',
label: '结算日期',
index: 'trade.SettlementDate',
sortIndex: i++,
width: 90,
align: 'center',
formatter: 'date'
}, {
name: 'trade.SettlementFlag',
label: '是否延期结算',
index: 'trade.SettlementFlag',
sortIndex: i++,
width: 100,
align: 'center',
sortable: false,
formatter: YesOrNoFormat
}, {
name: 'trade.TradeType',
label: '结构类型',
index: 'trade.TradeType',
sortIndex: i++,
width: 120,
align: 'center',
formatter: function (cellvalue, options, rowObject) {
return rowObject.trade.StructureType && rowObject.trade.IsGroup != 2 ? rowObject.trade.StructureType : rowObject.trade.TradeType;
}
}, {
name: 'trade.OriginalStockEqvNotional',
label: '名义本金',
index: 'trade.OriginalStockEqvNotional',
sortIndex: i++,
width: 70,
align: 'center',
formatter: doubleFormat
}, {
name: 'trade.trade_swap.AnnualDays',
label: '年化天数',
index: 'trade.trade_swap.AnnualDays',
sortIndex: i++,
width: 70,
align: 'center',
sortable: false,
}, {
name: 'trade_cash.ValueDate',
label: '终止日期',
index: 'trade_cash.ValueDate',
sortIndex: i++,
width: 95,
align: 'right',
formatter: 'date'
}, {
name: 'trade_cash.Amount',
label: '终止金额',
index: 'trade_cash.Amount',
sortIndex: i++,
width: 70,
align: 'right',
formatter: otcformat.trading.tradePrice
}, {
name: 'trade.trade_swap.IsGetFloatingProfit',
label: '[收取]浮动收益',
index: 'trade.trade_swap.IsGetFloatingProfit',
sortIndex: i++,
width: 100,
align: 'center',
sortable: false,
formatter: YesOrNoFormat
}, {
name: 'trade.trade_swap.GetUnderlyingCode',
label: '[收取]标的代码',
index: 'trade.trade_swap.GetUnderlyingCode',
sortIndex: i++,
width: 100,
align: 'center',
sortable: false,
}, {
name: 'trade.MetaDic.GetUnderlyingName',
label: '[收取]标的名称',
index: 'trade.MetaDic.GetUnderlyingName',
sortIndex: i++,
width: 100,
align: 'center',
sortable: false,
}, {
name: 'trade.trade_swap.GetLongShort',
label: '[收取]多头空头',
index: 'trade.trade_swap.GetLongShort',
sortIndex: i++,
width: 100,
align: 'center',
sortable: false,
}, {
name: 'trade.trade_swap.GetSpotPrice',
label: '[收取]标的期初价格',
index: 'trade.trade_swap.GetSpotPrice',
sortIndex: i++,
width: 100,
align: 'center',
sortable: false,
formatter: otcformat.trading.umprice
}, {
name: 'trade.trade_swap.GetTradeAmount',
label: '[收取]交易数量',
index: 'trade.trade_swap.GetTradeAmount',
sortIndex: i++,
width: 100,
align: 'center',
sortable: false,
formatter: function (cellValue, options, rowObject) {
return otcformat.trading.notional(page.IsUseDisplayNotional ? (rowObject.trade.CountRatio || 1) * cellValue : cellValue);
}
}, {
name: 'trade.trade_swap.GetTradePrice',
label: '[收取]交易费用',
index: 'trade.trade_swap.GetTradePrice',
sortIndex: i++,
width: 100,
align: 'center',
sortable: false,
formatter: otcformat.trading.tradePrice
}, {
name: 'trade.trade_swap.GetSwapTimeAndRate',
label: '[收取]互换利率(年化)',
index: 'trade.trade_swap.GetSwapTimeAndRate',
sortIndex: i++,
width: 100,
align: 'center',
sortable: false,
formatter: SwapTimeAndRateFormat
}, {
name: 'trade_cash_swap.GetFinalPrice',
label: '[收取]终止标的价格',
index: 'trade_cash_swap.GetFinalPrice',
sortIndex: i++,
width: 100,
align: 'center',
sortable: false,
formatter: otcformat.trading.umprice
}, {
name: 'trade.trade_swap.IsPayFloatingProfit',
label: '[支付]浮动收益',
index: 'trade.trade_swap.IsPayFloatingProfit',
sortIndex: i++,
width: 100,
align: 'center',
sortable: false,
formatter: YesOrNoFormat
}, {
name: 'trade.trade_swap.PayUnderlyingCode',
label: '[支付]标的代码',
index: 'trade.trade_swap.PayUnderlyingCode',
sortIndex: i++,
width: 100,
align: 'center',
sortable: false,
}, {
name: 'trade.MetaDic.PayUnderlyingName',
label: '[支付]标的名称',
index: 'trade.MetaDic.PayUnderlyingName',
sortIndex: i++,
width: 100,
align: 'center',
sortable: false,
}, {
name: 'trade.trade_swap.PayLongShort',
label: '[支付]多头空头',
index: 'trade.trade_swap.PayLongShort',
sortIndex: i++,
width: 100,
align: 'center',
sortable: false,
}, {
name: 'trade.trade_swap.PaySpotPrice',
label: '[支付]标的期初价格',
index: 'trade.trade_swap.PaySpotPrice',
sortIndex: i++,
width: 100,
align: 'center',
sortable: false,
formatter: otcformat.trading.umprice
}, {
name: 'trade.trade_swap.PayTradeAmount',
label: '[支付]交易数量',
index: 'trade.trade_swap.PayTradeAmount',
sortIndex: i++,
width: 100,
align: 'center',
sortable: false,
formatter: function (cellValue, options, rowObject) {
return otcformat.trading.notional(page.IsUseDisplayNotional ? (rowObject.trade.CountRatio || 1) * cellValue : cellValue);
}
}, {
name: 'trade.trade_swap.PayTradePrice',
label: '[支付]交易费用',
index: 'trade.trade_swap.PayTradePrice',
sortIndex: i++,
width: 100,
align: 'center',
sortable: false,
formatter: otcformat.trading.tradePrice
}, {
name: 'trade.trade_swap.PaySwapTimeAndRate',
label: '[支付]互换利率(年化)',
index: 'trade.trade_swap.PaySwapTimeAndRate',
sortIndex: i++,
width: 100,
align: 'center',
sortable: false,
formatter: SwapTimeAndRateFormat
}, {
name: 'trade_cash_swap.PayFinalPrice',
label: '[支付]终止标的价格',
index: 'trade_cash_swap.PayFinalPrice',
sortIndex: i++,
width: 100,
align: 'center',
sortable: false,
formatter: otcformat.trading.umprice
}
];
return colModelGrid;
}
function exportTrade() {
var dateTemp = new Date().Format("yyyyMMddhhmmss");
var fileName = "Trade_" + page.tabName + "_" + dateTemp;
main.toExcel("listGrid", fileName, "xls", null, "操作者,操作时间,操作", [{
colName: "标的代码",
formatter: function (cellValue, options, rowObject) {
if (rowObject["trade.TradeType"] === "合成价差期权") {
return rowObject.trade.SyntheticUnderlyingTipsInfo;
}
return cellValue;
}
}]);
}
var g_grid = {};
$(function () {
showTabTotalCount();
$("#tab3_4NotShow").show();
var PostData = {};
PostData.ValueDateStart = page.valueDate;
PostData.ValueDateEnd = page.valueDate;
PostData.TabIndex = page.tabIndex;
PostData.IsHistoryWithUnconfirmed = true;
$(".datepicker").datepicker({
changeMonth: true,
changeYear: true,
showButtonPanel: true,
showOtherMonths: true,
selectOtherMonths: true
});
var colModelGrid = getColModelGrid();
grid = jQuery('#listGrid').jqGrid({
url: "/clientbalance/GetPreEndList/swap",
datatype: 'json',
multiselect: true,
height: 'auto',
width: '96%',
autowidth: false,
shrinkToFit: false,
viewrecords: true,
jsonReader: { repeatitems: false },
caption: '',
mtype: 'POST',
postData: PostData,
colModel: colModelGrid,
pager: jQuery('#pagerGrid'),
pagerpos: 'left',
ondblClickRow: rowdblclick,
rowNum: 20,
rowList: [20, 30, 50, 200, 10000],
footerrow: false,
loadComplete: gridComplete,
grouping: true
});
main.isSearching = true;
g_grid = jQuery('#listGrid');
function keyEnter(event) {
try {
var e = event || window.event || {};
if (e.keyCode === 13) {
SearchClick(true);
}
} catch (e) {
//
}
}
document.onkeydown = keyEnter;
let underlyingCtrl = new tradeHelper.UnderlyingSelectCtrl('#UnderlyingId').setFlag(tradeHelper.UnderlyingSelectFlag.OtcTrade);
});
function showTabTotalCount() {
main.post("/swaptrade/tradeCountsOnValueDateQuery").done(function (data) {
for (var i in data) {
$(`#tab${i}`).find("a").attr("title", `总数${data[i]}笔`);
}
$(".selftooltip").tooltip({ html: true, show: 50000, trigger: "hover" });
});
}
function rowdblclick(rowid) {
var rowData = $(this).getRowData(rowid);
starttradeView(rowData["trade.EncryptId"], rowData["trade.TradeType"]);
}
function doubleFormat(cellValue, options, rowObject) {
return cellValue === null || cellValue === undefined ? "0.00" : otcformat.trading.StockEqvNotional(cellValue) === "NaN" ? "0.00" : otcformat.trading.StockEqvNotional(cellValue);
}
function tradeStatusFormat(cellValue, options, rowObject) {
return (rowObject.trade_cash.Action === "系统操作-行权费" || ((rowObject.trade.TradeStatus === "行权待复核" || rowObject.trade.TradeStatus === "平仓待复核") && rowObject.trade_cash.ValidState === "InValid")) ? rowObject.trade.TradeStatus : (rowObject.trade_cash.Action === "系统操作-互换" ? "互换" : (rowObject.trade_cash.Notional - rowObject.trade_cash.UnwindNotional > 1e-5 ? "部分平仓" : "已平仓"));
}
function YesOrNoFormat(cellValue, options, rowObject) {
return cellValue ? "是" : "否";
}
function gridComplete() {
var jgrid = $(this);
var newHeight = $(window).height() - 400;
$(".ui-jqgrid .ui-jqgrid-bdiv").css("cssText", "height: " + newHeight + "px!important;");
$('.ui-jqgrid-bdiv', '#gbox_listGrid').floatingScroll();
$(".selftooltip").tooltip({ html: true, show: 50000, trigger: "hover" });
main.setcolumnChooser(jgrid, page.configcolumn_name);
}
function customButton(cellValue, options, rowObject) {
var imageHtml = "<input type=\"button\" value=\"删除\" class=\"btn-warning\" onclick=\"deletetrade('" +
rowObject.trade.EncryptId +
"');\" />";
return imageHtml;
}
function downloadFiles(files) {
if (files instanceof Array) {
if (files.length > 0) {
$.each(files, function (index, val) {
val && setTimeout(function () { window.open(val); }, 500);
});
}
} else {
files && window.open(files);
}
}
function rowclick(id) { }
function starttradeView(id, tradeType) {
main.open("查看交易", "/trade/tradeView/?enid={0}".template(id));
}
function reloadtrade() {
//重新加载
SearchClick();
$('#modal-edittrade').modal('hide');
}
function setGridPostData() {
var listGrid = $('#listGrid');
listGrid.appendPostData({ ClientIds: $("#ClientId").val() });
listGrid.appendPostData({ UnderlyingIds: $("#UnderlyingId").val() });
listGrid.appendPostData({ TradeNumber: $("#TradeNumber").val() });
listGrid.appendPostData({ TradeDateStart: $("#DateFromTradeDate").val() });
listGrid.appendPostData({ TradeDateEnd: $("#DateToTradeDate").val() });
listGrid.appendPostData({ ExerciseDateStart: $("#DateFromExerciseDate").val() });
listGrid.appendPostData({ ExerciseDateEnd: $("#DateToExerciseDate").val() });
listGrid.appendPostData({ TabIndex: page.tabIndex });
}
function SearchClick(isSearchclick) {
setGridPostData();
if (isSearchclick) {
//点击搜索时默认第一页
$('#listGrid').jqGrid('setGridParam', { page: 1 });
}
$('#listGrid').trigger('reloadGrid');
}
function showcolumnChooser() {
var jgrid = jQuery('#listGrid');
main.showcolumnChooser(jgrid, page.configcolumn_name);
}
function PercentFormat(cellValue, options, rowObject) {
if (cellValue) {
var num = new Number(cellValue) * 100;
return num.toFixed(2) + "%";
} else {
return "0.00%";
}
}
function SwapTimeAndRateFormat(cellValue, options, rowObject) {
if (cellValue != null && cellValue.indexOf(";") > 0) {
var spCellValue = cellValue.split(";")[1];
if (spCellValue != null && spCellValue.indexOf(",") > 0) {
return PercentFormat(spCellValue.split(",")[0]);
} else {
return PercentFormat(spCellValue);
}
}
return PercentFormat(cellValue);
}