({ 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); if (data.getState() == "SUCCESS") { var rv = data.getReturnValue(); console.log(rv); if (rv.IsSuccess) { debugger; let layout = JSON.parse(rv.Data.layout); let fields = rv.Data.fields; let staticResource = JSON.parse(rv.Data.staticResource); let section_names = []; // let awsData = rv.Data.awsDataIds; 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) { 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 { 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); 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" }); } } ); }, 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; } } } } // 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); } });