完成签约之后直接添加人员,录入下发凭证
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

546 lines
16 KiB

  1. webpackJsonp([56],{
  2. /***/ "/xI2":
  3. /***/ (function(module, exports) {
  4. // removed by extract-text-webpack-plugin
  5. /***/ }),
  6. /***/ "BXO0":
  7. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  8. "use strict";
  9. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  10. // EXTERNAL MODULE: ./node_modules/babel-runtime/core-js/json/stringify.js
  11. var stringify = __webpack_require__("mvHQ");
  12. var stringify_default = /*#__PURE__*/__webpack_require__.n(stringify);
  13. // EXTERNAL MODULE: ./src/api/index.js + 5 modules
  14. var api = __webpack_require__("gyMJ");
  15. // EXTERNAL MODULE: ./src/utils/resetMessage.js
  16. var resetMessage = __webpack_require__("46Yo");
  17. // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./src/views/getFinger.vue
  18. //
  19. //
  20. //
  21. //
  22. //
  23. //
  24. //
  25. //
  26. //
  27. //
  28. //
  29. //
  30. //
  31. //
  32. //
  33. var Ip;
  34. var getFinger_select = 0; //第几枚指纹
  35. var contectStatus; //判断设备是否连接,0表示已连接
  36. var fingerStatus; //判断手指是否按下,0表示未按下
  37. var index; //手指序号
  38. var strBmp; //bmp图像
  39. var strFTP; //模板 一般存于数据库
  40. var strFTR1; //特征1
  41. var strFTR2; //特征1
  42. var strFTR3; //特征3
  43. var fingerData = void 0;
  44. var WS_RET_ERR_OK = "0"; //操作成功
  45. var WS_RET_ERR_PARAM = "-1"; //参数错误
  46. var WS_RET_ERR_MEMORY = "-2"; //内存分配失败,没有分配到足够的内存
  47. var WS_RET_ERR_FUN = "-3"; //功能未实现
  48. var WS_RET_ERR_DEVICE = "-4"; //设备不存在
  49. var WS_RET_ERR_INIT = "-5"; //设备未初始化
  50. var WS_RET_ERR_UNKOWN = "-6"; //非法错误号
  51. var WS_RET_ERR_EXTRACT = "-7"; //提取特征失败或合成模板失败
  52. var WS_RET_ERR_ELSE = "-9"; //其它错误
  53. var WS_FM_Init = "FM_Init";
  54. //{"reqcode":"FM_Init"}
  55. //{"repcode":"FM_Init","result":"xx"}
  56. var WS_FM_Deinit = "FM_Deinit";
  57. //{"reqcode":"FM_Deinit"}
  58. //{"repcode":"FM_Deinit","result":"xx"}
  59. var WS_FM_GetDevVerison = "FM_GetDevVerison";
  60. //{"reqcode":"FM_GetDevVerison"}
  61. //{"reqcode":"FM_GetDevVerison","result":"xx":"version":"string"}
  62. var WS_FM_GetSdkVerison = "FM_GetSdkVerison";
  63. //{"reqcode":"FM_GetSdkVerison"}
  64. //{"reqcode":"FM_GetSdkVerison","result":"xx":"version":"string"}
  65. var WS_FM_DetectFinger = "FM_DetectFinger";
  66. //{"reqcode":"FM_DetectFinger"}
  67. //{"reqcode":"FM_DetectFinger","result":"xx"}
  68. var WS_FM_Extract = "FM_Extract";
  69. //{"reqcode":"FM_Extract","index":"(1~6)"}
  70. //{"reqcode":"FM_Extract","result":"xx","feature":"base64"}
  71. var WS_FM_Enroll = "FM_Enroll";
  72. var WS_FPM_FeatureMatch = "FM_DetectFinger";
  73. //{"reqcode":"FM_Enroll"}
  74. //{"reqcode":"FM_Extract","result":"xx","feature":"base64"}
  75. //--------------------------------------------------------------//
  76. // 清空显示页面
  77. //--------------------------------------------------------------//
  78. function ClearPage_OnClick() {}
  79. // document.getElementById('mb').value = "";;
  80. // document.getElementById("output").textContent ="";
  81. //--------------------------------------------------------------//
  82. // FPM_Init
  83. //--------------------------------------------------------------//
  84. function FM_Init_OnClick() {
  85. ClearPage_OnClick();
  86. var obj = {
  87. "reqcode": WS_FM_Init
  88. };
  89. var str = stringify_default()(obj);
  90. plguin_send(str);
  91. }
  92. //--------------------------------------------------------------//
  93. // FM_Deinit
  94. //--------------------------------------------------------------//
  95. function FM_Deinit_OnClick() {
  96. ClearPage_OnClick();
  97. var obj = {
  98. "reqcode": WS_FM_Deinit
  99. };
  100. var str = stringify_default()(obj);
  101. plguin_send(str);
  102. }
  103. //--------------------------------------------------------------//
  104. // FM_GetSdkVerison
  105. //--------------------------------------------------------------//
  106. function FM_GetSdkVerison_OnClick() {
  107. ClearPage_OnClick();
  108. var obj = {
  109. "reqcode": WS_FM_GetSdkVerison
  110. };
  111. var str = stringify_default()(obj);
  112. plguin_send(str);
  113. }
  114. //--------------------------------------------------------------//
  115. // FM_GetDevVerison
  116. //--------------------------------------------------------------//
  117. function FM_GetDevVerison_OnClick() {
  118. ClearPage_OnClick();
  119. var obj = {
  120. "reqcode": WS_FM_GetDevVerison
  121. };
  122. var str = stringify_default()(obj);
  123. plguin_send(str);
  124. }
  125. //--------------------------------------------------------------//
  126. // FPM_FeatureExtract
  127. //--------------------------------------------------------------//
  128. function FM_Extract_OnClick() {
  129. // ClearPage_OnClick();
  130. var obj = {
  131. "reqcode": WS_FM_Extract,
  132. "index": getFinger_select + 1 + ""
  133. };
  134. var str = stringify_default()(obj);
  135. plguin_send(str);
  136. }
  137. //--------------------------------------------------------------//
  138. // FM_Enroll
  139. //--------------------------------------------------------------//
  140. function FM_Enroll_OnClick() {
  141. var obj = {
  142. "reqcode": WS_FM_Enroll
  143. };
  144. var str = stringify_default()(obj);
  145. plguin_send(str);
  146. }
  147. //--------------------------------------------------------------//
  148. // FPM_FeatureMatch
  149. //--------------------------------------------------------------//
  150. function FM_DetectFinger_OnClick() {
  151. var obj = {
  152. "reqcode": WS_FM_DetectFinger
  153. };
  154. var str = stringify_default()(obj);
  155. plguin_send(str);
  156. }
  157. function errAlert(iret) {
  158. if (iret === WS_RET_ERR_OK) {
  159. resetMessage["a" /* message */].success("操作成功");
  160. } else if (iret === WS_RET_ERR_PARAM) {
  161. resetMessage["a" /* message */].success("参数错误");
  162. } else if (iret === WS_RET_ERR_MEMORY) {
  163. resetMessage["a" /* message */].success("内存分配失败,没有分配到足够的内存");
  164. } else if (iret === WS_RET_ERR_FUN) {
  165. resetMessage["a" /* message */].success("功能未实现");
  166. } else if (iret === WS_RET_ERR_DEVICE) {
  167. resetMessage["a" /* message */].success("设备不存在");
  168. } else if (iret === WS_RET_ERR_EXTRACT) {
  169. resetMessage["a" /* message */].success("提取特征失败或合成模板失败");
  170. } else if (iret === WS_RET_ERR_INIT) {
  171. resetMessage["a" /* message */].success("设备未初始化");
  172. } else if (iret === WS_RET_ERR_UNKOWN) {
  173. resetMessage["a" /* message */].success("非法错误号");
  174. } else if (iret === WS_RET_ERR_ELSE) {
  175. resetMessage["a" /* message */].success("其它错误");
  176. }
  177. }
  178. var mb = null;
  179. //显示信息
  180. var log = function log(s) {
  181. if (document.readyState !== "complete") {
  182. log.buffer.push(s);
  183. } else {
  184. // document.getElementById("output").textContent += (s + "\n");
  185. // document.getElementById("outputdiv").scrollTop = document.getElementById("outputdiv").scrollHeight;
  186. }
  187. };
  188. log.buffer = [];
  189. //显示连接状态
  190. function setConnected(status) {
  191. // document.getElementById("socketstatus").innerHTML = status;
  192. }
  193. var ws = null;
  194. //连接
  195. function plguin_connect() {
  196. if (ws != null) {
  197. console.log("现已连接");
  198. return;
  199. }
  200. var url = Ip;
  201. if ('WebSocket' in window) {
  202. ws = new WebSocket(url);
  203. console.log(ws);
  204. } else if ('MozWebSocket' in window) {
  205. ws = new MozWebSocket(url);
  206. } else {
  207. log("unsupported WebSocket");
  208. return;
  209. }
  210. ws.onopen = function () {
  211. log("open");
  212. setConnected("已连接");
  213. //设置发信息送类型为:ArrayBuffer
  214. ws.binaryType = "arraybuffer";
  215. };
  216. ws.onmessage = function (e) {
  217. log("[recv]:" + e.data.toString());
  218. var s = e.data.toString();
  219. var obj = JSON.parse(s);
  220. //检测设备
  221. if (obj.repcode == WS_FM_Init) {
  222. console.log(obj);
  223. contectStatus = obj.result;
  224. }
  225. //关闭设备
  226. else if (obj.repcode == WS_FM_Deinit) {
  227. // console.log(222)
  228. errAlert(obj.result);
  229. }
  230. //插件版本
  231. else if (obj.repcode == WS_FM_GetDevVerison) {
  232. //
  233. var info = "Ver:" + obj.version;
  234. resetMessage["a" /* message */].success(info);
  235. }
  236. //设备版本
  237. else if (obj.repcode == WS_FM_GetSdkVerison) {
  238. //
  239. resetMessage["a" /* message */].success(obj.version);
  240. }
  241. //提取手指特征
  242. else if (obj.repcode == WS_FM_Extract) {
  243. if (obj.result == WS_RET_ERR_OK) {
  244. if (0 == getFinger_select) {
  245. console.log(obj);
  246. // alert("指纹采集成功,请松开手指后在按下")
  247. resetMessage["a" /* message */].success("指纹采集成功,请松开手指后在按下");
  248. // this.DetectFinger()
  249. }
  250. if (1 == getFinger_select) {
  251. console.log(obj);
  252. console.log("第二次数据");
  253. // alert("指纹采集成功,请松开手指后在按下")
  254. resetMessage["a" /* message */].success("指纹采集成功,请松开手指后在按下");
  255. }
  256. if (2 == getFinger_select) {
  257. console.log(obj);
  258. fingerData = obj;
  259. console.log("第三次数据");
  260. // alert("指纹采集成功")
  261. resetMessage["a" /* message */].success("指纹采集成功");
  262. }
  263. getFinger_select++;
  264. } else errAlert(obj.result);
  265. } else if (obj.repcode == WS_FM_Enroll) {
  266. strFTP = obj.template;
  267. errAlert(obj.result);
  268. if (obj.result == WS_RET_ERR_OK) {
  269. console.log(obj);
  270. }
  271. } else if (obj.repcode == WS_FPM_FeatureMatch) {
  272. console.log(obj);
  273. fingerStatus = obj.result;
  274. console.log(fingerStatus);
  275. // errAlert(obj.result);
  276. } else {
  277. log("Unkown");
  278. }
  279. };
  280. ws.onclose = function (e) {
  281. log("closed");
  282. ws = null;
  283. };
  284. ws.onerror = function (e) {
  285. log("error");
  286. ws = null;
  287. };
  288. }
  289. //断开连接
  290. function plguin_close() {
  291. if (ws != null) {
  292. ws.close();
  293. ws = null;
  294. setConnected("已断开");
  295. }
  296. }
  297. function plguin_send(s) {
  298. log("[send]:" + s);
  299. if (ws != null) {
  300. ws.send(s);
  301. } else {
  302. log("[send]: ws null");
  303. }
  304. }
  305. function getLocalIp(cb) {
  306. if (window.navigator.userAgent.indexOf("MSIE") == -1 && window.navigator.userAgent.indexOf("Edge") == -1 && window.navigator.userAgent.indexOf("Trident") == -1) {
  307. var conn = new RTCPeerConnection({
  308. iceServers: []
  309. });
  310. var noop = function noop() {};
  311. conn.onicecandidate = function (ice) {
  312. if (ice.candidate) {
  313. //使用正则获取ip
  314. var arr = ice.candidate.candidate.split(' ');
  315. var ip_addr = null;
  316. for (var i in arr) {
  317. if (arr[i].indexOf('.local') != -1) {
  318. ip_addr = arr[i];
  319. }
  320. }
  321. cb(ip_addr);
  322. conn.onicecandidate = noop;
  323. }
  324. };
  325. conn.createDataChannel('dataChannel');
  326. conn.createOffer(conn.setLocalDescription.bind(conn), noop);
  327. } else {
  328. try {
  329. var locator = new ActiveXObject("WbemScripting.SWbemLocator");
  330. var service = locator.ConnectServer("."); //连接本机服务器
  331. var properties = service.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration where IPEnabled=TRUE");
  332. //查询使用SQL标准
  333. var e = new Enumerator(properties);
  334. for (; !e.atEnd(); e.moveNext()) {
  335. var p = e.item();
  336. var desc = "Caption:" + p.Caption + " "; //网卡描述,也可以使用Description
  337. var ip = "IP:" + p.IPAddress(0) + " "; //IP地址为数组类型,子网俺码及默认网关亦同
  338. var mac = "MAC:" + p.MACAddress + " "; //网卡物理地址
  339. var ipSplit = ip.split(':');
  340. ip = ipSplit[1] ? ipSplit[1] : ipSplit[0];
  341. cb(ip);
  342. }
  343. } catch (e) {
  344. //IE获取失败可提示用户,设置相关信任
  345. }
  346. }
  347. }
  348. /* harmony default export */ var getFinger = ({
  349. data: function data() {
  350. return {
  351. ipAddress: '',
  352. text: '',
  353. loading: '',
  354. list: [],
  355. isdiable: true, //是否重新采集
  356. fingerStatus: fingerStatus //判断手指是否按下,0表示未按下
  357. };
  358. },
  359. mounted: function mounted() {},
  360. methods: {
  361. getFingerData: function getFingerData(value, callback) {
  362. console.log(fingerData, 'fingerData');
  363. callback(fingerData);
  364. },
  365. //连接
  366. contect: function contect() {
  367. plguin_connect();
  368. },
  369. //检测设备
  370. Init: function Init() {
  371. FM_Init_OnClick();
  372. },
  373. //检测手指
  374. DetectFinger: function DetectFinger() {
  375. var _this = this;
  376. if (contectStatus == '0') {
  377. FM_DetectFinger_OnClick();
  378. setTimeout(function () {
  379. _this.fingerStatus = fingerStatus;
  380. }, 1000);
  381. console.log("finger", this.fingerStatus);
  382. } else {
  383. this.Init();
  384. this.$message("设备未连接,请重新尝试");
  385. }
  386. },
  387. //提取特征
  388. Extract: function Extract() {
  389. FM_Extract_OnClick();
  390. },
  391. //合成模板
  392. Enroll: function Enroll() {
  393. FM_Enroll_OnClick();
  394. },
  395. //获取本机IP地址
  396. getIp: function getIp() {
  397. getLocalIp(function (ip) {
  398. console.log(ip);
  399. });
  400. var str = window.location.host.split(':');
  401. console.log(window.location.host, str);
  402. Ip = "ws://" + '127.0.0.1' + ":9618";
  403. // httpGet(data,'').then(res => {
  404. // let str = res.data
  405. // let targetStr = str.substring(str.indexOf('{'), str.lastIndexOf('}') + 1);
  406. // Ip = "ws://" + JSON.stringify(targetStr) + ":9618"
  407. // // Ip = "ws://" + '192.168.1.111' + ":9618"
  408. // console.log(Ip)
  409. // })
  410. },
  411. //重新采集
  412. onload: function onload() {
  413. getFinger_select = 0;
  414. this.isdiable = true;
  415. },
  416. //loading
  417. openFullScreen: function openFullScreen() {
  418. this.loading = this.$loading({
  419. lock: true,
  420. text: this.text,
  421. spinner: 'el-icon-loading',
  422. background: 'rgba(0, 0, 0, 0.7)'
  423. });
  424. }
  425. },
  426. created: function created() {
  427. var _this2 = this;
  428. this.getIp();
  429. this.text = '设备连接中';
  430. this.openFullScreen();
  431. setTimeout(function () {
  432. _this2.contect();
  433. setTimeout(function () {
  434. _this2.Init();
  435. _this2.loading.close();
  436. }, 500);
  437. }, 500);
  438. },
  439. watch: {
  440. //监听手指是否按下
  441. fingerStatus: function fingerStatus(news, olds) {
  442. var _this3 = this;
  443. console.log("watch", news);
  444. if (this.fingerStatus == 1 && news == 1) {
  445. this.Extract();
  446. this.fingerStatus = 2;
  447. if (getFinger_select == 2) {
  448. this.Enroll();
  449. setTimeout(function () {
  450. _this3.list.push(strFTP);
  451. _this3.isdiable = false;
  452. }, 500);
  453. console.log(this.list);
  454. }
  455. return;
  456. }
  457. if (news == 0) {
  458. this.$message("请按压手指");
  459. this.fingerStatus = 2;
  460. }
  461. }
  462. }
  463. });
  464. // 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
  465. 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()}}})])}
  466. var staticRenderFns = []
  467. var esExports = { render: render, staticRenderFns: staticRenderFns }
  468. /* harmony default export */ var views_getFinger = (esExports);
  469. // CONCATENATED MODULE: ./src/views/getFinger.vue
  470. function injectStyle (ssrContext) {
  471. __webpack_require__("/xI2")
  472. }
  473. var normalizeComponent = __webpack_require__("VU/8")
  474. /* script */
  475. /* template */
  476. /* template functional */
  477. var __vue_template_functional__ = false
  478. /* styles */
  479. var __vue_styles__ = injectStyle
  480. /* scopeId */
  481. var __vue_scopeId__ = null
  482. /* moduleIdentifier (server only) */
  483. var __vue_module_identifier__ = null
  484. var Component = normalizeComponent(
  485. getFinger,
  486. views_getFinger,
  487. __vue_template_functional__,
  488. __vue_styles__,
  489. __vue_scopeId__,
  490. __vue_module_identifier__
  491. )
  492. /* harmony default export */ var src_views_getFinger = __webpack_exports__["default"] = (Component.exports);
  493. /***/ })
  494. });