Files
zszq-trs/YLErpWeb/wwwroot/Scripts/app/swaptrade/swapTradeList.js
T

532 lines
15 KiB
JavaScript

var g_grid = {};
var query_data = {};
$(function () {
var PostData = {};
if (observationDate) {
$("#DateValueDate").val(observationDate);
PostData.ValueDate = observationDate;
}
if (settleDate) {
$("#DateFromExerciseDate").val(settleDate);
$("#DateToExerciseDate").val(settleDate);
PostData.ExerciseDateStart = settleDate;
PostData.ExerciseDateEnd = settleDate;
}
$(".datepicker").datepicker({
changeMonth: true,
changeYear: true,
showButtonPanel: true,
showOtherMonths: true,
selectOtherMonths: true
});
grid = jQuery('#listGrid').jqGrid({
cmTemplate: {
width: 80,
align: 'center',
sortable: false
},
url: '/swapTrade2/TradeQuery',
datatype: 'json',
multiselect: true,
height: 'auto',
width: '96%',
autowidth: false,
shrinkToFit: false,
viewrecords: true,
jsonReader: { repeatitems: false },
caption: '',
mtype: 'POST',
postData: PostData,
afterInsertRow: AfterInsertRow,
onSelectRow: rowclick,
ondblClickRow: rowdblclick,
colModel: colModelGrid,
pager: jQuery('#pagerGrid'),
pagerpos: 'left',
rowNum: 20,
rowList: [20, 30, 50, 200, 10000],
footerrow: false,
loadComplete: gridComplete,
onPaging: onJqgridPaging,
});
function keyEnter(event) {
try {
var e = event ? event : (window.event ? window.event : null);
if (e.keyCode === 13) {
SearchClick(true);
}
} catch (e) {
//
}
}
document.onkeydown = keyEnter;
$("#CheckboxAll").click(function () {
//setall
selAllGrid();
});
});
var hideObj = { clientWidth: 160 };
var i = 0;
var getColModelGrid = function () {
var col = [
{
name: 'id',
label: 'id',
index: 'id',
sortIndex: i++,
width: 70,
align: 'center',
hidden: true,
optionHide: true
}, {
name: 'EncryptId',
label: 'EncryptId',
index: 'EncryptId',
sortIndex: i++,
width: 70,
align: 'center',
hidden: true,
optionHide: true
}, {
name: 'OptDate',
label: '操作时间',
index: 'OptDate',
sortIndex: i++,
width: 160,
align: 'center',
sortable: true,
formatter: 'datetime'
}, {
name: 'OptName',
label: '操作者',
index: 'OptName',
sortIndex: i++,
width: 70,
align: 'center'
}, {
name: 'Comments',
label: '备注',
index: 'Comments',
sortIndex: i++,
width: 110,
align: 'center',
formatter: function (cellValue, options, rowObject) {
if (cellValue && cellValue.startsWith("http://")) {
return "<a href='{0}' style='text-decoration:underline;' target='_blank'>{0}</a>".template(cellValue);
}
return cellValue == null ? "" : cellValue;
}
}
, {
name: 'AssetBookName',
label: '簿记账户',
index: 'AssetBookName',
sortIndex: i++,
width: 110,
align: 'center'
}, {
name: 'TradeStatus',
label: '交易状态',
index: 'TradeStatus',
sortIndex: i++,
width: 70,
align: 'center'
}, {
name: 'TradeNumber',
label: '交易编号',
index: 'TradeNumber',
sortIndex: i++,
width: 240,
align: 'center',
formatter: ShowStructFormater
}, {
name: 'ContractCode',
label: '确认书编号',
index: 'ContractCode',
sortIndex: i++,
width: 240,
align: 'center',
hidden: true,
formatter: ShowStructFormater
}, {
name: 'TradeDate',
label: '交易日期',
index: 'TradeDate',
sortIndex: i++,
width: 90,
align: 'center',
sortable: true,
formatter: 'date'
}, {
name: 'StartDate',
label: '开始日期',
index: 'StartDate',
sortIndex: i++,
width: 90,
align: 'center',
sortable: true,
formatter: 'date'
}, {
name: 'ExerciseDate',
label: '到期日期',
index: 'ExerciseDate',
sortIndex: i++,
width: 90,
align: 'center',
sortable: true,
formatter: 'date'
}, {
name: 'TradeType',
label: '结构类型',
index: 'TradeType',
sortIndex: i++,
width: 70,
align: 'center'
}, {
name: 'StructureType',
label: '互换类型',
index: 'StructureType',
sortIndex: i++,
width: 160,
align: 'center'
}, {
name: 'UnderlyingCode',
label: '标的代码',
index: 'UnderlyingCode',
sortIndex: i++,
width: 90,
align: 'center'
}, {
name: 'OriginalStockEqvNotional',
label: '名义本金',
index: 'OriginalStockEqvNotional',
sortIndex: i++,
width: 100,
align: 'center',
sortable: true,
formatter: otcformat.trading.StockEqvNotional
}, {
name: 'ClientName',
label: '交易对手方',
index: 'ClientName',
sortIndex: i++,
width: hideObj.clientWidth,
align: 'center'
}, {
name: 'TradeAmount',
label: '持仓数量',
width: 100,
sortIndex: i++,
align: 'center',
sortable: false,
formatter: otcformat.trading.notional
}, {
name: 'TraderName',
label: '交易员',
index: 'TraderName',
sortIndex: i++,
width: 100,
align: 'center'
}
];
return col;
};
var colModelGrid = getColModelGrid();
function ShowStructFormater(cellValue, options, rowObject) {
return cellValue || '';
}
function CommissionFormatter(cellValue, options, rowObject) {
if (rowObject.SalesCommission.Commission) {
if (rowObject.SalesCommission.CommissionFixed == false) {
return otcformat.trading.premiumRateP(rowObject.SalesCommission.Commission);
} else {
return otcformat.trading.umprice(rowObject.SalesCommission.Commission);
}
} else {
if (rowObject.SalesCommission.Commission === 0) {
return otcformat.trading.umprice(0);
}
else {
return "";
}
}
}
function exportUnwindSwapTrade() {
var url = "/swaptrade/UnwindSwapTradeExport";
downLoadFile(url);
}
function downLoadFile(downloadUrlStr) {
window.open(downloadUrlStr);
}
function gridComplete() {
var jgrid = $(this);
var rowIds = jgrid.jqGrid('getDataIDs');
for (var i = 0; i < rowIds.length; i++) {
var rowId = rowIds[i];
var rowdata = jgrid.getRowData(rowId);
if (rowdata.ExerciseDate == page.systemDate && (rowdata.TradeStatus != "已平仓" && rowdata.TradeStatus != "已到期")) {
$('#' + rowIds[i]).addClass("ExerciseDateBg");
}
//else if (rowdata['trade_swap.GetSwapTimeAndRate'].indexOf(page.systemDate) > -1 || rowdata['trade_swap.PaySwapTimeAndRate'].indexOf(page.systemDate) > -1) {
// $('#' + rowIds[i]).addClass("SwapDateBg");
//}
if (rowdata.TradeStatus == "已平仓" && rowdata.UnwindDate == page.systemDate) {
$('#' + rowIds[i]).addClass("UnwindTradeBg");
}
}
main.setcolumnChooser(jgrid, page.configcolumn_data_hhjyss);
$(".selftooltip").tooltip({ html: true, show: 50000, trigger: "hover" });
var newHeight = $(window).height() - 430;
$(".ui-jqgrid .ui-jqgrid-bdiv").css("cssText", "height: " + newHeight + "px!important;");
$('.ui-jqgrid-bdiv', '#gbox_listGrid').floatingScroll();
}
function customButton(cellValue, options, rowObject) {
var imageHtml = "<input type=\"button\" value=\"删除\" class=\"btn-warning\" onclick=\"deletetrade('" +
rowObject.EncryptId +
"');\" />";
return imageHtml;
}
function rowdblclick(rowid) {
var rowData = $(this).getRowData(rowid);
if (rowData.EncryptId) {
starttradeView(rowData.EncryptId);
}
}
function startAddtrade() {
//layer.open({
// type: 2,
// title: "新增互换交易",
// shadeClose: false,
// shade: 0.4,
// area: ['80%', '80%'],
// content: "/swapTrade2/TradeEdit/0"
//});
main.open("新增互换交易", "/swapTrade2/TradeEdit/0", {area:["95%",'90%']});
}
function starttradeView(id) {
var srcurl = "/swapTrade2/TradeView/?enid=" + id + "&checkBtn=1";
main.open("查看交易", srcurl);
}
function reloadtrade() {
//重新加载
SearchClick();
}
function confirmAllSelect() {
var selectedIds = jQuery('#listGrid').jqGrid('getGridParam', 'selarrrow');
if (selectedIds.length < 1) {
main.message("请选择需确认的交易");
return;
}
var confirmFunc = function (additionalProcessing) {
var ggrid = jQuery('#listGrid');
var rowIds = ggrid.jqGrid('getGridParam', 'selarrrow');
var ors = [];
for (var i = 0; i < rowIds.length; i++) {
var or = ggrid.getRowData(rowIds[i]).id;
ors.push(or);
}
var pData = { tradeids: ors.join(",") };
pData.IsSkipCheck = true;
if (!main.isEmpty(additionalProcessing)) {
pData.additionalProcessing = additionalProcessing;
}
main.post("/trade/tradeConfirm", pData).done(function (data) {
//错误是打印错误提示
if (!data.success) {
main.message(data.msg);
return;
}
SearchClick(true);
});
};
///批量结算
main.confirm("确认所有选中交易?", confirmFunc);
}
function importTrade() {
main.open("互换交易导入", "/SwapTrade/SwapTradeUpload", { area: ['800px', '600px'] });
}
function downTemplate() {
if (page.company == "山西") {
window.open("../App_Docs/导入模板/互换交易数据导入模板.xlsx");
}
}
function SearchClick(isSearchclick) {
var listGrid = $('#listGrid');
listGrid.appendPostData({ TradeNumber: $("#TradeNumber").val() });
listGrid.appendPostData({ AssetIds: $("#AssetId").val() });
listGrid.appendPostData({ AssetIdGroupList: $("#GroupId").val() });
listGrid.appendPostData({ ClientIds: $("#ClientId").val() });
listGrid.appendPostData({ TradeDateStart: $("#DateFromTradeDate").val() });
listGrid.appendPostData({ TradeDateEnd: $("#DateToTradeDate").val() });
listGrid.appendPostData({ StartDateStart: $("#DateFromStartDate").val() });
listGrid.appendPostData({ StartDateEnd: $("#DateToStartDate").val() });
listGrid.appendPostData({ TradeStatus: $("#TradeStatus").val() });
listGrid.appendPostData({ TradeIds: $("#TraderName").val() });
listGrid.appendPostData({ ExerciseDateStart: $("#DateFromExerciseDate").val() });
listGrid.appendPostData({ ExerciseDateEnd: $("#DateToExerciseDate").val() });
listGrid.appendPostData({ ValueDate: $("#DateValueDate").val() });
query_data = listGrid.jqGrid('getPostData');
if (typeof isSearchclick !== "undefined" && isSearchclick) {
//点击搜索时默认第一页
listGrid.jqGrid('setGridParam',
{
page: 1
});
}
listGrid.trigger('reloadGrid');
}
function openTradeConfirmList() {
window.open("tradeConfirmList", "_blank");
}
function exportSubmit(url) {
var $form = $('#exportForm').html('');
$form.attr("action", url)
$form.submit();
}
Array.prototype.contains = function (obj) {
if (this.length === 0) {
return false;
}
for (var i = 0; i < this.length; i++) {
if (this[i] === obj) {
return true;
}
}
return false;
}
function showcolumnChooser() {
var jgrid = jQuery('#listGrid');
main.showcolumnChooser(jgrid, page.configcolumn_data_hhjyss);
}
function selAllGrid() {
var checkAll = $("#CheckboxAll").prop("checked");
$("#cb_listGrid").click();
var cbGridClick = $("#cb_listGrid").prop("checked");
if (checkAll !== cbGridClick) {
$("#cb_listGrid").click();
}
}
function GetSelAll() {
var listGrid = $('#listGrid');
return {
IsSelAll: $("#CheckboxAll").prop("checked"), PostData: listGrid.getPostData()
};
}
function getSelectTradeIds() {
return main.GetGridIds($('#listGrid'));
}
function GetGridObjs() {
return main.GetGridObjs($('#listGrid'));
}
function downTemplate() {
if (page.company == "山西") {
window.open("../App_Docs/导入模板/互换交易数据导入模板.xlsx");
}
}
function approvalList() {
var grid = $("#listGrid");
var selRow = grid.jqGrid('getGridParam', 'selarrrow');
if (selRow.length == 0) {
main.message("请勾选要匹配的交易");
return;
}
if (selRow.length > 1) {
main.message("请仅勾选一条交易操作");
return;
}
var trade = grid.getRowData(selRow[0]);
main.open("审批记录", "/trade/InterfaceApprovalRecord?type=1&code=" + trade.TradeNumber, { area: ["1200px", "600px"] });
}
//ESC
$(document).keyup(function (event) {
switch (event.keyCode) {
case 27:
window.parent.layer.closeAll();
$(".jconfirm-open").addClass("hide");//关闭取消分组弹层
}
});
$(".three-wrap-gtja #AssetId").prev().addClass("Bookkeeping-account");
$(".three-wrap-gtja #TraderName").prev().addClass("Trader-account");
$(".morebtn").click(function (e) {
$(".hidediv").toggle();
});
function exportTradeChoose() {
layer.open({
type: 1,
title: "导出交易",
shadeClose: false,
shade: 0.4,
area: ['300px', '240px'],
content: $('#exportTpl').html()
});
}
function exportTrade() {
var dateTemp = new Date().Format("yyyyMMddhhmmss");
var fileName = "互换交易导出" + dateTemp;
main.toExcel("listGrid", fileName, "xls");
}
// EQD-5320 清理:原"互换日终估值导入"弹窗与 importEodFile/showImport/importClose 已删除——
// 页面从未有入口按钮调用 showImport()(弹窗不可达),其内部 /trs_hub_api/valuationEndOfDay/import
// 直连反向代理的调用属死代码,也是全库最后一处 /trs_hub_api 依赖。如需恢复该功能,
// 按 BatchSendSettleEmail 同款模式走 C# 服务端代理(multipart 转发),勿再直连反代。
window.reloadData = reloadtrade;