From b776940205e893302f77d24c4285613f228b44c6 Mon Sep 17 00:00:00 2001
From: Li Jun <buli@deloitte.com.cn>
Date: 星期三, 11 五月 2022 17:14:29 +0800
Subject: [PATCH] Page Enhance 0511

---
 force-app/main/default/pages/NewAndEditLead.page |  148 +++++++++++++++++++++++++++++++++---------------
 1 files changed, 101 insertions(+), 47 deletions(-)

diff --git a/force-app/main/default/pages/NewAndEditLead.page b/force-app/main/default/pages/NewAndEditLead.page
index b030efe..3698107 100644
--- a/force-app/main/default/pages/NewAndEditLead.page
+++ b/force-app/main/default/pages/NewAndEditLead.page
@@ -3,7 +3,7 @@
     <apex:includeScript value="{! URLFOR($Resource.AWSService, 'AWSService.js') }" />
     <apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}" />
     <apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}" />
-    <script src="../../soap/ajax/53.0/connection.js" type="text/javascript"></script>
+    <apex:includeScript value="{!URLFOR($Resource.connection20)}"/>
     <style>
         .disabledbutton {
             pointer-events: none;
@@ -24,12 +24,25 @@
         function ProcessPI(leadJson, payloadForNewPI) {
             blockme();
             if ({!isNewMode} || {!isCloneMode}) {
-            NewPIToAWS(leadJson, payloadForNewPI)
-        }else {
-            UpdatePIToAWS(leadJson, payloadForNewPI)
-        }
+                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");
         }
@@ -118,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;
                 }
@@ -143,16 +170,21 @@
         }
         var queryBack = function queryBack(data) {
             console.log('data = ' + data);
-            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;
+            if(document.querySelector("[data-id='LastName']"))
+                document.querySelector("[data-id='LastName']").value = data.object.lastName == null ? '' : data.object.lastName;
+            if(document.querySelector("[data-id='Phone']"))
+                document.querySelector("[data-id='Phone']").value = data.object.phone == null ? '' : data.object.phone;
+            if(document.querySelector("[data-id='Email']"))
+                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;
+            if(document.querySelector("[data-id='Phone']"))
+                document.querySelector("[data-id='Phone']").value = data.object.phone == null ? '' : data.object.phone;
+            if(document.querySelector("[data-id='Email']"))  
+                document.querySelector("[data-id='Email']").value = data.object.email == null ? '' : data.object.email;
             unblockUI();
         };
 
@@ -171,8 +203,14 @@
             payloadJson.AWS_Data_Id__c = '{!AWSDataId}';
             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
+            }else{
+                delete payloadJson.RecordTypeId;
             }
             return payloadJson;
         }
@@ -207,7 +245,9 @@
         function checkRequiredFieldMsg(formData) {
             let blankRequiredFields = '';
             for (i = 0; i < requiredFieldAPIList.length; i++) {
-                if (formData[requiredFieldAPIList[i]]) {
+                if (formData[requiredFieldAPIList[i]] && !VLookUpFields.has(requiredFieldAPIList[i])) {
+                    continue;
+                }else if(VLookUpFields.has(requiredFieldAPIList[i]) && formData[requiredFieldAPIList[i]] != '000000000000000'){
                     continue;
                 } else {
                     let fieldAPIValue = requiredFieldAPIList[i]
@@ -226,6 +266,7 @@
             return blankRequiredFields;
         }
         function saveLeadProcess(saveMode) {
+            EditButton(true);
 
             disableButtonStatus();
             redirectMode = saveMode;
@@ -261,6 +302,7 @@
             errorMsgNode.innerText = errorMsg;
             errorMsgNode.className = 'pbError';
             unblockUI();
+            EditButton(false);
         }
         function hiddenErrorMsgNode() {
             let errorMsgNode = document.getElementById("page:form:block:msgContent");
@@ -362,8 +404,10 @@
                 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;
+                if(document.querySelector("[data-id='Contact_Name__c']"))
+                    document.querySelector("[data-id='Contact_Name__c']").value = result.object.lastName;
+                if(document.querySelector("[data-id='LastName']"))
+                    document.querySelector("[data-id='LastName']").value = result.object.lastName;
             };
             AWSService.query(staticResourcesContact.queryUrl, dataId, queryBackContactName, staticResourcesContact.token);
         }
@@ -399,7 +443,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 +466,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)&&not(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)&&not(isNewMode)&&layoutField.fieldAPI=='RecordTypeId'}"
+                        />
                         <apex:pageblocksectionitem rendered="{!layoutField.isPlaceHolder}">
                         </apex:pageblocksectionitem>
                     </apex:repeat>
@@ -478,53 +529,53 @@
                 if ('{!ifc}' != '') {
                     blockme();
                     //鐘舵��
-                    document.querySelector("[data-id='Status']").value = '鏈窡杩�'
+                    if(document.querySelector("[data-id='Status']"))
+                        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}')
+                    if ('{!ifc.Id}' && document.querySelector("[data-id='Lead_Inquiry_form__c']"))
+                        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']"))
                         document.querySelector("[data-id='Lead_Inquiry_form__c']").value = '{!ifc.Name}'
                     //瀹㈡埛濮撳悕
-                    if ('{!ifc.Contact_Id__c}')
+                    if ('{!ifc.Contact_Id__c}' && document.querySelector("[data-id='Contact_Name__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.Hospital_Name__c}' && document.querySelector("[data-id='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.querySelector("[data-id='Hospital_Name__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}'
-                    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.Department_Class__c}' && document.querySelector("[data-id='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.querySelector("[data-id='Department_Class__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}'
+                    if ('{!ifc.Opp_Name_Search__c}' && document.querySelector("[data-id='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}')
+                    if ('{!ifc.Opp_Name_Search_ID__c}' && document.querySelector("[data-id='Opp_Name_Search__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}'
-                    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.Campaign__c}' && document.querySelector("[data-id='Campaign__c']"))
+                        document.getElementById(document.querySelector("[data-id='Campaign__c']").id +'_lkold').value = '{!ifc.Campaign__c}'
+                    if ('{!ifc.Campaign_ID__c}' && document.querySelector("[data-id='Campaign__c']"))
+                        document.getElementById(document.querySelector("[data-id='Campaign__c']").id +'_lkid').value = '{!ifc.Campaign_ID__c}'
                     //鍙栨秷鍘熷洜
-                    if ('{!ifc.Cancel_Reason__c}')
+                    if ('{!ifc.Cancel_Reason__c}' && document.querySelector("[data-id='Cancel_Reason__c']"))
                         document.querySelector("[data-id='Cancel_Reason__c']").value = '{!ifc.Cancel_Reason__c}'
                     //鐢佃瘽
-                    if ('{!ifc.Phone__c}')
+                    if ('{!ifc.Phone__c}' && document.querySelector("[data-id='Phone']"))
                         document.querySelector("[data-id='Phone']").value = '{!ifc.Phone__c}'
                     //閭欢
-                    if ('{!ifc.Email__c}')
+                    if ('{!ifc.Email__c}' && document.querySelector("[data-id='Email']"))
                         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}')
+                    if ('{!ifc.Opportunity_Division__c}' && document.querySelector("[data-id='Opportunity_Division__c']"))
                         document.querySelector("[data-id='Opportunity_Division__c']").value = '{!ifc.Opportunity_Division__c}'
                     //濮旀墭浜嬮」
-                    if ('{!ifc.Request1__c}') {
+                    if ('{!ifc.Request1__c}' && document.querySelector("[data-id='Request__c']")) {
                         var Request1__c = '{!ifc.Request1__c}';
                         //璧嬪�肩粰绗簩涓閫夋
                         var array = Request1__c.split(';');
@@ -549,7 +600,7 @@
                         }
                     }
                     //绱ф��
-                    if ('{!ifc.Urgent__c}')
+                    if ('{!ifc.Urgent__c}' && document.querySelector("[data-id='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 != ''){
@@ -562,6 +613,9 @@
                     
                     unblockUI();
                 }
+                    
+                document.getElementById('topButtonRow').style = '';
+聽 聽 聽 聽 聽  document.getElementById('bottomButtonRow').style = '';
                 let previous_value = {};
                     jQuery(".lookupInput input").each(function(i,e){
                         let je =jQuery(e);
@@ -687,7 +741,7 @@
                         <tr>
                             <td class="pbTitle">
                                 <img src="/img/s.gif" alt="" class="minWidth" title="" width="1" height="1" />&nbsp;</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