From 80a3f59e2d3df07805bc67e329300b8de90a5b3a Mon Sep 17 00:00:00 2001 From: buli <137736985@qq.com> Date: 星期二, 11 七月 2023 14:13:08 +0800 Subject: [PATCH] Merge branch 'LEXCommunityLiJun' into LEXUpgrade2023-Deloitte --- force-app/main/default/aura/NewAgencyOpportunity/NewAgencyOpportunityController.js | 334 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 334 insertions(+), 0 deletions(-) diff --git a/force-app/main/default/aura/NewAgencyOpportunity/NewAgencyOpportunityController.js b/force-app/main/default/aura/NewAgencyOpportunity/NewAgencyOpportunityController.js new file mode 100644 index 0000000..671f8e3 --- /dev/null +++ b/force-app/main/default/aura/NewAgencyOpportunity/NewAgencyOpportunityController.js @@ -0,0 +1,334 @@ +({ + 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' + }); + } + } + ); + }, + 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); + } +}); -- Gitblit v1.9.1