Files
zszq-trs/YLErpWeb/Views/underlying_manager/underlying_managerEdit.cshtml
T

366 lines
18 KiB
Plaintext

@model UnderlyingEditModel
@{
ViewBag.Title = "标的管理 | 编辑";
Layout = "~/Views/Shared/_InfoLayout.cshtml";
var underlying = Model.Underlying;
var pageObj = new
{
showDeltaS_S = PS.Config.Is长江
};
var bond = Model.Bond ?? new UnderlyingBond();
// ETF 子类下拉直接读取前端可维护字典;空选项用于新增页面的必填提示。
var etfSubtypeItems = YLErp.BLL.DictionaryBLL.GetList("ETF 子类", true, underlying.EtfSubType);
var blocks = new[] { underlying.Block1, underlying.Block2, underlying.Block3, underlying.Block4, underlying.Block5 };
for (var i = 1; i <= 5; i++)
{
var b = blocks[i - 1];
ViewData["Block" + i] = b > 0 ? b.ToString() : string.Empty;
}
var nv = YieldChain.Helpers.UrlHelper.ParseQueryString(PS.Config.ErpElement.UnderlyingBlockConfig);
for (var i = 1; i <= 5; i++)
{
ViewData["BlockT" + i] = nv["block" + i].TrimToNull() ?? ("板块性质" + i);
}
}
@section CSS{
<style>
@@media (min-width: 768px) {
.col-md-6 {
float: left;
}
}
.None, .Stock, .CommodityFutures, .Bonds, .Fund {
display: none;
}
.form-Stock .Stock,
.form-CommodityFutures .CommodityFutures,
.form-Bonds .Bonds,
.form-Fund .Fund {
display: block;
}
</style>
}
@section JS
{
<script type="text/javascript">
const page = @Json.Serialize(pageObj);
page.Model = @Json.Serialize(underlying);
</script>
<script src="@HtmlUtil.BasicDataJs("标的品种")"></script>
<script src="~/front/BasicData?types=板块性质&t=@(DateTime.Now.Ticks)"></script>
<script src="~/Scripts/app/base/ylOtcBasicData.js?v=@(HtmlUtil.JsVersion)"></script>
<script src="~/Scripts/app/underlying/underlyingedit.js?v=@(HtmlUtil.JsVersion)"></script>
}
<form id="editForm" class="yc-panel" method="post" autocomplete="off" onsubmit="return false;">
<div class="row">
<div class="form-group col-6">
<label class="formlabel">交易所</label>
<select id="MarketCode" name="MarketCode">
@foreach (var m in Model.Markets)
{
<option value="@(m.Code)">@(m.Name)</option>
}
</select>
</div>
@if (underlying.id > 0)
{
<div class='form-group col-6'>
<label class='formlabel'>标的资产码</label>
<input id='UnderlyingCode' class='text-box' type='text' name='UnderlyingCode' value="@(underlying.UnderlyingCode)" readonly title="新增后不能修改!" />
</div>
}
else
{
<div class='form-group col-6'>
<label class='formlabel'>标的资产码</label>
<input id='UnderlyingCode' class='text-box' type='text' name='UnderlyingCode' value="@(underlying.UnderlyingCode)" /><span style="color:red">*</span>
</div>
}
<div class='form-group col-6'>
<label class='formlabel'>标的名称</label>
<input id='UnderlyingName' class='text-box' type='text' value='@(underlying.UnderlyingName)' name='UnderlyingName' /><span style='color:red'>*</span>
</div>
<div class='form-group col-6'>
<label class='formlabel'>标的英文名</label>
<input id='UnderlyingEnName' class='text-box' type='text' value='@(underlying.UnderlyingEnName)' name='UnderlyingEnName' />
</div>
<div class="form-group col-6">
<label class="formlabel">资产类型</label>
<select id="UnderlyingInstrumentType" name="UnderlyingInstrumentType">
@foreach (var item in ConsGlobal.InstrumentType.SelectItems())
{
<option value="@(item.Value)">@(item.Text)</option>
}
</select>
</div>
<div class='form-group col-6'>
<label class='formlabel'>资产品种类型</label>
<input id='UnderlyingTypeId' class='text-box' type='text' name='UnderlyingTypeId' /><span style="color:red">*</span>
</div>
<div class='form-group col-6'>
<label class='formlabel'>BBG Ticker</label>
<input id='BBGTicker' class='text-box' type='text' name='BBGTicker' value='@(underlying.BBGTicker)' /><span style="color:red"></span>
</div>
<div class='form-group col-6 CommodityFutures Bonds'>
<label class='formlabel'>到期日</label>
<input id='MaturityDate' class='text-box datepicker' type='text' value='@(underlying.MaturityDate?.ToString("yyyy-MM-dd"))' name='MaturityDate' />
</div>
<div class='form-group col-6 CommodityFutures'>
<label class='formlabel'>交割日</label>
<input id='CloseDate' class='text-box datepicker' type='text' value='@(underlying.CloseDate?.ToString("yyyy-MM-dd"))' name='CloseDate' />
</div>
<div class='form-group col-6'>
<label class='formlabel'>资产状态</label>
<select id="UnderlyingState" name="UnderlyingState">
<option value="Live">正常</option>
<option value="Matured">已过期</option>
</select>
</div>
<div class='form-group col-6'>
<label class='formlabel'>运行状态</label>
<select id="UnderlyingStatus" name="UnderlyingStatus">
<option value="正常运行">正常运行</option>
<option value="停牌">停牌</option>
<option value="退市">退市</option>
</select>
</div>
<div class='form-group col-6'>
<label class='formlabel'>交易代码</label>
<input id='TradeCode' class='text-box' type='text' value='@(underlying.TradeCode)' name='TradeCode' />
</div>
<div class="form-group col-6">
<label class="formlabel">Span波动率变动</label>
<input id="VolatilityRate" value="@(underlying.VolatilityRate.TrimToNull())" class="text-box" type="text" name="VolatilityRate">
</div>
<div class="form-group col-6">
<label class="formlabel">Span涨跌幅度</label>
<input id="UpDownLimit" value="@underlying.UpDownLimit" class="w-auto" type="text" name="UpDownLimit">
<select id="UpDownLimitType" name="UpDownLimitType" class="w-auto">
<option value="P">百分比</option>
<option value="F">绝对值</option>
</select>
</div>
<div class='form-group col-6'>
<label class='formlabel'>预付金比例</label>
<input id='MarginRate' class='text-box' type='text' value='@(underlying.MarginRate?.ToString("P2"))' name='MarginRate' />
</div>
<div class='form-group col-6'>
<label class='formlabel'>DeltaS/S</label>
<input id='DeltaS_S' class='text-box' type='text' value='@(underlying.DeltaS_S?.ToString("P2"))' name='DeltaS_S' />
</div>
<div class='form-group col-6'>
<label class='formlabel'>合约乘数</label>
<input id='ContractSize' class='text-box' type='number' value='@(underlying.ContractSize.ToString("F2"))' name='ContractSize' />
</div>
<div class='form-group col-6'>
<label class='formlabel'>上市日期</label>
<input id='OpenDate' class='text-box datepicker' type='text' value='@(underlying.OpenDate?.ToString("yyyy-MM-dd"))' name='OpenDate' />
</div>
<div class="clearfix m-0 p-0"></div>
@for (var i = 1; i <= 5; i++)
{
<div class='form-group col-6 Stock'>
<label class="formlabel">@(ViewData["BlockT" + i])</label>
<input name="Block@(i)" id="inputBlock@(i)" class="text-box" value="@(ViewData["Block"+i])" />
</div>
}
<!--收益互换电子盘需要BEGIN-->
<div class='form-group col-6'>
<label class='formlabel'>基础点差</label>
<input id='Spread' class='text-box' type='number' value='@(underlying.Spread.ToString("F2"))' name='Spread' />
</div>
<div class='form-group col-6'>
<label class='formlabel'>撮合点差</label>
<input id='SpreadM' class='text-box' type='number' value='@(underlying.SpreadM.ToString("F2"))' name='SpreadM' />
</div>
<div class='form-group col-6'>
<label class='formlabel'>最小数量</label>
<input id='VolumeMin' class='text-box' type='number' value='@(underlying.VolumeMin.ToString("F0"))' name='VolumeMin' />
</div>
<div class='form-group col-6'>
<label class='formlabel'>最⼤数量</label>
<input id='VolumeMax' class='text-box' type='number' value='@(underlying.VolumeMax.ToString("F0"))' name='VolumeMax' />
</div>
<div class='form-group col-6'>
<label class='formlabel'>步进数量</label>
<input id='VolumeStep' class='text-box' type='number' value='@(underlying.VolumeStep.ToString("F0"))' name='VolumeStep' />
</div>
<div class='form-group col-6'>
<label class='formlabel'>限制数量</label>
<input id='VolumeLimit' class='text-box' type='number' value='@(underlying.VolumeLimit.ToString("F0"))' name='VolumeLimit' />
</div>
<!--收益互换电子盘END-->
<!--债券配置BEGIN-->
<div class='form-group col-6 Bonds'>
<label class='formlabel'>债券全称</label>
<input id='UnderlyingFullName' class='text-box' type='text' value='@bond.UnderlyingFullName' name='Bond.UnderlyingFullName' />
</div>
<div class='form-group col-6 Bonds'>
<label class='formlabel'>发行货币</label>
<select id="BondCurrency" name="Bond.Currency">
<option value="CNY" @(bond.Currency == "CNY" ? "selected" : "")>CNY</option>
<option value="USD" @(bond.Currency == "USD" ? "selected" : "")>USD</option>
</select>
</div>
<div class='form-group col-6 Bonds'>
<label class='formlabel'>价格</label>
<input id='Price' class='text-box' type='number' value='@(underlying.Price?.ToString("F4"))' name='Price' />
</div>
<div class='form-group col-6 Bonds'>
<label class='formlabel'>发行规模(亿)</label>
<input id='IssueSize' class='text-box' type='number' value='@(bond.IssueSize?.ToString("F4"))' name='Bond.IssueSize' />
</div>
<div class='form-group col-6 Bonds'>
<label class='formlabel'>首次付息日</label>
<input id='BondFirstDate' class='text-box datepicker' type='text' value='@(bond.FirstDate?.ToString("yyyy-MM-dd"))' name='Bond.FirstDate' />
</div>
<div class='form-group col-6 Bonds'>
<label class='formlabel'>利息类型</label>
<select id="BondCouponType" name="Bond.CouponType">
<option value="固息债" @(bond.CouponType == "固息债" ? "selected" : "")>固息债</option>
<option value="浮息债" @(bond.CouponType == "浮息债" ? "selected" : "")>浮息债</option>
<option value="其它" @(bond.CouponType == "其它" ? "selected" : "")>其它</option>
</select>
</div>
<div class='form-group col-6 Bonds'>
<label class='formlabel'>票面利率</label>
<input id='BondCouponRate' class='text-box' type='text' value='@(bond.CouponRate)' name='Bond.CouponRate' />
</div>
<div class='form-group col-6 Bonds'>
<label class='formlabel'>付息频率</label>
<select id="BondPaymentFrequency" name="Bond.PaymentFrequency">
<option value="" @(string.IsNullOrEmpty(bond.PaymentFrequency) ? "selected" : "")></option>
<option value="Y1" @(bond.PaymentFrequency == "Y1" ? "selected" : "")>Y1</option>
<option value="M6" @(bond.PaymentFrequency == "M6" ? "selected" : "")>M6</option>
<option value="M3" @(bond.PaymentFrequency == "M3" ? "selected" : "")>M3</option>
<option value="M2" @(bond.PaymentFrequency == "M2" ? "selected" : "")>M2</option>
<option value="M1" @(bond.PaymentFrequency == "M1" ? "selected" : "")>M1</option>
<option value="D15" @(bond.PaymentFrequency == "D15" ? "selected" : "")>D15</option>
</select>
</div>
<div class='form-group col-6 Bonds'>
<label class='formlabel'>计息日历规则</label>
<select id="BondDayCount" name="Bond.DayCount">
<option value="ActAct" @(bond.DayCount == "ActAct" ? "selected" : "")>ActAct</option>
<option value="Act366" @(bond.DayCount == "Act366" ? "selected" : "")>Act366</option>
<option value="Act365" @(bond.DayCount == "Act365" ? "selected" : "")>Act365</option>
<option value="Act3650" @(bond.DayCount == "Act3650" ? "selected" : "")>Act3650</option>
<option value="Act360" @(bond.DayCount == "Act360" ? "selected" : "")>Act360</option>
<option value="Act3600" @(bond.DayCount == "Act3600" ? "selected" : "")>Act3600</option>
<option value="Act1" @(bond.DayCount == "Act1" ? "selected" : "")>Act1</option>
<option value="OTH" @(bond.DayCount == "OTH" ? "selected" : "")>OTH</option>
</select>
</div>
<div class='form-group col-6 Bonds'>
<label class='formlabel'>假日调整规则</label>
<select id="BondHolidayAdjustRule" name="Bond.HolidayAdjustRule">
<option value="None" @(bond.HolidayAdjustRule == "None" ? "selected" : "")>None</option>
<option value="Following" @(bond.HolidayAdjustRule == "Following" ? "selected" : "")>Following</option>
<option value="ModifiedFollowing" @(bond.HolidayAdjustRule == "ModifiedFollowing" ? "selected" : "")>ModifiedFollowing</option>
<option value="Previous" @(bond.HolidayAdjustRule == "Previous" ? "selected" : "")>Previous</option>
<option value="ModifiedPrevious" @(bond.HolidayAdjustRule == "ModifiedPrevious" ? "selected" : "")>ModifiedPrevious</option>
</select>
</div>
<div class='form-group col-6 Bonds'>
<label class='formlabel'>标的证券发行人</label>
<input id='BondUnderlyingIssuer' class='text-box' type='text' value='@(bond.UnderlyingIssuer)' name='Bond.UnderlyingIssuer' />
</div>
<div class='form-group col-6 Bonds'>
<label class='formlabel'>一级分类</label>
<input id='BondUnderlyingIssuer' class='text-box' type='text' value='@(bond.SecurityIndustrySuperType)' name='Bond.SecurityIndustrySuperType' />
</div>
<div class='form-group col-6 Bonds'>
<label class='formlabel'>二级分类</label>
<input id='BondUnderlyingIssuer' class='text-box' type='text' value='@(bond.SecurityIndustryType)' name='Bond.SecurityIndustryType' />
</div>
<div class='form-group col-6 Bonds'>
<label class='formlabel'>债券期限</label>
<select id="BondBondTerm" name="Bond.BondTerm">
<option value="">--</option>
<option value="<5y" @(bond.BondTerm == "<5y" ? "selected" : "")><5y</option>
<option value="5y-10y" @(bond.BondTerm == "5y-10y" ? "selected" : "")>5y-10y</option>
<option value="10y-30y" @(bond.BondTerm == "10y-30y" ? "selected" : "")>10y-30y</option>
<option value=">30y" @(bond.BondTerm == ">30y" ? "selected" : "")>>30y</option>
</select>
</div>
<!--债券配置END-->
<div class='form-group col-6'>
<label class='formlabel'>描述</label>
<input id='Desc' class='text-box' type='text' value='@(underlying.UnderlyingDesc)' name='Desc' />
</div>
<div class='form-group col-6'>
<label class='formlabel'>增值税率</label>
<input id='ValueAddedTax' class='text-box' type='number' value='@(underlying.ValueAddedTax)' name='ValueAddedTax' />
</div>
@* 仅基金及基金专户维护基金管理人 *@
<div class='form-group col-6 Fund'>
<label class='formlabel'>基金管理人</label>
<input id='InvestAdvisorName' class='text-box' type='text' value='@(underlying.InvestAdvisorName)' name='InvestAdvisorName' maxlength='100' />
</div>
@* 重点功能:ETF 子类由系统字典维护,使用 Fund 类控制显隐,并固定放在表单最后 *@
<div class='form-group col-6 Fund'>
<label class='formlabel'>ETF 子类</label>
<select id='EtfSubType' name='EtfSubType'>
@foreach (var item in etfSubtypeItems)
{
@* 编辑页面按实体中的字典名称回显当前选项 *@
if (item.Value == underlying.EtfSubType)
{
<option value='@item.Value' selected>@item.Text</option>
}
else
{
<option value='@item.Value'>@item.Text</option>
}
}
</select><span style='color:red'>*</span>
</div>
</div>
<div class="Stock" style="padding-left:130px;">
<a href="/underlyingBlock/list" target="_blank">板块性质管理</a>
<a href="javascript:;" onclick="location.reload();" style="margin-left:20px;">刷新当前页面</a>
</div>
<div class="form-buttons">
<button class="btn btn-primary" type="button" onclick="saveData()">保存</button>
<button class="btn btn-primary" type="button" onclick="layer.closeMe()">关闭</button>
</div>
</form>