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 |  903 ++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 622 insertions(+), 281 deletions(-)

diff --git a/force-app/main/default/pages/NewAndEditLead.page b/force-app/main/default/pages/NewAndEditLead.page
index 41e3771..3698107 100644
--- a/force-app/main/default/pages/NewAndEditLead.page
+++ b/force-app/main/default/pages/NewAndEditLead.page
@@ -1,49 +1,68 @@
-<apex:page standardController="Lead" extensions="NewAndEditLeadController">
-    <script src="../../soap/ajax/53.0/connection.js" type="text/javascript"></script>
+<apex:page standardController="Lead" extensions="NewAndEditLeadController" id="page">
+    <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.connection20)}"/>
+    <style>
+        .disabledbutton {
+            pointer-events: none;
+            opacity: 0.4;
+        }
+    </style>
     <script>
-        var TestToken = 'eyJhbGciOiJIUzUxMiJ9.eyJjcmVhdGVkIjoxNjQzMDk5NDgyNjA2LCJhcHBpZCI6IjZMeml6Y1JmN2g4eUx4MjgiLCJleHAiOjE2NDM3MDQyODJ9.V_94zxiDwEa1jZpOphw9W4QfjmqqKQcjCZ4z31KsDe7SjCF9sxKSKiZe6rp8ML6-namlVSyzqpTeZQ6NJi88Og';
-        var AWSAppId = '6LzizcRf7h8yLx28';
-        var AWSAppSecret = 'UkLohQcHNjg164SdRc7gnS4rgu4d7FjINM3mtzRbyTS6IrUP5V';
-        var NewLeadURL = 'https://52.83.101.205/api/lead/insert';
-        var UpdateLeadURL = '';
-        var QueryLeadURL = 'https://52.83.101.205/api/lead/query';
-        var TransactionURL = "https://52.83.101.205/api/tx/confirm";
-        var VLookUpFields = new Set(['Hospital_Name__c', 'Department_Class__c', 'Contact_Name__c', 'Campaign__c']);
-        var LeadIdPage = "https://ocsm--stagefull--c.visualforce.com/apex/NewAndEditLead?RecordType=01210000000QiRa";
-        // function ProcessPI(payloadForNewPI) {
-        //     let TokenURL = "https://52.83.101.205/api/token/getToken?app_id=" + AWSAppId + "&app_secret=" + AWSAppSecret;
-        //     console.log('Get Token Process');
-        //     fetch(TokenURL, {
-        //         method: 'GET',
-        //         mode: 'no-cors',
-        //         headers: {
-        //             'Content-Type': 'application/json'
-        //         }
-        //     }).then((data) => {
-        //         console.log(data.text())
-        //         return data.text()
-        //     }).then((awsToken) => {
-        //         if({!isNewMode}){
-        //             NewPIToAWS(awsToken, payloadForNewPI)
-        //         }else{
-        //             UpdatePIToAWS(awsToken, payloadForNewPI)
-        //         }              
-        //     });
-        // }
-
-        function loadAWSAuthentication() {
-            console.log('Get Sesion Session');
-            sforce.connection.sessionId = '{!GETSESSIONID()}';
-            let awsConfiguration = "SELECT App_Id__c,App_Secret__c,New_Lead_URL__c FROM AWS_Integration_Info__mdt  WHERE DeveloperName = 'AWS_Integration_Configuration'";
-            let awsConfigurationResult = sforce.connection.query(awsConfiguration);
-            let recordsAWSConfiguration = awsConfigurationResult.getArray("records");
-            if (recordsAWSConfiguration && recordsAWSConfiguration.length > 0) {
-                recordAWSConfiguration = recordsAWSConfiguration[0];
-                AWSAppId = recordAWSConfiguration.App_Id__c;
-                AWSAppSecret = recordAWSConfiguration.App_Secret__c;
-                NewLeadURL = recordAWSConfiguration.New_Lead_URL__c;
+        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}');
+        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} || {!isCloneMode}) {
+                NewPIToAWS(leadJson, payloadForNewPI)
+            }else {
+                UpdatePIToAWS(leadJson, payloadForNewPI)
             }
-            console.log('AWS Configuration:' + AWSAppId + '----- APP Secret:' + AWSAppSecret);
+        }
+
+        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");
+        }
+
+        function disableButton(obj) {
+            obj.classList.add("btnDisabled");
+        }
+
+        function disableButtonStatus() {
+            let btnList = document.getElementsByClassName('btn');
+            for (let i = 0; i < btnList.length; i++) {
+                disableButton(btnList[i]);
+            }
+        }
+
+        function enableButtonStatus() {
+            let btnList = document.getElementsByClassName('btn');
+            for (let i = 0; i < btnList.length; i++) {
+                enableButton(btnList[i]);
+            }
         }
 
         function getPIPayload(leadJson) {
@@ -63,44 +82,44 @@
         }
 
         function validateFieldValueFormate() {
+            let error_msg = '';
             let textEmail = "[data-id='Email']";
             let textPhone = "[data-id='Phone']";
             //Email
-            let email = document.querySelector(textEmail).value;
-            let phone = document.querySelector(textPhone).value;
+            // 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 regEmail = /^[\w-]{3,12}@[\da-zA-Z]{2,6}\.[a-zA-Z]+$/;
-            let regPhone = /^1[3|5|8|7][0-9]\d{4,8}$/;
+            // if (phone.value != '' && !/^1[3|5|8|7][0-9]\d{4,8}$/.test(phone.value)) {
+            //     error_msg += ';鐢佃瘽鍙风爜閿欒';
+            // }
 
-            let emailFormate = regEmail.test(email);
-            let phoneFormate = regPhone.test(phone);
-
-            console.log(emailFormate);
-            console.log(phoneFormate);
-
-
-            email.oninput = function () {
-                //email
-                if (emailFormate) {
-                    //phone
-                    phone.oninput = function () {
-                        if (phoneFormate) {
-                            return true;
-                        } else {
-                            return false;
-                        }
+            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 += ';涓嬫媺妗嗕笉鑳戒富鍔ㄩ�夋嫨瀵嗘枃閫夐」';
                     }
-                } else {
-                    return false;
                 }
             }
-            return true;
+
+            if (error_msg.length > 0 && error_msg[0] == ';') {
+                error_msg = error_msg.substring(1);
+            }
+
+            return error_msg;
         }
 
         function getLeadInformation() {
 
             let nodelist = document.querySelectorAll("[data-id]");
             let result = {}
+            result.RecordTypeId = '{!rtTypeId}';
             for (let index = 0; index < nodelist.length; index++) {
                 if (VLookUpFields.has(nodelist[index].getAttribute("data-id"))) {
                     console.log(nodelist[index].id.indexOf('lkwgt'));
@@ -109,220 +128,288 @@
                         let vlookUpNodeValue = document.getElementById(vlookUpNodeId).value;
                         result[nodelist[index].getAttribute("data-id")] = vlookUpNodeValue;
                     }
+                } else if (nodelist[index].type == 'checkbox') {
+                    result[nodelist[index].getAttribute("data-id")] = nodelist[index].checked;
+                } else if (nodelist[index].type == 'select-multiple') {
+                    //After Update By zhj 20220411 Start
+                    let multiple = nodelist[index].getAttribute("data-id");
+                    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;
                 }
+                let x = index + 1;
+                if (x <= nodelist.length - 1 && (nodelist[x].getAttribute("data-id") == nodelist[index].getAttribute("data-id"))) {
+                    index++;
+                }
             }
-            console.log(JSON.stringify(result));
-            console.log('lead Number:' + result.Lead_No__c);
-            let leadJson = JSON.stringify(result);
-            let transId = "11111";
-            let AWSDataId = "22222";
-
-            // Visualforce.remoting.Manager.invokeAction(
-            //     '{!$RemoteAction.NewAndEditLeadController.saveLead}',
-            //     leadJson, transId,{!isNewMode},
-            //     function (result, event) {
-            //         console.log("result: " + result);
-            //         window.open('/' + result.recordId, "_self");
-            //     },
-            //     { escape: true }
-            // );
             return result;
-
-
-            //绗簩绉�
-            // let leadJson = {};
-            // let fieldApiList = '{!fieldApiListStr}'.substring(1, '{!fieldApiListStr}'.length - 1).replace(/\"/g, "").split(',');
-            // for (var i in fieldApiList) {
-            //     if(document.querySelector("[data-id=\"" + fieldApiList[i] + "\"]") != null){
-            //         leadJson[fieldApiList[i]] = document.querySelector("[data-id=\"" + fieldApiList[i] + "\"]").value;
-            //     }else{
-            //         leadJson[fieldApiList[i]] = '';
-            //     }
-            // }
-            // return leadJson;
         }
-        function QueryLeadFromAWS(awsDataId) {
-            fetch(QueryLeadURL + '?dataId=' + awsDataId, {
-                method: 'GET',
-                headers: {
-                    'Content-Type': 'application/json',
-                    'pi_token': TestToken
-                }
-            }).then((data) => {
-                console.log('data = ' + data);
-                document.querySelector("[data-id='LastName']").value = data.object[0].lastName;
-                document.querySelector("[data-id='phone']").value = data.object[0].phone;
-                document.querySelector("[data-id='email']").value = data.object[0].email;
-            })
+        function QueryLeadFromAWS() {
+            AWSService.query(staticResources.queryUrl, '{!AWSDataId}', queryBack, staticResources.token);
         }
-        function UpdatePIToAWS(awsToken, payloadForNewPI) {
-            fetch(UpdateLeadURL, {
-                method: 'POST',
-                body: payloadForNewPI,
-                headers: {
-                    'Content-Type': 'application/json',
-                    //'token': awsToken
+        function QueryLeadFromAWSIFS() {
+            //staticResourceInquiryForm
+            AWSService.query(staticResourceInquiryForm.queryUrl, '{!AWSDataIdInquiryForm}', queryBackIFS, staticResourceInquiryForm.token);
+        }
+        var queryBack = function queryBack(data) {
+            console.log('data = ' + data);
+            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
+            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 insertOrUpdateBack = function insertOrUpdateBack(payloadJson, result, isNewMode) {
+            console.log(result);
+            let r = result;
+            console.log('Result from AWS' + r);
+            console.log('payloadJson=' + payloadJson);
+            payloadJson.LastName = r.object[0].lastName;
+            payloadJson.Phone = r.object[0].phone;
+            payloadJson.Email = r.object[0].email;
+            payloadJson.Name_Encrypted__c = r.object[0].lastNameEncrypt;
+            payloadJson.Phone_Encrypted__c = r.object[0].phoneEncrypt;
+            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 || {!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;
+        }
+
+        var redirectCallBack = function redirectCallBack(sfId, errorMessage) {
+            if (sfId) {
+                if (redirectMode == 'Save') {
+                    window.open('/' + sfId, '_self');
+                } else if (redirectMode == 'SaveAndNew') {
+                    window.open('/setup/ui/recordtypeselect.jsp?ent=' + '{!sobjecttypeForFrontEnd}' + '&retURL=/' + '{!sobjectPrefix}' + '/o&save_new_url=/' + '{!sobjectPrefix}' + '/e?retURL=%2F' + '{!sobjectPrefix}' + '%2Fo', '_self');
                 }
-            }).then((data) => { return data.json() }).then((result) => {
-                let r = JSON.parse(result);
-                console.log('Result from AWS' + r);
-                leadJson.lastName = r.object[0].lastName;
-                leadJson.phone = r.object[0].phone;
-                leadJson.email = r.object[0].email;
-                leadJson.Name_Encrypted__c = r.object[0].lastNameEncrypt;
-                leadJson.Phone_Encrypted__c = r.object[0].phoneEncrypt;
-                leadJson.Email_Encrypted__c = r.object[0].emailEncrypt;
-                leadJson.AWS_Data_Id__c = '{!AWSDataId}';
-                let transId = result.txId;
-                let AWSDataId = r.object[0].dataId;
+            } else {
+                // alert(errorMessage);
+                alertErrorMessage(errorMessage);
+            }
+        }
 
-                // Assign the value to NonPII Data Payload
-                //7. New NonPII Data To Salesforce
-                Visualforce.remoting.Manager.invokeAction(
-                    '{!$RemoteAction.NewAndEditLeadController.saveLead}',
-                    leadJson, transId, {!isNewMode},
-                function (result, event) {
-                    if (event.status) {
-                        if (result.stauts == 'success') {
-                            //get Lead Id from sf backend
-                            let leadId = result.recordId;
 
-                            //8. Confirm Trans to AWS
-                            transParameters = {
-                                txId: transId,
-                                isSuccess: event.status
-                            };
-                            fetch(TransactionURL, {
-                                method: 'POST',
-                                body: JSON.stringify(transParameters),
-                                headers: {
-                                    'Content-Type': 'application/json',
-                                    // 'token': awsToken
-                                }
-                            }).then((result) => {
-                                if (JSON.parse(result).status == 0) {
-                                    //9. Redirect to lead Id page.
-                                    window.location.href = LeadIdPage;
-                                    // let data = {
-                                    //     transId:result.txId,
-                                    //     dataId:dataId,
-                                    //     status:result.status
-                                    // }
-                                    // return JSON.stringify(data);
-                                }
-                            })
-                            // window.open(LeadIdPage);
-                            // console.log(result);
-                            // window.location.href = LeadIdPage;
-                        } else {
-                            //result.stauts == 'fail'
-                        }
+        function UpdatePIToAWS(leadJson, payloadForNewPI) {
+            let controllerSaveMethod = '{!$RemoteAction.NewAndEditLeadController.saveLead}';
+            let obj = JSON.parse(payloadForNewPI);
+            obj[0].dataId = '{!AWSDataId}';
+            let payloadForNewPIJson = JSON.stringify(obj);
+            AWSService.update(staticResources.updateUrl, leadJson, payloadForNewPIJson, controllerSaveMethod, staticResources.token, staticResources.transactionUrl, false, insertOrUpdateBack, redirectCallBack);
+        }
+
+        function NewPIToAWS(leadJson, payloadForNewPI) {
+            let controllerSaveMethod = '{!$RemoteAction.NewAndEditLeadController.saveLead}';
+            AWSService.insert(staticResources.newUrl, leadJson, payloadForNewPI, controllerSaveMethod, staticResources.token, staticResources.transactionUrl, true, insertOrUpdateBack, redirectCallBack);
+        }
+
+        function checkRequiredFieldMsg(formData) {
+            let blankRequiredFields = '';
+            for (i = 0; i < requiredFieldAPIList.length; 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]
+                    let fieldLabelValue = fieldAPIToLabelMap[fieldAPIValue];
+                    if (requiredAPIToChangedLabelMap.has(fieldAPIValue)) {
+                        fieldLabelValue = requiredAPIToChangedLabelMap.get(fieldAPIValue);
                     }
-                },
-                { escape: true }
-            );
-        }).catch (error => {
-            console.log(error);
-        });
-        }
-        function NewPIToAWS(leadJson,awsToken, payloadForNewPI) {
-            console.log('Process New PI Data');
-            console.log(JSON.stringify(payloadForNewPI));
-            fetch(NewLeadURL, {
-                method: 'POST',
-                body: payloadForNewPI,
-                headers: {
-                    'Content-Type': 'application/json',
-                    'pi_token': awsToken
-                }
-            }).then((data) => { console.log('data='+data);return data.json() }).then((result) => {
-                console.log(result);
-                let r = result;
-                console.log('Result from AWS' + r);
-                console.log('leadJson='+leadJson);
-                leadJson.lastName = r.object[0].lastName;
-                leadJson.phone = r.object[0].phone;
-                leadJson.email = r.object[0].email;
-                leadJson.Name_Encrypted__c = r.object[0].lastNameEncrypt;
-                leadJson.Phone_Encrypted__c = r.object[0].phoneEncrypt;
-                leadJson.Email_Encrypted__c = r.object[0].emailEncrypt;
-                leadJson.AWS_Data_Id__c = 'testAWSID';
-                let transId = result.txId + '';
-                let AWSDataId = r.object[0].dataId;
-
-                // Assign the value to NonPII Data Payload
-                //7. New NonPII Data To Salesforce
-                Visualforce.remoting.Manager.invokeAction(
-                    '{!$RemoteAction.NewAndEditLeadController.saveLead}',
-                    JSON.stringify(leadJson), transId, {!isNewMode},
-                function (result, event) {
-                    if (event.status) {
-                        console.log('Lead Id from SF Backend:'+JSON.stringify(result));
-                        if (result.status == 'success') {
-                            //get Lead Id from sf backend
-                            let leadId = result.recordId;                           
-                            window.open('/'+leadId,'_self');
-                            //8. Confirm Trans to AWS
-                            // transParameters = {
-                            //     txId: transId,
-                            //     isSuccess: result.status
-                            // };
-                            // fetch(TransactionURL, {
-                            //     method: 'POST',
-                            //     body: JSON.stringify(transParameters),
-                            //     headers: {
-                            //         'Content-Type': 'application/json',
-                            //         'pi_token': TestToken
-                            //     }
-                            // }).then((result) => {
-                            //     if (JSON.parse(result).status == 0) {
-                            //         //9. Redirect to lead Id page.
-                            //         window.location.href = LeadIdPage;
-                            //         // let data = {
-                            //         //     transId:result.txId,
-                            //         //     dataId:dataId,
-                            //         //     status:result.status
-                            //         // }
-                            //         // return JSON.stringify(data);
-                            //     }
-                            // })
-                            // window.open(LeadIdPage);
-                            // console.log(result);
-                            // window.location.href = LeadIdPage;
-                        } else {
-                            //result.stauts == 'fail'
-                        }
+                    if (blankRequiredFields == '') {
+                        blankRequiredFields = blankRequiredFields + fieldLabelValue;
+                    } else {
+                        blankRequiredFields = blankRequiredFields + ',' + fieldLabelValue;
                     }
-                },
-                { escape: true }
-            );
-        }).catch (error => {
-            console.log(error);
-        });
+
+                }
+            }
+            return blankRequiredFields;
         }
-        function saveLeadProcess() {
+        function saveLeadProcess(saveMode) {
+            EditButton(true);
+
+            disableButtonStatus();
+            redirectMode = saveMode;
+            console.log('redirectMode' + redirectMode);
+            hiddenErrorMsgNode();
             //1. Get Lead Information from Form
             let leadJson = getLeadInformation();
             //2. Validate the Lead field value formate, for example the email formate or phone formate
-            // let validationResultMessage = validateFieldValueFormate();
-            // console.log(validationResultMessage);
-            // if (!validationResultMessage) {
-            //     //Popup error message.  - To Do After POC
-            //     alert('閭鎴栫數璇濆彿鐮佹牸寮忔湁璇�');
-            // }
-
-            // //3. Prepare the payload for New PI API To AWS - To Do
+            let validationResultMessage = validateFieldValueFormate();
+            console.log(validationResultMessage);
+            if (validationResultMessage) {
+                //Popup error message.  - To Do After POC
+                alertErrorMessage(validationResultMessage);
+                return
+            }
+            // Check Required Field
+            let checkRequiredFieldMsgResult = checkRequiredFieldMsg(leadJson);
+            if (checkRequiredFieldMsgResult) {
+                alertErrorMessage('{!Input_Required_Field_Msg}' + checkRequiredFieldMsgResult);
+                return
+            }
+            //3. Prepare the payload for New PI API To AWS - To Do
             let payloadForNewPI = getPIPayload(leadJson);
 
-            // //4. Get Authentication Information for AWS
-            // loadAWSAuthentication();
+            //4. lead to AWS 
+            ProcessPI(leadJson, payloadForNewPI);
+        }
 
-            // //5. lead to AWS 
-            //ProcessPI(payloadForNewPI);
-            awsToken = TestToken;
-            NewPIToAWS(leadJson,awsToken, payloadForNewPI)
+        function alertErrorMessage(errorMsg) {
+            enableButtonStatus();
+            let errorMsgNode = document.getElementById("page:form:block:msgContent");
+            errorMsg = '閿欒锛氭棤鏁堟暟鎹��' + '\n' + errorMsg;
+            errorMsgNode.innerText = errorMsg;
+            errorMsgNode.className = 'pbError';
+            unblockUI();
+            EditButton(false);
+        }
+        function hiddenErrorMsgNode() {
+            let errorMsgNode = document.getElementById("page:form:block:msgContent");
+            errorMsgNode.innerText = '';
+            errorMsgNode.className = '';
+        }
+        var newSearchContactWindow = null;
+        var contactHtmlString = '<img src="/img/s.gif" onclick="searchContact(\'page:form:contactId\')" alt="Reference Document Number Lookup" class="lookupIcon"  title="Reference Document Number Lookup (New Window)"/>';
+        function htmlToElement(html) {
+            var template = document.createElement('template');
+            html = html.trim(); // Never return a text node of whitespace as the result
+            template.innerHTML = html;
+            return template.content.firstChild;
+        }
+        function searchContact(contactNodeId) {
+            //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+"&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) {
+                    newSearchContactWindow.focus();
+                }
+                return false;
+            } else {
+                //alertErrorMessage('{!PIPL_Input_Account_Error_Msg}');
+                alertErrorMessage('璇峰厛閫夋嫨鍖婚櫌鍚�');
+            }
+        }
+        function closePopupWindow() {
+            if (null != newSearchContactWindow) {
+                newSearchContactWindow.close();
+            }
+            let contactInfoStr = document.getElementById('page:form:contactId').value;
+            console.log('closePopup:' + contactInfoStr);
+            let contactInfo = JSON.parse(contactInfoStr);
+            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);
+            console.log(lookUpNode);
+            if (!{!isNewMode}) {
+                //1. Query Contact from AWS by AWSDataId
+                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]);
+        }
+
+        function queryContactName() {
+            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}';
+            }
+            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){
+                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);
         }
     </script>
     <div class="bPageTitle">
@@ -345,10 +432,9 @@
         </div>
         <div class="ptBreadcrumb"></div>
     </div>
-    <apex:form >
-        <!-- Error Msg-->
-        <apex:pageMessages />
-        <apex:pageblock >
+    <apex:form id="form">
+        <apex:inputHidden value="{!contactId}" id="contactId" />
+        <apex:pageblock id="block">
             <div class="pbHeader">
                 <table cellspacing="0" cellpadding="0" border="0">
                     <tbody>
@@ -357,23 +443,38 @@
                                 <img src="/img/s.gif" alt="" class="minWidth" title="" width="1" height="1" />
                                 <h2 class="mainTitle">鎰忓悜缂栬緫</h2>
                             </td>
-                            <td class="pbButton" id="topButtonRow">
-                                <input class="btn" type="Button" value="淇濆瓨" onclick="saveLeadProcess()" />
-                                <input class="btn" type="Button" value="淇濆瓨骞舵柊寤�" onclick="saveLeadProcess()" />
+                            <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="鍙栨秷" />
                             </td>
                         </tr>
                     </tbody>
                 </table>
             </div>
+            <!-- Error Msg-->
+            <div style="text-align: center;">
+                <apex:outputPanel id="errorMsg">
+                    <apex:pageMessages id="msgContent" escape="false" />
+                </apex:outputPanel>
+            </div>
+            <br/>
             <!-- Iterate the layoutSections, which is a list of sections -->
             <apex:repeat value="{!layoutSections}" var="layoutSection">
-                <apex:pageBlockSection title="{!layoutSection.name}" collapsible="{!layoutSection.allowCollapse}" columns="{!layoutSection.columns}">
+                <apex:pageBlockSection title="{!layoutSection.name}" showHeader="{!layoutSection.useHeader}" collapsible="{!layoutSection.allowCollapse}"
+                    columns="{!layoutSection.columns}">
 
                     <!--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>
@@ -382,17 +483,257 @@
             </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
-                    document.querySelector("[data-id='LastName']").parentNode.parentNode.parentNode.children[2].children[0].innerText = '濮撳悕';
+                    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}) {
-                    //2.1. Query AWS Data by 
-                    let leadPIData = QueryLeadFromAWS({!awsDataId});
-                        //2.2. Update the value to Front-End
-                        //document.querySelector("[data-id='LastName']").value = '234234';
-                    }   
+                    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();
+                    //鐘舵��
+                    if(document.querySelector("[data-id='Status']"))
+                        document.querySelector("[data-id='Status']").value = '鏈窡杩�'
+                    //浼氳璇㈤棶鍗�
+                    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}' && 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.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.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.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}' && 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.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}' && document.querySelector("[data-id='Cancel_Reason__c']"))
+                        document.querySelector("[data-id='Cancel_Reason__c']").value = '{!ifc.Cancel_Reason__c}'
+                    //鐢佃瘽
+                    if ('{!ifc.Phone__c}' && document.querySelector("[data-id='Phone']"))
+                        document.querySelector("[data-id='Phone']").value = '{!ifc.Phone__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}' && document.querySelector("[data-id='Opportunity_Division__c']"))
+                        document.querySelector("[data-id='Opportunity_Division__c']").value = '{!ifc.Opportunity_Division__c}'
+                    //濮旀墭浜嬮」
+                    if ('{!ifc.Request1__c}' && document.querySelector("[data-id='Request__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;
+                                }
+                            }
+                        }
+                    }
+                    //绱ф��
+                    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 != ''){
+                        document.querySelector("[data-id='Company']").value = document.querySelector("[data-id='Hospital_Name__c']").value;
+                    }
+                    //鏌ユ壘瀹㈡埛濮撳悕
+                    queryContactName2();
+                    //瑙e瘑
+                    QueryLeadFromAWSIFS();
+                    
+                    unblockUI();
+                }
+                    
+                document.getElementById('topButtonRow').style = '';
+聽 聽 聽 聽 聽  document.getElementById('bottomButtonRow').style = '';
+                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">
@@ -400,9 +741,9 @@
                         <tr>
                             <td class="pbTitle">
                                 <img src="/img/s.gif" alt="" class="minWidth" title="" width="1" height="1" />&nbsp;</td>
-                            <td class="pbButtonb" id="bottomButtonRow">
-                                <input class="btn" type="Button" value="淇濆瓨" onclick="saveLeadProcess()" />
-                                <input class="btn" type="Button" value="淇濆瓨骞舵柊寤�" onclick="saveLeadProcess()" />
+                            <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="鍙栨秷" />
                             </td>
                         </tr>

--
Gitblit v1.9.1