黄千龙
2022-04-08 01f207d979d6be17c8cdec293feab48828c0ec3e
force-app/main/default/pages/NewRepair.page
@@ -2,7 +2,7 @@
  @description       : 
  @author            : ChangeMeIn@UserSettingsUnder.SFDoc
  @group             : 
  @last modified on  : 03-19-2022
  @last modified on  : 03-30-2022
  @last modified by  : ChangeMeIn@UserSettingsUnder.SFDoc
-->
<apex:page standardController="Repair__c" extensions="NewRepairController" id="page">
@@ -40,6 +40,15 @@
                // alert(errorMessage);
                alertErrorMessage(errorMessage);
            }
        }
        function GetEleApiName(ele){
            for(let ci in ele.classList){
                let c = ele.classList[ci];
                if(c.indexOf('PIBackApi_')>-1){
                    return c.replace('PIBackApi_','');
                }
            }
            return '';
        }
        //Query Required Parameter
@@ -131,8 +140,10 @@
                    console.log(nodelist[index].id.indexOf('lkwgt'));
                    if (nodelist[index].id.indexOf('lkwgt') == -1) {
                        let vlookUpNodeId = nodelist[index].id + '_lkid';
                        let vlookUpNodeValue = document.getElementById(vlookUpNodeId).value;
                        result[nodelist[index].getAttribute("data-id")] = vlookUpNodeValue;
                        if(document.getElementById(vlookUpNodeId)!=null){
                            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;
@@ -152,14 +163,54 @@
                }
            }
            for (let i = 0; i < userVLookUpFields.length; i++) {
                let userVlookUpNodeValue = document.querySelector("[data-id='" + userVLookUpFields[i] + "']").children[1].value;
                console.log('userVlookUpNodeValue:'+userVlookUpNodeValue);
                if(userVlookUpNodeValue!='000000000000000'){
                    result[userVLookUpFields[i]] = userVlookUpNodeValue;
                if(document.querySelector("[data-id='" + userVLookUpFields[i] + "']")!=null){
                    // let userVlookUpNodeValue = document.querySelector("[data-id='" + userVLookUpFields[i] + "']").children[1].value;
                    let e = document.getElementById(jQuery('[data-id="'+userVLookUpFields[i]+'"] .lookupInput input').attr('id')+'_lkid');
                    //let userVlookUpNodeValue = jQuery('[data-id="Incharge_Staff__c"] .lookupInput input').val()
                    // console.log('userVlookUpNodeValue:'+e.value);
                    if(e && e.value!='000000000000000'){
                        result[userVLookUpFields[i]] =  e.value;
                    }
                }               
            }
            result.work_location_select__c = document.querySelector("[id='page:form:j_id30:j_id34:1:j_id35:j_id36:18:j_id37']").value;
            // result.work_location_select__c = document.querySelector("[id='page:form:block:j_id34:1:j_id35:j_id36:18:j_id37']").value;
            // result.ProblemDescription__c = document.querySelector("[aria-describedby = 'cke_34']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
            /*
            if(result.engineerSendDate__c){
                result.engineerSendDate__c = result.engineerSendDate__c.replace(/\//g, '-')+':00';
            }
            */
           let e = null;
           e = document.getElementById(jQuery('[data-id="Incharge_Staff__c"] .lookupInput input').attr('id')+'_lkid');
           if(e){
            result.Incharge_Staff__c = e.value;
           }
           e = document.getElementById(api_id_map['work_location_select__c']);
           if(e){
            result.work_location_select__c = e.value;
           }
           e = document.getElementById(jQuery('[data-id="OCSM_RC_CordingUser__c"] .lookupInput input').attr('id')+'_lkid');
           if(e){
            result.OCSM_RC_CordingUser__c = e.value;
           }
           e = document.getElementById(jQuery('[data-id="OSH_Affirmant__c"] .lookupInput input').attr('id')+'_lkid');
           if(e){
            result.OSH_Affirmant__c = e.value;
           }
           e = document.getElementById(jQuery('[data-id="OSHRAConfirmUser__c"] .lookupInput input').attr('id')+'_lkid');
           if(e){
            result.OSHRAConfirmUser__c = e.value;
           }
           e = document.getElementById(jQuery('[data-id="Repair_Authenticator__c"] .lookupInput input').attr('id')+'_lkid');
           if(e){
            result.Repair_Authenticator__c = e.value;
           }
           e = document.getElementById(jQuery('[data-id="Repair_Determine_result_ConfirmationUser__c"] .lookupInput input').attr('id')+'_lkid');
           if(e){
            result.Repair_Determine_result_ConfirmationUser__c = e.value;
           }
            console.log(JSON.stringify(result));
            return result;
        }
@@ -171,22 +222,22 @@
        var queryBack = function queryBack(data) {
                    console.log(data);
                    document.querySelector("[data-id='address_Contacts__c']").innerHTML = data.object.addressContacts;
                    document.querySelector("[data-id='address_Contacts_Name__c']").innerHTML = data.object.addressContactsName;
                    document.querySelector("[data-id='address_Telephone__c']").innerHTML = data.object.addressTelephone;
                    document.querySelector("[data-id='address_ZipCode__c']").innerHTML = data.object.addressZipCode;
                    document.querySelector("[data-id='Detailed_Address__c']").innerHTML = data.object.detailedAddress;
                    document.querySelector("[data-id='RepairApplicant__c']").innerHTML = data.object.repairApplicant;
                    document.querySelector("[data-id='address_Contacts__c']").value = data.object.addressContacts;
                    document.querySelector("[data-id='address_Contacts_Name__c']").value = data.object.addressContactsName;
                    document.querySelector("[data-id='address_Telephone__c']").value = data.object.addressTelephone;
                    document.querySelector("[data-id='address_ZipCode__c']").value = data.object.addressZipCode;
                    document.querySelector("[data-id='Detailed_Address__c']").value = data.object.detailedAddress;
                    document.querySelector("[data-id='RepairApplicant__c']").value = data.object.repairApplicant;
                    AWSService.query(staticResourceAddress.queryUrl, '{!DecryptAWSDataId}', queryBackDecrypt, staticResourceAddress.token);
                };
        var queryBackContact = function queryBack(data) {
                    console.log(data);
                    document.querySelector("[data-id='address_Contacts__c']").innerHTML = data.object.lastName;
                    document.querySelector("[data-id='address_Contacts__c']").value = data.object.lastName;
                };
        var queryBackDecrypt = function queryBack(data) {
                    document.querySelector("[data-id='Detailed_Address__c']").innerHTML = data.object.detailedAddress;
                    document.querySelector("[data-id='address_ZipCode__c']").innerHTML = data.object.zipCode;
                    document.querySelector("[data-id='address_Telephone__c']").innerHTML = data.object.telephone;
                    document.querySelector("[data-id='Detailed_Address__c']").value = data.object.detailedAddress;
                    document.querySelector("[data-id='address_ZipCode__c']").value = data.object.zipCode;
                    document.querySelector("[data-id='address_Telephone__c']").value = data.object.telephone;
                    AWSService.query(staticResourceContact.queryUrl, '{!ContactAWSDataId}', queryBackContact, staticResourceContact.token);
                }
@@ -253,7 +304,7 @@
        //Alert Error Message
        function alertErrorMessage(errorMsg) {
            let errorMsgNode = document.getElementById("page:form:msgContent");
            let errorMsgNode = document.getElementById("page:form:block:msgContent");
            errorMsg = '错误:无效数据。' + '\n' + errorMsg;
            errorMsgNode.innerText = errorMsg;
            errorMsgNode.className = 'pbError';
@@ -262,7 +313,7 @@
        //Hide Error Message
        function hiddenErrorMsgNode() {
            let errorMsgNode = document.getElementById("page:form:msgContent");
            let errorMsgNode = document.getElementById("page:form:block:msgContent");
            errorMsgNode.innerText = '';
            errorMsgNode.className = '';
        }
@@ -288,11 +339,7 @@
        <div class="ptBreadcrumb"></div>
    </div>
    <apex:form id="form">
        <!-- Error Msg-->
        <apex:outputPanel id="errorMsg">
            <apex:pageMessages id="msgContent" escape="false" />
        </apex:outputPanel>
        <apex:pageblock >
        <apex:pageblock id="block">
            <div class="pbHeader">
                <table cellspacing="0" cellpadding="0" border="0">
                    <tbody>
@@ -310,13 +357,19 @@
                    </tbody>
                </table>
            </div>
            <!-- Error Msg-->
            <div style="text-align: center;">
                <apex:outputPanel id="errorMsg">
                    <apex:pageMessages id="msgContent" escape="false" />
                </apex:outputPanel>
            </div>
            <!-- 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}">
                    <!--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="{!Repair__c[layoutField.fieldAPI]}" rendered="{!not(layoutField.isPlaceHOlder)}"
                        <apex:inputField styleClass="PIBackApi PIBackApi_{!layoutField.fieldAPI}" html-data-id="{!layoutField.fieldAPI}" value="{!Repair__c[layoutField.fieldAPI]}" rendered="{!not(layoutField.isPlaceHOlder)}"
                            required="{!layoutField.isRequired}" />
                        <apex:pageblocksectionitem rendered="{!layoutField.isPlaceHolder}">
                        </apex:pageblocksectionitem>
@@ -325,6 +378,28 @@
                </apex:pageBlockSection>
            </apex:repeat>
            <script>
                function IsFormTag(tag_name){
                if (!tag_name) {
                    return false;
                }
                    return ['input','select','textarea'].indexOf(tag_name.toLowerCase())>-1;
                }
                function IsFormElement(e){
                    return IsFormTag(e.tagName);
                }
                var init_nodes = document.getElementsByClassName("PIBackApi");
                var api_id_map={};
                for(let ei in init_nodes){
                    let e = init_nodes[ei];
                    if(IsFormElement(e)){
                        if(e.getAttribute("multiple") != 'multiple' || e.style.display == 'none' && e.id.indexOf('selected') < 0){
                            api_id_map[GetEleApiName(e)] = e.id;
                        }
                    }
                }
                //Append Page
                sfdcPage.appendToOnloadQueue(function () {
                    var layoutSections = JSON.parse('{!layoutSectionsStr}');
@@ -333,7 +408,16 @@
                        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);
                                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");
                                    }
                                }
                            }
                        }
                    }
@@ -342,38 +426,58 @@
                    if (!{!isNewMode}) {
                        blockme();
                        QueryRepairFromAWS();
                        unblockUI();
                    };
                    document.querySelector("[data-id='OwnerId']").classList.add("disabledbutton");
                    if(document.querySelector("[data-id='OwnerId']") != null)
                       document.querySelector("[data-id='OwnerId']").classList.add("disabledbutton");
                    jQuery(".lookupInput").each(function(i,e){
                        let je =jQuery(e).find('input');
                        je.attr("readonly","");
                        je.css("background","unset");
                    let previous_value = {};
                    jQuery(".lookupInput input").each(function(i,e){
                        let je =jQuery(e);
                        let dataid = je.attr('data-id');
                        if(['Hospital_Name__c','Department_Class__c','OwnerId'].indexOf(dataid) > -1) return;
                        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 = '';
                        if(['Incharge_Staff_Contact__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(".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(['Hospital_Name__c','Department_Class__c','OwnerId'].indexOf(dataid) > -1) return;
                    //     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">