| ({ | 
|     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; | 
|                     } | 
|   | 
|                     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); | 
|         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){} | 
| }) |