|  |  | 
 |  |  | <apex:page standardController="Tender_information__c" extensions="NewAndEditTenderinformationController" id="page"> | 
 |  |  |     <apex:includeScript value="{! URLFOR($Resource.AWSService, 'AWSService.js') }" /> | 
 |  |  |     <script src="../../soap/ajax/53.0/connection.js" type="text/javascript"></script> | 
 |  |  |     <apex:includeScript value="{!URLFOR($Resource.connection20)}"/> | 
 |  |  |     <apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}"/> | 
 |  |  |     <apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}"/> | 
 |  |  |     <apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/> | 
 |  |  |     <style> | 
 |  |  |         .disabledbutton { | 
 |  |  |             pointer-events: none; | 
 |  |  |             opacity: 0.4; | 
 |  |  |         } | 
 |  |  |     </style> | 
 |  |  |     <script> | 
 |  |  |          | 
 |  |  |         var config = {}; | 
 |  |  | 
 |  |  |                 } else { | 
 |  |  |                     payloadJson.AWS_Data_Id__c = '{!AWSDataId}'; | 
 |  |  |                 } | 
 |  |  |                 if('{!rtTypeId}'){ | 
 |  |  |                     payloadJson.RecordTypeId = '{!rtTypeId}';//Add by zhj for Record Type Issue 20220421 | 
 |  |  |                 } | 
 |  |  |                 return payloadJson; | 
 |  |  |             }, | 
 |  |  |             queryBack:function (data) { | 
 |  |  | 
 |  |  |             updateMethod:"NewAndEditTenderinformationController.saveTenderinformation", | 
 |  |  |             insertMethod:"NewAndEditTenderinformationController.saveTenderinformation" | 
 |  |  |         } | 
 |  |  |        AWSService.sfSessionId = '{!GETSESSIONID()}'; | 
 |  |  |         AWSService.sfSessionId = '{!GETSESSIONID()}'; | 
 |  |  |         var staticResources = JSON.parse('{!staticResource}'); | 
 |  |  |         //zhj MEBG新方案改造 2022-11-29 start | 
 |  |  |         var staticResourcesV2 = JSON.parse('{!staticResourceV2}'); | 
 |  |  |         //zhj MEBG新方案改造 2022-11-29 end | 
 |  |  |         var requiredFieldAPIList = JSON.parse('{!requiredFieldAPIListStr}'); | 
 |  |  |         var fieldAPIToLabelMap = JSON.parse('{!fieldAPIToLabelMapStr}'); | 
 |  |  |         console.log('{!staticResource}'); | 
 |  |  | 
 |  |  |         function ProcessPI(sobjJson, payloadForNewPI) { | 
 |  |  |             blockme(); | 
 |  |  |             if ({!isNewMode} || {!isCloneMode}) { | 
 |  |  |                NewPIToAWS(sobjJson, payloadForNewPI) | 
 |  |  |                 NewPIToAWS(sobjJson, payloadForNewPI) | 
 |  |  |             }else { | 
 |  |  |                 UpdatePIToAWS(sobjJson, 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"); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  | 
 |  |  |             } | 
 |  |  |             return ['input','select','textarea'].indexOf(tag_name.toLowerCase())>-1; | 
 |  |  |         } | 
 |  |  |     	 | 
 |  |  |        function IsFormElement(e){ | 
 |  |  |          | 
 |  |  |         function IsFormElement(e){ | 
 |  |  |             return IsFormTag(e.tagName); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  | 
 |  |  |  | 
 |  |  |         function validateFieldValueFormate() { | 
 |  |  |             let error_msg = ''; | 
 |  |  |             let textEmail = "[data-id='Email']"; | 
 |  |  |             let textPhone = "[data-id='Phone']"; | 
 |  |  |             //Email | 
 |  |  |             let email = document.querySelector(textEmail); | 
 |  |  |             if(email && !/^[\w-]{3,12}@[\da-zA-Z]{2,16}\.[a-zA-Z]+$/.test(email.value)){ | 
 |  |  |                 error_msg += ';邮件格式错误'; | 
 |  |  |             } | 
 |  |  |             let phone = document.querySelector(textPhone); | 
 |  |  |             // let textEmail = "[data-id='Email']"; | 
 |  |  |             // let textPhone = "[data-id='Phone']"; | 
 |  |  |             // //Email | 
 |  |  |             // let email = document.querySelector(textEmail); | 
 |  |  |             // if(email && !/^[\w-]{3,12}@[\da-zA-Z]{2,16}\.[a-zA-Z]+$/.test(email.value)){ | 
 |  |  |             //     error_msg += ';邮件格式错误'; | 
 |  |  |             // } | 
 |  |  |             // let phone = document.querySelector(textPhone); | 
 |  |  |  | 
 |  |  |             if(phone && !/^1[3|5|8|7][0-9]\d{4,8}$/.test(phone.value)){ | 
 |  |  |                 error_msg += ';电话号码错误'; | 
 |  |  |             } | 
 |  |  |             // if(phone && !/^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){ | 
 |  |  | 
 |  |  |                     } | 
 |  |  |                     //targets = targets.replace(/\n/g, ";"); | 
 |  |  |                     if (targets !=''){ | 
 |  |  |                        result[field_api_name] = targets.join(";"); | 
 |  |  |                         result[field_api_name] = targets.join(";"); | 
 |  |  |                     } | 
 |  |  |                 } else { | 
 |  |  |                     result[field_api_name] = ele.value; | 
 |  |  | 
 |  |  |             let obj = JSON.parse(payloadForNewPI); | 
 |  |  |             obj[0].dataId = '{!AWSDataId}'; | 
 |  |  |             let payloadForNewPIJson = JSON.stringify(obj); | 
 |  |  |             AWSService.update(staticResources.updateUrl, sobjJson, payloadForNewPIJson, controllerSaveMethod, staticResources.token, staticResources.transactionUrl, false, insertOrUpdateBack,redirectCallBack); | 
 |  |  |              | 
 |  |  |             //zhj MEBG新方案改造 2022-11-29 start | 
 |  |  |             //AWSService.update(staticResources.updateUrl, sobjJson, payloadForNewPIJson, controllerSaveMethod, staticResources.token, staticResources.transactionUrl, false, insertOrUpdateBack,redirectCallBack); | 
 |  |  |             AWSService.update(staticResourcesV2.updateUrl, sobjJson, payloadForNewPIJson, controllerSaveMethod, staticResourcesV2.token, staticResources.transactionUrl, false, insertOrUpdateBack,redirectCallBack); | 
 |  |  |             //zhj MEBG新方案改造 2022-11-29 end | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         function NewPIToAWS(sobjJson, payloadForNewPI) { | 
 |  |  |             let controllerSaveMethod = config.insertMethod; | 
 |  |  |             AWSService.insert(staticResources.newUrl, sobjJson, payloadForNewPI, controllerSaveMethod, staticResources.token, staticResources.transactionUrl, true, insertOrUpdateBack,redirectCallBack); | 
 |  |  |              | 
 |  |  |             //zhj MEBG新方案改造 2022-11-29 start | 
 |  |  |             //AWSService.insert(staticResources.newUrl, sobjJson, payloadForNewPI, controllerSaveMethod, staticResources.token, staticResources.transactionUrl, true, insertOrUpdateBack,redirectCallBack); | 
 |  |  |             AWSService.insert(staticResourcesV2.newUrl, sobjJson, payloadForNewPI, controllerSaveMethod, staticResourcesV2.token, staticResources.transactionUrl, true, insertOrUpdateBack,redirectCallBack); | 
 |  |  |             //zhj MEBG新方案改造 2022-11-29 end | 
 |  |  |         } | 
 |  |  |          | 
 |  |  |  | 
 |  |  |         function checkRequiredFieldMsg(formData) { | 
 |  |  |             let blankRequiredFields = ''; | 
 |  |  |             for(i = 0;i<requiredFieldAPIList.length;i++){ | 
 |  |  |                 if(formData[requiredFieldAPIList[i]]){ | 
 |  |  |                 if(formData[requiredFieldAPIList[i]] && (VLookUpFields.indexOf(requiredFieldAPIList[i]) == -1)){ | 
 |  |  |                     continue; | 
 |  |  |                 }else if((VLookUpFields.indexOf(requiredFieldAPIList[i]) != -1) && formData[requiredFieldAPIList[i]] != '000000000000000'){ | 
 |  |  |                     continue; | 
 |  |  |                 }else{ | 
 |  |  |                     if(blankRequiredFields == ''){ | 
 |  |  | 
 |  |  |             return blankRequiredFields; | 
 |  |  |         } | 
 |  |  |         function saveSobjectProcess(save_and_new) { | 
 |  |  |             EditButton(true); | 
 |  |  |  | 
 |  |  |             if(save_and_new){ | 
 |  |  |                 config.SaveAndNew = true; | 
 |  |  |             } | 
 |  |  | 
 |  |  |             let errorMsgNode = document.getElementById("page:form:block:msgContent"); | 
 |  |  |             errorMsgNode.innerText = errorMsg; | 
 |  |  |             errorMsgNode.className = 'pbError'; | 
 |  |  |             EditButton(false); | 
 |  |  |         } | 
 |  |  |         function hiddenErrorMsgNode() { | 
 |  |  |             let errorMsgNode = document.getElementById("page:form:block:msgContent"); | 
 |  |  | 
 |  |  |                                 <img src="/img/s.gif" alt="" class="minWidth" title="" width="1" height="1" /> | 
 |  |  |                                 <h2 class="mainTitle">{! SobjectLabel}<apex:outputText rendered="{!isNewMode || isCloneMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode || isCloneMode)}">{!$Label.Edit}</apex:outputText></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="{!$Label.Save}" onclick="saveSobjectProcess()" /> | 
 |  |  |                                 <input class="btn" type="Button" value="{!$Label.SaveAndNew}" onclick="saveSobjectProcess(1)" /> | 
 |  |  |                                 <apex:commandButton action="{!cancel}" value="{!$Label.Cancel}" /> | 
 |  |  | 
 |  |  |  | 
 |  |  |                     <!--Each section has layoutFields, let's iterate them as well--> | 
 |  |  |                     <apex:repeat value="{!layoutSection.layoutFields}" var="layoutField"> | 
 |  |  |                         <apex:inputField styleClass="{!ApiPrefix} {!ApiPrefix}_{!layoutField.fieldAPI}" html-data-id="{!layoutField.fieldAPI}" value="{!Tender_information__c[layoutField.fieldAPI]}" rendered="{!not(layoutField.isPlaceHOlder)}" | 
 |  |  |                             required="{!layoutField.isRequired}" /> | 
 |  |  |                         <apex:inputField styleClass="{!ApiPrefix} {!ApiPrefix}_{!layoutField.fieldAPI}" html-data-id="{!layoutField.fieldAPI}" value="{!Tender_information__c[layoutField.fieldAPI]}" rendered="{!not(layoutField.isPlaceHOlder)&&isNewMode}" required="{!layoutField.isRequired}" /> | 
 |  |  |                         <apex:inputField styleClass="{!ApiPrefix} {!ApiPrefix}_{!layoutField.fieldAPI}" html-data-id="{!layoutField.fieldAPI}" value="{!Tender_information__c[layoutField.fieldAPI]}" rendered="{!not(layoutField.isPlaceHOlder)&¬(isNewMode)&&layoutField.fieldAPI!='RecordTypeId'}" required="{!layoutField.isRequired}" /> | 
 |  |  |                         <apex:outputField styleClass="{!ApiPrefix} {!ApiPrefix}_{!layoutField.fieldAPI}" html-data-id="{!layoutField.fieldAPI}" value="{!Tender_information__c[layoutField.fieldAPI]}" rendered="{!not(layoutField.isPlaceHOlder)&¬(isNewMode)&&layoutField.fieldAPI=='RecordTypeId'}" /> | 
 |  |  |                         <apex:pageblocksectionitem rendered="{!layoutField.isPlaceHolder}"> | 
 |  |  |                         </apex:pageblocksectionitem> | 
 |  |  |                     </apex:repeat> | 
 |  |  | 
 |  |  |                         } | 
 |  |  |                     }   | 
 |  |  |                     //Replace Contact Vlookup Field | 
 |  |  |                     replaceSearchContactLookup(); | 
 |  |  |                     //replaceSearchContactLookup(); | 
 |  |  |                     //Replace Lead Vlookup Field | 
 |  |  |                     replaceSearchLeadLookup();  | 
 |  |  |                     document.querySelectorAll("[data-id='OwnerId']")[0].classList.add("disabledbutton"); | 
 |  |  |                     //replaceSearchLeadLookup();  | 
 |  |  |                     // document.querySelectorAll("[data-id='OwnerId']")[0].classList.add("disabledbutton"); | 
 |  |  |                     // document.querySelectorAll("[data-id='OwnerId']")[1].classList.add("disabledbutton"); | 
 |  |  |                     document.getElementById('topButtonRow').style = ''; | 
 |  |  |                     document.getElementById('bottomButtonRow').style = ''; | 
 |  |  |                      | 
 |  |  |                     jQuery('a[data-id="OwnerId"]').remove(); | 
 |  |  |  | 
 |  |  | 
 |  |  |                     //         clearVlookup('Hospital__c'); | 
 |  |  |                     //     } | 
 |  |  |                     // }); | 
 |  |  |  | 
 |  |  |                     /* | 
 |  |  |                     jQuery("body").on("change","input[data-id='Hospital_Name__c']",function(){ | 
 |  |  |                         setTimeout(() => { | 
 |  |  |                             console.log(document.getElementById(this.id+'_lkid').value); | 
 |  |  | 
 |  |  |                                 clearVlookup('Hospital__c'); | 
 |  |  |                             } | 
 |  |  |                         }, 50); | 
 |  |  |                     });                    | 
 |  |  |                     });   | 
 |  |  |                     */ | 
 |  |  |                 }); | 
 |  |  |  | 
 |  |  |                  | 
 |  |  | 
 |  |  |                         <tr> | 
 |  |  |                             <td class="pbTitle"> | 
 |  |  |                                 <img src="/img/s.gif" alt="" class="minWidth" title="" width="1" height="1" /> </td> | 
 |  |  |                             <td class="pbButtonb" id="bottomButtonRow"> | 
 |  |  |                             <td class="pbButtonb" id="bottomButtonRow" style="pointer-events: none; opacity: 0.4;"> | 
 |  |  |                                 <input class="btn" type="Button" value="{!$Label.Save}" onclick="saveSobjectProcess()" /> | 
 |  |  |                                 <input class="btn" type="Button" value="{!$Label.SaveAndNew}" onclick="saveSobjectProcess()" /> | 
 |  |  |                                 <apex:commandButton action="{!cancel}" value="{!$Label.Cancel}" /> |