224 lines
11 KiB
Plaintext
224 lines
11 KiB
Plaintext
@model ObservationDatesModel
|
|
@{
|
|
Layout = "~/Views/Shared/_InfoLayout.cshtml";
|
|
}
|
|
|
|
@section CSS{
|
|
<style>
|
|
.div-group { margin: 10px 0; }
|
|
|
|
.editObsBtn { float: right; margin-right: 36px; }
|
|
|
|
.interval { width: 80px !important; }
|
|
|
|
ol > span { width: 23%; }
|
|
|
|
li > input { width: 18% !important; }
|
|
|
|
.textleft { text-align: left; }
|
|
|
|
.simpletitle { display: inline-block; }
|
|
|
|
.showDatetitle { min-width: 100px; display: inline-block; }
|
|
|
|
.datevalue { min-width: 86px; margin-right: 0.9rem; }
|
|
|
|
.absolutevalue { margin-right: 0.9rem; }
|
|
|
|
.percentvalue { }
|
|
|
|
.boolvalue { width: 70px; margin-right: 0.9rem; }
|
|
</style>
|
|
}
|
|
|
|
@section JS
|
|
{
|
|
<script>
|
|
var model = @Html.JsonSerialize(Model);
|
|
</script>
|
|
<script src="~/Scripts/app/trade/tradeObservationDates.js?v=@(HtmlUtil.JsVersion)"></script>
|
|
}
|
|
|
|
<html>
|
|
<body>
|
|
<div class="yc-panel">
|
|
<div class="row no-gutters">
|
|
<div class="col-6 mb-2">
|
|
<span>观察日间隔</span>
|
|
<input type="number" class="interval" id="ObservationNum" value="@Model.ObservationNum" min="1" oninput="ObservationChange()" />
|
|
<select id="ObservationUnit" style="width: 40px;" onchange="ObservationChange()">
|
|
@foreach (var item in GlobalData.AllTimeUnits())
|
|
{
|
|
<option value="@item.Value" @(Model.ObservationUnit == item.Value ? "selected='selected'" : "" )>@item.Text</option>
|
|
}
|
|
</select>
|
|
</div>
|
|
<div class="col-6 mb-2">
|
|
@if (!Model.ShowCloseCheck)
|
|
{
|
|
<div class="custom-control custom-checkbox">
|
|
<input type="checkbox" class="custom-control-input" id="firstDayCheck">
|
|
<label class="custom-control-label" for="firstDayCheck">首日观察</label>
|
|
</div>
|
|
}
|
|
</div>
|
|
<div class="col-12 mb-2">
|
|
<span>报送观察频率</span>
|
|
<input type="text" id="ObservationFrequency" class="interval" value="1" />
|
|
<select id="SelObservationUnit" style="width: 140px;" onchange="ObservationChange2()">
|
|
<option value="DAIL" selected>日度</option>
|
|
<option value="WEEK">周度</option>
|
|
<option value="MNTH">月度</option>
|
|
<option value="YEAR">年度</option>
|
|
|
|
@*互换产品可以设置term*@
|
|
@if (string.IsNullOrEmpty(Model.TradeType))
|
|
{
|
|
<option value="TERM">到期支付</option>
|
|
|
|
}
|
|
|
|
|
|
@*凤凰期权、雪球期权 敲入不得设置other*@
|
|
@if (Model.TradeType == "凤凰期权" || Model.TradeType == "雪球期权")
|
|
{
|
|
if (Model.BtnId.IndexOf("#KO") >= 0)
|
|
{
|
|
<option value="OTHER">其他</option>
|
|
}
|
|
}
|
|
else
|
|
{
|
|
<option value="OTHER">其他</option>
|
|
}
|
|
</select>
|
|
</div>
|
|
@if (Model.ShowDate2OffsetControl)
|
|
{
|
|
<div class="col-6 mb-2">
|
|
<span>@(Model.Date2OffsetControlTitle == null ? "日期2计算间隔" : Model.Date2OffsetControlTitle) T +</span>
|
|
<input type="number" class="interval" id="CouponDayInterval" min="0" value="@Model.CouponDayInterval" onkeypress="return(/[\d]/.test(String.fromCharCode(event.keyCode)))" />
|
|
</div>
|
|
}
|
|
|
|
<div class="col-12"></div>
|
|
<div class="col-6 mb-2">
|
|
<span>节假日调整</span>
|
|
@{
|
|
var ObservationHolidayTypes = new[] { ("向后调整", "Following"), ("向前调整", "Previous"), ("不调整", "None") };
|
|
}
|
|
<select id="ObservationHolidayType" style="width:120px">
|
|
@foreach (var (text, value) in ObservationHolidayTypes)
|
|
{
|
|
<option value="@value" @(Model.ObservationHolidayType == value ? "selected='selected'" : "" )>@text</option>
|
|
}
|
|
</select>
|
|
</div>
|
|
<div class="col-6 mb-2">
|
|
<span>对齐规则</span>
|
|
@{
|
|
var AlignEndTypes = new[] { ("向到期日对齐", "true"), ("向开始日对齐", "false") };
|
|
}
|
|
<select id="AlignEnd" style="width: 120px;">
|
|
@foreach (var (text, value) in AlignEndTypes)
|
|
{
|
|
<option value="@value" @(Model.AlignEnd == bool.Parse(value) ? "selected='selected'" : "" )>@text</option>
|
|
}
|
|
</select>
|
|
</div>
|
|
</div>
|
|
<div class="row mt-2">
|
|
<div class="col">
|
|
<button class="btn btn-sm btn-outline-danger" onclick="GetObservationDates()">生成观察日</button>
|
|
</div>
|
|
<div class="col">
|
|
<button class="btn btn-sm btn-outline-danger" onclick="SetObservationDates()">编辑观察日</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="div-group">
|
|
<div id="divItems" class="searchdiv" style="text-align: center;padding-left: 0px;padding-right: 0px;margin: 0px;">
|
|
<ol id="ol" class="textleft">
|
|
<span class="showDatetitle">{{dateTitle1}} </span>
|
|
<span v-if="model.ShowDate2" class="showDatetitle">{{dateTitle2}}</span>
|
|
<span v-if="model.Title1" class="simpletitle">{{model.Title1}}</span>
|
|
<span v-if="model.Title2" class="simpletitle">{{model.Title2}}</span>
|
|
<span v-if="model.Title3" class="simpletitle">{{model.Title3}}</span>
|
|
<span v-if="model.ShowCloseCheck" class='simpletitle'><input type="checkbox" id="checkAllclose" v-model="checkedall" v-on:click="checkedAll()" />是否结算</span>
|
|
<li v-for="item in observationDatesarr" style="margin-top:0px;">
|
|
<input type='text' class='field1 datevalue' v-model="item.field0" />
|
|
<input v-if="model.ShowDate2" type='text' class='field4 datevalue' v-model="item.field3" />
|
|
<template v-if="model.Title1 && !model.IsTitle1Percent">
|
|
<input type='text' class='field2 absolutevalue' v-model="item.field1" />
|
|
</template>
|
|
<template v-else-if="model.Title1">
|
|
<input type='text' class='field2 percentvalue' v-model="item.field1" />%
|
|
</template>
|
|
<template v-if="model.Title2 && model.isTitle2TrueFalse">
|
|
<select class='field3' style='width: 70px;margin-right:1rem;' v-model="item.field2"><option value="false">False</option><option value="true" select>True</option></select>
|
|
</template>
|
|
<template v-else-if="model.Title2 && !model.IsTitle2Percent">
|
|
<input type='text' class='field3 absolutevalue' v-model="item.field2" />
|
|
</template>
|
|
<template v-else-if="model.Title2">
|
|
<input type='text' class='field3 percentvalue' v-model="item.field2" />%
|
|
</template>
|
|
<template v-if="model.Title3 && !model.IsTitle2Percent">
|
|
<input type='text' class='field4 absolutevalue' v-model="item.field3" />
|
|
</template>
|
|
<template v-else-if="model.Title3">
|
|
<input type='text' class='field4 percentvalue' v-model="item.field3" />%
|
|
</template>
|
|
<input v-if="model.ShowCloseCheck" type="checkbox" name="checkclose" class='field5' v-model="item.field2" v-on:click="checkedItem()" v-bind:disabled="lastDeleteCss&&item.field0==endDate" />
|
|
<a href='#' class='delete' v-on:click="deleteobservationDatesarr(item)"><span class='glyphicon glyphicon-remove'></span></a>
|
|
</li>
|
|
</ol>
|
|
<input type="button" class="btn btn-primary" v-on:click="addnewitem();" value="添加" />
|
|
</div>
|
|
<span>备注</span>
|
|
<textarea id='Comments' rows='2' name='Comments' class="text-box w-100 h-auto text-left">@Model.Comments</textarea>
|
|
</div>
|
|
<div class="div-group" style="text-align:center;">
|
|
<button class="btn btn-primary" onclick="Confirm()">确定</button>
|
|
<button class="btn btn-primary" onclick="closeParentWindow()">取消</button>
|
|
</div>
|
|
</div>
|
|
@if (!Model.HideTips)
|
|
{
|
|
<div class="div-group" style="margin: 1rem;">
|
|
<span>说明:</span><br />
|
|
<span>1. 未设置观察日的障碍、双鲨等,默认为每个交易日都是观察日</span><br />
|
|
<span>2. 雪球凤凰的敲入观察日,不设置则默认为每个交易日</span><br />
|
|
<span>3. 报送观察周期用于交易报送所需要填报的“观察周期”“观察周期系数”字段,不影响实际观察日的生成</span><br />
|
|
<span>4. 备注信息用于观察日规律的描述,会在交易报送等其他相关页面需要展示观察日列表时展示(适用于老版报送).</span><br />
|
|
<span> 展示逻辑为:</span><br />
|
|
<span> 未设置观察日列表->每日观察</span><br />
|
|
<span> 已设置观察日列表;未设置备注->展示观察日列表</span><br />
|
|
<span> 已设置观察日列表;已设置备注->展示备注内容</span>
|
|
</div>
|
|
}
|
|
<input type="hidden" id="startTime" value="@Model.startTime" />
|
|
<input type="hidden" id="endTime" value="@Model.endTime" />
|
|
<input type="hidden" id="btnId" value="@Model.BtnId" />
|
|
<div class="modal fade" id="myModal" data-backdrop="static">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content">
|
|
<!-- 模态框头部 -->
|
|
<div class="modal-header">
|
|
<h4 class="modal-title">详情设置</h4>
|
|
<button type="button" class="close" v-on:click="closeModal()">×</button>
|
|
</div>
|
|
<!-- 模态框主体 -->
|
|
<div class="modal-body">
|
|
<textarea v-model="observationDates" style="width: 100%; min-height: 300px;" v-on:paste="pasteMe($event)"></textarea>
|
|
</div>
|
|
<!-- 模态框底部 -->
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn" v-on:click="saveModal()">保存</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|