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

719 lines
17 KiB
JavaScript

$(function () {
main.setTradeDatePicker(pageObj.valueDate, "");
$("#DateValueDate").datepicker({
changeMonth: true, changeYear: true, showButtonPanel: true, showOtherMonths: true, selectOtherMonths: true,
onSelect: function (se) {
}
});
$("#DateValueDate").val(pageObj.valueDate);
});
var i = 0;
var colModelGrid = [
{
name: 'ValueDate',
label: '持仓日期',
index: 'ValueDate',
width: 90,
sortIndex: i++,
align: 'left',
sortable: false,
formatter: 'date'
}, {
name: 'GroupCode',
label: '集团机构代码',
index: 'GroupCode',
width: 120,
sortIndex: i++,
align: 'left',
sortable: false
}, {
name: 'OrgName',
label: '部门名称',
index: 'OrgName',
width: 90,
sortIndex: i++,
align: 'left',
sortable: false
}, {
name: 'AssetCode',
label: '资产代码',
index: 'AssetCode',
width: 90,
sortIndex: i++,
align: 'left',
sortable: false
}, {
name: 'PrtflCode',
label: '投组代码',
index: 'PrtflCode',
width: 90,
sortIndex: i++,
align: 'left',
sortable: false
}, {
name: 'CmbCode',
label: '组合代码',
index: 'CmbCode',
width: 90,
sortIndex: i++,
align: 'left',
sortable: false
}, {
name: 'OptPrftTypeCd',
label: '期权收益类型代码',
index: 'OptPrftTypeCd',
width: 120,
sortIndex: i++,
align: 'left',
sortable: false
}, {
name: 'CallPutCd',
label: '看涨看跌代码',
index: 'CallPutCd',
width: 120,
sortIndex: i++,
align: 'left',
sortable: false
}, {
name: 'OtcDeriType',
label: '场外衍生品类型',
index: 'OtcDeriType',
width: 120,
sortIndex: i++,
align: 'left',
sortable: false
}, {
name: 'OptStructName',
label: '结构类型',
index: 'OptStructName',
width: 120,
sortIndex: i++,
align: 'left',
sortable: false
}, {
name: 'CfrmAchvNo',
label: '交易确认书编号',
index: 'CfrmAchvNo',
width: 160,
sortIndex: i++,
align: 'left',
sortable: false
}, {
name: 'Cutp',
label: '对手方',
index: 'Cutp',
width: 200,
sortIndex: i++,
align: 'left',
sortable: false
}, {
name: 'RelpFlag',
label: '关联方标志',
index: 'RelpFlag',
width: 100,
sortIndex: i++,
align: 'left',
sortable: false
}, {
name: 'RgtDutyCd',
label: '权利义务代码',
index: 'RgtDutyCd',
width: 120,
sortIndex: i++,
align: 'left',
sortable: false
}, {
name: 'BgnDt',
label: '开始日期',
index: 'BgnDt',
width: 90,
sortIndex: i++,
align: 'left',
sortable: false
}, {
name: 'ExprDt',
label: '到期日期',
index: 'ExprDt',
width: 90,
sortIndex: i++,
align: 'left',
sortable: false
}, {
name: 'TgtCd',
label: '标的代码',
index: 'TgtCd',
width: 160,
sortIndex: i++,
align: 'left',
sortable: false
}, {
name: 'TgtName',
label: '标的名称',
index: 'TgtName',
width: 160,
sortIndex: i++,
align: 'left',
sortable: false
}, {
name: 'TgtExchCd',
label: '标的交易所代码',
index: 'TgtExchCd',
width: 160,
sortIndex: i++,
align: 'left',
sortable: false
}, {
name: 'TgtAstTypeCd',
label: '标的资产类型代码',
index: 'TgtAstTypeCd',
width: 200,
sortIndex: i++,
align: 'left',
sortable: false
}, {
name: 'ValidHedgFlag',
label: '有效对冲标志',
index: 'ValidHedgFlag',
width: 160,
align: 'left',
sortable: false
}, {
name: 'HedgTypeCd',
label: '对冲类型代码',
index: 'HedgTypeCd',
width: 160,
sortIndex: i++,
align: 'left',
sortable: false
}, {
name: 'CtrNomnVal',
label: '合约名义本金',
index: 'CtrNomnVal',
width: 160,
align: 'left',
sortable: false,
formatter: StockEqvNotional
}, {
name: 'RealNomnVal',
label: '真实名义本金',
index: 'RealNomnVal',
width: 160,
align: 'left',
sortable: false,
formatter: StockEqvNotional
}, {
name: 'InsmScal',
label: '投资规模',
index: 'InsmScal',
width: 120,
sortIndex: i++,
align: 'left',
sortable: false,
formatter: fixed2
}, {
name: 'PrtcRate',
label: '参与率',
index: 'PrtcRate',
width: 90,
sortIndex: i++,
align: 'left',
sortable: false,
formatter: fixed4
}, {
name: 'TgtBpPrc',
label: '标的期初价格',
index: 'TgtBpPrc',
width: 120,
sortIndex: i++,
align: 'left',
sortable: false,
formatter: Umprice
}, {
name: 'Share',
label: '份数',
index: 'Share',
width: 90,
sortIndex: i++,
align: 'left',
sortable: false,
formatter: Notional
}, {
name: 'PremFix',
label: '权利金',
index: 'PremFix',
width: 120,
sortIndex: i++,
align: 'left',
sortable: false,
formatter: TradePrice
}, {
name: 'ExerMod',
label: '行权方式',
index: 'ExerMod',
width: 90,
sortIndex: i++,
align: 'left',
sortable: false
}, {
name: 'BpObsvDay',
label: '期初观察日',
index: 'BpObsvDay',
width: 120,
sortIndex: i++,
align: 'left',
sortable: false
}, {
name: 'EpObsvDay',
label: '期末观察日',
index: 'EpObsvDay',
width: 120,
sortIndex: i++,
align: 'left',
sortable: false
}, {
name: 'ObsvFreq',
label: '观察频率',
index: 'ObsvFreq',
width: 90,
sortIndex: i++,
align: 'left',
sortable: false
}, {
name: 'ExecPricRati2',
label: '执行价格比例1',
index: 'ExecPricRati2',
width: 160,
sortIndex: i++,
align: 'left',
sortable: false,
formatter: UmpricePR
}, {
name: 'ExecPricRati1',
label: '执行价格比例2',
index: 'ExecPricRati1',
width: 160,
sortIndex: i++,
align: 'left',
sortable: false,
formatter: UmpricePR
}, {
name: 'ExecPric2',
label: '执行价格1',
index: 'ExecPric2',
width: 90,
sortIndex: i++,
align: 'left',
sortable: false,
formatter: Umprice
}, {
name: 'ExecPric1',
label: '执行价格2',
index: 'ExecPric1',
width: 90,
sortIndex: i++,
align: 'left',
sortable: false,
formatter: Umprice
}, {
name: 'ExecPric3',
label: '执行价格3',
index: 'ExecPric3',
width: 90,
sortIndex: i++,
align: 'left',
sortable: false,
formatter: Umprice
}, {
name: 'ExecPric4',
label: '执行价格4',
index: 'ExecPric4',
width: 90,
sortIndex: i++,
align: 'left',
sortable: false,
formatter: Umprice
}, {
name: 'BarriPricRati2',
label: '低障碍价格比例',
index: 'BarriPricRati2',
width: 160,
sortIndex: i++,
align: 'left',
sortable: false,
formatter: UmpricePR
}, {
name: 'BarriPricRati1',
label: '高障碍价格比例',
index: 'BarriPricRati1',
width: 160,
sortIndex: i++,
align: 'left',
sortable: false,
formatter: UmpricePR
}, {
name: 'BarriPric2',
label: '障碍价格1',
index: 'BarriPric2',
width: 90,
sortIndex: i++,
align: 'left',
sortable: false,
formatter: Umprice
}, {
name: 'BarriPric1',
label: '障碍价格2',
index: 'BarriPric1',
width: 90,
sortIndex: i++,
align: 'left',
sortable: false,
formatter: Umprice
}, {
name: 'HighrThanExecPrcPrftRate',
label: '高于执行价格收益率',
index: 'HighrThanExecPrcPrftRate',
width: 90,
sortIndex: i++,
align: 'left',
sortable: false,
formatter: fixed4
}, {
name: 'LowrThanExecPrcPrftRate',
label: '低于执行价格收益率',
index: 'LowrThanExecPrcPrftRate',
width: 90,
sortIndex: i++,
align: 'left',
sortable: false,
formatter: fixed4
}, {
name: 'KnockInPrftRate',
label: '敲入收益率',
index: 'KnockInPrftRate',
width: 90,
sortIndex: i++,
align: 'left',
sortable: false,
formatter: fixed4
}, {
name: 'KnockOutPrftRate',
label: '敲出收益率',
index: 'KnockOutPrftRate',
width: 90,
sortIndex: i++,
align: 'left',
sortable: false,
formatter: fixed4
}, {
name: 'RangePrft',
label: '区间收益',
index: 'RangePrft',
width: 90,
sortIndex: i++,
align: 'left',
sortable: false,
formatter: fixed4
}, {
name: 'CrrcCd',
label: '货币代码',
index: 'CrrcCd',
width: 90,
sortIndex: i++,
align: 'left',
sortable: false
}, {
name: 'MaktVal',
label: '市值',
index: 'MaktVal',
width: 90,
sortIndex: i++,
align: 'left',
sortable: false,
formatter: TradePrice
}, {
name: 'Delta',
label: 'Delta',
index: 'Delta',
width: 90,
sortIndex: i++,
align: 'left',
sortable: false,
formatter: greek
}, {
name: 'Vega',
label: 'Vega',
index: 'Vega',
width: 90,
sortIndex: i++,
align: 'left',
sortable: false,
formatter: greek
}, {
name: 'Gamma',
label: 'Gamma',
index: 'Gamma',
width: 90,
sortIndex: i++,
align: 'left',
sortable: false,
formatter: greek
}, {
name: 'RiskFreeRate',
label: '无风险利率',
index: 'RiskFreeRate',
width: 90,
sortIndex: i++,
align: 'left',
sortable: false,
formatter: fixed4
}, {
name: 'DividRate',
label: '连续股息率',
index: 'DividRate',
width: 90,
sortIndex: i++,
align: 'left',
sortable: false,
formatter: fixed4
}, {
name: 'Volat',
label: '波动率',
index: 'Volat',
width: 90,
sortIndex: i++,
align: 'left',
sortable: false,
formatter: Volatility
}, {
name: 'CurCrdtRiskExps',
label: '当前信用风险敞口',
index: 'CurCrdtRiskExps',
width: 90,
sortIndex: i++,
align: 'left',
sortable: false,
formatter: greek
}, {
name: 'PotntCrdtRiskExps',
label: '潜在信用风险敞口',
index: 'PotntCrdtRiskExps',
width: 90,
sortIndex: i++,
align: 'left',
sortable: false,
formatter: greek
}, {
name: 'RptDt',
label: '填报日期',
index: 'RptDt',
width: 90,
sortIndex: i++,
align: 'left',
sortable: false
}, {
name: 'RptPsn',
label: '填报人',
index: 'RptPsn',
width: 90,
sortIndex: i++,
align: 'left',
sortable: false
}
];
function gridComplete(req) {
if (req.msg) {
main.alert(req.msg)
} else {
$("#listGrid").footerData("set", {
ValueDate: "合计", CtrNomnVal: req.Sum.SumCtrNomnVal, RealNomnVal: req.Sum.SumRealNomnVal, InsmScal: req.Sum.SumInsmScal, PrtcRate: req.Sum.SumPrtcRate, MaktVal: req.Sum.SumMaktVal
});
}
$(".selftooltip").tooltip({ html: true, show: 50000, trigger: "hover" });
main.setcolumnChooser(jQuery('#listGrid'), pageObj.columnConfigName);
}
function greek(cellValue, options, rowObject) {
if (cellValue) {
return otcformat.trading.greek(cellValue);
}
else {
return "";
}
}
function Volatility(cellValue, options, rowObject) {
if (cellValue) {
return otcformat.trading.Volatility(cellValue);
}
else {
return "";
}
}
function TradePrice(cellValue, options, rowObject) {
if (cellValue) {
return otcformat.trading.TradePrice(cellValue);
}
else {
return "";
}
}
function fixed4(cellValue, options, rowObject) {
if (cellValue) {
return otcformat.fixed4(cellValue);
}
else {
return "";
}
}
function fixed2(cellValue, options, rowObject) {
if (cellValue) {
return otcformat.fixed2(cellValue);
}
else {
return "";
}
}
function Umprice(cellValue, options, rowObject) {
if (cellValue) {
return otcformat.trading.Umprice(cellValue);
}
else {
return "";
}
}
function UmpricePR(cellValue, options, rowObject) {
if (cellValue) {
return otcformat.trading.UmpricePR(cellValue);
}
else {
return "";
}
}
function Notional(cellValue, options, rowObject) {
if (cellValue) {
return otcformat.trading.Notional(cellValue);
}
else {
return "";
}
}
function StockEqvNotional(cellValue, options, rowObject) {
if (cellValue) {
return otcformat.trading.StockEqvNotional(cellValue);
}
else {
return "";
}
}
function reloadSuperviseTodayReport() {
//重新加载
SearchClick();
}
function SearchClick(isSearchclick) {
var listGrid = $('#listGrid');
listGrid.appendPostData({ ValueDate: $("#DateValueDate").val(), DataSource: $("#DataSource").val() });
if (typeof (isSearchclick) != "undefined" && isSearchclick) {
//点击搜索时默认第一页
listGrid.jqGrid('setGridParam', {
page: 1
});
}
listGrid.trigger('reloadGrid');
}
function exportToFile() {
if ($("#DateValueDate").val() == null || $("#DateValueDate").val() == "" || $("#DateValueDate").val() == undefined) {
alert("请选择结算日期!");
return;
}
var option = {
url: "/supervise_report/SendSupervise_OtcOption",
type: "POST",
data: { ValueDate: $("#DateValueDate").val(), DataSource: $("#DataSource").val() },
dataType: "json", //格式是html
success: function (res) {
if (res.success) {
window.open(res.obj);
}
else {
main.alert(res.obj);
}
},
error: function (msg) {
main.alert("后台运行错误:" + msg.msg);
}
};
main.ajax(option);
}
function importToSystem() {
var htmlContent = `
<div style="padding:5px">
<span>文件:</span >
<input type="file" accept=".xlsx" id="uploadfile" style="display: none" onchange=uploadChange() >
<input style="width:90%; height: 28px; text-align: left;" type="button" id="uploadfileButton" onclick="uploadfile.click();" value="请选择..." />
<div style="margin: 5px; float: right;">
<input type="button" class="btn btn-primary" onclick="upload()" value="上传文件">
</div>
</div>`;
main.open2("期权数据导入",
htmlContent,
{
area: ["400px", "130px"],
zIndex: 1000
});
}
function uploadChange() {
$('#uploadfileButton').val($('#uploadfile').val());
}
function upload() {
if (!$("#uploadfile").get(0).value.length) {
main.alert("请选择要上传的文件!");
return;
}
var fd = new FormData();
/*上传的文件file*/
fd.append("file", $("#uploadfile").get(0).files[0]);
$.ajax({
url: "/supervise_report/ImportSupervise_OtcOption",
type: "POST",
processData: false,
contentType: false,
data: fd,
success: function (res) {
if (!res.success) {
main.alert(res.msg);
} else {
$("#uploadfile").val("");
$("#uploadfileButton").val("");
layer.closeAll();
main.message(res.msg);
}
},
beforeSend(jqXHR) {
main.waitMe(true);
},
complete(jqXHR, textStatus) {
main.waitMe(false);
}
});
}