<apex:page id="Page" controller="CM_SearchContactServiceController" sidebar="false" showHeader="false" action="{!init}">
|
|
<!-- 2022/02/15 张华建 dependency start -->
|
<apex:includeScript value="{!URLFOR($Resource.AWSService, 'AWSService.js') }" />
|
<!-- 2022/02/15 张华建 dependency end -->
|
<apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}"/>
|
<apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}"/>
|
<apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/>
|
<style>
|
.decrypt{position: absolute;
|
top: 0;
|
left: 100%;
|
display: none;
|
text-align: left;
|
padding-left: 5px;
|
}
|
a:hover .decrypt{display: block;width: 150px}
|
</style>
|
<script type="text/javascript">
|
|
// 2022/02/15 张华建 改造PI start
|
//zhj 2022-02-04 新方案改造 start
|
var accountId = '{!accountIdV2}'
|
var accountName = '';
|
var dataIdManageCodeMap = {};
|
var staticResourcesV2 = JSON.parse('{!staticResourceContactV2}');
|
//zhj 2022-02-04 新方案改造 end
|
var staticResources = JSON.parse('{!staticResource}');
|
var contactAWSIds = JSON.parse('{!contactAWSIds}');
|
var LastName = '';
|
var contact = {};
|
var now_edit_id = '';
|
var aws_result = {};
|
searchContactAll();
|
function Foo(){
|
j$('[aws-id]').each(function(i,e){
|
let awsDataId = j$(e).attr('aws-id');
|
if (contact.hasOwnProperty(awsDataId)) {
|
let piInformation = '姓名:'+contact[awsDataId].lastName +'<br/>' +'手机号:'+ (contact[awsDataId].mobilePhone ? contact[awsDataId].mobilePhone :'');
|
j$(e).find('.decrypt').html(piInformation);
|
}else{
|
console.log(awsDataId+' not in contact');
|
}
|
|
});
|
}
|
|
function preparePayloadForSearchContact(){
|
let searchPayload = new Object();
|
searchPayload.dataIds = contactAWSIds;
|
searchPayload.contactName = LastName;
|
return JSON.stringify(searchPayload);
|
}
|
|
function searchContactAll(){
|
let data = preparePayloadForSearchContact();
|
let searchCallBack = function searchCallBack(result){
|
let contacts = result.object;
|
if(contacts == null){
|
return;
|
}
|
for(var i=0;i<contacts.length;i++){
|
let temp = {}
|
temp.lastName = contacts[i].lastName;
|
temp.mobilePhone = contacts[i].mobilePhone;
|
|
contact[contacts[i].dataId] = temp;
|
}
|
console.log(JSON.stringify(contact));
|
Foo();
|
};
|
AWSService.search(staticResources.searchUrl,data,searchCallBack,staticResources.token);
|
}
|
|
function searchContactJs() {
|
blockme();
|
LastName = document.getElementById('Page:allForm:searchBlock:LastName').value;
|
let awsDataIdArray = [];
|
for(var key in contact){
|
if(contact[key].lastName.includes(LastName)){
|
awsDataIdArray.push(key);
|
}
|
}
|
console.log(awsDataIdArray)
|
if(awsDataIdArray.length == 0){
|
clearLineInfoList();
|
return;
|
}
|
searchContactAll();
|
searchContact(awsDataIdArray.toString());
|
}
|
// 2022/02/15 张华建 改造PI end
|
|
function editContactJs(conid) {
|
blockme();
|
now_edit_id=conid;// 2022/02/15 徐亮 改造PI
|
editContact(conid);
|
}
|
|
function editSaveJs() {
|
hiddenErrorMsgNode(); //zhj MEBG新方案改造 2022-11-24
|
|
document.getElementById("errorMsg").innerHTML = '';
|
if(!document.getElementById("Page:allForm:editBlock:Search_LastName__c").value){
|
document.getElementById("errorMsg").innerHTML = '<strong>错误:</strong> 必须填写。';
|
return;
|
}
|
|
blockme();
|
ProcessPI({},GetEditObj());
|
}
|
|
function editClearJs() {
|
blockme();
|
editClear();
|
}
|
|
function setContact(line,awsDataId) {
|
var openLine = '{!openLine}';
|
var cm = 'allPage:allForm:allBlock:records:'+ (openLine - 1) + ':contact';
|
var cmid = 'allPage:allForm:allBlock:records:'+ (openLine - 1) + ':contactId';
|
var conid = j$(escapeVfId('Page:allForm:listBlock:lineinfo:' + (line - 1) + ':conId')).value();
|
//var conname = j$(escapeVfId('Page:allForm:listBlock:lineinfo:' + (line - 1) + ':conName')).value();
|
//2022/02/15 张华建 赋值成明文 start
|
var conname = contact[awsDataId].lastName;
|
//2022/02/15 张华建 赋值成明文 end
|
|
// 2018/11/19 HWAG-B399RW 自动设置省和市 start
|
var cityName = j$(escapeVfId('Page:allForm:listBlock:lineinfo:' + (line - 1) + ':City')).value();
|
var StateName = j$(escapeVfId('Page:allForm:listBlock:lineinfo:' + (line - 1) + ':State')).value();
|
|
var city = 'allPage:allForm:allBlock:records:'+ (openLine - 1) + ':City';
|
var State = 'allPage:allForm:allBlock:records:'+ (openLine - 1) + ':State';
|
j$(escapeVfId(city),window.opener.document).text(cityName);
|
j$(escapeVfId(State),window.opener.document).text(StateName);
|
// 2018/11/19 HWAG-B399RW 自动设置省和市 end
|
|
|
j$(escapeVfId(cmid),window.opener.document).val(conid);
|
j$(escapeVfId(cm),window.opener.document).val(conname);
|
|
window.close();
|
}
|
|
function showPIDiv(dataId,awsDataId){
|
// console.log('awsDataId Value:'+awsDataId);
|
// let parentNode = document.getElementById(awsDataId);
|
// let createDiv = document.createElement("div");
|
// createDiv.id = awsDataId+"_PI";
|
// let piInformation = 'Name:'+contact[awsDataId].lastName +'\n' +'Phone:'+contact[awsDataId].phone
|
// //let piInformation = 'Name:'+contact['943114607025717249'].lastName +'\n' +'Phone:'+contact['943114607025717249'].phone
|
// createDiv.innerText = piInformation;
|
// let x=window.event.x;
|
// let y=window.event.y;
|
// createDiv.style.left=x;
|
// createDiv.style.top=y;
|
// createDiv.style.background="#dddddd";
|
// createDiv.style.position = "absolute";
|
// parentNode.appendChild(createDiv);
|
console.log('dataId:'+dataId+'awsDataId Value:'+awsDataId);
|
let piInformation = '姓名:'+contact[awsDataId].lastName +'\n' +'电话:'+ (contact[awsDataId].mobilePhone?contact[awsDataId].mobilePhone:'');
|
document.getElementById(dataId+'_'+awsDataId).innerText = piInformation;
|
}
|
|
function hidePIDiv(dataId,awsDataId){
|
// document.getElementById(awsDataId+'_PI').remove();
|
document.getElementById(dataId+'_'+awsDataId).innerText = '';
|
}
|
|
// 2022年2月15日 PI改造 徐亮 start
|
function sobjectToAws(){
|
let aws_id = document.getElementById("Page:allForm:editBlock:AWS_Data_Id__c").value;
|
if(contact.hasOwnProperty(aws_id)){
|
return contact[aws_id];
|
}
|
else{
|
console.log('not found aws data in contact obj');
|
return {};
|
}
|
}
|
|
function GetAWSResultObj(){
|
if(aws_result && aws_result.object && aws_result.object.length > 0){
|
return aws_result.object[0];
|
}
|
return null;
|
}
|
function ProcessPI(sobjJson, payloadForNewPI) {
|
// //blockme();
|
// //zhj 2022-02-04 新方案改造 start
|
// // let url = staticResources.newUrl
|
// // if (now_edit_id) {
|
// // url = staticResources.updateUrl
|
// // }
|
// let url = staticResourcesV2.newUrl
|
// if (now_edit_id) {
|
// url = staticResourcesV2.updateUrl
|
// }
|
// //zhj 2022-02-04 新方案改造 end
|
// AWSService.post(url, payloadForNewPI, function(result){
|
// aws_result = result;
|
// //zhj MEBG新方案改造 2022-11-24 start
|
// if(r.status == '129'){
|
// alertErrorMessage('客户 [ '+accountName+ ' ],已存在相同名字的联系人 人员管理编码 ['+dataIdManageCodeMap[r.object[0].dataId]+' ] ,不能重复创建,请了解');
|
// unblockUI();
|
// return
|
// }
|
// if(r.status == '130'){
|
// if(r.object[0] && r.object[0].sfRecordId != null && r.object[0].sfRecordId != '')
|
// alertErrorMessage('已找到重复值: UniqueNumber__c 与记录值重复,ID 为: '+r.object[0].sfRecordId+'客户人员信息');
|
// else
|
// alertErrorMessage('数据中存在重复的电话号码');
|
// unblockUI();
|
// return
|
// }
|
// //zhj MEBG新方案改造 2022-11-24 end
|
// SetEditObj();
|
// saveNew();
|
// }, staticResources.token);
|
}
|
|
function Trans(){
|
debugger
|
AWSService.post(staticResources.transactionUrl, JSON.stringify({
|
"txId":aws_result.txId,
|
"isSuccess":1,
|
"sfRecordId":document.getElementById('Page:allForm:sfContactId').value,
|
}), function(result){
|
window.location.reload();
|
}, staticResources.token);
|
}
|
|
function assignUnencrypted(){
|
let obj = sobjectToAws();
|
document.getElementById("Page:allForm:editBlock:Search_LastName__c").value = obj.lastName;
|
//document.getElementById("Page:allForm:editBlock:Phone").value = obj.phone;
|
unblockUI();
|
}
|
|
function GetEditObj(){
|
//zhj 2022-02-04 新方案改造 start
|
Visualforce.remoting.Manager.invokeAction(
|
'CM_SearchContactServiceController.searchContactByAccountId',
|
accountId,
|
function (result, event) {
|
if(result.status == 'fail'){
|
alertErrorMessage(result.message);
|
return
|
}
|
console.log('result = ' + JSON.stringify(result));
|
accountName = result.accountName;
|
dataIdManageCodeMap = result.dataIdManageCodeMap;
|
var contactList = '';
|
for(var i = 0; i<result.contactList.length; i++){
|
if(result.contactList[i].AWS_Data_Id__c)
|
contactList += ',' + result.contactList[i].AWS_Data_Id__c;
|
}
|
contactList = contactList.substring(1);
|
var payloadForNewPI = JSON.stringify([{
|
lastName : document.getElementById("Page:allForm:editBlock:Search_LastName__c").value,
|
mobilePhone : '',
|
dataId : document.getElementById("Page:allForm:editBlock:AWS_Data_Id__c").value,
|
contactIds : contactList,
|
isMobileVerif : result.isMobileVerif,
|
isNameMobileVerif : result.isNameMobileVerif
|
}]);
|
console.log('payloadForNewPI = ' + JSON.stringify(payloadForNewPI));
|
debugger
|
let url = staticResourcesV2.newUrl
|
if (now_edit_id) {
|
url = staticResourcesV2.updateUrl
|
}
|
//zhj 2022-02-04 新方案改造 end
|
AWSService.post(url, payloadForNewPI, function(result){
|
aws_result = result;
|
//zhj MEBG新方案改造 2022-11-24 start
|
if(result.status == '129'){
|
alertErrorMessage('客户 [ '+accountName+ ' ],已存在相同名字的联系人 人员管理编码 ['+dataIdManageCodeMap[result.object[0].dataId]+' ] ,不能重复创建,请了解');
|
unblockUI();
|
return
|
}
|
if(result.status == '130'){
|
if(result.object[0] && result.object[0].sfRecordId != null && result.object[0].sfRecordId != '')
|
alertErrorMessage('已找到重复值: UniqueNumber__c 与记录值重复,ID 为: '+result.object[0].sfRecordId+'客户人员信息');
|
else
|
alertErrorMessage('数据中存在重复的电话号码');
|
unblockUI();
|
return
|
}
|
//zhj MEBG新方案改造 2022-11-24 end
|
SetEditObj();
|
saveNew();
|
}, staticResources.token);
|
});
|
//zhj 2022-02-04 新方案改造 end
|
}
|
|
function SetEditObj(){
|
let obj = GetAWSResultObj();
|
if(obj){
|
document.getElementById("Page:allForm:editBlock:AWS_Data_Id__c").value = obj.dataId;
|
document.getElementById("Page:allForm:editBlock:Search_LastName__c").value = obj.lastName;
|
//document.getElementById("Page:allForm:editBlock:LastName_Encrypted__c").value = obj.lastNameEncrypt; //zhj 新方案改造 2022-12-05
|
//document.getElementById("Page:allForm:editBlock:Phone").value = obj.phone;
|
//document.getElementById("Page:allForm:editBlock:Phone_Encrypted__c").value = obj.phoneEncrypt; //zhj 新方案改造 2022-12-05
|
}
|
|
}
|
//zhj MEBG新方案改造 2022-11-24 start
|
function alertErrorMessage(errorMsg) {
|
let errorMsgNode = document.getElementById("Page:allForm:editBlock:msgContent");
|
errorMsg = '错误:无效数据。' + '\n' + errorMsg;
|
errorMsgNode.innerText = errorMsg;
|
errorMsgNode.className = 'pbError';
|
}
|
function hiddenErrorMsgNode() {
|
let errorMsgNode = document.getElementById("Page:allForm:editBlock:msgContent");
|
errorMsgNode.innerText = '';
|
errorMsgNode.className = '';
|
}
|
//zhj MEBG新方案改造 2022-11-24 end
|
// 2022年2月15日 PI改造 徐亮 end
|
|
</script>
|
|
<apex:form id="allForm">
|
<apex:actionFunction name="searchContact" action="{!searchContact}" rerender="allForm,allPanel,sfContactId" onComplete="unblockUI();Foo()">
|
<apex:param name="awsDataIdArray" assignTo="{!awsDataIdArray}" value="" />
|
</apex:actionFunction>
|
<apex:actionFunction name="editContact" action="{!editContact}" rerender="allForm,allPanel,sfContactId" onComplete="assignUnencrypted();">
|
<apex:param name="firstParam" assignTo="{!conId}" value="" />
|
</apex:actionFunction>
|
<apex:actionFunction name="saveNew" action="{!saveNew}" rerender="allForm,allPanel,sfContactId" onComplete="Trans();">
|
</apex:actionFunction>
|
<apex:actionFunction name="editClear" action="{!editClear}" rerender="allForm,allPanel,sfContactId" onComplete="unblockUI();searchContactAll()">
|
</apex:actionFunction>
|
<!-- 2022/02/15 张华建 清空LineInfoList start -->
|
<apex:actionFunction name="clearLineInfoList" action="{!clearLineInfoList}" rerender="allForm" onComplete="unblockUI();">
|
</apex:actionFunction>
|
<apex:inputHidden id="sfContactId" value="{!sfContactId}"/> <!-- zhj 2022-12-02 sfId -->
|
<!-- 2022/02/15 张华建 清空LineInfoList end -->
|
<apex:outputPanel id="allPanel">
|
<apex:pageBlock id="searchBlock" title="检索条件">
|
<table class="linetable" border="0" style="border-collapse: collapse;width:600px;table-layout:fixed;">
|
<colgroup>
|
<col width="50px" />
|
<col width="150px" />
|
<col width="50px" />
|
<col width="150px" />
|
<col width="200px" />
|
</colgroup>
|
<tr>
|
<td>{!$ObjectType.Contact.fields.LastName.Label}</td>
|
<td><apex:inputField id="LastName" value="{!searchCon.Search_LastName__c}" style="width: 90%"/></td>
|
<!-- 2022/02/15 张华建 不需要FirstName start -->
|
<!-- <td>{!$ObjectType.Contact.fields.FirstName.Label}</td>
|
<td><apex:inputField id="FirstName" value="{!searchCon.Search_FirstName__c}" style="width: 90%"/></td> -->
|
<!-- 2022/02/15 张华建 不需要FirstName end -->
|
<td><input type="button" value="检索" onclick="searchContactJs(); return null;" /></td>
|
</tr>
|
</table>
|
</apex:pageBlock>
|
|
<apex:pageBlock id="listBlock" title="检索结果">
|
<div style="height: 200px; overflow-y: auto; overflow-x: hidden;">
|
<table class="edittable" border="0" style="border-collapse: collapse;width:580px;table-layout:fixed;">
|
<colgroup>
|
<col width="50px" />
|
<col width="200px" />
|
<col width="380px" />
|
<col width="50px" />
|
</colgroup>
|
<tr>
|
<th>No.</th>
|
<th>{!$ObjectType.Contact.fields.Name.Label}</th>
|
<th>{!$ObjectType.Contact.fields.AccountName__c.Label}</th>
|
<th>操作</th>
|
</tr>
|
<apex:repeat id="lineinfo" value="{!lineInfoList}" var="lineinfo">
|
<tr>
|
<td>{!lineinfo.lineNo}
|
<apex:inputHidden id="conId" value="{!lineinfo.con.id}"/>
|
<apex:inputHidden id="conName" value="{!lineinfo.con.name}"/>
|
<!-- 2018/11/19 HWAG-B399RW 存取客户人员省市数据 start -->
|
<apex:inputHidden id="City" value="{!lineinfo.con.City__c}"/>
|
<apex:inputHidden id="State" value="{!lineinfo.con.State__c}"/>
|
<!-- 2018/11/19 HWAG-B399RW 存取客户人员省市数据 end -->
|
|
</td>
|
<!-- <td><a href="#" onclick="setContact('{!lineinfo.lineNo}');" id="943114607025717249" onmouseover="showPIDiv('943114607025717249')" onmouseout="hidePIDiv('943114607025717249')">{!lineinfo.con.Name}</a></td> -->
|
<!-- 2022/02/15 张华建 解密信息 start -->
|
<td>
|
<a target="_blank" onclick="setContact('{!lineinfo.lineNo}','{!lineinfo.con.AWS_Data_Id__c}');" aws-id="{!lineinfo.con.AWS_Data_Id__c}" style="position:relative">
|
<span class="encrypt">{!lineinfo.con.Name}</span>
|
<span class="decrypt"></span>
|
</a>
|
|
</td>
|
<!-- 2022/02/15 张华建 解密信息 end -->
|
<td>{!lineinfo.con.AccountName__c}</td>
|
<td><input style="width:90%;" type="button" value="编辑" onclick="editContactJs('{!lineinfo.con.Id}'); return null;" /></td>
|
</tr>
|
</apex:repeat>
|
</table>
|
</div>
|
</apex:pageBlock>
|
|
<apex:pageBlock id="editBlock" title="联系人编辑">
|
<apex:pageBlockButtons location="top">
|
<apex:commandButton onclick="editClearJs();" value="清空" rerender="dummy"/>
|
<apex:commandButton onclick="editSaveJs();" value="保存" rerender="dummy"/>
|
</apex:pageBlockButtons>
|
<!-- Error Msg-->
|
<div style="text-align: center;">
|
<apex:outputPanel id="errorMsg">
|
<apex:pageMessages id="msgContent" escape="false" />
|
</apex:outputPanel>
|
</div>
|
<!-- zhj 新方案改造 2022-12-05 start-->
|
<!-- <apex:inputHidden id="LastName_Encrypted__c" value="{!newCon.LastName_Encrypted__c}"/>
|
<apex:inputHidden id="Phone_Encrypted__c" value="{!newCon.Phone_Encrypted__c}"/> -->
|
<!-- zhj 新方案改造 2022-12-05 end-->
|
<apex:inputHidden id="AWS_Data_Id__c" value="{!newCon.AWS_Data_Id__c}"/>
|
<table class="edittable" border="0" style="border-collapse: collapse; width:600px; table-layout:fixed;">
|
<colgroup>
|
<col width="50px" />
|
<col width="150px" />
|
<col width="50px" />
|
<col width="150px" />
|
<col width="50px" />
|
<col width="150px" />
|
</colgroup>
|
<tr>
|
<td>{!$ObjectType.Contact.fields.LastName.Label}</td>
|
<td><span><div class="requiredInput"><div class="requiredBlock"></div>
|
<apex:inputField id="Search_LastName__c" value="{!newCon.Search_LastName__c}" style="width: 90%"/>
|
<div id="errorMsg" class="errorMsg"></div>
|
</div></span></td>
|
<!-- <td>{!$ObjectType.Contact.fields.FirstName.Label}</td>
|
<td><apex:inputField value="{!newCon.Search_FirstName__c}" style="width: 90%"/></td> -->
|
</tr>
|
<tr>
|
<td>{!$ObjectType.Contact.fields.Supplement__c.Label}</td>
|
<td colspan="5"><apex:inputField value="{!newCon.Supplement__c}" style="width: 95%; resize: none; height: 50px"/></td>
|
</tr>
|
</table>
|
</apex:pageBlock>
|
|
</apex:outputPanel>
|
</apex:form>
|
</apex:page>
|