From 6816393fbfa11ce67088832b45399a52a961586a Mon Sep 17 00:00:00 2001
From: Mr Ke <kelq@hugeinfo.com.cn>
Date: Wed, 27 May 2020 16:45:41 +0800
Subject: [PATCH] Merge branch 'master' of http://120.79.193.119:9090/r/nsjcy/frontEnd/nsjcy
---
SunshineIns/src/copy/fingerprint/js/main.js | 1064 +++++++++++++++++++++++++++-------------------------------
1 files changed, 497 insertions(+), 567 deletions(-)
diff --git a/SunshineIns/src/copy/fingerprint/js/main.js b/SunshineIns/src/copy/fingerprint/js/main.js
index 4b8894a..e9f0c1b 100644
--- a/SunshineIns/src/copy/fingerprint/js/main.js
+++ b/SunshineIns/src/copy/fingerprint/js/main.js
@@ -27,7 +27,7 @@
//绘画的图形填充样式--填充绘图
var fillStyle = "fill";
//点击手指 的颜色
-var fillFingerColor="rgb(71,75,79)";
+var fillFingerColor = "rgb(71,75,79)";
//判断是否修改了数据(包括新增和删除)
var fpModifyFlag = false;
@@ -38,33 +38,30 @@
* @param x, y 椭圆定位的坐标
* @param width, height 椭圆的宽度和高度
*/
-CanvasRenderingContext2D.prototype.oval = function(x, y, width, height)
-{
- var k = (width/0.75)/2,w = width/2,h = height/2;
- this.strokeStyle = bgColor;
+CanvasRenderingContext2D.prototype.oval = function (x, y, width, height) {
+ var k = (width / 0.75) / 2, w = width / 2, h = height / 2;
+ this.strokeStyle = bgColor;
this.beginPath();
-
- this.moveTo(x, y-h);
- this.bezierCurveTo(x+k, y-h, x+k, y+h, x, y+h);
- this.bezierCurveTo(x-k, y+h, x-k, y-h, x, y-h);
+
+ this.moveTo(x, y - h);
+ this.bezierCurveTo(x + k, y - h, x + k, y + h, x, y + h);
+ this.bezierCurveTo(x - k, y + h, x - k, y - h, x, y - h);
this.closePath();
this.stroke();
return this;
}
- /**
- * 查动态库连接回调函数
- * @author wenxin
- * @create 2013-05-15 17:12:21 pm
- * @param ${pers_person_templateCount}:指纹数
- */
-function getDLLConnectCallBack(result,isComp)
-{
- if(globalContext == null)
- {
- if(isComp==true){
+/**
+* 查动态库连接回调函数
+* @author wenxin
+* @create 2013-05-15 17:12:21 pm
+* @param ${pers_person_templateCount}:指纹数
+*/
+function getDLLConnectCallBack(result, isComp) {
+ if (globalContext == null) {
+ if (isComp == true) {
globalContext = document.getElementById("canvasComp").getContext("2d");
- }else{
+ } else {
globalContext = document.getElementById("canvas").getContext("2d");
}
}
@@ -72,13 +69,11 @@
var ret = null;
ret = result.ret;
//接口调用成功返回时
- if(ret == 0)
- {
+ if (ret == 0) {
//${base_fp_connectFail}:连接指纹采集器失败
collectTips(globalContext, "未检测到指纹采集器.", "verification");
}
- else
- {
+ else {
//${base_fp_loadFail}:加载ZKFinger10失败
collectTips(globalContext, "加载动态库失败.", "verification");
}
@@ -89,48 +84,41 @@
* @create 2013-06-24 10:11:21 am
* @param context 2d画布上下文
*/
-function beginCapture(context)
-{
- $.ajax( {
- type : "GET",
- url : issOnlineUrl+"/fingerprint/beginCapture?type=2&FakeFunOn=0&random="+getRandomNum(),
- dataType : "json",
+function beginCapture(context) {
+ $.ajax({
+ type: "GET",
+ url: issOnlineUrl + "/fingerprint/beginCapture?type=2&FakeFunOn=0&random=" + getRandomNum(),
+ dataType: "json",
async: true,
- success : function(result)
- {
+ success: function (result) {
//返回码
var ret = null;
ret = result.ret;
//接口调用成功返回时
- if(ret == 0)
- {
+ if (ret == 0) {
verifyFlag = true;
//检查采集、显示图像
checkColl();
}
- else if(ret == -2001)
- {
+ else if (ret == -2001) {
//${base_fp_connectFail}:连接指纹采集器失败
//显示框--采集提示
collectTips(context, "未检测到指纹采集器.", "verification");
}
- else if(ret == -2002)
- {
+ else if (ret == -2002) {
getWebServerInfo(null, null, "1");
}
- else if(ret == -2005)
- {
+ else if (ret == -2005) {
//取消采集
cancelCapture();
//开始采集
beginCapture(globalContext);
}
},
- error : function(XMLHttpRequest, textStatus, errorThrown)
- {
+ error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("请安装指纹驱动或启动该服务!");
//messageBox({messageType: "alert", title: "${common_prompt_title}", text: "${base_fp_connectPrompt}"});
- }
+ }
});
}
/**
@@ -138,34 +126,30 @@
* @author wenxin
* @create 2013-06-24 10:11:21 am
*/
-function checkColl()
-{
+function checkColl() {
var base64FPImg = "";
//返回码
var ret = null;
- $.ajax( {
- type : "GET",
- url : issOnlineUrl+"/fingerprint/getImage?random="+getRandomNum(),
- dataType : "json",
+ $.ajax({
+ type: "GET",
+ url: issOnlineUrl + "/fingerprint/getImage?random=" + getRandomNum(),
+ dataType: "json",
async: true,
- success : function(result)
- {debugger;
+ success: function (result) {
+ debugger;
//alert(objToStr(data));
//指纹采集次数
var collCount = 0;
ret = result.ret;
- if(ret == 0)
- {
+ if (ret == 0) {
collCount = result.data.enroll_index;
base64FPImg = result.data.jpg_base64;
}
- if(collCount == 0)
- {
+ if (collCount == 0) {
//定时器
timer = setTimeout("checkColl()", 200);//比对失败重新开始
}
- else
- {
+ else {
//将定时器关闭
clearTimeout(verifyTimer);
//显示指纹图像
@@ -180,13 +164,16 @@
$("#oneToMany").attr("disabled", false);
$("#oneToOne").attr("disabled", false);
setTimeout("beginCapture(null)", 200);
+
+ console.log('1', getFPTemplate(paramArray, "verification"))
+ console.log('2', $("#oneToMany").attr("disabled", false))
+ console.log('3', $("#oneToOne").attr("disabled", false))
}
},
- error : function(XMLHttpRequest, textStatus, errorThrown)
- {
+ error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("请安装指纹驱动或启动该服务!");
//messageBox({messageType: "alert", title: "${common_prompt_title}", text: "${base_fp_connectPrompt}"});
- }
+ }
});
}
/**
@@ -195,12 +182,9 @@
* @create 2013-06-24 17:41:21 pm
* @param fpTemplate 指纹模板
*/
-function fpComparison(fpTemplate)
-{
- if(model == "1")
- {
- if($("#persNumText").val() != "${pers_person_pin}")
- {
+function fpComparison(fpTemplate) {
+ if (model == "1") {
+ if ($("#persNumText").val() != "${pers_person_pin}") {
$("#pin").val($("#persNumText").val());
}
}
@@ -208,32 +192,29 @@
$("#verifyTemplate").val(fpTemplate);
//表单提交
//formSubmit("fpVerifyForm");
-
+
}
/**
* 取消采集
* @author wenxin
* @create 2013-06-24 19:57:11 pm
*/
-function cancelCapture()
-{
+function cancelCapture() {
//将定时器的递归调用关闭
clearTimeout(timer);
//取消采集
- $.ajax( {
- type : "GET",
- url : issOnlineUrl+"/fingerprint/cancelCapture?random="+getRandomNum(),
- dataType : "json",
+ $.ajax({
+ type: "GET",
+ url: issOnlineUrl + "/fingerprint/cancelCapture?random=" + getRandomNum(),
+ dataType: "json",
async: true,
- success : function(result)
- {
+ success: function (result) {
verifyFlag = false;
},
- error : function(XMLHttpRequest, textStatus, errorThrown)
- {
+ error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("请安装指纹驱动或启动该服务!");
//messageBox({messageType: "alert", title: "${common_prompt_title}", text: "${base_fp_connectPrompt}"});
- }
+ }
});
}
/**
@@ -241,22 +222,19 @@
* @author wenxin
* @create 2013-06-26 16:57:11 pm
*/
-function beginVerify()
-{
- if($("#persNumText").val() == "${pers_person_pin}" && model == "1")
- {
+function beginVerify() {
+ if ($("#persNumText").val() == "${pers_person_pin}" && model == "1") {
//${base_fp_enterPin}:请输入人员编号
//显示框--采集提示
collectTips(globalContext, "请输入人员编号", "verification");
return;
}
- else
- {
+ else {
//${base_fp_verifyInfo}:请水平按压手指验证
//显示框--采集提示
collectTips(globalContext, "请水平按压手指验证", "verification");
}
-
+
//取消采集--如果当前正在采集
cancelEvent();
$("#oneToMany").attr("disabled", true);
@@ -270,15 +248,14 @@
* @author wenxin
* @create 2013-09-05 16:57:11 pm
*/
-function clearImageData()
-{
-
- if(isComp){
+function clearImageData() {
+
+ if (isComp) {
//清空指纹图像
clearFPImage(globalContext, "verification");
//显示框--采集提示
collectTips(globalContext, "请水平按压手指验证", "verification");
- }else{
+ } else {
//清空指纹图像
clearFPImage(globalContext, "register");
}
@@ -288,39 +265,34 @@
* @author wenxin
* @create 2013-06-26 16:57:11 pm
*/
-function callBackFormSubmit(msg)
-{
- if(msg.ret == "ok")//成功
+function callBackFormSubmit(msg) {
+ if (msg.ret == "ok")//成功
{
collectTips(globalContext, "验证通过", "verification");
setTimeout("closeVerify()", 1000);
setTimeout(_callBackFunction("dashboard.action"), 1000);
}
- else if(msg.msg == "disabled")
- {
+ else if (msg.msg == "disabled") {
collectTips(globalContext, "${auth_login_disabled}", "verification");
setTimeout("closeVerify()", 1000);
$(".errorTip").html("${auth_login_disabled}");
$(".errorTip").show();
- }else if(msg.msg == "notExist")
- {
+ } else if (msg.msg == "notExist") {
collectTips(globalContext, "验证失败", "verification");
setTimeout("clearImageData()", 1000);
beginCapture(globalContext);
}
-
-
+
+
}
/**
* 关闭比对页面
* @author wenxin
* @create 2013-06-21 14:57:11 pm
*/
-function closeVerify()
-{
+function closeVerify() {
//正在进行验证,还没有关闭指纹采集
- if(verifyFlag)
- {
+ if (verifyFlag) {
//取消采集
cancelCapture();
}
@@ -331,18 +303,17 @@
* @author wenxin
* @create 2013-07-09 15:18:31 pm
*/
-function dataInitComp()
-{
+function dataInitComp() {
var canvas = document.getElementById("canvasComp");
var context = canvas.getContext("2d");
globalContext = context;
//文本框内提示信息并清空
//checkText();
-
+
//${base_fp_verifyInfo}:请水平按压手指验证
//显示框--采集提示
collectTips(context, "请水平按压手指验证", "verification");
-
+
//开始采集
beginCapture(context);
//定时器
@@ -356,447 +327,411 @@
* @create 2013-05-15 17:12:21 pm
* @param ${pers_person_templateCount}:指纹数
*/
-function submitEvent()
-{
+function submitEvent() {
storeDataToHtml();
- console.log('storeDataToHtml()', storeDataToHtml());
+ window.top.postMessage('message from iframe1');
showFPCount('指纹数:');
//closeWindow();
close();
+
+ $.ajax({
+ type: "GET",
+ url: issOnlineUrl + "/fingerprint/getTemplate?random=" + getRandomNum(),
+ dataType: "json",
+ async: false,
+ success: function (result) {
+ //返回码
+ var ret = null;
+ ret = result.ret;
+ console.log('template',result.data.template)
+ }
+ })
}
- /**
- * 采集指纹
- * @author wenxin
- * @create 2013-05-13 10:18:31 am
- * @param context 2d画布上下文
- */
- function fpCollection(context)
- {
- $.ajax( {
- type : "GET",
- url : issOnlineUrl+"/fingerprint/beginCapture?type=1&FakeFunOn=0&random="+getRandomNum(),
- dataType : "json",
- async: true,
- success : function(result)
- {
- //返回码
- var ret = null;
- ret = result.ret;
- //接口调用成功返回时
- if(ret == 0)
- {
- //检查采集次数、显示图像
- checkCollCount();
- }
- else if(ret == -2001)
- {
- //${base_fp_connectFail}:连接指纹采集器失败
- //显示框--采集提示
- collectTips(globalContext, "未检测到指纹采集器.", "html5");
- }
- else if(ret == -2002)
- {
- getWebServerInfo(null, null, "1");
- }
- else if(ret == -2005)
- {
- //取消采集
- cancelRegister();
- //切换手指后,渲染手指(消除原来手指的颜色)
- renderAfterColl(globalContext, fpIdNum, bgColor, false);
- //${base_fp_pressFinger}:请选择手指
- //显示框--采集提示
- collectTips(globalContext, "请选择手指.", "html5");
- }
- },
- error : function(XMLHttpRequest, textStatus, errorThrown)
- {
- alert("请安装指纹驱动或启动该服务!");
- //messageBox({messageType: "alert", title: "提示", text: "请安装指纹驱动或启动该服务!"});
- }
- });
- }
- /**
- * 检查采集次数
- * @author wenxin
- * @create 2013-05-22 09:24:31 am
- * @param collCount 采集次数
- */
- function checkCollCount()
- {
- var base64FPImg = "";
- //返回码
- var ret = null;
- $.ajax( {
- type : "GET",
- url : issOnlineUrl+"/fingerprint/getImage?random="+getRandomNum(),
- dataType : "json",
- async: false,
- success : function(result)
- {
- //alert(objToStr(data));
- //指纹采集次数
- var collCount = 0;
- ret = result.ret;
- if(ret == 0)
- {
- collCount = result.data.enroll_index;
- base64FPImg = result.data.jpg_base64;
- }
- if(collCount != 3)
- {
- //第一次和第二次采集,显示采集次数、指纹图像、进度条
- if(collCount == 1 || collCount == 2)
- {
- //${base_fp_collCount}:按压指纹剩余次数:
- var text = "按压剩余次数:"+(FINGERPRINT_NUMBER - collCount);
- //显示框--采集提示
- collectTips(globalContext, text, "html5");
- //进度条
- drawProgressBar(globalContext, collCount);
- //显示指纹图像
- showImage(globalContext, base64FPImg, "html5");
- //清空图像
- setTimeout("clearImageData()", 200);
- }
- //定时器
- timer = setTimeout("checkCollCount()", 200);
- }
- else
- {
- //显示指纹图像
- showImage(globalContext, base64FPImg, "html5");
- //清空图像
- setTimeout("clearImageData()", 200);
- //存放国际化元素数组
- var paramArray = new Array();
- paramArray[0] = "成功登记指纹.";//base_fp_registerSuccess:成功登记指纹
- paramArray[1] = "采集失败,请重新登记.";//base_fp_pressFingerAgain:请重按手指
- paramArray[2] = "请不要重复录入指纹!";//base_fp_repeatCollection:请不要重复录入指纹!
- paramArray[3] = "请安装指纹驱动或启动该服务!";//base_fp_connectPrompt:请检查网络连接
- //进度条
- drawProgressBar(globalContext, collCount);
- //获取指纹模板
- if(!getFPTemplate(paramArray, "register"))
- {
- drawProgressBar(globalContext, 0);//进度条灰显
- }
-
- //如果胁迫指纹选中,则取消选中
- if(duressFingerFlag)
- {
- $("#duressFinger").attr("checked", false);
- }
- $("#duressFinger").attr("disabled", false);
- $("#submitButtonId").attr("disabled", false);
- collectFlag = false;
- fpIdNum = -1;
- return collCount;
- }
- },
- error : function(XMLHttpRequest, textStatus, errorThrown)
- {
- alert("请安装指纹驱动或启动该服务!");
- //messageBox({messageType: "alert", title: "提示", text: "请安装指纹驱动或启动该服务!"});
- }
- });
-
- }
-
- /**
- * 取消采集,当采集中断时
- * @author wenxin
- * @create 2013-05-27 17:46:31 pm
- */
- function cancelRegister()
- {
- //当前有手指在采集指纹
- if(collectFlag)
- {
- //将定时器的递归调用关闭
- clearTimeout(timer);
- //取消采集
- $.ajax( {
- type : "GET",
- url : issOnlineUrl+"/fingerprint/cancelCapture?random="+getRandomNum(),
- dataType : "json",
- async: false,
- success : function(result)
- {
- //如果胁迫指纹选中,则取消选中
- if(duressFingerFlag)
- {
- $("#duressFinger").attr("checked", false);
- }
- if(fpModifyFlag)
- {
- $("#submitButtonId").attr("disabled", false);
- }
- $("#duressFinger").attr("disabled", false);
- if(fpIdNum != null)
- {
- //消除原来手指的颜色
-
- renderAfterColl(globalContext, lastFPIdNum, bgColor, false);
- }
- collectFlag = false;
- },
- error : function(XMLHttpRequest, textStatus, errorThrown)
- {
- alert("请安装指纹驱动或启动该服务!");
- //messageBox({messageType: "alert", title: "提示", text: "请安装指纹驱动或启动该服务!"});
- }
- });
- }
- }
-
- /**
- * 绘画
- * @author wenxin
- * @create 2013-05-13 10:18:31 am
- * @param context 2d画布上下文
- * @param x, y 绘画左手掌的第一个点的坐标,后面的绘画手指和右手掌的坐标都是相对于此点坐标来计算
- * @param color 绘画手指和手掌的边框颜色
- */
- function draw(context, x, y, color)
- {
- var coordArray = new Array();
- //初始化起始坐标,并返回json格式数据
- var coordJson = initCoordJson();
- for(var i=0; i<coordJson.length; i++)
- {
- //绘画双手和圆弧
- drawHandAndArc(context, coordArray, color, coordJson[i].coord.x, coordJson[i].coord.y, coordJson[i].num);
-// drawHandAndArc(context, coordArray, color, coordJson[i].coord.x, coordJson[i].coord.y, i);
- coordArray = null;
- coordArray = new Array();
- }
- //存放国际化元素数组
- var paramArray = new Array();
- paramArray[0] = "请选择手指.";
- paramArray[1] = "未检测到指纹采集器.";
- paramArray[2] = "加载动态库失败.";
- paramArray[3] = "请选择手指.";
-
-
- //检查指纹采集器
- checkFPReader(context, paramArray, "html5");
-
- //进度条
- drawProgressBar(context, 0);
- //将确定按钮置灰
- $("#submitButtonId").attr("disabled", true);
- }
- /**
- * 绘画双手和圆弧
- * @author wenxin
- * @create 2013-06-17 10:18:31 am
- * @param context 2d画布上下文
- * @param coordArray 坐标数组
- * @param x, y 绘画左手掌的第一个点的坐标,后面的绘画手指和右手掌的坐标都是相对于此点坐标来计算
- * @param color 绘画手指和手掌的边框颜色
- * @param num 当前会话对象编号
- */
- function drawHandAndArc(context, coordArray, color, x, y, num)
- {
- //初始化坐标
- coordArray = initCoordArray(coordArray, x, y, num);
- var drawObj = null;
- //绘画手指
- if(num < 10)
- {
- drawObj = "finger"+num;
- drawObj = new renderFinger(context, coordArray);
- drawObj.drawFinger(strokeStyle, color);
- //初始化时,渲染手指
- renderInit(context, num, "html5");
- //将绘画的手指实例放入数组,方便重画时用
- if(fingerList.length < 10)
- {
- fingerList.push(drawObj);
- }
- }
- //绘画双手掌心
- else if(num < 12)
- {
- new renderHand(context, coordArray).drawHand(color);
- }
- //绘画圆圈
- showImage(context, "image/base_fpVerify_clearImage.png", "clearForRegister");
- //绘画圆弧
- //else if(num == 12)
- //{
- // new FillArc(context, coordArray).drawArc(arcBgColor);
- //}
- }
- /**
- * 重画
- * @author wenxin
- * @create 2013-05-13 10:18:31 am
- * @param x, y 鼠标点击处的坐标
- */
- function redraw(x, y)
- {
- var canvas = document.getElementById("canvas");
- if (canvas.getContext)
- {
- var context = canvas.getContext("2d");
-
- //是否点击在手指区域
- var isInFingerArea = false;
- //判断当前点击是否在手指区域
- for ( var i = 0; i < fingerList.length; i++)
- {
- var finger = fingerList[i];
- finger.drawFinger(strokeStyle, fingerBorderColor);
- if (context.isPointInPath(x, y))
- {
- isInFingerArea = true;
- break;
- }
- }
-
- outerloop:
- for ( var i = 0; i < fingerList.length; i++)
- {
- if(collectFlag)
- {
- //当点击的是同一个手指时,如何判断?(编辑指纹时,有问题)
- if(fpIdNum == i)
- {
- //切换手指后,渲染手指(消除原来手指的颜色)
- renderAfterColl(globalContext, fpIdNum, bgColor, false);
- }
- }
- var finger = fingerList[i];
- finger.drawFinger(strokeStyle, fingerBorderColor);
- //currentContext = context;
- if (context.isPointInPath(x, y))
- {
- globalContext = context;
- //两次是否点击的同一个手指进行采集。如果是,则第二次点击时取消采集。
- var iaSameFinger = false;
- if(fpIdNum == i && collectFlag)
- {
- iaSameFinger = true;
- }
- var fingerId;
- //判断该手指是否已经有指纹
- var isCollected = false;
- isCollected = isContains(fingerIdArray, i);
- fpIdNum = i;
- if(!isCollected)
- {
- //保存当前正在采集的手指标记
- lastFPIdNum = fpIdNum;
- }
- //如果已经有指纹
- if(isCollected)
- {
- //取消采集
- cancelRegister();
- var flag=confirm("删除当前选中的指纹吗?");
- if(flag){
- delFPData(flag, context, "html5");
- collectTips(globalContext, "请选择手指.", "html5");
- //进度条
- drawProgressBar(globalContext, 0);
- }
-
- break outerloop;
- }
- else
- {
- //两次点击的同一个手指进行采集,则第二次取消采集。
- if(iaSameFinger)
- {
- //取消采集
- cancelRegister();
- //取消采集后重新提示请选择手指
- collectTips(globalContext, "请选择手指.", "html5");
- //取消采集后重新绘制进度条
- drawProgressBar(context, 0);
- fpIdNum = -1;
- }
- else
- {
- //取消采集
- cancelRegister();
- context.fillStyle = fillFingerColor;
- context.fill();
- //globalContext = context;
- collectFlag = true;//需要判断,当重复点击时,颜色改变
- $("#duressFinger").attr("disabled", true);
- $("#submitButtonId").attr("disabled", true);
- //${base_fp_collCount}:按压指纹剩余次数:
- var text = "按压剩余次数:"+FINGERPRINT_NUMBER;
- //进度条
- drawProgressBar(globalContext, 0);
- //显示框--采集提示
- collectTips(globalContext, text, "html5");
- //指纹采集
- fpCollection(context);
- }
- }
- }
- else
- {
- context.fillStyle = bgColor;
- context.fill();
- renderInit(context, i, "html5");
- if(collectFlag)
- {
- if(fpIdNum == i && !isInFingerArea)
- {
- context.fillStyle = fillFingerColor;
- context.fill();
- }
- }
- }
- }
- }
- }
-
- /**
- * 页面加载时,初始化数据
- * @author wenxin
- * @create 2013-07-09 15:18:31 pm
- */
- function dataInitReg()
- {
- if(!duressFingerShowFlag)
- {
- $("#duressFingerDiv").hide();
- }
- var canvas = document.getElementById("canvas");
- var context = canvas.getContext("2d");
-
- fpIdNum = null;
- //获取页面的指纹数据
- getDataFromPage();
- //绘画
- draw(context, x, y, fingerBorderColor);
- //jquery在ie下实现cors跨域请求
- jQuery.support.cors = true;
- //鼠标事件
- canvas.onmousedown = function(event){
- //event.which == 1--鼠标左键
- if(event.which == 1)
- {
- var pageInfo = canvas.getBoundingClientRect();
- var x = event.clientX - pageInfo.left;
- var y = event.clientY - pageInfo.top;
-
- duressFingerFlag = $("#duressFinger").attr("checked");
-
- //重画
- redraw(x, y);
- }
- }
- }
-
-function myfunction(){
+/**
+ * 采集指纹
+ * @author wenxin
+ * @create 2013-05-13 10:18:31 am
+ * @param context 2d画布上下文
+ */
+function fpCollection(context) {
+ $.ajax({
+ type: "GET",
+ url: issOnlineUrl + "/fingerprint/beginCapture?type=1&FakeFunOn=0&random=" + getRandomNum(),
+ dataType: "json",
+ async: true,
+ success: function (result) {
+ //返回码
+ var ret = null;
+ ret = result.ret;
+ //接口调用成功返回时
+ if (ret == 0) {
+ //检查采集次数、显示图像
+ checkCollCount();
+ }
+ else if (ret == -2001) {
+ //${base_fp_connectFail}:连接指纹采集器失败
+ //显示框--采集提示
+ collectTips(globalContext, "未检测到指纹采集器.", "html5");
+ }
+ else if (ret == -2002) {
+ getWebServerInfo(null, null, "1");
+ }
+ else if (ret == -2005) {
+ //取消采集
+ cancelRegister();
+ //切换手指后,渲染手指(消除原来手指的颜色)
+ renderAfterColl(globalContext, fpIdNum, bgColor, false);
+ //${base_fp_pressFinger}:请选择手指
+ //显示框--采集提示
+ collectTips(globalContext, "请选择手指.", "html5");
+ }
+ },
+ error: function (XMLHttpRequest, textStatus, errorThrown) {
+ alert("请安装指纹驱动或启动该服务!");
+ //messageBox({messageType: "alert", title: "提示", text: "请安装指纹驱动或启动该服务!"});
+ }
+ });
+}
+/**
+ * 检查采集次数
+ * @author wenxin
+ * @create 2013-05-22 09:24:31 am
+ * @param collCount 采集次数
+ */
+function checkCollCount() {
+ var base64FPImg = "";
+ //返回码
+ var ret = null;
+ $.ajax({
+ type: "GET",
+ url: issOnlineUrl + "/fingerprint/getImage?random=" + getRandomNum(),
+ dataType: "json",
+ async: false,
+ success: function (result) {
+ //alert(objToStr(data));
+ //指纹采集次数
+ var collCount = 0;
+ ret = result.ret;
+ if (ret == 0) {
+ collCount = result.data.enroll_index;
+ base64FPImg = result.data.jpg_base64;
+ }
+ if (collCount != 3) {
+ //第一次和第二次采集,显示采集次数、指纹图像、进度条
+ if (collCount == 1 || collCount == 2) {
+ //${base_fp_collCount}:按压指纹剩余次数:
+ var text = "按压剩余次数:" + (FINGERPRINT_NUMBER - collCount);
+ //显示框--采集提示
+ collectTips(globalContext, text, "html5");
+ //进度条
+ drawProgressBar(globalContext, collCount);
+ //显示指纹图像
+ showImage(globalContext, base64FPImg, "html5");
+ //清空图像
+ setTimeout("clearImageData()", 200);
+ }
+ //定时器
+ timer = setTimeout("checkCollCount()", 200);
+ }
+ else {
+ //显示指纹图像
+ showImage(globalContext, base64FPImg, "html5");
+ //清空图像
+ setTimeout("clearImageData()", 200);
+ //存放国际化元素数组
+ var paramArray = new Array();
+ paramArray[0] = "成功登记指纹.";//base_fp_registerSuccess:成功登记指纹
+ paramArray[1] = "采集失败,请重新登记.";//base_fp_pressFingerAgain:请重按手指
+ paramArray[2] = "请不要重复录入指纹!";//base_fp_repeatCollection:请不要重复录入指纹!
+ paramArray[3] = "请安装指纹驱动或启动该服务!";//base_fp_connectPrompt:请检查网络连接
+ //进度条
+ drawProgressBar(globalContext, collCount);
+ console.log('paramArray', paramArray)
+ //获取指纹模板
+ if (!getFPTemplate(paramArray, "register")) {
+ drawProgressBar(globalContext, 0);//进度条灰显
+ }
+
+ //如果胁迫指纹选中,则取消选中
+ if (duressFingerFlag) {
+ $("#duressFinger").attr("checked", false);
+ }
+ $("#duressFinger").attr("disabled", false);
+ $("#submitButtonId").attr("disabled", false);
+ collectFlag = false;
+ fpIdNum = -1;
+ return collCount;
+ }
+ },
+ error: function (XMLHttpRequest, textStatus, errorThrown) {
+ alert("请安装指纹驱动或启动该服务!");
+ //messageBox({messageType: "alert", title: "提示", text: "请安装指纹驱动或启动该服务!"});
+ }
+ });
+
+}
+
+/**
+ * 取消采集,当采集中断时
+ * @author wenxin
+ * @create 2013-05-27 17:46:31 pm
+ */
+function cancelRegister() {
+ //当前有手指在采集指纹
+ if (collectFlag) {
+ //将定时器的递归调用关闭
+ clearTimeout(timer);
+ //取消采集
+ $.ajax({
+ type: "GET",
+ url: issOnlineUrl + "/fingerprint/cancelCapture?random=" + getRandomNum(),
+ dataType: "json",
+ async: false,
+ success: function (result) {
+ //如果胁迫指纹选中,则取消选中
+ if (duressFingerFlag) {
+ $("#duressFinger").attr("checked", false);
+ }
+ if (fpModifyFlag) {
+ $("#submitButtonId").attr("disabled", false);
+ }
+ $("#duressFinger").attr("disabled", false);
+ if (fpIdNum != null) {
+ //消除原来手指的颜色
+
+ renderAfterColl(globalContext, lastFPIdNum, bgColor, false);
+ }
+ collectFlag = false;
+ },
+ error: function (XMLHttpRequest, textStatus, errorThrown) {
+ alert("请安装指纹驱动或启动该服务!");
+ //messageBox({messageType: "alert", title: "提示", text: "请安装指纹驱动或启动该服务!"});
+ }
+ });
+ }
+}
+
+/**
+ * 绘画
+ * @author wenxin
+ * @create 2013-05-13 10:18:31 am
+ * @param context 2d画布上下文
+ * @param x, y 绘画左手掌的第一个点的坐标,后面的绘画手指和右手掌的坐标都是相对于此点坐标来计算
+ * @param color 绘画手指和手掌的边框颜色
+ */
+function draw(context, x, y, color) {
+ var coordArray = new Array();
+ //初始化起始坐标,并返回json格式数据
+ var coordJson = initCoordJson();
+ for (var i = 0; i < coordJson.length; i++) {
+ //绘画双手和圆弧
+ drawHandAndArc(context, coordArray, color, coordJson[i].coord.x, coordJson[i].coord.y, coordJson[i].num);
+ // drawHandAndArc(context, coordArray, color, coordJson[i].coord.x, coordJson[i].coord.y, i);
+ coordArray = null;
+ coordArray = new Array();
+ }
+ //存放国际化元素数组
+ var paramArray = new Array();
+ paramArray[0] = "请选择手指.";
+ paramArray[1] = "未检测到指纹采集器.";
+ paramArray[2] = "加载动态库失败.";
+ paramArray[3] = "请选择手指.";
+
+
+ //检查指纹采集器
+ checkFPReader(context, paramArray, "html5");
+
+ //进度条
+ drawProgressBar(context, 0);
+ //将确定按钮置灰
+ $("#submitButtonId").attr("disabled", true);
+}
+/**
+ * 绘画双手和圆弧
+ * @author wenxin
+ * @create 2013-06-17 10:18:31 am
+ * @param context 2d画布上下文
+ * @param coordArray 坐标数组
+ * @param x, y 绘画左手掌的第一个点的坐标,后面的绘画手指和右手掌的坐标都是相对于此点坐标来计算
+ * @param color 绘画手指和手掌的边框颜色
+ * @param num 当前会话对象编号
+ */
+function drawHandAndArc(context, coordArray, color, x, y, num) {
+ //初始化坐标
+ coordArray = initCoordArray(coordArray, x, y, num);
+ var drawObj = null;
+ //绘画手指
+ if (num < 10) {
+ drawObj = "finger" + num;
+ drawObj = new renderFinger(context, coordArray);
+ drawObj.drawFinger(strokeStyle, color);
+ //初始化时,渲染手指
+ renderInit(context, num, "html5");
+ //将绘画的手指实例放入数组,方便重画时用
+ if (fingerList.length < 10) {
+ fingerList.push(drawObj);
+ }
+ }
+ //绘画双手掌心
+ else if (num < 12) {
+ new renderHand(context, coordArray).drawHand(color);
+ }
+ //绘画圆圈
+ showImage(context, "image/base_fpVerify_clearImage.png", "clearForRegister");
+ //绘画圆弧
+ //else if(num == 12)
+ //{
+ // new FillArc(context, coordArray).drawArc(arcBgColor);
+ //}
+}
+/**
+ * 重画
+ * @author wenxin
+ * @create 2013-05-13 10:18:31 am
+ * @param x, y 鼠标点击处的坐标
+ */
+function redraw(x, y) {
+ var canvas = document.getElementById("canvas");
+ if (canvas.getContext) {
+ var context = canvas.getContext("2d");
+
+ //是否点击在手指区域
+ var isInFingerArea = false;
+ //判断当前点击是否在手指区域
+ for (var i = 0; i < fingerList.length; i++) {
+ var finger = fingerList[i];
+ finger.drawFinger(strokeStyle, fingerBorderColor);
+ if (context.isPointInPath(x, y)) {
+ isInFingerArea = true;
+ break;
+ }
+ }
+
+ outerloop:
+ for (var i = 0; i < fingerList.length; i++) {
+ if (collectFlag) {
+ //当点击的是同一个手指时,如何判断?(编辑指纹时,有问题)
+ if (fpIdNum == i) {
+ //切换手指后,渲染手指(消除原来手指的颜色)
+ renderAfterColl(globalContext, fpIdNum, bgColor, false);
+ }
+ }
+ var finger = fingerList[i];
+ finger.drawFinger(strokeStyle, fingerBorderColor);
+ //currentContext = context;
+ if (context.isPointInPath(x, y)) {
+ globalContext = context;
+ //两次是否点击的同一个手指进行采集。如果是,则第二次点击时取消采集。
+ var iaSameFinger = false;
+ if (fpIdNum == i && collectFlag) {
+ iaSameFinger = true;
+ }
+ var fingerId;
+ //判断该手指是否已经有指纹
+ var isCollected = false;
+ isCollected = isContains(fingerIdArray, i);
+ fpIdNum = i;
+ if (!isCollected) {
+ //保存当前正在采集的手指标记
+ lastFPIdNum = fpIdNum;
+ }
+ //如果已经有指纹
+ if (isCollected) {
+ //取消采集
+ cancelRegister();
+ var flag = confirm("删除当前选中的指纹吗?");
+ if (flag) {
+ delFPData(flag, context, "html5");
+ collectTips(globalContext, "请选择手指.", "html5");
+ //进度条
+ drawProgressBar(globalContext, 0);
+ }
+
+ break outerloop;
+ }
+ else {
+ //两次点击的同一个手指进行采集,则第二次取消采集。
+ if (iaSameFinger) {
+ //取消采集
+ cancelRegister();
+ //取消采集后重新提示请选择手指
+ collectTips(globalContext, "请选择手指.", "html5");
+ //取消采集后重新绘制进度条
+ drawProgressBar(context, 0);
+ fpIdNum = -1;
+ }
+ else {
+ //取消采集
+ cancelRegister();
+ context.fillStyle = fillFingerColor;
+ context.fill();
+ //globalContext = context;
+ collectFlag = true;//需要判断,当重复点击时,颜色改变
+ $("#duressFinger").attr("disabled", true);
+ $("#submitButtonId").attr("disabled", true);
+ //${base_fp_collCount}:按压指纹剩余次数:
+ var text = "按压剩余次数:" + FINGERPRINT_NUMBER;
+ //进度条
+ drawProgressBar(globalContext, 0);
+ //显示框--采集提示
+ collectTips(globalContext, text, "html5");
+ //指纹采集
+ fpCollection(context);
+ }
+ }
+ }
+ else {
+ context.fillStyle = bgColor;
+ context.fill();
+ renderInit(context, i, "html5");
+ if (collectFlag) {
+ if (fpIdNum == i && !isInFingerArea) {
+ context.fillStyle = fillFingerColor;
+ context.fill();
+ }
+ }
+ }
+ }
+ }
+}
+
+/**
+ * 页面加载时,初始化数据
+ * @author wenxin
+ * @create 2013-07-09 15:18:31 pm
+ */
+function dataInitReg() {
+ if (!duressFingerShowFlag) {
+ $("#duressFingerDiv").hide();
+ }
+ var canvas = document.getElementById("canvas");
+ var context = canvas.getContext("2d");
+
+ fpIdNum = null;
+ //获取页面的指纹数据
+ getDataFromPage();
+ //绘画
+ draw(context, x, y, fingerBorderColor);
+ //jquery在ie下实现cors跨域请求
+ jQuery.support.cors = true;
+ //鼠标事件
+ canvas.onmousedown = function (event) {
+ //event.which == 1--鼠标左键
+ if (event.which == 1) {
+ var pageInfo = canvas.getBoundingClientRect();
+ var x = event.clientX - pageInfo.left;
+ var y = event.clientY - pageInfo.top;
+
+ duressFingerFlag = $("#duressFinger").attr("checked");
+
+ //重画
+ redraw(x, y);
+ }
+ }
+}
+
+function myfunction() {
//加载xml中ISSOnline_server的ip和port
//loadXml("<%=basePath%>"+"webapp/xml/BaseISSOnlineServer.xml");
//加载指纹标记和指纹模板数据到页面
@@ -809,7 +744,7 @@
paramArray[0] = '指纹';
paramArray[1] = '指纹数:';
paramArray[2] = '确认保存当前修改吗?';
- paramArray[3] = '登记';
+ paramArray[3] = '录入指纹';
paramArray[4] = '请安装指纹驱动或启动该服务!';
paramArray[5] = '0';
paramArray[6] = '指纹数:';
@@ -818,16 +753,14 @@
checkDriver(paramArray, browserFlag, false);
}
-function closeCompa()
-{
+function closeCompa() {
$("#bg").css("display", "none");
$("#box").css("display", "none");
$("#comparisonDiv").css("display", "none");
}
//初始化界面数据,即清除指纹记录。
-function cleanData()
-{
+function cleanData() {
var canvas = document.getElementById("canvas");
var context = canvas.getContext("2d");
fpIdNum = null;
@@ -837,35 +770,32 @@
redraw(x, y);
}
-function doVerify()
-{
+function doVerify() {
var regTemplate = "TVFTUjIyAAAEEhAFBQUHCc7QAAAcE2kAAAAAgyEgiBKiAacPlQABAIIdnAHcAH4PagBlEmYN6ACJAA0PLhKrAaoPSADAAZcdEQGWACsONgA8EqwMzQAYAEYPZBJMAIMOhAB3AJodXgGdALIPeAB5EmQPqQBZADAMNxKXAbMPRACKAMIdAABwAM4PYQAbEvkOoQA9Ab0PAhMXAFMOtQCeAfAdlwGIAM0PZABvEucMcgDfAEoPyBJqAUgOngDAAX0dcAEyANkPUAAnE/cOIwBXAH8PAxMHAFMMGQDiAMEdLAmp3xIhWOopGLPgtfpCBkfzxGWAgSogmv2fgkJ1qPtygM/6FgYnAf6ecoBWeeZzdz8K4i9neo/e2VeB9g7jj7PzfPgBCHvu5hdWAxMP/QzLAbaAsJMYEaa8IAtOidYD9w2j/FoCFgk3ia4jhmX6I8cHuYf3hcMQ8AG335Nj830/ERZyASuC6G9qhZJs8OoY8hMfC8filOfG4M5Wk4TO7EYDExab4gbnvZFXfbcHvvW69PsZcAGv37/XMgzfEcLuzLf4/cQJBBIDMVlMFw+e9VYh1l1f/06bOqskIQADRB4qBMUsBEicDQA4AFoBwIJDgiUARABXVXhw7cCVw4DDb0fAf9CGxRQAVACnosXSwkSEwsDCBosDEmABXpNcDsWHBHvCgWd4eAbFngRlx8HAwwUAHwAN7P7ZDAAOAoZ4+9FSbgMAGQWJwwgSYhNTwVyABYgZEswVj6lpwkl6ldSDocPBSQnF1R0dwf/9/f4kwQDJCIGOBAAbLviECxMNL6mZfsUFwcDSwcMRAO83WcPFgJONkMQLAKs4SNLDcMHClhbFp0r7/P3A+fjAm/767PzB/f/9wOMDBNtTgcMJAJmlU6XUyMLDDQELoEkyVMHB+10GAMtrOYHBDQAUazAFc4BuBQG8b3Cn3gDPYEf//vz9/D76+u38//7///w7/vns//v9wP3A3gEPb0j///9HwDhU++3+/ztE/0beAQiBSP/+PlP+Ov/7UsH8///AwDv/xewLARSXKXivhQ4SNp0peIOJzgEPvVIqV8AzDsUMvznDdcFsb8HdARSuXVVTPsDA7v867f9LBwAMyvWZaB4ADsta/0eQ/kkeABDZXP/COcFP0zMHAAveJwbAxNECAZ3fdP3QAQTsZUZM//5bBf/60j/BChAXC9N0emUGEZ8Icf6F/w0DAgtiPkr/yBEGC2ZL/8D+wzr+XRYRWVt9MgrUAiJ1RcH/ZAwQyynz63PD/8PAasIQED0XwMDCagjVDjU7n8GNBRChhXTEKgQR5kNtRcEQ511sRVJCABmGAQYTAccAWl8AxACmEoXUAAAZRZcAQFAAAAAAABbFAAQSAzIAAAAAxQBBUA==";
var fpTemplate = "TVFTUjIyAAAEEhAFBQUHCc7QAAAcE2kAAAAAgyEgiBKiAacPlQABAIIdnAHcAH4PagBlEmYN6ACJAA0PLhKrAaoPSADAAZcdEQGWACsONgA8EqwMzQAYAEYPZBJMAIMOhAB3AJodXgGdALIPeAB5EmQPqQBZADAMNxKXAbMPRACKAMIdAABwAM4PYQAbEvkOoQA9Ab0PAhMXAFMOtQCeAfAdlwGIAM0PZABvEucMcgDfAEoPyBJqAUgOngDAAX0dcAEyANkPUAAnE/cOIwBXAH8PAxMHAFMMGQDiAMEdLAmp3xIhWOopGLPgtfpCBkfzxGWAgSogmv2fgkJ1qPtygM/6FgYnAf6ecoBWeeZzdz8K4i9neo/e2VeB9g7jj7PzfPgBCHvu5hdWAxMP/QzLAbaAsJMYEaa8IAtOidYD9w2j/FoCFgk3ia4jhmX6I8cHuYf3hcMQ8AG335Nj830/ERZyASuC6G9qhZJs8OoY8hMfC8filOfG4M5Wk4TO7EYDExab4gbnvZFXfbcHvvW69PsZcAGv37/XMgzfEcLuzLf4/cQJBBIDMVlMFw+e9VYh1l1f/06bOqskIQADRB4qBMUsBEicDQA4AFoBwIJDgiUARABXVXhw7cCVw4DDb0fAf9CGxRQAVACnosXSwkSEwsDCBosDEmABXpNcDsWHBHvCgWd4eAbFngRlx8HAwwUAHwAN7P7ZDAAOAoZ4+9FSbgMAGQWJwwgSYhNTwVyABYgZEswVj6lpwkl6ldSDocPBSQnF1R0dwf/9/f4kwQDJCIGOBAAbLviECxMNL6mZfsUFwcDSwcMRAO83WcPFgJONkMQLAKs4SNLDcMHClhbFp0r7/P3A+fjAm/767PzB/f/9wOMDBNtTgcMJAJmlU6XUyMLDDQELoEkyVMHB+10GAMtrOYHBDQAUazAFc4BuBQG8b3Cn3gDPYEf//vz9/D76+u38//7///w7/vns//v9wP3A3gEPb0j///9HwDhU++3+/ztE/0beAQiBSP/+PlP+Ov/7UsH8///AwDv/xewLARSXKXivhQ4SNp0peIOJzgEPvVIqV8AzDsUMvznDdcFsb8HdARSuXVVTPsDA7v867f9LBwAMyvWZaB4ADsta/0eQ/kkeABDZXP/COcFP0zMHAAveJwbAxNECAZ3fdP3QAQTsZUZM//5bBf/60j/BChAXC9N0emUGEZ8Icf6F/w0DAgtiPkr/yBEGC2ZL/8D+wzr+XRYRWVt9MgrUAiJ1RcH/ZAwQyynz63PD/8PAasIQED0XwMDCagjVDjU7n8GNBRChhXTEKgQR5kNtRcEQ511sRVJCABmGAQYTAccAWl8AxACmEoXUAAAZRZcAQFAAAAAAABbFAAQSAzIAAAAAxQBBUA==";
- $.ajax( {
- type : "POST",
- url : "http://127.0.0.1:22001/ZKBIOOnline/fingerprint/verify",
- dataType : "json",
- data:JSON.stringify({'reg':regTemplate,
- 'ver':fpTemplate}),
+ $.ajax({
+ type: "POST",
+ url: "http://127.0.0.1:22001/ZKBIOOnline/fingerprint/verify",
+ dataType: "json",
+ data: JSON.stringify({
+ 'reg': regTemplate,
+ 'ver': fpTemplate
+ }),
async: true,
- success : function(data)
- {
+ success: function (data) {
//返回码
var ret = null;
- ret = data.ret;
- //接口调用成功返回时
- if(ret == 0)
- {
+ ret = data.ret;
+ //接口调用成功返回时
+ if (ret == 0) {
alert("score:" + data.score);
}
- else
- {
+ else {
alert("ret:" + data.ret);
}
},
- error : function(XMLHttpRequest, textStatus, errorThrown)
- {
+ error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("请安装指纹驱动或启动该服务!");
- }
+ }
});
}
\ No newline at end of file
--
Gitblit v1.8.0