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(
-                                                        /(&quot\;)/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(/(&quot\;)/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