From 3ba0123db48f8bab81ddf0913e1b95280ef545e8 Mon Sep 17 00:00:00 2001 From: Li Jun <buli@deloitte.com.cn> Date: 星期四, 31 三月 2022 17:56:53 +0800 Subject: [PATCH] Deploy0331 --- force-app/main/default/pages/NewAndEditLead.page | 359 +++++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 320 insertions(+), 39 deletions(-) diff --git a/force-app/main/default/pages/NewAndEditLead.page b/force-app/main/default/pages/NewAndEditLead.page index a18feb9..4fee35a 100644 --- a/force-app/main/default/pages/NewAndEditLead.page +++ b/force-app/main/default/pages/NewAndEditLead.page @@ -1,8 +1,8 @@ <apex:page standardController="Lead" extensions="NewAndEditLeadController" id="page"> - <apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}"/> + <apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}" /> <apex:includeScript value="{! URLFOR($Resource.AWSService, 'AWSService.js') }" /> - <apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}"/> - <apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/> + <apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}" /> + <apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}" /> <script src="../../soap/ajax/53.0/connection.js" type="text/javascript"></script> <style> .disabledbutton { @@ -14,16 +14,17 @@ AWSService.sfSessionId = '{!GETSESSIONID()}'; var staticResources = JSON.parse('{!staticResource}'); var staticResourcesContact = JSON.parse('{!staticResourceContact}'); + var staticResourceInquiryForm = JSON.parse('{!staticResourceInquiryForm}'); var requiredFieldAPIList = JSON.parse('{!requiredFieldAPIListStr}'); var fieldAPIToLabelMap = JSON.parse('{!fieldAPIToLabelMapStr}'); var redirectMode = 'Save';//1. Save 2. SaveAndNew var requiredAPIToChangedLabelMap = new Map(); requiredAPIToChangedLabelMap.set('LastName', '{!PIPL_Name_Label}'); - console.log('{!contactsInfo}'); - var VLookUpFields = new Set(['Hospital_Name__c', 'Department_Class__c', 'Contact_Name__c', 'Campaign__c']); + var VLookUpFields = new Set(['Hospital_Name__c', 'Department_Class__c', 'Contact_Name__c', 'Campaign__c', 'Lead_Inquiry_form__c', 'Opp_Name_Search__c']); function ProcessPI(leadJson, payloadForNewPI) { blockme(); - if ({!isNewMode}) { + if ({!isNewMode + }) { NewPIToAWS(leadJson, payloadForNewPI) }else { UpdatePIToAWS(leadJson, payloadForNewPI) @@ -74,24 +75,28 @@ let textPhone = "[data-id='Phone']"; //Email let email = document.querySelector(textEmail); - if(email.value!='' && !/^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$/.test(email.value)){ + if (email.value != '' && !/^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$/.test(email.value)) { error_msg += ';閭欢鏍煎紡閿欒'; } let phone = document.querySelector(textPhone); - if(phone.value!='' && !/^1[3|5|8|7][0-9]\d{4,8}$/.test(phone.value)){ + if (phone.value != '' && !/^1[3|5|8|7][0-9]\d{4,8}$/.test(phone.value)) { error_msg += ';鐢佃瘽鍙风爜閿欒'; } - for(let e of document.getElementsByTagName('select')){ - for(let op of e.options){ + let es = document.getElementsByTagName('select') + for(let ei in es){ + let e = es[ei]; + for(let opi in e.options){ + let op = e.options[opi]; + if(!op)continue; if(op.value == "*****" && op.selected){ error_msg += ';涓嬫媺妗嗕笉鑳戒富鍔ㄩ�夋嫨瀵嗘枃閫夐」'; } } } - if(error_msg.length>0 && error_msg[0]== ';'){ + if (error_msg.length > 0 && error_msg[0] == ';') { error_msg = error_msg.substring(1); } @@ -133,11 +138,22 @@ function QueryLeadFromAWS() { AWSService.query(staticResources.queryUrl, '{!AWSDataId}', queryBack, staticResources.token); } + function QueryLeadFromAWSIFS() { + //staticResourceInquiryForm + AWSService.query(staticResourceInquiryForm.queryUrl, '{!AWSDataIdInquiryForm}', queryBackIFS, staticResourceInquiryForm.token); + } var queryBack = function queryBack(data) { console.log('data = ' + data); - document.querySelector("[data-id='LastName']").value = data.object.lastName.replace(/"/g,""); - document.querySelector("[data-id='Phone']").value = data.object.phone.replace(/"/g,""); - document.querySelector("[data-id='Email']").value = data.object.email.replace(/"/g,""); + document.querySelector("[data-id='LastName']").value = data.object.lastName == null ? '' : data.object.lastName; + document.querySelector("[data-id='Phone']").value = data.object.phone == null ? '' : data.object.phone; + document.querySelector("[data-id='Email']").value = data.object.email == null ? '' : data.object.email; + unblockUI(); + }; + var queryBackIFS = function queryBackIFS(data) { + console.log('data = ' + data); + //document.querySelector("[data-id='LastName']").value = document.querySelector("[data-id='Contact_Name__c']").value + document.querySelector("[data-id='Phone']").value = data.object.phone == null ? '' : data.object.phone; + document.querySelector("[data-id='Email']").value = data.object.email == null ? '' : data.object.email; unblockUI(); }; @@ -211,7 +227,7 @@ return blankRequiredFields; } function saveLeadProcess(saveMode) { - + disableButtonStatus(); redirectMode = saveMode; console.log('redirectMode' + redirectMode); @@ -264,10 +280,11 @@ //1. Check account value let accountNodeId = document.querySelector("[data-id='Hospital_Name__c']").id + '_lkid'; let accountValue = document.getElementById(accountNodeId).value; + let searchContactKeyWord = document.querySelector("[data-id='Contact_Name__c']").value; console.log(accountValue); if (accountValue != '000000000000000') { let baseUrl = "/apex/SearchContactPage"; - let suffixUrl = "?contactId=" + contactNodeId + "&accountId=" + accountValue; + let suffixUrl = "?contactId=" + contactNodeId + "&accountId=" + accountValue+"&searchContactKeyWord=" + searchContactKeyWord; let newSearchContactParam = 'height=600,width=800,left=100,top=100,dialogHide=true,resizable=no,scrollbars=yes,toolbar=no,status=no'; newSearchContactWindow = window.open(baseUrl + suffixUrl, 'Popup', newSearchContactParam); if (window.focus) { @@ -289,6 +306,7 @@ let contactNodeId = document.querySelector("[data-id='Contact_Name__c']").id + '_lkid'; document.getElementById(contactNodeId).value = contactInfo.ContactId; document.querySelector("[data-id='Contact_Name__c']").value = contactInfo.Name; + document.querySelector("[data-id='LastName']").value = contactInfo.Name; } function replaceSearchContactLookup() { let lookUpNode = htmlToElement(contactHtmlString); @@ -298,27 +316,57 @@ queryContactName() //document.querySelector("[data-id='Contact_Name__c']").value = '鐜嬪'; } - let parentNode = document.querySelector("[data-id='Contact_Name__c']").parentNode; - document.querySelector("[data-id='Contact_Name__c']").removeAttribute("onchange"); - parentNode.replaceChild(lookUpNode, document.querySelector("[data-id='Contact_Name__c']").parentNode.children[2]); + let parentNode = document.querySelector("[data-id='Contact_Name__c']").parentNode; + document.querySelector("[data-id='Contact_Name__c']").removeAttribute("onchange"); + parentNode.replaceChild(lookUpNode, document.querySelector("[data-id='Contact_Name__c']").parentNode.children[2]); } function queryContactName() { let sfId = document.getElementById(document.querySelector("[data-id='Contact_Name__c']").id + '_lkid').value; - let contactsInfo = JSON.parse('{!contactsInfo}'); - let dataId = contactsInfo[sfId]; - let url = staticResourcesContact.queryUrl + '?dataId=' + dataId; - fetch(url, { - method: 'GET', - headers: { - 'Content-Type': 'application/json', - 'pi-token': staticResources.token - } - }).then((data) => { - return data.json(); - }).then((result) => { + let dataId = ''; + if ('{!contactsInfo}' != '') { + let contactsInfo = JSON.parse('{!contactsInfo}'); + dataId = contactsInfo[sfId]; + } else if ('{!contactDataId}' != '') { + dataId = '{!contactDataId}'; + } + let queryBackContactName = function queryBackContactName(result){ document.querySelector("[data-id='Contact_Name__c']").value = result.object.lastName; - }) + //document.querySelector("[data-id='LastName']").value = result.object.lastName; + }; + AWSService.query(staticResourcesContact.queryUrl, dataId, queryBackContactName, staticResourcesContact.token); + + // let url = staticResourcesContact.queryUrl + '?dataId=' + dataId; + // fetch(url, { + // method: 'GET', + // headers: { + // 'Content-Type': 'application/json', + // 'pi-token': staticResources.token + // } + // }).then((data) => { + // return data.json(); + // }).then((result) => { + // document.querySelector("[data-id='Contact_Name__c']").value = result.object.lastName; + // }) + } + function queryContactName2() { + let sfId = document.getElementById(document.querySelector("[data-id='Contact_Name__c']").id + '_lkid').value; + let dataId = ''; + if ('{!contactsInfo}' != '') { + let contactsInfo = JSON.parse('{!contactsInfo}'); + dataId = contactsInfo[sfId]; + } else if ('{!contactDataId}' != '') { + dataId = '{!contactDataId}'; + }else{ + //娌℃湁杩涜鍔犲瘑 + document.querySelector("[data-id='LastName']").value = document.querySelector("[data-id='Contact_Name__c']").value; + return; + } + let queryBackContactName = function queryBackContactName(result){ + document.querySelector("[data-id='Contact_Name__c']").value = result.object.lastName; + document.querySelector("[data-id='LastName']").value = result.object.lastName; + }; + AWSService.query(staticResourcesContact.queryUrl, dataId, queryBackContactName, staticResourcesContact.token); } </script> <div class="bPageTitle"> @@ -385,20 +433,253 @@ </apex:repeat> <script> sfdcPage.appendToOnloadQueue(function () { + + //鍒ゆ柇鏄惁涓哄彧璇婚�夐」 + var layoutSections = JSON.parse('{!layoutSectionsStr}'); + for (let m = 0; m < layoutSections.length; m++) { + let layoutSection = layoutSections[m].layoutFields; + for (let n = 0; n < layoutSection.length; n++) { + let layoutField = layoutSection[n]; + if (layoutField.fieldAPI != '' && document.querySelector("[data-id='"+layoutField.fieldAPI+"']") != null) { + let e = document.querySelector("[data-id='"+layoutField.fieldAPI+"']"); + e.disabled = !(layoutField.editableField); + if (!(layoutField.editableField)) { + if (e.getAttribute("multiple") && e.getAttribute("multiple") == 'multiple') { + e.parentNode.classList.add("disabledbutton"); + } + if (e.tagName == 'DIV') { + e.classList.add("disabledbutton"); + } + } + } + } + } + //1. Set Last Name label console.log('NameLabel = ' + '{!PIPL_Name_Label}') document.querySelector("[data-id='LastName']").parentNode.parentNode.parentNode.children[0].children[0].innerText = '{!PIPL_Name_Label}'; //2. Query AWS Data by dataId console.log('Mode for Lead Page:' + {!isNewMode}); - if (!{!isNewMode}) { - blockme();//for loading search by Li Jun 20220218 - QueryLeadFromAWS(); + if (!{!isNewMode}) { + blockme();//for loading search by Li Jun 20220218 + QueryLeadFromAWS(); + } + //Replace Vlookup Field + replaceSearchContactLookup(); + //3. Set Readonly Attribute + document.querySelector("[data-id='OwnerId']").classList.add("disabledbutton"); + + //鏄惁瑙e瘑鑱旂郴浜� + if('{!isDecryptContact}' == '1'){ + queryContactName2(); + } + + + //濡傛灉鏄骇鍝佸挩璇㈠崟杩囨潵鐨� + if ('{!ifc}' != '') { + blockme(); + //鐘舵�� + document.querySelector("[data-id='Status']").value = '鏈窡杩�' + //浼氳璇㈤棶鍗� + if ('{!ifc.Id}') + document.getElementById('page:form:block:j_id34:0:j_id35:j_id36:15:j_id37_lkid').value = '{!ifc.Id}' + if ('{!ifc.Name}') + document.querySelector("[data-id='Lead_Inquiry_form__c']").value = '{!ifc.Name}' + //瀹㈡埛濮撳悕 + if ('{!ifc.Contact_Id__c}') + document.getElementById(document.querySelector("[data-id='Contact_Name__c']").id + '_lkid').value = '{!ifc.Contact_Id__c}' + //鍖婚櫌 + if ('{!ifc.Hospital_Name__c}') + document.getElementById('page:form:block:j_id34:0:j_id35:j_id36:2:j_id37_lkold').value = '{!ifc.Hospital_Name__c}' + if ('{!ifc.Hospital_ID__c}') + document.getElementById('page:form:block:j_id34:0:j_id35:j_id36:2:j_id37_lkid').value = '{!ifc.Hospital_ID__c}' + //鎴樼暐绉戝鍒嗙被 + if ('{!ifc.Department_Class__c}') + document.getElementById('page:form:block:j_id34:0:j_id35:j_id36:4:j_id37_lkold').value = '{!ifc.Department_Class__c}' + if ('{!ifc.Department_ID__c}') + document.getElementById('page:form:block:j_id34:0:j_id35:j_id36:4:j_id37_lkid').value = '{!ifc.Department_ID__c}' + //宸叉湁璇环鍚嶇О + if ('{!ifc.Opp_Name_Search__c}') + document.getElementById('page:form:block:j_id34:0:j_id35:j_id36:12:j_id37_lkold').value = '{!ifc.Opp_Name_Search__c}' + if ('{!ifc.Opp_Name_Search_ID__c}') + document.getElementById('page:form:block:j_id34:0:j_id35:j_id36:12:j_id37_lkid').value = '{!ifc.Opp_Name_Search_ID__c}' + //涓昏瀛︿細 + if ('{!ifc.Campaign__c}') + document.getElementById('page:form:block:j_id34:1:j_id35:j_id36:3:j_id37_lkold').value = '{!ifc.Campaign__c}' + if ('{!ifc.Campaign_ID__c}') + document.getElementById('page:form:block:j_id34:1:j_id35:j_id36:3:j_id37_lkid').value = '{!ifc.Campaign_ID__c}' + //鍙栨秷鍘熷洜 + if ('{!ifc.Cancel_Reason__c}') + document.querySelector("[data-id='Cancel_Reason__c']").value = '{!ifc.Cancel_Reason__c}' + //鐢佃瘽 + if ('{!ifc.Phone__c}') + document.querySelector("[data-id='Phone']").value = '{!ifc.Phone__c}' + //閭欢 + if ('{!ifc.Email__c}') + document.querySelector("[data-id='Email']").value = '{!ifc.Email__c}' + //鍜ㄨ鍗曟潵婧� + if ('{!ifc.LeadSource__c}' && document.querySelector("[data-id='LeadSource']")) + document.querySelector("[data-id='LeadSource']").value = '{!ifc.LeadSource__c}' + //鎰忓悜鍖哄垎 + if ('{!ifc.Opportunity_Division__c}') + document.querySelector("[data-id='Opportunity_Division__c']").value = '{!ifc.Opportunity_Division__c}' + //濮旀墭浜嬮」 + if ('{!ifc.Request1__c}') { + var Request1__c = '{!ifc.Request1__c}'; + //璧嬪�肩粰绗簩涓閫夋 + var array = Request1__c.split(';'); + //璧嬪�肩粰绗簩涓閫夋 + for (var i = 0; i < array.length; i++) { + for (var j = document.querySelector("[data-id='Request__c']").parentNode.children[1].children[0].children[1].children[0].children[0].options.length - 1; j >= 0; j--) { + if (array[i] == document.querySelector("[data-id='Request__c']").parentNode.children[1].children[0].children[1].children[0].children[0].options[j].innerHTML) { + var option = new Option(); + option.text = array[i]; + option.value = j; + document.querySelector("[data-id='Request__c']").parentNode.children[1].children[0].children[1].children[2].children[0].add(option); + } + } + } + //鍒犻櫎绗竴涓閫夋鐨勯噸澶嶅�� + for (var i = 0; i < array.length; i++) { + for (var j = document.querySelector("[data-id='Request__c']").parentNode.children[1].children[0].children[1].children[0].children[0].options.length - 1; j >= 0; j--) { + if (array[i] == document.querySelector("[data-id='Request__c']").parentNode.children[1].children[0].children[1].children[0].children[0].options[j].innerHTML) { + document.querySelector("[data-id='Request__c']").parentNode.children[1].children[0].children[1].children[0].children[0].options[j] = null; + } + } + } } - //Replace Vlookup Field - replaceSearchContactLookup(); - //3. Set Readonly Attribute - document.querySelector("[data-id='OwnerId']").classList.add("disabledbutton"); + //绱ф�� + if ('{!ifc.Urgent__c}') + document.querySelector("[data-id='urgent__c']").checked = '{!ifc.Urgent__c}' == 'false' ? false : true; + //鍏徃锛堢瀹わ級 = 绉戝鍚嶇О + if(document.querySelector("[data-id='Company']") && document.querySelector("[data-id='Hospital_Name__c']").value != ''){ + document.querySelector("[data-id='Company']").value = document.querySelector("[data-id='Hospital_Name__c']").value; + } + //鏌ユ壘瀹㈡埛濮撳悕 + queryContactName2(); + //瑙e瘑 + QueryLeadFromAWSIFS(); + + unblockUI(); + } + let previous_value = {}; + jQuery(".lookupInput input").each(function(i,e){ + let je =jQuery(e); + + let dataid = je.attr('data-id'); + if(['Contact_Name__c'].indexOf(dataid) < 0) return; + + jQuery(e).focus(function(){ + previous_value[this.id] = this.value; + }) + + jQuery(e).change(function(){ + if (previous_value[this.id] != jQuery(this).val()) { + document.getElementById(this.id+'_lkid').value = ''; + } + }) + }) + jQuery("body").on("change","input[data-id='Hospital_Name__c']",function(){ + setTimeout(() => { + console.log(document.getElementById(this.id+'_lkid').value); + var hospitalNameValue = document.getElementById(this.id+'_lkid').value; + if (hospitalNameValue != "000000000000000" && hospitalNameValue != '') { + console.log("hospitalNameValue = " + hospitalNameValue); + var ls = ['Department_Class__c']; + setVlookup(ls,hospitalNameValue); + }else{ + clearVlookup('Department_Class__c'); + } + }, 50); + }); + //Updated by Li Jun 20220323 Start + // jQuery(".lookupInput").each(function (i, e) { + // let je = jQuery(e).find('input'); + // je.attr("readonly", ""); + // je.css("background", "unset"); + + // let dataid = je.attr('data-id'); + // if (['Contact_Name__c'].indexOf(dataid) > -1) + // jQuery(e).children(":last-child").before('<img class="closeIcon" data-id="' + dataid + '" generate="" alt="Clear" src="/s.gif" style="display: inline-block;">'); + // }) + + // jQuery(".lookupInput").on("mouseenter", "img[generate]", function (e) { + // this.className = "closeIconOn"; + // }); + + // jQuery(".lookupInput").on("mouseleave", "img[generate]", function (e) { + // this.className = "closeIcon" + // }); + + + // jQuery(".lookupInput").on("click", "img[generate]", function (e) { + // let id = jQuery("input[data-id='" + jQuery(this).attr("data-id") + "']").attr("id"); + // let input = document.getElementById(id); + // if (input) { + // input.value = ''; + // let hidden = document.getElementById(id + '_lkid'); + // if (hidden) { + // hidden.value = ''; + // } + // } + // }); + //Updated by Li Jun 20220323 Start }); + + function setVlookup(lookups, lookup_id){ + //鍏徃锛堢瀹わ級 + document.querySelector("[data-id='Company']").value = document.querySelector("[data-id='Hospital_Name__c']").value; + let controllerSaveMethod = '{!$RemoteAction.NewAndEditLeadController.queryAccount}'; + Visualforce.remoting.Manager.invokeAction( + controllerSaveMethod, + JSON.stringify(lookups), lookup_id, + function (result, event) { + console.log("result = " + result); + if (result != null ){ + var obj = JSON.parse(result.replaceAll('&'+'quot;','"')); + for (let i = 0; i < lookups.length; i++) { + let lookup = lookups[i]; + if (!obj[lookup]) { + continue; + } + let ele = document.querySelector("[data-id='"+lookup+"']"); + let elei1 = document.getElementById(ele.id + '_lkid'); + let elei2 = document.getElementById(ele.id + '_lkold'); + + ele.value=obj[lookup].Name; + elei1.value = obj[lookup].Id; + elei2.value = obj[lookup].Name; + + let inputele = document.querySelector("[data-id='"+lookup+"']").parentNode; + if (inputele.childNodes.length > 4){ + inputele.childNodes[0].style = ""; + inputele.childNodes[1].style = "display: inline-block;"; + inputele.childNodes[2].style = "display: none;"; + } + + } + } + }, + { escape: true } + ); + }; + + function clearVlookup(lookup){ + let ele = document.querySelector("[data-id='"+lookup+"']"); + let elei1 = document.getElementById(ele.id + '_lkid'); + let elei2 = document.getElementById(ele.id + '_lkold'); + + ele.value=''; + elei1.value = ''; + elei2.value = ''; + + let inputele = document.querySelector("[data-id='"+lookup+"']").parentNode; + if (inputele.childNodes.length > 4){ + inputele.childNodes[0].style = "display: none;"; + inputele.childNodes[1].style = "display: none;"; + inputele.childNodes[2].style = ""; + } + } </script> <div class="pbBottomButtons"> <table cellspacing="0" cellpadding="0" border="0"> -- Gitblit v1.9.1