寫在前面
下午沒事, 看一下同事寫的脫敏白名單管理功能. 所謂的脫敏就是將頁面中查詢出的信息列表當中的身份證號及手機號等關鍵信息部分用*號代替.該功能主要思路是新增一個頁面用於配置哪些頁面以及頁面中哪些字段需要加入脫敏管理. 不上圖的窮b叨叨就是耍流氓.

以手機號為例, 大致思路就是在需要脫敏顯示關鍵信息的頁面初始化時判斷該頁面的手機號是否啟用了脫敏, 如果啟用了則將手機號的值中間5位用*號代替. 未啟用則正常顯示.

關鍵步驟(基於jeecg開發平台3.7版本,formatterjs是自定義js方法)
1.jsp
引入判斷是否啟用脫敏的js, 頁面初始化的執行方法

js部分
var phoneNoFlag;
$(function () { //檢查手機號是否脫敏 phoneNoFlag = isTuoMin('managerPhone','cEquipmentInfoController',false); }); //手機號碼脫敏顯示 function changePhNoStyle(value, row, index) { var phNoLen = value.length; if (phNoLen != 11) { return value;//格式不准確,不脫敏 } else { if (phoneNoFlag) { return value.substr(0, 3) + "*****" + value.substr(8, 3); } return value; } }
2.引入的js文件
用於判斷字段是否啟用了脫敏
/**
* 查詢某菜單某字段是否要求脫敏
* @author wangzhuang
* @date 2019/10/08
* @param fieldNo 字段名
* @param url 菜單url 格式如:whiteListController
* @returns
*/
function isTuoMin(fieldNo,url,flag){
$.ajax({
type: "post", url: "whiteListController.do?checkIsTuoMin", data: { fieldNo: fieldNo, url:url }, async : false,//異步請求 dataType: "json", success: function (data) { if (data.success) { flag = true; } } }); return flag; }
3.后台判斷
/**
* 檢查是否要求脫敏
*
* @param request
* @return
*/
@RequestMapping(params = "checkIsTuoMin") @ResponseBody public AjaxJson checkIsTuoMin(HttpServletRequest request) { AjaxJson j = new AjaxJson(); String url = request.getParameter("url"); String fieldNo = request.getParameter("fieldNo"); if (whiteListService.queryFlag(url, fieldNo)) { j.setSuccess(true); } else { j.setSuccess(false); } return j; }
功能本身思路簡單感覺沒什么亮點, 唯一想深入看的就數zTree了, 自從畢業只是ctrl+c ctrl+v, 今天詳細看一下zTree.https://www.cnblogs.com/yadongliang/p/11642931.html
