From 0c4796706fc9473d069b620321a54b20a119906c Mon Sep 17 00:00:00 2001 From: buli <137736985@qq.com> Date: 星期二, 11 七月 2023 14:16:44 +0800 Subject: [PATCH] Merge branch 'LEXUpgrade2023-Deloitte' --- force-app/main/default/aura/NewAgencyOpportunity/NewAgencyOpportunityHelper.js | 341 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 341 insertions(+), 0 deletions(-) diff --git a/force-app/main/default/aura/NewAgencyOpportunity/NewAgencyOpportunityHelper.js b/force-app/main/default/aura/NewAgencyOpportunity/NewAgencyOpportunityHelper.js new file mode 100644 index 0000000..6377482 --- /dev/null +++ b/force-app/main/default/aura/NewAgencyOpportunity/NewAgencyOpportunityHelper.js @@ -0,0 +1,341 @@ +({ + CallBackAction: function (component, action_name, para, callback) { + var action = component.get( + 'c.' + action_name.trimStart().replace('c.', '') + ); + if (para) { + action.setParams(para); + } + if (callback) { + action.setCallback(this, function (data) { + callback(data); + }); + } + + $A.enqueueAction(action); + }, + ShowToast: function (paras) { + var toastEvent = $A.get('e.force:showToast'); + toastEvent.setParams(paras); + toastEvent.fire(); + }, + AwsPost: function (postURL, data, callback, token) { + let payloadForNewPI = ''; + if (typeof data == 'string') { + payloadForNewPI = data; + } else { + payloadForNewPI = JSON.stringify(data); + } + + AWSService.post( + postURL, + payloadForNewPI, + function (result) { + //this.insertCalloutLog(this.insertModule,postURL,JSON.stringify(payloadForNewPI),JSON.stringify(result),this.successStatus); + if (callback) callback(result); + }, + token + ); + }, + AwsGet: function (url, data, callback, token) { + if (typeof data == 'string') { + url += data; + } else { + let i = 0; + for (let p in data) { + url += i++ ? '&' : '?'; + url += p + '=' + data[p]; + } + } + + AWSService.get( + url, + function (result) { + //this.insertCalloutLog(this.insertModule,postURL,JSON.stringify(payloadForNewPI),JSON.stringify(result),this.successStatus); + if (callback) callback(result); + }, + token + ); + }, + refreshTable: function ( + component, + event, + helper, + cols, + contactInfoList, + contactsInfo + ) { + let that = this; + let myTableDiv = document.getElementById('QueryResult'); + let table = document.createElement('TABLE'); + table.border = '1'; + table.id = 'table'; + table.setAttribute( + 'class', + 'slds-table slds-table_cell-buffer slds-table_bordered' + ); + let tableBody = document.createElement('TBODY'); + table.appendChild(tableBody); + let headerTR = document.createElement('TR'); + headerTR.setAttribute('class', 'slds-line-height_reset'); + let colsHeader = ['濮撳悕', '鍖婚櫌', '鍖荤敓鍖哄垎(鑱屽姟)', '鍒嗙被']; + tableBody.appendChild(headerTR); + for (let i = 0; i < colsHeader.length; i++) { + let td = document.createElement('TH'); + td.width = '75'; + td.setAttribute('class', 'slds-truncate slds-border_right'); + td.appendChild(document.createTextNode(colsHeader[i])); + headerTR.appendChild(td); + } + //3. Init the AWS data + for (let i = 0; i < contactInfoList.length; i++) { + let tr = document.createElement('TR'); + tableBody.appendChild(tr); + let contactInfoTemp = contactInfoList[i]; + for (let j = 0; j < cols.length; j++) { + let td = document.createElement('TD'); + td.width = '75'; + if (contactInfoTemp.pi) { + if ( + !contactsInfo.hasOwnProperty(contactInfoTemp.AWSDataId) + ) { + continue; + } + if (j == 0 && contactsInfo[contactInfoTemp.AWSDataId]) { + td.id = contactsInfo[contactInfoTemp.AWSDataId].Id; + } + } else { + td.id = contactInfoTemp.sfRecordId; + } + td.appendChild( + document.createTextNode( + contactInfoTemp[cols[j]] != null + ? contactInfoTemp[cols[j]] + : '' + ) + ); + if (cols[j] == 'Name') { + td.addEventListener('click', function (obj) { + that.redirectToParentPage( + component, + event, + helper, + obj + ); + }); + } + tr.appendChild(td); + } + } + myTableDiv.appendChild(table); + component.find('button').set('v.disabled', false); + }, + redirectToParentPage: function (component, event, helper, obj) { + let agencyContactName = obj.currentTarget.innerText; + let id = obj.currentTarget.id; + component.set('v.ac_name', agencyContactName); + 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_Contact__c') { + item.value = id; + } + } + } + } + component.set('v.isModalOpen', false); + }, + resetTable: function () { + let queryResult = document.getElementById('QueryResult'); + let table = document.getElementsByTagName('table'); + debugger; + console.log('table:' + table); + debugger; + if (table.length > 1) { + for (var i = 1; i < table.length; i++) { + queryResult.removeChild(table[i]); + } + } + }, + preparePayloadForSearchAgencyContact: function (component, event, helper) { + let that = this; + let agencyHospitalId = ''; + let accountId = ''; + 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') { + agencyHospitalId = item.value; + } + if (item.field == 'Account_Opp__c') { + accountId = item.value; + } + } + } + } + var action = component.get('c.getAWSDataIds'); + action.setParams({ + agencyHospitalId: agencyHospitalId, + accountId: accountId + }); + action.setCallback(this, function (response) { + var state = response.getState(); + if (state == 'SUCCESS') { + var rv = response.getReturnValue(); + if (rv.Data.length == 0) { + component.find('button').set('v.disabled', false); + helper.ShowToast({ + message: '璇ョ粡閿�鍟嗗尰闄笅闈㈡病鏈夊鎴蜂汉鍛�', + type: 'warning' + }); + return; + } + let searchPayload = new Object(); + let searchAgencyContactName = component.get('v.searchKeyWord'); + searchPayload.dataIds = rv.Data; + searchPayload.name = searchAgencyContactName; + component.set('v.contactAWSIds', rv.Data); + let staticResource = component.get('v.staticResource'); + let url = staticResource.searchUrl; + let token = staticResource.token; + this.AwsPost( + url, + searchPayload, + function (data) { + if (data.success) { + let cols = [ + 'Name', + 'AgencyHospital', + 'DoctorDivision1', + 'Type' + ]; + let contactInfoList = []; + let awsDataIds = []; + if (data.object.length == 0) { + component + .find('button') + .set('v.disabled', false); + that.ShowToast({ + message: '娌℃湁鏌ヨ鍒拌瀹㈡埛浜哄憳', + type: 'warning' + }); + return; + } + 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.AgencyHospital = ''; + 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 = {}; + var searchAgencyContacts = component.get( + 'c.searchAgencyContacts' + ); + searchAgencyContacts.setParams({ + awsAgencyContactIds: JSON.stringify(awsDataIds), + agencyHospitalId: agencyHospitalId, + accountId: accountId + }); + searchAgencyContacts.setCallback( + this, + function (response) { + var state = response.getState(); + if (state == 'SUCCESS') { + var rv = response.getReturnValue(); + if (rv.IsSuccess) { + let contactsInfo = ''; + if (rv.Data) { + contactsInfo = JSON.parse( + rv.Data.replace( + /("\;)/g, + '"' + ) + ); + if ( + Object.keys(contactsInfo) + .length > 0 + ) { + for ( + let i = 0; + i < + contactInfoList.length; + i++ + ) { + let contactFromSF = + contactsInfo[ + contactInfoList[ + i + ]['AWSDataId'] + ]; + if (contactFromSF) { + contactInfoList[ + i + ].sfRecordId = + contactFromSF[ + 'Id' + ]; + if ( + contactFromSF[ + 'Agency_Hospital__r' + ] + ) { + contactInfoList[ + i + ].AgencyHospital = + contactFromSF[ + 'Agency_Hospital__r' + ]['Name']; + } + if ( + contactFromSF[ + 'Department_Class__r' + ] + ) { + contactInfoList[ + i + ].AgencyHospital = + contactFromSF[ + 'Department_Class__r' + ]['Parent'][ + 'Name' + ]; + } + } + } + } + } + that.refreshTable( + component, + event, + helper, + cols, + contactInfoList, + contactsInfo + ); + } + } + } + ); + $A.enqueueAction(searchAgencyContacts); + } + }, + token + ); + } + }); + $A.enqueueAction(action); + } +}); -- Gitblit v1.9.1