276 lines
9.6 KiB
JavaScript
276 lines
9.6 KiB
JavaScript
function starttradeView(id) {
|
|
var srcurl = "/trade/tradeView/?enid=" + id;
|
|
main.open("查看交易", srcurl, { area: ['1260px', '800px'] });
|
|
}
|
|
|
|
const colModelGrid = (function () {
|
|
|
|
function showToolName(cellValue, options, rowObject) {
|
|
if (rowObject.TradeEncryptId) {
|
|
return "<input type=\"button\" class=\"wentiEdit\" title='查看交易信息' onclick=\"starttradeView('{0}')\" value=\"{1}\" />".template(rowObject.TradeEncryptId, "查看");
|
|
}
|
|
return "";
|
|
}
|
|
|
|
function StrikeFormatter(cellValue, options, rowObject) {
|
|
if (rowObject.Strike) {
|
|
if (rowObject.IsMoneynessOption === "是") {
|
|
return otcformat.trading.premiumRateP(rowObject.Strike);
|
|
} else {
|
|
return otcformat.trading.umprice(rowObject.Strike);
|
|
}
|
|
} else {
|
|
if (rowObject.Strike === 0) {
|
|
return 0;
|
|
}
|
|
else {
|
|
return "";
|
|
}
|
|
}
|
|
}
|
|
|
|
var col = [
|
|
{
|
|
name: '', label: '操作', index: '', width: 90, align: 'center', formatter: showToolName, sortable: false
|
|
},
|
|
{
|
|
name: 'id', label: 'id', index: 'id', width: 0, align: 'center', hidden: true
|
|
}, {
|
|
name: 'ClientId', label: 'ClientId', index: 'ClientId', width: 0, align: 'center', hidden: true
|
|
}, {
|
|
name: 'UnderlyingId', label: 'UnderlyingId', index: 'UnderlyingId', width: 0, align: 'center', hidden: true
|
|
}, {
|
|
name: 'TradeNumber', label: '交易编号', index: 'TradeNumber', width: 150, align: 'center', sortable: false
|
|
}, {
|
|
name: 'ClientName', label: '客户名称', index: 'ClientName', width: 150, align: 'center', sortable: false
|
|
}, {
|
|
name: 'TradeDate', label: '交易日期', index: 'TradeDate', width: 90, align: 'center', formatter: 'date', sortable: false
|
|
}, {
|
|
name: 'TradeAmount', label: '交易数量', index: 'TradeAmount', width: 90, align: 'left', sortable: false, formatter: otcformat.trading.notional
|
|
}, {
|
|
name: 'BuySell', label: '交易方向', index: 'BuySell', width: 90, align: 'center', sortable: false
|
|
}, {
|
|
name: 'UnderlyingCode', label: '标的代码', index: 'UnderlyingCode', width: 150, align: 'center', sortable: false
|
|
}, {
|
|
name: 'UnderlyingAssetClass', label: '标的品种', index: 'UnderlyingAssetClass', width: 150, align: 'center', sortable: false
|
|
}, {
|
|
name: 'TradeType', label: '结构类型', index: 'TradeType', width: 90, align: 'center', sortable: false, formatter: function (cellvalue, options, rowObject) {
|
|
return rowObject.StructureType && rowObject.IsGroup != 2 ? rowObject.StructureType : rowObject.TradeType;
|
|
}
|
|
}, {
|
|
name: 'OptionType', label: '看涨看跌', index: 'OptionType', width: 90, align: 'center', sortable: false
|
|
}, {
|
|
name: 'ExerciseDate', label: '到期日期', index: 'ExerciseDate', width: 150, align: 'center', formatter: 'date', sortable: false
|
|
}, {
|
|
name: 'Strike', label: '行权价', index: 'Strike', width: 90, align: 'center', formatter: StrikeFormatter, sortable: false
|
|
}, {
|
|
name: 'AssetBookName', label: '簿记账户', index: 'AssetBookName', width: 150, align: 'center', sortable: false
|
|
}];
|
|
return tradeHelper.getAmountToNotional(col);
|
|
}());
|
|
|
|
function jqgrid_init() {
|
|
|
|
function gridComplete(data) {
|
|
var jgrid = $(this);
|
|
var rowIds = jgrid.jqGrid('getDataIDs');
|
|
for (var k = 0; k < rowIds.length; k++) {
|
|
var curRowData = jgrid.jqGrid('getRowData', rowIds[k]);
|
|
if (curRowData.TradeStatus === '已执行') {
|
|
var iddata = "'jqg_listGrid_" + rowIds[k] + "'";
|
|
jgrid.find("input[id=" + iddata + "]").prop("disabled", "disabled");
|
|
}
|
|
}
|
|
|
|
$(".selftooltip").tooltip({ html: true, show: 50000, trigger: "hover" });
|
|
|
|
$("input[type=checkbox]").click(function (res) {
|
|
var cbGridClick = $(this).prop("checked");
|
|
var id = $(this).attr("id");
|
|
if (!cbGridClick) {
|
|
if (id.indexOf("listGrid") >= 0)
|
|
$("#CheckboxAll").prop("checked", false);
|
|
}
|
|
});
|
|
|
|
selAllGrid();
|
|
|
|
$('.ui-jqgrid-bdiv', '#gbox_listGrid').floatingScroll();
|
|
}
|
|
|
|
var grid = $('#listGrid').jqGrid({
|
|
url: '/ScenarioAnalysis/TradeScenarioQuery',
|
|
datatype: 'json',
|
|
multiselect: true,
|
|
height: 'auto',
|
|
width: '90%',
|
|
autowidth: false,
|
|
shrinkToFit: false,
|
|
viewrecords: true,
|
|
jsonReader: { repeatitems: false },
|
|
cmTemplate: { align: 'center', width: 120 },
|
|
mtype: 'POST',
|
|
postData: {},
|
|
afterInsertRow: $.noop,
|
|
onSelectRow: $.noop,
|
|
ondblClickRow: $.noop,
|
|
colModel: colModelGrid,
|
|
pager: jQuery('#pagerGrid'),
|
|
pagerpos: 'left',
|
|
rowNum: 20,
|
|
rowList: [20, 30, 50, 200, 10000],
|
|
loadComplete: gridComplete,
|
|
onPaging(r) {
|
|
var checkAll = $("#CheckboxAll").prop("checked");
|
|
if (checkAll) {
|
|
setTimeout(function () {
|
|
$("#cb_listGrid").click();
|
|
var cbGridClick = $("#cb_listGrid").prop("checked");
|
|
if (checkAll !== cbGridClick) {
|
|
$("#cb_listGrid").click();
|
|
}
|
|
}, 200)
|
|
}
|
|
},
|
|
footerrow: false
|
|
});
|
|
}
|
|
|
|
$(function () {
|
|
|
|
$(".datepicker").datepicker({ changeMonth: true, changeYear: true, showButtonPanel: true, showOtherMonths: true, selectOtherMonths: true });
|
|
|
|
main.setTradeDatePicker("", "#PositionDate", page.valueDate, null, false);
|
|
|
|
$("#CheckboxAll").click(selAllGrid);
|
|
|
|
document.onkeydown = function (event) {
|
|
var e = event ? event : (window.event ? window.event : null);
|
|
if (e.keyCode === 13) {
|
|
SearchClick(true);
|
|
}
|
|
};
|
|
|
|
let underlyingCtrl = new tradeHelper.UnderlyingSelectCtrl('#UnderlyingIds')
|
|
.setFlag(tradeHelper.UnderlyingSelectFlag.OtcTrade);
|
|
|
|
jqgrid_init();
|
|
});
|
|
|
|
function selAllGrid() {
|
|
var checkAll = $("#CheckboxAll").prop("checked");
|
|
$("#cb_listGrid").click();
|
|
var cbGridClick = $("#cb_listGrid").prop("checked");
|
|
if (checkAll !== cbGridClick) {
|
|
$("#cb_listGrid").click();
|
|
$("#CheckboxAll").prop("checked", checkAll)
|
|
}
|
|
}
|
|
|
|
function SearchClick(isSearchclick) {
|
|
var listGrid = $('#listGrid');
|
|
|
|
listGrid.appendPostData({ AssetIds: $("#AssetIds").val() });
|
|
listGrid.appendPostData({ AssetGroupIds: $("#AssetGroupIds").val() });
|
|
listGrid.appendPostData({ ClientIds: $("#ClientIds").val() });
|
|
listGrid.appendPostData({ PositionDate: $("#PositionDate").val() });
|
|
listGrid.appendPostData({ UnderlyingIds: $("#UnderlyingIds").val() });
|
|
listGrid.appendPostData({ VarietyIds: $("#VarietyIds").val() });
|
|
listGrid.appendPostData({ TradeTypes: $("#TradeTypes").val() });
|
|
if (isSearchclick) {
|
|
listGrid.jqGrid('setGridParam', { page: 1 });
|
|
}
|
|
listGrid.trigger('reloadGrid');
|
|
}
|
|
|
|
function scenarioCalc() {
|
|
var selIds = main.GetGridIds($('#listGrid'));
|
|
let data = Object.assign({ IsSelAll: $("#CheckboxAll").prop("checked") }, $('#listGrid').getPostData());
|
|
if (!data.IsSelAll) {
|
|
if (!selIds.length) {
|
|
return main.alert("请至少选择一笔交易");
|
|
}
|
|
data.EodTradeIds = [];
|
|
data.OtcTradeIds = [];
|
|
data.ExchangeTradeIds = [];
|
|
for (let idstr of selIds) {
|
|
let index = idstr.lastIndexOf('_');
|
|
if (index < 0) continue;
|
|
let id = parseInt(idstr.substring(0, index));
|
|
if (!id) continue;
|
|
switch (idstr.substring(index + 1)) {
|
|
case '历史':
|
|
data.EodTradeIds.push(id); break;
|
|
case '场外':
|
|
data.OtcTradeIds.push(id); break;
|
|
case '场内':
|
|
data.ExchangeTradeIds.push(id); break;
|
|
}
|
|
}
|
|
}
|
|
layer.open({
|
|
type: 2,
|
|
title: "情景分析计算",
|
|
shadeClose: false,
|
|
shade: 0.4,
|
|
area: ['1360px', '90%'],
|
|
content: "/ScenarioAnalysis/ScenarioCalc?" + $.param(data, true)
|
|
});
|
|
}
|
|
|
|
function openConfig() {
|
|
layer.open({
|
|
type: 2,
|
|
title: "情景分析配置",
|
|
shadeClose: false,
|
|
shade: 0.4,
|
|
area: ['1200px', '600px'],
|
|
content: "/ScenarioAnalysis/ScenarioList"
|
|
});
|
|
}
|
|
|
|
let testStstus = false;
|
|
let testNum = 1;
|
|
let testList = [];
|
|
|
|
function testCalc(num = 1, status = false) {
|
|
testNum = --num;
|
|
if (!status) {
|
|
testStstus = true;
|
|
$("#CheckboxAll").prop("checked", true);
|
|
selAllGrid();
|
|
}
|
|
scenarioCalc();
|
|
}
|
|
|
|
function getTestStatus() {
|
|
return testStstus;
|
|
}
|
|
|
|
function setTestValue(list) {
|
|
console.debug(list);
|
|
if (testList.length === 0) {
|
|
testList = list;
|
|
}
|
|
else {
|
|
//if (testList.length !== list.length) {
|
|
// main.alert("存在数量差异");
|
|
// testStatus = false;
|
|
//} else {
|
|
// for (var i = 0; i < testList.length; i++) {
|
|
// if (list[i] !== testList[i]) {
|
|
// main.alert("存在值差异");
|
|
// testStatus = false;
|
|
// return;
|
|
// }
|
|
// }
|
|
//}
|
|
}
|
|
if (testStstus && testNum > 0) {
|
|
layer.closeAll();
|
|
testCalc(testNum, true);
|
|
} else {
|
|
testStstus = false;
|
|
main.alert("计算完成");
|
|
}
|
|
} |