| | |
| | | ({ |
| | | 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(/("\;)/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 () { |
| | | // 需要延迟执行的代码 |
| | | // 创建一个鼠标点击事件 |
| | | 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 |
| | | ); |
| | | component.set( |
| | | 'v.showSpinner', |
| | | false |
| | | ); |
| | | } |
| | | } |
| | | } |
| | | ); |
| | | $A.enqueueAction(searchAgencyContacts); |
| | | } else { |
| | | component.set('v.showSpinner', false); |
| | | } |
| | | }, |
| | | token |
| | | ); |
| | | } |
| | | }); |
| | | $A.enqueueAction(action); |
| | | } |
| | | }); |