Li Jun
2022-03-17 69dc5df6ec51f6f7f6737c61d9c4c1e7757a2b96
force-app/main/default/pages/NewAndEditLead.page
@@ -14,13 +14,14 @@
        AWSService.sfSessionId = '{!GETSESSIONID()}';
        var staticResources = JSON.parse('{!staticResource}');
        var staticResourcesContact = JSON.parse('{!staticResourceContact}');
        var staticResourceInquiryForm = JSON.parse('{!staticResourceInquiryForm}');
        var requiredFieldAPIList = JSON.parse('{!requiredFieldAPIListStr}');
        var fieldAPIToLabelMap = JSON.parse('{!fieldAPIToLabelMapStr}');
        var redirectMode = 'Save';//1. Save 2. SaveAndNew
        var requiredAPIToChangedLabelMap = new Map();
        requiredAPIToChangedLabelMap.set('LastName', '{!PIPL_Name_Label}');
        console.log('{!contactsInfo}');
        var VLookUpFields = new Set(['Hospital_Name__c', 'Department_Class__c', 'Contact_Name__c', 'Campaign__c']);
        var VLookUpFields = new Set(['Hospital_Name__c', 'Department_Class__c', 'Contact_Name__c', 'Campaign__c', 'Lead_Inquiry_form__c', 'Opp_Name_Search__c']);
        function ProcessPI(leadJson, payloadForNewPI) {
            blockme();
            if ({!isNewMode}) {
@@ -133,11 +134,15 @@
        function QueryLeadFromAWS() {
            AWSService.query(staticResources.queryUrl, '{!AWSDataId}', queryBack, staticResources.token);
        }
        function QueryLeadFromAWSIFS() {
            //staticResourceInquiryForm
            AWSService.query(staticResourceInquiryForm.queryUrl, '{!AWSDataIdInquiryForm}', queryBack, staticResourceInquiryForm.token);
        }
        var queryBack = function queryBack(data) {
            console.log('data = ' + data);
            document.querySelector("[data-id='LastName']").value = data.object.lastName.replace(/"/g,"");
            document.querySelector("[data-id='Phone']").value = data.object.phone.replace(/"/g,"");
            document.querySelector("[data-id='Email']").value = data.object.email.replace(/"/g,"");
            document.querySelector("[data-id='LastName']").value = data.object.lastName == null ? '' : data.object.lastName;
            document.querySelector("[data-id='Phone']").value = data.object.phone == null ? '' : data.object.phone;
            document.querySelector("[data-id='Email']").value = data.object.email == null ? '' : data.object.email;
            unblockUI();
        };
@@ -211,7 +216,7 @@
            return blankRequiredFields;
        }
        function saveLeadProcess(saveMode) {
            disableButtonStatus();
            redirectMode = saveMode;
            console.log('redirectMode' + redirectMode);
@@ -298,27 +303,37 @@
                queryContactName()
                //document.querySelector("[data-id='Contact_Name__c']").value = '王奎';
            }
            let parentNode = document.querySelector("[data-id='Contact_Name__c']").parentNode;
            document.querySelector("[data-id='Contact_Name__c']").removeAttribute("onchange");
            parentNode.replaceChild(lookUpNode, document.querySelector("[data-id='Contact_Name__c']").parentNode.children[2]);
        let parentNode = document.querySelector("[data-id='Contact_Name__c']").parentNode;
        document.querySelector("[data-id='Contact_Name__c']").removeAttribute("onchange");
        parentNode.replaceChild(lookUpNode, document.querySelector("[data-id='Contact_Name__c']").parentNode.children[2]);
        }
        function queryContactName() {
            let sfId = document.getElementById(document.querySelector("[data-id='Contact_Name__c']").id + '_lkid').value;
            let contactsInfo = JSON.parse('{!contactsInfo}');
            let dataId = contactsInfo[sfId];
            let url = staticResourcesContact.queryUrl + '?dataId=' + dataId;
            fetch(url, {
                method: 'GET',
                headers: {
                    'Content-Type': 'application/json',
                    'pi-token': staticResources.token
                }
            }).then((data) => {
                return data.json();
            }).then((result) => {
            let dataId = '';
            if ('{!contactsInfo}' != '') {
                let contactsInfo = JSON.parse('{!contactsInfo}');
                dataId = contactsInfo[sfId];
            } else if ('{!contactDataId}' != '') {
                dataId = '{!contactDataId}';
            }
            let queryBackContactName = function queryBackContactName(result){
                document.querySelector("[data-id='Contact_Name__c']").value = result.object.lastName;
            })
            };
            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;
            // })
        }
    </script>
    <div class="bPageTitle">
@@ -385,19 +400,156 @@
            </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) {
                                document.querySelector("[data-id='" + layoutField.fieldAPI + "']").disabled = !(layoutField.editableField);
                            }
                        }
                    }
                    //1. Set Last Name label
                    console.log('NameLabel = ' + '{!PIPL_Name_Label}')
                    document.querySelector("[data-id='LastName']").parentNode.parentNode.parentNode.children[0].children[0].innerText = '{!PIPL_Name_Label}';
                    //2. Query AWS Data by dataId 
                    console.log('Mode for Lead Page:' + {!isNewMode});
                    if (!{!isNewMode}) {
                        blockme();//for loading search by Li Jun 20220218
                        QueryLeadFromAWS();
                if (!{!isNewMode}) {
                    blockme();//for loading search by Li Jun 20220218
                    QueryLeadFromAWS();
                }
                //Replace Vlookup Field
                replaceSearchContactLookup();
                //3. Set Readonly Attribute
                document.querySelector("[data-id='OwnerId']").classList.add("disabledbutton");
                //如果是联系人过来的点击新建意向
                if('{!isQueryContact}' == '1'){
                    //查找客户姓名
                    queryContactName();
                }
                //如果是产品咨询单过来的
                if ('{!ifc}' != '') {
                    blockme();
                    //状态
                    document.querySelector("[data-id='Status']").value = '跟进中'
                    //会议询问单
                    if ('{!ifc.Id}')
                        document.getElementById('page:form:block:j_id34:0:j_id35:j_id36:15:j_id37_lkid').value = '{!ifc.Id}'
                    if ('{!ifc.Name}')
                        document.querySelector("[data-id='Lead_Inquiry_form__c']").value = '{!ifc.Name}'
                    //客户姓名
                    // if('{!ifc.Contact_Name__c}')
                    // document.querySelector("[data-id='Contact_Name__c']").value = '{!ifc.Contact_Name__c}'
                    if ('{!ifc.Contact_Id__c}')
                        document.getElementById(document.querySelector("[data-id='Contact_Name__c']").id + '_lkid').value = '{!ifc.Contact_Id__c}'
                    //医院
                    if ('{!ifc.Hospital_Name__c}')
                        document.getElementById('page:form:block:j_id34:0:j_id35:j_id36:2:j_id37_lkold').value = '{!ifc.Hospital_Name__c}'
                    if ('{!ifc.Hospital_ID__c}')
                        document.getElementById('page:form:block:j_id34:0:j_id35:j_id36:2:j_id37_lkid').value = '{!ifc.Hospital_ID__c}'
                    //战略科室分类
                    if ('{!ifc.Department_Class__c}')
                        document.getElementById('page:form:block:j_id34:0:j_id35:j_id36:4:j_id37_lkold').value = '{!ifc.Department_Class__c}'
                    if ('{!ifc.Department_ID__c}')
                        document.getElementById('page:form:block:j_id34:0:j_id35:j_id36:4:j_id37_lkid').value = '{!ifc.Department_ID__c}'
                    //已有询价名称
                    if ('{!ifc.Opp_Name_Search__c}')
                        document.getElementById('page:form:block:j_id34:0:j_id35:j_id36:12:j_id37_lkold').value = '{!ifc.Opp_Name_Search__c}'
                    if ('{!ifc.Opp_Name_Search_ID__c}')
                        document.getElementById('page:form:block:j_id34:0:j_id35:j_id36:12:j_id37_lkid').value = '{!ifc.Opp_Name_Search_ID__c}'
                    //主要学会
                    if ('{!ifc.Campaign__c}')
                        document.getElementById('page:form:block:j_id34:1:j_id35:j_id36:3:j_id37_lkold').value = '{!ifc.Campaign__c}'
                    if ('{!ifc.Campaign_ID__c}')
                        document.getElementById('page:form:block:j_id34:1:j_id35:j_id36:3:j_id37_lkid').value = '{!ifc.Campaign_ID__c}'
                    //取消原因
                    if ('{!ifc.Cancel_Reason__c}')
                        document.querySelector("[data-id='Cancel_Reason__c']").value = '{!ifc.Cancel_Reason__c}'
                    //电话
                    if ('{!ifc.Phone__c}')
                        document.querySelector("[data-id='Phone']").value = '{!ifc.Phone__c}'
                    //邮件
                    if ('{!ifc.Email__c}')
                        document.querySelector("[data-id='Email']").value = '{!ifc.Email__c}'
                    //姓名
                    if ('{!ifc.Last_Name__c}')
                        document.querySelector("[data-id='LastName']").value = '{!ifc.Last_Name__c}'
                    //咨询单来源
                    if ('{!ifc.LeadSource__c}' && document.querySelector("[data-id='LeadSource__c']"))
                        document.querySelector("[data-id='LeadSource__c']").value = '{!ifc.LeadSource__c}'
                    //意向区分
                    if ('{!ifc.Opportunity_Division__c}')
                        document.querySelector("[data-id='Opportunity_Division__c']").value = '{!ifc.Opportunity_Division__c}'
                    //委托事项
                    if ('{!ifc.Request1__c}') {
                        var Request1__c = '{!ifc.Request1__c}';
                        //赋值给第二个多选框
                        var array = Request1__c.split(';');
                        //赋值给第二个多选框
                        for (var i = 0; i < array.length; i++) {
                            for (var j = document.querySelector("[data-id='Request__c']").parentNode.children[1].children[0].children[1].children[0].children[0].options.length - 1; j >= 0; j--) {
                                if (array[i] == document.querySelector("[data-id='Request__c']").parentNode.children[1].children[0].children[1].children[0].children[0].options[j].innerHTML) {
                                    var option = new Option();
                                    option.text = array[i];
                                    option.value = j;
                                    document.querySelector("[data-id='Request__c']").parentNode.children[1].children[0].children[1].children[2].children[0].add(option);
                                }
                            }
                        }
                        //删除第一个多选框的重复值
                        for (var i = 0; i < array.length; i++) {
                            for (var j = document.querySelector("[data-id='Request__c']").parentNode.children[1].children[0].children[1].children[0].children[0].options.length - 1; j >= 0; j--) {
                                if (array[i] == document.querySelector("[data-id='Request__c']").parentNode.children[1].children[0].children[1].children[0].children[0].options[j].innerHTML) {
                                    document.querySelector("[data-id='Request__c']").parentNode.children[1].children[0].children[1].children[0].children[0].options[j] = null;
                                }
                            }
                        }
                    }
                    //Replace Vlookup Field
                    replaceSearchContactLookup();
                    //3. Set Readonly Attribute
                    document.querySelector("[data-id='OwnerId']").classList.add("disabledbutton");
                    //紧急
                    if ('{!ifc.Urgent__c}')
                        document.querySelector("[data-id='urgent__c']").checked = '{!ifc.Urgent__c}' == 'false' ? false : true;
                    //查找客户姓名
                    queryContactName();
                    //解密
                    QueryLeadFromAWSIFS();
                    unblockUI();
                }
                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 = '';
                        }
                    }
                });
                });
            </script>
            <div class="pbBottomButtons">