优化预付金模板相关页面;科创ETF保存问题

This commit is contained in:
锦麟 王
2026-08-27 15:07:07 +08:00
parent 95cbff0faa
commit 539896c5f6
6 changed files with 18 additions and 15 deletions
@@ -1,4 +1,4 @@
@using YLErp.Enums;
@using YLErp.Enums;
@model margin_template_v2
@{
@@ -216,7 +216,6 @@
<span v-if="blk.isFundBlock"> ETF 子类:<select v-model="blk.sections[0].detail.SpanConfig.EtfKind" v-on:change="onEtfKindChange(blk)"><option value="">不区分</option><option v-for="it in etfSubtypeItems" v-bind:value="it">{{it}}</option></select></span>
<span v-if="blk.isTBond || blk.isTieredEtf">(按期限分档:≤5y、(5y-10y]、(10y-30y]、&gt;30y,每个档位独立设置)</span>
</p>
<p style="margin:4px 0; color:#888;">存量 x/y 配置保留但不再展示,请按新区间结构录入。</p>
<div v-for="sec in blk.sections" v-bind:key="sec.key">
<p v-if="blk.isTBond || blk.isTieredEtf" style="margin:8px 0 2px; font-weight:bold;">期限档位:{{sec.termLabel}}</p>
<template v-if="sec.detail && sec.detail.SpanConfig">
@@ -1,4 +1,4 @@
@using YLErp.Enums;
@using YLErp.Enums;
@model margin_template_v2
@{
@@ -217,7 +217,6 @@
<span v-if="blk.isFundBlock"> ETF 子类:<select v-model="blk.sections[0].detail.SpanConfig.EtfKind" v-on:change="onEtfKindChange(blk)"><option value="">不区分</option><option v-for="it in etfSubtypeItems" v-bind:value="it">{{it}}</option></select></span>
<span v-if="blk.isTBond || blk.isTieredEtf">(按期限分档:≤5y、(5y-10y]、(10y-30y]、&gt;30y,每个档位独立设置)</span>
</p>
<p style="margin:4px 0; color:#888;">存量 x/y 配置保留但不再展示,请按新区间结构录入。</p>
<div v-for="sec in blk.sections" v-bind:key="sec.key">
<p v-if="blk.isTBond || blk.isTieredEtf" style="margin:8px 0 2px; font-weight:bold;">期限档位:{{sec.termLabel}}</p>
<template v-if="sec.detail && sec.detail.SpanConfig">
@@ -1,4 +1,4 @@
@using YLErp.Enums;
@using YLErp.Enums;
@model margin_template_v2
@{
@@ -32,7 +32,7 @@
<form id="marginTemplateV2Form" method="post" onsubmit="return false;">
<div class="row no-gutters">
<div class="col form-layout" style="height: 520px; overflow-y: auto;">
<div class="col form-layout" style="height: calc(100vh - 120px); overflow-y: auto;">
<div class="border">
<P>新模板信息</P>
<div class="form-group">
@@ -133,7 +133,7 @@
</div>
</div>
</div>
<div class="col form-layout" style="height: 520px; overflow-y:auto;">
<div class="col form-layout" style="height: calc(100vh - 120px); overflow-y:auto;">
<template v-if="marginTemplate.RuleType == @((int)MarginRuleTypeEnum.区间追保结构)">
<div class="border detail">
<table class="table table-bordered" style="margin-bottom:0;">
@@ -193,7 +193,6 @@
<span v-if="blk.isFundBlock"> ETF 子类:<select v-model="blk.sections[0].detail.SpanConfig.EtfKind" v-on:change="onEtfKindChange(blk)"><option value="">不区分</option><option v-for="it in etfSubtypeItems" v-bind:value="it">{{it}}</option></select></span>
<span v-if="blk.isTBond || blk.isTieredEtf">(按期限分档:≤5y、(5y-10y]、(10y-30y]、&gt;30y,每个档位独立设置)</span>
</p>
<p style="margin:4px 0; color:#888;">存量 x/y 配置保留但不再展示,请按新区间结构录入。</p>
<div v-for="sec in blk.sections" v-bind:key="sec.key">
<p v-if="blk.isTBond || blk.isTieredEtf" style="margin:8px 0 2px; font-weight:bold;">期限档位:{{sec.termLabel}}</p>
<template v-if="sec.detail && sec.detail.SpanConfig">
@@ -1,4 +1,4 @@
@using YLErp.Enums;
@using YLErp.Enums;
@{
ViewBag.Title = "预付金模板V2";
ViewBag.Menu = "数据管理-预付金模板V2";
@@ -134,13 +134,13 @@
if (id) {
editurl = "/margin_template_v2/margin_template_v2Edit/?enid=" + id;
}
main.infopage("编辑预付金模板", editurl, { area: ['1180px', '68%'] });
main.infopage("编辑预付金模板", editurl, { area: ['1180px', '92%'] });
}
function startCopymargin_template_v2(id) {
editurl = "/margin_template_v2/margin_template_v2Copy/?enid=" + id;
main.infopage("复制预付金模板", editurl, { area: ['1180px', '68%'] });
main.infopage("复制预付金模板", editurl, { area: ['1180px', '92%'] });
}
function startDeletemargin_template_v2(id) {
@@ -438,8 +438,11 @@ const vue = new Vue({
});
var that = this;
var merged = [];
SpanBondTerms.forEach(function (t) {
var r = byTerm[t[0]];
//首行未被4个合法档位命中时(单段行 BondTerm 为空)复用为首个档位行,保留已录入内容;
//否则首行会以"EtfKind 已选、BondTerm 为空"的残留行留在明细里,保存时被服务端"分期限档类型必须配置期限档"拦截
var headMatched = SpanBondTerms.some(function (t) { return byTerm[t[0]] === head; });
SpanBondTerms.forEach(function (t, ti) {
var r = byTerm[t[0]] || (ti === 0 && !headMatched ? head : null);
if (!r) r = that.newSpanDetail(FundTypeMask, t[0], kind);
r.UnderlyingType = FundTypeMask;
r.SpanConfig.EtfKind = kind;
@@ -449,8 +449,11 @@ const vue = new Vue({
});
var that = this;
var merged = [];
SpanBondTerms.forEach(function (t) {
var r = byTerm[t[0]];
//首行未被4个合法档位命中时(单段行 BondTerm 为空)复用为首个档位行,保留已录入内容;
//否则首行会以"EtfKind 已选、BondTerm 为空"的残留行留在明细里,保存时被服务端"分期限档类型必须配置期限档"拦截
var headMatched = SpanBondTerms.some(function (t) { return byTerm[t[0]] === head; });
SpanBondTerms.forEach(function (t, ti) {
var r = byTerm[t[0]] || (ti === 0 && !headMatched ? head : null);
if (!r) r = that.newSpanDetail(FundTypeMask, t[0], kind);
r.UnderlyingType = FundTypeMask;
r.SpanConfig.EtfKind = kind;