webpackJsonp([56],{
|
|
|
|
/***/ "/xI2":
|
|
/***/ (function(module, exports) {
|
|
|
|
// removed by extract-text-webpack-plugin
|
|
|
|
/***/ }),
|
|
|
|
/***/ "BXO0":
|
|
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
|
|
"use strict";
|
|
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
|
|
|
|
// EXTERNAL MODULE: ./node_modules/babel-runtime/core-js/json/stringify.js
|
|
var stringify = __webpack_require__("mvHQ");
|
|
var stringify_default = /*#__PURE__*/__webpack_require__.n(stringify);
|
|
|
|
// EXTERNAL MODULE: ./src/api/index.js + 5 modules
|
|
var api = __webpack_require__("gyMJ");
|
|
|
|
// EXTERNAL MODULE: ./src/utils/resetMessage.js
|
|
var resetMessage = __webpack_require__("46Yo");
|
|
|
|
// CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./src/views/getFinger.vue
|
|
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
|
|
|
|
|
|
|
|
var Ip;
|
|
var getFinger_select = 0; //第几枚指纹
|
|
var contectStatus; //判断设备是否连接,0表示已连接
|
|
var fingerStatus; //判断手指是否按下,0表示未按下
|
|
var index; //手指序号
|
|
var strBmp; //bmp图像
|
|
var strFTP; //模板 一般存于数据库
|
|
var strFTR1; //特征1
|
|
var strFTR2; //特征1
|
|
var strFTR3; //特征3
|
|
var fingerData = void 0;
|
|
|
|
var WS_RET_ERR_OK = "0"; //操作成功
|
|
var WS_RET_ERR_PARAM = "-1"; //参数错误
|
|
var WS_RET_ERR_MEMORY = "-2"; //内存分配失败,没有分配到足够的内存
|
|
var WS_RET_ERR_FUN = "-3"; //功能未实现
|
|
var WS_RET_ERR_DEVICE = "-4"; //设备不存在
|
|
var WS_RET_ERR_INIT = "-5"; //设备未初始化
|
|
var WS_RET_ERR_UNKOWN = "-6"; //非法错误号
|
|
var WS_RET_ERR_EXTRACT = "-7"; //提取特征失败或合成模板失败
|
|
var WS_RET_ERR_ELSE = "-9"; //其它错误
|
|
|
|
var WS_FM_Init = "FM_Init";
|
|
//{"reqcode":"FM_Init"}
|
|
//{"repcode":"FM_Init","result":"xx"}
|
|
var WS_FM_Deinit = "FM_Deinit";
|
|
//{"reqcode":"FM_Deinit"}
|
|
//{"repcode":"FM_Deinit","result":"xx"}
|
|
var WS_FM_GetDevVerison = "FM_GetDevVerison";
|
|
//{"reqcode":"FM_GetDevVerison"}
|
|
//{"reqcode":"FM_GetDevVerison","result":"xx":"version":"string"}
|
|
var WS_FM_GetSdkVerison = "FM_GetSdkVerison";
|
|
//{"reqcode":"FM_GetSdkVerison"}
|
|
//{"reqcode":"FM_GetSdkVerison","result":"xx":"version":"string"}
|
|
var WS_FM_DetectFinger = "FM_DetectFinger";
|
|
//{"reqcode":"FM_DetectFinger"}
|
|
//{"reqcode":"FM_DetectFinger","result":"xx"}
|
|
var WS_FM_Extract = "FM_Extract";
|
|
//{"reqcode":"FM_Extract","index":"(1~6)"}
|
|
//{"reqcode":"FM_Extract","result":"xx","feature":"base64"}
|
|
var WS_FM_Enroll = "FM_Enroll";
|
|
|
|
var WS_FPM_FeatureMatch = "FM_DetectFinger";
|
|
//{"reqcode":"FM_Enroll"}
|
|
//{"reqcode":"FM_Extract","result":"xx","feature":"base64"}
|
|
|
|
|
|
//--------------------------------------------------------------//
|
|
// 清空显示页面
|
|
//--------------------------------------------------------------//
|
|
|
|
|
|
function ClearPage_OnClick() {}
|
|
// document.getElementById('mb').value = "";;
|
|
// document.getElementById("output").textContent ="";
|
|
|
|
//--------------------------------------------------------------//
|
|
// FPM_Init
|
|
//--------------------------------------------------------------//
|
|
function FM_Init_OnClick() {
|
|
ClearPage_OnClick();
|
|
var obj = {
|
|
"reqcode": WS_FM_Init
|
|
};
|
|
var str = stringify_default()(obj);
|
|
plguin_send(str);
|
|
}
|
|
//--------------------------------------------------------------//
|
|
// FM_Deinit
|
|
//--------------------------------------------------------------//
|
|
function FM_Deinit_OnClick() {
|
|
ClearPage_OnClick();
|
|
var obj = {
|
|
"reqcode": WS_FM_Deinit
|
|
};
|
|
var str = stringify_default()(obj);
|
|
plguin_send(str);
|
|
}
|
|
//--------------------------------------------------------------//
|
|
// FM_GetSdkVerison
|
|
//--------------------------------------------------------------//
|
|
function FM_GetSdkVerison_OnClick() {
|
|
ClearPage_OnClick();
|
|
var obj = {
|
|
"reqcode": WS_FM_GetSdkVerison
|
|
};
|
|
var str = stringify_default()(obj);
|
|
plguin_send(str);
|
|
}
|
|
//--------------------------------------------------------------//
|
|
// FM_GetDevVerison
|
|
//--------------------------------------------------------------//
|
|
function FM_GetDevVerison_OnClick() {
|
|
ClearPage_OnClick();
|
|
var obj = {
|
|
"reqcode": WS_FM_GetDevVerison
|
|
};
|
|
var str = stringify_default()(obj);
|
|
plguin_send(str);
|
|
}
|
|
|
|
//--------------------------------------------------------------//
|
|
// FPM_FeatureExtract
|
|
//--------------------------------------------------------------//
|
|
function FM_Extract_OnClick() {
|
|
// ClearPage_OnClick();
|
|
var obj = {
|
|
"reqcode": WS_FM_Extract,
|
|
"index": getFinger_select + 1 + ""
|
|
};
|
|
var str = stringify_default()(obj);
|
|
plguin_send(str);
|
|
}
|
|
//--------------------------------------------------------------//
|
|
// FM_Enroll
|
|
//--------------------------------------------------------------//
|
|
function FM_Enroll_OnClick() {
|
|
var obj = {
|
|
"reqcode": WS_FM_Enroll
|
|
};
|
|
var str = stringify_default()(obj);
|
|
plguin_send(str);
|
|
}
|
|
//--------------------------------------------------------------//
|
|
// FPM_FeatureMatch
|
|
//--------------------------------------------------------------//
|
|
function FM_DetectFinger_OnClick() {
|
|
var obj = {
|
|
"reqcode": WS_FM_DetectFinger
|
|
};
|
|
var str = stringify_default()(obj);
|
|
plguin_send(str);
|
|
}
|
|
|
|
function errAlert(iret) {
|
|
if (iret === WS_RET_ERR_OK) {
|
|
resetMessage["a" /* message */].success("操作成功");
|
|
} else if (iret === WS_RET_ERR_PARAM) {
|
|
resetMessage["a" /* message */].success("参数错误");
|
|
} else if (iret === WS_RET_ERR_MEMORY) {
|
|
resetMessage["a" /* message */].success("内存分配失败,没有分配到足够的内存");
|
|
} else if (iret === WS_RET_ERR_FUN) {
|
|
resetMessage["a" /* message */].success("功能未实现");
|
|
} else if (iret === WS_RET_ERR_DEVICE) {
|
|
resetMessage["a" /* message */].success("设备不存在");
|
|
} else if (iret === WS_RET_ERR_EXTRACT) {
|
|
resetMessage["a" /* message */].success("提取特征失败或合成模板失败");
|
|
} else if (iret === WS_RET_ERR_INIT) {
|
|
resetMessage["a" /* message */].success("设备未初始化");
|
|
} else if (iret === WS_RET_ERR_UNKOWN) {
|
|
resetMessage["a" /* message */].success("非法错误号");
|
|
} else if (iret === WS_RET_ERR_ELSE) {
|
|
resetMessage["a" /* message */].success("其它错误");
|
|
}
|
|
}
|
|
|
|
var mb = null;
|
|
//显示信息
|
|
var log = function log(s) {
|
|
if (document.readyState !== "complete") {
|
|
log.buffer.push(s);
|
|
} else {
|
|
// document.getElementById("output").textContent += (s + "\n");
|
|
// document.getElementById("outputdiv").scrollTop = document.getElementById("outputdiv").scrollHeight;
|
|
}
|
|
};
|
|
log.buffer = [];
|
|
//显示连接状态
|
|
function setConnected(status) {
|
|
// document.getElementById("socketstatus").innerHTML = status;
|
|
}
|
|
var ws = null;
|
|
|
|
//连接
|
|
function plguin_connect() {
|
|
if (ws != null) {
|
|
console.log("现已连接");
|
|
return;
|
|
}
|
|
var url = Ip;
|
|
if ('WebSocket' in window) {
|
|
ws = new WebSocket(url);
|
|
console.log(ws);
|
|
} else if ('MozWebSocket' in window) {
|
|
ws = new MozWebSocket(url);
|
|
} else {
|
|
log("unsupported WebSocket");
|
|
return;
|
|
}
|
|
ws.onopen = function () {
|
|
log("open");
|
|
setConnected("已连接");
|
|
//设置发信息送类型为:ArrayBuffer
|
|
ws.binaryType = "arraybuffer";
|
|
};
|
|
ws.onmessage = function (e) {
|
|
log("[recv]:" + e.data.toString());
|
|
var s = e.data.toString();
|
|
var obj = JSON.parse(s);
|
|
|
|
//检测设备
|
|
if (obj.repcode == WS_FM_Init) {
|
|
console.log(obj);
|
|
contectStatus = obj.result;
|
|
}
|
|
//关闭设备
|
|
else if (obj.repcode == WS_FM_Deinit) {
|
|
// console.log(222)
|
|
errAlert(obj.result);
|
|
}
|
|
//插件版本
|
|
else if (obj.repcode == WS_FM_GetDevVerison) {
|
|
//
|
|
var info = "Ver:" + obj.version;
|
|
resetMessage["a" /* message */].success(info);
|
|
}
|
|
//设备版本
|
|
else if (obj.repcode == WS_FM_GetSdkVerison) {
|
|
//
|
|
resetMessage["a" /* message */].success(obj.version);
|
|
}
|
|
|
|
//提取手指特征
|
|
else if (obj.repcode == WS_FM_Extract) {
|
|
if (obj.result == WS_RET_ERR_OK) {
|
|
if (0 == getFinger_select) {
|
|
console.log(obj);
|
|
// alert("指纹采集成功,请松开手指后在按下")
|
|
resetMessage["a" /* message */].success("指纹采集成功,请松开手指后在按下");
|
|
// this.DetectFinger()
|
|
}
|
|
if (1 == getFinger_select) {
|
|
console.log(obj);
|
|
console.log("第二次数据");
|
|
// alert("指纹采集成功,请松开手指后在按下")
|
|
resetMessage["a" /* message */].success("指纹采集成功,请松开手指后在按下");
|
|
}
|
|
if (2 == getFinger_select) {
|
|
console.log(obj);
|
|
fingerData = obj;
|
|
console.log("第三次数据");
|
|
// alert("指纹采集成功")
|
|
resetMessage["a" /* message */].success("指纹采集成功");
|
|
}
|
|
getFinger_select++;
|
|
} else errAlert(obj.result);
|
|
} else if (obj.repcode == WS_FM_Enroll) {
|
|
strFTP = obj.template;
|
|
errAlert(obj.result);
|
|
if (obj.result == WS_RET_ERR_OK) {
|
|
console.log(obj);
|
|
}
|
|
} else if (obj.repcode == WS_FPM_FeatureMatch) {
|
|
console.log(obj);
|
|
fingerStatus = obj.result;
|
|
console.log(fingerStatus);
|
|
// errAlert(obj.result);
|
|
} else {
|
|
log("Unkown");
|
|
}
|
|
};
|
|
ws.onclose = function (e) {
|
|
log("closed");
|
|
ws = null;
|
|
};
|
|
ws.onerror = function (e) {
|
|
log("error");
|
|
ws = null;
|
|
};
|
|
}
|
|
|
|
//断开连接
|
|
function plguin_close() {
|
|
if (ws != null) {
|
|
ws.close();
|
|
ws = null;
|
|
setConnected("已断开");
|
|
}
|
|
}
|
|
|
|
function plguin_send(s) {
|
|
log("[send]:" + s);
|
|
if (ws != null) {
|
|
ws.send(s);
|
|
} else {
|
|
log("[send]: ws null");
|
|
}
|
|
}
|
|
|
|
function getLocalIp(cb) {
|
|
if (window.navigator.userAgent.indexOf("MSIE") == -1 && window.navigator.userAgent.indexOf("Edge") == -1 && window.navigator.userAgent.indexOf("Trident") == -1) {
|
|
var conn = new RTCPeerConnection({
|
|
iceServers: []
|
|
});
|
|
var noop = function noop() {};
|
|
conn.onicecandidate = function (ice) {
|
|
if (ice.candidate) {
|
|
//使用正则获取ip
|
|
var arr = ice.candidate.candidate.split(' ');
|
|
var ip_addr = null;
|
|
for (var i in arr) {
|
|
if (arr[i].indexOf('.local') != -1) {
|
|
ip_addr = arr[i];
|
|
}
|
|
}
|
|
cb(ip_addr);
|
|
conn.onicecandidate = noop;
|
|
}
|
|
};
|
|
conn.createDataChannel('dataChannel');
|
|
conn.createOffer(conn.setLocalDescription.bind(conn), noop);
|
|
} else {
|
|
try {
|
|
var locator = new ActiveXObject("WbemScripting.SWbemLocator");
|
|
var service = locator.ConnectServer("."); //连接本机服务器
|
|
var properties = service.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration where IPEnabled=TRUE");
|
|
//查询使用SQL标准
|
|
var e = new Enumerator(properties);
|
|
for (; !e.atEnd(); e.moveNext()) {
|
|
var p = e.item();
|
|
var desc = "Caption:" + p.Caption + " "; //网卡描述,也可以使用Description
|
|
var ip = "IP:" + p.IPAddress(0) + " "; //IP地址为数组类型,子网俺码及默认网关亦同
|
|
var mac = "MAC:" + p.MACAddress + " "; //网卡物理地址
|
|
|
|
var ipSplit = ip.split(':');
|
|
ip = ipSplit[1] ? ipSplit[1] : ipSplit[0];
|
|
cb(ip);
|
|
}
|
|
} catch (e) {
|
|
//IE获取失败可提示用户,设置相关信任
|
|
}
|
|
}
|
|
}
|
|
|
|
/* harmony default export */ var getFinger = ({
|
|
data: function data() {
|
|
return {
|
|
ipAddress: '',
|
|
text: '',
|
|
loading: '',
|
|
list: [],
|
|
isdiable: true, //是否重新采集
|
|
fingerStatus: fingerStatus //判断手指是否按下,0表示未按下
|
|
};
|
|
},
|
|
mounted: function mounted() {},
|
|
|
|
methods: {
|
|
getFingerData: function getFingerData(value, callback) {
|
|
console.log(fingerData, 'fingerData');
|
|
callback(fingerData);
|
|
},
|
|
|
|
//连接
|
|
contect: function contect() {
|
|
plguin_connect();
|
|
},
|
|
|
|
//检测设备
|
|
Init: function Init() {
|
|
FM_Init_OnClick();
|
|
},
|
|
|
|
//检测手指
|
|
DetectFinger: function DetectFinger() {
|
|
var _this = this;
|
|
|
|
if (contectStatus == '0') {
|
|
FM_DetectFinger_OnClick();
|
|
setTimeout(function () {
|
|
_this.fingerStatus = fingerStatus;
|
|
}, 1000);
|
|
console.log("finger", this.fingerStatus);
|
|
} else {
|
|
this.Init();
|
|
this.$message("设备未连接,请重新尝试");
|
|
}
|
|
},
|
|
|
|
//提取特征
|
|
Extract: function Extract() {
|
|
FM_Extract_OnClick();
|
|
},
|
|
|
|
//合成模板
|
|
Enroll: function Enroll() {
|
|
FM_Enroll_OnClick();
|
|
},
|
|
|
|
//获取本机IP地址
|
|
getIp: function getIp() {
|
|
getLocalIp(function (ip) {
|
|
console.log(ip);
|
|
});
|
|
var str = window.location.host.split(':');
|
|
console.log(window.location.host, str);
|
|
Ip = "ws://" + '127.0.0.1' + ":9618";
|
|
// httpGet(data,'').then(res => {
|
|
// let str = res.data
|
|
// let targetStr = str.substring(str.indexOf('{'), str.lastIndexOf('}') + 1);
|
|
// Ip = "ws://" + JSON.stringify(targetStr) + ":9618"
|
|
// // Ip = "ws://" + '192.168.1.111' + ":9618"
|
|
// console.log(Ip)
|
|
// })
|
|
},
|
|
|
|
//重新采集
|
|
onload: function onload() {
|
|
getFinger_select = 0;
|
|
this.isdiable = true;
|
|
},
|
|
|
|
//loading
|
|
openFullScreen: function openFullScreen() {
|
|
this.loading = this.$loading({
|
|
lock: true,
|
|
text: this.text,
|
|
spinner: 'el-icon-loading',
|
|
background: 'rgba(0, 0, 0, 0.7)'
|
|
});
|
|
}
|
|
},
|
|
created: function created() {
|
|
var _this2 = this;
|
|
|
|
this.getIp();
|
|
this.text = '设备连接中';
|
|
this.openFullScreen();
|
|
setTimeout(function () {
|
|
_this2.contect();
|
|
setTimeout(function () {
|
|
_this2.Init();
|
|
_this2.loading.close();
|
|
}, 500);
|
|
}, 500);
|
|
},
|
|
|
|
watch: {
|
|
//监听手指是否按下
|
|
fingerStatus: function fingerStatus(news, olds) {
|
|
var _this3 = this;
|
|
|
|
console.log("watch", news);
|
|
if (this.fingerStatus == 1 && news == 1) {
|
|
this.Extract();
|
|
this.fingerStatus = 2;
|
|
if (getFinger_select == 2) {
|
|
this.Enroll();
|
|
setTimeout(function () {
|
|
_this3.list.push(strFTP);
|
|
_this3.isdiable = false;
|
|
}, 500);
|
|
console.log(this.list);
|
|
}
|
|
return;
|
|
}
|
|
if (news == 0) {
|
|
this.$message("请按压手指");
|
|
this.fingerStatus = 2;
|
|
}
|
|
}
|
|
}
|
|
});
|
|
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/template-compiler?{"id":"data-v-6f9da94a","hasScoped":false,"transformToRequire":{"video":["src","poster"],"source":"src","img":"src","image":"xlink:href"},"buble":{"transforms":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/views/getFinger.vue
|
|
var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{on:{"click":function($event){return _vm.DetectFinger()}}}),_vm._v(" "),_c('div',{on:{"click":function($event){return _vm.getFingerData()}}}),_vm._v(" "),_c('div',{attrs:{"id":"my-button"},on:{"click":function($event){return _vm.onload()}}})])}
|
|
var staticRenderFns = []
|
|
var esExports = { render: render, staticRenderFns: staticRenderFns }
|
|
/* harmony default export */ var views_getFinger = (esExports);
|
|
// CONCATENATED MODULE: ./src/views/getFinger.vue
|
|
function injectStyle (ssrContext) {
|
|
__webpack_require__("/xI2")
|
|
}
|
|
var normalizeComponent = __webpack_require__("VU/8")
|
|
/* script */
|
|
|
|
|
|
/* template */
|
|
|
|
/* template functional */
|
|
var __vue_template_functional__ = false
|
|
/* styles */
|
|
var __vue_styles__ = injectStyle
|
|
/* scopeId */
|
|
var __vue_scopeId__ = null
|
|
/* moduleIdentifier (server only) */
|
|
var __vue_module_identifier__ = null
|
|
var Component = normalizeComponent(
|
|
getFinger,
|
|
views_getFinger,
|
|
__vue_template_functional__,
|
|
__vue_styles__,
|
|
__vue_scopeId__,
|
|
__vue_module_identifier__
|
|
)
|
|
|
|
/* harmony default export */ var src_views_getFinger = __webpack_exports__["default"] = (Component.exports);
|
|
|
|
|
|
/***/ })
|
|
|
|
});
|