var g_grid = {}; var query_data = {}; var g_threshold = 0; $(function () { var PostData = { ValueDate: page.ValueDate }; main.setTradeDatePicker(moment(page.ValueDate)); var grid = jQuery('#listGrid').jqGrid({ url: '', datatype: 'local', height: '580px', width: '96%', multiselect: true, autowidth: false, shrinkToFit: false, viewrecords: true, jsonReader: { repeatitems: false }, caption: '', mtype: 'POST', postData: PostData, onSelectRow: rowclick, ondblClickRow: rowdblclick, colModel: getColModelGrid(), pager: jQuery('#pagerGrid'), pagerpos: 'left', rowNum: page.isGuoJun?10000:500, rowList: [50,100,200,500,10000], loadonce: true, footerrow: true, loadComplete: gridComplete, onPaging: onJqgridPaging }); g_grid = jQuery('#listGrid'); //g_grid.jqGrid('filterToolbar', { defaultSearch:'cn', searchOperators: true }); g_grid.setGridParam({ resizeStop: function (newWidth, index) { $theadInTable = $(".ui-jqgrid-hdiv").find("table:first").children("thead"); $theadInTable.find("tr.jqg-first-row-header").find('th').eq(index)[0].style.width = newWidth + "px"; $(".frozen-div").find("table:first").children("thead").find("tr.jqg-first-row-header").find('th').eq(index)[0].style.width = newWidth + "px"; $(".frozen-bdiv").find("table:first").find("tr").find('td').eq(index)[0].style.width = newWidth + "px"; $(".frozen-sdiv").find("table:first").find("tr").find('td').eq(index)[0].style.width = newWidth + "px"; } }); $(".listGroupHeader").parent().css("cssText", "text-align:center!important;border-top:0px"); g_grid.jqGrid('destroyFrozenColumns'); g_grid.jqGrid('setFrozenColumns'); function keyEnter(event) { try { var e = event ? event : (window.event ? window.event : null); if (e.keyCode === 13) { if (e.target.className === "holdingDepositInput") { $(e.target).blur(); return; } SearchClick(true); } } catch (e) { // } } var setColumn = main.setcolumnChooser2(g_grid, page.configcolumn_name); if (setColumn) { setColumn.done(function () { $(".listGroupHeader").parent().css("cssText", "text-align:center!important;border-top:0px"); g_grid.jqGrid('destroyFrozenColumns'); g_grid.jqGrid('setFrozenColumns'); }); } else { $(".listGroupHeader").parent().css("cssText", "text-align:center!important;border-top:0px"); } document.onkeydown = keyEnter; SetAceDropDown(); setHoldingDepositFunc(); LoadGrid(); $("#CheckboxAll").click(function () { selAllGrid(); }); $("#DateValueDate").trigger("change"); }); function modifyHoldingDeposit(e) { var $holdingDepositInput = $(e.target); var $parent = $holdingDepositInput.parent(); var $holdingDepositSpan = $parent.find(".holdingDepositSpan") var valueDate = $("#DateValueDate").val(); var oldHoldingDeposit = numeral($holdingDepositSpan.text()).value(); var newHoldingDeposit = numeral($holdingDepositInput.val()).value(); if (oldHoldingDeposit == newHoldingDeposit) { $holdingDepositSpan.show(); $holdingDepositInput.hide(); return; } var clientId = $parent.find(".clientId").val(); var clientName = $parent.find(".clientName").val(); main.confirm(`确认修改${clientName}在${valueDate}的预付金占用为${numeral(newHoldingDeposit).format("0,0.00")}?`, function () { var pData = { ClientId: clientId, ValueDate: $("#DateValueDate").val(), HoldingDeposit: newHoldingDeposit }; main.post("/client_span/UpdateWorstCastClientPayable", pData).done(function (res) { SearchClick(true); }); }, function () { $holdingDepositSpan.show(); $holdingDepositInput.val($holdingDepositSpan.text()); $holdingDepositInput.hide(); }); } function setHoldingDepositFunc() { if (page.canUpdatePayableMargin) { $("#listGrid").delegate("td", "dblclick", function () { var $td = $(this); if (!$td.find(".holdingDepositSpan").length) { return; } var $holdingDepositSpan = $td.find(".holdingDepositSpan"); var $holdingDepositInput = $td.find(".holdingDepositInput"); $holdingDepositSpan.hide(); $holdingDepositInput.val(numeral($holdingDepositSpan.text()).value()); $holdingDepositInput.show(); $holdingDepositInput.focus(); }); $("#listGrid").delegate(".holdingDepositInput", "blur", function (e) { modifyHoldingDeposit(e); }); } } function getColModelGrid() { var colModelGrid = [ { name: 'id', label: 'id', index: 'id', width: 1, align: 'left', hidden: true, optionHide: true, frozen: true }, { name: 'EncryptId', label: 'EncryptId', index: 'EncryptId', width: 0, align: 'left', hidden: true, optionHide: true, frozen: true }, { name: 'Number', label: '客户编号', index: 'Number', width: 100, align: 'center', frozen: true }, { name: 'Name', label: '客户名称', index: 'Name', width: 238, align: 'center', frozen: true },{ name: 'TotalTradeCount', label: '交易总数', index: 'TotalTradeCount', width: 120, align: 'center', formatter: main.toInt, sorttype: 'number' }, { name: 'TotalNotionalPrincipal', label: '名义本金总额', index: 'TotalNotionalPrincipal', width: 150, align: 'right', formatter: 'number', sorttype: 'number' }, { name: 'TransactionPenNumber', label: '当日交易数', index: 'TransactionPenNumber', width: 120, align: 'center', formatter: main.toInt, sorttype: 'number' }, { name: 'TodayNotionalPrincipal', label: '当日交易名义本金', index: 'TodayNotionalPrincipal', width: 120, align: 'right', formatter: 'number', sorttype: 'number' }, { name: 'PositionNotionalPrincipal', label: '持仓名义本金', index: 'PositionNotionalPrincipal', width: 120, align: 'right', formatter: 'number', sorttype: 'number' }, { name: 'CurrentHoldingPenNumber', label: '持仓笔数', index: 'CurrentHoldingPenNumber', width: 80, align: 'center', formatter: main.toInt, sorttype: 'number' }, { name: 'WinLoss', label: '实现盈亏', index: 'WinLoss', width: 120, align: 'right', value: '0', formatter: 'number', sorttype: 'number' }, { name: 'InterestPnl', label: '利息', index: 'InterestPnl', width: 120, align: 'right', value: '0', formatter: 'number', sorttype: 'number' }, { name: 'TradeFee', label: '费用', index: 'TradeFee', width: 120, align: 'right', value: '0', formatter: 'number', sorttype: 'number' }, { name: 'PositionPnl', label: '持仓盈亏', index: 'PositionPnl', width: 120, align: 'right', value: '0', formatter: 'number', optionHide: page.isPvRounded, hidden: page.isPvRounded, sorttype: 'number' }, { name: 'RoundedPositionPnl', label: '持仓盈亏', index: 'RoundedPositionPnl', width: 120, align: 'right', value: '0', formatter: 'number', optionHide: !page.isPvRounded, hidden: !page.isPvRounded, sorttype: 'number' }, { name: 'LastDayRemainFund', label: '期初结存', index: 'LastDayRemainFund', width: 100, align: 'right', formatter: 'number', sorttype: 'number' }, { name: 'NetFundAll', label: '出金入金', index: 'NetFundAll', width: 100, align: 'right', formatter: 'number', sorttype: 'number' }, { name: 'NetFund', label: '初保账户', index: 'NetFund', width: 100, align: 'right', formatter: 'number', sorttype: 'number' }, { name: 'VmFundSum', label: '追保账户', index: 'VmFundSum', width: 100, align: 'right', formatter: 'number', sorttype: 'number' }, { name: 'OtherFund', label: '其他收支', index: 'OtherFund', width: 100, align: 'right', formatter: 'number', sorttype: 'number' }, { name: 'AmountFund', label: '期末结存', index: 'AmountFund', width: 100, align: 'right', formatter: 'number', sorttype: 'number' }, { name: 'MySideMargin', label: '初始保证金金额', index: 'MySideMargin', width: 120, align: 'right', formatter: 'number', sorttype: 'number' }, { name: 'MaintenanceMargin', label: '维持保证金金额', index: 'MaintenanceMargin', width: 120, align: 'right', formatter: 'number', sorttype: 'number' }, { name: 'SwapMarketAmount', label: '盯市金额', index: 'SwapMarketAmount', width: 120, align: 'right', formatter: 'number', sorttype: 'number' }, { name: 'SwapMarketAmountPercent', label: '履约保证金比例', index: 'SwapMarketAmountPercent', width: 120, align: 'right', formatter: percentFormat, sorttype: 'number' }, { name: 'AvailableAmount', label: '可用资金', index: 'AvailableAmount', width: 120, align: 'right', formatter: 'number', sorttype: 'number' }, { name: 'InsuredAmount', label: '追保金额', index: 'InsuredAmount', width: 120, align: 'right', value: '0', formatter: 'number', sorttype: 'number' }, { name: 'DesirableFund', label: '可取资金', index: 'DesirableFund', width: 100, align: 'right', formatter: 'number', sorttype: 'number' } ]; colModelGrid.push({ name: 'LastSettlemetTime', label: '系统收盘时间', index: 'LastSettlemetTime', width: 150, align: 'center', sortable: false, formatter: "datetime" }); if (page.ViewTagPermission) { colModelGrid.push({ name: 'Tags', label: '标签值', index: 'Tags', width: 150, align: 'left', sortable: false, formatter: tagformat }, { name: 'OutputTags', label: 'OutputTags', index: 'OutputTags', width: 70, align: 'center', hidden: true, optionHide: true }); } return colModelGrid; } function tagformat(cellvalue, options, rowObject) { var html = '
'; var tagNames = ""; if (rowObject.Tags != null && rowObject.Tags.length > 0) { for (var i = 0; i < rowObject.Tags.length; i++) { if (i == rowObject.Tags.length - 1) { tagNames += "[" + rowObject.Tags[i].Name + "]"; } else { tagNames += "[" + rowObject.Tags[i].Name + "],"; } } if (rowObject.Tags.length > 2) { for (var i = 0; i < 2; i++) { html += '' + rowObject.Tags[i].Name + ''; } html += '...'; } else { for (var i = 0; i < rowObject.Tags.length; i++) { html += '' + rowObject.Tags[i].Name + ''; } } } html += '
'; return html; } function gridComplete() { if (arguments[0].Sum) { var sum = arguments[0].Sum; $("#listGrid").footerData("set", { Number: "合计", TotalTradeCount: sum.TotalTradeCountSum, TotalNotionalPrincipal: sum.TotalNotionalPrincipalSum, TransactionPenNumber: sum.TransactionPenNumberSum, TodayNotionalPrincipal: sum.TodayNotionalPrincipalSum, PositionNotionalPrincipal: sum.PositionNotionalPrincipalSum, CurrentHoldingPenNumber: sum.CurrentHoldingPenNumberSum, WinLoss: sum.WinLossSum, InterestPnl: sum.InterestPnlSum, TradeFee: sum.TradeFeeSum, PositionPv: sum.PositionPvSum, PositionPnl: sum.PositionPnlSum, RoundedPositionPnl: sum.RoundedPositionPnlSum, NetFund: sum.NetFundSum, OtherFund: sum.OtherFundSum, AmountFund: sum.AmountFundSum, TotalAmount: sum.TotalAmountSum, RoundedTotalAmount: sum.RoundedTotalAmountSum, AvailableAmount: sum.AvailableAmountSum, InsuredAmount: sum.InsuredAmountSum, DesirableFund: sum.DesirableFundSum, NetFundAll: sum.NetFundAllSum, VmFundSum: sum.VmFundSumSum, MySideMargin: sum.MySideMarginSum, MaintenanceMargin: sum.MaintenanceMarginSum, SwapMarketAmount: sum.SwapMarketAmountSum, LastDayRemainFund: sum.LastDayRemainFundSum, }); } g_grid = jQuery('#listGrid'); var setColumn = main.setcolumnChooser2(g_grid, page.configcolumn_name); if (setColumn) { setColumn.done(function () { $(".listGroupHeader").parent().css("cssText", "text-align:center!important;border-top:0px"); g_grid.jqGrid('destroyFrozenColumns'); g_grid.jqGrid('setFrozenColumns'); }); } else { $(".listGroupHeader").parent().css("cssText", "text-align:center!important;border-top:0px"); } var ids = $("#listGrid").jqGrid("getDataIDs");//获取所有行的id var rowDatas = $("#listGrid").jqGrid("getRowData");//获取所有行的数据 for (var i = 0; i < rowDatas.length; i++) { var rowData = rowDatas[i]; if (rowData.InsuredAmount > 0) { if (page.isDongWu) { if (rowData.InsuredAmount > rowData.MinimumTransferAmount) { $("#" + ids[i] + " td[aria-describedby=listGrid_InsuredAmount]").css("background-color", "coral"); } } else { $("#" + ids[i] + " td[aria-describedby=listGrid_InsuredAmount]").css("background-color", "coral"); } } if (rowData.PayableFund > 0) { $("#" + ids[i] + " td[aria-describedby=listGrid_PayableFund]").css("background-color", "coral"); } if (rowData.AvailableStockEqvNotional < 0) { $("#" + ids[i] + " td[aria-describedby=listGrid_AvailableStockEqvNotional]").css("background-color", "coral"); } } } function LoadGrid() { jQuery('#listGrid').jqGrid('setGroupHeaders', { useColSpanStyle: true, groupHeaders: [ { startColumnName: 'Number', numberOfColumns: 2, titleText: '客户信息' }, { startColumnName: 'TotalTradeCount', numberOfColumns: 11, titleText: '交易信息 ' }, { startColumnName: 'LastDayRemainFund', numberOfColumns: 13, titleText: '账户状况' } ] }); } function percentFormat(cellValue, options, rowObject) { return cellValue ? (cellValue * 100).toFixed(2) + "%" : "0.00%"; } function holdingDepositFormat(cellValue, options, rowObject) { cellValue = numeral(cellValue).format("0,0.00"); if (cellValue === "NaN") { cellValue = "0.00"; } var html; var margintype = $("#ShownType").val(); if (margintype == "default") { html = `
${cellValue}
`; } else { html = `
${cellValue}
`; } return html; } function ReceivableCalc(cellValue, options, rowObject) { return otcformat.fixed2(rowObject.SellerPositionPremium + rowObject.BuyerPositionMargin); } var searchPostData = {}; function SearchClick(isSearchclick) { var listGrid = $('#listGrid'); listGrid.jqGrid('setGridParam', { url: '/client/clientBanlanceQuery', datatype: 'json' }) searchPostData.Number = $("#Number").val(); searchPostData.ClientIds = $("#id").val(); //searchPostData.CreditRatingIds = $("#CreditRatingId").val(); searchPostData.BoundSide = $("#BoundSide").val(); searchPostData.ValueDate = $("#DateValueDate").val(); searchPostData.CustomerManagerIds = $("#CustomerManagerIds").val(); searchPostData.CustomerManagerString = $("#CustomerManagerString").val(); searchPostData.IsSmallAndMicroEnterprises = $("#IsSmallAndMicroEnterprises").val(); searchPostData.HaveDayTrade = false; searchPostData.HavePosition = false; searchPostData.HaveMarginAmount = false; searchPostData.HavePayableFund = false; searchPostData.HaveClosedPayableFund = false; searchPostData.HaveTotalAsset = false; searchPostData.MarginShownType = $("#ShownType").val(); _.forEach($("#PrewhereMode").val(), (v) => { searchPostData[v] = true; }) searchPostData.TagIds = $("#TagIds").val(); listGrid.appendPostData(searchPostData); query_data = listGrid.jqGrid('getPostData'); if (isSearchclick) { //点击搜索时默认第一页 listGrid.jqGrid('setGridParam', { page: 1 }); } listGrid.trigger('reloadGrid'); } function showcolumnChooser() { main.showcolumnChooser2(jQuery('#listGrid'), page.configcolumn_name, { height: 620, dialog_opts: { height: 660 } }).done(function () { window.location.reload(); }); } function setupMarginHighlight() { var htmlContent = $('#setupMarginHighlight').html(); main.open2("配置预付金预警", htmlContent, { area: ["450px", "158px"], 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 postData = {}; var clientIds = $("#listGrid").jqGrid('getGridParam', 'selarrrow'); if (clientIds.length > 0) { postData.ClientIds = clientIds; } else { postData = searchPostData; } postData.StartDate = $("#startDate").val(); postData.ValueDate = $("#endDate").val(); postData.MarginShownType = $("#ShownType").val(); // 构造并提交表单 var $form = $('
'); $form.attr('action', '/client/ClientBanlanceExport'); for (var key in postData) { if (postData.hasOwnProperty(key)) { var value = postData[key]; if (Array.isArray(value)) { value.forEach(function (v) { $form.append($('').val(v)); }); } else { $form.append($('').val(value)); } } } $('body').append($form); $form.submit(); $form.remove(); //main.post("/client/ClientBanlanceExport", postData).done(function (res) { // // main.downloadFiles(res.obj); //}); parent.layer.closeAll(); } function downClientRiskMonitor() { var htmlContent = $('#exportTPL').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 setClient(obj) { $("#id option").each(function (i, d) { if ($(d).is(":checked")) { $(d).prop("selected", false); } else { $(d).prop("selected", true); } }); $("#id").trigger("chosen:updated"); } function Post(URL, PARAMTERS) { //创建form表单 var temp_form = document.createElement("form"); temp_form.action = URL; //如需打开新窗口,form的target属性要设置为'_blank' temp_form.target = "_blank"; temp_form.method = "post"; temp_form.style.display = "none"; //添加参数 for (var item in PARAMTERS) { var opt = document.createElement("textarea"); opt.name = PARAMTERS[item].name; opt.value = PARAMTERS[item].value; temp_form.appendChild(opt); } document.body.appendChild(temp_form); //提交数据 temp_form.submit(); } function SendReport() { var jgrid = jQuery('#listGrid'); var clientIds = main.GetGridIds(jgrid); if (!clientIds.length) { main.message("请选择需要发送的客户!"); return; } if (!$("#DateValueDate").val()) { main.message("请选择需要发送报告的查看日期!"); return; } var parames = new Array(); parames.push({ name: "clientids", value: clientIds }); parames.push({ name: "valuedate", value: $("#DateValueDate").val() }); parames.push({ name: "showntype", value: $("#ShownType").val() }); Post("/client/clientRiskMonitorBatchSend", parames); } function selAllGrid() { var checkAll = $("#CheckboxAll").prop("checked"); $("#cb_listGrid").click(); var cbGridClick = $("#cb_listGrid").prop("checked"); if (checkAll !== cbGridClick) { $("#cb_listGrid").click(); } }