From 51fb56f3f5b0dc96d7f93a71f9b61263e303243f Mon Sep 17 00:00:00 2001 From: Li Jun <buli@deloitte.com.cn> Date: 星期二, 10 五月 2022 15:12:45 +0800 Subject: [PATCH] Fix Edit Record Without AWSId --- force-app/main/default/pages/NewAndEditReport.page | 270 +++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 207 insertions(+), 63 deletions(-) diff --git a/force-app/main/default/pages/NewAndEditReport.page b/force-app/main/default/pages/NewAndEditReport.page index 5c4b6ed..847ab3d 100644 --- a/force-app/main/default/pages/NewAndEditReport.page +++ b/force-app/main/default/pages/NewAndEditReport.page @@ -3,7 +3,7 @@ <apex:includeScript value="{! URLFOR($Resource.AWSService, 'AWSService.js') }" /> <apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}"/> <apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/> - <script src="../../soap/ajax/53.0/connection.js" type="text/javascript"></script> + <apex:includeScript value="{!URLFOR($Resource.connection20)}"/> <style> .disabledbutton { @@ -19,7 +19,7 @@ var redirectMode = 'Save';//1. Save 2. SaveAndNew var requiredFieldAPIList = JSON.parse('{!requiredFieldAPIListStr}'); var fieldAPIToLabelMap = JSON.parse('{!fieldAPIToLabelMapStr}'); - var VLookUpFields = new Set(['Hospital_Reference__c', 'Department_Class_Ref__c', 'Daily_Report__c', 'OwnerId','Hospital_Department__c', + var VLookUpFields = new Set(['Hospital_Reference__c','Consum_Apply__c','Department_Class_Ref__c', 'Daily_Report__c', 'OwnerId','Hospital_Department__c', 'Competition_Company_Name__c','Report_OPDPlan__c','Loaner_request_no1__c','Practitioner1__c','Practitioner2__c','Practitioner3__c','Practitioner4__c', 'Practitioner5__c','Opportunity1__c', 'Opportunity2__c','Product01__c','Product1__c','Product2__c','Product3__c','Product4__c','Product5__c','Order_No__c','Person_In_Charge__c']); @@ -31,19 +31,41 @@ // console.log('娌℃湁CKEDITOR') // } + 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 alertErrorMessage(errorMsg) { - let errorMsgNode = document.getElementById("page:form:j_id5:msgContent"); + let errorMsgNode = document.getElementById("page:form:pageBlock:msgContent"); errorMsg = '閿欒锛氭棤鏁堟暟鎹��'+'\n' + errorMsg; errorMsgNode.innerText = errorMsg; errorMsgNode.className = 'pbError'; unblockUI(); + EditButton(false); } function hiddenErrorMsgNode() { - let errorMsgNode = document.getElementById("page:form:j_id5:msgContent"); + let errorMsgNode = document.getElementById("page:form:pageBlock:msgContent"); errorMsgNode.innerText = ''; errorMsgNode.className = ''; + } + + function getCKEinstance(api_name){ + let t = jQuery("label[for$='textAreaDelegate_"+api_name+"']").parent().next().find("textarea")[0]; + if(t && t.id){ + return CKEDITOR.instances[t.id] + + } + return null; } //1銆傝幏鍙栨墍鏈夊瓧娈靛�� @@ -63,11 +85,36 @@ result[nodelist[index].getAttribute("data-id")] = nodelist[index].checked; } else if (nodelist[index].type == 'select-multiple') { //nodelist[index].getAttribute("data-id") + //let targets = document.querySelector("[data-id=" + multiple + "]").nextSibling.children[0].children[1].children[2].innerText; + //Before Update By Li Jun 20220411 + // let targets = document.querySelector("[data-id=" + multiple + "]").parentNode.children[2].children[0].children[1].children[2].children[0].innerText; + // targets = targets.replace(/\n/g, ";"); + // console.log('targets = ' + targets); + // result[nodelist[index].getAttribute("data-id")] = targets; + //Before Update By Li Jun 20220411 + + //After Update By Li Jun 20220411 Start let multiple = nodelist[index].getAttribute("data-id"); - let targets = document.querySelector("[data-id=" + multiple + "]").nextSibling.children[0].children[1].children[2].innerText; - targets = targets.replace(/\n/g, ";"); - console.log('targets = ' + targets); - result[nodelist[index].getAttribute("data-id")] = targets; + let targets = document.querySelector("[data-id=" + multiple + "]").options; + let selValues = []; + for(i=0; i < targets.length; i++){ + if(targets[i].selected){ + selValues.push(targets[i].value); + } + } + let setValuesStr = JSON.stringify(selValues); + setValuesStr = setValuesStr.substring(1,setValuesStr.length-1); + if(setValuesStr){ + setValuesStr = setValuesStr.replace(/"/g,""); + if(setValuesStr.indexOf(',')!=-1){ + setValuesStr = setValuesStr.replace(/,/g,";"); + } + } + console.log('targets = ' + setValuesStr); + result[nodelist[index].getAttribute("data-id")] = setValuesStr; + //After Update By Li Jun 20220411 End + + } else { result[nodelist[index].getAttribute("data-id")] = nodelist[index].value; } @@ -77,38 +124,65 @@ } } //鎵嬫湳鍒嗙被1 - result.Technical_Category1__c = document.getElementById('page:form:j_id5:j_id35:4:j_id36:j_id37:2:j_id38')!=null?document.getElementById('page:form:j_id5:j_id35:4:j_id36:j_id37:2:j_id38').value:''; + if(api_id_map['Technical_Category1__c']){ + result.Technical_Category1__c = document.getElementById(api_id_map['Technical_Category1__c']).value!='_\x01_'?document.getElementById(api_id_map['Technical_Category1__c']).value:''; + } + //result.Technical_Category1__c = document.getElementById('page:form:j_id5:j_id35:4:j_id36:j_id37:2:j_id38')!=null?document.getElementById('page:form:j_id5:j_id35:4:j_id36:j_id37:2:j_id38').value:''; //鎵嬫湳鍒嗙被2 - result.Technical_Category2__c = document.getElementById('page:form:j_id5:j_id35:4:j_id36:j_id37:4:j_id38')!=null?document.getElementById('page:form:j_id5:j_id35:4:j_id36:j_id37:4:j_id38').value:''; + if(api_id_map['Technical_Category2__c']){ + result.Technical_Category2__c = document.getElementById(api_id_map['Technical_Category2__c']).value!='_\x01_'?document.getElementById(api_id_map['Technical_Category2__c']).value:''; + } + //result.Technical_Category2__c = document.getElementById('page:form:j_id5:j_id35:4:j_id36:j_id37:4:j_id38')!=null?document.getElementById('page:form:j_id5:j_id35:4:j_id36:j_id37:4:j_id38').value:''; //鐩殑2 - if(document.getElementById('page:form:j_id5:j_id35:2:j_id36:j_id37:1:j_id38')){ - result.Purpose2__c = document.getElementById('page:form:j_id5:j_id35:2:j_id36:j_id37:1:j_id38').value; + if(api_id_map['Purpose2__c']){ + result.Purpose2__c = document.getElementById(api_id_map['Purpose2__c']).value; } + // if(document.getElementById('page:form:j_id5:j_id35:2:j_id36:j_id37:1:j_id38')){ + // result.Purpose2__c = document.getElementById('page:form:j_id5:j_id35:2:j_id36:j_id37:1:j_id38').value; + // } //瀵屾枃鏈璧嬪�� + if(getCKEinstance('Customer_sigh_photo__c')){ + result.Customer_sigh_photo__c = getCKEinstance('Customer_sigh_photo__c').getData() + } + if(getCKEinstance('Photo1__c')){ + result.Photo1__c = getCKEinstance('Photo1__c').getData() + } + if(getCKEinstance('Photo2__c')){ + result.Photo2__c = getCKEinstance('Photo2__c').getData() + } + if(getCKEinstance('Photo3__c')){ + result.Photo3__c = getCKEinstance('Photo3__c').getData() + } + if(getCKEinstance('VOC_follow_up_result__c')){ + result.VOC_follow_up_result__c = getCKEinstance('VOC_follow_up_result__c').getData() + } + if(getCKEinstance('VOC_follow_up_result1__c')){ + result.VOC_follow_up_result1__c = getCKEinstance('VOC_follow_up_result1__c').getData() + } //鐢ㄦ埛绛惧瓧鐨勭収鐗� - if(document.querySelector("[aria-describedby = 'cke_34']")){ - result.Customer_sigh_photo__c = document.querySelector("[aria-describedby = 'cke_34']").contentWindow.document.getElementsByTagName('body')[0].innerHTML - } - //鐓х墖1 Photo1__c - if(document.querySelector("[aria-describedby = 'cke_42']")){ - result.Photo1__c = document.querySelector("[aria-describedby = 'cke_42']").contentWindow.document.getElementsByTagName('body')[0].innerHTML - } - //鐓х墖2 Photo2__c - if(document.querySelector("[aria-describedby = 'cke_75']")){ - result.Photo2__c = document.querySelector("[aria-describedby = 'cke_75']").contentWindow.document.getElementsByTagName('body')[0].innerHTML - } - //鐓х墖3 Photo3__c - if(document.querySelector("[aria-describedby = 'cke_108']")){ - result.Photo3__c = document.querySelector("[aria-describedby = 'cke_108']").contentWindow.document.getElementsByTagName('body')[0].innerHTML - } - //瀵瑰簲缁撴灉 VOC_follow_up_result__c cke_38 - if(document.querySelector("[aria-describedby = 'cke_38']")){ - result.VOC_follow_up_result__c = document.querySelector("[aria-describedby = 'cke_38']").contentWindow.document.getElementsByTagName('body')[0].innerHTML - } - //瀵瑰簲缁撴灉绗竴娆� VOC_follow_up_result1__c cke_71 - if(document.querySelector("[aria-describedby = 'cke_71']")){ - result.VOC_follow_up_result1__c = document.querySelector("[aria-describedby = 'cke_71']").contentWindow.document.getElementsByTagName('body')[0].innerHTML - } + // if(document.querySelector("[aria-describedby = 'cke_34']")){ + // result.Customer_sigh_photo__c = document.querySelector("[aria-describedby = 'cke_34']").contentWindow.document.getElementsByTagName('body')[0].innerHTML + // } + // //鐓х墖1 Photo1__c + // if(document.querySelector("[aria-describedby = 'cke_42']")){ + // result.Photo1__c = document.querySelector("[aria-describedby = 'cke_42']").contentWindow.document.getElementsByTagName('body')[0].innerHTML + // } + // //鐓х墖2 Photo2__c + // if(document.querySelector("[aria-describedby = 'cke_75']")){ + // result.Photo2__c = document.querySelector("[aria-describedby = 'cke_75']").contentWindow.document.getElementsByTagName('body')[0].innerHTML + // } + // //鐓х墖3 Photo3__c + // if(document.querySelector("[aria-describedby = 'cke_108']")){ + // result.Photo3__c = document.querySelector("[aria-describedby = 'cke_108']").contentWindow.document.getElementsByTagName('body')[0].innerHTML + // } + // //瀵瑰簲缁撴灉 VOC_follow_up_result__c cke_38 + // if(document.querySelector("[aria-describedby = 'cke_38']")){ + // result.VOC_follow_up_result__c = document.querySelector("[aria-describedby = 'cke_38']").contentWindow.document.getElementsByTagName('body')[0].innerHTML + // } + // //瀵瑰簲缁撴灉绗竴娆� VOC_follow_up_result1__c cke_71 + // if(document.querySelector("[aria-describedby = 'cke_71']")){ + // result.VOC_follow_up_result1__c = document.querySelector("[aria-describedby = 'cke_71']").contentWindow.document.getElementsByTagName('body')[0].innerHTML + // } if(result.From__c){ result.From__c = result.From__c.replace(/\//g, '-')+':00'; } @@ -122,24 +196,24 @@ function validateFieldValueFormate() { //VOC_Informer_Contact__c,Caller_phone_c__c let error_msg = ''; - let textEmail = "[data-id=' Follow_staff_email__c']"; - let textPhone1 = "[data-id='VOC_Informer_Contact__c']"; - let textPhone2 = "[data-id='Caller_phone_c__c']"; - //Email - let email = document.querySelector(textEmail); - if(email && !/^[\w-]{3,12}@[\da-zA-Z]{2,16}\.[a-zA-Z]+$/.test(email.value)){ - error_msg += ';瀵瑰簲鑰�(閭)鏍煎紡閿欒'; - } + // let textEmail = "[data-id=' Follow_staff_email__c']"; + // let textPhone1 = "[data-id='VOC_Informer_Contact__c']"; + // let textPhone2 = "[data-id='Caller_phone_c__c']"; + // //Email + // let email = document.querySelector(textEmail); + // if(email && !/^[\w-]{3,12}@[\da-zA-Z]{2,16}\.[a-zA-Z]+$/.test(email.value)){ + // error_msg += ';瀵瑰簲鑰�(閭)鏍煎紡閿欒'; + // } - let phone1 = document.querySelector(textPhone1); - if(phone1 && !/^1[3|5|8|7][0-9]\d{4,8}$/.test(phone1.value)){ - error_msg += ';淇℃伅鎻愪緵浜鸿仈绯绘柟寮忥紙鐢佃瘽锛夊彿鐮侀敊璇�'; - } + // let phone1 = document.querySelector(textPhone1); + // if(phone1 && !/^1[3|5|8|7][0-9]\d{4,8}$/.test(phone1.value)){ + // error_msg += ';淇℃伅鎻愪緵浜鸿仈绯绘柟寮忥紙鐢佃瘽锛夊彿鐮侀敊璇�'; + // } - let phone2 = document.querySelector(textPhone2); - if(phone2 && !/^1[3|5|8|7][0-9]\d{4,8}$/.test(phone2.value)){ - error_msg += ';鑱旂郴鐢佃瘽鍙风爜閿欒'; - } + // let phone2 = document.querySelector(textPhone2); + // if(phone2 && !/^1[3|5|8|7][0-9]\d{4,8}$/.test(phone2.value)){ + // error_msg += ';鑱旂郴鐢佃瘽鍙风爜閿欒'; + // } for(let e of document.getElementsByTagName('select')){ for(let op of e.options){ @@ -160,7 +234,9 @@ function checkRequiredFieldMsg(formData) { let blankRequiredFields = ''; for(i = 0;i<requiredFieldAPIList.length;i++){ - if(formData[requiredFieldAPIList[i]]){ + if (formData[requiredFieldAPIList[i]] && !VLookUpFields.has(requiredFieldAPIList[i])) { + continue; + }else if(VLookUpFields.has(requiredFieldAPIList[i]) && formData[requiredFieldAPIList[i]] != '000000000000000'){ continue; }else{ if(blankRequiredFields == ''){ @@ -172,6 +248,33 @@ } } return blankRequiredFields; + } + + var GetEleByClass = function(class_name){ + let eles = document.getElementsByClassName(class_name); + if(eles.length > 0) return eles[0]; + return null; + } + + var GetEleApiName = function(ele){ + for(let ci in ele.classList){ + let c = ele.classList[ci]; + if(c.indexOf('{!ApiPrefix}'+'_')>-1){ + return c.replace('{!ApiPrefix}'+'_',''); + } + } + return ''; + } + + 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); } //4.鑾峰彇瑕佸姞瀵嗙殑瀛楁 @@ -202,7 +305,7 @@ //5.鏂板缓鎴栫紪杈� function ProcessPI(reportJson, payloadForNewPI) { blockme(); - if ({!isNewMode}) { + if ({!isNewMode} || {!isCloneMode} || !'{!AWSDataId}') {//Add by Li Jun for PIPL 20220413 NewPIToAWS(reportJson, payloadForNewPI) }else { UpdatePIToAWS(reportJson, payloadForNewPI) @@ -212,7 +315,7 @@ //鏂板缓 function NewPIToAWS(reportJson, payloadForNewPI) { let controllerSaveMethod = '{!$RemoteAction.NewAndEditReportController.saveReport}'; - AWSService.insert(staticResources.newUrl, reportJson, payloadForNewPI, controllerSaveMethod, staticResources.token, staticResources.transactionUrl, true, insertOrUpdateBack, redirectCallBack); + AWSService.insert(staticResources.newUrl, reportJson, payloadForNewPI, controllerSaveMethod, staticResources.token, staticResources.transactionUrl, {!isNewMode}, insertOrUpdateBack, redirectCallBack); } //缂栬緫 @@ -439,10 +542,17 @@ payloadJson.age_Encrypted__c = result.object[0].ageEncrypt; payloadJson.Medical_History_Encrypted__c = result.object[0].medicalHistoryEncrypt; payloadJson.sex_Encrypted__c = result.object[0].sexEncrypt; - if (isNewMode) { + if (isNewMode || {!isCloneMode}||!'{!AWSDataId}') {//Add by Li Jun for PIPL 20220413 payloadJson.AWS_Data_Id__c = result.object[0].dataId; + delete payloadJson.OwnerId; } else { payloadJson.AWS_Data_Id__c = '{!AWSDataId}'; + } + if('{!sfRecordIdForEdit}'){ + payloadJson.Id = '{!sfRecordIdForEdit}'; + } + if('{!rtTypeId}'){ + payloadJson.RecordTypeId = '{!rtTypeId}';//Add by Li Jun for Record Type Issue 20220421 } return payloadJson; } @@ -462,6 +572,8 @@ //鐐瑰嚮淇濆瓨鎸夐挳 function saveReportProcess(saveMode) { + EditButton(true); + redirectMode = saveMode; console.log('redirectMode' + redirectMode); hiddenErrorMsgNode(); @@ -515,7 +627,7 @@ <!-- <apex:outputPanel id="errorMsg"> <apex:pageMessages id="msgContent" escape="false" /> </apex:outputPanel> --> - <apex:pageblock > + <apex:pageblock id="pageBlock"> <div class="pbHeader"> <table cellspacing="0" cellpadding="0" border="0"> <tbody> @@ -524,7 +636,7 @@ <img src="/img/s.gif" alt="" class="minWidth" title="" width="1" height="1" /> <h2 class="mainTitle">鎶ュ憡涔︾紪杈�</h2> </td> - <td class="pbButton" id="topButtonRow"> + <td class="pbButton" id="topButtonRow" style="pointer-events: none; opacity: 0.4;"> <input class="btn" type="Button" value="淇濆瓨" onclick="saveReportProcess('Save')" /> <input class="btn" type="Button" value="淇濆瓨骞舵柊寤�" onclick="saveReportProcess('SaveAndNew')" /> <apex:commandButton action="{!cancel}" value="鍙栨秷" /> @@ -547,8 +659,14 @@ <!--Each section has layoutFields, let's iterate them as well--> <apex:repeat value="{!layoutSection.layoutFields}" var="layoutField"> - <apex:inputField html-data-id="{!layoutField.fieldAPI}" styleClass="{!layoutField.fieldAPI}" value="{!Report__c[layoutField.fieldAPI]}" rendered="{!not(layoutField.isPlaceHOlder)}" + <!-- <apex:inputField html-title="{!layoutField.fieldAPI}" html-data-id="{!layoutField.fieldAPI}" styleClass="{!ApiPrefix} {!ApiPrefix}_{!layoutField.fieldAPI}" value="{!Report__c[layoutField.fieldAPI]}" rendered="{!not(layoutField.isPlaceHOlder)}" + required="{!layoutField.isRequired}" /> --> + <apex:inputField styleClass="PIBackApi PIBackApi_{!layoutField.fieldAPI}" html-data-id="{!layoutField.fieldAPI}" value="{!Report__c[layoutField.fieldAPI]}" rendered="{!not(layoutField.isPlaceHOlder)&&isNewMode}" required="{!layoutField.isRequired}" /> + <apex:inputField styleClass="PIBackApi PIBackApi_{!layoutField.fieldAPI}" html-data-id="{!layoutField.fieldAPI}" value="{!Report__c[layoutField.fieldAPI]}" rendered="{!not(layoutField.isPlaceHOlder)&¬(isNewMode)&&layoutField.fieldAPI!='RecordTypeId'}" + required="{!layoutField.isRequired}" /> + <apex:outputField styleClass="PIBackApi PIBackApi_{!layoutField.fieldAPI}" html-data-id="{!layoutField.fieldAPI}" value="{!Report__c[layoutField.fieldAPI]}" rendered="{!not(layoutField.isPlaceHOlder)&¬(isNewMode)&&layoutField.fieldAPI=='RecordTypeId'}" + /> <apex:pageblocksectionitem rendered="{!layoutField.isPlaceHolder}"> </apex:pageblocksectionitem> </apex:repeat> @@ -556,6 +674,18 @@ </apex:pageBlockSection> </apex:repeat> <script> + 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; + } + + } + } + console.log(api_id_map); sfdcPage.appendToOnloadQueue(function () { //鍒ゆ柇鏄惁涓哄彧璇婚�夐」 var layoutSections = JSON.parse('{!layoutSectionsStr}'); @@ -564,7 +694,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"); + } + } } } } @@ -585,10 +724,15 @@ if('{!no1Name}' != '' && '{!no1Id}' != ''){ console.log('name = '+'{!no1Name}') console.log('Id = '+'{!no1Id}') - document.querySelector("[data-id='Loaner_request_no1__c']").value = '{!no1Name}' - document.getElementById(document.querySelector("[data-id='Loaner_request_no1__c']").id + '_lkid').value = '{!no1Id}' + if(document.querySelector("[data-id='Loaner_request_no1__c']")){ + document.querySelector("[data-id='Loaner_request_no1__c']").value = '{!no1Name}' + document.getElementById(document.querySelector("[data-id='Loaner_request_no1__c']").id + '_lkid').value = '{!no1Id}' + } } - + + document.getElementById('topButtonRow').style = ''; + document.getElementById('bottomButtonRow').style = ''; + let previous_value = {}; jQuery(".lookupInput input").each(function(i,e){ let je =jQuery(e); @@ -644,7 +788,7 @@ <tr> <td class="pbTitle"> <img src="/img/s.gif" alt="" class="minWidth" title="" width="1" height="1" /> </td> - <td class="pbButtonb" id="bottomButtonRow"> + <td class="pbButtonb" id="bottomButtonRow" style="pointer-events: none; opacity: 0.4;"> <input class="btn" type="Button" value="淇濆瓨" onclick="saveReportProcess('Save')" /> <input class="btn" type="Button" value="淇濆瓨骞舵柊寤�" onclick="saveReportProcess('SaveAndNew')" /> <apex:commandButton action="{!cancel}" value="鍙栨秷" /> -- Gitblit v1.9.1