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/pages/SearchContactPage.page | 145 +++++++++++++++++++++++++++++++++-------------- 1 files changed, 101 insertions(+), 44 deletions(-) diff --git a/force-app/main/default/pages/SearchContactPage.page b/force-app/main/default/pages/SearchContactPage.page index 67cb3b9..4359803 100644 --- a/force-app/main/default/pages/SearchContactPage.page +++ b/force-app/main/default/pages/SearchContactPage.page @@ -1,5 +1,9 @@ -<apex:page controller="SearchContactController" showHeader="false" id="page"> +<apex:page controller="SearchContactController" showHeader="false" id="page" lightningStylesheets="true"> + <apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}" /> <apex:includeScript value="{! URLFOR($Resource.AWSService, 'AWSService.js') }" /> + <apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}" /> + <apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}" /> + <apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}" /> <head> </head> @@ -19,16 +23,16 @@ var staticResources = JSON.parse('{!staticResource}'); var contactAWSIds = JSON.parse('{!contactAWSIds}'); var contactsInfo = JSON.parse('{!contactsInfo}'); - var searchContactName = ''; + var searchKeyWord = '{!searchKeyWord}'; + var searchContactName = searchKeyWord; queryLeadFromAWS(); function searchAWSContact(){ - console.log('Search process!'); - //1. reset table; + //1. reset table; + blockme(); resetTable(); //2. get contact name value searchContactName = document.getElementById('page:form:lksrch').value; queryLeadFromAWS(); - } function resetTable(){ let queryResult = document.getElementById('QueryResult'); @@ -46,22 +50,28 @@ function queryLeadFromAWS() { //1. Prepare the payload for contact search let requestSearchPayload = preparePayloadForSearchContact(); - console.log('request payload body:'+requestSearchPayload); //2. Invoke AWS Service - fetch(staticResources.searchUrl, { - method: 'POST', - body: requestSearchPayload, - headers: { - 'Content-Type': 'application/json', - 'pi-token': staticResources.token - } - }).then((data) => { - return data.json(); - }).then((result) => { - if(result.object&&result.object.length>0){ - initContactTable(result); - } - }) + // fetch(staticResources.searchUrl, { + // method: 'POST', + // body: requestSearchPayload, + // headers: { + // 'Content-Type': 'application/json', + // 'pi-token': staticResources.token + // } + // }).then((data) => { + // return data.json(); + // }).then((result) => { + // if(result.object&&result.object.length>0){ + // initContactTable(result); + // } + // }) + let queryBackContactName = function queryBackContactName(result){ + // if(result.object){ + // initContactTable(result); + // } + initContactTable(result); + }; + AWSService.search(staticResources.searchUrl,requestSearchPayload,queryBackContactName,staticResources.token) } function redirectToParentPage(obj) { @@ -73,8 +83,19 @@ let contactInfo = new Object(); contactInfo.Name = obj.currentTarget.innerText; contactInfo.ContactId = obj.currentTarget.id; + + //2022-5-7 yjk 澧炲姞閭銆佹墜鏈哄彿 + var tdNodes = obj.currentTarget.parentNode.childNodes; + var email = tdNodes[2].innerText; + + var mobile = tdNodes[4].innerText; + var phone = mobile? mobile :tdNodes[3].innerText; + contactInfo.email = email; + contactInfo.phone = phone; var selectedContactNode = winMain.document.getElementById('{!JSENCODE($CurrentPage.parameters.contactId)}'); selectedContactNode.value = JSON.stringify(contactInfo); + + closeWindow(); } @@ -94,11 +115,12 @@ let tableBody = document.createElement('TBODY'); table.appendChild(tableBody); let headerTR = document.createElement('TR'); + let colsHeader = ['濮撳悕','瀹㈡埛鍚嶇О','閭', '鐢佃瘽','鎵嬫満鍙�']; tableBody.appendChild(headerTR); - for (let i = 0; i < cols.length; i++) { + for (let i = 0; i < colsHeader.length; i++) { let td = document.createElement('TH'); td.width = '75'; - td.appendChild(document.createTextNode(cols[i])); + td.appendChild(document.createTextNode(colsHeader[i])); headerTR.appendChild(td); } //3. Init the AWS data @@ -109,13 +131,17 @@ for (let j = 0; j < cols.length; j++) { let td = document.createElement('TD'); td.width = '75'; - if (!contactsInfo.hasOwnProperty(contactInfoTemp.AWSDataId)) { - continue; - } - if(j == 0){ - td.id = contactsInfo[contactInfoTemp.AWSDataId].Id; - } - td.appendChild(document.createTextNode(contactInfoTemp[cols[j]])); + 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) { redirectToParentPage(obj); @@ -125,33 +151,64 @@ } } myTableDiv.appendChild(table); + unblockUI(); } function initContactTable(data) { - let cols = ['Name', 'Email', 'Phone']; + let cols = ['Name','AccountName', 'Email', 'Phone','MobilePhone']; let contactInfoList = []; let awsDataIds = []; - for(var i=0;i<data.object.length;i++){ - if(data.object[i].dataId){ - let contactInfo = new Object(); - contactInfo.Name = data.object[i].lastName; - contactInfo.Email = data.object[i].email; - contactInfo.Phone = data.object[i].phone; - contactInfo.AWSDataId = data.object[i].dataId; - awsDataIds.push(contactInfo.AWSDataId); - contactInfo.sfRecordId = ''; - contactInfoList.push(contactInfo); - } + 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].lastName; + contactInfo.Email = data.object[i].email; + contactInfo.MobilePhone = data.object[i].mobilePhone; + contactInfo.Phone = data.object[i].phone; + contactInfo.AWSDataId = data.object[i].dataId; + contactInfo.pi = true; + awsDataIds.push(contactInfo.AWSDataId); + contactInfo.sfRecordId = ''; + contactInfoList.push(contactInfo); + } + } } let AWSIdToSFIdMapValue = {}; - console.log(awsDataIds); //Invoke SF BackEnd Visualforce.remoting.Manager.invokeAction( '{!$RemoteAction.SearchContactController.searchContacts}', - JSON.stringify(awsDataIds), + JSON.stringify(awsDataIds),searchContactName,'{!aId}', function (result, event) { if(event.status){ if(result.status = 'success'){ - contactsInfo = JSON.parse(result.message.replace(/("\;)/g,"\"")); + if(result.message){ + contactsInfo = JSON.parse(result.message.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']; + contactInfoList[i].AccountName = contactFromSF['Account']['Name']; + } + } + } + } + //1. get SF 闈炴晱鎰熺殑鑱旂郴浜轰俊鎭� + if(result.noPIContactList){ + var noPIInfo = JSON.parse(result.noPIContactList.replace(/("\;)/g,"\"")); + for(let f in noPIInfo){ + let contactInfo = new Object(); + contactInfo.Name = noPIInfo[f].Name!=null?noPIInfo[f].Name:''; + contactInfo.Email = noPIInfo[f].Email!=null?noPIInfo[f].Email:''; + contactInfo.Phone = noPIInfo[f].Phone!=null?noPIInfo[f].Phone:''; + contactInfo.MobilePhone = noPIInfo[f].MobilePhone!=null?noPIInfo[f].MobilePhone:''; + contactInfo.AWSDataId = ''; + contactInfo.sfRecordId = noPIInfo[f].Id!=null?noPIInfo[f].Id:''; + contactInfo.AccountName = noPIInfo[f]['Account']['Name']; + contactInfo.pi = false; + contactInfoList.push(contactInfo); + } + } refreshTable(cols,contactInfoList); }else{ console.log('No result'); -- Gitblit v1.9.1