Files
zszq-trs/YLErpWeb/wwwroot/Scripts/app/client/clientEditV2.js
T

1733 lines
82 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
const editConfig = page.editConfig;
const editFields = _.flatMap(editConfig.sections, x => x.fields || []);
const OptFlagsEnum = { NONE: 0, A: 1, U: 2, D: 3 };
//转换配置数据
(function () {
page.fnameSet = new Set();
page.selectmNames = [];
page.selectSMNames = [];
page.oldClientName = page.client.Name;
page.isNewClient = page.client.id === 0;
//下拉选项数据转换大小写
for (let [k, v] of Object.entries(editConfig.selects)) {
editConfig.selects[k] = editConfig.selects[k].map(x => {
return { text: x.Text, value: x.Value, visible: x.Visible, disabled: x.Disabled };
});
}
//输入配置处理
//1.defaults中的默认值必须在selects中存在
for (let f of editFields) {
if (!f.name) continue;
page.fnameSet.add(f.name);
let isSelectM = f.type === 'select-m';
isSelectM && (page.selectmNames.push(f.name));
if ((isSelectM || f.type === 'select') && f.name in editConfig.selects && f.name in editConfig.defaults) {
let values = editConfig.selects[f.name].map(x => x.value);
if (isSelectM) {
let dvalues = _.split(editConfig.defaults[f.name], ",").map(x => x.trim()).filter(x => x);
editConfig.defaults[f.name] = _.intersection(dvalues, values);
} else if (!values.includes(editConfig.defaults[f.name])) {
editConfig.defaults[f.name] = f.appendBlank ? "" : null;
}
}
let isSelectSM = f.type === 'select-sm';
isSelectSM && (page.selectSMNames.push(f.name));
}
//其他项默认值
let items = editConfig.selects['文件类型'];
items && items.length && (page.file.FileTypeName = items[0].value);
items = editConfig.selects['权益类签署版本'];
items && items.length && (page.file.SignType = items[0].value);
page.file.ReportorRole = "甲方";
page.file.SideProtocolNumber = '';
//所属机构排除当前客户
page.client.id > 0 && _.remove(editConfig.selects.ParentId, x => page.client.id === parseInt(x.value));
}());
//客户数据帮助类
const clientHelper = (new function () {
//page.selectmNames已经有值的情况下调用
//转换为编辑用的数据
this.convertToEditData = function (client) {
let TradingInstType = parseInt(client.TradingInstType) || 0, types = [];
for (let a of [1, 2, 4, 8, 16]) {
(TradingInstType & a) > 0 && types.push(a.toString());
}
client.TradingInstType = types.join(",");
let meta = client.MetaDic || {};
Object.keys(meta).forEach(x => {
client['meta_' + x] = meta[x];
});
for (let f of editFields) {
if (!f.name || !(f.name in client)) continue;
if (f.type === 'select-m') {
(client[f.name] = _.split(client[f.name], ","));
} else if (f.type === 'date') {
client[f.name] && (client[f.name] = client[f.name].substring(0, 10));
} else if (f.type === 'select') {
f.appendBlank && !client[f.name] && (client[f.name] = '');
} else if (f.type === 'select-sm') {
(client[f.name] = _.split(client[f.name], ","));
}
}
return client;
};
//转换为保存用的数据(会对client深度改造所以最好传入克隆对象)
this.convertToSaveData = function (client) {
client.TradingInstType = (client.TradingInstType || []).reduce((acc, cur) => acc | parseInt(cur), 0);
for (var name of page.selectmNames) {
name in client && Array.isArray(client[name]) && (client[name] = client[name].join(","));
}
for (var name of page.selectSMNames) {
name in client && Array.isArray(client[name]) && (client[name] = client[name].join(","));
}
client.MetaDic = editFields.reduce((acc, cur) => {
if (cur.name && cur.name.startsWith('meta_')) {
acc[cur.name.substring(5)] = client[cur.name];
}
return acc;
}, {});
return client;
};
//转换为查看用的数据
this.convertToViewData = function (client) {
let arr = editConfig.selects["ParentId"];
Array.isArray(arr) && arr.unshift({ value: '0', text: ' ' });
let TradingInstType = parseInt(client.TradingInstType) || 0, types = [];
for (let a of [1, 2, 4, 8, 16]) {
(TradingInstType & a) > 0 && types.push(a.toString());
}
client.TradingInstType = types.join(",");
let meta = client.MetaDic || {};
Object.keys(meta).forEach(x => {
client['meta_' + x] = meta[x];
});
for (let f of editFields) {
if (!f.name || !(f.name in client)) continue;
if (f.type === 'select-m') {
client[f.name] = _.split(client[f.name], ",").map(x => {
return (_.find(editConfig.selects[f.name], y => y.value === x) || "").text || x;
}).join(",");
} else if (f.type === 'date') {
client[f.name] && (client[f.name] = client[f.name].substring(0, 10));
} else if (f.type === 'select') {
let value = _.toString(client[f.name]);
if (value) {
client[f.name] = (_.find(editConfig.selects[f.name], y => y.value === value) || "").text || client[f.name];
}
} else if (f.type === 'select-sm') {
client[f.name] = _.split(client[f.name], ",").map(x => {
return (_.find(editConfig.selects[f.name], y => y.value === x) || "").text || x;
}).join(",");
}
}
return client;
};
//注册资本|产品规模
this.labelOfRegisteredCapital = function (client) {
return client && client.ClientType !== "产品" ? "注册资本(万元)" : page.company === "海通" ? "产品规模(元)" : "产品规模(万元)";
};
}());
//转换客户数据
(function () {
if (page.isNewClient) {
Object.assign(page.client, editConfig.defaults);
} else if (page.isView) {
clientHelper.convertToViewData(page.client);
} else {
clientHelper.convertToEditData(page.client);
}
}());
//上一步下一步管理器
const flowMgr = (new function () {
var _curTabIndex = 0;
this.getTab = function (tabIndex) {
if (_curTabIndex === tabIndex) return;
page.isNewClient && main.message("请先保存客户基本信息");
_curTabIndex = tabIndex || 0;
let $cur = $('#flowList').children(':eq(' + _curTabIndex + ')');
//if (page.client.ProcessStatus && page.client.ProcessStatus !== "未提交") {
// $('#flowList').children().addClass("checked");
//}
//else {
// $cur.nextAll().removeClass("current checked");
// $cur.prevAll().removeClass("current").addClass("checked");
//}
$cur.nextAll().removeClass("current checked");
$cur.prevAll().removeClass("current").addClass("checked");
$cur.removeClass("checked").addClass("current");
$("#myTab").children(':eq(' + _curTabIndex + ')').find("a").tab('show');
};
this.flowNext = function () {
let nextIndex = _curTabIndex + 1;
if (nextIndex === $('#flowList').children("div:visible").length) {
return main.message("已到达最后一步,无法下一步");
}
this.getTab(nextIndex);
};
this.flowBack = function () {
let preIndex = _curTabIndex - 1;
if (preIndex < 0) {
return main.message("已到达第一步,无法上一步");
}
this.getTab(preIndex);
};
this.init = function () {
$("#myTab").children(':eq(0)').find("a").tab('show');
};
}());
//vue-flatPicker控件
VueFlatpickr.install(Vue);
//银行卡管理(需要和client vue集成)
const bankcardVue = (function () {
return {
data: {
bankcard: _.cloneDeep(page.bankcard),
bankcardList: editConfig.lists.bankcardList
},
methods: {
addBankCard() {
if (!this.client.id) {
return main.alert("请先保存用户基本信息");
}
if (this.client.ApprovalStatus == "审批中") {
return main.alert("当前客户正在审批中,不可进行修改,请等待审批完成后再进行操作!");
}
Object.assign(this.bankcard, page.bankcard, { ClientId: this.client.id, ClientName: this.client.Name, ValidState: 'Valid' });
$('#clientBankCardEditModal').modal('show');
},
editBankCard(enid) {
let self = this;
if (self.client.ApprovalStatus == "审批中") {
return main.alert("当前客户正在审批中,不可进行修改,请等待审批完成后再进行操作!");
}
main.post('/bankcard/AjaxGetBankcardDetail?enid=' + enid).done(function (resp) {
Object.assign(self.bankcard, resp.obj);
$('#clientBankCardEditModal').modal('show');
}).fail(function () {
main.alert('获取银行卡信息出错,请重新尝试!');
});
},
saveBankCard() {
let arr = [];
!_.trim(this.bankcard.Bank) && arr.push('开户行');
!_.trim(this.bankcard.Card) && arr.push('账号');
!_.trim(this.bankcard.ClientName) && arr.push('户名');
if (arr.length) {
return main.alert(arr.join(",") + " 必须填写");
}
let self = this;
let fn = function (inProcess) {
main.post("/bankcard/AjaxSaveBankCard", { req: self.bankcard, isDirectSubApp: pageData.isDirectSubApp }).done(function (resp) {
resp = resp.obj;
if (self.bankcard.id) {
let index = self.bankcardList.findIndex(x => x.id === self.bankcard.id);
Object.assign(self.bankcardList[index], resp.bankcard);
} else {
self.bankcardList.push(resp.bankcard);
}
Object.assign(self.client, resp.client);
$('#clientBankCardEditModal').modal('hide');
if (pageData.isDirectSubApp) {
window.location.href = '/Client/ClientViewV2?enid=' + page.client.EncryptId + "&isApproval=" + pageData.isApproval;
window.parent.reloadclient2 && window.parent.reloadclient2();
}
});
};
if (new Array("已开户", "已休眠").includes(this.client.ProcessStatus) && page.clientApprovalProcessCount > 0 && page.isView) {
main.confirm("银行卡变更,客户需要重新审批,确认提交?", fn.bind(this, true));
}
else {
fn();
}
},
removeBankCard(enid) {
let self = this;
if (self.client.ApprovalStatus == "审批中") {
return main.alert("当前客户正在审批中,不可进行修改,请等待审批完成后再进行操作!");
}
let inProcess = new Array("已开户", "已休眠").includes(this.client.ProcessStatus) && page.clientApprovalProcessCount > 0 && page.isView;
let msg = (inProcess ? "删除客户银行卡,客户需要重新审批," : "") + "确定作废吗?";
main.confirmPost(msg, "/bankcard/AjaxInvalidBankcard?enid=" + enid + "&isDirectSubApp=" + pageData.isDirectSubApp).done(function (resp) {
resp = resp.obj;
let index = self.bankcardList.findIndex(x => x.id === resp.bankcard.id);
Object.assign(self.bankcardList[index], resp.bankcard);
Object.assign(self.client, resp.client);
if (pageData.isDirectSubApp) {
window.location.href = '/Client/ClientViewV2?enid=' + page.client.EncryptId + "&isApproval=" + pageData.isApproval;
window.parent.reloadclient2 && window.parent.reloadclient2();
}
});
},
refreshBankCards() {
let self = this;
var isApproval = pageData.isApproval;
if (!page.isView) {
isApproval = true;
}
main.post('/bankcard/AjaxGetBankcardList?clientId=' + this.client.id + "&isApproval=" + isApproval).done(function (resp) {
self.bankcardList = resp.obj;
}).fail(function () {
main.message("获取银行卡信息列表失败");
});
},
formatCardNum(cardnum) {
return _.toString(cardnum).replace(/(\d{4}(?!$))/g, "$1 ");
}
}
};
}());
//人员信息管理(需要和vue集成)
const dutyVue = (function () {
const IdCardTypeMap = (function () {
let map = {};
let items = editConfig.selects['IdCardType'];
items && items.reduce((acc, cur) => {
map[cur.value] = cur.text;
return map;
}, map);
return map;
}());
//是否接受相关邮件
if (true) {
}
page.duty.IsReceiveEmail = "1";
page.duty.IdCardType = 1;
return {
data: {
duty: _.cloneDeep(page.duty),
dutyList: editConfig.lists.dutyList
},
mounted() {
$('#duty_ContactTypeId').selectpicker();
},
methods: {
addDuty() {
if (!this.client.id) {
return main.alert("请先保存用户基本信息");
}
if (this.client.ApprovalStatus == "审批中") {
return main.alert("当前客户正在审批中,不可进行修改,请等待审批完成后再进行操作!");
}
$('#duty_ContactTypeId').selectpicker('val', []);
Object.assign(this.duty, page.duty, { ClientId: this.client.id });
$('#clientDutyEditModal').modal('show');
},
editDuty(enid) {
let self = this;
if (self.client.ApprovalStatus == "审批中") {
return main.alert("当前客户正在审批中,不可进行修改,请等待审批完成后再进行操作!");
}
main.post('/clientduty/AjaxGetDutyDetail?enid=' + enid).done(function (resp) {
Object.assign(self.duty, resp.obj);
!self.duty.IsReceiveEmail && (self.duty.IsReceiveEmail = "0");
self.duty.ContactTypeId = _.split(self.duty.ContactTypeId, ",");
_.trim(self.duty.IdCardDate) && (self.duty.IdCardDate = self.duty.IdCardDate.substring(0, 10));
_.trim(self.duty.DeadLine) && (self.duty.DeadLine = self.duty.DeadLine.substring(0, 10));
_.trim(self.duty.AuthorizeEndDate) && (self.duty.AuthorizeEndDate = self.duty.AuthorizeEndDate.substring(0, 10));
_.trim(self.duty.IdCardStartDate) && (self.duty.IdCardStartDate = self.duty.IdCardStartDate.substring(0, 10));
_.trim(self.duty.IdCardEffectiveDate) && (self.duty.IdCardEffectiveDate = self.duty.IdCardEffectiveDate.substring(0, 10));
$('#duty_ContactTypeId').selectpicker('val', self.duty.ContactTypeId);
$('#clientDutyEditModal').modal('show');
if (self.duty.IdCardEffectiveDateStr == "30001231") {
$("#IdCardEffectiveDateStr").show();
$("#IdCardEffectiveDate").hide();
$("#clickLongOrShort").text("短期");
} else {
$("#IdCardEffectiveDateStr").hide();
$("#IdCardEffectiveDate").show();
$("#clickLongOrShort").text("长期");
}
}).fail(function () {
main.alert('获取人员信息出错,请重新尝试!');
});
},
saveDuty() {
let arr = [];
!_.trim(this.duty.ContactName) && arr.push('姓名');
!_.trim(this.duty.ContactTypeId) && arr.push('职责类型');
if (arr.length) {
return main.alert(arr.join(",") + " 必须填写");
}
if (_.trim(this.duty.IdCardStartDate)) {
this.duty.IdCardStartDateStr = new Date(this.duty.IdCardStartDate.substr(0, 10)).Format("yyyyMMMdd");
}
if (_.trim($("#IdCardEffectiveDate").val()) == "" && $("#clickLongOrShort").text() == "长期") {
this.duty.IdCardEffectiveDateStr = "";
this.duty.IdCardEffectiveDate = "";
} else {
if (_.trim(this.duty.IdCardEffectiveDate) || $("#clickLongOrShort").text() == "短期") {
if ($("#clickLongOrShort").text() != "长期") {
this.duty.IdCardEffectiveDateStr = "30001231"
} else {
this.duty.IdCardEffectiveDateStr = new Date(this.duty.IdCardEffectiveDate.substr(0, 10)).Format("yyyyMMMdd");
}
}
}
if (_.trim($("#AuthorizeEffectiveEndDate").val()) == "" && $("#clickLongOrShort_Authorize").text() == "长期") {
this.duty.AuthorizeEffectiveEndDateStr = "";
this.duty.AuthorizeEffectiveEndDate = "";
} else {
if (_.trim(this.duty.AuthorizeEffectiveEndDate) || $("#clickLongOrShort_Authorize").text() == "短期") {
if ($("#clickLongOrShort_Authorize").text() != "长期") {
this.duty.AuthorizeEffectiveEndDateStr = "30001231"
} else {
this.duty.AuthorizeEffectiveEndDateStr = new Date(this.duty.AuthorizeEffectiveEndDate.substr(0, 10)).Format("yyyyMMMdd");
}
}
}
let self = this, clone = _.cloneDeep(this.duty);
clone.ContactTypeId = clone.ContactTypeId ? clone.ContactTypeId.join(",") : "";
main.post("/clientduty/clientdutyEditJson", { req: clone, isDirectSubApp: pageData.isDirectSubApp }).done(function (resp) {
if (self.duty.id) {
let index = self.dutyList.findIndex(x => x.id === self.duty.id);
Object.assign(self.dutyList[index], resp.obj);
} else {
self.dutyList.push(resp.obj);
}
if (pageData.isDirectSubApp) {
window.location.href = '/Client/ClientViewV2?enid=' + page.client.EncryptId + "&isApproval=" + pageData.isApproval;
window.parent.reloadclient2 && window.parent.reloadclient2();
}
$('#clientDutyEditModal').modal('hide');
});
},
removeDuty(enid) {
let self = this;
if (self.client.ApprovalStatus == "审批中") {
return main.alert("当前客户正在审批中,不可进行修改,请等待审批完成后再进行操作!");
}
main.confirmPost("确定删除吗?", "/clientduty/AjaxRemoveClientDuty", { enid: enid, isDirectSubApp: pageData.isDirectSubApp }).done(function (resp) {
let index = self.dutyList.findIndex(x => x.id === resp.obj.id);
self.dutyList.splice(index, 1);
if (pageData.isDirectSubApp) {
window.location.href = '/Client/ClientViewV2?enid=' + page.client.EncryptId + "&isApproval=" + pageData.isApproval;
window.parent.reloadclient2 && window.parent.reloadclient2();
}
});
},
refreshDutys() {
let self = this;
var isApproval = pageData.isApproval;
if (!page.isView) {
isApproval = true;
}
main.post('/clientduty/AjaxGetDutyList?clientId=' + this.client.id + "&isApproval=" + isApproval).done(function (resp) {
self.dutyList = resp.obj;
}).fail(function () {
main.message("获取人员信息列表失败");
});
},
changeContactTypeId() {
if ($("#duty_ContactTypeId option:contains(约定收件人)").length > 0) {
this.duty.IsReceiveEmail = $("#duty_ContactTypeId :selected:contains(约定收件人)").length + '';
}
},
clickLongOrShort(id) {
if (id == "IdCard") {
if ($("#clickLongOrShort_IdCard").text() == "长期") {
$("#IdCardEffectiveDateStr").show();
$("#IdCardEffectiveDate").hide();
$("#clickLongOrShort_IdCard").text("短期");
} else {
$("#IdCardEffectiveDateStr").hide();
$("#IdCardEffectiveDate").show();
$("#clickLongOrShort_IdCard").text("长期");
}
} else if (id == "Authorize") {
if ($("#clickLongOrShort_Authorize").text() == "长期") {
$("#AuthorizeEffectiveEndDateStr").show();
$("#AuthorizeEffectiveEndDate").hide();
$("#clickLongOrShort_Authorize").text("短期");
} else {
$("#AuthorizeEffectiveEndDateStr").hide();
$("#AuthorizeEffectiveEndDate").show();
$("#clickLongOrShort_Authorize").text("长期");
}
}
},
dateFormat(v, f) {
if (v == null || v == '') {
return '';
}
if (!f) {
f = 'YYYY-MM-DD';
}
var m = new moment(v);
if (m.year() < 1910) {
return '';
}
return new moment(v).format(f);
}
},
computed: {
dutyList2() {
return this.dutyList.map(x => {
let a = _.cloneDeep(x);
a.IdCardType = IdCardTypeMap[a.IdCardType];
a.PhoneNumber = _.split(a.PhoneNumber, ",");
_.trim(a.IdCardDate) && (a.IdCardDate = a.IdCardDate.substring(0, 10));
_.trim(a.DeadLine) && (a.DeadLine = a.DeadLine.substring(0, 10));
_.trim(a.AuthorizeEndDate) && (a.AuthorizeEndDate = a.AuthorizeEndDate.substring(0, 10));
a.EmailStr = (a.Email || "").replace(/[;||,|]/g, ";\r\n");
a.ContactTypeStr = (a.ContactType || "").replace(/,/g, ",\r\n");
_.trim(a.IdCardStartDate) && (a.IdCardStartDate = a.IdCardStartDate.substring(0, 10));
_.trim(a.IdCardEffectiveDate) && (a.IdCardEffectiveDate = a.IdCardEffectiveDate.substring(0, 10));
return a;
});
},
isIdCardDate() {
if (page.company == "浙期") {
return true;
}
return false;
}
}
};
}());
//股东董事会成员信息
const dutydirectorVue = (function () {
const IdCardTypeMap = (function () {
let map = {};
let items = editConfig.selects['IdCardType'];
items && items.reduce((acc, cur) => {
map[cur.value] = cur.text;
return map;
}, map);
return map;
}());
const ShareholdingByShareholdersTypeMap = (function () {
let map = {};
let items = editConfig.selects['ShareholdingByShareholdersType'];
items && items.reduce((acc, cur) => {
map[cur.value] = cur.text;
return map;
}, map);
return map;
}());
const ManagementIdentityMap = (function () {
let map = {};
let items = editConfig.selects['ManagementIdentity'];
items && items.reduce((acc, cur) => {
map[cur.value] = cur.text;
return map;
}, map);
return map;
}());
const IdentityOfTheBoardOfDirectorsMap = (function () {
let map = {};
let items = editConfig.selects['IdentityOfTheBoardOfDirectors'];
items && items.reduce((acc, cur) => {
map[cur.value] = cur.text;
return map;
}, map);
return map;
}());
return {
data: {
dutydirector: _.cloneDeep(page.dutydirector),
dutydirectorList: editConfig.lists.dutydirectorList
},
mounted() {
$('#duty_ContactTypeId').selectpicker();
},
methods: {
editDutyDirector(enid) {
let self = this;
if (self.client.ApprovalStatus == "审批中") {
return main.alert("当前客户正在审批中,不可进行修改,请等待审批完成后再进行操作!");
}
main.post('/clientduty/AjaxGetDutyDetail?enid=' + enid).done(function (resp) {
Object.assign(self.dutydirector, resp.obj);
!self.dutydirector.IsReceiveEmail && (self.dutydirector.IsReceiveEmail = "0");
self.dutydirector.ContactTypeId = _.split(self.dutydirector.ContactTypeId, ",");
_.trim(self.dutydirector.IdCardDate) && (self.dutydirector.IdCardDate = self.dutydirector.IdCardDate.substring(0, 10));
_.trim(self.dutydirector.DeadLine) && (self.dutydirector.DeadLine = self.dutydirector.DeadLine.substring(0, 10));
_.trim(self.dutydirector.AuthorizeEndDate) && (self.dutydirector.AuthorizeEndDate = self.dutydirector.AuthorizeEndDate.substring(0, 10));
_.trim(self.dutydirector.IdCardStartDate) && (self.dutydirector.IdCardStartDate = self.dutydirector.IdCardStartDate.substring(0, 10));
_.trim(self.dutydirector.IdCardEffectiveDate) && (self.dutydirector.IdCardEffectiveDate = self.dutydirector.IdCardEffectiveDate.substring(0, 10));
if (self.dutydirector.IsShareholder) {
$("#ShareholdingByShareholdersRatiodiv").show();
$("#ShareholdingByShareholdersTypediv").show();
} else {
$("#ShareholdingByShareholdersRatiodiv").hide();
$("#ShareholdingByShareholdersTypediv").hide();
}
$('#duty_ContactTypeId').selectpicker('val', self.dutydirector.ContactTypeId);
$('#clientDirectorDutyEditModal').modal('show');
}).fail(function () {
main.alert('获取人员信息出错,请重新尝试!');
});
},
saveDutyDirector() {
let arr = [];
!_.trim(this.dutydirector.ContactName) && arr.push('姓名');
!_.trim(this.dutydirector.ContactTypeId) && arr.push('职责类型');
!_.trim(this.dutydirector.ManagementIdentity) && arr.push('管理层身份');
!_.trim(this.dutydirector.IdentityOfTheBoardOfDirectors) && arr.push('董事会身份');
!_.trim(this.dutydirector.IsShareholder) && arr.push('是否股东');
if (_.trim(this.dutydirector.IsShareholder) && this.dutydirector.IsShareholder.toString() == "true") {
!_.trim(this.dutydirector.ShareholdingByShareholdersType) && arr.push('股东持股类型');
!_.trim(this.dutydirector.ShareholdingByShareholdersRatio) && arr.push('股东持股比例');
}
if (arr.length) {
return main.alert(arr.join(",") + " 必须填写");
}
this.dutydirector.ShareholdingByShareholdersRatio = parseFloat(this.dutydirector.ShareholdingByShareholdersRatio);
if (_.trim(this.dutydirector.ShareholdingByShareholdersRatio) && (this.dutydirector.ShareholdingByShareholdersRatio < 0 && this.dutydirector.ShareholdingByShareholdersRatio > 100)) {
return main.alert('股东持股比例必须大于等于0并小于等于100!');
}
let self = this, clone = _.cloneDeep(this.dutydirector);
main.post("/clientduty/clientdutyEditJson", clone).done(function (resp) {
if (self.dutydirector.id) {
let index = self.dutydirectorList.findIndex(x => x.id === self.dutydirector.id);
Object.assign(self.dutydirectorList[index], resp.obj);
} else {
self.dutydirectorList.push(resp.obj);
}
$('#clientDirectorDutyEditModal').modal('hide');
});
},
refreshDutysDirector() {
let self = this;
main.post('/clientduty/AjaxGetDirectorDutyList?clientId=' + this.client.id).done(function (resp) {
self.dutydirectorList = resp.obj;
}).fail(function () {
main.message("获取人员信息列表失败");
});
},
changeIsShareholder() {
//IsShareholder
if ($("#IsShareholder").val() == "true") {
$("#ShareholdingByShareholdersRatiodiv").show();
$("#ShareholdingByShareholdersTypediv").show();
} else {
$("#ShareholdingByShareholdersRatiodiv").hide();
$("#ShareholdingByShareholdersTypediv").hide();
}
}
},
computed: {
dutyList3() {
return this.dutydirectorList.map(x => {
let a = _.cloneDeep(x);
a.IdCardType = IdCardTypeMap[a.IdCardType];
a.ShareholdingByShareholdersType = ShareholdingByShareholdersTypeMap[a.ShareholdingByShareholdersType];
a.ManagementIdentity = ManagementIdentityMap[a.ManagementIdentity];
a.IdentityOfTheBoardOfDirectors = IdentityOfTheBoardOfDirectorsMap[a.IdentityOfTheBoardOfDirectors];
a.IsShareholder = a.IsShareholder == true ? "是" : "否";
a.PhoneNumber = _.split(a.PhoneNumber, ",");
_.trim(a.IdCardDate) && (a.IdCardDate = a.IdCardDate.substring(0, 10));
_.trim(a.IdCardStartDate) && (a.IdCardStartDate = a.IdCardStartDate.substring(0, 10));
_.trim(a.DeadLine) && (a.DeadLine = a.DeadLine.substring(0, 10));
_.trim(a.AuthorizeEndDate) && (a.AuthorizeEndDate = a.AuthorizeEndDate.substring(0, 10));
_.trim(a.IdCardStartDate) && (a.IdCardStartDate = a.IdCardStartDate.substring(0, 10));
_.trim(a.IdCardEffectiveDate) && (a.IdCardEffectiveDate = a.IdCardEffectiveDate.substring(0, 10));
a.EmailStr = (a.Email || "").replace(/[;||,|]/g, ";\r\n");
a.ContactTypeStr = (a.ContactType || "").replace(/,/g, ",\r\n");
if ($("#IsShareholder").val() == "true") {
$("#ShareholdingByShareholdersRatiodiv").show();
$("#ShareholdingByShareholdersTypediv").show();
} else {
$("#ShareholdingByShareholdersRatiodiv").hide();
$("#ShareholdingByShareholdersTypediv").hide();
}
return a;
});
},
isIdCardDate() {
if (page.company == "浙期") {
return true;
}
return false;
}
}
};
}());
//客户文件管理
const fileVue = (function () {
const maxAllowedContentLength = page.maxRequestLength * 1024;
const protocolTypes = new Array("主协议附件(PDF)", "补充协议附件(PDF)", "履约协议附件(PDF)", "代签产品附件(PDF)");
const fileSearchObj = Object.freeze({ fileTypes: [], fileName: "", fileDate: "" });
function getGroupKey(file, files) {
if (file.MainProtocolNumber) {
if (file.FileTypeName !== "履约协议附件(PDF)") return file.MainProtocolNumber;
let mfile = files.find(o => o.ProtocolNumber === file.MainProtocolNumber);
return mfile ? mfile.MainProtocolNumber : file.MainProtocolNumber;
}
return file.FileTypeName === "主协议附件(PDF)" ? file.ProtocolNumber : file.FileName;
}
return {
data: {
groupingFiles: [],
orderByStr: "",
orderByFieldStr: "",
file: _.clone(page.file),
fileList: editConfig.lists.fileList,
parentFileList: editConfig.lists.parentFileList,
fileSearch: { ...fileSearchObj },
fileSearchCur: { ...fileSearchObj }, //记录筛选按钮点击时的条件数据
dateTimePicker: { enableTime: true, dateFormat: 'Y-m-d H:i', allowInput: true, time_24hr: true, static: true },
viewState: { fileUpdateKey: 0 }
},
mounted() {
$('#search_fileTypes').selectpicker({ actionsBox: true });
let doneFn = function (e, data) {
if (!data.result.success) {
return main.message(data.result.msg);
}
let obj = data.result.obj;
this.fileList = obj.fileList;
obj.ret && main.alert(obj.ret);
$('#uploadfile').val('');
$('#clientFileEditModal').modal('hide');
this.orderTableByField("", this.orderByStr);
};
let formDataFn = function () {
let file = this.file;
return Object.keys(file).map(key => {
return { name: key, value: file[key] || '' };
});
};
$('#uploadfile').fileupload({
dataType: 'json',
url: "/client/UploadFilesV2?clientEnId=" + page.client.EncryptId + "&isDirectSubApp=" + pageData.isDirectSubApp,
replaceFileInput: false,
singleFileUploads: false,
autoUpload: false,
formData: formDataFn.bind(this),
progressall: function (e, data) {
let progress = parseInt(data.loaded / data.total * 100, 10) + '%';
setUploadProgress(progress);
},
send() {
showUploadProgress();
},
done: doneFn.bind(this),
fail(e, data) {
main.alert('提交失败');
},
always() {
hideUploadProgress();
if (pageData.isDirectSubApp) {
window.location.href = '/Client/ClientViewV2?enid=' + page.client.EncryptId + "&isApproval=" + pageData.isApproval;
window.parent.reloadclient2 && window.parent.reloadclient2();
}
}
});
this.orderTableByField("", this.orderByStr);
},
methods: {
addFile() {
if (!this.client.id) {
return main.alert("请先保存用户基本信息");
}
if (this.client.ApprovalStatus == "审批中") {
return main.alert("当前客户正在审批中,不可进行修改,请等待审批完成后再进行操作!");
}
let nowTime = this.fileNowTime();
Object.assign(this.file, page.file, { ClientId: this.client.id, OptDate: nowTime });
$('#uploadfile').val('');
fileVue.data.parentFileList = [];
$('#clientFileEditModal').modal('show');
if (pageData.is华西) {
this.parentFileList = [];
let self = this;
let clientId = $('#ef_ParentId').val();
if (!pageData.IsEdit) {
clientId = page.client.id;
}
$.ajax({
type: "Post",
url: "/client/AjaxGetClientFilesV3",
data: { clientId: clientId, IsEdit: pageData.IsEdit == true ? true : false },
success: function (data) {
if (data.success == true) {
self.parentFileList = data.obj;
}
},
error: function (msg) {
alert("error:" + msg);
}
});
}
},
getFileLength(length) {
var units = ["M", "G", "T"];
var unit = "K";
for (var i = 0; length > 1024 && i < units.length; i++) {
length = length / 1024;
unit = units[i];
}
return parseInt(length) + unit;
},
checkSubmit(files) {
if (!files.length) {
return "没有选择上传文件";
}
if (page.isSecuritiesEnvironment && protocolTypes.includes(this.file.FileTypeName)) {
for (let f of files) {
if (f.size > page.maxAnnexLength) {
return "主协议附件,补充协议附件,履约预付金附件,代签产品附件 单个附件大小不可以超过30M";
}
if (f.type !== "application/pdf") {
return "主协议附件,补充协议附件,履约预付金附件,代签产品附件 只能上传pdf文档";
}
}
}
let totalSize = Array.from(files).reduce((sum, cur) => { return sum + cur.size }, 0);
if (totalSize > maxAllowedContentLength) {
var maxSize = this.getFileLength(page.maxRequestLength);
return "文件过大,请勿传输超过" + maxSize + "文件";
}
let req = this.file, check2 = true;
switch (req.FileTypeName) {
case "主协议附件(PDF)":
if (!_.trim(req.SignType)) {
return "主协议附件签署版本未填写";
}
if (!_.trim(req.ReportorRole)) {
return "主协议附件填报方角色未填写";
}
req.MainProtocolNumber = '';
req.SideProtocolNumber = '';
break;
case "履约协议附件(PDF)":
if (!_.trim(req.SideProtocolNumber)) {
return "履约协议附件补充协议编号未填写";
}
break;
case "补充协议附件(PDF)":
if (!_.trim(req.MainProtocolNumber)) {
return "主协议编号未填写";
}
break;
case "代签产品附件(PDF)":
if (!_.trim(req.MainProtocolNumber)) {
return "主协议编号未填写";
}
if (!_.trim(req.ProtocolNumber)) {
return "协议编号未填写";
}
break;
default: check2 = false; break;
}
if (check2) {
if (!_.trim(req.ProtocolNumber) && !pageData.is华西) {
return "协议编号未填写";
}
if (!_.trim(req.SignDate)) {
return "签署日期未填写";
}
}
},
saveFile() {
let files = $('#uploadfile').prop('files');
let message = this.checkSubmit(files);
if (message) {
return main.alert(message);
}
$('#uploadfile').fileupload('send', { files: files });
},
//重置筛选
resetFiles() {
this.fileSearch = { ...fileSearchObj };
this.fileSearchCur = { ...fileSearchObj };
$('#search_fileTypes').selectpicker('deselectAll');
},
//刷新列表
refreshFiles() {
let self = this;
var isApproval = pageData.isApproval;
if (!page.isView) {
isApproval = true;
}
main.post("/client/AjaxGetClientFilesV2", { clientEnId: page.client.EncryptId, isApproval: isApproval }).done(function (res) {
self.fileList = res.obj;
self.resetFiles();
});
},
//文件筛选
filterFiles() {
Object.assign(this.fileSearchCur, this.fileSearch);
this.orderTableByField("", this.orderByStr);
},
//当前时间
fileNowTime() {
return moment().format("YYYY-MM-DD HH:mm");
},
//当前日期
fileNowDay() {
return moment().format("YYYY-MM-DD");
},
//下载文件
downloadFile(item) {
//var url = "/client/DownloadClientFile?clientId=" + page.client.EncryptId + "&fileName=" + item.FileNameBak;
//window.open(url);
main.formOpenNewPage("/client/DownloadClientFile", { clientId: page.client.EncryptId, fileName: item.FileNameBak, fileid: item.EncryptId });
},
//预览文件
showFile(item) {
main.post("/client/ShowClientFile", { clientId: page.client.EncryptId, fileName: item.FileNameBak }).done(function (res) {
window.open(res.obj);
});
},
//废弃文件
abandonFile(item) {
let self = this;
if (self.client.ApprovalStatus == "审批中") {
return main.alert("当前客户正在审批中,不可进行修改,请等待审批完成后再进行操作!");
}
let alert = "警告:一但废止文件被报送后将无法解除废止,是否仍要废止?" + (item.ProtocolNumber ? "(协议文件废止将重新审批)" : "");
main.confirm(alert, function () {
main.post("/client/AbandonFile", { clientId: page.client.EncryptId, protocolNumber: item.ProtocolNumber }).done(function (res) {
self.refreshFiles();
});
});
},
//移除文件
removeFile(item) {
let self = this;
if (self.client.ApprovalStatus == "审批中") {
return main.alert("当前客户正在审批中,不可进行修改,请等待审批完成后再进行操作!");
}
let alert = (item.FileTypeName === '主协议附件(PDF)' ? "删除该主协议,将同时删除和其关联的废弃已报送协议文件," : "") + "确定删除‘" + item.FileName + "’吗?" + (item.ProtocolNumber ? "(协议文件删除将重新审批)" : "");
main.confirm(alert, function () {
main.post("/client/DeleteFile", { clientId: page.client.EncryptId, fileName: item.FileNameBak, protocolNumber: item.ProtocolNumber, isDirectSubApp: pageData.isDirectSubApp }).done(function (res) {
let index = self.fileList.findIndex(x => x.id === item.id);
self.fileList.splice(index, 1);
self.orderTableByField("", this.orderByStr);
if (pageData.isDirectSubApp) {
window.location.href = '/Client/ClientViewV2?enid=' + page.client.EncryptId + "&isApproval=" + pageData.isApproval;
window.parent.reloadclient2 && window.parent.reloadclient2();
}
});
});
},
//还原文件
recoverFile(item) {
let self = this;
if (self.client.ApprovalStatus == "审批中") {
return main.alert("当前客户正在审批中,不可进行修改,请等待审批完成后再进行操作!");
}
let alert = "还原文件将无法回到现在的状态,确认还原‘" + item.FileName + "’?" + (item.ProtocolNumber ? "(协议文件还原将重新审批)" : "");
main.confirm(alert, function () {
main.post("/client/RecoverFile", { clientId: page.client.EncryptId, fileName: item.FileNameBak, protocolNumber: item.ProtocolNumber, isDirectSubApp: pageData.isDirectSubApp }).done(function (res) {
self.refreshFiles();
if (pageData.isDirectSubApp) {
window.location.href = '/Client/ClientViewV2?enid=' + page.client.EncryptId + "&isApproval=" + pageData.isApproval;
window.parent.reloadclient2 && window.parent.reloadclient2();
}
});
});
},
//文件管理表格按照标题头排序
orderTableByField(fieldName, orderBy) {
this.orderByFieldStr = fieldName;
this.orderByStr = orderBy;
let self = this, search = this.fileSearchCur;
let searchFileName = _.trim(search.fileName), searchFileDate = _.trim(search.fileDate);
let files = this.fileList.filter(file => {
let bl = !search.fileTypes.length || file.FileTypeName && (search.fileTypes.includes(file.FileTypeName));
if (bl && searchFileName) {
bl = file.FileName.substring(0, file.FileName.lastIndexOf('.')).toLowerCase().includes(searchFileName.toLowerCase());
}
return bl && (!searchFileDate || _.trim(file.OptDate).startsWith(searchFileDate));
});
files = _.sortBy(files, file => {
let index = protocolTypes.findIndex(y => file.FileTypeName === y) + 1;
return index + "^" + file.FileTypeName + "^" + file.OptDate;
});
let keys = [], values = [];
files = _.groupBy(files, file => {
let key = getGroupKey(file, files);
!keys.includes(key) && keys.push(key);
return key;
});
//不要用for..in,因为底层库的array扩展方法一直没清除掉
for (let i = 0; i < keys.length; i++) {
let bgClass = 'bg' + (i % 2);
files[keys[i]].forEach(file => {
values.push(file);
file.bgClass = bgClass;
});
}
this.viewState.fileUpdateKey++; //为了更新tips
let tableData = values.map(file => {
let fileName = _.trim(file.FileName);
let show = Object.assign({ ...file }, {
HasSentDrop: file.HasSent && file.OptState === OptFlagsEnum.D,
FileTypeName: file.FileTypeName,
FileName: fileName.substring(0, fileName.lastIndexOf('.')),
SignDate: file.SignDate ? file.SignDate.substring(0, 10) : '',
FileDesc: file.FileDesc,
BookTime: file.BookTime ? file.BookTime : '',
MainProtocolNumber: _.trim(file.MainProtocolNumber),
CanDelete: !_.trim(file.ProtocolNumber) || (!file.HasSent && file.OptState === OptFlagsEnum.A),
CanDrop: _.trim(file.ProtocolNumber) && file.HasSent && file.OptState !== OptFlagsEnum.D,
CanBack: _.trim(file.FlagStr).includes('#CB#'),
FileNameBak: encodeURI(file.FileName)//防止文件名中包含&等url中非法字符;
});
return show;
});
if (fieldName === '') {
this.groupingFiles = tableData;
}
else {
if (fieldName === 'FileTypeName') {
this.groupingFiles = _.orderBy(tableData, ['FileTypeName'], [this.orderByStr]);
}
else if (fieldName === 'FileName') {
this.groupingFiles = _.orderBy(tableData, ['FileName'], [this.orderByStr]);
}
else if (fieldName === 'FileDesc') {
this.groupingFiles = _.orderBy(tableData, ['FileDesc'], [this.orderByStr]);
}
else if (fieldName === 'ProtocolNumber') {
this.groupingFiles = _.orderBy(tableData, ['ProtocolNumber'], [this.orderByStr]);
}
else if (fieldName === 'SignDate') {
this.groupingFiles = _.orderBy(tableData, ['SignDate'], [this.orderByStr]);
}
else if (fieldName === 'BookTime') {
this.groupingFiles = _.orderBy(tableData, ['BookTime'], [this.orderByStr]);
}
}
}
},
computed: {
showFileBookTime() {
if (this.file.FileTypeName === "双录视频文件") {
this.file.BookTime = this.fileNowDay();
return true;
}
this.file.BookTime = '';
return false;
},
showFileSignDate() {
switch (this.file.FileTypeName) {
default:
this.file.SignDate = '';
return false;
case "主协议附件(PDF)":
case "补充协议附件(PDF)":
case "履约协议附件(PDF)":
case "代签产品附件(PDF)":
return true;
}
},
showFileProtocolNumber() {
switch (this.file.FileTypeName) {
default:
this.file.ProtocolNumber = '';
return false;
case "主协议附件(PDF)":
case "补充协议附件(PDF)":
case "履约协议附件(PDF)":
case "代签产品附件(PDF)":
return true;
}
},
showFileMainProtocolNumber() {
switch (this.file.FileTypeName) {
default:
this.file.MainProtocolNumber = '';
return false;
case "补充协议附件(PDF)":
case "履约协议附件(PDF)":
case "代签产品附件(PDF)":
this.file.MainProtocolNumber = this.mainProtocolNumberItems[0];
return true;
}
},
showParentMainProtocalNumber() {
return _.trim(this.client.ParentId) && pageData.is华西 && this.file.FileTypeName == '主协议附件(PDF)';
},
showFileSideProtocolNumber() {
if (this.file.FileTypeName === "履约协议附件(PDF)") {
return true;
}
this.file.SideProtocolNumber = '';
return false;
},
showFileSignType() {
if (this.file.FileTypeName === "主协议附件(PDF)") {
this.file.SignType = page.file.SignType;
return true;
}
this.file.SignType = '';
return false;
},
showFileReportorRole() {
if (this.file.FileTypeName === "主协议附件(PDF)") {
this.file.ReportorRole = page.file.ReportorRole;
return true;
}
this.file.ReportorRole = '';
return false;
},
mainProtocolNumberItems() {
let items = this.fileList.filter(x => !!_.trim(x.ProtocolNumber) && x.FileTypeName === '主协议附件(PDF)' && x.OptState !== OptFlagsEnum.D).map(x => x.ProtocolNumber);
if (pageData.isDongGuan) {
let itemsParents = this.parentFileList.filter(x => !!_.trim(x.ProtocolNumber) && x.FileTypeName === '主协议附件(PDF)' && x.OptState !== OptFlagsEnum.D).map(x => x.ProtocolNumber);
page.file.MainProtocolNumber = items[0];
return items.concat(itemsParents);
} else {
page.file.MainProtocolNumber = items[0];
return items;
}
},
mainParentProtocolNumberItems() {
let items = this.parentFileList.filter(x => !!_.trim(x.ProtocolNumber) && x.FileTypeName === '主协议附件(PDF)' && x.OptState !== OptFlagsEnum.D);
this.file.ParentClientFileId = items.length > 0 ? items[0].id : 0;
return items;
},
sideProtocolNumberItems() {
if (this.file.FileTypeName !== "履约协议附件(PDF)") {
this.file.SideProtocolNumber = '';
return [];
}
let m = this.file.MainProtocolNumber;
let items = this.fileList.filter(x => !!_.trim(x.ProtocolNumber) && x.FileTypeName === '补充协议附件(PDF)' && x.OptState !== OptFlagsEnum.D && x.MainProtocolNumber === m).map(x => x.ProtocolNumber);
this.$nextTick(function () {
this.file.SideProtocolNumber = items[0];
});
return items;
},
securitiesEnvironment() {
if (page.isSecuritiesEnvironment) {
return true;
}
else {
return false;
}
}
}
};
}());
//产品投资人
const investorsVue = (function () {
return {
data: {
investor: _.cloneDeep(page.investor),
investorList: editConfig.lists.investorList
},
methods: {
addInvestor() {
if (!this.client.id) {
return main.alert("请先保存用户基本信息");
}
Object.assign(this.investor, page.investor, { ClientId: this.client.id, ClientName: this.client.Name, ValidState: 'Valid' });
$('#clientInvestorEditModal').modal('show');
},
editInvestor(enid) {
let self = this;
main.post('/clientInvestor/AjaxGetInvestorDetail?enid=' + enid).done(function (resp) {
Object.assign(self.investor, resp.obj);
$('#clientInvestorEditModal').modal('show');
}).fail(function () {
main.alert('获取产品投资人信息出错,请重新尝试!');
});
},
saveInvestor() {
let arr = [];
console.log(this.investor.Investor, this.investor)
!_.trim(this.investor.Investor) && arr.push('产品投资人');
if (arr.length) {
return main.alert(arr.join(",") + " 必须填写");
}
////适当性类型部位专业投资者是 权益比例不得超过20%
//if (this.investor.EligibilityType != '专业投资者' && this.investor.ShareRate>20) {
// return main.alert("非专业投资者,产品权益比例不得超过20%");
//}
let self = this;
main.post("/clientInvestor/AjaxSaveInvestor", self.investor).done(function (resp) {
resp = resp.obj;
if (self.investor.id) {
let index = self.investorList.findIndex(x => x.id === self.investor.id);
Object.assign(self.investorList[index], resp.investor);
} else {
self.investorList.push(resp.investor);
}
Object.assign(self.client, resp.client);
$('#clientInvestorEditModal').modal('hide');
});
},
removeInvestor(enid) {
let self = this;
main.confirmPost("确定删除吗?", "/clientInvestor/AjaxRemoveInvestor", { enid: enid }).done(function (resp) {
let index = self.investorList.findIndex(x => x.id === resp.obj.id);
self.investorList.splice(index, 1);
});
},
refreshInvestors() {
let self = this;
main.post('/clientInvestor/AjaxGetInvestorList?clientId=' + this.client.id).done(function (resp) {
self.investorList = resp.obj;
}).fail(function () {
main.message("获取产品投资人信息列表失败");
});
},
formatCardNum(cardnum) {
return _.toString(cardnum).replace(/(\d{4}(?!$))/g, "$1 ");
}
}
};
}());
//创建编辑视图
function createEditVue() {
$("#ef_Number").attr("v-bind:disabled", "client.id>0");
$('#ef_ClientType').attr("v-on:change", "changeClientType");
$('#ef_CustomerNature1,#ef_CustomerNature2').prop('readonly', true);
if (page.company !== "浙期") {
//适当性评级影响可接受风险服务
$('#ef_AppropriatenessDegree').attr("v-on:change", "changeAppropriatenessDegree");
$("#ef_QuestionnaireScore").attr("v-on:change", "changeQuestionnaireScore");
}
$('#ef_BusinessType').attr("v-on:change", "changeBusinessType");
//$('#ef_ProperClientClass').attr("v-on:change", "changeProperClientClass");
$('#ef_AdminRegisteredNum').attr("v-bind:disabled", "disableAdminRegisteredNum");
$('#ef_AdminFullName').attr("v-bind:disabled", "disableAdminFullName");
$('#ef_ProductNumber').attr("v-bind:disabled", "client.ClientType!=='产品'");
$('#ef_Manager').attr("v-bind:disabled", "client.ClientType!=='产品'");
$('#ef_RegisteredCapital').attr("v-bind:disabled", "client.ClientType==='自然人'");
$('#ef_RegisteredCapital').prev('label').text("{{labelOfRegisteredCapital}}");
$('#ef_RegisteredAddress').attr("v-bind:disabled", "client.ClientType==='自然人'");
!page.isSecuritiesEnvironment && $('#AccessRule').parent().hide();
//$('#ef_SupProtocolDate').attr("v-bind:maxdate", "nowday");
$('#ef_SupProtocolDate').attr("v-on:input", "changeSupProtocolDate");
$('#ef_ConfirmBookMode').attr("v-on:change", "changeConfirmBookMode");
if (pageData.isWuChanZhongDa) {
$('#ef_IsDocShowParentName').attr("disabled", true);
}
window.vue = new Vue({
el: "#editPanes",
data: {
client: page.client,
viewState: {
InstitutionalAttributes: page.client.InstitutionalAttributes || editConfig.defaults.InstitutionalAttributes
},
viewData: { ...editConfig.selects },
hasChange: 0
},
computed: {
disableAdminRegisteredNum() {
if (this.client.ClientType === '产品' || this.client.ClientType === '机构' && this.client.BusinessType === '私募管理人') {
return false;
}
this.AdminRegisteredNum = '';
return true;
},
disableInvestors() {
if (this.client.ClientType === '产品') {
return true;
}
return false;
},
disableAdminFullName() {
if (this.client.ClientType === '产品') {
return false;
}
this.AdminFullName = '';
return true;
},
labelOfRegisteredCapital() {
return clientHelper.labelOfRegisteredCapital(this.client);
},
clientJson() {
return JSON.parse(JSON.stringify(this.client));
}
},
created() {
this.viewData._InstitutionalAttributes = this.viewData.InstitutionalAttributes;
!_.includes(page.client.ClientType, "机构") && (this.viewData.InstitutionalAttributes = []);
this.changeClientType()
this.displayBankCreditRating()
},
mounted() {
$(page.selectmNames.map(n => '#ef_' + n).join(",")).selectpicker();
$('#ef_ParentId').removeClass('text-box').selectpicker({ liveSearch: true, dropdownAlignRight: true });
$('#ef_SalesDepartmentId').removeClass('text-box').selectpicker({ liveSearch: true, dropdownAlignRight: true });
$('#ef_Seller').attr("multiple", "multiple");
$('#ef_Seller').selectpicker({ liveSearch: true });
$('#ef_BusinessType').removeClass('text-box').selectpicker({ liveSearch: true, dropdownAlignRight: true });
$(".hasDatepicker").each(function (i, obj) {
if ($(obj).attr("required") == "required") {
$(obj).after(" <span style='color: red'>*</span>");
}
});
$(".formlabel").each(function (i, obj) {
if ($(obj).text() == '营业部销售') {
$(obj).parent().children("div.bootstrap-select").css("border-width", "0px");
}
});
//this.changeProperClientClass();
},
methods: {
changeClientType() {
if (_.includes(this.client.ClientType, "机构") && this.viewState.InstitutionalAttributes) {
this.client.InstitutionalAttributes = this.viewState.InstitutionalAttributes;
this.viewData.InstitutionalAttributes = this.viewData._InstitutionalAttributes;
} else {
if (this.client.InstitutionalAttributes) {
this.viewState.InstitutionalAttributes = this.client.InstitutionalAttributes;
this.client.InstitutionalAttributes = '';
}
this.viewData.InstitutionalAttributes = [];
}
//客户为产品时显示产品投资人步骤
if (this.client.ClientType === '产品') {
$('#flowPoint_investors').css("display", "block");
} else {
$('#flowPoint_investors').css("display", "none");
}
}, changeQuestionnaireScore() {
debugger;
if (!pageData.isZhaoZheng) {
let score = parseInt(this.client.QuestionnaireScore) || 0, selVal = "5";
if (score <= 20) {
selVal = "1";
} else if (score <= 30) {
selVal = "2";
}
else if (score <= 40) {
selVal = "3";
}
else if (score <= 70) {
selVal = "4";
}
this.client.RiskServiceDegree = this.client.AppropriatenessDegree = selVal;
}
},
clickLongOrShortLicense() {
if ($('#clickLongOrShortLicense').text() == "长期") {
$("#LicenseValidTimeStr").show();
$("#LicenseValidTime").hide();
$("#clickLongOrShortLicense").text("短期");
} else {
$("#LicenseValidTimeStr").hide();
$("#LicenseValidTime").show();
$("#clickLongOrShortLicense").text("长期");
}
},
changeBusinessType() {
this.displayBankCreditRating()
let self = this;
if (!this.client.BusinessType) {
return self.client.CustomerNature1 = self.client.CustomerNature2 = '';
}
main.post("/client/GetCustomerNaturesByBusinessType", { name: this.client.BusinessType }).done(function (data) {
let ss = (data || '').split(',');
self.client.CustomerNature1 = ss[0];
self.client.CustomerNature2 = ss[1] || '';
});
},
changeAppropriatenessDegree() {
this.client.RiskServiceDegree = this.client.AppropriatenessDegree;
},
changeSupProtocolDate() {
var myDate = this.client.SupProtocolDate;
if (!_.trim(myDate)) {
this.client.ConfirmBookMode = "双章版";
}
else if (myDate <= nowday) {
this.client.ConfirmBookMode = "单章版";
}
else {
this.client.ConfirmBookMode = "双章版";
}
},
changeConfirmBookMode() {
let self = this;
if (self.client.ConfirmBookMode === "单章版") {
if (_.trim(self.client.ProtocolSignDate)) {
self.client.SupProtocolDate = self.client.ProtocolSignDate;
} else {
self.client.SupProtocolDate = "";//商品签署日期为空,补充协议二置空
}
}
else {
self.client.SupProtocolDate = "";
}
},
//changeProperClientClass() {
// if (this.client.ProperClientClass == "专业投资者") {
// $('#ef_QuestionnaireScore,#ef_DisbeliefRecord').prop('readonly', true);
// $("#ef_IsEvaluate,#ef_AppropriatenessDegree,#ef_RiskServiceDegree,#ef_AppropriatenessAssessor,#ef_EvaluateOfValidity,#ef_EvaluateDate").attr("disabled", true);
// this.client.AppropriatenessDegree = "";
// this.client.EvaluateDate = "";
// this.client.IsEvaluate = "";
// this.client.RiskServiceDegree = "";
// this.client.EvaluateOfValidity = "";
// this.client.QuestionnaireScore = "";
// this.client.AppropriatenessAssessor = "";
// this.client.DisbeliefRecord = "";
// }
// else {
// $('#ef_EvaluateDate,#ef_QuestionnaireScore,#ef_DisbeliefRecord').prop('readonly', false);
// $("#ef_IsEvaluate,#ef_AppropriatenessDegree,#ef_RiskServiceDegree,#ef_AppropriatenessAssessor,#ef_EvaluateOfValidity,#ef_EvaluateDate").attr("disabled", false);
// }
//},
changeProperClientClass() {
if (this.client.ProperClientClass == "专业投资者") {
$('#ef_QuestionnaireScore,#ef_DisbeliefRecord').prop('readonly', true);
$("#ef_IsEvaluate,#ef_AppropriatenessDegree,#ef_RiskServiceDegree,#ef_AppropriatenessAssessor,#ef_EvaluateOfValidity,#ef_EvaluateDate").attr("disabled", true);
this.client.AppropriatenessDegree = "";
this.client.EvaluateDate = "";
this.client.IsEvaluate = "";
this.client.RiskServiceDegree = "";
this.client.EvaluateOfValidity = "";
this.client.QuestionnaireScore = "";
this.client.AppropriatenessAssessor = "";
this.client.DisbeliefRecord = "";
}
else {
$('#ef_EvaluateDate,#ef_QuestionnaireScore,#ef_DisbeliefRecord').prop('readonly', false);
$("#ef_IsEvaluate,#ef_AppropriatenessDegree,#ef_RiskServiceDegree,#ef_AppropriatenessAssessor,#ef_EvaluateOfValidity,#ef_EvaluateDate").attr("disabled", false);
}
},
displayBankCreditRating() {
//行业包含银行时显示银行信用评级 否则不显示
if (this.client.BusinessType && this.client.BusinessType.indexOf("银行") != -1) {
$('#div_ef_BankCreditRating').css("display", "block");
} else {
$('#div_ef_BankCreditRating').css("display", "none");
}
},
changeClientName(val) {
this.client.Name = val;
},
changeUsccCode(val) {
this.client.UnifiedSocialCreditCode = val;
}
},
components: {
'vue-datepicker': FastVue.vueDatePicker(),
'vue-niceselect': FastVue.vueNiceSelect(),
'vue-number-input': FastVue.vueNumberInput()
},
watch: {
clientJson(newValue, oldValue) {
this.hasChange++;
}
},
mixins: [bankcardVue, dutyVue, dutydirectorVue, fileVue, investorsVue]
});
}
//创建显示视图
function createViewVue() {
window.vue = new Vue({
el: "#viewPanes",
data: {
client: page.client,
isApproval: pageData.isApproval,
viewData: { ...editConfig.selects },
},
mounted() {
$('#myTab').children(":first").children(":first").tab('show');
},
components: {
'vue-datepicker': FastVue.vueDatePicker(),
'vue-niceselect': FastVue.vueNiceSelect(),
'vue-number-input': FastVue.vueNumberInput()
},
mixins: [bankcardVue, dutyVue, dutydirectorVue, fileVue, investorsVue],
methods: {
labelText(fname, label) {
if (fname === 'RegisteredCapital') {
return clientHelper.labelOfRegisteredCapital(this.client);
}
return label;
},
showAssessmentHistoryLog() {
main.open("评估历史记录", "/client/ClientAssessmentHistoryLog?id=" + vue.client.id);
},
showPassword() {
layer.tips(vue.client.ProxyEmailPwd, "#ProxyEmailPwd", { tips: [1, '#e33333'], tipsMore: false });
}
}
});
}
//顶部工具栏管理
function createTopVue() {
window.topVue = new Vue({
el: '#toolbarDiv',
data: {
clientId: page.client.id
},
methods: {
saveClient() {
let client = vue.client;
if (!_.trim(client.Name)) {
return main.alert("客户名称 必须填写");
}
if (!_.trim(client.meta_MainProtocolType)) {
return main.alert("主协议类型 必须填写");
}
if (!_.trim(client.meta_OrganizationType)) {
return main.alert("交易对手方类型 必须填写");
}
if (!_.trim(client.meta_ClientTag)) {
return main.alert("交易对手方标识 必须填写");
}
if (client.meta_OrganizationType === "14" || client.meta_OrganizationType === "15") {
if (!_.trim(client.LEICode)) {
return main.alert("LEI编码 必须填写");
}
} else {
if (!_.trim(client.CounterpartyCode)) {
return main.alert("统一社会信用代码 必须填写");
}
}
if (page.fnameSet.has("EvaluateDate") && client.EvaluateDate && ! /^[0-9]{4}-[0-1]?[0-9]{1}-[0-3]?[0-9]{1}$/.test(client.EvaluateDate)) {
return main.message("请输入正确的评估日期格式");
}
if (page.fnameSet.has("ProtocolSignDate") && client.ProtocolSignDate && ! /^[0-9]{4}-[0-1]?[0-9]{1}-[0-3]?[0-9]{1}$/.test(client.ProtocolSignDate)) {
return main.message("请输入正确的协议签署日期格式");
}
if (client.ApprovalStatus == "审批中") {
return main.alert("当前客户正在审批中,不可进行修改,请等待审批完成后再进行操作!");
}
if (new Array("已开户", "已休眠", "已销户").includes(client.ProcessStatus) && page.clientApprovalProcessCount > 0) {
main.confirm("修改客户信息后该用户需要重新审批,确认修改?", this.ajaxSaveClient.bind(this));
}
else {
this.ajaxSaveClient();
}
},
ajaxSaveClient() {
let self = this;
let client = vue.client;
if (_.trim($("#LicenseValidTime").val()) || $("#clickLongOrShortLicense").text() == "短期") {
if ($("#clickLongOrShortLicense").text() != "长期") {
client.LicenseValidTimeStr = "30001231"
} else {
client.LicenseValidTimeStr = new Date($("#LicenseValidTime").val().substr(0, 10)).Format("yyyyMMMdd");
}
}
let clone = clientHelper.convertToSaveData(_.cloneDeep(client));
var clientSaveReq = { ClientReq: clone, Tags: new Array() };
$(".tag-context .tag-item").each(function (i, v) {
clientSaveReq.Tags.push({ Id: $(v).data("id"), Name: $(v).data("name") });
});
main.post("/client/clientEditJson?enid=" + page.client.EncryptId, clientSaveReq).done(function (resp) {
self.clientId = resp.obj.id;
resp.obj.ProxyEmailPwd = client.ProxyEmailPwd;
window.parent.reloadclient2 && window.parent.reloadclient2();
history.replaceState(null, null, "/client/clienteditV2?enid=" + resp.obj.EncryptId);
Object.assign(client, clientHelper.convertToEditData(resp.obj));
if (page.isNewClient) {
page.isNewClient = false;
setTimeout(() => $('#search_fileTypes').selectpicker({ actionsBox: true }), 500);
}
page.canEditList = true;
vue.hasChange = -1;
}).fail(function () {
main.message("提交失败");
});
},
submitProcess() {
let client = vue.client;
if (!client.id) {
return main.message("请先保存用户基本信息");
}
if (client.ApprovalStatus == "审批中") {
return main.alert("当前客户正在审批中,不可进行修改,请等待审批完成后再进行操作!");
}
if (vue.hasChange > 0) {
return main.message("请先保存修改后再执行此操作");
}
main.post("/AccountOpeningProcess/SubmitProcess", { clientId: client.id }).done(function (resp) {
if (page.isView) {
window.location.href = '/Client/ClientViewV2?enid=' + page.client.EncryptId + "&isApproval=" + pageData.isApproval;
window.parent.reloadclient2 && window.parent.reloadclient2();
} else {
Object.assign(client, clientHelper.convertToEditData(resp.obj));
window.parent.saveClient && window.parent.reloadclient2();
}
}).fail(function () {
main.message('提交失败');
});
},
showOperationHistory() {
main.open("操作历史", "/client/ClientOperationHistory?id=" + vue.client.id);
},
resetPassword() {
main.post("/client/ResetPassword", { clientId: vue.client.id }).fail(function () {
main.message('操作失败');
});
},
openClientFileAudit() {
var url = "/client/ClientFilesAudit/?clientId=" + vue.client.id + "&isApproval=false";
window.open(url, '_blank');
},
showClientLevels() {
window.location.href = '/Client/Clientlevel?clientid=' + page.client.id;
},
reloadClientView() {
window.location.href = '/Client/ClientViewV2?enid=' + page.client.EncryptId + "&isApproval=" + (pageData.isApproval ? false : true);
},
closeMe() {
let self = this;
if (!page.isView) {
if (page.client.ApprovalStatus != "审批中" && page.client.EncryptId && page.client.EncryptId.length > 0) {
main.post("/client/GetIsApprove", { enid: page.client.EncryptId }).done(function (resp) {
debugger;
if (resp.obj) {
main.confirm("信息发生变更,是否保存变更信息?", function () { self.saveClient() }, function () { self.cancelMe() });
} else {
window.layer.closeMe();
return true;
}
}).fail(function () {
main.message('提交失败');
});
return false;
} else {
window.layer.closeMe();
return true;
}
} else {
window.layer.closeMe();
return true;
}
},
cancelMe() {
main.post("/client/CancelApprove", { enid: page.client.EncryptId }).done(function (resp) {
window.layer.closeMe();
return true;
}).fail(function () {
main.message('提交失败');
});
}
},
computed: {
isOpening() {
return !(new Array("已开户", "已休眠", "审批中").includes(vue.client.ProcessStatus));
}
}
});
}
$(function () {
$('body').tooltip({ selector: '.yl-tooltip' });
if (page.isView) {
createViewVue();
} else {
flowMgr.init();
createEditVue();
}
_.trim(page.client.LicenseValidTime) && $("#LicenseValidTime").val(page.client.LicenseValidTime.substring(0, 10));
if (page.client.LicenseValidTimeStr == "30001231") {
$("#LicenseValidTimeStr").show();
$("#LicenseValidTime").hide();
$("#clickLongOrShortLicense").text("短期");
} else {
$("#LicenseValidTimeStr").hide();
$("#LicenseValidTime").show();
$("#clickLongOrShortLicense").text("长期");
}
$("[name=meta_ClientTagDesc]").prop("disabled", "disabled");
$("[name=meta_ClientTag]").change(() => {
$("[name=meta_ClientTagDesc]").get(0).selectedIndex = $('[name=meta_ClientTag] option:selected').index()
page.client.meta_ClientTagDesc = $("[name=meta_ClientTagDesc]").val();
});
if (!page.isNewClient) {
$("[name=meta_ClientTag]").val(page.client.MetaDic.ClientTag);
$("[name=meta_ClientTag]").change();
}
createTopVue();
if (!pageData.isGuoJun) {
$(".showmore").mouseenter(//进入元素
function () {
if ($(this).text()) {
$(this).removeClass("showshort");//移除默认的样式
var classes = $(this).parent().attr('class');
if (classes.indexOf("striped") != -1) {//由于背景色不一样,先检测,再添加不同背景色的样式
$(this).addClass("showallstriped");
}
else {
$(this).addClass("showallno");
}
}
}).mouseleave(function () {//离开元素
if ($(this).text()) {
var classes = $(this).parent().attr('class');
if (classes.indexOf("striped") != -1) {
$(this).removeClass("showallstriped");
}
else {
$(this).removeClass("showallno");
}
$(this).addClass("showshort");
}
});
}
$('.toggle-password').click(function () {
var input = $(this).closest('.input-password').find('input');
if (input.attr('type') == 'password') {
input.attr('type', 'text');
$(this).addClass("glyphicon-eye-open");
$(this).removeClass("glyphicon-eye-close");
} else {
input.attr('type', 'password');
$(this).removeClass("glyphicon-eye-open");
$(this).addClass("glyphicon-eye-close");
}
});
});