Files
zszq-trs/YLErpWeb/Views/Pricing/structure.cshtml
T
hjhan ec11a1028a cleanup(pricing): 删除 structure.cshtml 中非国联的死定制分支
国联民生定制分支下 Company 恒为 CompanyEnum.国联,以下条件永假,对应分支永不渲染:
- @switch(Company) 的 CSS 分支(光大光子 / 国泰君安 专用样式表)
- GetTotalMargin 的 伴兴 / 茂川资本 / 弘业 覆盖(保留 :90 的无条件基础定义,国联本就走它)
- 东方财富 专用的 5 个输入项 ×2 组(InitialAdvance/PeriodAdvance/FontEarning/ConfirmedLine/ConfirmedFloor)

安全性:
- structure.js 对 #InitialAdvance 等 id 为无条件读取(parseFloat($(...).val()) || 0),
  国联下这些元素本就不存在、取值已恒为 0,删除不产生行为变化。
- pageData.showCCR / is厦门象屿 保留 key 仅将公司判断改为硬编码 false,
  JS 侧均为真假判断,序列化契约与取值均不变。

净减 107 行。
2026-08-28 15:48:11 +08:00

1402 lines
84 KiB
Plaintext

@using Microsoft.AspNetCore.Html
@using YLErp.Modules.CalcPriceShowConfigModule
@using YLErp.QdpModule.Constants
@model PricingModel
@{
ViewBag.Title = "期权定价";
if (Model.IsImport)
{
Layout = "~/Views/Shared/_InfoLayout.cshtml";
}
else
{
Layout = "~/Views/Shared/_MainLayout.cshtml";
}
var assetunits = JsDataModel.GetAssetUnits(CurUser);
var traders = JsDataModel.GetTraders(assetunits);
var pageObj = new
{
assetunits = assetunits,
trade = new trade() { Strike = 0 },
traders = JsDataModel.GetTraders(assetunits),
tradeMarginTemplateItems = new tradeController().GetMarginTemplateItems(),
tradeMarginTemplates = new tradeController().GetMarginTemplates(),
engineNames = new[] { "abc", "xyz" },
structureTypes = ViewBag.StructureTypeMap?.Keys,
extendInfos = ViewBag.ExtendInfoMap.Keys,
PropertyMap = ViewBag.StructureTypeMap,
ExtendMap = ViewBag.ExtendInfoMap,
IsPVIncludePrincipal = PS.Config.ErpElement.IsPVIncludePrincipal,
IsTradeSinglePriceCalcu = PS.Config.ErpElement.IsTradeSinglePriceCalcu,
};
var pageData = new
{
showCCR = false, // 国联恒 false(原 Company == 国海 定制分支)
is厦门象屿 = false, // 国联恒 false(原 Company == 厦门象屿 定制分支)
ShowMultiplier = PS.Config.ErpElement.AccumulatorShowMultiplier1,
};
var calcQuotas = CalcPriceShowConfigService.GetShowCalcQuota();
}
@section CSS{
<link href="~/Style/Css/pricing.structure.css?v=1" rel="stylesheet" />
<link href="~/Style/Css/settag.css?v=@(HtmlUtil.JsVersion)" rel="stylesheet" />
<style>
.pitem-cash:not(.pitem) { background: #f0f8ff }
.customPanel { background: #CDE0E6; height: 100%; display: table; width: 100%; }
.autocomplete-suggestions { width: auto !important; min-width: 11%; }
.pricing-item { transform: none !important; }
#tradeSave_ExtendInfo {
border: 1px solid rgba(0,0,0,.1);
padding: 15px 0 0;
}
/* 提示内容样式 */
#iconmsg{
position:absolute;border:1px solid silver;background:white;
}
</style>
}
@section JS{
<script src="~/Statics/libs/_utils/dragscroll.js?v=@(HtmlUtil.JsVersion)"></script>
<script src="~/Statics/libs/_utils/FileSaver.js?v=@(HtmlUtil.JsVersion)"></script>
<script src="~/Statics/libs/_utils/dom-to-image.min.js?v=@(HtmlUtil.JsVersion)"></script>
<script src="~/Statics/libs/sortable/Sortable.min.js"></script>
<script src="~/front/calendar?v=@(HtmlUtil.JsVersion)"></script>
<script src="~/Scripts/app/tradeHelper.js?v=@HtmlUtil.JsVersion"></script>
<script src="~/Scripts/app/trade/percentColumnText.js?v=@HtmlUtil.JsVersion"></script>
<script src="@HtmlUtil.BasicDataJs("品种", "客户")"></script>
<script src="~/Scripts/app/trade/settag.js?v=@HtmlUtil.JsVersion" type="text/javascript"></script>
<script type="text/javascript">
const HasEditTagPermission = @Json.Serialize(CurUser.系统管理.标签编辑权限);
</script>
<script>
const pageObj = @Json.Serialize(pageObj);
const pageData = @Json.Serialize(pageData);
const pageVue = @Json.Serialize(Model);
pageVue.GetTotalMargin = function (trades, structureType) {
return _.reduce(trades, (acc, cur) => acc += parseFloat(cur.InitialMargin) || 0, 0);
};
pageVue.CalcVersion = "@(Context.Request.Query["version"])";
ylotc.trade = pageObj.trade;
ylotc.traders = pageObj.traders;
const consAssetUnits = pageVue.CanSelectTrader ? pageObj.assetunits
: pageObj.assetunits.filter(x => x.TraderIds.includes(pageVue.Trade.TraderId));
ylotc.assetunits = consAssetUnits;
ylotc.tradeMarginTemplateItems = pageObj.tradeMarginTemplateItems;
ylotc.tradeMarginTemplates = pageObj.tradeMarginTemplates;
ylotc.engineNames = pageObj.engineNames;
ylotc.options = pageObj.options;
ylotc.structureTypes = pageObj.structureTypes;
</script>
<script src="~/Scripts/app/pricing/tradePricing.js?v=@HtmlUtil.JsVersion"></script>
<script src="~/Scripts/app/pricing/structure.js?v=@(HtmlUtil.JsVersion)"></script>
}
@await Html.PartialAsync("_CouponDayCount")
<div id="listdiv" class="@(Model.IsImport ? "sr-only" : "")">
<!--定价顶部-->
<div class="card pricing-top" id="pricing-top">
<div class="card-body">
<div class="row no-gutters">
<label class="col-auto mr-2">波动率类型</label>
<div class="col-auto mr-2">
<select v-model="viewState.VolType" v-on:change="pricingVue.changeVolType()">
@foreach (var item in ConsVolInfos.VolTypes)
{
<option value="@item">@item</option>
}
</select>
</div>
<div class="col" style="min-width:350px">
<div class="dropdown d-inline-block">
<button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">新增单腿</button>
<div class="dropdown-menu" style="width:200px;">
<a href="javascript:;" class="dropdown-item" v-for="item in tradeHelper.OptionTradeTypes" v-on:click="pricingVue.addTrade(null,item.value)">{{item.value}}</a>
<div class="dropdown-divider"></div>
<div class="form-group ml-2">
<div class="input-group">
<input type="text" class="form-control" id="importTradeNumber" placeholder="输入交易编号导入" />
<span class="input-group-append">
<a href="javascript:;" class="pl-2 pr-2" onclick="topVue.importTrade()"><i class="fa fa-copy"></i></a>
</span>
</div>
</div>
</div>
</div>
<div class="dropdown d-inline-block">
<button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">新增组合</button>
<div class="dropdown-menu">
<a href="javascript:;" class="dropdown-item" onclick="pricingVue.combine()">自由组合</a>
@foreach (var item in StructureOption_Code.StructureOptionsCn)
{
<a class="dropdown-item" href="javascript:;" v-on:click="addStructure('@item.Value','@item.Text')">@item.Text</a>
}
</div>
</div>
<button type="button" class="btn btn-primary" onclick="pricingVue.calcPrice()">定价计算</button>
@if (CurUser.交易管理_交易新增)
{
<button type="button" class="btn btn-primary" onclick="pricingVue.saveTrades()">录入交易</button>
}
<div class="dropdown d-inline-block">
<button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">图形分析</button>
<div class="dropdown-menu">
@*<a class="dropdown-item" href="javascript:;" v-on:click="pricingVue.showPayoffLineChart()">到期收益曲线</a>*@
@*<a class="dropdown-item" href="javascript:;" v-on:click="pricingVue.showPvChart()">组合价值曲线</a>*@
<a class="dropdown-item" href="javascript:;" v-on:click="pricingVue.showLifeLineChart()">Pv变化曲线</a>
<a class="dropdown-item" href="javascript:;" v-on:click="pricingVue.showGreeksChart()">时间变化曲线</a>
@if (CurUser.风险控制_历史回测工具)
{
<a class="dropdown-item" href="javascript:;" v-on:click="pricingVue.openHistoricalBacktest()">历史回测</a>
}
</div>
</div>
<div class="btn-group">
<button type="button" class="btn btn-danger" onclick="templateVue.showList()">模板</button>
<button type="button" class="btn btn-danger" onclick="templateVue.showSave()" title="保存为模板">保存</button>
</div>
<div class="dropdown d-inline-block">
<button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">选项</button>
<div class="dropdown-menu">
<a class="dropdown-item" href="javascript:;" v-on:click="toggleSimpleMode" title="是否隐藏不常用的字段">
<span class="fa mr-2" v-bind:class="simpleMode?'fa-check':''"></span>
<span>精简模式</span>
</a>
@if (Model.ShowInitialMargin)
{
<a class="dropdown-item" href="javascript:;" v-on:click="toggleCalcMargin" title="是否计算初始预付金">
<span class="fa mr-2" v-bind:class="calcMargin?'fa-check':''"></span>
<span>计算预付金</span>
</a>
}
<a class="dropdown-item" href="javascript:;" v-on:click="toggleCalcAutocallGreeks" title="是否计算凤凰和雪球的所有Greeks">
<span class="fa mr-2" v-bind:class="calcAutocallGreeks?'fa-check':''"></span>
<span>计算凤凰和雪球的所有Greeks</span>
</a>
</div>
</div>
<button type="button" class="btn btn-primary" onclick="pricingVue.clear()" title="清空legs交易">清空</button>
@if (CurUser.交易管理_分组设置)
{
<button type="button" class="btn btn-primary" onclick="pricingVue.saveGroupTrades()">加入分组</button>
}
@if (CurUser.报价管理_定价计算指标显示设置)
{
<button type="button" class="btn btn-primary" onclick="CalcResultShowCfg()">计算指标显示设置</button>
}
</div>
</div>
</div>
</div>
<div class="yc-panel">
<!--定价合计-->
<div class="pricing-summary" id="pricing-summary">
<table class="table table-bordered">
<colgroup>
<col span="1" width="200" />
<col span="1" width="150" />
</colgroup>
<thead>
<tr>
<th>对冲手数</th>
<th v-if="topVue.calcMargin">组合预付金</th>
@foreach(var quta in calcQuotas.CalcQuota)
{
if(quta.IsShow)
{
<th>@quta.Name</th>
}
}
</tr>
</thead>
<tbody v-cloak>
<tr>
<td style="color:red;font-weight: bold;">
<span>{{DeltaHands}}</span>
@if (Model.HedgingOrder && Model.IsTrader)
{
<a href="javascript:;" class="ml-1" onclick="pricingVue.hedgingOrder()" title="对冲下单"><i class="fa fa-external-link"></i></a>
}
</td>
<td v-if="topVue.calcMargin">{{summary.TotalMargin| FixNumber}}</td>
@foreach(var quta in calcQuotas.CalcQuota)
{
if(quta.IsShow)
{
if("PV".Equals(quta.Name))
{
<td>{{summary.Pv| FixNumber}}</td>
}
else if("Delta手数".Equals(quta.Name))
{
<td>{{summary.DeltaInLots| FixNumber}}</td>
}
else if("Gamma手数".Equals(quta.Name))
{
<td>{{summary.GammaInLots| FixNumber}}</td>
}
else if("Theta".Equals(quta.Name))
{
<td>{{summary.Theta| FixNumber}}</td>
}
else if ("Vega".Equals(quta.Name))
{
<td>{{summary.Vega| FixNumber}}</td>
}
else if("Rho".Equals(quta.Name))
{
<td>{{summary.Rho| FixNumber}}</td>
}
else if ("Delta".Equals(quta.Name))
{
<td>{{summary.Delta| FixNumber}}</td>
}
else if ("Gamma".Equals(quta.Name))
{
<td>{{summary.Gamma| FixNumber}}</td>
}
else if ("Deltacash".Equals(quta.Name))
{
<td>{{summary.DeltaCash| FixNumber}}</td>
}
else if("Gammacash".Equals(quta.Name))
{
<td>{{summary.GammaCash| FixNumber}}</td>
}
else if ("Vegacash".Equals(quta.Name))
{
<td>{{summary.VegaCash| FixNumber}}</td>
}
else if ("PV*".Equals(quta.Name))
{
<td>{{summary.PvContainsKnockOut| FixNumber}}</td>
}
else if ("Delta*".Equals(quta.Name))
{
<td>{{summary.DeltaContainsKnockOut| FixNumber}}</td>
}
else if ("Gamma*".Equals(quta.Name))
{
<td>{{summary.GammaContainsKnockOut| FixNumber}}</td>
}
}
}
</tr>
</tbody>
</table>
</div>
<div class="clearfix"></div>
<!--定价列表-->
<div class="pricing-main">
<div class="d-flex">
<div class="pricing-titles-cont">
<div class="singleprice" id="singleprice">@(Model.CompanyName) 付 0.000</div>
<div class="pricing-titles">
<div>组合单价</div>
</div>
<div id="pricing-titles"></div>
</div>
<div class="pricing-items-cont">
<div class="zhanwei"></div>
<div class="d-flex" id="pricing-items"></div>
</div>
</div>
</div>
</div>
</div>
<!--定价组件模板框架-->
<template id="pricingItems_tpl">
<div class="pricing-item">
<div class="pricing-index screenshot-hide" v-if="!pageVue.IsImport">
<span class="structure-type">{{structureType}}</span>
<a href="javascript:;" title="拖动位置" class="pricing-index-drag" v-show="!floating"><i class="fa fa-arrows"></i></a>
<a href="javascript:;" v-on:click="remove" title="移除此项" v-show="!floating"><i class="fa fa-remove"></i></a>
<a href="javascript:void(0)" class="pricing-index-text">{{index}}</a>
<div class="pricing-index-icons" v-show="!floating">
<label class="check-label">
<input type="checkbox" v-model="isSelected" v-on:change="resetSummary(true)">
</label>
<a href="javascript:;" v-on:click="saveTrade" title="录入交易"><i class="fa fa-save"></i></a>
<a href="javascript:;" v-show="showFloatingIcon" v-on:click="showFloatVue" title="浮窗编辑">
<i class="fa fa-external-link"></i>
</a>
</div>
<div class="pricing-index-right" v-show="!floating">
<div class="dropdown">
<a href="javascript:;" class="pricing-index-right-toggle" data-toggle="dropdown">
<i class="fa fa-ellipsis-v"></i>
</a>
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<a href="javascript:;" class="dropdown-item" v-on:click="copyThis">复制此项</a>
<a href="javascript:;" class="dropdown-item" v-on:click="screenshot">生成截图</a>
<a href="javascript:;" class="dropdown-item" v-show="datas.length>1" v-on:click="uncouple">取消组合</a>
</div>
</div>
</div>
</div>
<div class="pricing-trades">
<template v-for="(data,index) in datas">
<vue-trade2 v-if="data.trade.TradeType==='现金流交易'" v-on:reset-summary="resetSummary" v-on:change-client="changeClient" :floating="floating" :trade="data.trade" :view-state="data.viewState" :calc-result="data.calcResult"></vue-trade2>
<vue-trade v-else v-on:reset-summary="resetSummary" v-on:change-client="changeClient" :floating="floating" :trade="data.trade" :view-state="data.viewState" :calc-result="data.calcResult"></vue-trade>
</template>
</div>
<div class="border-0 text-center" v-show="!floating">
<label class="w-100 m-0">
<input type="checkbox" class="checkbox" v-model="isSelected" title="是否录入交易" v-on:change="resetSummary(true)" />
</label>
</div>
</div>
</template>
<!--定价组件模板内部-->
@await Html.PartialAsync("_PricingItemTpl")
<!--定价浮窗-->
<div id="floatModal" class="modal modal-fullscreen @(Model.IsImport?"show":"")" tabindex="-1" data-backdrop="static">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-body">
<div class="pricing-float-topbar">
<div class="btn-group screenshot-hide">
<button type="button" class="btn btn-primary" onclick="floatVue.screenshot()">截图</button>
<button type="button" class="btn btn-primary" onclick="floatVue.calcPrice()">定价计算</button>
<button type="button" class="btn btn-primary" onclick="floatVue.saveTrade()">录入交易</button>
<button type="button" class="btn btn-primary" onclick="floatVue.hide()">关闭</button>
</div>
</div>
<div class="pricing-float-main d-flex" id="for-screenshot">
<div class="ml-auto pricing-titles-cont">
<div class="singleprice screenshot-hide" id="singleprice2">@(Model.CompanyName) 付 0.000</div>
<div class="pricing-titles screenshot-hide">
<div>组合单价</div>
</div>
<div id="pricing-titles2"></div>
</div>
<div class="mr-auto pricing-items-cont">
<div class="zhanwei screenshot-hide"></div>
<div class="pricing-float-items" id="pricing-items2"></div>
</div>
</div>
</div>
</div>
</div>
</div>
<!--截图内容-->
<div id="screenshot" class="text-center screenshot-wrap" style="display:none;">
<div class="img-wrap">
<img id="screenshot-img" />
</div>
<div class="toolbar">
<button type="button" class="btn btn-primary" onclick="screenshoter.download()">保存截图</button>
<button type="button" class="btn btn-primary" onclick="screenshoter.closeShow()">关闭</button>
</div>
</div>
<!--标的下拉选择显示模板-->
<script type="text/html" id="underlyingSuggestionTpl">
<div class="row no-gutters" style="padding:3px 10px;">
<div class="col text-left">${Code}</div>
<% if (!!Name) { %>
<div class="col-auto text-right text-truncate" style="width:70px;">${Name}</div>
<% } %>
</div>
</script>
<!--输入错误信息提示-->
<div class="modal" id="checkErrorModal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">错误提示</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<table id="checkErrorTable" class="table table-bordered table-hover">
<colgroup>
<col span="1" width="100" />
</colgroup>
<thead>
<tr>
<th>编号</th>
<th>错误信息</th>
</tr>
</thead>
<tbody>
<tr>
<th>1</th>
<td></td>
</tr>
</tbody>
</table>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">关闭</button>
</div>
</div>
</div>
</div>
<!--交易录入-->
<div class="modal" tabindex="-1" id="modalTradeSave" data-backdrop="static">
<div class="modal-dialog">
<div class="modal-content" style="width:520px;">
<div class="modal-header">
<h5 class="modal-title">交易保存</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<form class="mx-auto form-layout form-layout-save p-0 m-0 border-0" style="width:500px;border-radius:0;box-shadow:none">
<div class="form-group" style="width:80px;border-bottom:1px solid red;"><div style="width:80px;font-weight:700;padding-left:10px;border-left:4px solid red">簿记要素</div></div>
<div class="form-group">
<label class="form-label">簿记账户</label>
<input type="text" class="form-input" id="AssetId" />
</div>
<div class="form-group">
<label class="form-label">交易员</label>
<input type="text" class="form-input" @(Model.CanSelectTrader ? "" : "readonly") id="TraderId" value="@(Model.Trade.TraderName)" data-id="@(Model.Trade.TraderId)" />
</div>
@if (!Model.ClientUsedForCalc)
{
<div class="form-group">
<label class="form-label">客户名称</label>
<input type="text" class="form-input" id="ClientId" />
</div>
}
<div id="salesCommissionCtrl"></div>
<div class="form-group">
<label class="form-label">交易编号</label>
<input type="text" class="form-input @(Model.UpperTradeNumber?"text-uppercase":"")" id="TradeNumber" maxlength="50" autocomplete="off" placeholder="不填则自动生成" />
</div>
<div class="form-group" style="width:80px;border-bottom:1px solid red;"><div style="width:80px;font-weight:700;padding-left:10px;border-left:4px solid red">报送要素</div></div>
@if (PS.Config.ErpElement.SecuritiesEnvironment)
{
<div class="form-group">
<label class="form-label">交易场所</label>
<select class="form-input" name="TradingPlace" id="TradingPlace">
@{
HtmlString html1 = new HtmlString("");
foreach (var item in YLErp.DBModels.Consts.ConsReport.TradingPlaceMap)
{
var str = "";
if (Model.Trade.MetaDic.ContainsKey("交易场所") && Model.Trade.MetaDic["交易场所"] == item.Key)
{
str = "selected='selected'";
}
<option @str>@item.Key</option>
}
}
</select>
</div>
<div class="form-group">
<label class="form-label">清算机构</label>
<select class="form-input" name="ClearingAgency" id="ClearingAgency">
@{
html1 = new HtmlString("");
foreach (var item in YLErp.DBModels.Consts.ConsReport.ClearingAgencyMap)
{
if (item.Key == "甲方" || item.Key == "乙方")
{
continue;
}
<option>@item.Key</option>
}
}
</select>
</div>
if (!Model.ClientUsedForCalc)
{
<div class="form-group">
<label class="form-label">主协议编号</label>
<select class="form-input" name="MainProtocolCode" id="MainProtocolCode">
</select>
</div>
<div class="form-group">
<label class="formlabel">补充协议编号</label>
<select class="form-input" name="SupProtocolCode" id="SupProtocolCode">
</select>
</div>
}
}
else
{
<div class="form-group">
<label class="formlabel">中央对手方清算</label>
<select id="IsCentralClearing" class="form-input" name="IsCentralClearing">
<option value="N">否</option>
<option value="Y">是</option>
<option value="I">计划中央对手方清算</option>
</select>
</div>
<div class="form-group">
<label class="formlabel">中央清算平台</label>
<select id="CentralClearingPaltform" class="form-input" name="CentralClearingPaltform">
@foreach (var item in YLErp.BLL.DictionaryBLL.GetList("中央清算平台", true, "", true))
{
<option value="@item.Value">@item.Text</option>
}
</select>
</div>
<div class="form-group">
<label class="formlabel">交易平台</label>
<select id="TradingPaltform" class="form-input" name="TradingPaltform">
@foreach (var item in YLErp.BLL.DictionaryBLL.GetList("交易平台", true, "", true))
{
<option value="@item.Value">@item.Text</option>
}
</select>
</div>
}
<div class="form-group">
<label class="form-label">计价币种</label>
<input class="form-input" type="text" name="QuoteCurrency" id="QuoteCurrency" readonly />
</div>
<div class="form-group" id="ExchangeRateDiv">
<label class="form-label">汇率</label>
<input id="ExchangeRate" class="form-input" name="ExchangeRate" type="text" />
</div>
<div class="form-group">
<label class="form-label">交易对手方角色</label>
<select class="form-input" name="OpponentRole" id="OpponentRole">
<option>甲方</option>
<option selected>乙方</option>
</select>
</div>
<div class="form-group" style="width:80px;border-bottom:1px solid red;"><div style="width:80px;font-weight:700;padding-left:10px;border-left:4px solid red">其他要素</div></div>
@if (CurUser.交易管理_交易标签调整权限)
{
<div class='form-group'>
<label class='formlabel'>标签</label>
<div class="tag-context" style="border: 1px solid #bbb;width:300px;display:inline-block;line-height:36px;">
<span class="tag-add">+</span>
</div>
</div>
}
<!--交易扩展模板-->
<div id="tradeSave_ExtendInfo">
<div class="form-group">
<label class="formlabel">自定义要素模板</label>
<select class="form-input" name="ExtendInfos" v-model="ExtendInfos">
@foreach (var item in pageObj.extendInfos)
{
<option value="@(item)">@(item)</option>
}
</select>
</div>
<!--交易扩展信息-->
<template v-if="ExtendInfos">
<template v-for="(value,key,index) in ExtendMap">
<template v-for="(item,index) in value">
<div v-show="ExtendInfos == key" class="form-group">
<template v-if="item.isNew">
<input type="text" class="formlabel" style="width: 120px;" v-model="item.ColumnName" v-on:change="changeOption()" />
</template>
<template v-else>
<label class="formlabel">{{item.ColumnName}}</label>
</template>
<template v-if="item.ColumnType == @((int)YLErp.Enums.StructureColumnTypeEnum.NUMBER)">
<vue-number-input type="text" class="form-input" v-model="item.ColumnDefaultValue" v-bind:format="customNumberFormat"></vue-number-input>
</template>
<template v-else-if="item.ColumnType == @((int)YLErp.Enums.StructureColumnTypeEnum.NUMBERP)">
<vue-number-input type="text" class="form-input" v-model="item.ColumnDefaultValue" v-bind:format="customNumberPercentFormat"></vue-number-input>
</template>
<template v-else-if="item.ColumnType == @((int)YLErp.Enums.StructureColumnTypeEnum.DATE)">
<vue-datepicker class="text-box form-input" v-model="item.ColumnDefaultValue" />
</template>
<template v-else-if="item.ColumnType == @((int)YLErp.Enums.StructureColumnTypeEnum.COMBO_BOX_SINGLE)">
<select class="form-input" v-model="item.ColumnDefaultValue" autocomplete="off">
<option v-for="opt in item.ColumnOptions.split(',')" :value="opt" :key="opt">
{{opt}}
</option>
</select>
</template>
<template v-else>
<input type="text" class="form-input" v-model="item.ColumnDefaultValue" />
</template>
<a class="fa fa-minus" style="margin-left: 10px;" v-on:click="deleteProperty(index)"></a>
</div>
</template>
</template>
<div class="form-group col-6" style="text-align: center;">
<button type="button" class="btn btn-primary btn-save" v-on:click="addNewProperty()">新增</button>
</div>
</template>
</div>
<div class="row" id="hidsearchtag" style="display:none;">
<div class="tag-search">
<div class="keyword-div">
</div>
<div class="selectlist">
</div>
</div>
</div>
<div id="hidhastags" style="display:none;">
<ul>
@if (((List<sys_tag>)ViewBag.TagList) != null && ((List<sys_tag>)ViewBag.TagList).Any())
{
foreach (var tag in (List<sys_tag>)ViewBag.TagList)
{
<li data-id="@tag.id">@tag.Name</li>
}
}
</ul>
<span class="js-li-none-tip" style="display:none;">没有可选择的标签,可按Enter键新增</span>
</div>
</form>
</div>
<div class="modal-footer">
<div class="mx-auto">
<button type="button" id="btnSave" class="btn btn-primary btn-save">录入交易</button>
<button type="button" id="btnCloseInputTrade" class="btn btn-primary btn-close">关闭</button>
</div>
</div>
</div>
</div>
</div>
<!--交易录入 累计-->
<div class="modal" tabindex="-1" id="accumulatormodalTradeSave" data-backdrop="static">
<div class="modal-dialog">
<div class="modal-content" style="width:1020px;margin-left: -200px;">
<div class="modal-header">
<h5 class="modal-title">交易保存</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<form class="mx-auto form-layout form-layout-save p-0 m-0 border-0" style="width:1000px;border-radius:0;box-shadow:none">
<div class="row">
<div class="col">
<div class="form-group" style="width:80px;border-bottom:1px solid red;"><div style="width:80px;font-weight:700;padding-left:10px;border-left:4px solid red">簿记要素</div></div>
<div class="form-group">
<label class="form-label">簿记账户</label>
<input type="text" class="form-input" id="accumulatorAssetId" />
</div>
<div class="form-group">
<label class="form-label">交易员</label>
<input type="text" class="form-input" @(Model.CanSelectTrader ? "" : "readonly") value="@(Model.Trade.TraderName)" data-id="@(Model.Trade.TraderId)" id="accumulatorTradeID" />
</div>
@if (!Model.ClientUsedForCalc)
{
<div class="form-group">
<label class="form-label">客户名称</label>
<input type="text" class="form-input" id="accumulatorClientId" />
</div>
}
<div id="salesaccumulatorCommissionCtrl"></div>
<div class="form-group">
<label class="form-label">交易编号</label>
<input type="text" class="form-input @(Model.UpperTradeNumber?"text-uppercase":"")" id="accumulatorTradeNumber" maxlength="50" autocomplete="off" placeholder="不填则自动生成" />
</div>
<div class="form-group" style="width:80px;border-bottom:1px solid red;"><div style="width:80px;font-weight:700;padding-left:10px;border-left:4px solid red">报送要素</div></div>
@if (PS.Config.ErpElement.SecuritiesEnvironment)
{
<div class="form-group">
<label class="form-label">交易场所</label>
<select class="form-input" name="accumulatorTradingPlace" id="accumulatorTradingPlace">
@{
HtmlString html1 = new HtmlString("");
foreach (var item in YLErp.DBModels.Consts.ConsReport.TradingPlaceMap)
{
var str = "";
if (Model.Trade.MetaDic.ContainsKey("交易场所") && Model.Trade.MetaDic["交易场所"] == item.Key)
{
str = "selected='selected'";
}
<option @str>@item.Key</option>
}
}
</select>
</div>
<div class="form-group">
<label class="form-label">清算机构</label>
<select class="form-input" name="accumulatorClearingAgency" id="accumulatorClearingAgency">
@{
html1 = new HtmlString("");
foreach (var item in YLErp.DBModels.Consts.ConsReport.ClearingAgencyMap)
{
if (item.Key == "甲方" || item.Key == "乙方")
{
continue;
}
<option>@item.Key</option>
}
}
</select>
</div>
if (!Model.ClientUsedForCalc)
{
<div class="form-group">
<label class="form-label">主协议编号</label>
<select class="form-input" name="accumulatorMainProtocolCode" id="accumulatorMainProtocolCode">
</select>
</div>
<div class="form-group">
<label class="formlabel">补充协议编号</label>
<select class="form-input" name="accumulatorSupProtocolCode" id="accumulatorSupProtocolCode">
</select>
</div>
}
}
else
{
<div class="form-group">
<label class="formlabel">中央对手方清算</label>
<select id="accumulatorIsCentralClearing" class="form-input" name="accumulatorIsCentralClearing">
<option value="N">否</option>
<option value="Y">是</option>
<option value="I">计划中央对手方清算</option>
</select>
</div>
<div class="form-group">
<label class="formlabel">中央清算平台</label>
<select id="accumulatorCentralClearingPaltform" class="form-input" name="accumulatorCentralClearingPaltform">
@foreach (var item in YLErp.BLL.DictionaryBLL.GetList("中央清算平台", true, "", true))
{
<option value="@item.Value">@item.Text</option>
}
</select>
</div>
<div class="form-group">
<label class="formlabel">交易平台</label>
<select id="accumulatorTradingPaltform" class="form-input" name="accumulatorTradingPaltform">
@foreach (var item in YLErp.BLL.DictionaryBLL.GetList("交易平台", true, "", true))
{
<option value="@item.Value">@item.Text</option>
}
</select>
</div>
}
<div class="form-group">
<label class="form-label">计价币种</label>
<input class="form-input" type="text" name="accumulatorQuoteCurrency" id="accumulatorQuoteCurrency" readonly />
</div>
<div class="form-group" id="ExchangeRateDiv">
<label class="form-label">汇率</label>
<input id="accumulatorExchangeRate" class="form-input" name="accumulatorExchangeRate" type="text" />
</div>
<div class="form-group">
<label class="form-label">交易对手方角色</label>
<select class="form-input" name="accumulatorOpponentRole" id="accumulatorOpponentRole">
<option>甲方</option>
<option selected>乙方</option>
</select>
</div>
<div class="form-group" style="width:80px;border-bottom:1px solid red;"><div style="width:80px;font-weight:700;padding-left:10px;border-left:4px solid red">其他要素</div></div>
@if (CurUser.交易管理_交易标签调整权限)
{
<div class='form-group'>
<label class='formlabel'>标签</label>
<div class="tag-context" style="border: 1px solid #bbb;width:300px;display:inline-block;line-height:36px;">
<span class="tag-add">+</span>
</div>
</div>
}
<!--交易扩展模板-->
<div id="tradeSave_ExtendInfo2">
<div class="form-group">
<label class="formlabel">自定义要素模板</label>
<select class="form-input" name="ExtendInfos" v-model="ExtendInfos">
@foreach (var item in pageObj.extendInfos)
{
<option value="@(item)">@(item)</option>
}
</select>
</div>
<!--交易扩展信息-->
<template v-if="ExtendInfos">
<template v-for="(value,key,index) in ExtendMap">
<template v-for="(item,index) in value">
<div v-show="ExtendInfos == key" class="form-group">
<template v-if="item.isNew">
<input type="text" class="formlabel" style="width: 120px;" v-model="item.ColumnName" v-on:change="changeOption()" />
</template>
<template v-else>
<label class="formlabel">{{item.ColumnName}}</label>
</template>
<template v-if="item.ColumnType == @((int)YLErp.Enums.StructureColumnTypeEnum.NUMBER)">
<vue-number-input type="text" class="form-input" v-model="item.ColumnDefaultValue" v-bind:format="customNumberFormat"></vue-number-input>
</template>
<template v-else-if="item.ColumnType == @((int)YLErp.Enums.StructureColumnTypeEnum.NUMBERP)">
<vue-number-input type="text" class="form-input" v-model="item.ColumnDefaultValue" v-bind:format="customNumberPercentFormat"></vue-number-input>
</template>
<template v-else-if="item.ColumnType == @((int)YLErp.Enums.StructureColumnTypeEnum.DATE)">
<vue-datepicker class="text-box form-input" v-model="item.ColumnDefaultValue" />
</template>
<template v-else-if="item.ColumnType == @((int)YLErp.Enums.StructureColumnTypeEnum.COMBO_BOX_SINGLE)">
<select class="form-input" v-model="item.ColumnDefaultValue" autocomplete="off">
<option v-for="opt in item.ColumnOptions.split(',')" :value="opt" :key="opt">
{{opt}}
</option>
</select>
</template>
<template v-else>
<input type="text" class="form-input" v-model="item.ColumnDefaultValue" />
</template>
<a class="fa fa-minus" style="margin-left: 10px;" v-on:click="deleteProperty(index)"></a>
</div>
</template>
</template>
<div class="form-group col-6" style="text-align: center;">
<button type="button" class="btn btn-primary btn-save" v-on:click="addNewProperty()">新增</button>
</div>
</template>
</div>
<div class="row" id="hidsearchtag" style="display:none;">
<div class="tag-search">
<div class="keyword-div">
</div>
<div class="selectlist">
</div>
</div>
</div>
<div id="hidhastags" style="display:none;">
<ul>
@if (((List<sys_tag>)ViewBag.TagList) != null && ((List<sys_tag>)ViewBag.TagList).Any())
{
foreach (var tag in (List<sys_tag>)ViewBag.TagList)
{
<li data-id="@tag.id">@tag.Name</li>
}
}
</ul>
<span class="js-li-none-tip" style="display:none;">没有可选择的标签,可按Enter键新增</span>
</div>
</div>
<div class="col">
<div class="form-group" style="width:150px;border-bottom:1px solid red;"><div style="width:160px;font-weight:700;padding-left:10px;border-left:4px solid red">累计期权结算要素 <i class="fa fa-question-circle" title="1、当从定价页面同时录入多笔相同结构的时,默认把第一笔交易的录入要素作为默认值赋予后续交易,从而实现快捷录入2、当同时勾选标准累计和累计三段式并一起录入时,默认会优先弹出累计三段式的录入交易信息,并将累计三段式的结算方式1作为标准累计的结算方式,从而实现快捷录入" style="color:red" aria-hidden="true"></i></div></div>
<div id="leiji">
<div class="form-group">
<label class="form-label">结算方式</label>
<select class="form-input" name="SettlementMode" id="SettlementMode" v-once>
<option value="现金当日">现金结算(当日)</option>
<option value="现金期末">现金结算(期末)</option>
<option value="实物交割">实物交割</option>
<option value="现金实物合并结算">现金实物合并结算</option>
</select>
</div>
<div class="form-group">
<label class="form-label">累计类型</label>
<select class="form-input" name="AccumuType" id="AccumuType">
<option value="">无</option>
<option value="子弹">子弹</option>
<option value="区间现金结算">区间现金结算</option>
</select>
</div>
<div class="form-group">
<label class="form-label">远期期初价类型</label>
<select class="form-input" name="ForwardPriceType" id="ForwardPriceType" v-bind:disabled="trade.SettlementMode!=='实物交割'">
<option value="期权行权价格">期权行权价格</option>
<option value="期权期初价格">期权期初价格</option>
<option value="远期开仓现价">远期开仓现价</option>
<option value="期权成交日收盘价">期权成交日收盘价</option>
</select>
</div>
<div class="form-group">
<label class="form-label">远期到期日类型</label>
<select class="form-input" name="ForwardDateType" id="ForwardDateType" v-bind:disabled="trade.SettlementMode!=='实物交割'">
@foreach (var item in (new tradeController().GetForwardDateNameDic()))
{
<option value="@item.Key">@item.Value</option>
}
</select>
</div>
</div>
<div id="leijisanduanshi">
<div class="form-group">
<label class="form-label">结算方式1</label>
<select class="form-input" name="SettlementMode" id="SettlementMode1" v-once>
<option value="现金当日">现金结算(当日)</option>
<option value="实物交割">实物交割</option>
<option value="现金实物合并结算">现金实物合并结算</option>
</select>
</div>
<div class="form-group">
<label class="form-label">远期期初价类型1</label>
<select class="form-input" name="ForwardPriceType" id="ForwardPriceType1">
<option value="期权行权价格">期权行权价格</option>
<option value="期权期初价格">期权期初价格</option>
<option value="远期开仓现价">远期开仓现价</option>
<option value="期权成交日收盘价">期权成交日收盘价</option>
</select>
</div>
<div class="form-group">
<label class="form-label">远期到期日类型1</label>
<select class="form-input" name="ForwardDateType" id="ForwardDateType1">
@foreach (var item in (new tradeController().GetForwardDateNameDic()))
{
<option value="@item.Key">@item.Value</option>
}
</select>
</div>
<div class="form-group">
<label class="form-label">结算方式2</label>
<select class="form-input" name="SettlementMode2" id="SettlementMode2" v-once>
<option value="现金当日">现金结算(当日)</option>
<option value="实物交割">实物交割</option>
<option value="现金实物合并结算">现金实物合并结算</option>
</select>
</div>
<div class="form-group">
<label class="form-label">远期期初价类型2</label>
<select class="form-input" name="ForwardPriceType2" id="ForwardPriceType2">
<option value="期权行权价格">期权行权价格</option>
<option value="期权期初价格">期权期初价格</option>
<option value="远期开仓现价">远期开仓现价</option>
<option value="期权成交日收盘价">期权成交日收盘价</option>
</select>
</div>
<div class="form-group">
<label class="form-label">远期到期日类型2</label>
<select class="form-input" name="ForwardDateType2" id="ForwardDateType2" v-bind:disabled="SettlementMode2!=='实物交割'">
@foreach (var item in (new tradeController().GetForwardDateNameDic()))
{
<option value="@item.Key">@item.Value</option>
}
</select>
</div>
<div class="form-group">
<label class="form-label">结算方式3</label>
<select class="form-input" name="SettlementMode3" id="SettlementMode3" v-once>
<option value="现金当日">现金结算(当日)</option>
<option value="实物交割">实物交割</option>
<option value="现金实物合并结算">现金实物合并结算</option>
</select>
</div>
<div class="form-group">
<label class="form-label">远期期初价类型3</label>
<select class="form-input" name="ForwardPriceType3" id="ForwardPriceType3" v-bind:disabled="SettlementMode3!=='实物交割'">
<option value="期权行权价格">期权行权价格</option>
<option value="期权期初价格">期权期初价格</option>
<option value="远期开仓现价">远期开仓现价</option>
<option value="期权成交日收盘价">期权成交日收盘价</option>
</select>
</div>
<div class="form-group">
<label class="form-label">远期到期日类型3</label>
<select class="form-input" name="ForwardDateType3" id="ForwardDateType3" v-bind:disabled="SettlementMode3!=='实物交割'">
@foreach (var item in (new tradeController().GetForwardDateNameDic()))
{
<option value="@item.Key">@item.Value</option>
}
</select>
</div>
</div>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<div class="mx-auto">
<button type="button" id="btnAccumulatorSave" class="btn btn-primary btn-save">录入交易</button>
<button type="button" id="btnAccumulatorCloseInputTrade" class="btn btn-primary btn-close">关闭</button>
</div>
</div>
</div>
</div>
</div>
<!--加入组合-->
<div class="modal" tabindex="-1" id="modalGroupTradeSave" data-backdrop="static">
<div class="modal-dialog">
<div class="modal-content" style="width:1020px;">
<div class="modal-header">
<h5 class="modal-title">组合交易保存</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<form class="mx-auto form-layout form-layout-save p-0 m-0 border-0" style="width:990px;border-radius:0;box-shadow:none">
<div style="background-color: #F2F2F2; height: 15px; margin: unset;"></div>
<div style="background-color: #F2F2F2; height: 225px; margin: unset;">
<div class="form-group col-6">
<label class="formlabel">交易日期</label>
<vue-datepicker class="text-box form-input" v-model="trade.TradeDate" disabled />
</div>
<div class="form-group col-6">
<label class="formlabel">到期日期</label>
<vue-datepicker class="text-box form-input" v-model="trade.ExerciseDate" />
</div>
<div class="form-group col-6">
<label class="formlabel">买卖方向</label>
<select class="form-input" v-model="trade.BuySell" v-on:change="changeBuySell()">
<option>卖出</option>
<option>买入</option>
</select>
</div>
<div class="form-group col-6">
<label class="formlabel">成交方式</label>
<select class="form-input" v-model="trade.IsUsePremiumRate" v-on:change="changeIsUsePremiumRate()">
<option :value="true" v-bind:disabled="trade.TradeType==='累计期权'">名义本金</option>
<option :value="false">成交数量</option>
</select>
</div>
<div class="form-group col-6">
<label class="formlabel">期初价格</label>
<vue-number-input class="form-input" v-model="trade.SpotPrice" v-bind:format="inputFormatSpot" disabled></vue-number-input>
</div>
<div class="form-group col-6">
<label class="formlabel">成交数量</label>
<vue-number-input class="form-input" v-model="trade.TradeAmount" v-on:input="changeTradeAmount()" v-bind:format="inputFormatTradeAmount" v-bind:disabled="trade.IsUsePremiumRate"></vue-number-input>
</div>
<div class="form-group col-6">
<label class="formlabel">名义本金</label>
<vue-number-input class="form-input" v-model="trade.StockEqvNotional" v-on:input="changeStockEqvNotional()" v-bind:format="inputFormatEqvNotional" v-bind:disabled="!trade.IsUsePremiumRate"></vue-number-input>
</div>
<div class="form-group col-6">
<label class="formlabel">权利金</label>
<template v-if="trade.IsUsePremiumRate">
<vue-number-input class="form-input" v-model="trade.PremiumRate" v-bind:format="inputFormatPremiumRate" disabled></vue-number-input>
</template>
<template v-else>
<vue-number-input class="form-input" v-model="trade.TradeSinglePrice" v-bind:format="inputFormatSinglePriceOnly" disabled></vue-number-input>
</template>
</div>
<div class="form-group col-6">
<label class="formlabel">交易总额</label>
<vue-number-input class="form-input" v-model="trade.TradePrice" disabled></vue-number-input>
</div>
<div class="form-group col-6">
<label class="formlabel">相对行权价</label>
<select class="form-input" v-model="trade.IsMoneynessOption">
<option>是</option>
<option>否</option>
</select>
</div>
</div>
<div style="background-color: #CDE0E6; height: 15px; margin: unset;"></div>
<div class="customPanel">
<div class="form-group col-6">
<label class="form-label">结构类型</label>
<select class="form-input" v-model="trade.StructureType" v-on:change="changeStrucTureType()">
<option v-for="structureType in structureTypes">
{{ structureType }}
</option>
</select>
</div>
<template v-if="trade.StructureType == '气囊结构'">
<div class="form-group col-6">
<label class="formlabel">看涨看跌</label>
<select class="form-input" v-model="trade.OptionType">
<option>看涨</option>
<option>看跌</option>
</select>
</div>
<div class="form-group col-6">
<label class="formlabel">敲入价格</label>
<vue-number-input class="form-input" v-model="trade.trade_airbag.Barrier" v-bind:format="inputFormatStrike"></vue-number-input>
</div>
<div class="form-group col-6">
<label class="formlabel">低执行价格</label>
<vue-number-input class="form-input" v-model="trade.Strike" v-bind:format="inputFormatStrike"></vue-number-input>
</div>
<div class="form-group col-6">
<label class="formlabel">高执行价格</label>
<vue-number-input class="form-input" v-model="trade.trade_airbag.HighStrike" v-bind:format="inputFormatStrike" v-bind:disabled="!trade.trade_airbag.HasPayoffLimit"></vue-number-input>
<input type="checkbox" class="mr-1" v-model="trade.trade_airbag.HasPayoffLimit">
</div>
<div class="form-group col-6">
<label class="formlabel">未敲入参与率</label>
<vue-number-input class="form-input" v-model="trade.trade_airbag.NotKIParticipationRate" v-bind:format="inputFormatPercent"></vue-number-input>
</div>
<div class="form-group col-6">
<label class="formlabel">上涨参与率</label>
<vue-number-input class="form-input" v-model="trade.trade_airbag.KIParticipationRate" v-bind:format="inputFormatPercent"></vue-number-input>
</div>
</template>
<template v-else>
<template v-for="(value,key,index) in PropertyMap">
<template v-if="key != '气囊结构'">
<div v-show="trade.StructureType == key">
<template v-for="(item,index) in value">
<div class="form-group col-6">
<template v-if="item.isNew">
<input type="text" class="form-input" style="width: 120px;" v-model="item.ColumnName" v-on:change="changeOption()" />
</template>
<template v-else>
<label class="formlabel">{{item.ColumnName}}</label>
</template>
<template v-if="item.ColumnType == @((int)YLErp.Enums.StructureColumnTypeEnum.NUMBER)">
<vue-number-input type="text" class="form-input" v-model="item.ColumnDefaultValue" v-bind:format="customNumberFormat"></vue-number-input>
</template>
<template v-else-if="item.ColumnType == @((int)YLErp.Enums.StructureColumnTypeEnum.NUMBERP)">
<vue-number-input type="text" class="form-input" v-model="item.ColumnDefaultValue" v-bind:format="customNumberPercentFormat"></vue-number-input>
</template>
<template v-else-if="item.ColumnType == @((int)YLErp.Enums.StructureColumnTypeEnum.DATE)">
<vue-datepicker class="text-box form-input" v-model="item.ColumnDefaultValue" />
</template>
<template v-else-if="item.ColumnType == @((int)YLErp.Enums.StructureColumnTypeEnum.COMBO_BOX_SINGLE)">
<select class="form-input" v-model="item.ColumnDefaultValue" autocomplete="off">
<option v-for="opt in item.ColumnOptions.split(',')" :value="opt" :key="opt">
{{opt}}
</option>
</select>
</template>
<template v-else>
@*YLErp.Enums.StructureColumnTypeEnum.TEXT*@
<input type="text" class="form-input" v-model="item.ColumnDefaultValue" />
</template>
<a class="fa fa-minus" style="margin-left: 10px;" v-on:click="deleteProperty(index)"></a>
</div>
</template>
</div>
</template>
</template>
<div class="form-group col-6" style="text-align: center;">
<button type="button" class="btn btn-primary btn-save" v-on:click="addNewProperty()">新增</button>
</div>
</template>
</div>
<div style="background-color: #F2F2F2; height: 15px; margin: unset;"></div>
<div style="background-color: #F2F2F2; height:@(Model.SecuritiesEnvironment?"290px":"320px");">
<div style="margin-left: 15px;">
<label class='formlabel'>交易备注</label>
<textarea rows='3' v-model="trade.Comments" class="text-box h-auto text-left" style="width: 795px;margin-left: -4px;"></textarea>
</div>
<div class="form-group col-6">
<label class="form-label">计价币种</label>
<input class="form-input" type="text" name="QuoteCurrency" id="selQuoteCurrency" readonly />
</div>
<div class="form-group col-6" id="selExchangeRateDiv">
<label class="form-label">汇率</label>
<input id="selExchangeRate" class="form-input" name="ExchangeRate" type="text" />
</div>
<div class="form-group col-6">
<label class="form-label">簿记账户</label>
<input type="text" class="form-input" id="GroupAssetId" />
</div>
<div class="form-group col-6">
<label class="form-label">交易员</label>
<input type="text" class="form-input" id="GroupTraderId" />
</div>
<div class="form-group col-6">
<label class="form-label">交易对手方</label>
<input type="text" class="form-input" id="GroupClientId" />
</div>
<div class="form-group col-6">
<label class="form-label">交易编号</label>
<input type="text" class="form-input" v-model="trade.TradeNumber" />
</div>
@if (!Model.SecuritiesEnvironment)
{
<div class="form-group col-6">
<label class="form-label">中央对手方清算</label>
<select id="selIsCentralClearing" name="IsCentralClearing" class="form-input">
<option value="N">否</option>
<option value="Y">是</option>
<option value="I">计划中央对手方清算</option>
</select>
</div>
<div class="form-group col-6">
<label class="form-label">中央清算平台</label>
<select id="selCentralClearingPaltform" name="CentralClearingPaltform" class="form-input">
@foreach (var item in YLErp.BLL.DictionaryBLL.GetList("中央清算平台", true, "", true))
{
<option value="@item.Value">@item.Text</option>
}
</select>
</div>
<div class="form-group col-6">
<label class="form-label">交易平台</label>
<select id="selTradingPaltform" name="TradingPaltform" class="form-input">
@foreach (var item in YLErp.BLL.DictionaryBLL.GetList("交易平台", true, "", true))
{
<option value="@item.Value">@item.Text</option>
}
</select>
</div>
}
@if (CurUser.交易管理_交易标签调整权限)
{
<div class='form-group col-12'>
<label class='form-label'>标签</label>
<div class="tag-context" style="border: 1px solid #bbb;width:796px;display:inline-block;line-height:36px;">
<span class="tag-add">+</span>
</div>
</div>
}
<div class="row" id="hidsearchtag" style="display:none;">
<div class="tag-search">
<div class="keyword-div">
</div>
<div class="selectlist">
</div>
</div>
</div>
<div id="hidhastags" style="display:none;">
<ul>
@if (((List<sys_tag>)ViewBag.TagList) != null && ((List<sys_tag>)ViewBag.TagList).Any())
{
foreach (var tag in (List<sys_tag>)ViewBag.TagList)
{
<li data-id="@tag.id">@tag.Name</li>
}
}
</ul>
<span class="js-li-none-tip" style="display:none;">没有可选择的标签,可按Enter键新增</span>
</div>
</div>
@*@if (Model.SecuritiesEnvironment)
{
<div class="form-group">
<label class="form-label">交易场所</label>
<select class="form-input" v-model="trade.TradingPlace">
@foreach (var item in YLErp.DBModels.Consts.ConsReport.TradingPlaceMap)
{
<option>@item.Key</option>
}
</select>
</div>
<div class="form-group">
<label class="form-label">清算机构</label>
<select class="form-input" v-model="trade.ClearingAgency">
@foreach (var item in YLErp.DBModels.Consts.ConsReport.ClearingAgencyMap)
{
if (item.Key == "甲方" || item.Key == "乙方")
{
continue;
}
<option>@item.Key</option>
}
</select>
</div>
if (!Model.ClientUsedForCalc)
{
<div class="form-group">
<label class="form-label">主协议编号</label>
<select class="form-input" name="MainProtocolCode" id="MainProtocolCode">
</select>
</div>
<div class="form-group">
<label class="formlabel">补充协议编号</label>
<select class="form-input" name="SupProtocolCode" id="SupProtocolCode">
</select>
</div>
}
}*@
</form>
</div>
<div class="modal-footer">
<div class="mx-auto">
<button type="button" class="btn btn-primary btn-save" data-dismiss="modal" v-on:click="saveGroupTrade()">录入组合交易</button>
<button type="button" class="btn btn-primary btn-close" data-dismiss="modal" v-on:click="closeModal()">关闭</button>
</div>
</div>
</div>
</div>
</div>
<!--对冲下单-->
<form id="orderForm" action="/RiskHedging/HedgingOrder" method="post" target="_blank" class="sr-only">
<input type="hidden" name="InstType" value="" />
</form>
@await Html.PartialAsync("_SyntheticPrice")
@await Html.PartialAsync("/Views/trade/_part/SalesCommission.cshtml", new SalesCommissionModel() { Disabled = false, ViewType = "期权" })
<!--自定义模板-->
<div class="modal" tabindex="-1" id="modalTemplate">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">自定义模板</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<template v-if="saveMode">
<form id="formTemplateSave" onsubmit="return false;">
<div class="form-group">
<label>模板名称</label>
<input type="text" class="form-control text-left" style="width:100%;" maxlength="50" v-model="saveData.name">
</div>
<div class="form-group">
<div><label><input type="checkbox" v-model="saveData._override" checked="" class="mr-1">覆盖已存在的模板</label></div>
<div>
<label><input type="checkbox" v-model="saveData._CommonTemplate" checked="" class="mr-1">保存为公共模板</label>
</div>
</div>
<div class="form-group text-center">
<button type="button" class="btn btn-primary" v-on:click="saveTemplate">保存模板</button>
</div>
</form>
</template>
<template v-else>
<div class="row">
<div class="col">
<div class="yt-input-group d-inline-block">
<input type="text" class="search" v-model="searchText" placeholder="搜索" v-on:input="searchList" />
<a href="javascript:void(0)" class="yt-input-group-append show" v-on:click="searchList('reset')" style="padding-top:4px;" title="清除搜索"><i class="fa fa-remove"></i></a>
</div>
</div>
<div class="col text-right">
<a href="javascript:void(0)" v-on:click="refreshList" title="重新加载列表" style="line-height:30px;"><i class="fa fa-refresh"></i></a>
</div>
</div>
<hr />
<ul class="list-group list-group-flush yt-template-group border">
<li class="list-group-item yt-template-item" v-for="item in listData" v-show="item.show">
<a href="javascript:void(0)" title="删除" class="yt-template-remove" v-on:click="removeTemplate(item.id)"><i class="fa fa-remove"></i></a>
<a href="javascript:void(0)" v-on:click="loadTemplate" class="yt-template-link">{{item.name}}</a><span>{{item.ConfigType==3?"公共模板":"个人模板"}}</span>
</li>
</ul>
</template>
</div>
</div>
</div>
</div>