Files
zszq-trs/YLErpWeb/wwwroot/Scripts/app/eod/EodPositionRisks.js
T
2026-08-20 14:15:12 +08:00

906 lines
29 KiB
JavaScript

function getColModelGrid() {
var i = 0;
var colModelGrid = [
{ name: 'id', hidden: true, optionHide: true },
{ name: 'EncryptTradeId', hidden: true, optionHide: true },
{
name: 'TradeNumber',
label: '交易编号',
index: 'TradeNumber',
width: 150,
align: 'center',
sortIndex: i++,
sortable: true
}, {
name: 'GroupName',
label: '分组名',
index: 'GroupName',
sortIndex: i++,
width: 80,
sortable: false,
hidden: !page.isGuoyuan
}, {
name: 'ContractCode',
label: '确认书编号',
index: 'ContractCode',
width: 150,
align: 'center',
sortIndex: i++,
sortable: true
}, {
name: 'ExchangeOptionCode',
label: '期权代码',
index: 'ExchangeOptionCode',
width: 150,
align: 'center',
sortIndex: i++,
sortable: true
}, {
name: 'ChildLeg',
label: '多腿编号',
index: 'ChildLeg',
width: 80,
align: 'center',
sortIndex: i++,
sortable: false
}, {
name: page.isPvRounded ? 'RoundedPositionPnl' : 'PositionPnl',
label: '浮动盈亏',
index: page.isPvRounded ? 'RoundedPositionPnl' : 'PositionPnl',
sortIndex: i++,
width: 65,
align: 'center',
sortable: true,
formatter: PriceFormat
}, {
name: 'RealizedPnl',
label: '实现盈亏',
index: 'RealizedPnl',
sortIndex: i++,
width: 65,
align: 'center',
sortable: false,
formatter: RealizedPnlFormat
}, {
name: 'CurrentVolatility',
label: '当前波动率',
index: 'CurrentVolatility',
sortIndex: i++,
width: 65,
align: 'center',
formatter: otcformat.trading.premiumRateP,
sortable: true
}, {
name: 'Delta',
label: 'Delta',
index: 'Delta',
width: 100,
align: 'center',
sortIndex: i++,
formatter: otcformat.trading.greek,
sortable: false
}, {
name: 'DeltaLots',
label: 'Delta手数',
index: 'DeltaLots',
width: 100,
align: 'center',
sortIndex: i++,
formatter: otcformat.trading.notional,
sortable: false
}, {
name: 'Gamma',
label: 'Gamma',
index: 'Gamma',
width: 100,
sortIndex: i++,
align: 'center',
formatter: otcformat.trading.greek,
sortable: false
}, {
name: 'GammaLots',
label: 'Gamma手数',
index: 'GammaLots',
width: 100,
sortIndex: i++,
align: 'center',
formatter: otcformat.trading.notional,
sortable: false
}, {
name: 'Theta',
label: 'Theta',
index: 'Theta',
width: 100,
align: 'center',
sortIndex: i++,
formatter: otcformat.trading.greek,
sortable: true
}, {
name: 'Rho',
label: 'Rho',
index: 'Rho',
width: 100,
align: 'center',
sortIndex: i++,
formatter: otcformat.trading.greek,
sortable: true
}, {
name: 'Vega',
label: 'Vega',
index: 'Vega',
sortIndex: i++,
width: 100,
align: 'center',
formatter: otcformat.trading.greek,
sortable: true
}, {
name: 'ExerciseDate',
label: '到期日期',
index: 'ExerciseDate',
width: 80,
sortIndex: i++,
align: 'center',
formatter: 'date',
sortable: true
}, {
name: 'ExerciseModeCn',
label: '行权方式',
index: 'ExerciseModeCn',
width: 80,
sortIndex: i++,
align: 'center',
sortable: false,
formatter: ShowToolName
}, {
name: 'TradeType',
label: '结构类型',
index: 'TradeType',
sortIndex: i++,
width: 70,
align: 'center',
formatter: function (cellvalue, options, rowObject) {
return rowObject.StructureType && rowObject.IsGroup != 2 ? rowObject.StructureType : rowObject.TradeType;
},
sortable: true
}, {
name: 'KnockInOutStatus',
label: '观察状态',
index: 'KnockInOutStatus',
sortIndex: i++,
width: 100,
align: 'center',
sortable: false
}, {
name: 'ClientName',
label: '交易对手方',
index: 'ClientName',
width: 150,
sortIndex: i++,
align: 'center',
sortable: true
}, {
name: 'ClientNumber',
label: '交易对手编号',
index: 'ClientNumber',
width: 150,
sortIndex: i++,
align: 'center',
sortable: false
}, {
name: 'AssetBookName',
label: '簿记账户',
index: 'AssetBookName',
width: 150,
sortIndex: i++,
align: 'center',
sortable: true
}, {
name: 'TradeDate',
label: '成交日期',
sortIndex: i++,
index: 'TradeDate',
width: 90,
align: 'center',
formatter: 'date',
sortable: true
}, {
name: 'OptionType',
sortIndex: i++,
label: '看涨看跌',
index: 'OptionType',
width: 80,
align: 'center',
sortable: false
}, {
name: 'BuySell',
sortIndex: i++,
label: '买卖方向',
index: 'BuySell',
width: 80,
align: 'center',
sortable: false
}, {
name: 'UnderlyingCode',
label: '标的代码',
index: 'UnderlyingCode',
width: 80,
align: 'center',
sortIndex: i++,
sortable: true
}, {
name: 'UnderlyingAssetName',
label: '标的名称',
index: 'UnderlyingAssetName',
width: 80,
align: 'center',
sortIndex: i++,
sortable: false
}, {
name: 'UnderlyingVariety',
label: '标的品种',
index: 'UnderlyingVariety',
sortIndex: i++,
width: 60,
align: 'center',
sortable: false,
hidden: !page.showUnderlyingVariety,
optionHide: !page.showUnderlyingVariety
}, {
name: 'InitialSpotPrice',
label: '期初标的价格',
index: 'InitialSpotPrice',
sortIndex: i++,
width: 85,
align: 'center',
formatter: SpotPriceFormat,
sortable: false
}, {
name: 'Strike',
label: '执行价格',
index: 'Strike',
sortIndex: i++,
width: 100,
align: 'center',
formatter: StrikeFormatter,
sortable: true
}, {
name: 'TradeSinglePrice',
label: '权利金(成交)',
index: 'TradeSinglePrice',
sortIndex: i++,
width: 100,
align: 'center',
formatter: function (cellValue, options, rowObject) {
if (rowObject.IsUsePremiumRate) {
return otcformat.trading.premiumRateP(rowObject.PremiumRate);
}
else {
return otcformat.trading.tradeSinglePrice(cellValue);
}
},
sortable: false
}, {
name: 'TradeOriginalAmountV',
label: '成交数量',
sortIndex: i++,
width: 70,
align: 'center',
formatter: function (cellvalue, options, rowObject) {
return otcformat.trading.notional(Math.abs(tradeHelper.getTradeAmountV(rowObject.trade, null, rowObject.CountRatio)));
},
sortable: false
}, {
name: 'TradeOriginalAmount',
label: '有效成交数量',
index: 'TradeOriginalAmount',
sortIndex: i++,
width: 100,
align: 'center',
formatter: TradeOriginalAmountFormat,
sortable: false
}, {
name: 'TradePrice',
label: '成交金额',
index: 'TradePrice',
sortIndex: i++,
width: 100,
align: 'center',
formatter: TradePriceFormat,
sortable: true
}, {
name: 'etcTradePrice',
label: '存续成本',
index: 'etcTradePrice',
sortIndex: i++,
width: 100,
align: 'center',
formatter: etcTradePriceFormat,
sortable: false
}, {
name: 'StockEqvNotionalToShow',
label: '名义本金',
index: 'StockEqvNotionalToShow',
sortIndex: i++,
width: 100,
align: 'center',
formatter: StockEqvNotionalFormat,
sortable: false
}, {
name: 'UnderlyingPrice',
label: '最新标的价格',
index: 'UnderlyingPrice',
width: 100,
align: 'center',
sortIndex: i++,
formatter: otcformat.trading.umprice,
sortable: false
}, {
name: 'RiskFreeRate',
label: '无风险利率',
index: 'RiskFreeRate',
width: 80,
align: 'center',
sortIndex: i++,
formatter: otcformat.trading.premiumRateP,
sortable: false
}, {
name: 'DividendRate',
label: '分红率',
index: 'DividendRate',
width: 80,
align: 'center',
sortIndex: i++,
formatter: otcformat.trading.premiumRateP,
sortable: false
}, {
name: 'SinglePV',
label: '权利金(存续)',
index: 'SinglePV',
sortIndex: i++,
width: 100,
align: 'center',
sortable: false,
formatter: function (cellValue, options, rowObject) {
if (rowObject.IsUsePremiumRate) {
var premiumRate = tradeHelper.GetPremiumRateByTradeSinglePrice(cellValue, rowObject.InitialSpotPrice);
return otcformat.trading.premiumRateP(premiumRate);
} else {
return otcformat.trading.tradePrice(cellValue);
}
}
}, {
name: 'TradeAmountV',
label: '存续数量',
sortIndex: i++,
width: 70,
align: 'center',
formatter: function (cellvalue, options, rowObject) {
if (rowObject.trade === null) {
return rowObject.TradeAmount;
} else {
return otcformat.trading.notional(tradeHelper.getTradeAmountV(rowObject.trade, rowObject.TradeAmount, 1));
}
},
sortable: false
}, {
name: 'TradeAmount',
label: '有效存续数量',
index: 'TradeAmount',
sortIndex: i++,
width: 100,
align: 'center',
formatter: TradeAmountFormat,
sortable: false
}, {
name: page.isPvRounded ? 'RoundedPV' : 'PV',
label: '存续市值',
index: page.isPvRounded ? 'RoundedPV' : 'PV',
sortIndex: i++,
width: 100,
align: 'center',
sortable: false,
formatter: otcformat.trading.tradePrice
}, {
name: 'Margin',
label: '维持预付金',
index: 'Margin',
sortIndex: i++,
width: 100,
align: 'center',
sortable: false,
formatter: otcformat.trading.tradePrice
}, {
name: 'TraderName',
label: '交易员',
index: 'TraderName',
sortIndex: i++,
width: 100,
align: 'center',
sortable: false
}, {
name: 'SurvivingNominalPrincipal',
label: '存续名义本金',
index: 'SurvivingNominalPrincipal',
sortIndex: i++,
hidden: !page.showGuohai,
optionHide: !page.showGuohai,
width: 100,
align: 'center',
sortable: false,
formatter(cellValue, options, rowObject) {
return main.formatNumber(cellValue || '', 2);
}
}, {
name: 'Comments',
label: '备注',
index: 'Comments',
sortIndex: i++,
width: 100,
align: 'center',
sortable: false
}
];
if (page.isGuoJun) {
colModelGrid.push({
name: 'PosiInitMargin',
label: '持仓初始预付金',
index: 'PosiInitMargin',
sortIndex: i++,
width: 100,
align: 'center',
sortable: false,
formatter: otcformat.trading.tradePrice
});
}
if (page.showCreditExposure) {
colModelGrid.push({
name: 'Exposure',
label: '信用风险敞口',
index: 'Exposure',
sortIndex: i++,
width: 100,
align: 'center',
sortable: false,
formatter: otcformat.trading.tradePrice
});
}
if (page.calcPnlExplain) {
var pnlCols = [{
name: 'PnLDelta', label: 'dPnLDelta', width: 100, align: 'center', sortable: false, formatter: otcformat.trading.greek
}, {
name: 'PnLGamma', label: 'dPnLGamma', width: 100, align: 'center', sortable: false, formatter: otcformat.trading.greek
}, {
name: 'PnLVega', label: 'dPnLVega', width: 100, align: 'center', sortable: false, formatter: otcformat.trading.greek
}, {
name: 'PnLTheta', label: 'dPnLTheta', width: 100, align: 'center', sortable: false, formatter: otcformat.trading.greek
}, {
name: 'PnLPsi', label: 'dPnLPsi', width: 100, align: 'center', sortable: false, formatter: otcformat.trading.greek
}];
colModelGrid = colModelGrid.concat(pnlCols);
}
if (page.needShowSpv) {
//涨停市值,不变市值,跌停市值
var spvCols = [{
name: 'Spv1', label: '涨停市值', width: 100, align: 'center', sortable: false, formatter: otcformat.trading.greek
}, {
name: 'Spv2', label: '不变市值', width: 100, align: 'center', sortable: false, formatter: otcformat.trading.greek
}, {
name: 'Spv3', label: '跌停市值', width: 100, align: 'center', sortable: false, formatter: otcformat.trading.greek
}];
colModelGrid = colModelGrid.concat(spvCols);
}
if (page.isGLMS) {
colModelGrid.push({
name: 'Delta_r',
label: 'Delta_r',
index: 'Delta_r',
width: 100,
align: 'center',
sortIndex: i++,
formatter: greeksFormat,
sortable: false
}, {
name: 'Delta_r_1bp',
label: 'Delta_r(1bp)',
index: 'Delta_r_1bp',
width: 100,
align: 'center',
sortIndex: i++,
formatter: greeksFormat,
sortable: false
}, {
name: 'Dv01',
label: 'Dv01',
index: 'Dv01',
width: 100,
align: 'center',
sortIndex: i++,
formatter: greeksFormat,
sortable: false
}, {
name: 'Gamma_r',
label: 'Gamma_r',
index: 'Gamma_r',
width: 100,
align: 'center',
sortIndex: i++,
formatter: greeksFormat,
sortable: false
}, {
name: 'Gamma_r_1bp',
label: 'Gamma_r(1bp)',
index: 'Gamma_r_1bp',
width: 120,
align: 'center',
sortIndex: i++,
formatter: greeksFormat,
sortable: false
}, {
name: 'Vega_r',
label: 'Vega_r',
index: 'Vega_r',
width: 100,
align: 'center',
sortIndex: i++,
formatter: greeksFormat,
sortable: false
}, {
name: 'Vega_r_1bp',
label: 'Vega_r(1bp)',
index: 'Vega_r_1bp',
width: 100,
align: 'center',
sortIndex: i++,
formatter: greeksFormat,
sortable: false
}, {
name: 'Vega_1bp',
label: 'Vega(1bp)',
index: 'Vega_1bp',
width: 100,
align: 'center',
sortIndex: i++,
formatter: greeksFormat,
sortable: false
},);
}
return tradeHelper.getAmountToNotional(colModelGrid);
}
$(function () {
var PostData = {};
$("#DateValueDate").datepicker({
changeMonth: true,
changeYear: true,
showButtonPanel: true,
showOtherMonths: true,
selectOtherMonths: true,
maxDate: page.valueDate_eod
});
changePriceType();
PostData.ValueDate = $("#DateValueDate").val();
PostData.VolType = "持仓";
$("#VolType").val("持仓");
var grid = jQuery('#listGrid').jqGrid({
url: '/trade/EodPositionRisksQuery',
datatype: "local",
height: 'auto',
width: '96%',
multiselect: true,
autowidth: false,
shrinkToFit: false,
viewrecords: true,
jsonReader: { repeatitems: false },
mtype: 'POST',
postData: PostData,
afterInsertRow: AfterInsertRow,
onSelectRow: rowclick,
ondblClickRow: rowdblclick,
colModel: getColModelGrid(),
pager: jQuery('#pagerGrid'),
pagerpos: 'left',
rowNum: 10000,
rowList: [25, 50, 100, 200, 10000],
footerrow: false,
//userDataOnFooter: true,
loadComplete: gridComplete,
onPaging: onJqgridPaging,
grouping: true
});
document.onkeydown = function (event) {
var e = event ? event : (window.event ? window.event : null);
if (e.keyCode === 13) {
SearchClick(true);
}
};
let underlyingCtrl = new tradeHelper.UnderlyingSelectCtrl('#UnderlyingId')
.setFlag(tradeHelper.UnderlyingSelectFlag.OtcTrade);
$(window).resize(function () {
//如有频繁改变大小的需求,要增加延迟运行的逻辑;
$("#listGrid").setGridWidth($("#main-wrapper").width() - 30);
var newHeight = $(window).height() - 350;
$("#listGrid").setGridHeight(newHeight);
});
});
const GroupingFormat = main.numberFormat(2, { grouping: true });
const ThreeDecimalGroupingFormat = main.numberFormat(3, { grouping: false });
function gridComplete(data) {
var jgrid = $(this);
main.setcolumnChooser(jgrid, '日终持仓风险');
$(window).resize();
if (page.calcPnlExplain && data.Sum) {
$('#footSummaryDiv').text("dPnL: " + data.Sum.dpnl.toFixed(2));
}
}
function rowdblclick(rowid) {
var rowData = $(this).getRowData(rowid);
if (rowData.id > 0 && rowData.TradeType) {
starttradeView(rowData.EncryptTradeId, rowData.TradeType);
}
}
function starttradeView(id, tradeType) {
if (tradeType.indexOf("远期") >= 0) {
var srcurl = "/forwardtrade/tradeView/?enid=" + id + "&isFromPositionReport=false&isOnlyCloseButton=true";
main.open("查看远期交易", srcurl, { area: ['1260px', '800px'] });
}
else {
var srcurl = "/trade/tradeView/?enid=" + id + "&isFromPositionReport=false&isOnlyCloseButton=true";
main.open("查看交易", srcurl, { area: ['1260px', '800px'] });
}
}
//---------------------------Formatter---------------------------------
function TradeOriginalAmountFormat(cellValue, options, rowObject) {
return otcformat.trading.notional(Math.abs(cellValue));
}
function TradeAmountFormat(cellValue, options, rowObject) {
return otcformat.trading.notional(cellValue);
}
function greeksFormat(cellValue, options, rowObject) {
if (cellValue != null) {
return otcformat.trading.greek(cellValue);
}
return "";
}
function SpotPriceFormat(cellValue, options, rowObject) {
if (rowObject.TradeType !== "场内期权" && rowObject.TradeType !== "商品期货" && rowObject.TradeType !== "股票" && rowObject.TradeType !== "商品现货") {
return otcformat.trading.umprice(cellValue)
}
else {
return "";
}
}
function TradePriceFormat(cellValue, options, rowObject) {
return otcformat.trading.tradePrice(cellValue * (rowObject.BuySell === "买入" || rowObject.BuySell === "多头开仓" || rowObject.BuySell === "空头开仓" ? -1 : 1));
}
function etcTradePriceFormat(cellValue, options, rowObject) {
//黑箱主交易后台已经处理过了
if (rowObject.IsGroup == 1) {
return otcformat.trading.tradePrice(cellValue);
}
return otcformat.trading.tradePrice(cellValue * (rowObject.BuySell === "买入" || rowObject.BuySell === "多头开仓" || rowObject.BuySell === "空头开仓" ? -1 : 1));
}
function PriceFormat(cellValue, options, rowObject) {
return otcformat.trading.tradePrice(cellValue);
}
function RealizedPnlFormat(cellValue, options, rowObject) {
return otcformat.trading.tradePrice(cellValue);
}
function StockEqvNotionalFormat(cellValue, options, rowObject) {
if (rowObject.TradeType !== "场内期权" && rowObject.TradeType !== "商品期货" && rowObject.TradeType !== "股票" && rowObject.TradeType !== "商品现货") {
return otcformat.trading.StockEqvNotional(cellValue);
}
else {
return "";
}
}
function ComputePV(cellValue, options, rowObject) {
var pv = main.formatNumber(rowObject.SinglePV) * main.formatNumber(rowObject.TradeAmount);
return otcformat.trading.tradePrice(pv);
}
function PercentFormat(cellValue, options, rowObject) {
return otcformat.trading.premiumRateP(cellValue);
}
function DoubleFormat(cellValue, options, rowObject) {
return main.formatNumber(cellValue);
}
function StrikeFormatter(cellValue, options, rowObject) {
if (rowObject.TradeType == "自定义交易") {
return "";
}
if (rowObject.Strike) {
if (rowObject.IsMoneynessOption === "是") {
return otcformat.trading.premiumRateP(rowObject.Strike);
} else {
return otcformat.trading.umprice(rowObject.Strike);
}
} else {
if (rowObject.Strike === 0) {
return 0;
}
else {
return "";
}
}
}
function ShowToolName(cellValue, options, rowObject) {
if ("American" == rowObject.ExerciseMode) {
return "美式";
} else if ("European" == rowObject.ExerciseMode) {
return "欧式";
}
}
//---------------------------------------------------------------------------------
function rowclick(id) { }
function exportTrade() {
var jgrid = jQuery('#listGrid');
var postData = GetPostData();
var ids = jgrid.jqGrid('getGridParam', 'selarrrow');
if (ids.length > 0) {
postData.TradeIds = ids;
}
downLoadFile("/trade/DownloadEodPositionRisks?" + $.param(postData, true));
}
function downClientRiskMonitor() {
var htmlContent = $('#exportRiskReport').html();
main.open2("导出日终持仓风险",
htmlContent,
{
area: ["450px", "300px"],
success: function (layero, index) {
var valueDate = $("#DateValueDate").val();
main.setTradeDatePicker(valueDate, "");
$("#endDate").val($("#DateValueDate").val());
$("#startDate,#endDate").datepicker("option", "maxDate", valueDate);
$("#startDate").on("change", function () {
var startDate = $(this).val();
if (!main.isDate(startDate)) {
return;
}
$("#endDate").datepicker("option", "minDate", startDate);
});
$("#endDate").on("change", function () {
var endDate = $(this).val();
if (!main.isDate(endDate)) {
return;
}
$("#startDate").datepicker("option", "maxDate", endDate);
});
}
});
}
//导出区间
function rangeClick() {
$("#startDate").prop("disabled", !$("#useRange").prop("checked"));
}
//导出提示
function execExport() {
if (main.isEmpty($("#startDate").val()) && $("#useRange").prop("checked")) {
return main.message("开始日期不能为空");
}
if (main.isEmpty($("#endDate").val())) {
return main.message("结束日期不能为空");
}
if ($("#startDate").val() > $("#endDate").val()) {
return main.message("开始日期不能在结束日期之后");
}
var jgrid = jQuery('#listGrid');
var postData = GetPostData();
if ($("#useRange").prop("checked")) {
postData.StartDate = $("#startDate").val();
postData.ValueDate = $('#endDate').val();
window.open("/trade/EodPositionRiskExport?" + $.param(postData, true) + "&processName=ExportEodPositionRisks");
//asyncDownload(postData);
//main.post("/trade/BatchDownloadEodPositionRisks", postData);
//main.waitMe(close);
//parent.layer.closeAll();
//main.open("", "/common/ProgressBar?processName=ExportEodPositionRisks&showStatus=true", { area: ['400px', '40px'], maxmin: false, closeBtn: 0, content: ["/common/ProgressBar?processName=ExportEodPositionRisks&showStatus=true", "no"] });
} else {
postData.ValueDate = $('#endDate').val();
var ids = jgrid.jqGrid('getGridParam', 'selarrrow');
if (ids.length > 0) {
postData.TradeIds = ids;
}
downLoadFile("/trade/DownloadEodPositionRisks?" + $.param(postData, true));
parent.layer.closeAll();
}
}
function downLoadFile(downloadUrlStr) {
window.open(downloadUrlStr);
}
function GetPostData() {
var postData = {};
postData.ValueDate = $("#DateValueDate").val();
postData.TradeNumber = $("#TradeNumber").val();
postData.BookIds = $("#BookId").val();
postData.AssetIdGroupList = $("#GroupId").val();
postData.TradeTypes = $("#TradeType").val();
postData.UnderlyingIds = $("#UnderlyingId").val();
postData.TraderIds = $("#TraderId").val();
postData.ClientIds = $("#ClientId").val();
postData.EodSettlePriceMode = $("#EodSettlePriceMode").val();
postData.VolType = $("#VolType").val();
postData.IsParentTrade = $("#IsParentTrade").val();
postData.GroupNames = $("#GroupNames").val();
postData.TagIds = $("#TagIds").val();
if ($("#DividendRateType")) {
postData.DividendRateType = $("#DividendRateType").val();
}
return postData;
}
function SearchClick(isSearchclick) {
var listGrid = $('#listGrid');
listGrid.appendPostData(GetPostData());
if (typeof (isSearchclick) != "undefined" && isSearchclick) {
//点击搜索时默认第一页
listGrid.jqGrid('setGridParam',
{
page: 1
});
}
listGrid.jqGrid('setGridParam', { datatype: 'json' }).trigger('reloadGrid');
}
function showcolumnChooser() {
var jgrid = jQuery('#listGrid');
main.showcolumnChooser(jgrid, '日终持仓风险');
}
function changePriceType() {
var lastDate = new Date().Format("yyyy-MM-dd");
if ($('#EodSettlePriceMode').val() == "结算价") {
lastDate = page.valueDate_settle;
$('#settleBtn').show();
}
else {
lastDate = page.valueDate_eod;
$('#settleBtn').hide();
}
$("#DateValueDate").datepicker("option", "maxDate", lastDate);
if (!$("#DateValueDate").val()) {
$("#DateValueDate").val(lastDate);
}
}
//function openSettlePage() {
// main.open("结算价收盘", "/eod_trade_value/eodBatchExec_Settle", { area: ["680px", "510px"] });
//}