({
|
doInit: function (component, event, helper) {
|
let rid = component.get('v.recordId');
|
let pid = null;
|
if (!rid) {
|
pid = window.location.href.replace('https://', '').split('/')[4];
|
}
|
let isClone = component.get('v.isClone');
|
if (!rid || isClone) {
|
component.set('v.title', $A.get('$Label.c.New') + '.客户人员');
|
} else {
|
component.set('v.title', $A.get('$Label.c.Edit') + '.客户人员');
|
}
|
|
let record_type_id = null;
|
let pageref = component.get('v.pageReference');
|
if (!record_type_id && pageref) {
|
record_type_id = pageref.state.recordTypeId;
|
}
|
component.set('v.showSpinner', true);
|
helper.CallBackAction(
|
component,
|
'Init',
|
{
|
rid: rid,
|
pid: null,
|
//rid : component.get('v.recordId'),
|
record_type_id: record_type_id
|
},
|
function (data) {
|
debugger;
|
console.log('data = ' + JSON.stringify(data));
|
if (data.getState() == 'SUCCESS') {
|
var rv = data.getReturnValue();
|
console.log(rv);
|
if (rv.IsSuccess) {
|
let layout = JSON.parse(rv.Data.layout);
|
let fields = rv.Data.fields;
|
let staticResource = JSON.parse(rv.Data.staticResource);
|
let staticResourceV2 = JSON.parse(
|
rv.Data.staticResourceV2
|
);
|
let section_names = [];
|
section_names = layout.map((s) => s.label);
|
component.set('v.section_names', section_names);
|
|
let m = {};
|
for (let f of staticResource.PIDetails) {
|
m[f.SF_Field_API_Name__c] = f;
|
}
|
component.set('v.pi_fields_map', m);
|
|
var agencyHospitalId =
|
component.get('v.agencyHospitalId');
|
console.log('agencyHospitalId = ' + agencyHospitalId);
|
if (
|
rv.Data &&
|
rv.Data.data &&
|
rv.Data.data.AWS_Data_Id__c
|
) {
|
helper.AwsGet(
|
staticResource.queryUrl,
|
{
|
dataId: rv.Data.data.AWS_Data_Id__c
|
},
|
function (data) {
|
console.log('data = ' + data);
|
|
for (let f of staticResource.PIDetails) {
|
if (
|
data.object &&
|
data.object.hasOwnProperty(
|
f.AWS_Field_API__c
|
)
|
) {
|
rv.Data.data[
|
f.SF_Field_API_Name__c
|
] = data.object[f.AWS_Field_API__c];
|
if (
|
data.object.hasOwnProperty(
|
f.AWS_Encrypted_Field_API__c
|
) &&
|
data.object[
|
f.AWS_Encrypted_Field_API__c
|
]
|
) {
|
rv.Data.data[
|
f.SF_Field_Encrypted_API__c
|
] =
|
data.object[
|
f.AWS_Encrypted_Field_API__c
|
];
|
}
|
}
|
}
|
|
for (let s of layout) {
|
for (let c of s.layoutColumns) {
|
for (let item of c.layoutItems) {
|
if (
|
rv.Data.data.hasOwnProperty(
|
item.field
|
)
|
) {
|
item.value =
|
rv.Data.data[
|
item.field
|
];
|
}
|
if (
|
fields.hasOwnProperty(
|
item.field
|
)
|
) {
|
item.fi =
|
fields[item.field];
|
}
|
if (
|
item.field ==
|
'Agency_Hospital__c'
|
) {
|
item.value =
|
agencyHospitalId;
|
}
|
}
|
}
|
}
|
|
component.set(
|
'v.record_data',
|
rv.Data.data
|
);
|
component.set('v.layout', layout);
|
},
|
staticResource.token
|
);
|
} else {
|
for (let s of layout) {
|
for (let c of s.layoutColumns) {
|
for (let item of c.layoutItems) {
|
if (
|
rv.Data &&
|
fields.hasOwnProperty(item.field) &&
|
fields[item.field].References &&
|
fields[item.field].References.map(
|
(m) => m.value
|
).indexOf(rv.Data.pidType) > -1
|
) {
|
item.value = pid;
|
}
|
if (
|
item.field == 'Agency_Hospital__c'
|
) {
|
item.value = agencyHospitalId;
|
}
|
}
|
}
|
}
|
component.set('v.layout', layout);
|
}
|
|
component.set('v.fields', fields);
|
component.set('v.staticResource', staticResource);
|
component.set('v.staticResourceV2', staticResourceV2);
|
} else {
|
helper.ShowToast({
|
message: rv.Message,
|
type: 'error'
|
});
|
}
|
} else {
|
helper.ShowToast({
|
message: 'Init error',
|
type: 'error'
|
});
|
}
|
}
|
);
|
},
|
handleLoad: function (component, event, helper) {
|
console.log('recordEditForm handleSuccess');
|
component.set('v.showSpinner', false);
|
},
|
saveClick: function (component, event, helper) {
|
let staticResource = component.get('v.staticResource');
|
//let staticResourceV2 = component.get('v.staticResourceV2');
|
let record_id = component.get('v.recordId');
|
let record_type_id = component.get('v.recordTypeId');
|
|
let isClone = component.get('v.isClone');
|
let url = staticResource.newUrl;
|
//let urlV2 = staticResourceV2.newUrl;
|
let payloadPi = {};
|
if (record_id && !isClone) {
|
url = staticResource.updateUrl;
|
//urlV2 = staticResourceV2.updateUrl;
|
payloadPi['dataId'] = component.get('v.record_data').AWS_Data_Id__c;
|
}
|
let layout = component.get('v.layout');
|
|
let pi_fields_map = component.get('v.pi_fields_map');
|
|
let hospitalId = '';
|
for (let s of layout) {
|
for (let c of s.layoutColumns) {
|
for (let item of c.layoutItems) {
|
if (item.field == 'Agency_Hospital__c') {
|
hospitalId = item.value;
|
}
|
if (pi_fields_map.hasOwnProperty(item.field)) {
|
payloadPi[pi_fields_map[item.field].AWS_Field_API__c] =
|
item.value;
|
}
|
|
if (item.behavior == 'Required' && !item.value) {
|
let fs = component.find('field');
|
for (let fi in fs) {
|
let f = fs[fi];
|
if (!f.get('v.value')) {
|
f.reset();
|
}
|
}
|
return;
|
}
|
}
|
}
|
}
|
|
component.set('v.showSpinner', true);
|
//zhj MEBG新方案改造 2022-11-29 start
|
debugger;
|
let hospitalName = '';
|
//调用后端searchAgencyDataId方法查询出医院下面所有客户人员dataid
|
helper.CallBackAction(
|
component,
|
'searchAgencyDataId',
|
{
|
hospitalId: hospitalId
|
},
|
function (data) {
|
if (data.getState() == 'SUCCESS') {
|
var data = data.getReturnValue();
|
if (data.IsSuccess == true) {
|
let agencyContactIds = '';
|
if (
|
data.Message == '' &&
|
data.Data &&
|
data.Data.length > 0
|
) {
|
hospitalName = data.Data[0].Agency_Hospital__r.Name;
|
for (var i = 0; i < data.Data.length; i++) {
|
if (data.Data[i].AWS_Data_Id__c)
|
agencyContactIds +=
|
',' + data.Data[i].AWS_Data_Id__c;
|
}
|
agencyContactIds = agencyContactIds.substring(1);
|
payloadPi['agencyContactIds'] = agencyContactIds;
|
} else {
|
payloadPi['agencyContactIds'] = agencyContactIds;
|
}
|
helper.AwsPost(
|
url + 'V2',
|
[payloadPi],
|
function (result) {
|
//如果返回是129表示重复了,报错
|
if (result.status == '129') {
|
helper.ShowToast({
|
message:
|
'该客户人员名字已存在,在' +
|
hospitalName +
|
'医院,请修改',
|
type: 'error'
|
});
|
component.set('v.showSpinner', false);
|
return;
|
}
|
|
let obj = result.object[0];
|
let data = {};
|
if (record_id && !isClone) {
|
data.Id = record_id;
|
} else {
|
data.AWS_Data_Id__c = obj.dataId;
|
}
|
for (let s of layout) {
|
for (let c of s.layoutColumns) {
|
for (let item of c.layoutItems) {
|
if (
|
item.field &&
|
item.behavior != 'Readonly'
|
) {
|
if (
|
pi_fields_map.hasOwnProperty(
|
item.field
|
)
|
) {
|
data[item.field] =
|
obj[
|
pi_fields_map[
|
item.field
|
].AWS_Field_API__c
|
];
|
//data[pi_fields_map[item.field].SF_Field_Encrypted_API__c] = obj[pi_fields_map[item.field].AWS_Encrypted_Field_API__c];
|
} else {
|
data[item.field] =
|
item.value;
|
}
|
}
|
}
|
}
|
}
|
|
$A.getCallback(function () {
|
helper.CallBackAction(
|
component,
|
'Save',
|
{
|
data: data,
|
transId: result.txId
|
},
|
function (data) {
|
component.set(
|
'v.showSpinner',
|
false
|
);
|
if (data.getState() == 'SUCCESS') {
|
var rv = data.getReturnValue();
|
console.log(rv);
|
var sfId = null;
|
if (rv.IsSuccess) {
|
sfId = rv.Data.recordId;
|
}
|
|
helper.AwsPost(
|
staticResource.transactionUrl,
|
{
|
txId: result.txId,
|
sfRecordId: sfId,
|
isSuccess: rv.IsSuccess
|
? 1
|
: 0
|
},
|
function (data) {
|
if (rv.IsSuccess) {
|
helper.ShowToast({
|
message: '成功',
|
type: 'success'
|
});
|
helper.closeAgencyContact(
|
component
|
);
|
|
// if (record_id && !isClone){
|
|
// helper.closeAgencyContact(component);
|
// //$A.get('e.force:refreshView').fire();
|
// }else{
|
// var sObjectEvent = $A.get("e.force:navigateToSObject");
|
// sObjectEvent.setParams({
|
// "recordId": sfId
|
// })
|
// sObjectEvent.fire();
|
// }
|
} else {
|
helper.ShowToast({
|
message:
|
rv.Message,
|
type: 'error'
|
});
|
}
|
},
|
staticResource.token
|
);
|
} else {
|
helper.ShowToast({
|
message: 'Init error',
|
type: 'error'
|
});
|
}
|
}
|
);
|
})();
|
},
|
staticResource.token
|
);
|
} else {
|
helper.ShowToast({
|
message: data.message,
|
type: 'error'
|
});
|
component.set('v.showSpinner', false);
|
}
|
} else {
|
helper.ShowToast({
|
message: 'searchAgency失败',
|
type: 'error'
|
});
|
component.set('v.showSpinner', false);
|
}
|
}
|
);
|
//zhj MEBG新方案改造 2022-11-29 end
|
// helper.AwsPost(urlV2, [payloadPi], function(result){
|
|
// let obj = result.object[0];
|
// let data = {};
|
// if(record_id && !isClone){
|
// data.Id = record_id;
|
// }else{
|
// data.AWS_Data_Id__c = obj.dataId;
|
// }
|
// for(let s of layout){
|
// for(let c of s.layoutColumns){
|
// for(let item of c.layoutItems){
|
// if(item.field && item.behavior != "Readonly"){
|
// if(pi_fields_map.hasOwnProperty(item.field)){
|
// data[item.field] = obj[pi_fields_map[item.field].AWS_Field_API__c];
|
// data[pi_fields_map[item.field].SF_Field_Encrypted_API__c] = obj[pi_fields_map[item.field].AWS_Encrypted_Field_API__c];
|
// }else{
|
// data[item.field] = item.value;
|
// }
|
// }
|
|
// }
|
// }
|
// }
|
|
// $A.getCallback(function(){
|
// helper.CallBackAction(component,'Save',{
|
// data : data,
|
// transId : result.txId
|
// },function(data){
|
// component.set("v.showSpinner", false);
|
// if(data.getState() == "SUCCESS"){
|
// var rv = data.getReturnValue();
|
// console.log(rv);
|
// var sfId = null;
|
// if(rv.IsSuccess){
|
// sfId = rv.Data.recordId;
|
// }
|
|
// helper.AwsPost(staticResource.transactionUrl,{
|
// txId: result.txId,
|
// sfRecordId:sfId,
|
// isSuccess: rv.IsSuccess ? 1 : 0
|
// },function(data){
|
// if(rv.IsSuccess){
|
// helper.ShowToast({
|
// "message" : "成功",
|
// "type" : "success"
|
// });
|
// helper.closeAgencyContact(component);
|
|
// // if (record_id && !isClone){
|
|
// // helper.closeAgencyContact(component);
|
// // //$A.get('e.force:refreshView').fire();
|
// // }else{
|
// // var sObjectEvent = $A.get("e.force:navigateToSObject");
|
// // sObjectEvent.setParams({
|
// // "recordId": sfId
|
// // })
|
// // sObjectEvent.fire();
|
// // }
|
// }else{
|
// helper.ShowToast({
|
// "message" : rv.Message,
|
// "type" : "error"
|
// });
|
// }
|
// },staticResource.token);
|
|
// }else{
|
|
// helper.ShowToast({
|
// "message" : "Init error",
|
// "type" : "error"
|
// });
|
|
// }
|
// });
|
// })();
|
|
// }, staticResource.token);
|
},
|
cancelClick: function (component, event, helper) {
|
helper.closeAgencyContact(component);
|
},
|
|
scriptsLoaded: function (component, event, helper) {}
|
});
|