From 5835379ec30b1667c4e522db9d294c9b7bb8633a Mon Sep 17 00:00:00 2001
From: buli <137736985@qq.com>
Date: 星期二, 26 四月 2022 12:00:31 +0800
Subject: [PATCH] SSBG Back up

---
 force-app/main/default/pages/SearchMemberPage.page |  152 +++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 142 insertions(+), 10 deletions(-)

diff --git a/force-app/main/default/pages/SearchMemberPage.page b/force-app/main/default/pages/SearchMemberPage.page
index 4767d57..447e4d6 100644
--- a/force-app/main/default/pages/SearchMemberPage.page
+++ b/force-app/main/default/pages/SearchMemberPage.page
@@ -4,15 +4,132 @@
     <apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/>
     <apex:includeScript value="{!URLFOR($Resource.connection20)}"/>
     <apex:includeScript value="{!URLFOR($Resource.apex20)}"/>
+	<apex:includeScript value="{! URLFOR($Resource.AWSService, 'AWSService.js') }" />
 	<style type="text/css">
-		
+		td{line-height: 32px;}
+		[aws-api] {
+            position: relative;
+        }
+        [aws-api] .decrypt{
+			position: absolute;
+			top: 50%;left: 0;
+			display: none;
+			text-align: left;
+            /* padding-left: 5px; */
+		}
+        /* [aws-api]:hover .decrypt{display: block;width: 100px} */
 	</style>
 	<script>
+		AWSService.sfSessionId = '{!GETSESSIONID()}';
+    	var staticResource = JSON.parse('{!staticResource}');
+
+		var aws_data = {};
+
+		//zhj 2022-04-22 PIPL start
+		//js	hover 
+		function jsHover(){
+			var encrypts = document.getElementsByClassName('encrypt');
+			for(var i = 0;i<encrypts.length;i++){
+				encrypts[i].onmouseover = (function close(j) {
+					return function () {
+						//鏄剧ずName
+						encrypts[j].children[1].children[0].innerText = encrypts[j].children[1].children[1].innerText
+						//鏄剧ずEmail
+						encrypts[j].children[2].children[0].innerText = encrypts[j].children[2].children[1].innerText
+					}
+				})(i);
+			}
+		}
+		//zhj 2022-04-22 PIPL end
+
+		function Decrypt(r,dataIds,callback){
+			if (!(dataIds && dataIds.length)) {
+				if(callback)callback();
+				return;
+			}
+
+			let Foo = function(){
+				for (const id of dataIds) {
+					if (aws_data.hasOwnProperty(id)) {
+						let d = aws_data[id];
+						let $e =j$("[aws-id='"+d.dataId+ "']");
+						$e.each((i,e)=>{
+							j$(e).find(".decrypt").html(d[j$(e).attr("aws-api")]);
+						})
+						
+					}
+				}
+				if(callback)callback();
+				jsHover();
+			}
+			let ids = [];
+			for (const id of dataIds) {
+				if (!aws_data.hasOwnProperty(id)) {
+					ids.push(id);
+				}
+			}
+			if (ids.length > 0) {
+				
+				AWSService.search(r.searchUrl,JSON.stringify({
+					"dataIds":ids
+				}),function(data){
+					
+					if(data.object && data.object.length > 0){
+						
+						for(let d of data.object){
+							if(d.dataId){
+								aws_data[d.dataId] = d;
+							}
+						}
+						Foo();
+					}else{
+						if(callback)callback();
+					}
+				},r.token);
+			}else{
+				Foo();
+			}
+		}
+
+		function DecryptAll(callback){
+			let dataIds = [];
+			j$('[aws-id][aws-obj="Contact"]').each((i,e)=>{
+				let v = j$(e).attr('aws-id');
+				if (v) {
+					dataIds.push(v);
+				}
+			});
+			Decrypt(staticResource,dataIds,callback);
+		}
+
+		j$(function(){
+			//DecryptAll();
+			
+		})
+
 		function doSearchJS(){
 			blockme();
 			var searchByName = j$(escapeVfId("searchByName")).value();
 			var searchByAccount = j$(escapeVfId("searchByAccount")).value();
-			DoSearch(searchByName,searchByAccount);
+			var searchByAWSDataIds = j$(escapeVfId("searchByAWSDataIds")).value();
+			var memberType = j$(escapeVfId('Page:allData:memberType')).value();
+			if (memberType == "Contact" && searchByName) {
+				AWSService.search(staticResource.searchUrl,JSON.stringify({
+					contactName:searchByName
+				}),function(data){
+					if (data && data.object && data.object.length) {
+						let ids = data.object.map(m=>m.dataId);
+						DoSearch(searchByName,searchByAccount,ids.join(','));
+					}else{
+						unblockUI();
+					}
+					
+				},staticResource.token);
+			}else{
+				DoSearch(searchByName,searchByAccount,[]);
+			}
+
+			
 		}
 		function saveJS(){
 			blockme();
@@ -26,8 +143,8 @@
 			}
 			var lineNum = j$(escapeVfId("lineNum")).value();
 			var memberId = j$(escapeVfId("memberId")).value();
-			var memberName = j$(escapeVfId("memberName")).value();
-			var memberEmail = j$(escapeVfId("memberEmail")).value();
+			var memberName = aws_data[j$(escapeVfId("aws_data_id")).value()].lastName;
+			var memberEmail = aws_data[j$(escapeVfId("aws_data_id")).value()].email;
 			window.opener.refreshPage(lineNum,memberId,memberName,memberEmail); 
             window.close();
 		}
@@ -47,23 +164,28 @@
 				j$(escapeVfId("dataAccount")).attr("style","display:block");
 			}
 		}
+
+
+
 	</script>
 	 <div style="width: 100%;height: 100%;">
 	 	<apex:outputPanel id="message1">
             <apex:messages styleClass="editListError"/>
         </apex:outputPanel>
 	 	<apex:form id="allData">
-	 		<apex:actionFunction action="{!SearchMember}" name="DoSearch" reRender="result" oncomplete="unblockUI();">
+	 		<apex:actionFunction action="{!SearchMember}" name="DoSearch" reRender="result" oncomplete="DecryptAll(unblockUI);">
 	 			<apex:param assignTo="{!searchByName}" name="searchByName" value=""></apex:param>
 	 			<apex:param assignTo="{!searchByAccount}" name="searchByAccount" value=""></apex:param>
+	 			<apex:param assignTo="{!searchByAWSDataIds}" name="searchByAWSDataIds" value=""></apex:param>
 	 		</apex:actionFunction>
-	 		<apex:actionFunction action="{!save}" name="save" reRender="allData,message1" oncomplete="unblockUI();refreshPage();closeJS();">
+	 		<apex:actionFunction action="{!save}" name="save" reRender="allData,message1" oncomplete="DecryptAll(()=>{unblockUI();refreshPage();closeJS();});">
 	 		</apex:actionFunction>
 	 		<input type="hidden" id="isError" value="{!isError}" />
 	 		<input type="hidden" id="lineNum" value="{!lineNum}" />
 	 		<input type="hidden" id="memberId" value="{!memberId}" />
 	 		<input type="hidden" id="memberName" value="{!memberName}" />
 	 		<input type="hidden" id="memberEmail" value="{!memberEmail}" />
+	 		<input type="hidden" id="aws_data_id" value="{!aws_data_id}" />
 	 			
 	 			<table style="width: 100%;">
 	 				<colgroup>
@@ -83,7 +205,7 @@
 					<tr>
 	 					<th style="text-align:center;"><apex:commandButton value="Search" onclick="doSearchJS();return false;" />&nbsp;&nbsp;<apex:commandButton value="Save" onclick="saveJS();return false;"/></th>
 
-	 					<th id="nameLable" style="text-align:center;">Name锛�<input id="searchByName"  type="text" value="{!searchByName}" /></th>
+	 					<th id="nameLable" style="text-align:center;"><input id="searchByAWSDataIds"  type="hidden" value="{!searchByAWSDataIds}" /> Name锛�<input id="searchByName"  type="text" value="{!searchByName}" /></th>
 
 						<th style="text-align:center;"><div id="accountLable">Account锛�<input id="searchByAccount"  type="text" value="{!searchByAccount}" /></div></th>
 	 					
@@ -117,12 +239,22 @@
 		 		 			</apex:outputPanel> -->
 		 				</tr>
 		 				<apex:repeat value="{!lineList}" var="line">
-			 				<tr>
+			 				<tr class="encrypt">
 			 					<td style="text-align:right;">
 			 						<apex:inputCheckbox id="checkbox" value="{!line.check}" />
 			 					</td>
-			 					<td><apex:outputText value="{!line.name}"></apex:outputText></td>
-			 					<td><apex:outputText value="{!line.email}"></apex:outputText></td>
+			 					<td aws-obj="Contact" aws-api="lastName" aws-id="{!line.aws_data_id}">
+									<!-- 20220222 PI鏀归�� by Bright  start -->
+									<span>{!line.name}</span>
+									<span class="decrypt"></span>
+									<!-- 20220222 PI鏀归�� by Bright  end -->
+								</td>
+			 					<td aws-obj="Contact" aws-api="email" aws-id="{!line.aws_data_id}">
+									<!-- 20220222 PI鏀归�� by Bright  start -->
+									<span>{!line.email}</span>
+									<span class="decrypt"></span>
+									<!-- 20220222 PI鏀归�� by Bright  end -->
+								</td>
 			 					<td><apex:outputText value="{!line.account}"></apex:outputText></td>
 			 				</tr>
 		 				</apex:repeat>

--
Gitblit v1.9.1