binxie
2023-06-16 da42e2995c00293af89c71fe5ba6e16cbb77e1b3
force-app/main/default/aura/NewAgencyOpportunity/NewAgencyOpportunityHelper.js
@@ -1,8 +1,6 @@
({
  CallBackAction: function (component, action_name, para, callback) {
    var action = component.get(
      "c." + action_name.trimStart().replace("c.", "")
    );
      var action = component.get("c." + action_name.trimStart().replace("c.",""));
    if (para) {
      action.setParams(para);
    }
@@ -20,81 +18,63 @@
    toastEvent.fire();
  },
  AwsPost: function (postURL, data, callback, token) {
    let payloadForNewPI = "";
    if (typeof data == "string") {
        let payloadForNewPI = '';
        if(typeof(data) == 'string'){
      payloadForNewPI = data;
    } else {
      payloadForNewPI = JSON.stringify(data);
    }
    AWSService.post(
      postURL,
      payloadForNewPI,
      function (result) {
        AWSService.post(postURL,payloadForNewPI,function(result) {
        //this.insertCalloutLog(this.insertModule,postURL,JSON.stringify(payloadForNewPI),JSON.stringify(result),this.successStatus);
        if (callback) callback(result);
      },
      token
    );
        },token);
  },
  AwsGet: function (url, data, callback, token) {
    if (typeof data == "string") {
        if(typeof(data) == 'string'){
      url += data;
    } else {
      let i = 0;
      for (let p in data) {
        url += i++ ? "&" : "?";
        url += p + "=" + data[p];
                url += (i++) ? '&' : '?';
                url += p + '=' + data[p];
      }
    }
    AWSService.get(
      url,
      function (result) {
        AWSService.get(url,function(result){
        //this.insertCalloutLog(this.insertModule,postURL,JSON.stringify(payloadForNewPI),JSON.stringify(result),this.successStatus);
        if (callback) callback(result);
        },token);
      },
      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 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");
        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 = ["姓名", "医院", "医生区分(职务)", "分类"];
        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");
            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");
            let tr = document.createElement('TR');
      tableBody.appendChild(tr);
      let contactInfoTemp = contactInfoList[i];
            let contactInfoTemp = contactInfoList[i]
      for (let j = 0; j < cols.length; j++) {
        let td = document.createElement("TD");
        td.width = "75";
                let td = document.createElement('TD');
                td.width = '75';
        if (contactInfoTemp.pi) {
          if (!contactsInfo.hasOwnProperty(contactInfoTemp.AWSDataId)) {
            continue;
@@ -105,12 +85,8 @@
        } else {
          td.id = contactInfoTemp.sfRecordId;
        }
        td.appendChild(
          document.createTextNode(
            contactInfoTemp[cols[j]] != null ? contactInfoTemp[cols[j]] : ""
          )
        );
        if (cols[j] == "Name") {
                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);
          });
@@ -119,17 +95,17 @@
      }
    }
    myTableDiv.appendChild(table);
    component.find("button").set("v.disabled", false);
        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");
        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") {
                    if(item.field == 'Agency_Contact__c'){
            item.value = id;
          }
        }
@@ -138,144 +114,126 @@
    component.set("v.isModalOpen", false);
  },
  resetTable: function () {
    let queryResult = document.getElementById("QueryResult");
    let table = document.getElementsByTagName("table");
        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]);
                queryResult.removeChild(table[i])
      }
    }
  },
  preparePayloadForSearchAgencyContact: function (component, event, helper) {
    let that = this;
    let agencyHospitalId = "";
    let accountId = "";
    let layout = component.get("v.layout");
        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") {
                    if(item.field == 'Agency_Hospital__c'){
            agencyHospitalId = item.value;
          }
          if (item.field == "Account_Opp__c") {
                    if(item.field == 'Account_Opp__c'){
            accountId = item.value;
          }
        }
      }
    }
    var action = component.get("c.getAWSDataIds");
        var action = component.get('c.getAWSDataIds');
    action.setParams({
      agencyHospitalId: agencyHospitalId,
      accountId: accountId
            "agencyHospitalId" : agencyHospitalId,
            "accountId" : accountId
    });
    action.setCallback(this, function (response) {
      var state = response.getState();
      if (state == "SUCCESS") {
            if(state == 'SUCCESS'){
        var rv = response.getReturnValue();
        if (rv.Data.length == 0) {
          component.find("button").set("v.disabled", false);
                    component.find('button').set('v.disabled', false);
          helper.ShowToast({
            message: "该经销商医院下面没有客户人员",
            type: "warning"
                        "message" : "该经销商医院下面没有客户人员",
                        "type" : "warning"
          });
          return;
                    return
        }
        let searchPayload = new Object();
        let searchAgencyContactName = component.get("v.searchKeyWord");
                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");
                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) {
                this.AwsPost(url,searchPayload,function(data){
            if (data.success) {
              let cols = ["Name", "AgencyHospital", "DoctorDivision1", "Type"];
                        let cols = ['Name','AgencyHospital', 'DoctorDivision1','Type'];
              let contactInfoList = [];
              let awsDataIds = [];
              if (data.object.length == 0) {
                component.find("button").set("v.disabled", false);
                            component.find('button').set('v.disabled', false);
                that.ShowToast({
                  message: "没有查询到该客户人员",
                  type: "warning"
                                "message" : '没有查询到该客户人员',
                                "type" : "warning"
                });
                return;
                            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.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 = "";
                                contactInfo.sfRecordId = '';
                  contactInfoList.push(contactInfo);
                }
              }
              //let AWSIdToSFIdMapValue = {};
              var searchAgencyContacts = component.get(
                "c.searchAgencyContacts"
              );
                        var searchAgencyContacts = component.get('c.searchAgencyContacts');
              searchAgencyContacts.setParams({
                awsAgencyContactIds: JSON.stringify(awsDataIds),
                agencyHospitalId: agencyHospitalId,
                accountId: accountId
                            "awsAgencyContactIds" : JSON.stringify(awsDataIds),
                            "agencyHospitalId" : agencyHospitalId,
                            "accountId" : accountId
              });
              searchAgencyContacts.setCallback(this, function (response) {
                var state = response.getState();
                if (state == "SUCCESS") {
                            if(state == 'SUCCESS'){
                  var rv = response.getReturnValue();
                  if (rv.IsSuccess) {
                    let contactsInfo = "";
                                    let contactsInfo = '';
                    if (rv.Data) {
                      contactsInfo = JSON.parse(
                        rv.Data.replace(/(&quot\;)/g, '"')
                      );
                                        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"]];
                                                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"];
                                                    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"
                                ];
                                                    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);
                  }
                }
              });
              $A.enqueueAction(searchAgencyContacts);
            }
          },
          token
        );
                },token);
      }
    });
    $A.enqueueAction(action);
  }
});
})