feat(valuation): 互换估值Tab 接入分组折叠 + 簿记筛选 + 导出
对应需求《估值模块V1》模块二:每日估值报告 - 互换估值Tab
改动:
1. 新增 eodSwapValuationGroupConfig 分组配置(4组:基本信息/利率与规模/价格/收益)
现有列顺序已天然满足分组连续性,无需重排,风险最低
2. gridComplete 在 setcolumnChooser 完成后初始化可折叠分组表头
保留原有异常行标红(dataError)逻辑
3. 新增簿记账户筛选(需求3.1):cshtml 加 BookId 下拉,searchPositionDetials 传 BookId
未选择时传空,后端返回该对手方下全部账户合约
4. 新增「导出互换估值」按钮(需求3.2+4.2),走通用 exportVisibleColumnsToExcel
文件名:{对手方}_每日估值报告_互换估值_{估值日}.xls
与现有 DownLoadReport(整份报告)独立,互不影响
缺失字段(TODO,待后端确认):期间分红、预付金系列(利率/利息/期初/追加)、TRS估值
测试要点:簿记筛选生效、分组表头显示、折叠交互、异常行标红不受影响、导出可用
This commit is contained in:
@@ -51,6 +51,7 @@
|
||||
|
||||
<div class="searchdiv">
|
||||
@Html.MyAceDropdownInput("ClientId", "客户名称", ClientDataModel.GetAllClient(), false, true, null, false)
|
||||
@Html.MyAceDropdownInput("BookId", "簿记账户", AssetunitController.GetClientassetunit(), false, true, null, false)
|
||||
@Html.CheckBox("ParentFlag", false) @Html.Label(null,"包含子级", new { @style = "font-size:12px;" })
|
||||
@Html.ShortInput("ValueDateFrom", "起始日期:")
|
||||
@Html.ShortInput("ValueDate", "结束日期:")
|
||||
@@ -60,6 +61,7 @@
|
||||
@MyControls.Btn("配置报告", "PopDesc()")
|
||||
@MyControls.Btn("发送报告", "SendReport()")
|
||||
}
|
||||
<button onclick="exportSwapValuationVisibleColumns()" class="btn btn-primary">导出互换估值</button>
|
||||
</div>
|
||||
<br />
|
||||
|
||||
|
||||
@@ -91,6 +91,8 @@ function SearchTable(isSearchclick) {
|
||||
function searchPositionDetials(isSearchclick) {
|
||||
var listGrid = $('#listGrid');
|
||||
listGrid.appendPostData({ ClientId: $("#ClientId").val() });
|
||||
//簿记账户筛选(需求3.1):未选择时传空,后端返回该对手方下全部账户的合约
|
||||
listGrid.appendPostData({ BookId: $("#BookId").val() });
|
||||
listGrid.appendPostData({ ValueDate: $("#ValueDate").val() });
|
||||
if ($("#ParentFlag").prop("checked"))
|
||||
listGrid.appendPostData({ ParentFlag: true });
|
||||
@@ -132,6 +134,7 @@ function onSortCol(index, icol, sortorder) {
|
||||
|
||||
var i = 0;
|
||||
var colModelGrid = [
|
||||
//隐藏列(不参与分组)
|
||||
{
|
||||
name: 'position.EncryptId',
|
||||
label: 'EncryptId',
|
||||
@@ -326,6 +329,19 @@ var colModelGrid = [
|
||||
formatter: StockEqvNotionalFormat,
|
||||
sortable: false,
|
||||
}
|
||||
//TODO(估值模块V1-缺失字段): 以下需求字段本轮未实现,待后端确认数据来源后补充:
|
||||
// - 期间分红(ETF适用,利率与规模分组)
|
||||
// - 预付金利率、预付金利息、期初预付金、追加预付金(预付金分组)
|
||||
// - TRS估值(汇总分组)
|
||||
];
|
||||
|
||||
//互换估值分组配置(对应需求《估值模块V1》3.2.2 字段定义)
|
||||
//columns 使用 colModel.name;现有列顺序已天然满足分组连续性,无需重排
|
||||
var eodSwapValuationGroupConfig = [
|
||||
{ title: '基本信息', columns: ['TradeNumber', 'ConfrimNo', 'ClientName', 'position.PosiStartDate', 'position.ValueDate', 'position.UnderlyingCode'] },
|
||||
{ title: '利率与规模', columns: ['InterestRate', 'position.FloatRateUnderlyingCode', 'position.FloatRate', 'position.PosiNotionalValue', 'position.PosiQuantity', 'PeriodAmount'] },
|
||||
{ title: '价格', columns: ['position.PosiGrossPrice', 'InitYtm', 'position.UnderlyingPrice', 'DayCount'] },
|
||||
{ title: '收益', columns: ['FloatRateAbs', 'InterestAmount', 'position.PosiFeePending', 'position.PosiProfitSum', 'NetSettmentAmount'] }
|
||||
];
|
||||
|
||||
function formatter6(cellvalue, options, rowObject) {
|
||||
@@ -356,11 +372,25 @@ function gridComplete() {
|
||||
}
|
||||
}
|
||||
//jgrid.sortGrid(g_sort.name, g_sort.order);
|
||||
main.setcolumnChooser(jgrid, page.configcolumn);
|
||||
//在列设置应用完成后初始化可折叠分组表头(setcolumnChooser 会 remapColumns,须在其 done 回调后建表头)
|
||||
var defer = main.setcolumnChooser(jgrid, page.configcolumn);
|
||||
$.when(defer).done(function () {
|
||||
main.initCollapsibleGroupHeaders(jgrid, eodSwapValuationGroupConfig);
|
||||
});
|
||||
$(".selftooltip").tooltip({ html: true, show: 50000, trigger: "hover" });
|
||||
$(window).off('resize.jqGrid');
|
||||
}
|
||||
|
||||
//导出互换估值当前可见列(需求《估值模块V1》3.2 + 4.2)
|
||||
//与现有 DownLoadReport(整份PDF/Excel报告)独立,互不影响
|
||||
function exportSwapValuationVisibleColumns() {
|
||||
var jgrid = jQuery('#listGrid');
|
||||
var clientName = $("#ClientId :selected").text() || '';
|
||||
var dateStr = $("#ValueDate").val() || '';
|
||||
var fileName = (clientName ? clientName + '_' : '') + '每日估值报告_互换估值' + (dateStr ? '_' + dateStr : '');
|
||||
main.exportVisibleColumnsToExcel(jgrid, fileName);
|
||||
}
|
||||
|
||||
|
||||
function reloadTradeMarketReport() {
|
||||
//重新加载
|
||||
|
||||
Reference in New Issue
Block a user