From 1b214a96d371ce90578fb7d6c14eecfcba5f87f0 Mon Sep 17 00:00:00 2001
From: 涂煌豪 <tuhuanghao@prec-tech.com>
Date: 星期一, 11 四月 2022 18:52:32 +0800
Subject: [PATCH] Sfdc2PoContactBatch修改
---
force-app/main/default/pages/NewAndEditInquiryForm.page | 178 ++++++++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 138 insertions(+), 40 deletions(-)
diff --git a/force-app/main/default/pages/NewAndEditInquiryForm.page b/force-app/main/default/pages/NewAndEditInquiryForm.page
index d4208cc..b3e7658 100644
--- a/force-app/main/default/pages/NewAndEditInquiryForm.page
+++ b/force-app/main/default/pages/NewAndEditInquiryForm.page
@@ -63,7 +63,7 @@
//payloadJson.AWS_Data_Id__c = r.object[0].dataId;
payloadJson.AWS_Data_Id__c = '{!AWSDataId}';
- if (isNewMode) {
+ if (isNewMode || {!isCloneMode}) {
payloadJson.AWS_Data_Id__c = r.object[0].dataId;
} else {
payloadJson.AWS_Data_Id__c = '{!AWSDataId}';
@@ -128,7 +128,7 @@
var VLookUpFields = {! VLookUpFieldsJson};
function ProcessPI(sobjJson, payloadForNewPI) {
blockme();
- if ({!isNewMode}) {
+ if ({!isNewMode} || {!isCloneMode}) {
NewPIToAWS(sobjJson, payloadForNewPI)
}else {
UpdatePIToAWS(sobjJson, payloadForNewPI)
@@ -382,18 +382,21 @@
accountValue = document.getElementById(accountNodeId).value;
}
console.log(accountValue);
+
+ let searchContactKeyWord = document.querySelector("[data-id='Contact_Name__c']").value;
if(accountValue !='000000000000000'){
- suffixUrl = "?contactId="+contactNodeId+"&accountId="+accountValue;
+ suffixUrl = "?contactId=" + contactNodeId + "&accountId=" + accountValue+"&searchContactKeyWord=" + searchContactKeyWord;
+ let baseUrl = "/apex/SearchContactPage";
+ 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{
- suffixUrl = "?contactId="+contactNodeId;
+ // suffixUrl = "?contactId="+contactNodeId+"&searchContactKeyWord=" + searchContactKeyWord;
+ alertErrorMessage('璇峰厛閫夋嫨绉戝鍚�');
}
- let baseUrl = "/apex/SearchContactPage";
- 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;
}
//绐楀彛鍏抽棴鏃跺彂鐢�
function closePopupWindow() {
@@ -412,11 +415,13 @@
function replaceSearchContactLookup() {
let lookUpNode = htmlToElement(contactHtmlString);
console.log(lookUpNode);
- let eleContactValue = document.querySelector("[data-id='Contact_Name__c']").parentNode.parentNode.children[0].value;
- if (!{!isNewMode} || (eleContactValue != '000000000000000')) {
- //1. Query Contact from AWS by AWSDataId
- queryContactName()
- }
+ let eleContactValue = document.querySelector("[data-id='Contact_Name__c']").parentNode.parentNode.children[1].value;
+ if (eleContactValue) {
+ if (!{!isNewMode} || (eleContactValue != '000000000000000')) {
+ //1. Query Contact from AWS by AWSDataId
+ queryContactName()
+ }
+ }
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]);
@@ -425,15 +430,7 @@
function queryContactName() {
let sfId = document.getElementById(document.querySelector("[data-id='Contact_Name__c']").id + '_lkid').value;
let contactsInfo = JSON.parse('{!LookUpOverrideFieldsMapJson}');
- // if (contactsInfo == null){
- // contactsInfo = JSON.parse('{!urlCheckContactAWSid}');
- // }
let dataId = contactsInfo[sfId];
- // let dataId = JSON.parse('{!urlCheckContactAWSid}')
- // if (dataId == '') {
- // let contactsInfo = JSON.parse('{!LookUpOverrideFieldsMapJson}');
- // dataId = contactsInfo[sfId];
- // }
let queryContactBack = function(data){
//To Do later
console.log('ContactData = ' + data.object);
@@ -473,7 +470,8 @@
function searchLead(leadNodeId){
// let accountValue = "";
// let suffixUrl = "";
- let suffixUrl = "?leadId="+leadNodeId;
+ let searchLeadKeyWord = document.querySelector("[data-id='Lead_link__c']").value;
+ let suffixUrl = "?leadId="+leadNodeId+"&searchLeadKeyWord=" + searchLeadKeyWord;
let baseUrl = "/apex/SearchLeadPage";
let newSearchLeadParam = 'height=600,width=800,left=100,top=100,dialogHide=true,resizable=no,scrollbars=yes,toolbar=no,status=no';
newSearchLeadWindow = window.open(baseUrl+suffixUrl, 'Popup', newSearchLeadParam);
@@ -518,16 +516,15 @@
// document.querySelector("[data-id='Lead_link__c']").value = result.object.lastName;
// })
}
-
</script>
<div class="bPageTitle">
<div class="ptBody">
<div class="content">
<img src="/img/s.gif" alt="{! SobjectLabel}" class="pageTitleIcon" title="{! SobjectLabel}" />
- <h1 class="pageType">{! SobjectLabel}<apex:outputText rendered="{!isNewMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode)}">{!$Label.Edit}</apex:outputText>
+ <h1 class="pageType">{! SobjectLabel}<apex:outputText rendered="{!isNewMode || isCloneMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode || isCloneMode)}">{!$Label.Edit}</apex:outputText>
<span class="titleSeparatingColon">:</span>
</h1>
- <h2 class="pageDescription"> <apex:outputText rendered="{!isNewMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode)}">{!$Label.Edit}</apex:outputText>{! SobjectLabel}</h2>
+ <h2 class="pageDescription"> <apex:outputText rendered="{!isNewMode || isCloneMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode || isCloneMode)}">{!$Label.Edit}</apex:outputText>{! SobjectLabel}</h2>
<div class="blank"> </div>
</div>
<div class="links">
@@ -550,7 +547,7 @@
<tr>
<td class="pbTitle">
<img src="/img/s.gif" alt="" class="minWidth" title="" width="1" height="1" />
- <h2 class="mainTitle">{! SobjectLabel}<apex:outputText rendered="{!isNewMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode)}">{!$Label.Edit}</apex:outputText></h2>
+ <h2 class="mainTitle">{! SobjectLabel}<apex:outputText rendered="{!isNewMode || isCloneMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode || isCloneMode)}">{!$Label.Edit}</apex:outputText></h2>
</td>
<td class="pbButton" id="topButtonRow">
<input class="btn" type="Button" value="{!$Label.Save}" onclick="saveSobjectProcess()" />
@@ -583,14 +580,35 @@
</apex:pageBlockSection>
</apex:repeat>
<script>
+ var api_id_map={};
sfdcPage.appendToOnloadQueue(function () {
+ var init_nodes = document.getElementsByClassName("PIBackApi");
+ 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;
+ }
+ }
+ }
+
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);
+ 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");
+ }else if (e.tagName == 'DIV') {
+ e.classList.add("disabledbutton");
+ }else if (VLookUpFields.indexOf(layoutField.fieldAPI) >= 0) {
+ e.parentNode.classList.add("disabledbutton");
+ }
+ }
}
}
}
@@ -624,15 +642,8 @@
jQuery('a[data-id="OwnerId"]').remove();
- 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','Hospital__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;">');
- })
+ //Updated by Li Jun 20220322 Start
+ /*
jQuery(".lookupInput").on("mouseenter","img[generate]",function(e){
this.className = "closeIconOn";
@@ -652,8 +663,95 @@
hidden.value = '';
}
}
- });
+ });*/
+ //Updated by Li Jun 20220322 End
+ let previous_value = {};
+ jQuery(".lookupInput input").each(function(i,e){
+ let je =jQuery(e);
+
+ let dataid = je.attr('data-id');
+ if(['Contact_Name__c','Lead_link__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','Hospital__c'];
+ setVlookup(ls,hospitalNameValue);
+ }else{
+ clearVlookup('Department_Class__c');
+ clearVlookup('Hospital__c');
+ }
+ }, 50);
+ });
});
+
+ function setVlookup(lookups, lookup_id){
+ let controllerSaveMethod = '{!$RemoteAction.NewAndEditInquiryFormController.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">
--
Gitblit v1.9.1