(RedisKey);
+ }
+ else
+ {
+ return Result;
+ }
+ }
+ }
+
+ public class XBondSpread
+ {
+ public int bid { get; set; }
+
+ public int ofr { get; set; }
+ }
+}
diff --git a/YLErpWeb/Controllers/ExchangeTradeController.cs b/YLErpWeb/Controllers/ExchangeTradeController.cs
index 93f54830..321f2fb5 100644
--- a/YLErpWeb/Controllers/ExchangeTradeController.cs
+++ b/YLErpWeb/Controllers/ExchangeTradeController.cs
@@ -1,4 +1,6 @@
-using YLErp.Modules.ExchangeTradeModule;
+using YLErp.Cache;
+using YLErp.Modules.ExchangeTradeModule;
+using YLErp.Modules.SystemModule;
namespace YLErp.Web.Controllers
{
@@ -7,6 +9,11 @@ namespace YLErp.Web.Controllers
///
public class ExchangeTradeController : BaseController
{
+ private IYLCache _yLCache;
+ public ExchangeTradeController(IYLCache yLCache)
+ {
+ _yLCache = yLCache;
+ }
///
/// 场内交易列表
///
@@ -255,5 +262,20 @@ namespace YLErp.Web.Controllers
}
return JsonSuccess();
}
+
+ ///
+ /// 偏移设置
+ ///
+ ///
+ public ActionResult SpreadSetting()
+ {
+ return View(new XBondSpreadService().GetXBondSpread(_yLCache) ?? new XBondSpread() { bid = 0, ofr = 0 });
+ }
+
+ public JsonResult AjaxSaveSpreadSetting(XBondSpread data)
+ {
+ new XBondSpreadService().SetXBondSpread(data, _yLCache);
+ return JsonSuccess();
+ }
}
}
diff --git a/YLErpWeb/Views/ExchangeTrade/SpreadSetting.cshtml b/YLErpWeb/Views/ExchangeTrade/SpreadSetting.cshtml
new file mode 100644
index 00000000..6c950785
--- /dev/null
+++ b/YLErpWeb/Views/ExchangeTrade/SpreadSetting.cshtml
@@ -0,0 +1,84 @@
+@using YLErp.Modules.SystemModule
+@model XBondSpread
+@{
+ ViewBag.Title = "偏移设置";
+ Layout = "~/Views/Shared/_InfoLayout.cshtml";
+}
+
+@section CSS{
+
+}
+
+
+@section JS{
+
+}
+
+
\ No newline at end of file
diff --git a/YLErpWeb/Views/ExchangeTrade/TradeList.cshtml b/YLErpWeb/Views/ExchangeTrade/TradeList.cshtml
index c333d033..40715e33 100644
--- a/YLErpWeb/Views/ExchangeTrade/TradeList.cshtml
+++ b/YLErpWeb/Views/ExchangeTrade/TradeList.cshtml
@@ -83,6 +83,7 @@
@if (CurUser.交易管理_标的交易新增){
+ @MyControls.Btn("偏移设置", "spreadSetting()")
@MyControls.Btn("批量调整", "batchTradeAdjustView()")
}
diff --git a/YLErpWeb/wwwroot/Scripts/app/trade/exchange/tradeList.js b/YLErpWeb/wwwroot/Scripts/app/trade/exchange/tradeList.js
index 5fa31c1f..a76bbef1 100644
--- a/YLErpWeb/wwwroot/Scripts/app/trade/exchange/tradeList.js
+++ b/YLErpWeb/wwwroot/Scripts/app/trade/exchange/tradeList.js
@@ -1,278 +1,322 @@
!page.PostData && (page.PostData = { IsOption: page.IsOption });
$(function () {
+ $("#createInvote2").click(function () {
+ var tempTrim = String.prototype.trim;
+ String.prototype.trim = function () {
+ var firstChar = "";
+ if (this.indexOf("\t") === 0) {
+ firstChar = "\t";
+ }
+ return firstChar + this.replace(/(^\s*)|(\s*$)/g, "");
+ };
+ ExcellentExport.csv(this, "excelTable");
+ String.prototype.trim = tempTrim;
+ return;
+ });
- $('#createInvote2').click(
- function () {
- var tempTrim = String.prototype.trim;
- String.prototype.trim = function () {
- var firstChar = "";
- if (this.indexOf("\t") === 0) {
- firstChar = "\t";
- }
- return firstChar + this.replace(/(^\s*)|(\s*$)/g, "");
- };
- ExcellentExport.csv(this, 'excelTable');
- String.prototype.trim = tempTrim;
- return;
- }
- );
+ $(".datepicker").datepicker({
+ changeMonth: true,
+ changeYear: true,
+ showButtonPanel: true,
+ showOtherMonths: true,
+ selectOtherMonths: true,
+ });
- $(".datepicker").datepicker({
- changeMonth: true,
- changeYear: true,
- showButtonPanel: true,
- showOtherMonths: true,
- selectOtherMonths: true
- });
+ var url = "/ExchangeTrade/AjaxGetTradeList";
- var url = "/ExchangeTrade/AjaxGetTradeList";
+ grid = jQuery("#listGrid").jqGrid({
+ cmTemplate: {
+ width: 80,
+ align: "center",
+ sortable: false,
+ },
+ url: url,
+ datatype: "json",
+ multiselect: true,
+ height: "auto",
+ width: "96%",
+ autowidth: false,
+ shrinkToFit: false,
+ viewrecords: true,
+ jsonReader: { repeatitems: false },
+ mtype: "POST",
+ postData: page.PostData,
+ ondblClickRow: rowdblclick,
+ colModel: getColModelGrid(),
+ pager: jQuery("#pagerGrid"),
+ pagerpos: "left",
+ rowNum: 25,
+ rowList: [25, 50, 100, 200, 10000],
+ loadComplete: gridComplete,
+ });
- grid = jQuery('#listGrid').jqGrid({
- cmTemplate: {
- width: 80,
- align: 'center',
- sortable: false
- },
- url: url,
- datatype: 'json',
- multiselect: true,
- height: 'auto',
- width: '96%',
- autowidth: false,
- shrinkToFit: false,
- viewrecords: true,
- jsonReader: { repeatitems: false },
- mtype: 'POST',
- postData: page.PostData,
- ondblClickRow: rowdblclick,
- colModel: getColModelGrid(),
- pager: jQuery('#pagerGrid'),
- pagerpos: 'left',
- rowNum: 25,
- rowList: [25, 50, 100, 200, 10000],
- loadComplete: gridComplete
- });
+ $(window).on("keydown", function (event) {
+ var e = event || window.event;
+ e && e.keyCode === 13 && SearchClick(true);
+ });
- $(window).on('keydown', function (event) {
- var e = event || window.event;
- (e && e.keyCode === 13) && SearchClick(true);
- });
-
- if ($('#UnderlyingIds').length) {
- let flag = tradeHelper.UnderlyingSelectFlag;
- let underlyingCtrl = new tradeHelper.UnderlyingSelectCtrl('#UnderlyingIds').setFlag(flag.UsePinYinFilter | flag.IncludeMatured);
- }
+ if ($("#UnderlyingIds").length) {
+ let flag = tradeHelper.UnderlyingSelectFlag;
+ let underlyingCtrl = new tradeHelper.UnderlyingSelectCtrl(
+ "#UnderlyingIds"
+ ).setFlag(flag.UsePinYinFilter | flag.IncludeMatured);
+ }
});
function DoubleFormat(cellValue, options, rowObject) {
- return cellValue ? cellValue.toFixed(2) : "0.00";
+ return cellValue ? cellValue.toFixed(2) : "0.00";
}
function gridComplete() {
- var jgrid = $(this);
- main.setcolumnChooser(jgrid, page.configcolumn);
- var newHeight = $(window).height() - 350;
- $(".ui-jqgrid .ui-jqgrid-bdiv").css("cssText", "height: " + newHeight + "px!important;");
- selAllGrid();
+ var jgrid = $(this);
+ main.setcolumnChooser(jgrid, page.configcolumn);
+ var newHeight = $(window).height() - 350;
+ $(".ui-jqgrid .ui-jqgrid-bdiv").css(
+ "cssText",
+ "height: " + newHeight + "px!important;"
+ );
+ selAllGrid();
}
function showToolName(cellValue, options, rowObject) {
- return ' ';
+ return (
+ ' '
+ );
}
function rowdblclick(rowid) {
- var rowData = $(this).getRowData(rowid);
- if (rowData.EncryptId && rowData.TradeType) {
- starttradeView(rowData.EncryptId);
- }
+ var rowData = $(this).getRowData(rowid);
+ if (rowData.EncryptId && rowData.TradeType) {
+ starttradeView(rowData.EncryptId);
+ }
}
function startAddtrade() {
- layer.open({
- type: 2,
- title: "新增交易",
- shadeClose: false,
- shade: 0.4,
- area: ['1200px', '650px'],
- content: "/ExchangeTrade/" + (page.IsOption ? "optionTradeEdit" : "tradeEdit") + "/0"
- });
+ layer.open({
+ type: 2,
+ title: "新增交易",
+ shadeClose: false,
+ shade: 0.4,
+ area: ["1200px", "650px"],
+ content:
+ "/ExchangeTrade/" +
+ (page.IsOption ? "optionTradeEdit" : "tradeEdit") +
+ "/0",
+ });
}
function starttradeView(id) {
- var srcurl = "/ExchangeTrade/tradeView/?enid=" + id;
- main.open("查看交易", srcurl, { area: ["1200px", "650px"] });
+ var srcurl = "/ExchangeTrade/tradeView/?enid=" + id;
+ main.open("查看交易", srcurl, { area: ["1200px", "650px"] });
}
function reloadtrade() {
- //重新加载
- SearchClick();
+ //重新加载
+ SearchClick();
}
function uploadTrade(id) {
- main.open("导入场内交易", "/exchangeTrade/tradeUpload", { area: ['800px', '600px'] });
+ main.open("导入场内交易", "/exchangeTrade/tradeUpload", {
+ area: ["800px", "600px"],
+ });
}
function SearchClick(isSearchclick) {
- let listGrid = $('#listGrid');
- let postData = $.extend({}, page.PostData, $('#form1').serializeObject());
- listGrid.setPostData(postData)
- if (isSearchclick === true) {
- listGrid.jqGrid('setGridParam', { page: 1 });
- }
- listGrid.trigger('reloadGrid');
+ let listGrid = $("#listGrid");
+ let postData = $.extend({}, page.PostData, $("#form1").serializeObject());
+ listGrid.setPostData(postData);
+ if (isSearchclick === true) {
+ listGrid.jqGrid("setGridParam", { page: 1 });
+ }
+ listGrid.trigger("reloadGrid");
}
function exportTradeChoose() {
- var dateTemp = new Date().Format("yyyyMMddhhmmss");
- var fileName = "导出场内" + (page.IsOption ? "期权" : "对冲") + "交易" + "_" + dateTemp;
- main.toExcel("listGrid", fileName, "csv", null, "操作", [{
- colName: "交易编号",
- formatter: "text"
- }, {
- colName: "标的代码",
- formatter: "text"
- }]);
+ var dateTemp = new Date().Format("yyyyMMddhhmmss");
+ var fileName =
+ "导出场内" + (page.IsOption ? "期权" : "对冲") + "交易" + "_" + dateTemp;
+ main.toExcel("listGrid", fileName, "csv", null, "操作", [
+ {
+ colName: "交易编号",
+ formatter: "text",
+ },
+ {
+ colName: "标的代码",
+ formatter: "text",
+ },
+ ]);
}
function showcolumnChooser() {
- var jgrid = jQuery('#listGrid');
- main.showcolumnChooser(jgrid, page.configcolumn);
+ var jgrid = jQuery("#listGrid");
+ main.showcolumnChooser(jgrid, page.configcolumn);
}
function selAllGrid() {
- var checkAll = $("#CheckboxAll").prop("checked");
+ var checkAll = $("#CheckboxAll").prop("checked");
+ $("#cb_listGrid").click();
+ var cbGridClick = $("#cb_listGrid").prop("checked");
+ if (checkAll !== cbGridClick) {
$("#cb_listGrid").click();
- var cbGridClick = $("#cb_listGrid").prop("checked");
- if (checkAll !== cbGridClick) {
- $("#cb_listGrid").click();
- }
+ }
}
//ESC
$(document).keyup(function (event) {
- switch (event.keyCode) {
- case 27:
- window.parent.layer.closeAll();
- $(".jconfirm-open").addClass("hide");//关闭取消分组弹层
- }
+ switch (event.keyCode) {
+ case 27:
+ window.parent.layer.closeAll();
+ $(".jconfirm-open").addClass("hide"); //关闭取消分组弹层
+ }
});
function getColModelGrid() {
- return [
- {
- name: 'id',
- label: 'id',
- hidden: true,
- optionHide: true
- }, {
- name: 'EncryptId',
- label: 'EncryptId',
- hidden: true,
- optionHide: true
- }, {
- name: '',
- label: '操作',
- formatter: showToolName
- }, {
- name: 'AssetBookName',
- label: '簿记账户',
- width: 110,
- align: 'center'
- }, {
- name: 'TradeType',
- label: '交易类型',
- hidden: page.IsOption,
- optionHide: page.IsOption,
- formatter: function (cellvalue, options, rowObject) {
- return cellvalue === '商品期货' ? '期货' : cellvalue;
- }
- }, {
- name: 'TradeDate',
- label: '成交日期',
- width: 90,
- formatter: 'date'
- }, {
- name: 'TradeSide',
- label: '交易方向'
- }, {
- name: 'UnderlyingCode',
- label: '标的代码'
- }, {
- name: 'UnderlyingName',
- label: '标的名称'
- }, {
- name: 'OptionCode',
- label: '期权代码',
- width: 120,
- hidden: !page.IsOption,
- optionHide: !page.IsOption,
- }, {
- name: 'ExerciseMode',
- label: '行权方式',
- hidden: !page.IsOption,
- optionHide: !page.IsOption,
- }, {
- name: 'TradeLots',
- label: '交易手数'
- }, {
- name: 'SheetAmount',
- label: '交易数量/张数',
- formatter: tradeHelper.getNotionalFormatByDouble
- }, {
- name: 'TradeSinglePriceForBond',
- label: '成交价',
- formatter: otcformat.trading.marginRate
- }, {
- name: 'TraderName',
- label: '交易员',
- hidden: page.IsOption
- }, {
- name: 'TradeNumber',
- label: '交易编号',
- width: 150,
- hidden: true
- }, {
- name: 'ExchangeAccountCode',
- label: '对冲账户',
- width: 110,
- hidden: true
- }, {
- name: 'OptDate',
- label: '操作时间',
- width: 160,
- formatter: 'datetime'
- }, {
- name: 'OptName',
- label: '操作者'
- }, {
- name: 'Comments',
- label: '备注'
- }, {
- name: 'TradeSource',
- label: '交易来源'
- }
- ];
+ return [
+ {
+ name: "id",
+ label: "id",
+ hidden: true,
+ optionHide: true,
+ },
+ {
+ name: "EncryptId",
+ label: "EncryptId",
+ hidden: true,
+ optionHide: true,
+ },
+ {
+ name: "",
+ label: "操作",
+ formatter: showToolName,
+ },
+ {
+ name: "AssetBookName",
+ label: "簿记账户",
+ width: 110,
+ align: "center",
+ },
+ {
+ name: "TradeType",
+ label: "交易类型",
+ hidden: page.IsOption,
+ optionHide: page.IsOption,
+ formatter: function (cellvalue, options, rowObject) {
+ return cellvalue === "商品期货" ? "期货" : cellvalue;
+ },
+ },
+ {
+ name: "TradeDate",
+ label: "成交日期",
+ width: 90,
+ formatter: "date",
+ },
+ {
+ name: "TradeSide",
+ label: "交易方向",
+ },
+ {
+ name: "UnderlyingCode",
+ label: "标的代码",
+ },
+ {
+ name: "UnderlyingName",
+ label: "标的名称",
+ },
+ {
+ name: "OptionCode",
+ label: "期权代码",
+ width: 120,
+ hidden: !page.IsOption,
+ optionHide: !page.IsOption,
+ },
+ {
+ name: "ExerciseMode",
+ label: "行权方式",
+ hidden: !page.IsOption,
+ optionHide: !page.IsOption,
+ },
+ {
+ name: "TradeLots",
+ label: "交易手数",
+ },
+ {
+ name: "SheetAmount",
+ label: "交易数量/张数",
+ formatter: tradeHelper.getNotionalFormatByDouble,
+ },
+ {
+ name: "TradeSinglePriceForBond",
+ label: "成交价",
+ formatter: otcformat.trading.marginRate,
+ },
+ {
+ name: "TraderName",
+ label: "交易员",
+ hidden: page.IsOption,
+ },
+ {
+ name: "TradeNumber",
+ label: "交易编号",
+ width: 150,
+ hidden: true,
+ },
+ {
+ name: "ExchangeAccountCode",
+ label: "对冲账户",
+ width: 110,
+ hidden: true,
+ },
+ {
+ name: "OptDate",
+ label: "操作时间",
+ width: 160,
+ formatter: "datetime",
+ },
+ {
+ name: "OptName",
+ label: "操作者",
+ },
+ {
+ name: "Comments",
+ label: "备注",
+ },
+ {
+ name: "TradeSource",
+ label: "交易来源",
+ },
+ ];
}
function reloadData() {
- $('#listGrid').trigger('reloadGrid');
+ $("#listGrid").trigger("reloadGrid");
}
-
function batchTradeAdjustView() {
- var selectedIds = $('#listGrid').jqGrid('getGridParam', 'selarrrow');
- var ors = [];
- if (selectedIds.length > 0) {
- for (var i = 0; i < selectedIds.length; i++) {
- var or = $('#listGrid').getRowData(selectedIds[i]).id;
- ors.push(or);
- }
- }
- if (ors.length == 0) {
- main.alert("请选中数据才能批量调整");
- } else {
- main.open("批量调整", "/ExchangeTrade/BatchTradeAdjustView?Ids=" + ors.join(','), { area: ['500px', '40%'] });
+ var selectedIds = $("#listGrid").jqGrid("getGridParam", "selarrrow");
+ var ors = [];
+ if (selectedIds.length > 0) {
+ for (var i = 0; i < selectedIds.length; i++) {
+ var or = $("#listGrid").getRowData(selectedIds[i]).id;
+ ors.push(or);
}
+ }
+ if (ors.length == 0) {
+ main.alert("请选中数据才能批量调整");
+ } else {
+ main.open(
+ "批量调整",
+ "/ExchangeTrade/BatchTradeAdjustView?Ids=" + ors.join(","),
+ { area: ["500px", "40%"] }
+ );
+ }
+}
-}
\ No newline at end of file
+// 偏移设置
+function spreadSetting() {
+ main.open("偏移设置", "/ExchangeTrade/SpreadSetting", {
+ area: ["450px", "310px"],
+ });
+}