Files
zszq-trs/YLErpWeb/Views/ClientPnlInfo/ClientPnlInfoList.cshtml
T
2024-05-09 14:06:26 +08:00

361 lines
14 KiB
Plaintext

@{
ViewBag.Title = "客户盈亏状况";
Layout = "~/Views/Shared/_MainLayout.cshtml";
var pageObj = new
{
ValueDate = ViewBag.valueDate?.ToString(),
isPvRounded = YLErp.PS.Config.IsPVRounded,
configcolumn_name = configcolumn_data.客户盈亏状况,
};
}
@section CSS{
<style>
em {
font-style: normal;
}
.chosen-choices .search-choice span {
word-wrap: break-word;
word-break: break-all;
white-space: pre-wrap !important;
}
.ui-jqgrid-hdiv .ui-jqgrid-htable {
border-top: 0px;
}
.no-skin {
position: static !important;
}
.chosen-container-multi .chosen-choices {
max-height: 100px;
overflow-y: auto; /*width: 120px;*/
}
.value-date-area {
display: inline-block;
}
table {
border-collapse: unset;
}
.frozen-div {
height: auto !important;
}
.ui-jqgrid-hbox .ui-jqgrid-htable .jqg-second-row-header th.ui-th-column-header {
background: none;
background-color: antiquewhite;
}
.ui-jqgrid-hbox .ui-jqgrid-htable .jqg-second-row-header th:nth-last-child(2) {
background: none;
background-color: azure;
}
.ui-jqgrid-hbox .ui-jqgrid-htable .jqg-second-row-header th:nth-last-child(1) {
background: none;
background-color: Gainsboro;
}
.holdingDepositInput {
height: 16px;
}
#DateValueDate {
width: 152px !important;
font-size: 1rem !important;
}
</style>
}
@section JS{
<script src="~/Scripts/app/tradeHelper.js?v=@HtmlUtil.JsVersion"></script>
<script src="~/Statics/libs/v1/jqGridExtensions.js?v=@(HtmlUtil.JsVersion)"></script>
<script type="text/javascript">
var page = @Json.Serialize(pageObj);
var g_grid = {};
var query_data = {};
var searchPostData = {};
$(() => {
$(".datepicker").datepicker({
changeMonth: true,
changeYear: true,
format: 'yyyy-mm-dd'
});
$("#DateFromSettlement").val(page.ValueDate);
$("#DateToSettlement").val(page.ValueDate);
var grid = jQuery('#listGrid').jqGrid({
url: '',
datatype: '',
height: '580px',
width: '96%',
multiselect: true,
autowidth: false,
shrinkToFit: false,
viewrecords: true,
jsonReader: { repeatitems: false },
caption: '',
mtype: 'POST',
postData: searchPostData,
colModel: getColModelGrid(),
pager: jQuery('#pagerGrid'),
pagerpos: 'left',
rowNum: 20,
rowList: [20, 30, 50, 200, 10000],
footerrow: true,
loadComplete: gridComplete,
onPaging: onJqgridPaging
});
g_grid = jQuery('#listGrid');
//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";
// }
//});
var setColumn = main.setcolumnChooser2(g_grid, page.configcolumn_name);
//$(".listGroupHeader").parent().css("cssText", "text-align:center!important;border-top:0px");
SetAceDropDown();
LoadGrid();
});
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: 200, align: 'center', frozen: true
}, {
name: 'CustomerManager', label: '客户经理', index: 'CustomerManager', width: 150, align: 'center', frozen: true
}, {
name: 'CustomerNature1', label: '客户性质1', index: 'CustomerNature1', width: 150, align: 'center', frozen: true
}, {
name: 'CustomerNature2', label: '客户性质2', index: 'CustomerNature2', width: 150, align: 'center', frozen: true
}, {
name: 'PositionPnl', label: '持仓盈亏', index: 'PositionPnl', width: 150, align: 'right', value: '0', sortable: false, formatter: otcformat.trading.tradePrice
}, {
name: 'WinLoss', label: '实现盈亏', index: 'WinLoss', width: 150, align: 'right', value: '0', sortable: false, formatter: otcformat.trading.tradePrice
}, {
name: 'PositionSumPnl', label: '区间总盈亏', index: 'WinLoss', width: 150, align: 'right', value: '0', sortable: false, formatter: otcformat.trading.tradePrice
}, {
name: 'OpenPositionNum', label: '开仓笔数', index: 'OpenPositionNum', width: 150, align: 'right', value: '0', sortable: false
}, {
name: 'EarlyTerminationNum', label: '提前终止笔数', index: 'EarlyTerminationNum', width: 150, align: 'right', value: '0', sortable: false
}, {
name: 'DueToNum', label: '到期笔数', index: 'DueToNum', width: 150, align: 'right', value: '0', sortable: false
}]
if (page.isPvRounded) {
colModelGrid.forEach(a => {
if (a.name == "PositionPnl")
a.name = "RoundedPositionPnl";
if (a.name == "PositionSumPnl")
a.name = "RoundedPositionSumPnl";
});
}
return colModelGrid;
}
function gridComplete() {
if (arguments[0].Sum) {
var sum = arguments[0].Sum;
if (page.isPvRounded) {
$("#listGrid").footerData("set", {
Number: "合计", RoundedPositionPnl: sum.RoundedPositionPnlSum, WinLoss: sum.WinLossSum, RoundedPositionSumPnl: sum.RoundedPositionSumPnlSum
});
}
else {
$("#listGrid").footerData("set", {
Number: "合计", PositionPnl: sum.PositionPnlSum, WinLoss: sum.WinLossSum, PositionSumPnl: sum.PositionSumPnlSum
});
}
}
g_grid = jQuery('#listGrid');
var setColumn = main.setcolumnChooser2(g_grid, page.configcolumn_name);
$(".listGroupHeader").parent().css("cssText", "text-align:center!important;border-top:0px");
}
function SearchClick(isSearchclick) {
var listGrid = $('#listGrid');
listGrid.jqGrid('setGridParam', {
url: '/ClientPnlInfo/GetClientPnlInfoList',
datatype: 'json'
})
searchPostData = {
Number: $("#ClientNumber").val(),
ClientIds: $("#ClientIds").val(),
StartDate: $("#DateFromSettlement").val(),
ValueDate: $("#DateToSettlement").val(),
CustomerManagerIds: $("#CustomerManagerIds").val(),
IsSmallAndMicroEnterprises: $("#IsSmallAndMicroEnterprises").val(),
HaveDayTrade: false,
HavePosition: false,
HaveMarginAmount: false,
HavePayableFund: false,
HaveClosedPayableFund: false,
HaveTotalAsset: false,
HaveBanlance: false,
HaveTrade: false
};
_.forEach($("#PrewhereMode").val(), (v) => {
searchPostData[v] = true;
})
listGrid.appendPostData(searchPostData);
query_data = listGrid.jqGrid('getPostData');
if (isSearchclick) {
//点击搜索时默认第一页
listGrid.jqGrid('setGridParam', { page: 1 });
}
listGrid.trigger('reloadGrid');
}
function LoadGrid() {
jQuery('#listGrid').jqGrid('setGroupHeaders', {
useColSpanStyle: false,
groupHeaders: [
{ startColumnName: 'Number', numberOfColumns: 5, titleText: '<span class="listGroupHeader">客户信息</span>' },
{ startColumnName: page.isPvRounded ? 'RoundedPositionPnl' : 'PositionPnl', numberOfColumns: 3, titleText: '<span class="listGroupHeader">盈亏状况</span>' },
{ startColumnName: 'OpenPositionNum', numberOfColumns: 3, titleText: '<span class="listGroupHeader">交易数量统计</span>' }
]
});
}
function showcolumnChooser() {
main.showcolumnChooser2(jQuery('#listGrid'), page.configcolumn_name, { height: 620, dialog_opts: { height: 660 } }).done(function () {
window.location.reload();
});
}
function exportClientPnlInfoList() {
searchPostData = {
Number: $("#ClientNumber").val(),
ClientIds: $("#ClientIds").val(),
StartDate: $("#DateFromSettlement").val(),
ValueDate: $("#DateToSettlement").val(),
CustomerManagerIds: $("#CustomerManagerIds").val(),
IsSmallAndMicroEnterprises: $("#IsSmallAndMicroEnterprises").val(),
HaveDayTrade: false,
HavePosition: false,
HaveMarginAmount: false,
HavePayableFund: false,
HaveClosedPayableFund: false,
HaveTotalAsset: false,
HaveBanlance: false,
HaveTrade: false
};
_.forEach($("#PrewhereMode").val(), (v) => {
searchPostData[v] = true;
})
var selectedIds = $('#listGrid').jqGrid('getGridParam', 'selarrrow');
if (selectedIds.length > 0) {
var ors = [];
for (var i = 0; i < selectedIds.length; i++) {
var or = $('#listGrid').getRowData(selectedIds[i]).id;
ors.push(or);
}
searchPostData.ClientIds = ors;
}
main.post("/ClientPnlInfo/ClientPnlInfoExport", searchPostData).done(function (res) {
main.downloadFiles(res.obj);
});
parent.layer.closeAll();
}
function SendReport() {
var parames = new Array();
var selClientIds = jQuery('#listGrid').jqGrid('getGridParam', 'selarrrow');
var sendClients = selClientIds.length > 0 ? selClientIds:$("#ClientIds").val();
parames.push({ name: "ClientIds", value: sendClients });
parames.push({ name: "StartDate", value: $("#DateFromSettlement").val() });
parames.push({ name: "ValueDate", value: $("#DateToSettlement").val() });
_.forEach($("#PrewhereMode").val(), (v) => {
parames.push({ name: v, value: true });
})
Post("/ClientPnlInfo/ClientPnlInfoSend", parames);
}
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();
}
</script>
}
<div class="searchdiv">
@Html.MyAceDropdownInput("ClientIds", "客户名称", CurUser.GetClientSelectItems(CurUser.交易管理_查看所有交易))
@Html.ShortInput("ClientNumber", "客户编号")
@Html.MyAceDropdownInput("IsSmallAndMicroEnterprises", "中小微企业", new List<SelectListItem>() { new SelectListItem() { Text = "是", Value = "1" }, new SelectListItem() { Text = "否", Value = "0" } }, false,true,null,false)
@Html.MyAceDropdownInput("CustomerManagerIds", "客户经理", ClientDataModel.GetAllCustomerManager())
<br />
@Html.SearchDateRange("Settlement", "结算日期")
@Html.MyAceDropdownInput("PrewhereMode", "预置条件",
new List<SelectListItem> {
new SelectListItem { Text = "有交易", Value = "HaveTrade" },
new SelectListItem { Text = "有持仓", Value = "HavePosition" },
new SelectListItem { Text = "有资金记录", Value = "HaveBanlance" } }, false)
@MyControls.SearchBtn()
@MyControls.Btn("导出", "exportClientPnlInfoList()")
@MyControls.Btn("发送报告", "SendReport()")
<div title="配置显示列" style="width:30px;display:inline;cursor:pointer;" onclick="showcolumnChooser();return false;">
<img alt="配置显示列" src="~/Images/configure.png" />
</div>
</div>
@Html.Raw(JqGridSimple.OutTable())
<form target="_blank" method="post" id="exportForm" action="">
<input type="hidden" name="" value="" />
</form>