| | |
| | | <apex:page standardController="Contact" extensions="NewAndEditContactController" id="page" action="{!PageLoad}"> |
| | | <script src="../../soap/ajax/53.0/connection.js" type="text/javascript"></script> |
| | | <apex:includeScript value="{!URLFOR($Resource.connection20)}"/> |
| | | <apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}"/> |
| | | <apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}"/> |
| | | <apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/> |
| | | <apex:includeScript value="{! URLFOR($Resource.AWSService, 'AWSService.js') }" /> |
| | | <style> |
| | | .disabledbutton { |
| | | pointer-events: none; |
| | | opacity: 0.4; |
| | | } |
| | | </style> |
| | | <script> |
| | | |
| | | //zhj MEBG新方案改造 2022-11-25 start |
| | | var accountName = ''; |
| | | var dataIdManageCodeMap = {}; |
| | | var staticResourceContactV2 = JSON.parse('{!staticResourceContactV2}'); |
| | | //zhj MEBG新方案改造 2022-11-25 end |
| | | var config = {}; |
| | | config = { |
| | | SobjectName : "{!SobjectName}", |
| | |
| | | return JSON.stringify(leadPayloadList); |
| | | }, |
| | | insertOrUpdateBack:function(payloadJson, r, isNewMode){ |
| | | |
| | | for(let f in config.AWSToSobjectMap){ |
| | | //zhj MEBG新方案改造 2022-11-25 start |
| | | debugger |
| | | if(r.status == '129'){ |
| | | alertErrorMessage('客户 [ '+accountName+ ' ],已存在相同名字的联系人 人员管理编码 ['+dataIdManageCodeMap[r.object[0].dataId]+' ] ,不能重复创建,请了解'); |
| | | unblockUI(); |
| | | return |
| | | } |
| | | if(r.status == '130'){ |
| | | if(r.object[0] && r.object[0].sfRecordId != null && r.object[0].sfRecordId != '') |
| | | alertErrorMessage('已找到重复值: UniqueNumber__c 与记录值重复,ID 为: '+r.object[0].sfRecordId+'客户人员信息'); |
| | | else |
| | | alertErrorMessage('数据中存在重复的电话号码'); |
| | | unblockUI(); |
| | | return |
| | | } |
| | | for(let f in config.AWSToSobjectNonEncryptedMap){ |
| | | if(r.object[0].hasOwnProperty(f)){ |
| | | payloadJson[config.AWSToSobjectMap[f]] = r.object[0][f]; |
| | | payloadJson[config.AWSToSobjectNonEncryptedMap[f]] = r.object[0][f]; |
| | | } |
| | | else{ |
| | | console.log(f + 'is not in r.object[0]'); |
| | | } |
| | | } |
| | | console.log('payloadJson = ' + payloadJson); |
| | | // for(let f in config.AWSToSobjectMap){ |
| | | // if(r.object[0].hasOwnProperty(f)){ |
| | | // payloadJson[config.AWSToSobjectMap[f]] = r.object[0][f]; |
| | | // } |
| | | // else{ |
| | | // console.log(f + 'is not in r.object[0]'); |
| | | // } |
| | | // } |
| | | |
| | | for(let f in config.AWSToSobjectEncryptedMap){ |
| | | if(r.object[0].hasOwnProperty(f)){ |
| | | payloadJson[config.AWSToSobjectEncryptedMap[f]] = r.object[0][f]; |
| | | } |
| | | else{ |
| | | console.log(f + 'is not in r.object[0]'); |
| | | } |
| | | } |
| | | // for(let f in config.AWSToSobjectEncryptedMap){ |
| | | // if(r.object[0].hasOwnProperty(f)){ |
| | | // payloadJson[config.AWSToSobjectEncryptedMap[f]] = r.object[0][f]; |
| | | // } |
| | | // else{ |
| | | // console.log(f + 'is not in r.object[0]'); |
| | | // } |
| | | // } |
| | | //zhj MEBG新方案改造 2022-11-25 end |
| | | |
| | | if('{!rtTypeId}'){ |
| | | payloadJson.RecordTypeId = '{!rtTypeId}'; |
| | |
| | | queryBack:function (data) { |
| | | console.log('data = ' + data); |
| | | if(data.object){ |
| | | for(let i=0; i < config.AWSToSobjectNonEncryptedMapKeySet.length ; i++){ |
| | | if(config.AWSToSobjectNonEncryptedMapKeySet[i] == 'type'){ |
| | | let temp = config.AWSToSobjectNonEncryptedMapKeySet[0]; |
| | | config.AWSToSobjectNonEncryptedMapKeySet[0] = config.AWSToSobjectNonEncryptedMapKeySet[i]; |
| | | config.AWSToSobjectNonEncryptedMapKeySet[i] = temp; |
| | | break; |
| | | } |
| | | } |
| | | for(let fi in config.AWSToSobjectNonEncryptedMapKeySet){ |
| | | let f = config.AWSToSobjectNonEncryptedMapKeySet[fi]; |
| | | let ele = document.getElementById(api_id_map[config.AWSToSobjectNonEncryptedMap[f]]) |
| | |
| | | // document.querySelector("[data-id='Email']").value = data.object.email; |
| | | }, |
| | | updateMethod:"NewAndEditContactController.saveContact", |
| | | insertMethod:"NewAndEditContactController.saveContact" |
| | | insertMethod:"NewAndEditContactController.saveContact", |
| | | //zhj MEBG新方案改造 2022-11-24 start |
| | | searchContactByAccountId:"NewAndEditContactController.searchContactByAccountId" |
| | | //zhj MEBG新方案改造 2022-11-24 end |
| | | } |
| | | |
| | | AWSService.sfSessionId = '{!GETSESSIONID()}'; |
| | |
| | | var fieldAPIToLabelMap = JSON.parse('{!fieldAPIToLabelMapStr}'); |
| | | console.log('{!staticResource}'); |
| | | var VLookUpFields = {! VLookUpFieldsJson}; |
| | | |
| | | 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 ProcessPI(sobjJson, payloadForNewPI) { |
| | | blockme(); |
| | | if ({!isNewMode} || {!isCloneMode}) { |
| | | NewPIToAWS(sobjJson, payloadForNewPI) |
| | | NewPIToAWS(sobjJson, payloadForNewPI) |
| | | }else { |
| | | UpdatePIToAWS(sobjJson, payloadForNewPI) |
| | | } |
| | |
| | | } |
| | | return ['input','select','textarea'].indexOf(tag_name.toLowerCase())>-1; |
| | | } |
| | | |
| | | function IsFormElement(e){ |
| | | |
| | | function IsFormElement(e){ |
| | | return IsFormTag(e.tagName); |
| | | } |
| | | |
| | |
| | | |
| | | function validateFieldValueFormate() { |
| | | let error_msg = ''; |
| | | let textEmail = "[data-id='Email']"; |
| | | let textPhone = "[data-id='Phone']"; |
| | | //Email |
| | | let email = document.querySelector(textEmail); |
| | | if(email ){ |
| | | if(email.value){ |
| | | if(!/^[\w-]{3,12}@[\da-zA-Z]{2,16}\.[a-zA-Z]+$/.test(email.value)){ |
| | | error_msg += ';邮件格式错误'; |
| | | } |
| | | }else{ |
| | | if(email.previousSibling && email.previousSibling.className.indexOf('requiredBlock')>-1){ |
| | | error_msg += ';邮件格式错误'; |
| | | } |
| | | } |
| | | } |
| | | let phone = document.querySelector(textPhone); |
| | | // let textEmail = "[data-id='Email']"; |
| | | // let textPhone = "[data-id='Phone']"; |
| | | // //Email |
| | | // let email = document.querySelector(textEmail); |
| | | // if(email ){ |
| | | // if(email.value){ |
| | | // if(!/^[\w-]{3,12}@[\da-zA-Z]{2,16}\.[a-zA-Z]+$/.test(email.value)){ |
| | | // error_msg += ';邮件格式错误'; |
| | | // } |
| | | // }else{ |
| | | // if(email.previousSibling && email.previousSibling.className.indexOf('requiredBlock')>-1){ |
| | | // error_msg += ';邮件格式错误'; |
| | | // } |
| | | // } |
| | | // } |
| | | // let phone = document.querySelector(textPhone); |
| | | |
| | | if(phone && false ){ |
| | | if(phone.value){ |
| | | if(!/^1[3|5|8|7][0-9]\d{4,8}$/.test(phone.value)){ |
| | | error_msg += ';电话号码错误'; |
| | | } |
| | | }else{ |
| | | if(phone.previousSibling && phone.previousSibling.className.indexOf('requiredBlock')>-1){ |
| | | error_msg += ';电话号码错误'; |
| | | } |
| | | } |
| | | } |
| | | // if(phone && false ){ |
| | | // if(phone.value){ |
| | | // if(!/^1[3|5|8|7][0-9]\d{4,8}$/.test(phone.value)){ |
| | | // error_msg += ';电话号码错误'; |
| | | // } |
| | | // }else{ |
| | | // if(phone.previousSibling && phone.previousSibling.className.indexOf('requiredBlock')>-1){ |
| | | // error_msg += ';电话号码错误'; |
| | | // } |
| | | // } |
| | | // } |
| | | |
| | | let es = document.getElementsByTagName('select') |
| | | for(let ei in es){ |
| | |
| | | |
| | | // let e1 = document.getElementById(api_id_map[field_api_name]); |
| | | // if(!result[field_api_name] && e1 && e1.value){ |
| | | // result[field_api_name] = e1.value; |
| | | // result[field_api_name] = e1.value; |
| | | // } |
| | | } |
| | | return result; |
| | |
| | | window.open('/' + sfId, '_self'); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | function UpdatePIToAWS(sobjJson, payloadForNewPI) { |
| | |
| | | let obj = JSON.parse(payloadForNewPI); |
| | | obj[0].dataId = '{!AWSDataId}'; |
| | | let payloadForNewPIJson = JSON.stringify(obj); |
| | | AWSService.update(staticResources.updateUrl, sobjJson, payloadForNewPIJson, controllerSaveMethod, staticResources.token, staticResources.transactionUrl, false, insertOrUpdateBack,redirectCallBack); |
| | | //AWSService.update(staticResources.updateUrl, sobjJson, payloadForNewPIJson, controllerSaveMethod, staticResources.token, staticResources.transactionUrl, false, insertOrUpdateBack,redirectCallBack); |
| | | //zhj MEBG新方案改造 2022-11-25 start |
| | | AWSService.update(staticResourceContactV2.updateUrl, sobjJson, payloadForNewPIJson, controllerSaveMethod, staticResources.token, staticResources.transactionUrl, false, insertOrUpdateBack,redirectCallBack); |
| | | //zhj MEBG新方案改造 2022-11-25 end |
| | | |
| | | } |
| | | |
| | | function NewPIToAWS(sobjJson, payloadForNewPI) { |
| | | let controllerSaveMethod = config.insertMethod; |
| | | AWSService.insert(staticResources.newUrl, sobjJson, payloadForNewPI, controllerSaveMethod, staticResources.token, staticResources.transactionUrl, true, insertOrUpdateBack,redirectCallBack); |
| | | //AWSService.insert(staticResources.newUrl, sobjJson, payloadForNewPI, controllerSaveMethod, staticResources.token, staticResources.transactionUrl, true, insertOrUpdateBack,redirectCallBack); |
| | | //zhj MEBG新方案改造 2022-11-25 start |
| | | AWSService.insert(staticResourceContactV2.newUrl, sobjJson, payloadForNewPI, controllerSaveMethod, staticResources.token, staticResources.transactionUrl, true, insertOrUpdateBack,redirectCallBack); |
| | | //zhj MEBG新方案改造 2022-11-25 end |
| | | |
| | | } |
| | | |
| | |
| | | function checkRequiredFieldMsg(formData) { |
| | | let blankRequiredFields = ''; |
| | | for(i = 0;i<requiredFieldAPIList.length;i++){ |
| | | if(formData[requiredFieldAPIList[i]]){ |
| | | if(formData[requiredFieldAPIList[i]] && (VLookUpFields.indexOf(requiredFieldAPIList[i]) == -1)){ |
| | | continue; |
| | | }else if((VLookUpFields.indexOf(requiredFieldAPIList[i]) != -1) && formData[requiredFieldAPIList[i]] != '000000000000000'){ |
| | | continue; |
| | | }else{ |
| | | if(blankRequiredFields == ''){ |
| | |
| | | return blankRequiredFields; |
| | | } |
| | | function saveSobjectProcess(save_and_new) { |
| | | EditButton(true); |
| | | |
| | | if(save_and_new){ |
| | | config.SaveAndNew = true; |
| | | } |
| | |
| | | // //4. Get Authentication Information for AWS |
| | | // loadAWSAuthentication(); |
| | | |
| | | //zhj MEBG新方案改造 2022-11-24 start |
| | | //新增contactIds字段,在AWS进行contact的唯一性校验,替换ContactTriggerHandler里面的mobileNumberVerification方法 |
| | | if('{!rtTypeId}'){ |
| | | var RecordTypeId = '{!rtTypeId}'; |
| | | } |
| | | var Isactive = document.querySelector("[data-id='Isactive__c']").value; |
| | | console.log('Isactive = ' + Isactive); |
| | | console.log('RecordTypeId = ' + RecordTypeId); |
| | | Visualforce.remoting.Manager.invokeAction( |
| | | config.searchContactByAccountId, |
| | | sobjJson.AccountId, |
| | | RecordTypeId, |
| | | Isactive, |
| | | function (result, event) { |
| | | if(result.status == 'fail'){ |
| | | alertErrorMessage(result.message); |
| | | return |
| | | } |
| | | console.log('result = ' + JSON.stringify(result)); |
| | | accountName = result.accountName; |
| | | dataIdManageCodeMap = result.dataIdManageCodeMap; |
| | | var contactList = ''; |
| | | for(var i = 0; i<result.contactList.length; i++){ |
| | | if(result.contactList[i].AWS_Data_Id__c) |
| | | contactList += ',' + result.contactList[i].AWS_Data_Id__c; |
| | | } |
| | | contactList = contactList.substring(1); |
| | | |
| | | payloadForNewPI = JSON.parse(payloadForNewPI); |
| | | payloadForNewPI[0].contactIds = contactList; |
| | | payloadForNewPI[0].isMobileVerif = result.isMobileVerif; |
| | | payloadForNewPI[0].isNameMobileVerif = result.isNameMobileVerif; |
| | | payloadForNewPI = JSON.stringify(payloadForNewPI); |
| | | ProcessPI(sobjJson, payloadForNewPI); |
| | | }, |
| | | { escape: true } |
| | | ); |
| | | |
| | | |
| | | // //5. lead to AWS |
| | | ProcessPI(sobjJson, payloadForNewPI); |
| | | //ProcessPI(sobjJson, payloadForNewPI); |
| | | //zhj MEBG新方案改造 2022-11-24 end |
| | | |
| | | // awsToken = TestToken; |
| | | // NewPIToAWS(sobjJson,awsToken, payloadForNewPI) |
| | | } |
| | |
| | | errorMsg = '错误:无效数据。' + '\n' + errorMsg; |
| | | errorMsgNode.innerText = errorMsg; |
| | | errorMsgNode.className = 'pbError'; |
| | | EditButton(false); |
| | | } |
| | | function hiddenErrorMsgNode() { |
| | | let errorMsgNode = document.getElementById("page:form:block:msgContent"); |
| | |
| | | var api_id_map={}; |
| | | for(let ei in init_nodes){ |
| | | let e = init_nodes[ei]; |
| | | if(IsFormElement(e)){ |
| | | 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 () { |
| | | |
| | | jQuery('option').each(function(i,e){ |
| | | if(e.value == '_\x01_'){ |
| | | e.value = ''; |
| | | } |
| | | if(e.value == '_\x01_'){ |
| | | e.value = ''; |
| | | } |
| | | }) |
| | | |
| | | //1. Set Last Name label |
| | |
| | | blockme(); |
| | | QuerySobjectFromAWS(); |
| | | }else{ |
| | | let ot = jQuery('input[data-id="OwnerId"]'); |
| | | let ot = jQuery('input[data-id="OwnerId"]'); |
| | | let oi = document.getElementById(ot.attr("id")+'_lkid'); |
| | | ot.val('{!CurrentUserName}'); |
| | | ot.attr("readonly",""); |
| | |
| | | ot.css("outline","0"); |
| | | |
| | | if(oi){ |
| | | oi.value = '{!CurrentUserId}' |
| | | oi.value = '{!CurrentUserId}' |
| | | } |
| | | } |
| | | document.getElementById('topButtonRow').style = ''; |
| | | document.getElementById('bottomButtonRow').style = ''; |
| | | document.getElementById('bottomButtonRow').style = ''; |
| | | |
| | | jQuery('a[data-id="OwnerId"]').remove(); |
| | | |