Files
zszq-trs/YLErpWeb/wwwroot/Scripts/app/client/clientListV2.js
T
2025-04-16 17:09:22 +08:00

744 lines
25 KiB
JavaScript

var colModelGrid = [];
$(function () {
var PostData = {};
Updatestatue();
getColModelGrid();
$(".datepicker").datepicker({ changeMonth: true, changeYear: true, showButtonPanel: true, showOtherMonths: true, selectOtherMonths: true });
jqGridInit();
g_grid = jQuery('#listGrid');
g_grid.setGridParam({
resizeStop: function (newWidth, index) {
$(".ui-jqgrid-hdiv table:first th").eq(index).css("width", newWidth + "px");
$(".frozen-div table:first th").eq(index).css("width", newWidth + "px");
$(".frozen-bdiv table:first td").eq(index).css("width", newWidth + "px");
}
});
function keyEnter(event) {
try {
var e = event ? event : (window.event ? window.event : null);
(e.keyCode === 13) && SearchClick(true);
} catch (e) {
//
}
}
document.onkeydown = keyEnter;
$(window).resize(function () {
//如有频繁改变大小的需求,要增加延迟运行的逻辑;
$("#listGrid").jqGrid('destroyFrozenColumns');
$("#listGrid").jqGrid('setFrozenColumns');
$(".frozen-div").css("overflow", "hidden")
var height = $("#listGrid .jqgrow").height() + 2;
$("#listGrid_frozen .jqgrow").height(height);
$("#listGrid").setGridWidth($("#main-wrapper").width() - 30);
});
$(window).resize();
});
window.reloadData = reloadclient2;
function BatchSetClientTag() {
var jgrid = jQuery('#listGrid');
var selIds = main.GetGridIds(jgrid);
if (selIds.length === 0) { main.message("请选择至少一个客户"); return; }
let srcurl = "/Tag/BatchSetClientTag/?ids=" + selIds.join(',');
main.open("批量设置标签", srcurl, { area: ['778px', '257px'], scrollbar: false });
}
var i = 0;
function uploadClient() {
var scrurl = "/client/clientUploadV2?flag=1";
if (page.canBatchModify) {
main.open("批量修改客户信息", scrurl, { area: ['650px', '450px'] });
}
else {
console.warn("InVaild Operation!");
}
}
window.reloadData = reloadclient2;
function BatchSetClientTag() {
var jgrid = jQuery('#listGrid');
var selIds = main.GetGridIds(jgrid);
if (selIds.length === 0) { main.message("请选择至少一个客户"); return; }
let srcurl = "/Tag/BatchSetClientTag/?ids=" + selIds.join(',');
main.open("批量设置标签", srcurl, { area: ['778px', '257px'], scrollbar: false });
}
function getColModelGrid() {
var actions = [];
actions.push({
name: 'ProcessStatus',
label: '客户状态',
index: 'ProcessStatus',
width: '100',
sortable: false,
align: 'center',
hidden: false
});
actions.push({
name: 'ApprovalStatus',
label: '审批状态',
index: 'ApprovalStatus',
width: '100',
sortable: false,
align: 'center',
hidden: false
});
if (editConfig.clientList == null) {
main.alert("请配置客户管理列表!")
} else {
editConfig.clientList = _.uniqBy(editConfig.clientList, "name");
editConfig.clientList.forEach(a => {
var rowData = {
name: a.name,
label: a.label,
index: a.name,
width: a.width,
sortable: a.sortable,
align: a.align,
hidden: a.hidden,
optionHide: a.optionHide,
sortIndex: i++
}
colModelGrid.push(rowData);
if (a.name == "ClientName") {
actions.forEach(a => {
colModelGrid.push(a);
});
}
});
if (colModelGrid.length > 0) {
//当是浙期时,加一列 显示客户状态;
if (iszheqi == "true") {
colModelGrid.push({
name: 'ProcessStatus',
label: '客户状态',
index: 'ProcessStatus',
sortIndex: i++,
width: 80,
align: 'left'
});
}
}
if (page.ViewTagPermission) {
colModelGrid.push({
name: 'Tags',
label: '标签值',
index: 'Tags',
sortIndex: i++,
width: 150,
align: 'left',
sortable: false
}, {
name: 'OutputTags',
label: 'OutputTags',
index: 'OutputTags',
width: 70,
align: 'center',
hidden: true,
optionHide: true
});
}
colModelGrid.push({
name: 'operation',
label: '操作',
index: 'operation',
width: '220',
sortable: false,
align: 'center',
hidden: false
});
FormatColData(colModelGrid);
}
}
function tagformat(cellvalue, options, rowObject) {
var html = '<div class="tag-context">';
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 += '<span class="tag-item" data-id="' + rowObject.Tags[i].Id + '" data-name="' + rowObject.Tags[i].Name + '"><span class="tag-text" data-value="' + rowObject.Tags[i].Id + '">' + rowObject.Tags[i].Name + '</span></span>';
}
html += '<span class="tag-add" title="' + tagNames + '">...</span>';
} else {
for (var i = 0; i < rowObject.Tags.length; i++) {
html += '<span class="tag-item" data-id="' + rowObject.Tags[i].Id + '" data-name="' + rowObject.Tags[i].Name + '"><span class="tag-text" data-value="' + rowObject.Tags[i].Id + '">' + rowObject.Tags[i].Name + '</span></span>';
}
}
}
html += '</div>';
return html;
}
function FormatColData(colData) {
colData.forEach(a => {
switch (a.name) {
case 'Number':
case 'id':
case 'EncryptId':
a.optionHide = true;
a.frozen = true;
break;
case 'Name':
a.optionHide = true;
a.frozen = true;
a.formatter = clientNameFormat;
break;
case 'Phone':
a.formatter = PhoneFormater;
break;
case 'PendingMarginCallPayment':
case 'IsIndustryConnectVariety':
case 'IsRealControl':
case 'IsEvaluate':
case 'IsRequireConversionTypes':
case 'IsAssessmentResultChange':
case 'IsDocShowParentName':
case 'IsCreditOn':
case 'IsSmallAndMicroEnterprises':
case 'IsTradeCredit':
a.formatter = boolFormater;
break;
case 'EvaluateDate':
a.formatter = dateformat;
break;
case 'ProtocolSignDate':
a.formatter = dateformat;
break;
case 'RightProtocolSignDate':
a.formatter = dateformat;
break;
case 'OptDate':
a.formatter = dateformat;
break;
case 'SupProtocolDate':
a.formatter = dateformat;
break;
case 'RiskPreference':
a.label = extendFieldName;
break;
case 'AppropriatenessDegreeName':
a.formatter = appropriatenessDegreeNameFormater;
break;
case 'Remark':
a.formatter = remarkFormat;
break;
case 'operation':
a.formatter = showToolName;
break;
case 'AgreementBookType':
a.formatter = AgreementBookTypeFormater;
break;
case 'MarginOptionType':
a.formatter = MarginOptionFormater;
break;
case 'Tags':
a.formatter = tagformat;
break;
case 'TradingInstType':
a.formatter = TradingInstTypeFormater;
break;
case 'IsCentralClearing':
a.formatter = IsCentralClearingFormater;
break;
case 'Tags':
a.formatter = tagformat;
break;
default:
a.formatter = 'text'
break;
}
if (a.name.indexOf("meta_") >= 0) {
var dicName = a.name.replace("meta_", "");
a.name = `MetaDic.${dicName}`;
a.index = `MetaDic.${dicName}`;
a.sortable = false;//自定义字段不支持排序
}
});
}
Date.prototype.format = function (fmt) {
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"h+": this.getHours(), //小时
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
}
for (var k in o) {
if (new RegExp("(" + k + ")").test(fmt)) {
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
}
}
return fmt;
}
function dateformat(cellvalue, options, rowObject) {
if (cellvalue == null || cellvalue == undefined) {
return "";
}
return new Date(cellvalue).format("yyyy-MM-dd");
}
function gridComplete() {
main.setcolumnChooser(jQuery('#listGrid'), page.configcolumn_name);
var height = $("#listGrid .jqgrow").height() + 2;
$("#listGrid_frozen .jqgrow").height(height);
$("#listGrid").setGridWidth($("#main-wrapper").width() - 30);
}
function clientNameFormat(c, o, r) {
var html = r.Name;
if (r.AssessmentExpired) {
html += '<i class="fa fa-exclamation tip" aria-hidden="true" title="适当性评估已过期" ></i>';
}
return html;
}
function remarkFormat(ce, op, rowObj) {
if (ce && ce.startsWith("http://")) {
return "<a href='{0}' style='text-decoration:underline;' target='_blank'>{0}</a>".template(ce);
}
return ce;
}
function rowdblclick(rowid) {
var rowData = $(this).getRowData(rowid);
startclientView(rowData.EncryptId);
}
function customButton(cellValue, options, rowObject) {
var imageHtml = "<input type=\"button\" value=\"删除\" class=\"btn-warning\" onclick=\"deleteclient('" + rowObject.EncryptId + "');\" />";
return imageHtml;
}
function deleteclient(encryptId) {
if (confirm("确定删除吗?")) {
$.ajax({
type: "Post",
url: "/client/Deleteclient",
data: { id: encryptId, d: new Date() },
success: function (data) {
showmiddlemessage(data.obj);
if (data.success == true) {
$('#listGrid').trigger('reloadGrid');
}
},
error: function (msg) {
alert("error:" + msg);
}
});
}
}
function showToolName(cellValue, options, rowObject) {
var html = "";// "<input type=\"button\" class=\"wentiEdit\" title='查看客户信息' onclick=\"startclientView('{0}')\" value=\"{1}\" />".template(rowObject.EncryptId, "查看");
if (rowObject.ProcessStatus == "已开户" || rowObject.ProcessStatus == "已休眠") {
if (page.isCanle) {
html = html +
"<input type=\"button\" class=\"wentiEdit\" title='销户' onclick=\"cancel('{0}')\" value=\"{1}\" />"
.template(rowObject.id, "销户");
} else {
html = html +
"<input type=\"button\" class=\"wentiEdit\" title='销户' disabled='disabled' value=\"{1}\" />"
.template(rowObject.EncryptId, "销户");
}
}
if (rowObject.ProcessStatus == "已销户") {
html = html +
"<input type=\"button\" class=\"wentiEdit\" title='已销户' disabled='disabled' value=\"{1}\" />"
.template(rowObject.EncryptId, "已销户");
}
if (rowObject.ProcessStatus == "已休眠") {
if (page.allowSleep) {
html = html +
"<input type=\"button\" class=\"wentiEdit\" title='取消休眠' onclick=\"resumeClient('{0}')\" value=\"{1}\" />"
.template(rowObject.id, "取消休眠");
} else {
html = html +
"<input type=\"button\" class=\"wentiEdit\" title='取消休眠' disabled='disabled' value=\"{1}\" />"
.template(rowObject.id, "取消休眠");
}
}
if (rowObject.ProcessStatus == "已开户") {
if (page.allowSleep) {
html = html +
"<input type=\"button\" class=\"wentiEdit\" title='休眠' onclick=\"suspendClient('{0}')\" value=\"{1}\" />"
.template(rowObject.id, "休眠");
} else {
html = html +
"<input type=\"button\" class=\"wentiEdit\" title='休眠' disabled='disabled' value=\"{1}\" />"
.template(rowObject.id, "休眠");
}
}
if (page.showApprovalBtn) {
html = html +
"<input type=\"button\" class=\"wentiEdit\" title='匹配接口审批记录' onclick=\"approvalList('{0}')\" value=\"{1}\" />"
.template(rowObject.Name, "匹配审批");
}
return html;
}
function approvalList(name) {
main.open("审批记录", "/trade/InterfaceApprovalRecord?type=2&code=" + name, { area: ["1200px", "600px"] });
}
function appropriatenessDegreeNameFormater(cellValue, options, rowObject) {
return rowObject.AppropriatenessDegreeName;
}
function boolFormater(cellValue, options, rowObject) {
if (cellValue == null) return "";
if ((cellValue + "").indexOf("<label>") != -1) {
return cellValue;
}
var s = cellValue ? "是" : "否";
var html = "<label>{0}</label>".template(s);
return html;
}
function PhoneFormater(cellValue, options, rowObject) {
//换行会影响行高,造成冻结列之后行错位的问题
//return cellValue != undefined ? cellValue.replace(",", "\n") : "";
return cellValue;
}
function AgreementBookTypeFormater(cellValue, option, rowObject) {
if (cellValue == undefined) {
cellValue = true;
}
var s = cellValue ? "单向" : "双向";
var html = "<label>{0}</label>".template(s);
return html;
}
function MarginOptionFormater(cellValue, option, rowObject) {
if (cellValue == undefined) {
cellValue = 0;
}
switch (cellValue) {
case 0: return "单向追保";
case 1: return "双向追保";
case 2: return "对手方单向追保";
case 3: return "其他";
default: return "单向追保";
}
}
const enumTradingInstTypeDesc = ["权益", "商品", "固定收益", "外汇", "信用"];
function TradingInstTypeFormater(cellValue, option, rowObject) {
cellValue = parseInt(cellValue);
if (!cellValue) return "无";
let strs = [];
for (let i = 0; i < enumTradingInstTypeDesc.length; i++) {
if ((cellValue & (1 << i)) > 0) {
strs.push(enumTradingInstTypeDesc[i]);
}
}
return strs.join(',');
}
function IsCentralClearingFormater(cellValue, option, rowObject) {
if (cellValue == undefined) {
cellValue = "";
}
switch (cellValue) {
case "Y": return "是";
case "N": return "否";
case "I": return "计划中央对手方清算";
default: return "";
}
}
function rowclick(id) {
}
function startclientView(id) {
var srcurl = "/client/clientViewV2?enid=" + id;
var width = "1300px";
if (page.isZhaoZheng) {
width = "1430px";
} else if (page.isDongWu) {
width = "1550px";
}
layer.open({
type: 2,
title: "查看客户信息",
shadeClose: false,
shade: 0.4,
area: [width, '800px'],
content: srcurl,
cancel: function (index, layero) {
var iframeWin = window["layui-layer-iframe" + index];
if (iframeWin.topVue == undefined) {
return window.layer.closeMe();
}
return iframeWin.topVue.closeMe();
}
});
// main.open("查看客户信息", srcurl);
}
function reloadclient() {
//重新加载
Updatestatue();
SearchClick();
window.layer.closeAll();
}
function reloadclient2() {
//重新加载
Updatestatue();
SearchClick();
}
function exprotChooseColumn() {
var dateTemp = new Date().Format("yyyyMMddhhmmss");
var fileName = "客户清单(配置列)_" + dateTemp;
var clientList = [];
colModelGrid.forEach(a => {
if (a.name == "ClientName") {
a.formatter = (c, o, r) => r.Name;
}
if (a.label != "标签值") {
clientList.push({
colName: a.label, formatter: a.formatter
});
}
});
if (page.ViewTagPermission) {
clientList.push({
colName: "标签值",
formatter: function (cellValue, options, rowObject) {
return rowObject.OutputTags;
}
});
}
if (isguojun == "true") {
main.toExcel("listGrid", fileName, "xls", null, "操作人,操作时间,操作,客户状态", clientList);
}
else if (iszheqi == "true") {
main.toExcel("listGrid", fileName, "xls", null, "资金流向,履约协议编号,履约协议类型,席位,操作人,操作时间,操作", clientList);
}
else {
main.toExcel("listGrid", fileName, "xls", null, "资金流向,履约协议编号,履约协议类型,席位,操作人,操作时间,操作,客户状态", clientList);
}
}
function exprotChooseClientDuty() {
SearchClick();
exportSubmit('/client/ExportClientDuty');
}
function exprotChooseBankCard() {
SearchClick();
exportSubmit('/client/ExportClientBankCard');
}
//浙期导出合并基本信息、客户人员信息、银行信息账号到一个列表
function exprotChooseAllClient() {
SearchClick();
exportSubmit('/client/ExportClientAll');
}
function exportSubmit(url) {
var $form = $('#exportForm').html('');
$form.attr("action", url)
_.each(query_data, (val, key) => {
if (!val) {
val = '';
} else if (_.isArray(val)) {
_.each(val, x => {
$form.append(`<input type="hidden" name="${key}" value="${x}">`);
});
return;
}
$form.append(`<input type="hidden" name="${key}" value="${val}">`);
});
$form.submit();
}
function SearchClick(isSearchclick) {
var listGrid = $('#listGrid');
listGrid.appendPostData({ Number: $("#Number").val() });
listGrid.appendPostData({ Name: $("#Name").val() });
listGrid.appendPostData({ LicenseCode: $("#LicenseCode").val() });
listGrid.appendPostData({ CustomerNatures: $("#CustomerNature").val() == null ? "" : $("#CustomerNature").val().join(",") });
listGrid.appendPostData({ ProtocolSignDateStart: $("#DateFromProtocolSignDate").val() });
listGrid.appendPostData({ ProtocolSignDateEnd: $("#DateToProtocolSignDate").val() });
listGrid.appendPostData({ OptName: $("#OptName").val() });
listGrid.appendPostData({ OptDateStart: $("#DateFromOptDate").val() });
listGrid.appendPostData({ OptDateEnd: $("#DateToOptDate").val() });
listGrid.appendPostData({ ProcessStatus: $("#ProcessStatus").val() });
listGrid.appendPostData({ ApprovalStatus: $("#ApprovalStatus").val() == null ? "" : $("#ApprovalStatus").val().join(",") });
listGrid.appendPostData({ ProperClientClass: $("#ProperClientClass").val() == null ? "" : $("#ProperClientClass").val().join(",") });
listGrid.appendPostData({ CustomerManagerIds: $("#CustomerManagerIds").val() });
listGrid.appendPostData({ CustomerManagerString: $("#CustomerManagerString").val() });
listGrid.appendPostData({ CreditRatingIds: $("#CreditRatingId").val() == null ? "" : $("#CreditRatingId").val().join(",") });
listGrid.appendPostData({ CreditLineStart: $("#CreditLineStart").val() });
listGrid.appendPostData({ CreditLineEnd: $("#CreditLineEnd").val() });
listGrid.appendPostData({ IsTradeCredit: $("#IsTradeCredit").val() });
listGrid.appendPostData({ ConfirmBookMode: $("#ConfirmBookMode").val() });
listGrid.appendPostData({ TagIds: $("#TagIds").val() });
listGrid.appendPostData({ ParentIds: $("#ParentIds").val() == null ? "" : $("#ParentIds").val().join(",") });
query_data = {
Number: $("#Number").val(),
Name: $("#Name").val(),
CustomerNatures: $("#CustomerNature").val() == null ? "" : $("#CustomerNature").val().join(","),
ProtocolSignDateStart: $("#DateFromProtocolSignDate").val(),
ProtocolSignDateEnd: $("#DateToProtocolSignDate").val(),
OptName: $("#OptName").val(),
OptDateStart: $("#DateFromOptDate").val(),
OptDateEnd: $("#DateToOptDate").val(),
ProcessStatus: $("#ProcessStatus").val(),
ApprovalStatus: $("#ApprovalStatus").val(),
ProperClientClass: $("#ProperClientClass").val() == null ? "" : $("#ProperClientClass").val().join(","),
CustomerManagerIds: $("#CustomerManagerIds").val(),
CustomerManagerString: $("#CustomerManagerString").val(),
CreditRatingIds: $("#CreditRatingId").val() == null ? "" : $("#CreditRatingId").val().join(","),
CreditLineStart: $("#CreditLineStart").val(),
CreditLineEnd: $("#CreditLineEnd").val(),
ConfirmBookMode: $("#ConfirmBookMode").val(),
}
if (typeof (isSearchclick) != "undefined" && isSearchclick) {
//点击搜索时默认第一页
listGrid.jqGrid('setGridParam', {
page: 1
});
}
listGrid.trigger('reloadGrid');
}
function cancel(eid) {
main.confirm("确认销户吗?", function () {
$.ajax({
type: "Post",
url: "/client/CancelClient",
data: { clientId: eid },
async: false,
success: function (data) {
main.message(data.msg);
}
});
try { window.parent.reloadclient(); } catch (e) { }
});
}
function suspendClient(eid) {
main.confirm("确认休眠吗?", function () {
$.ajax({
type: "Post",
url: "/client/SuspendClient",
data: { clientId: eid },
async: false,
success: function (data) {
main.message(data.msg);
}
});
try { window.parent.reloadclient(); } catch (e) { }
});
}
function resumeClient(eid) {
main.confirm("确认取消休眠吗?", function () {
$.ajax({
type: "Post",
url: "/client/ResumeClient",
data: { clientId: eid },
async: false,
success: function (data) {
main.message(data.msg);
}
});
try { window.parent.reloadclient(); } catch (e) { }
});
}
$("#Name").change(function () {
var value = $("#Name").val();
$("#Name").attr("title", value);
});
$("#OptName").change(function () {
var value = $("#OptName").val();
$("#OptName").attr("title", value);
});
function showcolumnChooser() {
main.showcolumnChooser(jQuery('#listGrid'), page.configcolumn_name);
}
function Updatestatue() {
main.post("/client/CheckedClientWarning").done(function (res) {
var div = document.getElementById("statue");
var date = res;
var html = "";
if (date == "即将到期") {
div.setAttribute("style", "border-color:#FF9933;border-radius:3px;box-shadow: 0 0px #FF9933;color:#FF9933;background-color:#FFF2D9");
html += "<i class=\"fa fa-circle\" style=\"color:#FF9933\"></i>&nbsp;即将到期";
} else if (date == "已到期") {
div.setAttribute("style", "border-color:red;border-radius:3px;box-shadow: 0 0px red;color:red;background-color:#FFE1E1");
html += "<i class=\"fa fa-circle\" style=\"color:red\"></i>&nbsp;已到期";
} else {
div.setAttribute("style", "border-color:#0282EC;border-radius:3px;box-shadow: 0 0px #0282EC;color:#0282EC;background-color:#E7F6FF;");
html += "<i class=\"fa fa-circle\" style=\"color:#0282EC;\"></i>&nbsp;无异常";
}
div.innerHTML = html;
});
}
function clientExpireWarningList() {
var srcurl = "/client/ClientExpireWarningList";
layer.open({
type: 2,
title: "查看预警情况",
shadeClose: false,
shade: 0.4,
area: ['1650px', '900px'],
content: srcurl,
cancel: function (index, layero) {
var iframeWin = window["layui-layer-iframe" + index];
if (iframeWin.topVue == undefined) {
return window.layer.closeMe();
}
return iframeWin.topVue.closeMe();
}
});
}