Files
zszq-trs/YLErpWeb/Views/ClientMarginConfig/ClientMarginConfigEdit.cshtml
T

184 lines
8.0 KiB
Plaintext

@using YLErp.Model
@model client_margin_config
@{
ViewBag.Title = Model.id == 0 ? "新增客户保证金配置" : "编辑客户保证金配置";
Layout = "~/Views/Shared/_InfoLayout.cshtml";
var details = ViewBag.Details as List<ClientMarginDetailDto> ?? new List<ClientMarginDetailDto>();
}
@section CSS{
<link href="~/Statics/libs/datetime/flatpickr/flatpickr.min.css" rel="stylesheet" />
<style>
.formlabel{
width:128px !important;
}
</style>
}
@section JS{
<script src="~/Statics/libs/datetime/flatpickr/flatpickr.min.js?v=@(HtmlUtil.JsVersion)"></script>
<script type="text/javascript">
function saveConfig() {
if (!$("#valueDate").val()) {
main.message("生效日期不能为空");
return false;
}
// 验证必填字段
var clientId = $("#client_id").val();
// 收集表单数据
var configData = {
id: parseInt($("#id").val()) || 0,
client_id: parseInt(clientId),
value_date: $("#valueDate").val()
};
// 收集详情数据并进行验证
var details = [];
var rows = document.querySelectorAll('#detailTableBody tr');
var hasError = false;
var errorMessage = "";
rows.forEach(function(row, index) {
var bondTerm = row.querySelector('input[type="hidden"][name*="bond_term"]').value;
var initRateInput = row.querySelector('input[name*="init_rate"]');
var maintainRateInput = row.querySelector('input[name*="maintain_rate"]');
var swapDaysInput = row.querySelector('input[name*="swap_days"]');
var initRateValue = initRateInput.value.trim();
var maintainRateValue = maintainRateInput.value.trim();
var swapDaysValue = swapDaysInput.value.trim();
var initRate = initRateValue === '' ? null : parseFloat(initRateValue);
var maintainRate = maintainRateValue === '' ? null : parseFloat(maintainRateValue);
var swapDays = swapDaysValue === '' ? null : parseInt(swapDaysValue);
// 验证数值不能为负数
if (initRate !== null && initRate < 0) {
hasError = true;
errorMessage = "初始保证金率不能为负数";
return;
}
if (maintainRate !== null && maintainRate < 0) {
hasError = true;
errorMessage = "维持保证金率不能为负数";
return;
}
if (swapDays !== null && swapDays < 0) {
hasError = true;
errorMessage = "互换天数不能为负数";
return;
}
// 默认数据(第一条,bond_term为空)的所有字段都必填
if (bondTerm === "") {
if (initRate === null || maintainRate === null || swapDays === null) {
hasError = true;
errorMessage = "默认配置的所有字段都必须填写";
return;
}
details.push({
bond_term: bondTerm,
init_rate: initRate,
maintain_rate: maintainRate,
swap_days: swapDays
});
} else {
// 其他数据:当保证金率有值时,互换天数必填
if ((initRate !== null || maintainRate !== null) && swapDays === null) {
hasError = true;
errorMessage = "当保证金率有值时,互换天数必须填写";
return;
}
// 当保证金率与互换天数都为空时,不加到details里
if (initRate !== null || maintainRate !== null || swapDays !== null) {
details.push({
bond_term: bondTerm,
init_rate: initRate,
maintain_rate: maintainRate,
swap_days: swapDays
});
}
}
});
if (hasError) {
main.message(errorMessage);
return false;
}
var data = {
marginConfig: configData,
details: details
};
main.post("/ClientMarginConfig/ClientMarginConfigEditJson", data).done(function (res) {
window.parent.loadData();
layer.closeMe();
});
}
// 页面初始化
$(function () {
$(".datepicker").datepicker({ changeMonth: true, changeYear: true, showButtonPanel: true, showOtherMonths: true, selectOtherMonths: true });
});
</script>
}
<form id="configForm" method="post" autocomplete="off">
<div class="form-layout">
@Html.HiddenFor(model => model.id)
@Html.MyDropdownFor(model => model.client_id, ClientDataModel.GetAllClient())
<div id="ValueDateDiv" class="form-group col-md-6">
<label class="formlabel">生效日期:</label>
<input class="search-input datepicker" id="valueDate" name="valueDate" value="@(Model.id == 0 ? "" : Model.value_date.ToString("yyyy-MM-dd"))" type="text" autocomplete="off" required="required">
<span style="color:red">*</span>
</div>
</div>
<hr />
<div class="row">
<div class="col-md-12">
<h4>保证金配置详情</h4>
<br />
<table class="table table-bordered" id="detailTable">
<thead>
<tr>
<th>利率债期限</th>
<th>初始保证金率(%)</th>
<th>维持保证金率(%)</th>
<th>互换默认天数</th>
</tr>
</thead>
<tbody id="detailTableBody">
@for (int i = 0; i < details.Count; i++)
{
var detail = details[i];
var displayName = detail.bond_term == "" ? "默认" : detail.bond_term.Replace("Y", "年");
<tr data-index="@i">
<td>
<input type="hidden" name="details[@i].bond_term" value="@detail.bond_term" />
<input type="text" class="form-control" value="@displayName" readonly />
</td>
<td><input type="number" class="form-control" name="details[@i].init_rate" value="@(detail.init_rate?.ToString("0.##") ?? "")" step="0.01" min="0" max="100" /></td>
<td><input type="number" class="form-control" name="details[@i].maintain_rate" value="@(detail.maintain_rate?.ToString("0.##") ?? "")" step="0.01" min="0" max="100" /></td>
<td><input type="number" class="form-control" name="details[@i].swap_days" value="@(detail.swap_days?.ToString() ?? "")" min="0" /></td>
</tr>
}
</tbody>
</table>
</div>
</div>
<div class="form-buttons">
@MyControls.Btn("保存", "saveConfig()")
@MyControls.Btn("关闭", "layer.closeMe()")
</div>
</form>