From 24fda5246494953a232b37547fb50bde77bd9886 Mon Sep 17 00:00:00 2001 From: Li Jun <buli@deloitte.com.cn> Date: 星期三, 27 四月 2022 12:03:42 +0800 Subject: [PATCH] PIPLButtonIssueFix --- force-app/main/default/pages/NewAndEditLead.page | 188 ++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 154 insertions(+), 34 deletions(-) diff --git a/force-app/main/default/pages/NewAndEditLead.page b/force-app/main/default/pages/NewAndEditLead.page index 61fa0f9..85f2a9a 100644 --- a/force-app/main/default/pages/NewAndEditLead.page +++ b/force-app/main/default/pages/NewAndEditLead.page @@ -23,14 +23,26 @@ 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 - }) { - NewPIToAWS(leadJson, payloadForNewPI) - }else { - UpdatePIToAWS(leadJson, payloadForNewPI) - } + if ({!isNewMode} || {!isCloneMode}) { + NewPIToAWS(leadJson, payloadForNewPI) + }else { + UpdatePIToAWS(leadJson, payloadForNewPI) + } } + function EditButton(isDisabled){ + var topele = document.getElementById('topButtonRow'); + var bottomele = document.getElementById('bottomButtonRow'); + + if (isDisabled) { + topele.classList.add("disabledbutton"); + bottomele.classList.add("disabledbutton"); + }else { + topele.classList.remove("disabledbutton"); + bottomele.classList.remove("disabledbutton"); + } + } + function enableButton(obj) { obj.classList.remove("btnDisabled"); } @@ -74,15 +86,15 @@ let textEmail = "[data-id='Email']"; 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)) { - error_msg += ';閭欢鏍煎紡閿欒'; - } - let phone = document.querySelector(textPhone); + // 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)) { + // error_msg += ';閭欢鏍煎紡閿欒'; + // } + // let phone = document.querySelector(textPhone); - if (phone.value != '' && !/^1[3|5|8|7][0-9]\d{4,8}$/.test(phone.value)) { - error_msg += ';鐢佃瘽鍙风爜閿欒'; - } + // if (phone.value != '' && !/^1[3|5|8|7][0-9]\d{4,8}$/.test(phone.value)) { + // error_msg += ';鐢佃瘽鍙风爜閿欒'; + // } let es = document.getElementsByTagName('select') for(let ei in es){ @@ -119,12 +131,26 @@ } else if (nodelist[index].type == 'checkbox') { result[nodelist[index].getAttribute("data-id")] = nodelist[index].checked; } else if (nodelist[index].type == 'select-multiple') { - //nodelist[index].getAttribute("data-id") + //After Update By zhj 20220411 Start let multiple = nodelist[index].getAttribute("data-id"); - let targets = document.querySelector("[data-id=" + multiple + "]").parentNode.children[1].children[0].children[1].children[2].children[0].innerText; - targets = targets.replace(/\n/g, ";"); - console.log('targets = ' + targets); - result[nodelist[index].getAttribute("data-id")] = targets; + let targets = document.querySelector("[data-id=" + multiple + "]").options; + let selValues = []; + for(i=0; i < targets.length; i++){ + if(targets[i].selected){ + selValues.push(targets[i].value); + } + } + let setValuesStr = JSON.stringify(selValues); + setValuesStr = setValuesStr.substring(1,setValuesStr.length-1); + if(setValuesStr){ + setValuesStr = setValuesStr.replace(/"/g,""); + if(setValuesStr.indexOf(',')!=-1){ + setValuesStr = setValuesStr.replace(/,/g,";"); + } + } + console.log('targets = ' + setValuesStr); + result[nodelist[index].getAttribute("data-id")] = setValuesStr; + //After Update By zhj 20220411 end } else { result[nodelist[index].getAttribute("data-id")] = nodelist[index].value; } @@ -170,10 +196,14 @@ payloadJson.Email_Encrypted__c = r.object[0].emailEncrypt; //payloadJson.AWS_Data_Id__c = r.object[0].dataId; payloadJson.AWS_Data_Id__c = '{!AWSDataId}'; - if (isNewMode) { + if (isNewMode || {!isCloneMode}) { payloadJson.AWS_Data_Id__c = r.object[0].dataId; + delete payloadJson.OwnerId; } else { payloadJson.AWS_Data_Id__c = '{!AWSDataId}'; + } + if('{!rtTypeId}'){ + payloadJson.RecordTypeId = '{!rtTypeId}';//Add by zhj for Record Type Issue 20220421 } return payloadJson; } @@ -227,6 +257,7 @@ return blankRequiredFields; } function saveLeadProcess(saveMode) { + EditButton(true); disableButtonStatus(); redirectMode = saveMode; @@ -262,6 +293,7 @@ errorMsgNode.innerText = errorMsg; errorMsgNode.className = 'pbError'; unblockUI(); + EditButton(false); } function hiddenErrorMsgNode() { let errorMsgNode = document.getElementById("page:form:block:msgContent"); @@ -306,6 +338,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); @@ -399,7 +432,7 @@ <img src="/img/s.gif" alt="" class="minWidth" title="" width="1" height="1" /> <h2 class="mainTitle">鎰忓悜缂栬緫</h2> </td> - <td class="pbButton" id="topButtonRow"> + <td class="pbButton" id="topButtonRow" style="pointer-events: none; opacity: 0.4;"> <input class="btn" type="Button" value="淇濆瓨" onclick="saveLeadProcess('Save')" /> <input class="btn" type="Button" value="淇濆瓨骞舵柊寤�" onclick="saveLeadProcess('SaveAndNew')" /> <apex:commandButton action="{!cancel}" value="鍙栨秷" /> @@ -422,8 +455,15 @@ <!--Each section has layoutFields, let's iterate them as well--> <apex:repeat value="{!layoutSection.layoutFields}" var="layoutField"> - <apex:inputField html-data-id="{!layoutField.fieldAPI}" value="{!Lead[layoutField.fieldAPI]}" rendered="{!not(layoutField.isPlaceHOlder)}" + <!-- <apex:inputField html-data-id="{!layoutField.fieldAPI}" value="{!Lead[layoutField.fieldAPI]}" rendered="{!not(layoutField.isPlaceHOlder)&&isNewMode}" required="{!layoutField.isRequired}" /> + <apex:inputField html-data-id="{!layoutField.fieldAPI}" value="{!Lead[layoutField.fieldAPI]}" rendered="{!not(layoutField.isPlaceHOlder)&&layoutField.fieldAPI!='RecordTypeId'}" required="{!layoutField.isRequired}" /> + <apex:outputField html-data-id="{!layoutField.fieldAPI}" value="{!Lead[layoutField.fieldAPI]}" rendered="{!not(layoutField.isPlaceHOlder)&&layoutField.fieldAPI=='RecordTypeId'}" /> --> + <apex:inputField styleClass="PIBackApi PIBackApi_{!layoutField.fieldAPI}" html-data-id="{!layoutField.fieldAPI}" value="{!Lead[layoutField.fieldAPI]}" rendered="{!not(layoutField.isPlaceHOlder)&&isNewMode}" required="{!layoutField.isRequired}" /> + <apex:inputField styleClass="PIBackApi PIBackApi_{!layoutField.fieldAPI}" html-data-id="{!layoutField.fieldAPI}" value="{!Lead[layoutField.fieldAPI]}" rendered="{!not(layoutField.isPlaceHOlder)&¬(isNewMode)&&layoutField.fieldAPI!='RecordTypeId'}" + required="{!layoutField.isRequired}" /> + <apex:outputField styleClass="PIBackApi PIBackApi_{!layoutField.fieldAPI}" html-data-id="{!layoutField.fieldAPI}" value="{!Lead[layoutField.fieldAPI]}" rendered="{!not(layoutField.isPlaceHOlder)&¬(isNewMode)&&layoutField.fieldAPI=='RecordTypeId'}" + /> <apex:pageblocksectionitem rendered="{!layoutField.isPlaceHolder}"> </apex:pageblocksectionitem> </apex:repeat> @@ -439,8 +479,17 @@ 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) { - document.querySelector("[data-id='" + layoutField.fieldAPI + "']").disabled = !(layoutField.editableField); + 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"); + } + } } } } @@ -472,7 +521,7 @@ 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}' + document.getElementById(document.querySelector("[data-id='Lead_Inquiry_form__c']").id+'_lkid').value = '{!ifc.Id}' if ('{!ifc.Name}') document.querySelector("[data-id='Lead_Inquiry_form__c']").value = '{!ifc.Name}' //瀹㈡埛濮撳悕 @@ -480,24 +529,24 @@ 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}' + document.getElementById(document.querySelector("[data-id='Hospital_Name__c']").id+'_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}' + document.getElementById(document.querySelector("[data-id='Hospital_Name__c']").id+'_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}' + document.getElementById(document.querySelector("[data-id='Department_Class__c']").id+'_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}' + document.getElementById(document.querySelector("[data-id='Department_Class__c']").id+'_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}' + document.getElementById(document.querySelector("[data-id='Opp_Name_Search__c']").id + '_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}' + document.getElementById(document.querySelector("[data-id='Opp_Name_Search__c']").id + '_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}' + document.getElementById(document.querySelector("[data-id='Campaign__c']").id +'_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}' + document.getElementById(document.querySelector("[data-id='Campaign__c']").id +'_lkid').value = '{!ifc.Campaign_ID__c}' //鍙栨秷鍘熷洜 if ('{!ifc.Cancel_Reason__c}') document.querySelector("[data-id='Cancel_Reason__c']").value = '{!ifc.Cancel_Reason__c}' @@ -552,6 +601,9 @@ unblockUI(); } + + document.getElementById('topButtonRow').style = ''; +聽 聽 聽 聽 聽 document.getElementById('bottomButtonRow').style = ''; let previous_value = {}; jQuery(".lookupInput input").each(function(i,e){ let je =jQuery(e); @@ -569,6 +621,19 @@ } }) }) + 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'); @@ -602,6 +667,61 @@ // }); //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"> @@ -609,7 +729,7 @@ <tr> <td class="pbTitle"> <img src="/img/s.gif" alt="" class="minWidth" title="" width="1" height="1" /> </td> - <td class="pbButton" id="bottomButtonRow"> + <td class="pbButton" id="bottomButtonRow" style="pointer-events: none; opacity: 0.4;"> <input class="btn" type="Button" value="淇濆瓨" onclick="saveLeadProcess('Save')" /> <input class="btn" type="Button" value="淇濆瓨骞舵柊寤�" onclick="saveLeadProcess('SaveAndNew')" /> <apex:commandButton action="{!cancel}" value="鍙栨秷" /> -- Gitblit v1.9.1