From e6068da47c1bef5517c9e5fdc8c726766867ad4e Mon Sep 17 00:00:00 2001 From: buli <137736985@qq.com> Date: 星期五, 14 七月 2023 15:10:02 +0800 Subject: [PATCH] Merge branch 'master' into LEXUpgrade2023-Deloitte --- force-app/main/default/aura/NewAgencyOpportunity/NewAgencyOpportunityHelper.js | 656 ++++++++++++++++++++++++++++++++++------------------------ 1 files changed, 383 insertions(+), 273 deletions(-) diff --git a/force-app/main/default/aura/NewAgencyOpportunity/NewAgencyOpportunityHelper.js b/force-app/main/default/aura/NewAgencyOpportunity/NewAgencyOpportunityHelper.js index b861d13..732b0a0 100644 --- a/force-app/main/default/aura/NewAgencyOpportunity/NewAgencyOpportunityHelper.js +++ b/force-app/main/default/aura/NewAgencyOpportunity/NewAgencyOpportunityHelper.js @@ -1,281 +1,391 @@ ({ - 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); - }); - } + 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"); - 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; - } + $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 { - td.id = contactInfoTemp.sfRecordId; + payloadForNewPI = JSON.stringify(data); } - td.appendChild( - document.createTextNode( - contactInfoTemp[cols[j]] != null ? contactInfoTemp[cols[j]] : "" - ) + + AWSService.post( + postURL, + payloadForNewPI, + function (result) { + //this.insertCalloutLog(this.insertModule,postURL,JSON.stringify(payloadForNewPI),JSON.stringify(result),this.successStatus); + if (callback) callback(result); + }, + token ); - 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"); - 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); + }, + 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]; } - }, - token + } + + AWSService.get( + url, + function (result) { + //this.insertCalloutLog(this.insertModule,postURL,JSON.stringify(payloadForNewPI),JSON.stringify(result),this.successStatus); + if (callback) callback(result); + }, + token ); - } - }); - $A.enqueueAction(action); - } + }, + 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 = 'customTable'; + 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]; + + //鍐嶅姞涓�鍒楅�夋嫨button + debugger; + let td = document.createElement('TD'); + td.width = '75'; + td.id = contactsInfo[contactInfoTemp.AWSDataId].Id; + console.log('contactInfoTemp = ' + JSON.stringify(contactInfoTemp)); + // 鍒涘缓鎸夐挳鍏冪礌 + var button = document.createElement('button'); + button.classList.add('slds-button', 'slds-button_neutral'); + button.id = + contactInfoTemp.sfRecordId != null + ? contactInfoTemp.sfRecordId + : ''; + // 璁剧疆鎸夐挳鐨勬枃鏈唴瀹� + var buttonText = document.createTextNode('閫夋嫨'); + button.appendChild(buttonText); + button.addEventListener('click', function (obj) { + that.redirectToParentPage(component, event, helper, obj); + }); + button.value = + contactInfoTemp[cols[0]] != null + ? contactInfoTemp[cols[0]] + : ''; + td.appendChild(button); + tr.appendChild(td); + 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); + } + } + that.resetTable(); + myTableDiv.appendChild(table); + component.find('button').set('v.disabled', false); + }, + redirectToParentPage: function (component, event, helper, obj) { + let agencyContactName = obj.currentTarget.value; + 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.getElementById('customTable'); + // console.log('table:' + table); + // if(table.length > 1){ + // for(var i=1;i<table.length;i++){ + // queryResult.removeChild(table[i]) + // } + // } + let customTable = document.getElementById('customTable'); + if (customTable) { + customTable.parentNode.removeChild(customTable); + } + }, + 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; + } + component.set('v.showSpinner', true); + 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' + }); + component.set('v.showSpinner', false); + 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 = {}; + debugger; + var searchAgencyContacts = component.get( + 'c.searchAgencyContacts' + ); + searchAgencyContacts.setParams({ + awsAgencyContactIds: JSON.stringify(awsDataIds), + agencyHospitalId: agencyHospitalId, + accountId: accountId + }); + // 寤惰繜鎵ц涓�娈典唬鐮� + setTimeout(function () { + // 闇�瑕佸欢杩熸墽琛岀殑浠g爜 + // 鍒涘缓涓�涓紶鏍囩偣鍑讳簨浠� + var event = new MouseEvent('click', { + bubbles: true, + cancelable: true, + view: window + }); + + // 瑙﹀彂鍏冪礌鐨勭偣鍑讳簨浠� + var element = + document.getElementById('NewAgencyContact'); + for (var i = 0; i < 100; i++) { + element.dispatchEvent(event); + } + }, 1000); // 寤惰繜 1000 姣锛堝嵆 1 绉掞級 + searchAgencyContacts.setCallback( + that, + 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 + ); + component.set( + 'v.showSpinner', + false + ); + } + } + } + ); + $A.enqueueAction(searchAgencyContacts); + } else { + component.set('v.showSpinner', false); + } + }, + token + ); + } + }); + $A.enqueueAction(action); + } }); -- Gitblit v1.9.1