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