({
|
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 = '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);
|
}
|
})
|