Files
zszq-trs/YLErpWeb/Areas/Admin/Views/OtcConfig/SettlementConfig.cshtml
T
2024-05-09 14:06:26 +08:00

170 lines
7.9 KiB
Plaintext

@model YLErp.Configuration.SettlementConfig
@{
ViewData["Title"] = "收盘配置";
var pageObj = new
{
AjaxSaveUrl = Url.Action("AjaxSaveSettlementConfig"),
AjaxReCalcBuySell = Url.Action("AjaxClientBalanceReCalcBS"),
AjaxReCalcBuySellProcess=Url.Action("AjaxClientBalanceReCalcProcess"),
};
var allVolTypes = YLErp.Web.Models.SettlementViewModel.GetVolTypes();
var checkedVolTypes = Model.VolTypes.Split(',').Where(n => !string.IsNullOrWhiteSpace(n)).ToArray();
}
@section heads{
<style>
.form-label { width: 120px !important; }
.btn-primary { min-width: 100px; }
.search-label{
margin-right:5px
}
.search-input{
width:120px;
height:30px;
}
</style>
}
<div class="card">
<div class="card-header">
<h4 class="card-title">收盘配置</h4>
</div>
<div class="card-body" id="configCont">
<form class="form-layout" onsubmit="return false;" id="form1">
<div class="form-row">
<label class="form-label col-auto">功能版本:</label>
<div class="col">
<select name="Version" class="form-control" id="selVersion" onchange="changeVersion()" style="width:160px;">
<option value="V2" selected>V2</option>
</select>
</div>
</div>
<div class="form-row">
<label class="form-label col-auto"></label>
<div class="col">
<label class="mr-2">
<input type="checkbox" name="CalcPnlExplain" class="mr-1" value="true" @(Model.CalcPnlExplain ? "checked" : "") />
是否计算盈亏分解指标
</label>
</div>
</div>
<div class="form-row">
<label class="form-label col-auto"></label>
<div class="col">
<label class="mr-2">
<input type="checkbox" name="CalcPnlExplain" class="mr-1" value="true" @(Model.CheckExchangeClose ? "checked" : "") />
是否检查场内交易平仓(平仓超过开仓时报错)
</label>
</div>
</div>
<div class="form-row v2-show">
<label class="form-label col-auto">默认价格模式:</label>
<div class="col">
<label class="mr-2"><input type="checkbox" name="PriceType" class="mr-1" value="1" @((Model.PriceType & 1) > 0 ? "checked" : "") />收盘价</label>
<label class="mr-2"><input type="checkbox" name="PriceType" class="mr-1" value="2" @((Model.PriceType & 2) > 0 ? "checked" : "") />结算价</label>
</div>
</div>
<div class="form-row v2-show">
<label class="form-label col-auto">默认波动率类型:</label>
<div class="col">
@foreach (var item in allVolTypes)
{
var _checked = checkedVolTypes.Contains(item.Value) ? "checked" : "";
<label class="mr-2"><input type="checkbox" name="VolTypes" class="mr-1" value="@(item.Value)" @(_checked) />@(item.Text)</label>
}
</div>
</div>
<div class="form-row v2-show">
<label class="form-label col-auto">部分结算:</label>
<div class="col">
<label class="mr-2"><input type="checkbox" name="SupportPart" class="mr-1" value="true" @(Model.SupportPart ? "checked" : "") />支持</label>
</div>
</div>
<div class="form-row v2-show">
<label class="form-label col-auto">分客户结算:</label>
<div class="col">
<label class="mr-2"><input type="checkbox" name="SubCustomerPart" class="mr-1" value="true" @(Model.SubCustomerPart ? "checked" : "") />支持</label>
</div>
</div>
<div class="form-row v2-show">
<label class="form-label col-auto">调试配置:</label>
<div class="col">
<label class="mr-2"><input type="checkbox" name="SkipLastPvCheck" class="mr-1" value="true" @(Model.SkipLastPvCheck ? "checked" : "") />跳过上一交易日结算检查</label>
<label class="mr-2"><input type="checkbox" name="OutputDebugLog" class="mr-1" value="true" @(Model.OutputDebugLog ? "checked" : "") />输出调试日志</label>
<label class="mr-2">
<input type="checkbox" name="CalcForwradMargin" class="mr-1" value="true" @(Model.CalcForwradMargin ? "checked" : "") />计算远期预付金
</label>
</div>
</div>
<div class="form-row v2-show">
<label class="form-label col-auto">买卖权资金结算: </label>
<div class="col">
<label class="mr-2">
<input type="checkbox" name="CalcBuySell" class="mr-1" value="true" @(Model.CalcBuySell ? "checked" : "") />支持
</label>
<label class="mr-2">
<span class="search-label" >日期</span>
<input class="search-input" id="DateFromTradeDate" type="text">-
<input class="search-input" id="DateToTradeDate" type="text">
</label>
<label class="mr-2"> <button type="button" class="btn btn-primary" onclick="reCalcBuySell()">重新计算</button></label>
<label class="mr-2" id="reCalcResult"></label>
</div>
</div>
<input type="hidden" name="CalcForwradMargin" value="false" />
</form>
<div>
<div class="form-label d-inline-block"></div>
<button type="button" class="btn btn-primary" onclick="saveConfig()">保存</button>
</div>
</div>
</div>
@section scripts{
<script>
const page = @Json.Serialize(pageObj);
var sh;
function saveConfig() {
let $e = $(event.target).prop('disabled', true);
let data = $('#form1').serializeObject();
Array.isArray(data.PriceType)&&(data.PriceType = data.PriceType.reduce((s, x) => s | parseInt(x), 0));
Array.isArray(data.VolTypes)&&(data.VolTypes = data.VolTypes.join(","));
main.post(page.AjaxSaveUrl, data).done(function (resp) {
layer.msg('保存成功');
}).always(function () {
$e.prop('disabled', false);
});
}
function changeVersion() {
}
function reCalcBuySell(){
let $e = $(event.target).prop('disabled', true);
main.post(page.AjaxReCalcBuySell, { TradeDateStart: $("#DateFromTradeDate").val(), TradeDateEnd: $("#DateToTradeDate").val() }).done(function (resp) {
$("#reCalcResult").text("正在计算中");
layer.msg('开始计算');
sh=setInterval(getReCalcBuySellProcess,10000);
}).always(function () {
$e.prop('disabled', false);
});
}
function getReCalcBuySellProcess(){
main.post(page.AjaxReCalcBuySellProcess).done(function (resp) {
if (resp!=null&&resp.data) {
if (resp.data.Msg == "全部计算结束" || resp.data.Msg.indexOf("异常")!=-1) {
clearInterval(sh);
}
var msg = resp.data.SettleDate + " " + resp.data.Msg;
$("#reCalcResult").text(msg);
}else{
clearInterval(sh);
}
})
}
</script>
}