From 5b5c1e16deaa3a9d6d0ed1ffca390655ed103df7 Mon Sep 17 00:00:00 2001 From: buli <137736985@qq.com> Date: 星期五, 14 七月 2023 14:56:14 +0800 Subject: [PATCH] lex community --- force-app/main/default/aura/NewAgencyOpportunity/NewAgencyOpportunityHelper.js | 425 +++++++++++++++++++++++------------------------------ 1 files changed, 184 insertions(+), 241 deletions(-) diff --git a/force-app/main/default/aura/NewAgencyOpportunity/NewAgencyOpportunityHelper.js b/force-app/main/default/aura/NewAgencyOpportunity/NewAgencyOpportunityHelper.js index 6377482..34e057a 100644 --- a/force-app/main/default/aura/NewAgencyOpportunity/NewAgencyOpportunityHelper.js +++ b/force-app/main/default/aura/NewAgencyOpportunity/NewAgencyOpportunityHelper.js @@ -1,89 +1,69 @@ ({ - CallBackAction: function (component, action_name, para, callback) { - var action = component.get( - 'c.' + action_name.trimStart().replace('c.', '') - ); - if (para) { + CallBackAction : function(component,action_name,para,callback) { + var action = component.get("c." + action_name.trimStart().replace("c.","")); + if(para){ action.setParams(para); } - if (callback) { - action.setCallback(this, function (data) { + if(callback){ + action.setCallback(this,function(data){ callback(data); }); } - + $A.enqueueAction(action); - }, - ShowToast: function (paras) { - var toastEvent = $A.get('e.force:showToast'); + }, + ShowToast : function(paras){ + var toastEvent = $A.get("e.force:showToast"); toastEvent.setParams(paras); toastEvent.fire(); }, - AwsPost: function (postURL, data, callback, token) { + AwsPost : function(postURL, data ,callback,token){ let payloadForNewPI = ''; - if (typeof data == 'string') { + if(typeof(data) == 'string'){ payloadForNewPI = data; - } else { + }else{ payloadForNewPI = JSON.stringify(data); } - - AWSService.post( - postURL, - payloadForNewPI, - function (result) { - //this.insertCalloutLog(this.insertModule,postURL,JSON.stringify(payloadForNewPI),JSON.stringify(result),this.successStatus); - if (callback) callback(result); - }, - token - ); + + AWSService.post(postURL,payloadForNewPI,function(result) { + //this.insertCalloutLog(this.insertModule,postURL,JSON.stringify(payloadForNewPI),JSON.stringify(result),this.successStatus); + if(callback) callback(result); + },token); }, - AwsGet: function (url, data, callback, token) { - if (typeof data == 'string') { + AwsGet : function(url, data ,callback,token){ + + if(typeof(data) == 'string'){ url += data; - } else { + }else{ let i = 0; - for (let p in data) { - url += i++ ? '&' : '?'; + for(let p in data){ + url += (i++) ? '&' : '?'; url += p + '=' + data[p]; } } - - AWSService.get( - url, - function (result) { - //this.insertCalloutLog(this.insertModule,postURL,JSON.stringify(payloadForNewPI),JSON.stringify(result),this.successStatus); - if (callback) callback(result); - }, - token - ); + + AWSService.get(url,function(result){ + //this.insertCalloutLog(this.insertModule,postURL,JSON.stringify(payloadForNewPI),JSON.stringify(result),this.successStatus); + if(callback) callback(result); + },token); }, - refreshTable: function ( - component, - event, - helper, - cols, - contactInfoList, - contactsInfo - ) { + refreshTable : function(component, event, helper,cols,contactInfoList,contactsInfo){ let that = this; - let myTableDiv = document.getElementById('QueryResult'); + let myTableDiv = document.getElementById("QueryResult"); let table = document.createElement('TABLE'); table.border = '1'; - table.id = 'table'; - table.setAttribute( - 'class', - 'slds-table slds-table_cell-buffer slds-table_bordered' - ); + table.id = 'customTable'; + table.setAttribute('class','slds-table slds-table_cell-buffer slds-table_bordered'); let tableBody = document.createElement('TBODY'); table.appendChild(tableBody); let headerTR = document.createElement('TR'); - headerTR.setAttribute('class', 'slds-line-height_reset'); - let colsHeader = ['濮撳悕', '鍖婚櫌', '鍖荤敓鍖哄垎(鑱屽姟)', '鍒嗙被']; + headerTR.setAttribute('class','slds-line-height_reset'); + let colsHeader = [' ','濮撳悕','鍖婚櫌', '鍖荤敓鍖哄垎(鑱屽姟)','鍒嗙被']; tableBody.appendChild(headerTR); for (let i = 0; i < colsHeader.length; i++) { let td = document.createElement('TH'); td.width = '75'; - td.setAttribute('class', 'slds-truncate slds-border_right'); + td.setAttribute('class','slds-truncate slds-border_right'); td.appendChild(document.createTextNode(colsHeader[i])); headerTR.appendChild(td); } @@ -92,84 +72,94 @@ let tr = document.createElement('TR'); tableBody.appendChild(tr); let contactInfoTemp = contactInfoList[i]; + + //鍐嶅姞涓�鍒楅�夋嫨button + debugger + let td = document.createElement('TD'); + td.width = '75'; + td.id = contactsInfo[contactInfoTemp.AWSDataId].Id; + console.log('contactInfoTemp = ' + JSON.stringify(contactInfoTemp)) + // 鍒涘缓鎸夐挳鍏冪礌 + var button = document.createElement('button'); + button.classList.add('slds-button','slds-button_neutral'); + button.id = contactInfoTemp.sfRecordId != null ? contactInfoTemp.sfRecordId : ''; + // 璁剧疆鎸夐挳鐨勬枃鏈唴瀹� + var buttonText = document.createTextNode('閫夋嫨'); + button.appendChild(buttonText); + button.addEventListener("click", function (obj) { + that.redirectToParentPage(component, event, helper, obj); + }); + button.value = contactInfoTemp[cols[0]] != null ? contactInfoTemp[cols[0]] : '' + td.appendChild(button); + tr.appendChild(td); for (let j = 0; j < cols.length; j++) { let td = document.createElement('TD'); td.width = '75'; - if (contactInfoTemp.pi) { - if ( - !contactsInfo.hasOwnProperty(contactInfoTemp.AWSDataId) - ) { + if(contactInfoTemp.pi){ + if (!contactsInfo.hasOwnProperty(contactInfoTemp.AWSDataId)) { continue; } - if (j == 0 && contactsInfo[contactInfoTemp.AWSDataId]) { + if(j == 0 && contactsInfo[contactInfoTemp.AWSDataId] ){ td.id = contactsInfo[contactInfoTemp.AWSDataId].Id; - } - } else { + } + }else{ td.id = contactInfoTemp.sfRecordId; - } - td.appendChild( - document.createTextNode( - contactInfoTemp[cols[j]] != null - ? contactInfoTemp[cols[j]] - : '' - ) - ); - if (cols[j] == 'Name') { - td.addEventListener('click', function (obj) { - that.redirectToParentPage( - component, - event, - helper, - obj - ); - }); - } + } + td.appendChild(document.createTextNode(contactInfoTemp[cols[j]]!=null?contactInfoTemp[cols[j]]:'')); + // if (cols[j] == 'Name') { + // td.addEventListener("click", function (obj) { + // that.redirectToParentPage(component, event, helper,obj); + // }); + // } tr.appendChild(td); } } + that.resetTable(); myTableDiv.appendChild(table); component.find('button').set('v.disabled', false); }, - redirectToParentPage: function (component, event, helper, obj) { - let agencyContactName = obj.currentTarget.innerText; + redirectToParentPage : function(component, event, helper,obj){ + let agencyContactName = obj.currentTarget.value; let id = obj.currentTarget.id; - component.set('v.ac_name', agencyContactName); + component.set('v.ac_name',agencyContactName); let layout = component.get('v.layout'); - for (let s of layout) { - for (let c of s.layoutColumns) { - for (let item of c.layoutItems) { - if (item.field == 'Agency_Contact__c') { + for(let s of layout){ + for(let c of s.layoutColumns){ + for(let item of c.layoutItems){ + if(item.field == 'Agency_Contact__c'){ item.value = id; } } } } - component.set('v.isModalOpen', false); + component.set("v.isModalOpen", false); }, - resetTable: function () { - let queryResult = document.getElementById('QueryResult'); - let table = document.getElementsByTagName('table'); - debugger; - console.log('table:' + table); - debugger; - if (table.length > 1) { - for (var i = 1; i < table.length; i++) { - queryResult.removeChild(table[i]); - } + resetTable : function(){ + // let queryResult = document.getElementById('QueryResult'); + // let table = document.getElementById('customTable'); + // console.log('table:' + table); + // if(table.length > 1){ + // for(var i=1;i<table.length;i++){ + // queryResult.removeChild(table[i]) + // } + // } + let customTable = document.getElementById('customTable'); + if(customTable){ + customTable.parentNode.removeChild(customTable); } }, - preparePayloadForSearchAgencyContact: function (component, event, helper) { + preparePayloadForSearchAgencyContact : function(component, event, helper){ let that = this; let agencyHospitalId = ''; let accountId = ''; let layout = component.get('v.layout'); - for (let s of layout) { - for (let c of s.layoutColumns) { - for (let item of c.layoutItems) { - if (item.field == 'Agency_Hospital__c') { + for(let s of layout){ + for(let c of s.layoutColumns){ + for(let item of c.layoutItems){ + if(item.field == 'Agency_Hospital__c'){ agencyHospitalId = item.value; } - if (item.field == 'Account_Opp__c') { + if(item.field == 'Account_Opp__c'){ accountId = item.value; } } @@ -177,165 +167,118 @@ } var action = component.get('c.getAWSDataIds'); action.setParams({ - agencyHospitalId: agencyHospitalId, - accountId: accountId + "agencyHospitalId" : agencyHospitalId, + "accountId" : accountId }); - action.setCallback(this, function (response) { + action.setCallback(this,function(response){ var state = response.getState(); - if (state == 'SUCCESS') { + if(state == 'SUCCESS'){ var rv = response.getReturnValue(); - if (rv.Data.length == 0) { + if(rv.Data.length == 0){ component.find('button').set('v.disabled', false); helper.ShowToast({ - message: '璇ョ粡閿�鍟嗗尰闄笅闈㈡病鏈夊鎴蜂汉鍛�', - type: 'warning' + "message" : "璇ョ粡閿�鍟嗗尰闄笅闈㈡病鏈夊鎴蜂汉鍛�", + "type" : "warning" }); - return; + return } + component.set('v.showSpinner',true); let searchPayload = new Object(); let searchAgencyContactName = component.get('v.searchKeyWord'); searchPayload.dataIds = rv.Data; searchPayload.name = searchAgencyContactName; - component.set('v.contactAWSIds', rv.Data); + component.set('v.contactAWSIds',rv.Data); let staticResource = component.get('v.staticResource'); let url = staticResource.searchUrl; let token = staticResource.token; - this.AwsPost( - url, - searchPayload, - function (data) { - if (data.success) { - let cols = [ - 'Name', - 'AgencyHospital', - 'DoctorDivision1', - 'Type' - ]; - let contactInfoList = []; - let awsDataIds = []; - if (data.object.length == 0) { - component - .find('button') - .set('v.disabled', false); - that.ShowToast({ - message: '娌℃湁鏌ヨ鍒拌瀹㈡埛浜哄憳', - type: 'warning' - }); - return; - } - for (var i = 0; i < data.object.length; i++) { - if (data.object[i].dataId) { - let contactInfo = new Object(); - //闇�瑕佷慨鏀� - contactInfo.Name = data.object[i].name; - contactInfo.AgencyHospital = ''; - contactInfo.DoctorDivision1 = - data.object[i].doctorDivision1; - contactInfo.AWSDataId = - data.object[i].dataId; - contactInfo.Type = data.object[i].type; - contactInfo.pi = true; - awsDataIds.push(contactInfo.AWSDataId); - contactInfo.sfRecordId = ''; - contactInfoList.push(contactInfo); - } - } - //let AWSIdToSFIdMapValue = {}; - var searchAgencyContacts = component.get( - 'c.searchAgencyContacts' - ); - searchAgencyContacts.setParams({ - awsAgencyContactIds: JSON.stringify(awsDataIds), - agencyHospitalId: agencyHospitalId, - accountId: accountId + this.AwsPost(url,searchPayload,function(data){ + if(data.success){ + let cols = ['Name','AgencyHospital', 'DoctorDivision1','Type']; + let contactInfoList = []; + let awsDataIds = []; + if(data.object.length == 0){ + component.find('button').set('v.disabled', false); + that.ShowToast({ + "message" : '娌℃湁鏌ヨ鍒拌瀹㈡埛浜哄憳', + "type" : "warning" }); - searchAgencyContacts.setCallback( - this, - function (response) { - var state = response.getState(); - if (state == 'SUCCESS') { - var rv = response.getReturnValue(); - if (rv.IsSuccess) { - let contactsInfo = ''; - if (rv.Data) { - contactsInfo = JSON.parse( - rv.Data.replace( - /("\;)/g, - '"' - ) - ); - if ( - Object.keys(contactsInfo) - .length > 0 - ) { - for ( - let i = 0; - i < - contactInfoList.length; - i++ - ) { - let contactFromSF = - contactsInfo[ - contactInfoList[ - i - ]['AWSDataId'] - ]; - if (contactFromSF) { - contactInfoList[ - i - ].sfRecordId = - contactFromSF[ - 'Id' - ]; - if ( - contactFromSF[ - 'Agency_Hospital__r' - ] - ) { - contactInfoList[ - i - ].AgencyHospital = - contactFromSF[ - 'Agency_Hospital__r' - ]['Name']; - } - if ( - contactFromSF[ - 'Department_Class__r' - ] - ) { - contactInfoList[ - i - ].AgencyHospital = - contactFromSF[ - 'Department_Class__r' - ]['Parent'][ - 'Name' - ]; - } - } + component.set('v.showSpinner',false); + return + } + for(var i=0;i<data.object.length;i++){ + if(data.object[i].dataId){ + let contactInfo = new Object(); + //闇�瑕佷慨鏀� + contactInfo.Name = data.object[i].name; + contactInfo.AgencyHospital = ''; + contactInfo.DoctorDivision1 = data.object[i].doctorDivision1; + contactInfo.AWSDataId = data.object[i].dataId; + contactInfo.Type = data.object[i].type; + contactInfo.pi = true; + awsDataIds.push(contactInfo.AWSDataId); + contactInfo.sfRecordId = ''; + contactInfoList.push(contactInfo); + } + } + //let AWSIdToSFIdMapValue = {}; + debugger + var searchAgencyContacts = component.get('c.searchAgencyContacts'); + searchAgencyContacts.setParams({ + "awsAgencyContactIds" : JSON.stringify(awsDataIds), + "agencyHospitalId" : agencyHospitalId, + "accountId" : accountId + }); + // 寤惰繜鎵ц涓�娈典唬鐮� + setTimeout(function() { + // 闇�瑕佸欢杩熸墽琛岀殑浠g爜 + // 鍒涘缓涓�涓紶鏍囩偣鍑讳簨浠� + var event = new MouseEvent('click', { + bubbles: true, + cancelable: true, + view: window + }); + + // 瑙﹀彂鍏冪礌鐨勭偣鍑讳簨浠� + var element = document.getElementById('NewAgencyContact'); + for(var i = 0;i<100;i++){ + element.dispatchEvent(event); + } + }, 1000); // 寤惰繜 1000 姣锛堝嵆 1 绉掞級 + searchAgencyContacts.setCallback(that,function(response){ + var state = response.getState(); + if(state == 'SUCCESS'){ + var rv = response.getReturnValue(); + if(rv.IsSuccess){ + let contactsInfo = ''; + if(rv.Data){ + contactsInfo = JSON.parse(rv.Data.replace(/("\;)/g,"\"")); + if(Object.keys(contactsInfo).length>0){ + for(let i=0;i<contactInfoList.length;i++){ + let contactFromSF = contactsInfo[contactInfoList[i]['AWSDataId']]; + if(contactFromSF){ + contactInfoList[i].sfRecordId = contactFromSF['Id']; + if(contactFromSF['Agency_Hospital__r']){ + contactInfoList[i].AgencyHospital = contactFromSF['Agency_Hospital__r']['Name']; + } + if(contactFromSF['Department_Class__r']){ + contactInfoList[i].AgencyHospital = contactFromSF['Department_Class__r']['Parent']['Name']; } } } - that.refreshTable( - component, - event, - helper, - cols, - contactInfoList, - contactsInfo - ); } } + that.refreshTable(component, event, helper,cols,contactInfoList,contactsInfo); + component.set('v.showSpinner',false); } - ); - $A.enqueueAction(searchAgencyContacts); - } - }, - token - ); + } + }); + $A.enqueueAction(searchAgencyContacts); + }else{ + component.set('v.showSpinner',false); + } + },token); } }); $A.enqueueAction(action); } -}); +}) \ No newline at end of file -- Gitblit v1.9.1