({
|
doInit : function(component, event, helper) {
|
let rid = component.get('v.recordId');
|
let pid = null;
|
if(!rid){
|
pid = window.location.href.replace("https://","").split("/")[4];
|
}
|
|
component.set("v.showSpinner", true);
|
helper.CallBackAction(component,'Init',{
|
rid : rid,
|
pid : pid,
|
//rid : component.get('v.recordId'),
|
record_type_id : component.get("v.pageReference").state.recordTypeId,
|
},function(data){
|
component.set("v.showSpinner", false);
|
|
|
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 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);
|
|
|
|
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];
|
}
|
}
|
}
|
}
|
|
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;
|
}
|
}
|
}
|
}
|
component.set('v.layout',layout);
|
}
|
|
|
component.set('v.fields',fields);
|
component.set('v.staticResource',staticResource);
|
}else{
|
helper.ShowToast({
|
"message" : rv.Message,
|
"type" : "error"
|
});
|
}
|
|
}else{
|
|
helper.ShowToast({
|
"message" : "Init error",
|
"type" : "error"
|
});
|
|
}
|
});
|
},
|
saveClick : function(component, event, helper){
|
|
let staticResource = component.get('v.staticResource');
|
let record_id = component.get('v.recordId');
|
let url = staticResource.newUrl;
|
let payloadPi = {};
|
if (record_id) {
|
url = staticResource.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');
|
|
for(let s of layout){
|
for(let c of s.layoutColumns){
|
for(let item of c.layoutItems){
|
if(pi_fields_map.hasOwnProperty(item.field)){
|
|
payloadPi[pi_fields_map[item.field].AWS_Field_API__c] = item.value;
|
}
|
}
|
}
|
}
|
|
component.set("v.showSpinner", true);
|
helper.AwsPost(url, [payloadPi], function(result){
|
|
let obj = result.object[0];
|
let data = {};
|
if(record_id){
|
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 = 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"
|
});
|
|
if (record_id){
|
|
$A.get("e.force:closeQuickAction").fire();
|
$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){
|
$A.get("e.force:closeQuickAction").fire();
|
},
|
|
scriptsLoaded : function(component, event, helper){}
|
})
|