From e6068da47c1bef5517c9e5fdc8c726766867ad4e Mon Sep 17 00:00:00 2001
From: buli <137736985@qq.com>
Date: 星期五, 14 七月 2023 15:10:02 +0800
Subject: [PATCH] Merge branch 'master' into LEXUpgrade2023-Deloitte

---
 force-app/main/default/aura/NewAgencyOpportunity/NewAgencyOpportunityHelper.js |  656 ++++++++++++++++++++++++++++++++++------------------------
 1 files changed, 383 insertions(+), 273 deletions(-)

diff --git a/force-app/main/default/aura/NewAgencyOpportunity/NewAgencyOpportunityHelper.js b/force-app/main/default/aura/NewAgencyOpportunity/NewAgencyOpportunityHelper.js
index b861d13..732b0a0 100644
--- a/force-app/main/default/aura/NewAgencyOpportunity/NewAgencyOpportunityHelper.js
+++ b/force-app/main/default/aura/NewAgencyOpportunity/NewAgencyOpportunityHelper.js
@@ -1,281 +1,391 @@
 ({
-  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) {
-        callback(data);
-      });
-    }
+    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) {
+                callback(data);
+            });
+        }
 
-    $A.enqueueAction(action);
-  },
-  ShowToast: function (paras) {
-    var toastEvent = $A.get("e.force:showToast");
-    toastEvent.setParams(paras);
-    toastEvent.fire();
-  },
-  AwsPost: function (postURL, data, callback, token) {
-    let payloadForNewPI = "";
-    if (typeof data == "string") {
-      payloadForNewPI = data;
-    } 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
-    );
-  },
-  AwsGet: function (url, data, callback, token) {
-    if (typeof data == "string") {
-      url += data;
-    } else {
-      let i = 0;
-      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
-    );
-  },
-  refreshTable: function (
-    component,
-    event,
-    helper,
-    cols,
-    contactInfoList,
-    contactsInfo
-  ) {
-    let that = this;
-    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"
-    );
-    let tableBody = document.createElement("TBODY");
-    table.appendChild(tableBody);
-    let headerTR = document.createElement("TR");
-    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");
-      td.appendChild(document.createTextNode(colsHeader[i]));
-      headerTR.appendChild(td);
-    }
-    //3. Init the AWS data
-    for (let i = 0; i < contactInfoList.length; i++) {
-      let tr = document.createElement("TR");
-      tableBody.appendChild(tr);
-      let contactInfoTemp = contactInfoList[i];
-      for (let j = 0; j < cols.length; j++) {
-        let td = document.createElement("TD");
-        td.width = "75";
-        if (contactInfoTemp.pi) {
-          if (!contactsInfo.hasOwnProperty(contactInfoTemp.AWSDataId)) {
-            continue;
-          }
-          if (j == 0 && contactsInfo[contactInfoTemp.AWSDataId]) {
-            td.id = contactsInfo[contactInfoTemp.AWSDataId].Id;
-          }
+        $A.enqueueAction(action);
+    },
+    ShowToast: function (paras) {
+        var toastEvent = $A.get('e.force:showToast');
+        toastEvent.setParams(paras);
+        toastEvent.fire();
+    },
+    AwsPost: function (postURL, data, callback, token) {
+        let payloadForNewPI = '';
+        if (typeof data == 'string') {
+            payloadForNewPI = data;
         } else {
-          td.id = contactInfoTemp.sfRecordId;
+            payloadForNewPI = JSON.stringify(data);
         }
-        td.appendChild(
-          document.createTextNode(
-            contactInfoTemp[cols[j]] != null ? contactInfoTemp[cols[j]] : ""
-          )
+
+        AWSService.post(
+            postURL,
+            payloadForNewPI,
+            function (result) {
+                //this.insertCalloutLog(this.insertModule,postURL,JSON.stringify(payloadForNewPI),JSON.stringify(result),this.successStatus);
+                if (callback) callback(result);
+            },
+            token
         );
-        if (cols[j] == "Name") {
-          td.addEventListener("click", function (obj) {
-            that.redirectToParentPage(component, event, helper, obj);
-          });
-        }
-        tr.appendChild(td);
-      }
-    }
-    myTableDiv.appendChild(table);
-    component.find("button").set("v.disabled", false);
-  },
-  redirectToParentPage: function (component, event, helper, obj) {
-    let agencyContactName = obj.currentTarget.innerText;
-    let id = obj.currentTarget.id;
-    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") {
-            item.value = id;
-          }
-        }
-      }
-    }
-    component.set("v.isModalOpen", false);
-  },
-  resetTable: function () {
-    let queryResult = document.getElementById("QueryResult");
-    let table = document.getElementsByTagName("table");
-    if (table.length > 1) {
-      for (var i = 1; i < table.length; i++) {
-        queryResult.removeChild(table[i]);
-      }
-    }
-  },
-  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") {
-            agencyHospitalId = item.value;
-          }
-          if (item.field == "Account_Opp__c") {
-            accountId = item.value;
-          }
-        }
-      }
-    }
-    var action = component.get("c.getAWSDataIds");
-    action.setParams({
-      agencyHospitalId: agencyHospitalId,
-      accountId: accountId
-    });
-    action.setCallback(this, function (response) {
-      var state = response.getState();
-      if (state == "SUCCESS") {
-        var rv = response.getReturnValue();
-        if (rv.Data.length == 0) {
-          component.find("button").set("v.disabled", false);
-          helper.ShowToast({
-            message: "璇ョ粡閿�鍟嗗尰闄笅闈㈡病鏈夊鎴蜂汉鍛�",
-            type: "warning"
-          });
-          return;
-        }
-        let searchPayload = new Object();
-        let searchAgencyContactName = component.get("v.searchKeyWord");
-        searchPayload.dataIds = rv.Data;
-        searchPayload.name = searchAgencyContactName;
-        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
-              });
-              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"
-                                ];
-                            }
-                          }
-                        }
-                      }
-                    }
-                    that.refreshTable(
-                      component,
-                      event,
-                      helper,
-                      cols,
-                      contactInfoList,
-                      contactsInfo
-                    );
-                  }
-                }
-              });
-              $A.enqueueAction(searchAgencyContacts);
+    },
+    AwsGet: function (url, data, callback, token) {
+        if (typeof data == 'string') {
+            url += data;
+        } else {
+            let i = 0;
+            for (let p in data) {
+                url += i++ ? '&' : '?';
+                url += p + '=' + data[p];
             }
-          },
-          token
+        }
+
+        AWSService.get(
+            url,
+            function (result) {
+                //this.insertCalloutLog(this.insertModule,postURL,JSON.stringify(payloadForNewPI),JSON.stringify(result),this.successStatus);
+                if (callback) callback(result);
+            },
+            token
         );
-      }
-    });
-    $A.enqueueAction(action);
-  }
+    },
+    refreshTable: function (
+        component,
+        event,
+        helper,
+        cols,
+        contactInfoList,
+        contactsInfo
+    ) {
+        let that = this;
+        let myTableDiv = document.getElementById('QueryResult');
+        let table = document.createElement('TABLE');
+        table.border = '1';
+        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 = [' ', '濮撳悕', '鍖婚櫌', '鍖荤敓鍖哄垎(鑱屽姟)', '鍒嗙被'];
+        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.appendChild(document.createTextNode(colsHeader[i]));
+            headerTR.appendChild(td);
+        }
+        //3. Init the AWS data
+        for (let i = 0; i < contactInfoList.length; i++) {
+            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)
+                    ) {
+                        continue;
+                    }
+                    if (j == 0 && contactsInfo[contactInfoTemp.AWSDataId]) {
+                        td.id = contactsInfo[contactInfoTemp.AWSDataId].Id;
+                    }
+                } 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);
+                //     });
+                // }
+                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.value;
+        let id = obj.currentTarget.id;
+        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') {
+                        item.value = id;
+                    }
+                }
+            }
+        }
+        component.set('v.isModalOpen', false);
+    },
+    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) {
+        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') {
+                        agencyHospitalId = item.value;
+                    }
+                    if (item.field == 'Account_Opp__c') {
+                        accountId = item.value;
+                    }
+                }
+            }
+        }
+        var action = component.get('c.getAWSDataIds');
+        action.setParams({
+            agencyHospitalId: agencyHospitalId,
+            accountId: accountId
+        });
+        action.setCallback(this, function (response) {
+            var state = response.getState();
+            if (state == 'SUCCESS') {
+                var rv = response.getReturnValue();
+                if (rv.Data.length == 0) {
+                    component.find('button').set('v.disabled', false);
+                    helper.ShowToast({
+                        message: '璇ョ粡閿�鍟嗗尰闄笅闈㈡病鏈夊鎴蜂汉鍛�',
+                        type: 'warning'
+                    });
+                    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);
+                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'
+                                });
+                                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
+                                            );
+                                            component.set(
+                                                'v.showSpinner',
+                                                false
+                                            );
+                                        }
+                                    }
+                                }
+                            );
+                            $A.enqueueAction(searchAgencyContacts);
+                        } else {
+                            component.set('v.showSpinner', false);
+                        }
+                    },
+                    token
+                );
+            }
+        });
+        $A.enqueueAction(action);
+    }
 });

--
Gitblit v1.9.1