({ 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 record_type_id = ''; let pageref = component.get('v.pageReference'); if (!record_type_id && pageref) { record_type_id = pageref.state.recordTypeId ? pageref.state.recordTypeId : ''; } let isClone = component.get('v.isClone'); if (!rid || isClone) { component.set('v.title', $A.get('$Label.c.New') + '经销商询价'); component.set('v.recordTypeId', record_type_id); } else { component.set('v.title', $A.get('$Label.c.Edit') + '经销商询价'); } console.log('rid: ' + rid); console.log('pid: ' + pid); console.log('record_type_id: ' + record_type_id); component.set('v.showSpinner', true); helper.CallBackAction( component, 'Init', { rid: rid, pid: pid, //rid : component.get('v.recordId'), record_type_id: record_type_id }, function (data) { console.log('data: ' + data); var rv = data.getReturnValue(); console.log('rv:' + rv); console.log('rv.Data:' + rv.Data); console.log('rv.IsSuccess:' + rv.IsSuccess); if (data.getState() == 'SUCCESS') { if (rv.IsSuccess) { debugger; let layout = JSON.parse(rv.Data.layout); debugger; let fields = rv.Data.fields; debugger; let staticResource = JSON.parse(rv.Data.staticResource); debugger; let section_names = layout.map((s) => s.label); debugger; // let awsData = rv.Data.awsDataIds; // section_names = layout.map(s=>s.label); component.set('v.section_names', section_names); component.set('v.layout', layout); component.set('v.fields', fields); component.set('v.staticResource', staticResource); debugger; 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) { debugger; console.log('rv.Data.data = ' + rv.Data.data); 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.layout',layout); component.set('v.record_data', rv.Data.data); if (rv.Data.data.Agency_Contact__r) { if ( rv.Data.data.Agency_Contact__r .AWS_Data_Id__c ) { helper.AwsGet( staticResource.queryUrl, { dataId: rv.Data.data .Agency_Contact__r .AWS_Data_Id__c }, function (data) { console.log('data = ' + data); if (data.object) { component.set( 'v.ac_name', data.object.name ); } }, staticResource.token ); } } // }, staticResource.token); } else { debugger; console.log('rv.Data.data = ' + rv.Data.data); console.log('layout = ' + layout); 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; } } } } debugger; // component.set('v.layout',layout); } // component.set('v.fields',fields); // component.set('v.staticResource',staticResource); //component.set("v.showSpinner", false); } else { component.set('v.showSpinner', false); helper.ShowToast({ message: rv.Message, type: 'error' }); } } else { component.set('v.showSpinner', false); 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 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 payloadPi = {}; if (record_id && !isClone) { 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); debugger; let data = {}; if (record_id && !isClone) { data.Id = record_id; } for (let s of layout) { for (let c of s.layoutColumns) { for (let item of c.layoutItems) { if (item.field && item.behavior != 'Readonly') { data[item.field] = item.value; } } } } let x = 1; helper.CallBackAction( component, 'Save', { data: data, transId: '1', recordTypeId: record_type_id }, 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.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' }); } } else { helper.ShowToast({ message: 'Init error', type: 'error' }); } } ); }, cancelClick: function (component, event, helper) { $A.get('e.force:closeQuickAction').fire(); //component.set("v.showNewAgencyContact", false); }, searchAgencyContact: function (component, event, helper) { component.find('button').set('v.disabled', true); helper.resetTable(); helper.preparePayloadForSearchAgencyContact(component, event, helper); }, initContactTable: function (component, event, helper) { let cols = ['Name', 'AgencyHospital', 'DoctorDivision1', 'Type']; let contactInfoList = []; let awsDataIds = []; let data = component.get('v.result'); if (data.object) { for (var i = 0; i < data.object.length; i++) { if (data.object[i].dataId) { let contactInfo = new Object(); //需要修改 contactInfo.Name = data.object[i].name; contactInfo.DoctorDivision1 = data.object[i].doctorDivision1; contactInfo.AWSDataId = data.object[i].dataId; contactInfo.Type = data.object[i].type; contactInfo.pi = true; awsDataIds.push(contactInfo.AWSDataId); contactInfo.sfRecordId = ''; contactInfoList.push(contactInfo); } } } let AWSIdToSFIdMapValue = {}; }, openModel: function (component, event, helper) { let layout = component.get('v.layout'); for (let s of layout) { for (let c of s.layoutColumns) { for (let item of c.layoutItems) { if (item.field == 'Agency_Hospital__c' && !item.value) { console.log('item.value = ' + item.value); helper.ShowToast({ message: '请先选择经销商医院', type: 'warning' }); return; } else if ( item.field == 'Agency_Hospital__c' && item.value ) { component.set('v.agencyHospitalId', item.value); console.log( 'v.agencyHospitalId item.value = ' + item.value ); } } } } // Set isModalOpen true component.set('v.isModalOpen', true); component.find('button').set('v.disabled', true); helper.preparePayloadForSearchAgencyContact(component, event, helper); }, closeModel: function (component, event, helper) { // Set isModalOpen false component.set('v.isModalOpen', false); }, saveDetails: function (component, event, helper) { //do something component.set('v.isModalOpen', false); }, showNewAgency: function (component, event, helper) { //do something component.set('v.showNewAgencyContact', true); }, closeAgencyContact: function (component, event, helper) { var message = event.getParam('showNewAgencyContact'); component.set('v.showNewAgencyContact', message); component.find('button').set('v.disabled', true); helper.resetTable(); helper.preparePayloadForSearchAgencyContact(component, event, helper); } });