From 6fe0bbe094b843b9ff3a29649c6f786ee6261a89 Mon Sep 17 00:00:00 2001
From: liuwh <hugeinfo123>
Date: Wed, 27 May 2020 15:34:16 +0800
Subject: [PATCH] 1

---
 SunshineIns/src/copy/fingerprint/js/main.js | 1063 +++++++++++++++++++++++++++-------------------------------
 1 files changed, 497 insertions(+), 566 deletions(-)

diff --git a/SunshineIns/src/copy/fingerprint/js/main.js b/SunshineIns/src/copy/fingerprint/js/main.js
index 51e0899..f5c491a 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,446 +327,411 @@
  * @create 2013-05-15 17:12:21 pm
  * @param ${pers_person_templateCount}:指纹数
  */
-function submitEvent()
-{
+function submitEvent() {
 	storeDataToHtml();
+	console.log('storeDataToHtml()', storeDataToHtml());
 	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");
 	//加载指纹标记和指纹模板数据到页面
@@ -808,7 +744,7 @@
 	paramArray[0] = '指纹';
 	paramArray[1] = '指纹数:';
 	paramArray[2] = '确认保存当前修改吗?';
-	paramArray[3] = '登记';
+	paramArray[3] = '录入指纹';
 	paramArray[4] = '请安装指纹驱动或启动该服务!';
 	paramArray[5] = '0';
 	paramArray[6] = '指纹数:';
@@ -817,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;
@@ -836,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