unify-external-plugin-platform 0.0.3-31 → 0.0.3-33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -84406,6 +84406,7 @@ class custom_axios_CustomAxios {
84406
84406
  } else if (method == 'POST') {} else {
84407
84407
  reject('error method: Currently only supported GET or POST method!');
84408
84408
  }
84409
+ console.log(method, url);
84409
84410
  xhr.open(method, url, true);
84410
84411
  xhr.setRequestHeader('Accept', 'application/json');
84411
84412
  if (header) {
@@ -84436,8 +84437,8 @@ class custom_axios_CustomAxios {
84436
84437
  };
84437
84438
  });
84438
84439
  }
84439
- static async get(url, header = {}) {
84440
- let res = await custom_axios_CustomAxios.startConnect('GET', url, {}, header);
84440
+ static async get(url, data = {}, header = {}) {
84441
+ let res = await custom_axios_CustomAxios.startConnect('GET', url, data, header);
84441
84442
  return res;
84442
84443
  }
84443
84444
  static async post(url, data, header = {}) {
@@ -84605,7 +84606,7 @@ class eloam_plugin_service_ELoamPassService {
84605
84606
  url = this.baseLinuxServiceUrl + '/StopPreview?dev_idx=0';
84606
84607
  requestType = 'get';
84607
84608
  } else {
84608
- url = this.baseServiceUrl + ' /video=close';
84609
+ url = this.baseServiceUrl + '/video=close';
84609
84610
  param = {
84610
84611
  "camidx": "0"
84611
84612
  };
@@ -88919,7 +88920,7 @@ class ExitAndEntryPluginService {
88919
88920
  static async read(method, data = {}) {
88920
88921
  let url = '',
88921
88922
  requestType = '',
88922
- param;
88923
+ param = {};
88923
88924
  switch (method) {
88924
88925
  case ExitAndEntryMethodCode.GetStatus:
88925
88926
  url = `${ExitAndEntryPluginService.baseServiceUrl}/PassportReader/${method}`;
@@ -88943,7 +88944,7 @@ class ExitAndEntryPluginService {
88943
88944
  }
88944
88945
  let res;
88945
88946
  if (requestType === 'get') {
88946
- res = await custom_axios_CustomAxios[requestType](url, headers);
88947
+ res = await custom_axios_CustomAxios[requestType](url, param, headers);
88947
88948
  } else {
88948
88949
  res = await custom_axios_CustomAxios[requestType](url, param, headers);
88949
88950
  }
@@ -89547,7 +89548,7 @@ var HanWangMethodCode;
89547
89548
  })(HanWangMethodCode || (HanWangMethodCode = {}));
89548
89549
  class HanWangPluginService {
89549
89550
  static startConnect() {
89550
- if (this.ws && this.ws.readyState === WebSocket.OPEN) {
89551
+ if (this.ws && this.ws.readyState === WebSocket.CONNECTING) {
89551
89552
  return this;
89552
89553
  }
89553
89554
  const ws = new WebSocket(this.linuxWebServiceUrl);
@@ -89573,7 +89574,6 @@ class HanWangPluginService {
89573
89574
  } catch (e) {
89574
89575
  data = {};
89575
89576
  }
89576
- console.log('message=>', data);
89577
89577
  if (data.HWPenSign === 'HWGetSign' && data.msgID == '0') {
89578
89578
  const event = new SignResultEvent(data.message);
89579
89579
  return window.dispatchEvent(event);
@@ -89635,7 +89635,7 @@ class HanWangPluginService {
89635
89635
  url = this.windowsWebServiceUrl + '/HWPenSign/HWGetSign';
89636
89636
  break;
89637
89637
  }
89638
- let res = await custom_axios_CustomAxios.get(url);
89638
+ let res = await custom_axios_CustomAxios.get(url, data);
89639
89639
  return res;
89640
89640
  }
89641
89641
  static async readInLinux(methodCode) {
@@ -89650,6 +89650,9 @@ class HanWangPluginService {
89650
89650
  break;
89651
89651
  case HanWangMethodCode.StartSignName:
89652
89652
  param = JSON.stringify({
89653
+ HWPenSign: 'HWInitialize',
89654
+ key: "D9063E7FE567E09E84B00B5ECDE9B3F2",
89655
+ title: "请在签字板上签名",
89653
89656
  nOrgX: 400,
89654
89657
  nOrgY: 350,
89655
89658
  nWidth: 600,
@@ -89658,7 +89661,8 @@ class HanWangPluginService {
89658
89661
  nImageWidth: 250,
89659
89662
  nImageHeight: 150,
89660
89663
  nConfirmTimeout: 30,
89661
- fingerCap: 1
89664
+ fingerCap: 1,
89665
+ nFingerCap: 0
89662
89666
  });
89663
89667
  break;
89664
89668
  }
@@ -84416,6 +84416,7 @@ class custom_axios_CustomAxios {
84416
84416
  } else if (method == 'POST') {} else {
84417
84417
  reject('error method: Currently only supported GET or POST method!');
84418
84418
  }
84419
+ console.log(method, url);
84419
84420
  xhr.open(method, url, true);
84420
84421
  xhr.setRequestHeader('Accept', 'application/json');
84421
84422
  if (header) {
@@ -84446,8 +84447,8 @@ class custom_axios_CustomAxios {
84446
84447
  };
84447
84448
  });
84448
84449
  }
84449
- static async get(url, header = {}) {
84450
- let res = await custom_axios_CustomAxios.startConnect('GET', url, {}, header);
84450
+ static async get(url, data = {}, header = {}) {
84451
+ let res = await custom_axios_CustomAxios.startConnect('GET', url, data, header);
84451
84452
  return res;
84452
84453
  }
84453
84454
  static async post(url, data, header = {}) {
@@ -84615,7 +84616,7 @@ class eloam_plugin_service_ELoamPassService {
84615
84616
  url = this.baseLinuxServiceUrl + '/StopPreview?dev_idx=0';
84616
84617
  requestType = 'get';
84617
84618
  } else {
84618
- url = this.baseServiceUrl + ' /video=close';
84619
+ url = this.baseServiceUrl + '/video=close';
84619
84620
  param = {
84620
84621
  "camidx": "0"
84621
84622
  };
@@ -88929,7 +88930,7 @@ class ExitAndEntryPluginService {
88929
88930
  static async read(method, data = {}) {
88930
88931
  let url = '',
88931
88932
  requestType = '',
88932
- param;
88933
+ param = {};
88933
88934
  switch (method) {
88934
88935
  case ExitAndEntryMethodCode.GetStatus:
88935
88936
  url = `${ExitAndEntryPluginService.baseServiceUrl}/PassportReader/${method}`;
@@ -88953,7 +88954,7 @@ class ExitAndEntryPluginService {
88953
88954
  }
88954
88955
  let res;
88955
88956
  if (requestType === 'get') {
88956
- res = await custom_axios_CustomAxios[requestType](url, headers);
88957
+ res = await custom_axios_CustomAxios[requestType](url, param, headers);
88957
88958
  } else {
88958
88959
  res = await custom_axios_CustomAxios[requestType](url, param, headers);
88959
88960
  }
@@ -89557,7 +89558,7 @@ var HanWangMethodCode;
89557
89558
  })(HanWangMethodCode || (HanWangMethodCode = {}));
89558
89559
  class HanWangPluginService {
89559
89560
  static startConnect() {
89560
- if (this.ws && this.ws.readyState === WebSocket.OPEN) {
89561
+ if (this.ws && this.ws.readyState === WebSocket.CONNECTING) {
89561
89562
  return this;
89562
89563
  }
89563
89564
  const ws = new WebSocket(this.linuxWebServiceUrl);
@@ -89583,7 +89584,6 @@ class HanWangPluginService {
89583
89584
  } catch (e) {
89584
89585
  data = {};
89585
89586
  }
89586
- console.log('message=>', data);
89587
89587
  if (data.HWPenSign === 'HWGetSign' && data.msgID == '0') {
89588
89588
  const event = new SignResultEvent(data.message);
89589
89589
  return window.dispatchEvent(event);
@@ -89645,7 +89645,7 @@ class HanWangPluginService {
89645
89645
  url = this.windowsWebServiceUrl + '/HWPenSign/HWGetSign';
89646
89646
  break;
89647
89647
  }
89648
- let res = await custom_axios_CustomAxios.get(url);
89648
+ let res = await custom_axios_CustomAxios.get(url, data);
89649
89649
  return res;
89650
89650
  }
89651
89651
  static async readInLinux(methodCode) {
@@ -89660,6 +89660,9 @@ class HanWangPluginService {
89660
89660
  break;
89661
89661
  case HanWangMethodCode.StartSignName:
89662
89662
  param = JSON.stringify({
89663
+ HWPenSign: 'HWInitialize',
89664
+ key: "D9063E7FE567E09E84B00B5ECDE9B3F2",
89665
+ title: "请在签字板上签名",
89663
89666
  nOrgX: 400,
89664
89667
  nOrgY: 350,
89665
89668
  nWidth: 600,
@@ -89668,7 +89671,8 @@ class HanWangPluginService {
89668
89671
  nImageWidth: 250,
89669
89672
  nImageHeight: 150,
89670
89673
  nConfirmTimeout: 30,
89671
- fingerCap: 1
89674
+ fingerCap: 1,
89675
+ nFingerCap: 0
89672
89676
  });
89673
89677
  break;
89674
89678
  }
@@ -21,4 +21,4 @@
21
21
  * @internal
22
22
  * @license Modernizr 3.0.0pre (Custom Build) | MIT
23
23
  */
24
- function a(e,t){if(!r.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,a=n in document;if(!a){var s=document.createElement("div");s.setAttribute(n,"return;"),a="function"===typeof s[n]}return!a&&i&&"wheel"===e&&(a=document.implementation.hasFeature("Events.wheel","3.0")),a}r.canUseDOM&&(i=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature("","")),e.exports=a},643:function(e,t,n){"use strict";var i=n(4518),r=n(6534),a=10,s=40,o=800;function l(e){var t=0,n=0,i=0,r=0;return"detail"in e&&(n=e.detail),"wheelDelta"in e&&(n=-e.wheelDelta/120),"wheelDeltaY"in e&&(n=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=n,n=0),i=t*a,r=n*a,"deltaY"in e&&(r=e.deltaY),"deltaX"in e&&(i=e.deltaX),(i||r)&&e.deltaMode&&(1==e.deltaMode?(i*=s,r*=s):(i*=o,r*=o)),i&&!t&&(t=i<1?-1:1),r&&!n&&(n=r<1?-1:1),{spinX:t,spinY:n,pixelX:i,pixelY:r}}l.getEventType=function(){return i.firefox()?"DOMMouseScroll":r("wheel")?"wheel":"mousewheel"},e.exports=l},1033:function(e,t,n){"use strict";n.r(t);var i=function(){if("undefined"!==typeof Map)return Map;function e(e,t){var n=-1;return e.some((function(e,i){return e[0]===t&&(n=i,!0)})),n}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(t){var n=e(this.__entries__,t),i=this.__entries__[n];return i&&i[1]},t.prototype.set=function(t,n){var i=e(this.__entries__,t);~i?this.__entries__[i][1]=n:this.__entries__.push([t,n])},t.prototype.delete=function(t){var n=this.__entries__,i=e(n,t);~i&&n.splice(i,1)},t.prototype.has=function(t){return!!~e(this.__entries__,t)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(e,t){void 0===t&&(t=null);for(var n=0,i=this.__entries__;n<i.length;n++){var r=i[n];e.call(t,r[1],r[0])}},t}()}(),r="undefined"!==typeof window&&"undefined"!==typeof document&&window.document===document,a=function(){return"undefined"!==typeof n.g&&n.g.Math===Math?n.g:"undefined"!==typeof self&&self.Math===Math?self:"undefined"!==typeof window&&window.Math===Math?window:Function("return this")()}(),s=function(){return"function"===typeof requestAnimationFrame?requestAnimationFrame.bind(a):function(e){return setTimeout((function(){return e(Date.now())}),1e3/60)}}(),o=2;function l(e,t){var n=!1,i=!1,r=0;function a(){n&&(n=!1,e()),i&&c()}function l(){s(a)}function c(){var e=Date.now();if(n){if(e-r<o)return;i=!0}else n=!0,i=!1,setTimeout(l,t);r=e}return c}var c=20,u=["top","right","bottom","left","width","height","size","weight"],d="undefined"!==typeof MutationObserver,h=function(){function e(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=l(this.refresh.bind(this),c)}return e.prototype.addObserver=function(e){~this.observers_.indexOf(e)||this.observers_.push(e),this.connected_||this.connect_()},e.prototype.removeObserver=function(e){var t=this.observers_,n=t.indexOf(e);~n&&t.splice(n,1),!t.length&&this.connected_&&this.disconnect_()},e.prototype.refresh=function(){var e=this.updateObservers_();e&&this.refresh()},e.prototype.updateObservers_=function(){var e=this.observers_.filter((function(e){return e.gatherActive(),e.hasActive()}));return e.forEach((function(e){return e.broadcastActive()})),e.length>0},e.prototype.connect_=function(){r&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),d?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){r&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,n=void 0===t?"":t,i=u.some((function(e){return!!~n.indexOf(e)}));i&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),f=function(e,t){for(var n=0,i=Object.keys(t);n<i.length;n++){var r=i[n];Object.defineProperty(e,r,{value:t[r],enumerable:!1,writable:!1,configurable:!0})}return e},p=function(e){var t=e&&e.ownerDocument&&e.ownerDocument.defaultView;return t||a},m=k(0,0,0,0);function g(e){return parseFloat(e)||0}function v(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return t.reduce((function(t,n){var i=e["border-"+n+"-width"];return t+g(i)}),0)}function b(e){for(var t=["top","right","bottom","left"],n={},i=0,r=t;i<r.length;i++){var a=r[i],s=e["padding-"+a];n[a]=g(s)}return n}function y(e){var t=e.getBBox();return k(0,0,t.width,t.height)}function C(e){var t=e.clientWidth,n=e.clientHeight;if(!t&&!n)return m;var i=p(e).getComputedStyle(e),r=b(i),a=r.left+r.right,s=r.top+r.bottom,o=g(i.width),l=g(i.height);if("border-box"===i.boxSizing&&(Math.round(o+a)!==t&&(o-=v(i,"left","right")+a),Math.round(l+s)!==n&&(l-=v(i,"top","bottom")+s)),!_(e)){var c=Math.round(o+a)-t,u=Math.round(l+s)-n;1!==Math.abs(c)&&(o-=c),1!==Math.abs(u)&&(l-=u)}return k(r.left,r.top,o,l)}var w=function(){return"undefined"!==typeof SVGGraphicsElement?function(e){return e instanceof p(e).SVGGraphicsElement}:function(e){return e instanceof p(e).SVGElement&&"function"===typeof e.getBBox}}();function _(e){return e===p(e).document.documentElement}function x(e){return r?w(e)?y(e):C(e):m}function S(e){var t=e.x,n=e.y,i=e.width,r=e.height,a="undefined"!==typeof DOMRectReadOnly?DOMRectReadOnly:Object,s=Object.create(a.prototype);return f(s,{x:t,y:n,width:i,height:r,top:n,right:t+i,bottom:r+n,left:t}),s}function k(e,t,n,i){return{x:e,y:t,width:n,height:i}}var I=function(){function e(e){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=k(0,0,0,0),this.target=e}return e.prototype.isActive=function(){var e=x(this.target);return this.contentRect_=e,e.width!==this.broadcastWidth||e.height!==this.broadcastHeight},e.prototype.broadcastRect=function(){var e=this.contentRect_;return this.broadcastWidth=e.width,this.broadcastHeight=e.height,e},e}(),E=function(){function e(e,t){var n=S(t);f(this,{target:e,contentRect:n})}return e}(),D=function(){function e(e,t,n){if(this.activeObservations_=[],this.observations_=new i,"function"!==typeof e)throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=e,this.controller_=t,this.callbackCtx_=n}return e.prototype.observe=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!==typeof Element&&Element instanceof Object){if(!(e instanceof p(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)||(t.set(e,new I(e)),this.controller_.addObserver(this),this.controller_.refresh())}},e.prototype.unobserve=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!==typeof Element&&Element instanceof Object){if(!(e instanceof p(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)&&(t.delete(e),t.size||this.controller_.removeObserver(this))}},e.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},e.prototype.gatherActive=function(){var e=this;this.clearActive(),this.observations_.forEach((function(t){t.isActive()&&e.activeObservations_.push(t)}))},e.prototype.broadcastActive=function(){if(this.hasActive()){var e=this.callbackCtx_,t=this.activeObservations_.map((function(e){return new E(e.target,e.broadcastRect())}));this.callback_.call(e,t,e),this.clearActive()}},e.prototype.clearActive=function(){this.activeObservations_.splice(0)},e.prototype.hasActive=function(){return this.activeObservations_.length>0},e}(),A="undefined"!==typeof WeakMap?new WeakMap:new i,O=function(){function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=h.getInstance(),i=new D(t,n,this);A.set(this,i)}return e}();["observe","unobserve","disconnect"].forEach((function(e){O.prototype[e]=function(){var t;return(t=A.get(this))[e].apply(t,arguments)}}));var T=function(){return"undefined"!==typeof a.ResizeObserver?a.ResizeObserver:O}();t["default"]=T},1478:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.d(__webpack_exports__,{g$:function(){return tsToJs},oK:function(){return GetIDCardOnly},xj:function(){return loadCamera}});var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(7658),core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__),tsToJs={getElement:function Stirng(flag,photoId){var plugin;if(1==flag){console.log("人脸识别开始-----");var plugin=document.getElementById("facePlugin");console.log("plugin-----",plugin);var data="$=Action",temp=plugin.SendDataToADB("127.0.0.1",1352,15e3,data,data.length);if(console.log(temp+"-----===="),"undefined"===typeof temp)return null;var str=temp.split("$"),result=str[1].split("=#=")[1];console.log("result:"+result+"-----++++");var name=str[2].split("=#=")[1],sex=str[3].split("=#=")[1],cardNo=str[4].split("=#=")[1];console.log("cardNo:"+cardNo+"-----++++");var address=str[5].split("=#=")[1],birthday=str[6].split("=#=")[1],cardImg=str[8].split("=#=")[1],faceImg=str[9].split("=#=")[1],race=str[10].split("=#=")[1],regOrg=str[11].split("=#=")[1],validTime=str[12].split("=#=")[1],validTimeStart=validTime.split("-")[0],validTimeEnd=validTime.split("-")[1],objSfz={idCard:{info:{name:name.toString(),sex:sex.toString(),nation:race.toString(),birthday:birthday.toString(),address:address.toString(),cardId:cardNo.toString(),police:regOrg.toString(),validStart:validTimeStart.toString(),validEnd:validTimeEnd.toString(),sexCode:"",nationCode:""},headImage:cardImg.toString()},faceimg:faceImg.toString(),zt:""};return console.log("-------------------objSfz成功返回数据---------------------"),console.log("人脸识别结果===>",objSfz),objSfz}if(2==flag){plugin=document.getElementById("plugin");var temp2=plugin.On_OpenDevice(1001),obj=eval("("+temp2+")");return"undefined"!=typeof obj["照片"]&&(photoId&&document.getElementById(photoId)&&(document.getElementById(photoId).src="data:image/jpeg;base64,"+obj["照片"]),console.log(obj["身份证号2"]+"._____."),console.log(obj["照片2"]+"._____.-----------")),obj}if(3==flag){console.log("-----开始读取身份证信息-----");var plugin=document.getElementById("plugin"),temp2=plugin.On_OpenDevice(1001),obj=eval("("+temp2+")"),result={info:{name:obj["姓名"],sex:obj["性别"],nation:obj["名族"],birthday:obj["出生日期"],address:obj["地址"],cardId:obj["身份证号"],police:obj["发证机关"],validStart:obj["有效期开始"],validEnd:obj["有效期结束"],sexCode:"",nationCode:""},headImage:obj["照片"]};return console.log("-----身份证信息读取结果-----"),console.log(result),result}if(4==flag)return GetIDCardAndMatchImage()},getExportInfo:function(){var e="",t="";return $.ajaxSettings.async=!1,$.get("assets/xml/Export.xml",!1,(function(n){var i=[],r=[];$(n).find("ElementTable").each((function(){var e=$(this),t=e.attr("ColumnName"),n=e.attr("CaptionName");i.push(t),r.push(n)})),e=i.join(","),t=r.join(","),xmlxx={columNameStr:e,captionNameStr:t}})),$.ajaxSettings.async=!0,xmlxx},getAreaData:function(){$.ajaxSettings.async=!1;var e=[],t=[];return $.get("assets/xml/AreaData.xml",(function(n){$(n).find("ElementTable").each((function(){var n=$(this),i=n.attr("tableName"),r=n.children("DataBaseLink").attr("Name");e.push(i),t.push(r)}))})),$.ajaxSettings.async=!0,xmlxx={nameArray:e,dataBaseLinkArray:t},xmlxx},getAreaTable:function(){$.ajaxSettings.async=!1;var e=[];return $.get("assets/xml/AreaData.xml",(function(t){$(t).find("ElementTable").each((function(){var t=$(this),n=t.attr("tableName"),i=t.children("DataBaseLink").attr("Name");xmlxx={tableName:n,dataBaseLink:i},e.push(xmlxx)}))})),$.ajaxSettings.async=!0,e},getPhoto:function(e,t){document.getElementById(t).src="data:image/jpeg;base64,"+e},printImg:function(e){$("#"+e).jqprint()}};function loadCamera(){document.getElementById("IDCard_chrome");var e=document.getElementById("camera_row");e.innerHTML='<object clsid="{23D85CA3-E783-431E-A229-18BB6BEB9AD9}" type="application/x-itst-activex" width=320 height=240 name="FaceObj"></object>'}function GetIDCardOnly(){var e=document.getElementById("IDCard_chrome"),t=e.OpenDevice();if(0==t){t=e.ReadIDCardInfo();var n={info:{name:e.IDName,sex:e.IDSex,nation:e.IDFolk,birthday:e.IDBirth,address:e.IDAddress,cardId:e.IDNumber,police:e.IDOrgan,validStart:e.IDTermBegin.substring(0,4)+"."+e.IDTermBegin.substring(4,6)+"."+e.IDTermBegin.substring(6,8),validEnd:e.IDTermEnd.substring(0,4)+"."+e.IDTermEnd.substring(4,6)+"."+e.IDTermEnd.substring(6,8),sexCode:"",nationCode:""},headImage:e.IDPhoto64};return n}debug("一体机启动失败")}function GetIDCardAndMatchImage(){console.log("-----开启一体机功能-----");var e=document.getElementById("IDCard_chrome"),t=e.OpenDevice();if(0==t){t=e.ReadIDCardInfo();var n={idCard:{info:{name:e.IDName,sex:e.IDSex,nation:e.IDFolk,birthday:e.IDBirth,address:e.IDAddress,cardId:e.IDNumber,police:e.IDOrgan,validStart:e.IDTermBegin.substring(0,4)+"."+e.IDTermBegin.substring(4,6)+"."+e.IDTermBegin.substring(6,8),validEnd:e.IDTermEnd.substring(0,4)+"."+e.IDTermEnd.substring(4,6)+"."+e.IDTermEnd.substring(6,8),sexCode:"",nationCode:""},headImage:e.IDPhoto64},faceimg:"",zt:""};return MatchImage(n)}debug("一体机启动失败")}function MatchImage(e){var t=FaceObj.MatchFace(e.idCard.headImage),n=JSON.parse(t);return e.faceimg=n.image,e.zt=n.retinfo,console.log(e),e}},2823:function(e,t,n){var i=n(8563);e.exports=function(e,t,n){return void 0===n?i(e,t,!1):i(e,n,!1!==t)}},4592:function(e,t,n){var i=n(8563),r=n(2823);e.exports={throttle:i,debounce:r}},8563:function(e){e.exports=function(e,t,n,i){var r,a=0;function s(){var s=this,o=Number(new Date)-a,l=arguments;function c(){a=Number(new Date),n.apply(s,l)}function u(){r=void 0}i&&!r&&c(),r&&clearTimeout(r),void 0===i&&o>e?c():!0!==t&&(r=setTimeout(i?u:c,void 0===i?e-o:e))}return"boolean"!==typeof t&&(i=n,n=t,t=void 0),s}},2234:function(e,t,n){"use strict";e.exports=n.p+"img/idcardbg1.1f8e1fc6.gif"},4923:function(e,t,n){"use strict";e.exports=n.p+"img/idcardbg2.2e47b05f.gif"},5053:function(e,t,n){"use strict";e.exports=n.p+"img/img_blank_empty.92ddadbb.png"},7203:function(e){"use strict";e.exports=__WEBPACK_EXTERNAL_MODULE__7203__}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var n=__webpack_module_cache__[e]={id:e,loaded:!1,exports:{}};return __webpack_modules__[e].call(n.exports,n,n.exports,__webpack_require__),n.loaded=!0,n.exports}!function(){__webpack_require__.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return __webpack_require__.d(t,{a:t}),t}}(),function(){__webpack_require__.d=function(e,t){for(var n in t)__webpack_require__.o(t,n)&&!__webpack_require__.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}}(),function(){__webpack_require__.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){__webpack_require__.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}(),function(){__webpack_require__.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}}(),function(){__webpack_require__.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e}}(),function(){__webpack_require__.p=""}();var __webpack_exports__={};return function(){"use strict";if(__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:function(){return un}}),"undefined"!==typeof window){var e=window.document.currentScript,t=e&&e.src.match(/(.+\/)[^/]+\.js(\?.*)?$/);t&&(__webpack_require__.p=t[1])}var n=__webpack_require__(4720),i=__webpack_require__.n(n),r=function(){var e=this;e._self._c;return e._m(0)},a=[function(){var e=this,t=e._self._c;return t("div",{staticClass:"zs-empty"},[t("img",{attrs:{src:__webpack_require__(5053)}})])}],s={name:"zs-empty",props:{emptyTip:{default:"暂无数据",type:String}},methods:{}},o=s;function l(e,t,n,i,r,a,s,o){var l,c="function"===typeof e?e.options:e;if(t&&(c.render=t,c.staticRenderFns=n,c._compiled=!0),i&&(c.functional=!0),a&&(c._scopeId="data-v-"+a),s?(l=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"===typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(s)},c._ssrRegister=l):r&&(l=o?function(){r.call(this,(c.functional?this.parent:this).$root.$options.shadowRoot)}:r),l)if(c.functional){c._injectStyles=l;var u=c.render;c.render=function(e,t){return l.call(t),u(e,t)}}else{var d=c.beforeCreate;c.beforeCreate=d?[].concat(d,l):[l]}return{exports:e,options:c}}var c=l(o,r,a,!1,null,"88c40896",null),u=c.exports;u.install=e=>{e.component(u.name,u)};var d=u,h=function(){var e=this,t=e._self._c;return e.tip?t("el-tooltip",{staticClass:"id-card-reader-demo",attrs:{content:e.tip,placement:"top"}},[t("el-button",e._b({on:{click:e.handleClick}},"el-button",{disabled:e.disabled,icon:e.icon,loading:e.loading,plain:e.plain,round:e.round,size:e.size,type:e.type,class:e._className},!1),[e._t("default",(function(){return[e._v(e._s(e.label))]}))],2)],1):t("el-button",e._b({on:{click:e.handleClick}},"el-button",{disabled:e.disabled,icon:e.icon,loading:e.loading,plain:e.plain,round:e.round,size:e.size,type:e.type,class:e._className},!1),[e._t("default",(function(){return[e._v(e._s(e.label))]}))],2)},f=[],p=(__webpack_require__(7658),{name:"id-card-reader-demo",props:{label:{default:"",type:String},tip:{default:"",type:String},className:{default:"",type:String},size:{default:"mini",type:String},type:{default:"primary",type:String},plain:{default:!1,type:Boolean},round:{default:!1,type:Boolean},loading:{default:!1,type:Boolean},icon:{default:"el-icon-postcard",type:String},disabled:{default:!1,type:Boolean}},computed:{_className(){const e=["z-button"];return"text"===this.type&&e.push("i-font-size"),this.className?("string"===typeof this.className?e.push(this.className):e.push(...this.className),e):e}},methods:{handleClick(){const e={info:{name:"",sex:"",nation:"",birthday:"",address:"",cardId:"",police:"",validStart:"",validEnd:""},headImage:""};this.$emit("click",e)}}}),m=p,g=l(m,h,f,!1,null,"3d89866c",null),v=g.exports;v.install=e=>{e.component(v.name,v)};var b=v,y=function(){var e=this,t=e._self._c;return t("div",{staticClass:"scanner-high-camera-container"},["dialog"===e.openMode?t("div",{staticClass:"scanner-high-camera-button"},[e.tip?t("el-tooltip",{staticClass:"id-card-reader-demo",attrs:{content:e.tip,placement:"top"}},[t("el-button",e._b({on:{click:e.openScanDialog}},"el-button",{disabled:e.disabled,icon:e.icon,loading:e.loading,plain:e.plain,round:e.round,size:e.size,type:e.type,class:e._className},!1),[e._t("default",(function(){return[e._v(e._s(e.label))]}))],2)],1):t("el-button",e._b({on:{click:e.openScanDialog}},"el-button",{disabled:e.disabled,icon:e.icon,loading:e.loading,plain:e.plain,round:e.round,size:e.size,type:e.type,class:e._className},!1),[e._t("default",(function(){return[e._v(e._s(e.label))]}))],2),t("el-dialog",{staticClass:"scanner-high-camera-dialog",attrs:{title:"影像扫描",visible:e.dialogVisible,width:"60%"},on:{"update:visible":function(t){e.dialogVisible=t}}},[e.dialogVisible?t("scanner-high-camera-component",{on:{"send-scanner-result":e.setScannerResult},scopedSlots:e._u([{key:"action",fn:function(){return[e._t("right-action")]},proxy:!0}],null,!0)}):e._e(),t("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[t("el-button",{attrs:{size:"small"},on:{click:function(t){e.dialogVisible=!1}}},[e._v("取 消")]),t("el-button",{attrs:{size:"small",type:"primary"},on:{click:e.sendScannerResult}},[e._v("确 定")])],1)],1)],1):t("scanner-high-camera-component",{on:{"send-scanner-result":e.setScannerResult},scopedSlots:e._u([{key:"action",fn:function(){return[e._t("right-action")]},proxy:!0}],null,!0)})],1)},C=[],w=function(){var e=this,t=e._self._c;return t("div",{staticClass:"scanner-high-camera-component"},[t("div",{staticClass:"scanner-result-content"},[t("div",{staticClass:"content-main flex-1"},[e.loadSuccess?t("div",{staticClass:"load-success"},[t("img",{attrs:{id:"photo",src:e.scannerResultSrc}})]):t("div",{staticClass:"load-error"},[t("i",{staticClass:"el-icon-s-cooperation"}),t("p",[e._v("请先安装插件")])])]),t("div",{staticClass:"handle-action"},[t("el-select",{staticClass:"select",attrs:{size:"small"},on:{change:e.selectChange},model:{value:e.camera,callback:function(t){e.camera=t},expression:"camera"}},e._l(e.cameras,(function(e){return t("el-option",{key:e.value,attrs:{label:e.name,value:e.value}})})),1),e._l(e.buttonList,(function(n){return[t("el-button",{key:n.name,attrs:{type:"primary",size:"small"},on:{click:function(t){return e.handleAction(n.name)}}},[e._v(e._s(n.label))]),e._t("action")]}))],2)])])},_=[];const x="data:image/jpeg;base64,";var S={name:"scanner-high-camera-component",data:()=>({totalTimeLength:0,timeLength:"",timer:0,str1:"",str2:"",webSocket:{},scannerResultSrc:"",loadSuccess:!0,camera:0,cameras:[{name:"文档",value:0},{name:"照片",value:1}],buttonList:[{label:"拍照",name:"take-pictures"}]}),mounted(){this.webSocket=new WebSocket("ws://127.0.0.1:1818"),window.onbeforeunload=()=>{this.webSocket.send("bStopPlay()"),this.webSocket.send("bStopPlay4()")},this.webSocket.onerror=e=>{this.onError(e)},this.webSocket.onopen=e=>{this.onOpen(e)},this.webSocket.onclose=e=>{this.onClose(e),this.webSocket.send("bStopPlay()")},this.webSocket.onmessage=e=>{this.onMessage(e)},setTimeout((()=>{this.handleAction("start-main")}),800)},destroyed(){this.handleAction("stop"),this.webSocket.close()},methods:{selectChange(e){let t=1===e?"start-vice":"start-main";this.handleAction(t)},handleAction(e){switch(e){case"start-main":this.StartPlay_onclick();break;case"rotation":this.start("bStartPlayRotate(90)");break;case"start-vice":this.start("bStartPlay2");break;case"stop":this.start("bStopPlay");break;case"autofocus":this.start("AutoFocus");break;case"Black edge":this.start("vSetDelHBFlag(true)");break;case"base64":this.start("sGetBase64");break;case"start-record":this.start("bStartRec(d:\\test.avi)");break;case"stop-record":this.start("bStopRec");break;case"take-pictures":this.start("bSaveJPG(D:\\,Photo)"),this.$emit("send-scanner-result",this.scannerResultSrc);break}},timeGo(){this.totalTimeLength++;let e=0,t=0,n=0;e=Math.floor(this.totalTimeLength/3600),t=Math.floor(this.totalTimeLength/60%60),n=Math.floor(this.totalTimeLength%60),this.timeLength=e+"时"+t+"分"+n+"秒"},onMessage(e){e.data.indexOf("BarCodeTransferBegin")>=0?console.log(e.data.replace("BarCodeTransferBegin","").replace("BarCodeTransferEnd","")):e.data.indexOf("BeginbSaveJPG")>=0?(this.str1=e.data.replace("BeginbSaveJPG","").replace("EndbSaveJPG",""),console.log(this.str1)):e.data.indexOf("BeginbStopPlay")>=0?(console.log(e.data),console.log(e.data.replace("BeginbStopPlay","").replace("EndbStopPlay",""))):e.data.indexOf("BeginvSetResolution")>=0?console.log(e.data.replace("BeginvSetResolution","").replace("EndvSetResolution","")):e.data.indexOf("BeginvSetRemoveGBFlag")>=0?console.log(e.data.replace("BeginvSetRemoveGBFlag","").replace("EndvSetRemoveGBFlag","")):e.data.indexOf("BeginbFileExist")>=0?console.log(e.data.replace("BeginbFileExist","").replace("EndbFileExist","")):e.data.indexOf("BeginbStartPlay2")>=0?console.log(e.data.replace("BeginbStartPlay2","").replace("EndbStartPlay2","")):e.data.indexOf("BeginbStartPlay")>=0?console.log(e.data.replace("BeginbStartPlay","").replace("EndbStartPlay","")):e.data.indexOf("BeginbSetMode")>=0?console.log(e.data.replace("BeginbSetMode","").replace("EndbSetMode","")):this.scannerResultSrc=`${x}${e.data}`},onError(e){console.log("error",e.data),this.loadSuccess=!1},onClose(e){this.webSocket.send("bStopPlay()"),this.webSocket.send("bStopPlay4()")},onOpen(e){},start(e){return"bStartRec(d:\\test.avi)"==e&&(this.timer=window.setInterval(this.timeGo,1e3)),"bStopRec"==e&&(window.clearInterval(this.timer),this.totalTimeLength=0,console.log("录屏结束")),this.webSocket.send(e),!1},vout_OnClick(){},Stop_onclick(){this.webSocket.send("bStopPlay()")},StartPlay_onclick(){this.webSocket.send("vSetResolution(8)"),this.webSocket.send("bStartPlay()")}}},k=S,I=l(k,w,_,!1,null,"e24dd0c8",null),E=I.exports,D={name:"scanner-high-camera-jieyu",components:{ScannerHighCameraComponent:E},props:{openMode:{default:"",type:String},label:{default:"",type:String},tip:{default:"",type:String},className:{default:"",type:String},size:{default:"",type:String},type:{default:"",type:String},plain:{default:!1,type:Boolean},round:{default:!1,type:Boolean},loading:{default:!1,type:Boolean},icon:{default:"",type:String},disabled:{default:!1,type:Boolean}},data:()=>({dialogVisible:!1,scannerResult:""}),computed:{_className(){const e=["z-button"];return"text"===this.type&&e.push("i-font-size"),this.className?("string"===typeof this.className?e.push(this.className):e.push(...this.className),e):e}},methods:{openScanDialog(){this.dialogVisible=!0},setScannerResult(e){this.scannerResult=e,"dialog"!==this.openMode&&this.$emit("send-scanner-result",this.scannerResult)},sendScannerResult(){this.scannerResult&&(this.$emit("send-scanner-result",this.scannerResult),this.dialogVisible=!1)}}},A=D,O=l(A,y,C,!1,null,"ffa79d1e",null),T=O.exports;T.install=e=>{e.component(T.name,T)};var M,N=T,P=function(){var e=this,t=e._self._c;return t("div",{staticClass:"scanner-high-camera-container"},["dialog"===e.openMode?t("div",{staticClass:"scanner-high-camera-button"},[e.tip?t("el-tooltip",{staticClass:"id-card-reader-demo",attrs:{content:e.tip,placement:"top"}},[t("el-button",e._b({on:{click:e.openScanDialog}},"el-button",{disabled:e.disabled,icon:e.icon,loading:e.loading,plain:e.plain,round:e.round,size:e.size,type:e.type,class:e._className},!1),[e._t("default",(function(){return[e._v(e._s(e.label))]}))],2)],1):t("el-button",e._b({on:{click:e.openScanDialog}},"el-button",{disabled:e.disabled,icon:e.icon,loading:e.loading,plain:e.plain,round:e.round,size:e.size,type:e.type,class:e._className},!1),[e._t("default",(function(){return[e._v(e._s(e.label))]}))],2),t("el-dialog",{staticClass:"scanner-high-camera-dialog",attrs:{title:"影像扫描",visible:e.dialogVisible,width:"60%"},on:{"update:visible":function(t){e.dialogVisible=t}}},[e.dialogVisible?t("scanner-eloam-component",{on:{"send-scanner-result":e.setScannerResult},scopedSlots:e._u([{key:"action",fn:function(){return[e._t("right-action")]},proxy:!0}],null,!0)}):e._e(),t("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[t("el-button",{attrs:{size:"small"},on:{click:function(t){e.dialogVisible=!1}}},[e._v("取 消")]),t("el-button",{attrs:{size:"small",type:"primary"},on:{click:e.sendScannerResult}},[e._v("确 定")])],1)],1)],1):t("scanner-eloam-component",{on:{"send-scanner-result":e.setScannerResult},scopedSlots:e._u([{key:"action",fn:function(){return[e._t("right-action")]},proxy:!0}],null,!0)})],1)},j=[],R=function(){var e=this,t=e._self._c;return t("div",{staticClass:"scanner-high-camera-component"},[t("div",{staticClass:"scanner-result-content"},[t("div",{staticClass:"content-main flex-1"},[e.loadSuccess?t("div",{staticClass:"load-success"},[t("img",{staticStyle:{width:"800px",height:"600px"},attrs:{id:"photo",src:e.scannerVideoSrc}})]):t("div",{staticClass:"load-error"},[t("i",{staticClass:"el-icon-s-cooperation"}),t("p",[e._v("请先安装插件")])])]),t("div",{staticClass:"handle-action"},[t("el-select",{staticClass:"select",attrs:{size:"small"},on:{change:e.selectChange},model:{value:e.camera,callback:function(t){e.camera=t},expression:"camera"}},e._l(e.cameras,(function(e){return t("el-option",{key:e.value,attrs:{label:e.name,value:e.value}})})),1),e._l(e.buttonList,(function(n){return[t("el-button",{key:n.name,attrs:{type:"primary",size:"small"},on:{click:function(t){return e.handleAction(n.name)}}},[e._v(e._s(n.label))]),e._t("action")]}))],2)])])},L=[];function F(e){return F="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},F(e)}function $(e,t){if("object"!==F(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var i=n.call(e,t||"default");if("object"!==F(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function B(e){var t=$(e,"string");return"symbol"===F(t)?t:String(t)}function V(e,t,n){return t=B(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class z{static startConnect(e,t,n={}){return new Promise(((i,r)=>{let a=new XMLHttpRequest;if(e=e.toUpperCase(),"GET"==e){let e="";Object.keys(n).forEach((t=>{e+=`${t}=${n[t]}&`})),e=e.substring(0,e.lastIndexOf("&")),t=t+"?"+e}else"POST"==e||r("error method: Currently only supported GET or POST method!");a.open(e,t,!0),a.setRequestHeader("Accept","application/json"),"GET"===e?a.send():a.send(JSON.stringify(n)),a.onreadystatechange=function(){if(4===this.readyState)if(200===this.status){let e=this.response;"object"!==typeof e&&(e=JSON.parse(e)),i(e)}else r(a)}}))}static async get(e){let t=await z.startConnect("GET",e);return t}static async post(e,t){let n=await z.startConnect("POST",e,t);return n}}(function(e){e["ScannerMainCamera_Base64"]="ScannerMainCamera_Base64",e["ScannerSecondaryCamera_Base64"]="ScannerSecondaryCamera_Base64",e["ReadIDCard_Base64"]="ReadIDCard_Base64"})(M||(M={}));M.ScannerMainCamera_Base64,M.ScannerSecondaryCamera_Base64,M.ReadIDCard_Base64;class W{static get mainCameraUrl(){return this.baseServiceUrl+"/video=stream&camidx=0"}static get secondaryCameraUrl(){return this.baseServiceUrl+"/video=stream&camidx=1"}static async read(e){let t={},n="";switch(e){case M.ScannerMainCamera_Base64:n=this.baseServiceUrl+"/video=grabimage",t={filepath:"base64",rotate:"0",deskew:"1",camidx:"0",ColorMode:"0",quality:"0"};break;case M.ScannerSecondaryCamera_Base64:n=this.baseServiceUrl+"/video=grabimage",t={filepath:"base64",rotate:"0",deskew:"0",camidx:"1",ColorMode:"0",quality:"0"};break;case M.ReadIDCard_Base64:n=this.baseServiceUrl+"/card=idcard";break}let i=await z.post(n,t);return i}static async scanByMainCamera(){const e=await W.read(M.ScannerMainCamera_Base64);return e.photoBase64}static async scanBySecondaryCamera(){const e=await W.read(M.ScannerSecondaryCamera_Base64);return e.photoBase64}static async idCardRead(){const e=await W.read(M.ReadIDCard_Base64);let{name:t,sex:n,birthday:i,address:r,cardID:a,nationCode:s,photoBase64:o,issueOrgan:l,validStart:c,validEnd:u}=e.IDCardInfo;const d={info:{name:t,sex:n,birthday:i.replace("-","").replace("-",""),address:r,cardId:a,nation:s,police:l,validStart:c,validEnd:u},headImage:o};return d}}V(W,"baseServiceUrl","http://127.0.0.1:38088");const H="data:image/jpg;base64,";var q={name:"scanner-eloam-component",data:()=>({totalTimeLength:0,timeLength:"",timer:0,str1:"",str2:"",webSocket:{},scannerVideoSrc:"",scannerResultSrc:"",loadSuccess:!0,camera:0,cameras:[{name:"文档",value:0},{name:"照片",value:1}],buttonList:[{label:"拍照",name:"take-pictures"}]}),created(){this.scannerVideoSrc=W.mainCameraUrl},methods:{selectChange(e){let t=1===e?"start-vice":"start-main";this.handleAction(t)},handleAction(e){switch(e){case"start-main":this.scannerVideoSrc=W.mainCameraUrl;break;case"start-vice":this.scannerVideoSrc=W.secondaryCameraUrl;break;case"take-pictures":this.takePictures();break}},async takePictures(){if(0===this.camera){const e=await W.scanByMainCamera();this.$emit("send-scanner-result",`${H}${e}`)}else{const e=await W.scanBySecondaryCamera();this.$emit("send-scanner-result",`${H}${e}`)}}}},U=q,G=l(U,R,L,!1,null,"428304e7",null),K=G.exports,Q={name:"scanner-eloam",components:{ScannerEloamComponent:K},props:{openMode:{default:"",type:String},label:{default:"",type:String},tip:{default:"",type:String},className:{default:"",type:String},size:{default:"",type:String},type:{default:"",type:String},plain:{default:!1,type:Boolean},round:{default:!1,type:Boolean},loading:{default:!1,type:Boolean},icon:{default:"",type:String},disabled:{default:!1,type:Boolean}},data:()=>({dialogVisible:!1,scannerResult:""}),computed:{_className(){const e=["z-button"];return"text"===this.type&&e.push("i-font-size"),this.className?("string"===typeof this.className?e.push(this.className):e.push(...this.className),e):e}},methods:{openScanDialog(){this.dialogVisible=!0},setScannerResult(e){this.scannerResult=e,"dialog"!==this.openMode&&this.$emit("send-scanner-result",this.scannerResult)},sendScannerResult(){this.scannerResult&&(this.$emit("send-scanner-result",this.scannerResult),this.dialogVisible=!1)}}},Y=Q,Z=l(Y,P,j,!1,null,"a80d3a26",null),X=Z.exports;X.install=e=>{e.component(X.name,X)};var J,ee=X,te=function(){var e=this,t=e._self._c;return t("div",{staticClass:"scanner-camera-container"},["dialog"===e.openMode?t("div",{staticClass:"scanner-camera-button"},[e.tip?t("el-tooltip",{staticClass:"id-card-reader-demo",attrs:{content:e.tip,placement:"top"}},[t("el-button",e._b({on:{click:e.openScanDialog}},"el-button",{disabled:e.disabled,icon:e.icon,loading:e.loading,plain:e.plain,round:e.round,size:e.size,type:e.type,class:e._className},!1),[e._t("default",(function(){return[e._v(e._s(e.label))]}))],2)],1):t("el-button",e._b({on:{click:e.openScanDialog}},"el-button",{disabled:e.disabled,icon:e.icon,loading:e.loading,plain:e.plain,round:e.round,size:e.size,type:e.type,class:e._className},!1),[e._t("default",(function(){return[e._v(e._s(e.label))]}))],2),t("el-dialog",{staticClass:"scanner-camera-dialog",attrs:{title:"影像扫描",visible:e.dialogVisible,width:"60%"},on:{"update:visible":function(t){e.dialogVisible=t}}},[e.dialogVisible?t("scanner-camera-component",{attrs:{"machine-type":e.machineType},on:{"send-scanner-result":e.setScannerResult},scopedSlots:e._u([{key:"action",fn:function(){return[e._t("right-action")]},proxy:!0}],null,!0)}):e._e(),t("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[t("el-button",{attrs:{size:"small"},on:{click:function(t){e.dialogVisible=!1}}},[e._v("取 消")]),t("el-button",{attrs:{size:"small",type:"primary"},on:{click:e.sendScannerResult}},[e._v("确 定")])],1)],1)],1):t("scanner-camera-component",{attrs:{"machine-type":e.machineType},on:{"send-scanner-result":e.setScannerResult},scopedSlots:e._u([{key:"action",fn:function(){return[e._t("right-action")]},proxy:!0}],null,!0)})],1)},ne=[],ie=function(){var e=this,t=e._self._c;return t("div",{staticClass:"scanner-high-camera-component"},[t("div",{staticClass:"scanner-result-content"},[t("div",{staticClass:"content-main flex-1"},[e.loadSuccess?t("div",{staticClass:"load-success"},[t("img",{staticStyle:{width:"800px",height:"600px"},attrs:{id:"photo",src:e.scannerVideoSrc}})]):t("div",{staticClass:"load-error"},[t("i",{staticClass:"el-icon-s-cooperation"}),t("p",[e._v("请先安装插件")])])]),t("div",{staticClass:"handle-action"},[t("el-select",{staticClass:"select",attrs:{size:"small"},on:{change:e.selectChange},model:{value:e.camera,callback:function(t){e.camera=t},expression:"camera"}},e._l(e.cameras,(function(e){return t("el-option",{key:e.value,attrs:{label:e.name,value:e.value}})})),1),[e._l(e.buttonList,(function(n){return[e._isShowButton(n.name)?t("el-button",{key:n.name,attrs:{type:"primary",size:"small"},on:{click:function(t){return e.handleAction(n.name)}}},[e._v(e._s(n.label))]):e._e()]})),e._t("action")]],2)])])},re=[];class ae{static startConnect(e,t,n={},i={}){return new Promise(((r,a)=>{let s=new XMLHttpRequest;if(e=e.toUpperCase(),"GET"==e){let e="";Object.keys(n).forEach((t=>{e+=`${t}=${n[t]}&`})),e=e.substring(0,e.lastIndexOf("&")),t=e?t+"?"+e:t}else"POST"==e||a("error method: Currently only supported GET or POST method!");s.open(e,t,!0),s.setRequestHeader("Accept","application/json"),i&&Object.keys(i).forEach((e=>{s.setRequestHeader(e,i[e])})),"GET"===e?s.send():s.send(JSON.stringify(n)),s.onreadystatechange=function(){if(4===this.readyState)if(200===this.status){let t=this.response;if("object"!==typeof t)try{t=JSON.parse(t)}catch(e){}r(t)}else a(s)}}))}static async get(e,t={}){let n=await ae.startConnect("GET",e,{},t);return n}static async post(e,t,n={}){let i=await ae.startConnect("POST",e,t,n);return i}}(function(e){e["ScannerCameraLinuxInit"]="ScannerCameraLinuxInit",e["ScannerCameraLinuxStartPreview"]="ScannerCameraLinuxStartPreview",e["ScannerCameraLinuxGetFrame"]="ScannerCameraLinuxGetFrame",e["ScannerCameraDeskew_Base64"]="ScannerCameraDeskew_Base64",e["ScannerCameraMerge_Base64"]="ScannerCameraMerge_Base64",e["ScannerCameraRotate"]="ScannerCameraRotate",e["ScannerMainCamera_Base64"]="ScannerMainCamera_Base64",e["ScannerSecondaryCamera_Base64"]="ScannerSecondaryCamera_Base64",e["ReadIDCard_Base64"]="ReadIDCard_Base64",e["StopCamera"]="stopCamera"})(J||(J={}));J.ScannerMainCamera_Base64,J.ScannerSecondaryCamera_Base64,J.ReadIDCard_Base64;class se{static get mainCameraUrl(){return this._isLinux?this.baseLinuxServiceUrl+"/StartPreview?dev_idx=0&res_id=0":this.baseServiceUrl+"/video=stream&camidx=0"}static get secondaryCameraUrl(){return this._isLinux?this.baseLinuxServiceUrl+"/StartPreview?dev_idx=1&res_id=0":this.baseServiceUrl+"/video=stream&camidx=1"}static async read(e,t){let n={},i="",r="";switch(e){case J.ScannerCameraLinuxInit:i=`${this.baseLinuxServiceUrl}/GetAllDisplayInfo`,r="get";break;case J.ScannerCameraLinuxStartPreview:i=`${this.baseLinuxServiceUrl}/StartPreview?dev_idx=${t}&res_id=0`,r="get";break;case J.ScannerCameraLinuxGetFrame:i=`${this.baseLinuxServiceUrl}/getFrame`,r="get";break;case J.ScannerCameraRotate:if(se._isLinux){let e=t/90;i=this.baseLinuxServiceUrl+`/Rotate?count=${e}`,r="get"}else i=this.baseServiceUrl+"/video=rotate",n={camidx:"0",rotate:t.toString()},r="post";break;case J.ScannerCameraDeskew_Base64:se._isLinux?(i=`${this.baseLinuxServiceUrl}/EnableDeskImage?enable=${t}`,r="get"):(i=this.baseServiceUrl+"/dvideo=cameradeskew",n={camidx:"0",open:t},r="post");break;case J.ScannerCameraMerge_Base64:this._isLinux?(i=`${this.baseLinuxServiceUrl}/composeIDcardPic?image1=${t.list[0]}&image2=${t.list[1]}`,r="get"):(i=this.baseServiceUrl+"/compose=photos",n={outputfilepath:"",outputmaxwidth:"3000",inputimagetype:"1",outputimagetype:"0",isIDCardCompose:t.type,imagelist:t.list.toString()},r="post");break;case J.ScannerMainCamera_Base64:this._isLinux?(i=this.baseLinuxServiceUrl+"/getPic?filepath=/tmp",r="get"):(i=this.baseServiceUrl+"/video=grabimage",n={filepath:"base64",rotate:"0",deskew:t,deskewval:"20",camidx:"0",ColorMode:"0",quality:"0",bIsPrint1to1:"0"},r="post");break;case J.ScannerSecondaryCamera_Base64:this._isLinux?(i=this.baseLinuxServiceUrl+"/getPic?filepath=/tmp",r="get"):(i=this.baseServiceUrl+"/video=grabimage",n={filepath:"",rotate:"0",deskew:"0",deskewval:"0",camidx:"1",ColorMode:"0",quality:"0",bIsPrint1to1:"0"},r="post");break;case J.StopCamera:this._isLinux?(i=this.baseLinuxServiceUrl+"/StopPreview?dev_idx=0",r="get"):(i=this.baseServiceUrl+" /video=close",n={camidx:"0"},r="post");break;case J.ReadIDCard_Base64:i=this.baseServiceUrl+"/card=idcard",r="post";break}let a=await ae[r](i,n);return a}static async initLinuxCamera(){await se.read(J.ScannerCameraLinuxInit)}static async startPreview(e){return await se.read(J.ScannerCameraLinuxStartPreview,e)}static async getEloamFrame(){return await se.read(J.ScannerCameraLinuxGetFrame)}static async scanByMainCamera(e){const t=await se.read(J.ScannerMainCamera_Base64,e);return this._isLinux,t}static async scanBySecondaryCamera(){const e=await se.read(J.ScannerSecondaryCamera_Base64);return this._isLinux?e.data.img:e.photoBase64}static async mergeImage(e,t){const n=await se.read(J.ScannerCameraMerge_Base64,{list:e,type:t});return n.base64||n.data}static async scanByCamera(e,t,n=!1){switch(e){case"main":let e=await this.scanByMainCamera(t);return n?this._isLinux?e.data.path:e.photoBase64:this._isLinux?e.data.img:e.photoBase64;case"vice":return this.scanBySecondaryCamera()}}static async turnOnTheCamera(){}static async stopCamera(){await se.read(J.StopCamera)}static async idCardRead(){const e=await se.read(J.ReadIDCard_Base64);var t=e.IDCardInfo,n=(t.name||"").trim(),i=(t.enname||"").trim(),r=(t.cnname||"").trim(),a=t.sex,s=t.birthday,o=t.address,l=t.cardID,c=t.nationCode,u=t.issueOrgan,d=t.photoBase64,h=t.validStart,f=t.validEnd,p=t.cardType,m="",g="",v="1",b="中国";2!=p&&4!=p||(g=i,m=r||"无中文姓名",n="无中文姓名"===r?i:r||i,u="中华人民共和国国家移民管理局",v="9",b=c,c="");const y={info:{cardType:v,nationality:b,name:n.trim(),chineseName:m.trim(),englishName:g,sex:a,birthday:s,address:o,cardId:l,nation:c,police:u,validStart:h,validEnd:f},headImage:d};return y}}V(se,"baseServiceUrl","http://127.0.0.1:38088"),V(se,"baseLinuxServiceUrl","http://127.0.0.1:6543"),V(se,"_isLinux",String(navigator.platform).indexOf("Linux")>-1);const oe="scanner-camera-refresh-photo-event",le="sign-photo-event";class ce extends Event{constructor(e){super(oe),V(this,"scannerResultUrl",""),this.scannerResultUrl=e}}class ue extends Event{constructor(e){super(le),V(this,"signResultUrl",""),this.signResultUrl=e}}class de{static getGenderByIdNumber(e){if(e){let t;if(18==e.length?t=e.charAt(16):15==e.length&&(t=e.charAt(14)),t&&!isNaN(t))return parseInt(t)%2==0?"女":"男"}return""}static getBirthdayByIdNumber(e){if(e&&e&&e.length>13){const t=e.substring(6,10),n=e.substring(10,12),i=e.substring(12,14);return t+"-"+n+"-"+i}return""}static getAgeByIdNumber(e){if(e){const t=new Date,n=t.getMonth()+1,i=t.getDate();let r=t.getFullYear()-e.substring(6,10)-1;return(e.substring(10,12)<n||e.substring(10,12)===n&&e.substring(12,14)<=i)&&r++,r<=0&&(r=1),r}return""}static isForeignersIdCard(e){let t=/^[a-zA-Z]{3}[0-9]{12}$/;return t.test(e)||e.startsWith("9")}}var he,fe,pe,me;(function(e){e["ScannerCamera"]="scannerCamera",e["InteractiveTerminal"]="interactiveTerminal"})(he||(he={})),function(e){e["ScannerMainCamera_Base64"]="main",e["ScannerSecondaryCamera_Base64"]="vice",e["TakePhoto_Base64"]="takePhoto",e["ScannerReadCard"]="ScannerReadCard",e["InitParams"]="InitParams",e["GetSignName_Base64"]="GetSignName_Base64",e["ReadIDCard_Base64"]="ReadIDCard_Base64",e["FaceValidateWithIdCard_Base64"]="FaceValidateWithIdCard_Base64",e["FingerPrint_Base64"]="FingerPrint_Base64",e["ScanQRCode"]="ScanQRCode",e["Evaluate"]="Evaluate",e["StartProjection"]="StartProjection",e["EndProjection"]="EndProjection"}(fe||(fe={}));class ge{static startConnect(e){if(this.ws&&this.ws.readyState===WebSocket.CONNECTING)return this;let t="";switch(e){case he.InteractiveTerminal:t=this.interactiveTerminalUrl;break;case he.ScannerCamera:t=this.scannerCameraUrl;break}const n=new WebSocket(t);let i;const r=new Promise((e=>{i=e}));return n.onopen=()=>{i(!0)},n.onmessage=e=>{this.handleMessage(e)},n.onclose=()=>this.handleClose(),n.onerror=e=>this.handleError(e),this.ws=n,r}static handleError(e){for(const t in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("handleError")}));if(e.target.url&&!e.target.url.includes(this.interactiveTerminalUrl))throw Error("统一插件平台捷宇设备功能加载失败")}static handleClose(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("close")}))}static handleMessage(e){let t="";if(e.origin===this.interactiveTerminalUrl){try{t=JSON.parse(e.data)}catch(n){t=""}this.requestStore.forEach((({resolve:e})=>{e(t)})),this.requestStore=[],this.ws.close()}else{if(t=e.data,!t.startsWith("BarCode")&&!t.startsWith("Begin")){const e=new ce(t);return window.dispatchEvent(e)}(t.indexOf("BeginbSaveJPGEx")>=0||t.indexOf("BeginReadCard")>=0)&&(this.requestStore.forEach((({resolve:e})=>{e(t)})),this.requestStore=[])}}static async read(e,t,n){if(await this.startConnect(e),1===this.ws.readyState){let e="";switch(t){case fe.ScannerMainCamera_Base64:this.ws.send("vSetResolution(7)"),this.ws.send("bStopPlay()"),this.ws.send("bStartPlay()"),this.ws.send("bSetMode(3)"),e="vSetOpenInpain(1)";break;case fe.ScannerSecondaryCamera_Base64:e="bStartPlay2";break;case fe.TakePhoto_Base64:e="bSaveJPGEx";break;case fe.ScannerReadCard:e="ReadCard(1001, C:Doccamera)";break;case fe.InitParams:e=JSON.stringify({projectCode:n.projectCode,type:181});break;case fe.GetSignName_Base64:e=JSON.stringify({type:3,Timeout:60,Location:"0,1,450,500|1,1,450,500",PDFPath:n.PDFPath,Retain:"test",XmlPath:""});break;case fe.ReadIDCard_Base64:e=JSON.stringify({type:4});break;case fe.FaceValidateWithIdCard_Base64:e=JSON.stringify({type:5});break;case fe.FingerPrint_Base64:e=JSON.stringify({FileFullName:"d:\\Fingerprint.png",TimeOut:60,type:12});break;case fe.ScanQRCode:e=JSON.stringify({type:61});break;case fe.StartProjection:e=JSON.stringify({type:82});break;case fe.EndProjection:e=JSON.stringify({type:83});break;case fe.Evaluate:e=JSON.stringify({type:90,URL:n.URL});break}return this.ws.send(e),new Promise(((e,t)=>{this.requestStore||(this.requestStore=[]),this.requestStore.push({resolve:e,reject:t})}))}if(t!==fe.InitParams)throw Error("统一插件平台设备未准备完成")}static async turnOnTheCamera(e){this.ws&&this.ws.close(),await ge.read(he.ScannerCamera,e)}static async scanByCamera(){let e=await ge.read(he.ScannerCamera,fe.TakePhoto_Base64);return e.replace("BeginbSaveJPGEx","").replace("EndbSaveJPGEx","")}static async initParams(){this.ws&&this.ws.close();let e="ls8t1IYtBhOg5kwajaZsmeim/GIw0PY6NEoJ2cbNoptx678YKIqWaRVe0XPy1u5/cXLuXKW/Vufptwgo8Gc/lHMHbqiOHj7ySAqb9VCvP9KI1HAoqzPMpueyQhJskyfGk+L8/9dKK5/rySTLDuT4Un0W1o/1p9D41EDPwkAm2YY=";await ge.read(he.InteractiveTerminal,fe.InitParams,{projectCode:e})}static async signNameRead(e){let t=await ge.read(he.InteractiveTerminal,fe.GetSignName_Base64,{PDFPath:e});if(!t)throw Error("未匹配可用的捷宇信息交互终端设备");if(0!==t.ret)throw Error("读取二代身份证失败,返回值:"+t.ret+",错误信息:"+t.errMsg);return t}static async idCardReadByScanner(){let e=await ge.read(he.ScannerCamera,fe.ScannerReadCard);if(!e)throw Error("未匹配可用的捷宇高拍仪设备");let t=JSON.parse(e.replace("BeginReadCard","").replace("EndReadCard",""));if(1!==t.result)throw Error("读取二代身份证失败,返回值:"+t.ret+",错误信息:"+t.errMsg);console.log(t);let{Name:n,EnglishName:i,Sex:r,BirthDate:a,Address:s,IdNo:o,Folk:l,Agency:c,Valid:u,PhotoB64:d}=t,[h,f]=u.split("-"),p="",m="1",g="中国",v=de.isForeignersIdCard(o);v&&(m="9",p=n,n="无中文姓名"===n?i:n,c="中华人民共和国国家移民管理局",g=l,l="");const b={info:{cardType:m,nationality:g,name:n,chineseName:p,englishName:i,sex:r,birthday:a,address:s,cardId:o,nation:l,police:c,validStart:h,validEnd:f},headImage:d};return console.log(b),b}static async idCardRead(){let e=await ge.read(he.InteractiveTerminal,fe.ReadIDCard_Base64);if(!e)throw Error("未匹配可用的捷宇信息交互终端设备");if(0!==e.ret)throw Error("读取二代身份证失败,返回值:"+e.ret+",错误信息:"+e.errMsg);let{name:t,sex:n,birth:i,addr:r,id_num:a,nation:s,base64_ID:o,depart:l,validityTime:c}=e,[u,d]=c.split("-");const h={info:{name:t,sex:n,birthday:i.replace("年","").replace("月","").replace("日",""),address:r,cardId:a,nation:s,police:l,validStart:u,validEnd:d},headImage:o};return console.log("读取二代身份证结果==>",h),h}static async faceValidateWithIdCardRead(){let e=await ge.read(he.InteractiveTerminal,fe.FaceValidateWithIdCard_Base64);if(!e)throw Error("未匹配可用的捷宇信息交互终端设备");if(0!==e.ret)throw Error("读取二代身份证失败,返回值:"+e.ret+",错误信息:"+e.errMsg);let{name:t,sex:n,birth:i,addr:r,id_num:a,nation:s,base64_ID:o,depart:l,validityTime:c,base64_Face:u}=e,[d,h]=c.split("-");const f={idCard:{info:{name:t,sex:n,birthday:i.replace("年","").replace("月","").replace("日",""),address:r,cardId:a,nation:s,police:l,validStart:d,validEnd:h},headImage:o},faceimg:e.base64_Face};return console.log("读取二代身份证结果==>",f),f}static async mergeImage(e,t){return new Promise(((n,i)=>{let r=document.createElement("canvas");r.width=600,r.height=360;let a=r.getContext("2d");a.rect(0,0,r.width,r.height),a.fillStyle="#fff",a.fill();let s=new Image;s.src="data:image/png;base64,"+e,s.crossOrigin="Anonymous",s.onload=function(){a.drawImage(s,0,0,500,360);let e=new Image;e.src="data:image/png;base64,"+t,e.crossOrigin="Anonymous",e.onload=function(){a.drawImage(e,320,0,256,360);let t=r.toDataURL("image/png");t=t.replace("data:image/png;base64,",""),n(t)}}}))}}V(ge,"scannerCameraUrl","ws://127.0.0.1:1818"),V(ge,"interactiveTerminalUrl","ws://127.0.0.1:1919"),V(ge,"ws",void 0),V(ge,"requestStore",[]);class ve{static startConnect(){if(this.ws&&this.ws.readyState===WebSocket.CONNECTING)return this;const e=new WebSocket(this.scannerCameraUrl);let t;const n=new Promise((e=>{t=e}));return e.onopen=()=>{t(!0)},e.onmessage=e=>{this.handleMessage(e)},e.onclose=()=>this.handleClose(),e.onerror=()=>this.handleError(),this.ws=e,n}static handleError(){throw Error("统一插件平台方正高影仪设备功能加载失败")}static handleClose(){this.ws&&this.ws.close()}static handleMessage(e){let t=e.data?JSON.parse(e.data):{};if("video_stream"===t.function){const e=new ce(t.image_base64);return window.dispatchEvent(e)}}static async read(e){if(await this.startConnect(),1!==this.ws.readyState)throw Error("统一插件平台设备未准备完成");this.ws.send(JSON.stringify({function:"open_camera",camidx:"0"})),this.ws.send(JSON.stringify(e))}static async turnOnTheCamera(){let e={function:"set_cutpage",params:{cutpage:"false"}};await ve.read(e)}}V(ve,"scannerCameraUrl","ws://127.0.0.1:38088"),V(ve,"ws",void 0),function(e){e["TurnOnCamera"]="turnOnCamera",e["TakePhoto_Base64"]="TakePhoto_Base64"}(pe||(pe={}));class be{static startConnect(){if(this.ws&&this.ws.readyState===WebSocket.CONNECTING)return this;const e=new WebSocket(this.scannerCameraUrl);let t;const n=new Promise((e=>{t=e}));return e.onopen=()=>{t(!0)},e.onmessage=e=>{this.handleMessage(e)},e.onclose=()=>this.handleClose(),e.onerror=()=>this.handleError(),this.ws=e,n}static handleError(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("handleError")}));throw Error("统一插件平台紫图速拍仪设备功能加载失败")}static handleClose(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("close")}));this.ws&&this.ws.close()}static handleMessage(e){let t=e.data?JSON.parse(e.data):{};if("ShowVideo"===t.FuncName){const e=new ce(t.result);return window.dispatchEvent(e)}"CaptureBase64"!==t.FuncName&&"CaptureDualBase64"!==t.FuncName||(this.requestStore.forEach((({resolve:e})=>{e(t.result)})),this.requestStore=[])}static async read(e,t){if(await this.startConnect(),1===this.ws.readyState){let t="";switch(e){case pe.TurnOnCamera:this.ws.send(JSON.stringify({Func:"StartRunMain",arg:0})),t=JSON.stringify({Func:"ChangeCutType",arg:0});break;case pe.TakePhoto_Base64:this.ws.send(JSON.stringify({Func:"SetJPGQuality",arg:70})),this.ws.send(JSON.stringify({Func:"SetColorType",arg:"彩色"})),this.ws.send(JSON.stringify({Func:"SetBoardColor",arg:0})),this.ws.send(JSON.stringify({Func:"SetCamDPI",arg:720})),t=JSON.stringify({Func:"CaptureBase64",arg:0})}return this.ws.send(t),new Promise(((e,t)=>{this.requestStore||(this.requestStore=[]),this.requestStore.push({resolve:e,reject:t})}))}throw Error("统一插件平台设备未准备完成")}static async turnOnTheCamera(){await be.read(pe.TurnOnCamera)}static async scanByCamera(){const e=await be.read(pe.TakePhoto_Base64);return e}}V(be,"scannerCameraUrl","ws://127.0.0.1:8341"),V(be,"ws",void 0),V(be,"requestStore",[]),function(e){e["ReadCard_Base64"]="ReadCard_Base64",e["StartSignName"]="StartSignName",e["GetSignNameStatus"]="GetSignNameStatus",e["GetSignName_Base64"]="GetSignName_Base64",e["FaceValidateWithIdCard_Base64"]="FaceValidateWithIdCard_Base64",e["TurnOnTheCamera"]="TurnOnTheCamera",e["ScannerCamera"]="ScannerCamera",e["StopCamera"]="StopCamera"}(me||(me={}));class ye{static startConnect(e){if(this.ws&&this.ws.readyState===WebSocket.OPEN)return this;const t=new WebSocket(this.webSocketUrl);let n;const i=new Promise((e=>{n=e}));return t.onopen=()=>{n(!0)},t.onmessage=e=>{this.handleMessage(e)},t.onclose=()=>this.handleClose(),t.onerror=()=>this.handleError(),this.ws=t,i}static handleError(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("handleError")}));throw Error("统一插件平台设备功能加载失败")}static handleClose(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("close")}))}static handleMessage(e){let t="";try{t=JSON.parse(e.data)}catch(n){t=""}if("FaceScreenStream"===t.method||"VideoStream"===t.method){const e=new ce(t.imgBase64);return window.dispatchEvent(e)}this.requestStore.forEach((({resolve:e})=>{e(t)})),this.requestStore=[]}static async read(e){if(await this.startConnect(e),1===this.ws.readyState){let t;switch(e){case me.ReadCard_Base64:t=JSON.stringify({method:"ReadIDCard_Base64",args:{outTimes:30,cardReader:0}});break;case me.FaceValidateWithIdCard_Base64:t=JSON.stringify({method:"FaceValidateWithIdCard_Base64",args:{outTimes:30,score:75}});break;case me.StartSignName:t=JSON.stringify({method:"SignNameScreen_Start",args:{outTimes:30}});break;case me.GetSignNameStatus:t=JSON.stringify({method:"SignNameScreen_Status",args:{}});break;case me.GetSignName_Base64:t=JSON.stringify({method:"SignNameScreen_Get",args:{}});break;case me.TurnOnTheCamera:t=JSON.stringify({method:"VideoStart",args:{}});break;case me.ScannerCamera:t=JSON.stringify({method:"GetCameraImage",args:{imagePath:""}});break;case me.StopCamera:t=JSON.stringify({method:"VideoStop",args:{}});break}return this.ws.send(t),new Promise(((e,t)=>{this.requestStore||(this.requestStore=[]),this.requestStore.push({resolve:e,reject:t})}))}throw Error("统一插件平台设备未准备完成")}static async idCardRead(){const e=await ye.read(me.ReadCard_Base64);if(!e)throw Error("未匹配到可用的读取设备");if(0!==e.retVal)throw this.ws&&this.ws.close(),Error("读取二代身份证失败,返回值:"+e.retVal+",错误信息:"+e.errMsg);let t=e.idInfo,{name:n,ENfullname:i,Nationality:r,sex:a,birthday:s,address:o,number:l,nation:c,organs:u,signdate:d,validterm:h}=t,f="",p="1",m="中国";1==e.cardType||2==e.cardType?(p="9",f=n,n=n||i,u=u||"中华人民共和国国家移民管理局",m=r,c=""):p="1";const g={info:{cardType:p,nationality:m,name:n,chineseName:f,englishName:i,sex:a,birthday:s.replace("-","").replace("-",""),address:o,cardId:l,nation:c,police:u,validStart:d,validEnd:h},headImage:e.idPhotoBase64};return this.ws&&this.ws.close(),g}static async socialSecurityCardRead(){const e=await ye.read(me.ReadCard_Base64);if(!e)throw Error("未匹配可用的读取设备");if(0!==e.retVal)throw this.ws&&this.ws.close(),Error("读取社保卡基本信息失败,返回值:"+e.retVal+",错误信息:"+e.idInfo);const t=e.idInfo;let{name:n,sex:i,birthday:r,number:a,cardnumber:s}=t;const o={info:{name:n,sex:i,birthday:r,address:"",cardId:a,cardnumber:s},headImage:""};return this.ws&&this.ws.close(),o}static async faceValidateWithIdCardRead(){const e=await ye.read(me.FaceValidateWithIdCard_Base64);if("FaceValidateWithIdCard_Base64"===e.method&&"0"==e.retVal){const t=e.idInfo;let{name:n,ENfullname:i,Nationality:r,sex:a,birthday:s,address:o,number:l,nation:c,organs:u,signdate:d,validterm:h}=t,f="",p="1",m="中国";1==e.cardType||2==e.cardType?(p="9",f=n,n=n||i,u=u||"中华人民共和国国家移民管理局",m=r,c=""):p="1";const g={idCard:{info:{cardType:p,nationality:m,name:n,chineseName:f,englishName:i,sex:a,birthday:s.replace("-","").replace("-",""),address:o,cardId:l,nation:c,police:u,validStart:d,validEnd:h},headImage:e.idPhotoBase64},faceimg:e.scenceBase64,score:e.score};return this.ws&&this.ws.close(),g}this.ws&&this.ws.close()}static async signNameRead(){return new Promise((async(e,t)=>{const n=await ye.read(me.StartSignName);"SignNameScreen_Start"===n.method&&(0!==n.retVal?(this.ws&&this.ws.close(),t(`开始签名失败,返回值:${n.retVal},错误信息:${n.errMsg}`)):this.timer||(this.timer=setInterval((async()=>{let n=await ye.read(me.GetSignNameStatus);if(2==n.signScreenStatus){clearInterval(this.timer),this.timer=null;let t=await ye.read(me.GetSignName_Base64);this.ws&&this.ws.close(),e(t.signPicBase64)}else 3==n.retVal&&(clearInterval(this.timer),this.timer=null,this.ws&&this.ws.close(),t("签字结果=>签字失败,或意外中断!"))}),2e3)))}))}static async turnOnTheCamera(){await ye.read(me.TurnOnTheCamera)}static async scanByCamera(){let e=await ye.read(me.ScannerCamera);if("GetCameraImage"===e.method&&0==e.retVal)return e.cameraImgBase64}static async stopCamera(){await ye.read(me.StopCamera);this.ws&&this.ws.close()}}V(ye,"webSocketUrl","ws://127.0.0.1:5847"),V(ye,"ws",void 0),V(ye,"requestStore",[]),V(ye,"timer",null);const Ce="data:image/jpg;base64,";var we={name:"scanner-camera-component",props:{machineType:{default:0,type:Number}},data:()=>({scannerVideoSrc:"",scannerResultSrc:"",loadSuccess:!0,camera:0,cameras:[{name:"文档",value:0},{name:"照片",value:1}],deskewStatus:"0",rotateDeg:0,buttonList:[{label:"拍照",name:"take-pictures"},{label:"图片合并",name:"take-pictures-merge"},{label:"证件合并",name:"take-idCard-pictures-merge"},{label:"纠偏裁边",name:"open-deskew"},{label:"旋转",name:"rotate-video"},{label:"关闭",name:"close"}],_isLinux:String(navigator.platform).indexOf("Linux")>-1,eloamLinuxFrameTimer:{},mergeImageList:[]}),watch:{machineType:function(){let e=1===this.camera?"start-vice":"start-main";this.handleAction(e)}},created(){this.handleAction("start-main"),window.addEventListener(oe,(e=>{e.type===oe&&(this.scannerVideoSrc=`${Ce}${e.scannerResultUrl}`)})),window.addEventListener("beforeunload",this.beforeunload)},async destroyed(){window.removeEventListener("beforeunload",this.beforeunload)},methods:{async beforeunload(e){switch(e.returnValue="确定要离开吗?",this.machineType){case 6:await ye.stopCamera();break;case 5:await se.stopCamera();break}},selectChange(e){let t=1===e?"start-vice":"start-main";this.handleAction(t)},async takePictures(){switch(this.machineType){case 0:let e=await ge.scanByCamera();this.$emit("send-scanner-result",`${Ce}${e}`);break;case 3:this.$emit("send-scanner-result",this.scannerVideoSrc);break;case 4:{let e=await be.scanByCamera();this.$emit("send-scanner-result",`${Ce}${e}`);break}case 5:{let e=0===this.camera?"main":"vice";const t=await se.scanByCamera(e,this.deskewStatus);if(t){let e=t;this.$emit("send-scanner-result",`${Ce}${e}`)}else this.$message.error("拍照出错,请检查设备是否连接成功");break}case 6:{let e=await ye.scanByCamera();this.$emit("send-scanner-result",`${Ce}${e}`);break}}},async handleStartMain(){switch(this.machineType){case 0:await ge.turnOnTheCamera("main");break;case 3:await ve.turnOnTheCamera();break;case 4:await be.turnOnTheCamera();break;case 5:if(String(navigator.platform).indexOf("Linux")>-1){await se.initLinuxCamera();let e=await se.startPreview("0");"0"!=e.returnCode&&"2"!=e.returnCode||(this.eloamLinuxFrameTimer=setInterval(this.getEloamFrame,300))}else this.scannerVideoSrc=se.mainCameraUrl;break;case 6:await ye.turnOnTheCamera();break}},async getEloamFrame(){let e=await se.getEloamFrame();"1"!=e.returnCode?""!=e.data.img&&(this.scannerVideoSrc=`${Ce}${e.data.img}`):clearInterval(this.eloamLinuxFrameTimer)},async handleStartVice(){switch(this.machineType){case 0:await ge.turnOnTheCamera("vice");break;case 3:await ve.turnOnTheCamera();break;case 4:await be.turnOnTheCamera();break;case 5:String(navigator.platform).indexOf("Linux")>-1?(await se.initLinuxCamera(),await se.startPreview("1"),this.eloamLinuxFrameTimer=setInterval(this.getEloamFrame,300)):this.scannerVideoSrc=se.mainCameraUrl;break;case 6:await ye.turnOnTheCamera();break}},async takePictureMerge(e){if("1"===e&&"0"===this.deskewStatus)return this.$message.warning("请先开启纠偏");const t=await se.scanByCamera("main",this.deskewStatus,!0);if(t){let n=t;if(this.mergeImageList.push(n),1===this.mergeImageList.length&&this.$message.success("第一张拍摄成功,请拍第二张"),2===this.mergeImageList.length){let t=await se.mergeImage(this.mergeImageList,e);this.mergeImageList=[],this.$message.success("合并成功"),this.$emit("send-scanner-result",`${Ce}${t}`)}}else this.$message.error("合并拍照出错,请检查设备是否连接成功")},_isShowButton(e){switch(e){case"take-pictures-merge":case"take-idCard-pictures-merge":case"open-deskew":case"rotate-video":case"close":return 5===this.machineType;default:return!0}},async handleAction(e){switch(e){case"start-main":this.handleStartMain();break;case"start-vice":this.handleStartVice();break;case"take-pictures":this.takePictures();break;case"take-pictures-merge":this.takePictureMerge("0");break;case"take-idCard-pictures-merge":this.takePictureMerge("1");break;case"rotate-video":String(navigator.platform).indexOf("Linux")>-1?(this.rotateDeg+=90,360===this.rotateDeg&&(this.rotateDeg=0)):this.rotateDeg=90,se.read(J.ScannerCameraRotate,this.rotateDeg);break;case"open-deskew":this.deskewStatus="1"===this.deskewStatus?"0":"1",se.read(J.ScannerCameraDeskew_Base64,this.deskewStatus);break;case"close":await se.stopCamera();break}}}},_e=we,xe=l(_e,ie,re,!1,null,"7676b84c",null),Se=xe.exports,ke={name:"scanner-camera",components:{ScannerCameraComponent:Se},props:{machineType:{default:0,type:Number},openMode:{default:"",type:String},label:{default:"",type:String},tip:{default:"",type:String},className:{default:"",type:String},size:{default:"",type:String},type:{default:"",type:String},plain:{default:!1,type:Boolean},round:{default:!1,type:Boolean},loading:{default:!1,type:Boolean},icon:{default:"",type:String},disabled:{default:!1,type:Boolean}},data:()=>({dialogVisible:!1,scannerResult:""}),computed:{_className(){const e=["z-button"];return"text"===this.type&&e.push("i-font-size"),this.className?("string"===typeof this.className?e.push(this.className):e.push(...this.className),e):e}},methods:{openScanDialog(){this.dialogVisible=!0},setScannerResult(e){this.scannerResult=e,"dialog"!==this.openMode&&this.$emit("send-scanner-result",this.scannerResult)},sendScannerResult(){this.scannerResult&&(this.$emit("send-scanner-result",this.scannerResult),this.dialogVisible=!1)}}},Ie=ke,Ee=l(Ie,te,ne,!1,null,"00e9072f",null),De=Ee.exports;De.install=e=>{e.component(De.name,De)};var Ae=De,Oe=function(){var e=this,t=e._self._c;return e.tip?t("el-tooltip",{staticClass:"id-card-reader-eloam",attrs:{content:e.tip,placement:"top"}},[t("el-button",e._b({on:{click:e.handleClick}},"el-button",{disabled:e.disabled,icon:e.icon,loading:e.loading,plain:e.plain,round:e.round,size:e.size,type:e.type,class:e._className},!1),[e._t("default",(function(){return[e._v(e._s(e.label))]}))],2)],1):t("el-button",e._b({on:{click:e.handleClick}},"el-button",{disabled:e.disabled,icon:e.icon,loading:e.loading,plain:e.plain,round:e.round,size:e.size,type:e.type,class:e._className},!1),[e._t("default",(function(){return[e._v(e._s(e.label))]}))],2)},Te=[],Me={name:"id-card-reader-eloam",props:{label:{default:"",type:String},tip:{default:"",type:String},className:{default:"",type:String},size:{default:"mini",type:String},type:{default:"primary",type:String},plain:{default:!1,type:Boolean},round:{default:!1,type:Boolean},loading:{default:!1,type:Boolean},icon:{default:"el-icon-postcard",type:String},disabled:{default:!1,type:Boolean}},computed:{_className(){const e=["z-button"];return"text"===this.type&&e.push("i-font-size"),this.className?("string"===typeof this.className?e.push(this.className):e.push(...this.className),e):e}},methods:{async handleClick(){let e=await W.idCardRead();this.$emit("click",e)}}},Ne=Me,Pe=l(Ne,Oe,Te,!1,null,"5b7ce781",null),je=Pe.exports;je.install=e=>{e.component(je.name,je)};var Re,Le,Fe=je,$e=function(){var e=this,t=e._self._c;return e.tip?t("el-tooltip",{staticClass:"id-card-reader-button",attrs:{content:e.tip,placement:"top"}},[e.showIDCardChrome?t("embed",{attrs:{clsid:"{E6B50A65-EDFB-4394-B092-A8C6E966C0E6}",type:"application/x-itst-activex",width:"0",height:"0",name:"IDCard_chrome",id:"IDCard_chrome"}}):e._e(),t("el-button",e._b({on:{click:e.handleClick}},"el-button",{disabled:e.disabled,icon:e.icon,loading:e.loading,plain:e.plain,round:e.round,size:e.size,type:e.type,class:e._className},!1),[e._t("default",(function(){return[e._v(e._s(e.label))]}))],2),t("canvas",{staticStyle:{display:"none"},attrs:{id:"canvas",width:"500",height:"360"}})],1):t("el-button",e._b({on:{click:e.handleClick}},"el-button",{disabled:e.disabled,icon:e.icon,loading:e.loading,plain:e.plain,round:e.round,size:e.size,type:e.type,class:e._className},!1),[e.showIDCardChrome?t("embed",{attrs:{clsid:"{E6B50A65-EDFB-4394-B092-A8C6E966C0E6}",type:"application/x-itst-activex",width:"0",height:"0",name:"IDCard_chrome",id:"IDCard_chrome"}}):e._e(),e._t("default",(function(){return[e._v(e._s(e.label))]})),t("canvas",{staticStyle:{display:"none"},attrs:{id:"canvas",width:"500",height:"360"}})],2)},Be=[];(function(e){e["idcard"]="sfz",e["jlsfz"]="jlsfz",e["camera"]="sxt",e["ywSign"]="yw",e["hwSign"]="hwsign"})(Re||(Re={}));class Ve{static startConnect(e=Re.idcard){if(this.ws&&this.ws.readyState===WebSocket.CONNECTING)return this;let t=this.idcardWebSocketUrl;switch(e){case Re.idcard:t=this.idcardWebSocketUrl;break;case Re.jlsfz:t=this.jlsfzWebSocketUrl}const n=new WebSocket(t);let i;const r=new Promise((e=>{i=e}));return n.onopen=()=>{i(!0)},n.onmessage=e=>this.handleMessage(e),n.onclose=()=>this.handleClose(),n.onerror=()=>this.handleError(),this.ws=n,r}static handleError(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("handleError")}));throw Error("统一插件平台读取身份证功能加载失败")}static handleClose(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("close")}))}static handleMessage(e){let t="";try{t=JSON.parse(e.data)}catch(n){t=""}this.requestStore.forEach((({resolve:e})=>{e(t)})),this.requestStore=[],this.ws.close()}static async read(e=Re.idcard){if(await this.startConnect(e),1===this.ws.readyState)return this.ws.send(e),new Promise(((e,t)=>{this.requestStore||(this.requestStore=[]),this.requestStore.push({resolve:e,reject:t})}));throw Error("统一插件平台读取身份证未准备完成")}static async idCardCommonRead(){let e;for(const t of[Re.jlsfz,Re.idcard]){const n=await Ve.read(t);if(n&&n.hasOwnProperty("info")){e=n;break}}if(e)return e;throw Error("统一插件平台未匹配可用的读卡器")}}V(Ve,"idcardWebSocketUrl","ws://127.0.0.1:8152/SFZManage"),V(Ve,"jlsfzWebSocketUrl","ws://127.0.0.1:8152/JLSFZManage"),V(Ve,"ws",void 0),V(Ve,"requestStore",[]);class ze{static startConnect(){if(this.ws&&this.ws.readyState===WebSocket.CONNECTING)return this;let e=this.cameraWebSocketUrl;const t=new WebSocket(e);let n;const i=new Promise((e=>{n=e}));return t.onopen=()=>{n(!0)},t.onmessage=e=>this.handleMessage(e),t.onclose=()=>this.handleClose(),t.onerror=()=>this.handleError(),this.ws=t,i}static handleError(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("handleError")}));throw Error("统一插件平台读取拍照功能加载失败")}static handleClose(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("close")}))}static handleMessage(e){let t=e.data;this.requestStore.forEach((({resolve:e})=>{e(t)})),this.requestStore=[],this.ws.close()}static async read(){if(await this.startConnect(),1===this.ws.readyState)return this.ws.send(Re.camera),new Promise(((e,t)=>{this.requestStore||(this.requestStore=[]),this.requestStore.push({resolve:e,reject:t})}));throw Error("统一插件平台读取拍照未准备完成")}}V(ze,"cameraWebSocketUrl","ws://127.0.0.1:8152/SXTManage"),V(ze,"ws",void 0),V(ze,"requestStore",[]);class We{static startConnect(e){if(this.ws&&this.ws.readyState===WebSocket.CONNECTING)return this;let t=this.signWebSocketUrl;e===Re.hwSign&&(t=this.hwSignWebSocketUrl);const n=new WebSocket(t);let i;const r=new Promise((e=>{i=e}));return n.onopen=()=>{i(!0)},n.onmessage=e=>this.handleMessage(e),n.onclose=()=>this.handleClose(),n.onerror=()=>this.handleError(),this.ws=n,r}static handleError(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("handleError")}));throw Error("统一插件平台签字板加载失败")}static handleClose(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("close")}))}static handleMessage(e){let t=e.data;this.requestStore.forEach((({resolve:e})=>{e(t)})),this.requestStore=[],this.ws.close()}static async read(e=Re.ywSign){if(await this.startConnect(e),1===this.ws.readyState)return console.log("签字板连接成功"),this.ws.send(e),new Promise(((e,t)=>{this.requestStore||(this.requestStore=[]),this.requestStore.push({resolve:e,reject:t})}));throw Error("统一插件平台签字板未准备完成")}}V(We,"signWebSocketUrl","ws://127.0.0.1:8152/chromeManage"),V(We,"hwSignWebSocketUrl","ws://127.0.0.1:8152/HWSIGNManage"),V(We,"ws",void 0),V(We,"requestStore",[]),function(e){e["iReadCardBas"]="iReadCardBas",e["GetSignName_Base64"]="GetSignName_Base64",e["ReadIDCard_Base64"]="ReadIDCard_Base64",e["FaceValidateWithIdCard_Base64"]="FaceValidateWithIdCard_Base64",e["FingerPrint_Base64"]="FingerPrint_Base64"}(Le||(Le={}));const He={[Le.iReadCardBas]:"读取社保卡",[Le.GetSignName_Base64]:"获取签名",[Le.ReadIDCard_Base64]:"读取二代身份证",[Le.FaceValidateWithIdCard_Base64]:"人证比对",[Le.FingerPrint_Base64]:"获取指纹"};class qe{static startConnect(e){if(this.ws&&this.ws.readyState===WebSocket.CONNECTING)return this;let t="";switch(e){case Le.FingerPrint_Base64:t=this.fingerPrintBasWebSocketUrl;break;default:t=this.iReadCardBasWebSocketUrl;break}const n=new WebSocket(t);let i;const r=new Promise((e=>{i=e}));return n.onopen=()=>{i(!0)},n.onmessage=t=>{e===Le.FingerPrint_Base64&&(t={...t,data:JSON.stringify({fingerPrintInfo:t.data})}),this.handleMessage(t)},n.onclose=()=>this.handleClose(),n.onerror=()=>this.handleError(),this.ws=n,r}static handleError(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("handleError")}));throw Error("统一插件平台E窗通设备功能加载失败")}static handleClose(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("close")}))}static handleMessage(e){let t="";try{t=JSON.parse(e.data)}catch(n){t=""}this.requestStore.forEach((({resolve:e})=>{e(t)})),this.requestStore=[],this.ws.close()}static async read(e){await this.startConnect(e);const t=He[e];if(1===this.ws.readyState){let n;switch(e!==Le.FingerPrint_Base64&&console.log(t+"连接成功"),e){case Le.ReadIDCard_Base64:n=JSON.stringify({method:e,args:{outTimes:30,cardReader:1}});break;case Le.FaceValidateWithIdCard_Base64:n=JSON.stringify({method:e,args:{outTimes:30,cardReader:1,cameraType:0}});break;case Le.iReadCardBas:n=JSON.stringify({method:e,args:{icType:"1"}});break;case Le.FingerPrint_Base64:n="getimgae,1,0,288,0";break;default:n=JSON.stringify({method:e,args:{outTimes:30}});break}return this.ws.send(n),new Promise(((e,t)=>{this.requestStore||(this.requestStore=[]),this.requestStore.push({resolve:e,reject:t})}))}throw Error("统一插件平台"+t+"未准备完成")}static async idCardRead(e=Le.ReadIDCard_Base64){const t=await qe.read(Le.ReadIDCard_Base64);if(console.log("读取二代身份证==>",t),!t)throw Error("未匹配可用的E窗通读取设备");if(0!==t.retVal)throw Error("读取二代身份证失败,返回值:"+t.retVal+",错误信息:"+t.errMsg);const n=t.idInfo.data,{name:i,sex:r,birthday:a,address:s,id_num:o,nations:l}=n,c={info:{name:i,sex:r,birthday:a.replace("-","").replace("-",""),address:s,cardId:o,nation:l},headImage:t.idPhotoPicBase64};return console.log("读取二代身份证结果==>",c),c}static async faceValidateWithIdCardRead(){const e=await qe.read(Le.FaceValidateWithIdCard_Base64);if(console.log("人证比对==>",e),!e)throw Error("未匹配可用的E窗通读取设备");if(0!==e.retVal)throw Error("人证比对失败,返回值:"+e.retVal+",错误信息:"+e.errMsg);const t=e.idInfo.data,{name:n,sex:i,birth:r,address:a,idNo:s,nation:o}=t,l={idCard:{info:{name:n,sex:i,birthday:r.replace("-","").replace("-",""),address:a,cardId:s,nation:o},headImage:e.idPhotoBase64},faceimg:e.scenceBase64};return console.log("人证比对结果==>",l),l}static async socialSecurityCardRead(){const e=await qe.read(Le.iReadCardBas);if(!e)throw Error("未匹配可用的E窗通读取设备");if(0!==e.retVal)throw Error("读取社保卡基本信息失败,返回值:"+e.retVal+",错误信息:"+e.outInfo);const t=e.outInfo,n=t.split("|"),i=n[1],r=de.getBirthdayByIdNumber(i).replace("-","").replace("-",""),a=de.getGenderByIdNumber(i),s={info:{name:n[4],sex:a,birthday:r,address:"",cardId:i},headImage:""};return console.log("读取社保卡==>",e),s}static async signNameRead(){const e=await qe.read(Le.GetSignName_Base64);if(!e)throw Error("未匹配可用的E窗通读取设备");if(0!==e.retVal)throw Error("读取签名失败,返回值:"+e.retVal+",错误信息:"+e.errMsg);return console.log("获取签名==>",e),e.signPicBase64}static async fingerPrintRead(){let e=30;async function t(){const n=await qe.read(Le.FingerPrint_Base64);if(!n)throw Error("未匹配可用的E窗通读取设备");let i=n.fingerPrintInfo.split("|");console.log(i);let r=Number(i[1]);return r>1?e>0?(e--,await t()):{status:"error",data:"已超时,请重新操作,按压指纹"}:{status:"success",data:n.fingerPrintInfo}}let{status:n,data:i}=await t();if("error"===n)throw Error(i);{let[e,t,n,r,a]=i.split("|");return{method:e,result:t,quality:n,image:r,featureCode:a}}}}var Ue;V(qe,"iReadCardBasWebSocketUrl","ws://127.0.0.1:5847"),V(qe,"fingerPrintBasWebSocketUrl","ws://127.0.0.1:9000"),V(qe,"ws",void 0),V(qe,"requestStore",[]),function(e){e[e["ReadSocialSecurityCard"]=1002]="ReadSocialSecurityCard",e[e["ReadIDCard"]=1003]="ReadIDCard"}(Ue||(Ue={}));class Ge{static startConnect(){if(this.ws&&this.ws.readyState===WebSocket.CONNECTING)return this;const e=this.HaDWebSocketUrl,t=new WebSocket(e);let n;const i=new Promise((e=>{n=e}));return t.onopen=()=>{n(!0)},t.onmessage=e=>this.handleMessage(e),t.onclose=()=>this.handleClose(),t.onerror=()=>this.handleError(),this.ws=t,i}static handleError(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("handleError")}));throw Error("统一插件平台华大读卡器功能加载失败")}static handleClose(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("close")}))}static handleMessage(e){const t=JSON.parse(e.data);this.requestStore.forEach((({resolve:e})=>{e(t)})),this.requestStore=[],this.ws.close()}static async read(e){if(await this.startConnect(),1===this.ws.readyState){let t;1003!==e&&1002!==e||(t={tsCode:e.toString(),picFilePath:"d:\\zp.bmp"});const n=JSON.stringify(t);return this.ws.send(n),new Promise(((e,t)=>{this.requestStore||(this.requestStore=[]),this.requestStore.push({resolve:e,reject:t})}))}throw Error("统一插件平台设备未准备完成")}static async idCardRead(){const e=await Ge.read(Ue.ReadIDCard);if(console.log("读取二代身份证==>",e),!e)throw Error("未匹配可用的读取设备");const t=e.cardInfo.split("|")[1],n=e.cardInfo.split("|")[2],i=e.cardInfo.split("|")[3],r=e.cardInfo.split("|")[4],a=e.cardInfo.split("|")[5],s=e.cardInfo.split("|")[6],o=(e.cardInfo.split("|")[7],e.cardInfo.split("|")[8],e.cardInfo.split("|")[9],e.cardInfo.split("|")[10]),l={info:{name:t,sex:n,birthday:r,address:a,cardId:s,nation:i},headImage:o};return console.log("读取二代身份证结果==>",l),l}static async socialSecurityCardRead(){const e=await Ge.read(Ue.ReadSocialSecurityCard);if(!e)throw Error("未匹配可用的读取设备");const t=e.cardInfo.split("|")[1],n=e.cardInfo.split("|")[2],i=de.getBirthdayByIdNumber(t).replace("-","").replace("-",""),r=de.getGenderByIdNumber(t),a={info:{name:n,sex:r,birthday:i,address:"",cardId:t},headImage:""};return console.log("读取社保卡==>",e),a}}V(Ge,"HaDWebSocketUrl","ws://127.0.0.1:36669/"),V(Ge,"ws",void 0),V(Ge,"requestStore",[]);var Ke,Qe=new Array(-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,-1,-1,-1,-1,-1);function Ye(e){var t,n,i,r,a,s,o;s=e.length,a=0,o="";while(a<s){do{t=Qe[255&e.charCodeAt(a++)]}while(a<s&&-1==t);if(-1==t)break;do{n=Qe[255&e.charCodeAt(a++)]}while(a<s&&-1==n);if(-1==n)break;o+=String.fromCharCode(t<<2|(48&n)>>4);do{if(i=255&e.charCodeAt(a++),61==i)return o;i=Qe[i]}while(a<s&&-1==i);if(-1==i)break;o+=String.fromCharCode((15&n)<<4|(60&i)>>2);do{if(r=255&e.charCodeAt(a++),61==r)return o;r=Qe[r]}while(a<s&&-1==r);if(-1==r)break;o+=String.fromCharCode((3&i)<<6|r)}return o}function Ze(e){var t,n,i,r,a,s;t="",i=e.length,n=0;while(n<i)switch(r=e.charCodeAt(n++),r>>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:t+=e.charAt(n-1);break;case 12:case 13:a=e.charCodeAt(n++),t+=String.fromCharCode((31&r)<<6|63&a);break;case 14:a=e.charCodeAt(n++),s=e.charCodeAt(n++),t+=String.fromCharCode((15&r)<<12|(63&a)<<6|(63&s)<<0);break}return t}(function(e){e["ReadIDCard"]="$=Action|127.0.0.1|1352"})(Ke||(Ke={}));class Xe{static startConnect(e){if(this.ws&&this.ws.readyState===WebSocket.CONNECTING)return this;const t=this.MRAdbWebSocketUrl,n=new WebSocket(t);let i;const r=new Promise((e=>{i=e}));return n.onopen=()=>{n.send(e),i(!0)},n.onmessage=e=>this.handleMessage(e),n.onclose=()=>this.handleClose(),n.onerror=()=>this.handleError(),this.ws=n,r}static handleError(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("handleError")}))}static handleClose(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("close")}))}static handleMessage(e){const t=JSON.parse(e.data);this.requestStore.forEach((({resolve:e})=>{e(t)})),this.requestStore=[],this.ws.close()}static async read(e){return await this.startConnect(e),new Promise(((e,t)=>{this.requestStore||(this.requestStore=[]),this.requestStore.push({resolve:e,reject:t})}))}static async idCardRead(){const e=await Xe.read(Ke.ReadIDCard);if(console.log("中正智能人证核验返回==>",e),!e)throw Error("未匹配可用的读取设备");const{result:t,data:n}=e;switch(t){case-1:throw Error("服务器IP地址或者服务端口错误");case-2:throw Error("输入的发送数据参数非法");case-3:throw Error("连接服务器失败");case-4:throw Error("发送数据失败");case-5:throw Error("接收应答数据超时");case-6:throw Error("接收应答数据失败");case-7:throw Error("输出应答数据参数非法");case-8:throw Error("Websocket无法识别命令字");case-9:throw Error("Websocket解析命令字错误");case-10:throw Error("Websocket base64编码失败");case-11:throw Error("指纹驱动未安装或者未启动");case 0:{const e=Ze(Ye(n));console.log("中正智能人证核验结果==>",e);const t=e.split("$"),i=t[2].split("=#=")[1],r=t[3].split("=#=")[1],a=t[10].split("=#=")[1],s=t[6].split("=#=")[1],o=t[5].split("=#=")[1],l=t[4].split("=#=")[1],c=t[11].split("=#=")[1],u=t[8].split("=#=")[1],d=t[9].split("=#=")[1],h={idCard:{info:{name:i,sex:r,birthday:s,address:o,cardId:l,nation:a,police:c},headImage:u},faceimg:d};return console.log("中正智能人证核验结果转换==>",{name:i,sex:r,birthday:s,address:o,cardId:l,nation:a,police:c}),h}}return""}}V(Xe,"MRAdbWebSocketUrl","ws://127.0.0.1:8003/finger"),V(Xe,"ws",void 0),V(Xe,"requestStore",[]);var Je=__webpack_require__(1478),et=function(){var e=this,t=e._self._c;return e.visibility?t("el-dialog",{staticClass:"face-auth-dialog",attrs:{title:"人脸识别",top:"5vh",width:"1280px",visible:e.visibility,"close-on-click-modal":!1},on:{"update:visible":function(t){e.visibility=t}}},[t("el-container",[t("el-aside",{attrs:{width:"900px"}},[t("zs-card",{attrs:{title:"身份证信息读取"}},[t("div",{staticClass:"idcard-photo"},[t("div",{staticClass:"flex-1"},[t("img",{staticStyle:{width:"433px",height:"278px"},attrs:{src:__webpack_require__(2234)}}),t("span",{staticClass:"idcard-info name"},[e._v(e._s(e.IDInfo.name))]),t("span",{staticClass:"idcard-info sex"},[e._v(e._s(e.IDInfo.sex))]),t("span",{staticClass:"idcard-info nation"},[e._v(e._s(e.IDInfo.nation))]),t("span",{staticClass:"idcard-info year"},[e._v(e._s(e.birthYear))]),t("span",{staticClass:"idcard-info month"},[e._v(e._s(e.birthMonth))]),t("span",{staticClass:"idcard-info day"},[e._v(e._s(e.birthDay))]),t("span",{staticClass:"idcard-info address"},[e._v(e._s(e.IDInfo.address))]),t("span",{staticClass:"idcard-info idnumber"},[e._v(e._s(e.IDInfo.cardId))])]),t("div",[t("img",{staticStyle:{width:"433px",height:"278px"},attrs:{src:__webpack_require__(4923)}}),t("span",{staticClass:"idcard-info qfjg"},[e._v(e._s(e.IDInfo.police))]),t("span",{staticClass:"idcard-info yxrq"},[e._v(e._s(e.validDate))])])])])],1),t("el-main",[t("zs-card",{staticClass:"camera",attrs:{title:"摄像头"},scopedSlots:e._u([{key:"extra",fn:function(){return[t("el-button",{attrs:{type:"primary",size:"mini"},on:{click:e.veriface}},[e._v("开始识别")])]},proxy:!0}],null,!1,3429989024)},[t("div",{staticStyle:{width:"320px",height:"240px"},attrs:{id:"camera_row"}})])],1)],1),t("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},e._l(e.buttonList,(function(n){return t("el-button",e._b({key:n.name,on:{click:function(t){return e.buttonClickEvent(n.name)}}},"el-button",n,!1),[e._v(e._s(n.label)+" ")])})),1)],1):e._e()},tt=[],nt={name:"face-auth-dialog",data:()=>({visibility:!0,buttonList:[{name:"cancel",label:"取消",size:"small"},{name:"sure",label:"确定",type:"primary",size:"small",icon:"el-icon-success"}],idCardInfo:{info:{name:"",sex:"",nation:"",birthday:"",address:"",cardId:"",police:"",validStart:"",validEnd:"",sexCode:"",nationCode:""},headImage:void 0},verifaceData:verifaceData}),computed:{IDInfo(){return this.idCardInfo.info},birthYear(){return this.idCardInfo.info.birthday?this.idCardInfo.info.birthday.slice(0,4):""},birthMonth(){return this.idCardInfo.info.birthday?this.idCardInfo.info.birthday.slice(4,6):""},birthDay(){return this.idCardInfo.info.birthday?this.idCardInfo.info.birthday.slice(6,8):""},validDate(){return this.idCardInfo.info.validStart&&this.idCardInfo.info.validEnd?this.idCardInfo.info.validStart+"-"+this.idCardInfo.info.validEnd:""}},mounted(){this.$nextTick((()=>{(0,Je.xj)()}))},methods:{async veriface(){const e=await Je.g$.getElement(4);this.idCardInfo=e.idCard,this.verifaceData=e},buttonClickEvent(e){switch(e){case"cancel":this.visibility=!1;break;case"sure":this.$emit("close",this.verifaceData),this.visibility=!1;break}}}},it=nt,rt=l(it,et,tt,!1,null,null,null),at=rt.exports,st=function(){var e=this,t=e._self._c;return e.visibility?t("el-dialog",{staticClass:"face-auth-dialog",attrs:{title:"拍照",top:"5vh",width:"620px",visible:e.visibility,"close-on-click-modal":!1},on:{"update:visible":function(t){e.visibility=t}}},[t("div",{staticClass:"image-container"},[t("img",{directives:[{name:"show",rawName:"v-show",value:!e.scannerPhotoSrc,expression:"!scannerPhotoSrc"}],staticStyle:{width:"600px",height:"450px"},attrs:{id:"photo",src:e.scannerVideoSrc}}),t("img",{directives:[{name:"show",rawName:"v-show",value:e.scannerPhotoSrc,expression:"scannerPhotoSrc"}],staticStyle:{width:"600px",height:"450px"},attrs:{id:"photo",src:"data:image/jpg;base64,"+e.scannerPhotoSrc}})]),t("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[e._l(e.buttonList,(function(n){return[e.isShowButton(n.name)?t("el-button",e._b({key:n.name,on:{click:function(t){return e.buttonClickEvent(n.name)}}},"el-button",n,!1),[e._v(e._s(n.label)+" ")]):e._e()]}))],2)]):e._e()},ot=[],lt={name:"eloam-take-photo-dialog",data:()=>({visibility:!0,scannerVideoSrc:W.secondaryCameraUrl,scannerPhotoSrc:"",buttonList:[{name:"cancel",label:"取消",size:"small"},{name:"take-photo",label:"拍照",type:"primary",size:"small"},{name:"retake-photo",label:"重拍",type:"primary",size:"small"},{name:"sure",label:"确定",type:"primary",size:"small"}]}),methods:{isShowButton(e){switch(e){case"take-photo":return!this.scannerPhotoSrc;case"retake-photo":return this.scannerPhotoSrc;default:return!0}},async buttonClickEvent(e){switch(e){case"cancel":this.visibility=!1;break;case"take-photo":const e=await W.scanBySecondaryCamera();this.scannerPhotoSrc=e;break;case"retake-photo":this.scannerPhotoSrc="";break;case"sure":let t={faceimg:this.scannerPhotoSrc};this.$emit("close",t),this.visibility=!1;break}}}},ct=lt,ut=l(ct,st,ot,!1,null,"6e18b4de",null),dt=ut.exports,ht=__webpack_require__(7203),ft=__webpack_require__.n(ht);const pt={AND:"安道尔",AFG:"阿富汗",ATG:"安提瓜和巴布达",AIA:"安圭拉",ALB:"阿尔巴尼亚",ARM:"亚美尼亚",AGO:"安哥拉",ATA:"南极洲",ARG:"阿根廷",ASM:"美属萨摩亚",AUT:"奥地利",AUS:"澳大利亚",ABW:"阿鲁巴",ALA:"奥兰群岛",AZE:"阿塞拜疆",BIH:"波黑",BRB:"巴巴多斯",BGD:"孟加拉",BEL:"比利时",BFA:"布基纳法索",BGR:"保加利亚",BHR:"巴林",BDI:"布隆迪",BEN:"贝宁",BLM:"圣巴泰勒米岛",BMU:"百慕大",BRN:"文莱",BOL:"玻利维亚",BES:"荷兰加勒比区",BRA:"巴西",BHS:"巴哈马",BTN:"不丹",BVT:"布韦岛",BWA:"博茨瓦纳",BLR:"白俄罗斯",BLZ:"伯利兹",CAN:"加拿大",CCK:"科科斯群岛",CAF:"中非",CHE:"瑞士",CHL:"智利",CMR:"喀麦隆",COL:"哥伦比亚",CRI:"哥斯达黎加",CUB:"古巴",CPV:"佛得角",CXR:"圣诞岛",CYP:"塞浦路斯",CZE:"捷克",DEU:"德国",DJI:"吉布提",DNK:"丹麦",DMA:"多米尼克",DOM:"多米尼加",DZA:"阿尔及利亚",ECU:"厄瓜多尔",EST:"爱沙尼亚",EGY:"埃及",ESH:"西撒哈拉",ERI:"厄立特里亚",ESP:"西班牙",FIN:"芬兰",FJI:"斐济群岛",FLK:"马尔维纳斯群岛(福克兰)",FSM:"密克罗尼西亚联邦",FRO:"法罗群岛",FRA:"法国",GAB:"加蓬",GRD:"格林纳达",GEO:"格鲁吉亚",GUF:"法属圭亚那",GHA:"加纳",GIB:"直布罗陀",GRL:"格陵兰",GIN:"几内亚",GLP:"瓜德罗普",GNQ:"赤道几内亚",GRC:"希腊",SGS:"南乔治亚岛和南桑威奇群岛",GTM:"危地马拉",GUM:"关岛",GNB:"几内亚比绍",GUY:"圭亚那",HKG:"香港",HMD:"赫德岛和麦克唐纳群岛",HND:"洪都拉斯",HRV:"克罗地亚",HTI:"海地",HUN:"匈牙利",IDN:"印尼",IRL:"爱尔兰",ISR:"以色列",IMN:"马恩岛",IND:"印度",IOT:"英属印度洋领地",IRQ:"伊拉克",IRN:"伊朗",ISL:"冰岛",ITA:"意大利",JEY:"泽西岛",JAM:"牙买加",JOR:"约旦",JPN:"日本",KHM:"柬埔寨",KIR:"基里巴斯",COM:"科摩罗",KWT:"科威特",CYM:"开曼群岛",LBN:"黎巴嫩",LIE:"列支敦士登",LKA:"斯里兰卡",LBR:"利比里亚",LSO:"莱索托",LTU:"立陶宛",LUX:"卢森堡",LVA:"拉脱维亚",LBY:"利比亚",MAR:"摩洛哥",MCO:"摩纳哥",MDA:"摩尔多瓦",MNE:"黑山",MAF:"法属圣马丁",MDG:"马达加斯加",MHL:"马绍尔群岛",MKD:"马其顿",MLI:"马里",MMR:"缅甸",MAC:"澳门",MTQ:"马提尼克",MRT:"毛里塔尼亚",MSR:"蒙塞拉特岛",MLT:"马耳他",MDV:"马尔代夫",MWI:"马拉维",MEX:"墨西哥",MYS:"马来西亚",NAM:"纳米比亚",NER:"尼日尔",NFK:"诺福克岛",NGA:"尼日利亚",NIC:"尼加拉瓜",NLD:"荷兰",NOR:"挪威",NPL:"尼泊尔",NRU:"瑙鲁",OMN:"阿曼",PAN:"巴拿马",PER:"秘鲁",PYF:"法属波利尼西亚",PNG:"巴布亚新几内亚",PHL:"菲律宾",PAK:"巴基斯坦",POL:"波兰",PCN:"皮特凯恩群岛",PRI:"波多黎各",PSE:"巴勒斯坦",PLW:"帕劳",PRY:"巴拉圭",QAT:"卡塔尔",REU:"留尼汪",ROU:"罗马尼亚",SRB:"塞尔维亚",RUS:"俄罗斯",RWA:"卢旺达",SLB:"所罗门群岛",SYC:"塞舌尔",SDN:"苏丹",SWE:"瑞典",SGP:"新加坡",SVN:"斯洛文尼亚",SJM:"斯瓦尔巴群岛和 扬马延岛",SVK:"斯洛伐克",SLE:"塞拉利昂",SMR:"圣马力诺",SEN:"塞内加尔",SOM:"索马里",SUR:"苏里南",SSD:"南苏丹",STP:"圣多美和普林西比",SLV:"萨尔瓦多",SYR:"叙利亚",SWZ:"斯威士兰",TCA:"特克斯和凯科斯群岛",TCD:"乍得",TGO:"多哥",THA:"泰国",TKL:"托克劳",TLS:"东帝汶",TUN:"突尼斯",TON:"汤加",TUR:"土耳其",TUV:"图瓦卢",TZA:"坦桑尼亚",UKR:"乌克兰",UGA:"乌干达",USA:"美国",URY:"乌拉圭",VAT:"梵蒂冈",VEN:"委内瑞拉",VGB:"英属维尔京群岛",VIR:"美属维尔京群岛",VNM:"越南",WLF:"瓦利斯和富图纳",WSM:"萨摩亚",YEM:"也门",MYT:"马约特",ZAF:"南非",ZMB:"赞比亚",ZWE:"津巴布韦",CHN:"中国",COG:"刚果(布)",COD:"刚果(金)",MOZ:"莫桑比克",GGY:"根西岛",GMB:"冈比亚",MNP:"北马里亚纳群岛",ETH:"埃塞俄比亚",NCL:"新喀里多尼亚",VUT:"瓦努阿图",ATF:"法属南部领地",NIU:"纽埃",UMI:"美国本土外小岛屿",COK:"库克群岛",GBR:"英国",TTO:"特立尼达和多巴哥",VCT:"圣文森特和格林纳丁斯",TWN:"台湾",NZL:"新西兰",SAU:"沙特阿拉伯",LAO:"老挝",PRK:"朝鲜",KOR:"韩国",PRT:"葡萄牙",KGZ:"吉尔吉斯斯坦",KAZ:"哈萨克斯坦",TJK:"塔吉克斯坦",TKM:"土库曼斯坦",UZB:"乌兹别克斯坦",KNA:"圣基茨和尼维斯",SPM:"圣皮埃尔和密克隆",SHN:"圣赫勒拿",LCA:"圣卢西亚",MUS:"毛里求斯",CIV:"科特迪瓦",KEN:"肯尼亚",MNG:"蒙古国"};function mt(e){return pt[e]}class gt{static startConnect(){if(this.ws&&this.ws.readyState===WebSocket.CONNECTING)return this;let e=this.idCardWebSocketUrl;const t=new WebSocket(e);let n;const i=new Promise((e=>{n=e}));return t.onopen=()=>{n(!0)},t.onmessage=e=>this.handleMessage(e),t.onclose=()=>this.handleClose(),t.onerror=()=>this.handleError(),this.ws=t,i}static handleError(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("handleError")}));throw Error("统一插件平台读取身份证功能加载失败")}static handleClose(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("close")}))}static handleMessage(e){let t="";try{t=e.data}catch(n){t=""}this.requestStore.forEach((({resolve:e})=>{e(t)})),this.requestStore=[],this.ws.close()}static async read(){if(await this.startConnect(),1===this.ws.readyState)return this.ws.send("04?timeout=10000"),new Promise(((e,t)=>{this.requestStore||(this.requestStore=[]),this.requestStore.push({resolve:e,reject:t})}));throw Error("统一插件平台读取身份证未准备完成")}static async idCardRead(){const e=await gt.read();if(e){let[t,n,i,r,a,s,o,l,c,u,d,h]=e.split("|"),f=e.split("|")[19],p=e.split("|")[18];if("1"===p){const e={info:{cardType:"1",name:r,chineseName:"",englishName:"",sex:a,birthday:o,address:l,cardId:c,nationality:"中国",nation:s,police:u,validStart:d,validEnd:h},headImage:f};return e}{let t=e.split("|")[16]||"无中文姓名";const n={info:{cardType:"9",name:"无中文姓名"===t?r:t||r,chineseName:t,englishName:r,sex:a,birthday:o,address:l,cardId:c,nationality:mt(p),nation:"",police:"中华人民共和国国家移民管理局",validStart:d,validEnd:h},headImage:f};return n}}throw Error("未匹配可用的读卡器")}}V(gt,"idCardWebSocketUrl","ws://127.0.0.1:7415"),V(gt,"ws",void 0),V(gt,"requestStore",[]);var vt,bt=function(){var e=this,t=e._self._c;return t("el-dialog",{staticClass:"face-auth-dialog",attrs:{title:"拍照",top:"5vh",width:"620px",visible:e.visibility,"close-on-click-modal":!1},on:{"update:visible":function(t){e.visibility=t}}},[t("div",{staticClass:"image-container"},[t("video",{ref:"monitor",staticClass:"videoContainer",attrs:{id:"monitor",autoplay:"",width:"250",height:"300"}}),t("canvas",{ref:"photo",staticClass:"videoContainer photo",staticStyle:{display:"none"},attrs:{id:"photo",width:"1920",height:"1080"}}),t("div",{staticClass:"image-content"},[t("img",{staticClass:"videoContainer photo",attrs:{src:e.viewerPhotoSrc}})])]),t("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[e._l(e.buttonList,(function(n){return[e._isShowButton(n.name)?t("el-button",e._b({key:n.name,on:{click:function(t){return e.buttonClickEvent(n.name)}}},"el-button",n,!1),[e._v(e._s(n.label)+" ")]):e._e()]}))],2)])},yt=[];(function(e){e["GetStatus"]="GetStatus",e["ManualRead"]="ManualRead",e["GetReadResult"]="GetReadResult",e["FaceAuth"]="IDAuth"})(vt||(vt={}));const Ct={AND:"安道尔",AFG:"阿富汗",ATG:"安提瓜和巴布达",AIA:"安圭拉",ALB:"阿尔巴尼亚",ARM:"亚美尼亚",AGO:"安哥拉",ATA:"南极洲",ARG:"阿根廷",ASM:"美属萨摩亚",AUT:"奥地利",AUS:"澳大利亚",ABW:"阿鲁巴",ALA:"奥兰群岛",AZE:"阿塞拜疆",BIH:"波黑",BRB:"巴巴多斯",BGD:"孟加拉",BEL:"比利时",BFA:"布基纳法索",BGR:"保加利亚",BHR:"巴林",BDI:"布隆迪",BEN:"贝宁",BLM:"圣巴泰勒米岛",BMU:"百慕大",BRN:"文莱",BOL:"玻利维亚",BES:"荷兰加勒比区",BRA:"巴西",BHS:"巴哈马",BTN:"不丹",BVT:"布韦岛",BWA:"博茨瓦纳",BLR:"白俄罗斯",BLZ:"伯利兹",CAN:"加拿大",CCK:"科科斯群岛",CAF:"中非",CHE:"瑞士",CHL:"智利",CMR:"喀麦隆",COL:"哥伦比亚",CRI:"哥斯达黎加",CUB:"古巴",CPV:"佛得角",CXR:"圣诞岛",CYP:"塞浦路斯",CZE:"捷克",DEU:"德国",DJI:"吉布提",DNK:"丹麦",DMA:"多米尼克",DOM:"多米尼加",DZA:"阿尔及利亚",ECU:"厄瓜多尔",EST:"爱沙尼亚",EGY:"埃及",ESH:"西撒哈拉",ERI:"厄立特里亚",ESP:"西班牙",FIN:"芬兰",FJI:"斐济群岛",FLK:"马尔维纳斯群岛(福克兰)",FSM:"密克罗尼西亚联邦",FRO:"法罗群岛",FRA:"法国",GAB:"加蓬",GRD:"格林纳达",GEO:"格鲁吉亚",GUF:"法属圭亚那",GHA:"加纳",GIB:"直布罗陀",GRL:"格陵兰",GIN:"几内亚",GLP:"瓜德罗普",GNQ:"赤道几内亚",GRC:"希腊",SGS:"南乔治亚岛和南桑威奇群岛",GTM:"危地马拉",GUM:"关岛",GNB:"几内亚比绍",GUY:"圭亚那",HKG:"香港",HMD:"赫德岛和麦克唐纳群岛",HND:"洪都拉斯",HRV:"克罗地亚",HTI:"海地",HUN:"匈牙利",IDN:"印尼",IRL:"爱尔兰",ISR:"以色列",IMN:"马恩岛",IND:"印度",IOT:"英属印度洋领地",IRQ:"伊拉克",IRN:"伊朗",ISL:"冰岛",ITA:"意大利",JEY:"泽西岛",JAM:"牙买加",JOR:"约旦",JPN:"日本",KHM:"柬埔寨",KIR:"基里巴斯",COM:"科摩罗",KWT:"科威特",CYM:"开曼群岛",LBN:"黎巴嫩",LIE:"列支敦士登",LKA:"斯里兰卡",LBR:"利比里亚",LSO:"莱索托",LTU:"立陶宛",LUX:"卢森堡",LVA:"拉脱维亚",LBY:"利比亚",MAR:"摩洛哥",MCO:"摩纳哥",MDA:"摩尔多瓦",MNE:"黑山",MAF:"法属圣马丁",MDG:"马达加斯加",MHL:"马绍尔群岛",MKD:"马其顿",MLI:"马里",MMR:"缅甸",MAC:"澳门",MTQ:"马提尼克",MRT:"毛里塔尼亚",MSR:"蒙塞拉特岛",MLT:"马耳他",MDV:"马尔代夫",MWI:"马拉维",MEX:"墨西哥",MYS:"马来西亚",NAM:"纳米比亚",NER:"尼日尔",NFK:"诺福克岛",NGA:"尼日利亚",NIC:"尼加拉瓜",NLD:"荷兰",NOR:"挪威",NPL:"尼泊尔",NRU:"瑙鲁",OMN:"阿曼",PAN:"巴拿马",PER:"秘鲁",PYF:"法属波利尼西亚",PNG:"巴布亚新几内亚",PHL:"菲律宾",PAK:"巴基斯坦",POL:"波兰",PCN:"皮特凯恩群岛",PRI:"波多黎各",PSE:"巴勒斯坦",PLW:"帕劳",PRY:"巴拉圭",QAT:"卡塔尔",REU:"留尼汪",ROU:"罗马尼亚",SRB:"塞尔维亚",RUS:"俄罗斯",RWA:"卢旺达",SLB:"所罗门群岛",SYC:"塞舌尔",SDN:"苏丹",SWE:"瑞典",SGP:"新加坡",SVN:"斯洛文尼亚",SJM:"斯瓦尔巴群岛和 扬马延岛",SVK:"斯洛伐克",SLE:"塞拉利昂",SMR:"圣马力诺",SEN:"塞内加尔",SOM:"索马里",SUR:"苏里南",SSD:"南苏丹",STP:"圣多美和普林西比",SLV:"萨尔瓦多",SYR:"叙利亚",SWZ:"斯威士兰",TCA:"特克斯和凯科斯群岛",TCD:"乍得",TGO:"多哥",THA:"泰国",TKL:"托克劳",TLS:"东帝汶",TUN:"突尼斯",TON:"汤加",TUR:"土耳其",TUV:"图瓦卢",TZA:"坦桑尼亚",UKR:"乌克兰",UGA:"乌干达",USA:"美国",URY:"乌拉圭",VAT:"梵蒂冈",VEN:"委内瑞拉",VGB:"英属维尔京群岛",VIR:"美属维尔京群岛",VNM:"越南",WLF:"瓦利斯和富图纳",WSM:"萨摩亚",YEM:"也门",MYT:"马约特",ZAF:"南非",ZMB:"赞比亚",ZWE:"津巴布韦",CHN:"中国",COG:"刚果(布)",COD:"刚果(金)",MOZ:"莫桑比克",GGY:"根西岛",GMB:"冈比亚",MNP:"北马里亚纳群岛",ETH:"埃塞俄比亚",NCL:"新喀里多尼亚",VUT:"瓦努阿图",ATF:"法属南部领地",NIU:"纽埃",UMI:"美国本土外小岛屿",COK:"库克群岛",GBR:"英国",TTO:"特立尼达和多巴哥",VCT:"圣文森特和格林纳丁斯",TWN:"台湾",NZL:"新西兰",SAU:"沙特阿拉伯",LAO:"老挝",PRK:"朝鲜",KOR:"韩国",PRT:"葡萄牙",KGZ:"吉尔吉斯斯坦",KAZ:"哈萨克斯坦",TJK:"塔吉克斯坦",TKM:"土库曼斯坦",UZB:"乌兹别克斯坦",KNA:"圣基茨和尼维斯",SPM:"圣皮埃尔和密克隆",SHN:"圣赫勒拿",LCA:"圣卢西亚",MUS:"毛里求斯",CIV:"科特迪瓦",KEN:"肯尼亚",MNG:"蒙古国"};var wt;(function(e){e["MALE"]="男",e["FEMALE"]="女"})(wt||(wt={}));const _t={"Content-Type":"application/json; charset=utf-8"};function xt(e){return Ct[e]}function St(e){return new Promise(((t,n)=>{let i=new Image;i.setAttribute("crossOrigin","Anonymous"),i.src=e,i.onload=function(){let e=document.createElement("canvas"),n=i.width,r=i.height;e.width=n,e.height=r,e.getContext("2d").drawImage(i,0,0);let a=e.toDataURL("image/png");t(a)},i.onerror=()=>{n(new Error("urlToBase64 error"))}}))}async function kt(e){let{doc_number:t,state:n,name:i,truncation_name:r,sex:a,birth_DateFormat:s,dg11:o,expired_DateFormat:l,pic_nfc_face:c}=e,u=o&&o.name||"无中文姓名",d=i+r,h=await St(c);return{name:"无中文姓名"===u?d:u,chineseName:u,englishName:d,sex:wt[a]||"未知",cardId:t,birthday:s.replace("-","").replace("-",""),nationality:xt(n),validEnd:l.replace("-","").replace("-",""),headImage:h.replace("data:image/png;base64,","")}}async function It(e){let{csrq:t,dzmc:n,gmsfhm:i,jdxp:r,mzdm:a,qfjgmc:s,xbdm:o,xm:l,yxqjzrq:c,yxqqsrq:u}=e,d=await St(r);return{name:l,chineseName:"",englishName:"",sex:o.replace("性",""),cardId:i,birthday:t,nationality:"中国",nation:a,police:s,address:n,validStart:u,validEnd:c,headImage:d.replace("data:image/png;base64,","")}}async function Et(e){let{zwxm:t,ywxm:n,xbdm:i,yjjlzhm:r,zjhm:a,gjdm:s,zjqfrq:o,zjzzrq:l,yxqqsrq:c,yxqjzrq:u,csrq:d,jdxp:h}=e,f=t||"无中文姓名",p=n,m=await St(h);return{name:"无中文姓名"===f?p:f,chineseName:f,englishName:p,sex:i.replace("性",""),cardId:a||r,birthday:d,nationality:xt(s),validStart:c||o,validEnd:u||l,police:"中华人民共和国国家移民管理局",headImage:m.replace("data:image/png;base64,","")}}class Dt{static async read(e,t={}){let n,i,r="",a="";switch(e){case vt.GetStatus:r=`${Dt.baseServiceUrl}/PassportReader/${e}`,a="get";break;case vt.ManualRead:r=`${Dt.baseServiceUrl}/PassportReader/${e}`,a="get";break;case vt.GetReadResult:r=`${Dt.baseServiceUrl}/PassportReader/${e}`,a="get";break;case vt.FaceAuth:r=`${Dt.baseServiceUrl}/PassportReader/${e}`,a="post",n={...t};break}return i="get"===a?await ae[a](r,_t):await ae[a](r,n,_t),i}static async getStatus(){await Dt.read(vt.GetStatus)}static async manualRead(){await Dt.read(vt.ManualRead)}static async getReadResult(){await Dt.manualRead();let e=await Dt.read(vt.GetReadResult);while("done"!==e.data.reader_stat)await new Promise((e=>setTimeout(e,1e3))),e=await Dt.read(vt.GetReadResult);let t,n,i=e.data,{nfc_result:r,idcard_result:a,idcard_fi_result:s,idcard_fy_result:o,idcard_j_result:l}=i;switch(i.card_type){case"TD3":t="3",n=await kt(r);break;case"IDCARD":t="1",n=await It(a);break;case"IDCARD_FI":case"IDCARD_FY":t="9",n=await Et(s||o);break;case"TD1_HC":case"TD1_MC":case"TD1_TC":case"TD1_CT":case"TD1_CR":t="12",n=kt(r);break;case"IDCARD_J":t="2",n=await It(l)}let{nationality:c,name:u,chineseName:d,englishName:h,sex:f,birthday:p,address:m,cardId:g,nation:v,police:b,validStart:y,validEnd:C,headImage:w}=n;const _={info:{cardType:t,nationality:c,name:u,chineseName:d,englishName:h,sex:f,birthday:p,address:m,cardId:g,nation:v,police:b,validStart:y,validEnd:C},headImage:w};return _}static async faceAuth(e){console.log("faceAuth=>",e);let t=await Dt.read(vt.FaceAuth,{imgBase64:e});while(40001===t.ret)await new Promise((e=>setTimeout(e,1e3))),t=await Dt.read(vt.FaceAuth,{imgBase64:e});return console.log("人脸识别结束=>",t),t.data.result}}V(Dt,"baseServiceUrl","http://127.0.0.1:7770");var At={name:"default-take-photo-dialog",props:{readMachineType:{type:Number,default:0}},data:()=>({visibility:!0,viewerPhotoSrc:"",scannerPhotoSrc:"",cameraStream:"",buttonList:[{name:"cancel",label:"取消",size:"small"},{name:"take-photo",label:"拍照",type:"primary",size:"small"},{name:"face-auth",label:"人脸识别",type:"primary",size:"small"},{name:"sure",label:"确定",type:"primary",size:"small"}]}),mounted(){this.$nextTick((()=>{this.initDefaultCamera()}))},beforeDestroy(){this.cameraStream.getVideoTracks().forEach((e=>{e.stop()}))},methods:{async initDefaultCamera(){let e=document.getElementById("monitor"),t=this.$refs.photo;console.log(e,t);let n={audio:!1,video:{width:1920,height:1080}};if(navigator.mediaDevices&&navigator.mediaDevices.getUserMedia)try{let t=await navigator.mediaDevices.getUserMedia(n);e.srcObject=t,e.play(),console.log(t),this.cameraStream=t}catch(i){this.$message.error("没有可用的摄像头!"),console.log(i)}else this.$message.error("调用摄像头失败,请在首页右上角我的设备中设置读拍照/人脸识别选项,并确保已为浏览器设置相关权限!")},takePicture(){let e=this.$refs.monitor,t=this.$refs.photo,n=t.getContext("2d");n.drawImage(e,0,0,1920,1080);let i=t.toDataURL("image/png");t.src=i,this.viewerPhotoSrc=i,this.scannerPhotoSrc=i.replace("data:image/png;base64,","")},_isShowButton(e){switch(e){case"sure":return 11!==this.readMachineType;case"face-auth":return 11===this.readMachineType;default:return!0}},async buttonClickEvent(e){switch(e){case"cancel":this.visibility=!1,this.$emit("close");break;case"take-photo":this.takePicture();break;case"sure":let e={faceimg:this.scannerPhotoSrc};this.$emit("close",e),this.visibility=!1;break;case"face-auth":this.faceReaderEvent();break}},async faceReaderEvent(){let e;switch(this.readMachineType){case 11:if(e=await Dt.getReadResult(),"3"===e.info.cardType||"12"===e.info.cardType||"2"===e.info.cardType){let t=await Dt.faceAuth(this.scannerPhotoSrc),n={idCard:{...e},faceimg:this.scannerPhotoSrc,score:t?100:0};this.$emit("faceReader",n)}else this.$message.error("当前证件不支持人脸识别")}},compressImage(e,t){return new Promise(((n,i)=>{let r=new Image;r.src=e,r.onload=function(){let e=this,i=e.width*t.quality,r=e.height*t.quality,a=t.quality,s=document.createElement("canvas"),o=s.getContext("2d"),l=document.createAttribute("width");l.nodeValue=String(i);let c=document.createAttribute("height");c.nodeValue=String(r),s.setAttributeNode(l),s.setAttributeNode(c),o.drawImage(e,0,0,i,r),t.quality&&t.quality<=1&&t.quality>0&&(a=t.quality);let u=s.toDataURL(t.type,a);n(u)}}))}}},Ot=At,Tt=l(Ot,bt,yt,!1,null,null,null),Mt=Tt.exports,Nt=function(){var e=this,t=e._self._c;return e.visibility?t("el-dialog",{staticClass:"wei-rong-face-auth-dialog",attrs:{title:"人脸识别",top:"5vh",width:"640px",visible:e.visibility,"close-on-click-modal":!1},on:{"update:visible":function(t){e.visibility=t}}},[t("div",{staticClass:"image-container"},[t("img",{staticStyle:{width:"600px",height:"450px"},attrs:{id:"photo",src:e.viewFaceImage}})])]):e._e()},Pt=[];const jt="data:image/jpg;base64,";var Rt,Lt={name:"wei-rong-face-auth-dialog",data:()=>({visibility:!0,viewFaceImage:""}),async created(){window.addEventListener(oe,(e=>{e.type===oe&&(this.viewFaceImage=`${jt}${e.scannerResultUrl}`)}));let e=await ye.faceValidateWithIdCardRead();this.$message.success("认证成功"),setTimeout((()=>{this.$emit("close",e)}),1500)}},Ft=Lt,$t=l(Ft,Nt,Pt,!1,null,"5bbb0afc",null),Bt=$t.exports;class Vt{static async read(e){let t="";switch(e){case"ReadIDCard_Base64":t=this.idCardWebSocketUrl+"/readCard";break}let n=await ae.get(t);return n}static async idCardRead(){const e=await Vt.read("ReadIDCard_Base64");if(e){let t=e.split("|");if("0"!=t[0])throw Error(t[1]);let n,i,r,a,s,o,l,c,u,d,h,f,p="",m="";switch(t[1]){case"1":n="1",i=t[2],r=t[4],a=t[6],o=t[7],l=t[8],c=t[9],u=t[10],d=t[11],h=t[12],f=t[13],s="中国";break;case"2":n="9",p=t[2],r=t[4],c=t[5],s=t[7],m=t[8]||"无中文姓名",d=t[9],h=t[10],o=t[11],u=t[14],f=t[15],i="无中文姓名"===m?p:m;break;case"4":n="9",m=t[2]||"无中文姓名",r=t[4],o=t[6],p=t[7],c=t[8],d=t[10],h=t[11],s=t[13],u="中华人民共和国国家移民管理局",f=t[15],i="无中文姓名"===m?p:m;break;case"3":}const g={info:{cardType:n,nationality:s,name:i,chineseName:m,englishName:p,sex:r,birthday:o,address:l,cardId:c,nation:a,police:u,validStart:d,validEnd:h},headImage:f};return console.log(g),g}throw Error("未匹配可用的读卡器")}}V(Vt,"idCardWebSocketUrl","http://127.0.0.1:10012"),V(Vt,"ws",void 0),V(Vt,"requestStore",[]);class zt{static async read(e){let t="";switch(e){case"ReadIDCard_Base64":t=this.idCardWebSocketUrl+"/api/readCard";break}let n=await ae.post(t,{});return n}static async idCardRead(){const e=await zt.read("ReadIDCard_Base64");if(0===e.resultFlag){let t=e.resultContent,n="1",i=t.partyName,r=1===t.gender?"男":"女",a=t.nation,s="中国",o=t.bornDay,l=t.certAddress,c=t.certNumber,u=t.certOrg,d=t.effDate,h=t.expDate,f=t.identityPic;const p={info:{cardType:n,nationality:s,name:i,sex:r,birthday:o,address:l,cardId:c,nation:a,police:u,validStart:d,validEnd:h},headImage:f};return console.log(p),p}throw Error("未匹配可用的读卡器")}}V(zt,"idCardWebSocketUrl","http://127.0.0.1:18889"),function(e){e["Init"]="init",e["StartSignName"]="startSignName",e["Close"]="close",e["SignNameAgain"]="signNameAgain",e["GetSign"]="GetSign"}(Rt||(Rt={}));class Wt{static startConnect(){if(this.ws&&this.ws.readyState===WebSocket.OPEN)return this;const e=new WebSocket(this.linuxWebServiceUrl);let t;const n=new Promise((e=>{t=e}));return e.onopen=()=>{t(!0)},e.onmessage=e=>{this.handleMessage(e)},e.onclose=()=>this.handleClose(),e.onerror=e=>this.handleError(e),this.ws=e,n}static handleMessage(e){let t={};try{t=JSON.parse(e.data)}catch(n){t={}}if(console.log("message=>",t),"HWGetSign"===t.HWPenSign&&"0"==t.msgID){const e=new ue(t.message);return window.dispatchEvent(e)}this.requestStore.forEach((({resolve:e})=>{e(t)})),this.requestStore=[]}static handleError(e){for(const t in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("handleError")}))}static handleClose(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("close")}))}static async read(e){let t="",n={};switch(e){case Rt.Init:n={},t=this.windowsWebServiceUrl+"/HWPenSign/HWGetDeviceStatus";break;case Rt.StartSignName:n={nLogo:"? ",nPenwidth:"2",nOrgX:"100",nOrgY:"200",width:"500",height:"300",fingerFap:"2",key:"4A05564228DF2C64AF2E137B71A4E7A3"},t=this.windowsWebServiceUrl+"/HWPenSign/HWInitialize";break;case Rt.GetSign:n={nImageType:"3",nImageWidth:"500",nImageHeight:"300"},t=this.windowsWebServiceUrl+"/HWPenSign/HWGetSign";break}let i=await ae.get(t);return i}static async readInLinux(e){if(await this.startConnect(),1===this.ws.readyState){let t="";switch(e){case Rt.Init:t=JSON.stringify({HWPenSign:"HWGetDeviceStatus"});break;case Rt.StartSignName:t=JSON.stringify({nOrgX:400,nOrgY:350,nWidth:600,nHeight:400,showDialog:1,nImageWidth:250,nImageHeight:150,nConfirmTimeout:30,fingerCap:1});break}return this.ws.send(t),new Promise(((e,t)=>{this.requestStore||(this.requestStore=[]),this.requestStore.push({resolve:e,reject:t})}))}}static async signNameRead(){return new Promise((async e=>{if(this._isLinux){let t=await Wt.readInLinux(Rt.Init);if(console.log("初始化=>",t),0!=t.msgID)throw Error("统一插件平台设备未准备完成");{let t=await Wt.readInLinux(Rt.StartSignName);console.log("签字=>",t),0==t.msgID&&e("")}}else{let t=await Wt.read(Rt.Init);if("0"!==t.msgID)throw Error("统一插件平台设备未准备完成");let n=await Wt.read(Rt.StartSignName);if("0"!==n.msgID)throw Error("统一插件平台设备未准备完成");let i=setInterval((async()=>{let t=await Wt.read(Rt.GetSign);"0"===t.msgID&&(clearInterval(i),e(t.message.replace("data:image/png;base64,","")))}),2e3)}}))}}V(Wt,"windowsWebServiceUrl","http://127.0.0.1:29999"),V(Wt,"linuxWebServiceUrl","ws://127.0.0.1:29999"),V(Wt,"ws",void 0),V(Wt,"requestStore",[]),V(Wt,"_isLinux",String(navigator.platform).indexOf("Linux")>-1);var Ht={name:"id-card-reader-button",props:{label:{default:"",type:String},tip:{default:"",type:String},className:{default:"",type:String},size:{default:"mini",type:String},type:{default:"primary",type:String},plain:{default:!1,type:Boolean},round:{default:!1,type:Boolean},loading:{default:!1,type:Boolean},icon:{default:"el-icon-postcard",type:String},disabled:{default:!1,type:Boolean},readMachineType:{default:0,type:Number},readerMode:{default:"idCard",type:String},filePath:{default:"JVBERi0xLjcNCiW1tbW1DQoxIDAgb2JqDQo8PC9UeXBlL0NhdGFsb2cvUGFnZXMgMiAwIFIvTGFuZyh6aCkgL1N0cnVjdFRyZWVSb290IDE3IDAgUi9NYXJrSW5mbzw8L01hcmtlZCB0cnVlPj4vTWV0YWRhdGEgMzYgMCBSL1ZpZXdlclByZWZlcmVuY2VzIDM3IDAgUj4+DQplbmRvYmoNCjIgMCBvYmoNCjw8L1R5cGUvUGFnZXMvQ291bnQgMS9LaWRzWyAzIDAgUl0gPj4NCmVuZG9iag0KMyAwIG9iag0KPDwvVHlwZS9QYWdlL1BhcmVudCAyIDAgUi9SZXNvdXJjZXM8PC9Gb250PDwvRjEgNSAwIFIvRjIgOSAwIFIvRjMgMTQgMCBSPj4vRXh0R1N0YXRlPDwvR1M3IDcgMCBSL0dTOCA4IDAgUj4+L1Byb2NTZXRbL1BERi9UZXh0L0ltYWdlQi9JbWFnZUMvSW1hZ2VJXSA+Pi9NZWRpYUJveFsgMCAwIDUyMS42NCAzNjguNTJdIC9Db250ZW50cyA0IDAgUi9Hcm91cDw8L1R5cGUvR3JvdXAvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCPj4vVGFicy9TL1N0cnVjdFBhcmVudHMgMD4+DQplbmRvYmoNCjQgMCBvYmoNCjw8L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggMjkyPj4NCnN0cmVhbQ0KeJylkUtPQkEMhfeTzH84SyBxbqfzNCEk98ElGl0YMC6IC0KAuPBGkf8fe5ENom6c1XTanvY7g2L+tuowHhf39U0DKu5W3Q6DTXf1OB9OJqiaGu9akaH+pJQcCIGtiR4uZhMY+41WTyN0WlULrYrWgqMhj8VWKyvVhP6FTHZwZE2QzKvUzeYJuw+Rxu4Y5VM002o5wPAZi1utpqL4oBWm9zWKcn942a7WB1QS2b7NRcOwvXaC98lkJDLuuNF2dGrDOaH9hVCkokh5k3MvhciG8wUbC/QZmHcy1OZgfDhikQnE/WpfF4GBeMfCvF6OQ9lm11YlU1tzJfkmRNu0tdhCnCnwlCznuvZlarkMeXJpwjca/heNu6BJwVzz3zw/f84nOqN5cQ0KZW5kc3RyZWFtDQplbmRvYmoNCjUgMCBvYmoNCjw8L1R5cGUvRm9udC9TdWJ0eXBlL1RydWVUeXBlL05hbWUvRjEvQmFzZUZvbnQvQkNERUVFK0RlbmdYaWFuL0VuY29kaW5nL1dpbkFuc2lFbmNvZGluZy9Gb250RGVzY3JpcHRvciA2IDAgUi9GaXJzdENoYXIgMzIvTGFzdENoYXIgMzIvV2lkdGhzIDMwIDAgUj4+DQplbmRvYmoNCjYgMCBvYmoNCjw8L1R5cGUvRm9udERlc2NyaXB0b3IvRm9udE5hbWUvQkNERUVFK0RlbmdYaWFuL0ZsYWdzIDMyL0l0YWxpY0FuZ2xlIDAvQXNjZW50IDgxMC9EZXNjZW50IC0yMzIvQ2FwSGVpZ2h0IDgxMC9BdmdXaWR0aCA0NDcvTWF4V2lkdGggMTI5Mi9Gb250V2VpZ2h0IDQwMC9YSGVpZ2h0IDI1MC9TdGVtViA0NC9Gb250QkJveFsgLTE0MSAtMjMyIDExNTEgODEwXSAvRm9udEZpbGUyIDMxIDAgUj4+DQplbmRvYmoNCjcgMCBvYmoNCjw8L1R5cGUvRXh0R1N0YXRlL0JNL05vcm1hbC9jYSAxPj4NCmVuZG9iag0KOCAwIG9iag0KPDwvVHlwZS9FeHRHU3RhdGUvQk0vTm9ybWFsL0NBIDE+Pg0KZW5kb2JqDQo5IDAgb2JqDQo8PC9UeXBlL0ZvbnQvU3VidHlwZS9UeXBlMC9CYXNlRm9udC9CQ0RGRUUrRGVuZ1hpYW4tQm9sZC9FbmNvZGluZy9JZGVudGl0eS1IL0Rlc2NlbmRhbnRGb250cyAxMCAwIFIvVG9Vbmljb2RlIDMyIDAgUj4+DQplbmRvYmoNCjEwIDAgb2JqDQpbIDExIDAgUl0gDQplbmRvYmoNCjExIDAgb2JqDQo8PC9CYXNlRm9udC9CQ0RGRUUrRGVuZ1hpYW4tQm9sZC9TdWJ0eXBlL0NJREZvbnRUeXBlMi9UeXBlL0ZvbnQvQ0lEVG9HSURNYXAvSWRlbnRpdHkvRFcgMTAwMC9DSURTeXN0ZW1JbmZvIDEyIDAgUi9Gb250RGVzY3JpcHRvciAxMyAwIFIvVyAzNCAwIFI+Pg0KZW5kb2JqDQoxMiAwIG9iag0KPDwvT3JkZXJpbmcoSWRlbnRpdHkpIC9SZWdpc3RyeShBZG9iZSkgL1N1cHBsZW1lbnQgMD4+DQplbmRvYmoNCjEzIDAgb2JqDQo8PC9UeXBlL0ZvbnREZXNjcmlwdG9yL0ZvbnROYW1lL0JDREZFRStEZW5nWGlhbi1Cb2xkL0ZsYWdzIDMyL0l0YWxpY0FuZ2xlIDAvQXNjZW50IDgxMC9EZXNjZW50IC0yMzIvQ2FwSGVpZ2h0IDgxMC9BdmdXaWR0aCA0NTYvTWF4V2lkdGggMTM3MC9Gb250V2VpZ2h0IDcwMC9YSGVpZ2h0IDI1MC9TdGVtViA0NS9Gb250QkJveFsgLTE3MyAtMjMyIDExOTcgODEwXSAvRm9udEZpbGUyIDMzIDAgUj4+DQplbmRvYmoNCjE0IDAgb2JqDQo8PC9UeXBlL0ZvbnQvU3VidHlwZS9UcnVlVHlwZS9OYW1lL0YzL0Jhc2VGb250L0JDREdFRStEZW5nWGlhbi1Cb2xkL0VuY29kaW5nL1dpbkFuc2lFbmNvZGluZy9Gb250RGVzY3JpcHRvciAxNSAwIFIvRmlyc3RDaGFyIDMyL0xhc3RDaGFyIDMyL1dpZHRocyAzNSAwIFI+Pg0KZW5kb2JqDQoxNSAwIG9iag0KPDwvVHlwZS9Gb250RGVzY3JpcHRvci9Gb250TmFtZS9CQ0RHRUUrRGVuZ1hpYW4tQm9sZC9GbGFncyAzMi9JdGFsaWNBbmdsZSAwL0FzY2VudCA4MTAvRGVzY2VudCAtMjMyL0NhcEhlaWdodCA4MTAvQXZnV2lkdGggNDU2L01heFdpZHRoIDEzNzAvRm9udFdlaWdodCA3MDAvWEhlaWdodCAyNTAvU3RlbVYgNDUvRm9udEJCb3hbIC0xNzMgLTIzMiAxMTk3IDgxMF0gL0ZvbnRGaWxlMiAzMyAwIFI+Pg0KZW5kb2JqDQoxNiAwIG9iag0KPDwvQXV0aG9yKP7/Zx2WMwAgVBUpIC9DcmVhdG9yKP7/AE0AaQBjAHIAbwBzAG8AZgB0AK4AIABXAG8AcgBkACAAMgAwADEAOSkgL0NyZWF0aW9uRGF0ZShEOjIwMjQwODA1MTcxNDIwKzA4JzAwJykgL01vZERhdGUoRDoyMDI0MDgwNTE3MTQyMCswOCcwMCcpIC9Qcm9kdWNlcij+/wBNAGkAYwByAG8AcwBvAGYAdACuACAAVwBvAHIAZAAgADIAMAAxADkpID4+DQplbmRvYmoNCjI1IDAgb2JqDQo8PC9U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Q2VoaUh6cmVTek5UY3prYzlkIj8+PHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iMy4xLTcwMSI+CjxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CjxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiICB4bWxuczpwZGY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGRmLzEuMy8iPgo8cGRmOlByb2R1Y2VyPk1pY3Jvc29mdMKuIFdvcmQgMjAxOTwvcGRmOlByb2R1Y2VyPjwvcmRmOkRlc2NyaXB0aW9uPgo8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj4KPGRjOmNyZWF0b3I+PHJkZjpTZXE+PHJkZjpsaT7mnJ3pmLMg5ZCVPC9yZGY6bGk+PC9yZGY6U2VxPjwvZGM6Y3JlYXRvcj48L3JkZjpEZXNjcmlwdGlvbj4KPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+Cjx4bXA6Q3JlYXRvclRvb2w+TWljcm9zb2Z0wq4gV29yZCAyMDE5PC94bXA6Q3JlYXRvclRvb2w+PHhtcDpDcmVhdGVEYXRlPjIwMjQtMDgtMDVUMTc6MTQ6MjArMDg6MDA8L3htcDpDcmVhdGVEYXRlPjx4bXA6TW9kaWZ5RGF0ZT4yMDI0LTA4LTA1VDE3OjE0OjIwKzA4OjAwPC94bXA6TW9kaWZ5RGF0ZT48L3JkZjpEZXNjcmlwdGlvbj4KPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIj4KPHhtcE1NOkRvY3VtZW50SUQ+dXVpZDo4MzY4MEUxMi1FNTNBLTRGQzItOENENi05Qzg3NTc3RjdEOEQ8L3htcE1NOkRvY3VtZW50SUQ+PHhtcE1NOkluc3RhbmNlSUQ+dXVpZDo4MzY4MEUxMi1FNTNBLTRGQzItOENENi05Qzg3NTc3RjdEOEQ8L3htcE1NOkluc3RhbmNlSUQ+PC9yZGY6RGVzY3JpcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8L3JkZjpSREY+PC94OnhtcG1ldGE+PD94cGFja2V0IGVuZD0idyI/Pg0KZW5kc3RyZWFtDQplbmRvYmoNCjM3IDAgb2JqDQo8PC9EaXNwbGF5RG9jVGl0bGUgdHJ1ZT4+DQplbmRvYmoNCjM4IDAgb2JqDQo8PC9UeXBlL1hSZWYvU2l6ZSAzOC9XWyAxIDQgMl0gL1Jvb3QgMSAwIFIvSW5mbyAxNiAwIFIvSURbPDEyMEU2ODgzM0FFNUMyNEY4Q0Q2OUM4NzU3N0Y3RDhEPjwxMjBFNjg4MzNBRTVDMjRGOENENjlDODc1NzdGN0Q4RD5dIC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDEzMz4+DQpzdHJlYW0NCnicNc4rDsJQEIXhub19UwModoFr0rAdDEGgEUgMEo/BkJDgWQvrQDRpUobzw4j5Msm8zDzGMXiemn25wkuEQcSNSGciS6CFLbxFPoenKCL0oryJ6mLmG2xhBZRQQQ05BPgNTHy8PvyrDFJIIHpLs9Oh5iS6u1gtxX4NZ3iIoz//Aa+yEw8NCmVuZHN0cmVhbQ0KZW5kb2JqDQp4cmVmDQowIDM5DQowMDAwMDAwMDE3IDY1NTM1IGYNCjAwMDAwMDAwMTcgMDAwMDAgbg0KMDAwMDAwMDE2MyAwMDAwMCBuDQowMDAwMDAwMjE5IDAwMDAwIG4NCjAwMDAwMDA1MDggMDAwMDAgbg0KMDAwMDAwMDg3NCAwMDAwMCBuDQowMDAwMDAxMDQyIDAwMDAwIG4NCjAwMDAwMDEyODIgMDAwMDAgbg0KMDAwMDAwMTMzNSAwMDAwMCBuDQowMDAwMDAxMzg4IDAwMDAwIG4NCjAwMDAwMDE1MjUgMDAwMDAgbg0KMDAwMDAwMTU1NSAwMDAwMCBuDQowMDAwMDAxNzIxIDAwMDAwIG4NCjAwMDAwMDE3OTUgMDAwMDAgbg0KMDAwMDAwMjA0MSAwMDAwMCBuDQowMDAwMDAyMjE2IDAwMDAwIG4NCjAwMDAwMDI0NjIgMDAwMDAgbg0KMDAwMDAwMDAxOCA2NTUzNSBmDQowMDAwMDAwMDE5IDY1NTM1IGYNCjAwMDAwMDAwMjAgNjU1MzUgZg0KMDAwMDAwMDAyMSA2NTUzNSBmDQowMDAwMDAwMDIyIDY1NTM1IGYNCjAwMDAwMDAwMjMgNjU1MzUgZg0KMDAwMDAwMDAyNCA2NTUzNSBmDQowMDAwMDAwMDI1IDY1NTM1IGYNCjAwMDAwMDAwMjYgNjU1MzUgZg0KMDAwMDAwMDAyNyA2NTUzNSBmDQowMDAwMDAwMDI4IDY1NTM1IGYNCjAwMDAwMDAwMjkgNjU1MzUgZg0KMDAwMDAwMDAwMCA2NTUzNSBmDQowMDAwMDAzMTg0IDAwMDAwIG4NCjAwMDAwMDMyMTEgMDAwMDAgbg0KMDAwMDAxNTAxOSAwMDAwMCBuDQowMDAwMDE1NDA4IDAwMDAwIG4NCjAwMDAwMzEzMzMgMDAwMDAgbg0KMDAwMDAzMTM3OSAwMDAwMCBuDQowMDAwMDMxNDA2IDAwMDAwIG4NCjAwMDAwMzQ1NDkgMDAwMDAgbg0KMDAwMDAzNDU5NCAwMDAwMCBuDQp0cmFpbGVyDQo8PC9TaXplIDM5L1Jvb3QgMSAwIFIvSW5mbyAxNiAwIFIvSURbPDEyMEU2ODgzM0FFNUMyNEY4Q0Q2OUM4NzU3N0Y3RDhEPjwxMjBFNjg4MzNBRTVDMjRGOENENjlDODc1NzdGN0Q4RD5dID4+DQpzdGFydHhyZWYNCjM0OTI4DQolJUVPRg0KeHJlZg0KMCAwDQp0cmFpbGVyDQo8PC9TaXplIDM5L1Jvb3QgMSAwIFIvSW5mbyAxNiAwIFIvSURbPDEyMEU2ODgzM0FFNUMyNEY4Q0Q2OUM4NzU3N0Y3RDhEPjwxMjBFNjg4MzNBRTVDMjRGOENENjlDODc1NzdGN0Q4RD5dIC9QcmV2IDM0OTI4L1hSZWZTdG0gMzQ1OTQ+Pg0Kc3RhcnR4cmVmDQozNTg2NQ0KJSVFT0Y=",type:String}},data:()=>({showIDCardChrome:!1,plugType:"读卡器"}),computed:{_className(){const e=["z-button"];return"text"===this.type&&e.push("i-font-size"),this.className?("string"===typeof this.className?e.push(this.className):e.push(...this.className),e):e},isJIEYUPlugin(){return"sign"===this.readerMode&&3===this.readMachineType||"idCard"===this.readerMode&&6===this.readMachineType||"idCard"===this.readerMode&&6===this.readMachineType},isExitAndEntryPlugin(){return"idCard"===this.readerMode&&11===this.readMachineType}},watch:{isJIEYUPlugin:{handler:async e=>{e&&await ge.initParams()}},isExitAndEntryPlugin:{handler:async e=>{e&&await Dt.getStatus()}}},async created(){this.isJIEYUPlugin&&await ge.initParams(),this.isExitAndEntryPlugin&&await Dt.getStatus()},mounted(){let e=this;window.onerror=function(t){if(t.indexOf("统一插件平台")>-1){let n=t.split(": ")[1]||"提示";n=n.replace("统一插件平台",""),e.$emit("hardwareError",e.plugType,n)}}},methods:{handleClick(){switch(this.readerMode){case"idCard":this.plugType="读卡器",this.idCardRReaderEvent();break;case"veriface":this.plugType="拍照设备",this.faceReaderEvent();break;case"sign":this.plugType="签字板",this.signEvent();break;case"socialSecurityCard":this.plugType="社保卡",this.socialSecurityCardReaderEvent();break}this.$emit("sendPluginType",this.plugType)},async idCardRReaderEvent(){let e;switch(this.readMachineType){case 0:e=await Ve.idCardCommonRead(),this.$emit("click",e);break;case 1:return this.readLSIDCard();case 2:e=await qe.idCardRead(),this.$emit("click",e);break;case 3:const t=await Xe.idCardRead();t&&(e=t.idCard),this.$emit("click",e);break;case 4:e=await Ge.idCardRead(),this.$emit("click",e);break;case 5:e=await W.idCardRead(),this.$emit("click",e);break;case 6:e=await ge.idCardRead(),this.$emit("click",e);break;case 8:e=await gt.idCardRead(),this.$emit("click",e);break;case 9:e=await ge.idCardReadByScanner(),this.$emit("click",e);break;case 10:e=await ye.idCardRead(),this.$emit("click",e);break;case 11:e=await Dt.getReadResult(),this.$emit("click",e);break;case 12:e=await Vt.idCardRead(),this.$emit("click",e);break;case 13:e=await zt.idCardRead(),this.$emit("click",e);break;default:this.$message.warning("请在首页右上角我的设备中设置读卡器选项!");break}},async faceReaderEvent(){switch(this.readMachineType){case 0:this.readFacePhotoByDefault();break;case 1:this.readLSIDCardAndMatchFace();break;case 2:{const e=await qe.faceValidateWithIdCardRead();this.$emit("click",e);break}case 3:{const e=await Xe.idCardRead();this.$emit("click",e);break}case 5:this.readFacePhotoByELoam();break;case 6:{const e=await ge.faceValidateWithIdCardRead();this.$emit("click",e);break}case 10:this.openWEIRONGFaceValidateDialog();break;case 11:this.readFacePhotoByDefault(this.readMachineType);break;default:this.$message.warning("请在首页右上角我的设备中设置读拍照/人脸识别选项!");break}},async socialSecurityCardReaderEvent(){try{let e;switch(this.readMachineType){case 2:e=await qe.socialSecurityCardRead();break;case 4:e=await Ge.socialSecurityCardRead();break;case 5:e=await ye.socialSecurityCardRead();break;default:this.$message.warning("请在首页右上角我的设备中设置社保卡选项!");break}this.$emit("click",e)}catch(e){throw Error("读取社保卡失败")}},async signEvent(){let e="";switch(this.readMachineType){case 0:e=await We.read();break;case 1:e=await We.read(Re.hwSign);break;case 2:e=await qe.signNameRead();break;case 3:const t=await ge.signNameRead(this.filePath),n=t.SignNameBase64?JSON.parse(t.SignNameBase64):{SignName0:""},i=t.FingerPrintBase64?JSON.parse(t.FingerPrintBase64):{FingerPrint0:""},r=n.SignName0.split(";")[0],a=i.FingerPrint0.split(";")[0];console.log("签字&指纹",r,a),a?(e=await ge.mergeImage(r,a),console.log(e)):e=r;break;case 5:e=await ye.signNameRead();break;case 7:Wt._isLinux?(window.addEventListener(le,(t=>{t.type===le&&(e=t.signResultUrl)})),await Wt.signNameRead()):e=await Wt.signNameRead();break;default:this.$message.warning("请在首页右上角我的设备中设置签字板选项!");break}this.$emit("click",e)},async readLSIDCardAndMatchFace(){this.showIDCardChrome=!0;const e=document.createElement("div");document.body.appendChild(e);const t=new(ft())({render:e=>e(at,{props:{},on:{close:e=>{if(console.log("destroy data=>",e),"比对成功"!==e.zt)throw Error("认证失败");this.$message.success("认证成功"),this.$emit("click",e),this.showIDCardChrome=!1,t.$destroy(),t.$el.remove()}}}),parent:this}).$mount(e)},openWEIRONGFaceValidateDialog(){console.log("打开人脸识别弹框");const e=document.createElement("div");document.body.appendChild(e);const t=new(ft())({render:e=>e(Bt,{props:{},on:{close:e=>{this.$emit("click",e),t.$destroy(),t.$el.remove()}}}),parent:this}).$mount(e)},readFacePhotoByELoam(){const e=document.createElement("div");document.body.appendChild(e);const t=new(ft())({render:e=>e(dt,{props:{},on:{close:e=>{console.log("良田拍照信息=>",e),this.$emit("click",e),t.$destroy(),t.$el.remove()}}}),parent:this}).$mount(e)},readFacePhotoByDefault(e=0){const t=document.createElement("div");document.body.appendChild(t);const n=new(ft())({render:t=>t(Mt,{props:{readMachineType:e},on:{faceReader:e=>{this.$emit("click",e),n.$destroy(),n.$el.remove()},close:e=>{e&&(console.log("浏览器自带拍照=>",e),this.$emit("click",e)),n.$destroy(),n.$el.remove()}}}),parent:this}).$mount(t)},readLSIDCard(){this.showIDCardChrome=!0,this.$nextTick((async()=>{try{const e=await(0,Je.oK)();console.log("丽水一体机读取身份证信息=>",e),this.$emit("click",e)}catch(e){throw Error("读取身份证信息失败")}finally{this.showIDCardChrome=!1}}))}}},qt=Ht,Ut=l(qt,$e,Be,!1,null,"617b7fd0",null),Gt=Ut.exports;Gt.install=e=>{e.component(Gt.name,Gt)};var Kt,Qt,Yt=Gt,Zt=function(){var e=this,t=e._self._c;return t("el-container",{directives:[{name:"loading",rawName:"v-loading",value:e.pageLoading,expression:"pageLoading"}],staticClass:"scanner-nko",attrs:{"element-loading-text":e.pageLoadingText}},[t("el-aside",{staticClass:"container-aside"},[t("div",{staticClass:"container-title"},[e._v("扫描配置")]),t("div",{staticClass:"scan-config-form"},[t("el-form",{attrs:{model:e.scanConfig,"label-position":"right","label-width":"72px",disabled:!e.deviceOpend}},[t("el-form-item",{attrs:{label:"扫描源"}},[t("el-select",{attrs:{disabled:e.deviceWorking,placeholder:"请选择扫描源"},on:{change:e.openDeivce},model:{value:e.scanConfig.deviceId,callback:function(t){e.$set(e.scanConfig,"deviceId",t)},expression:"scanConfig.deviceId"}},e._l(e.deviceList,(function(e){return t("el-option",{key:e.deviceId,attrs:{label:e.deviceId,value:e.deviceId}})})),1)],1)],1),t("el-form",{attrs:{model:e.scanConfig,"label-position":"right","label-width":"72px",disabled:!e.isDeviceReady}},[t("el-form-item",{attrs:{label:"进纸模式"}},[t("el-select",{attrs:{placeholder:"请选择进纸模式"},model:{value:e.scanConfig.source,callback:function(t){e.$set(e.scanConfig,"source",t)},expression:"scanConfig.source"}},e._l(e.sourceOptions,(function(e){return t("el-option",{key:e,attrs:{label:e,value:e}})})),1)],1),t("el-form-item",{attrs:{label:"扫描颜色"}},[t("el-select",{attrs:{placeholder:"请选择"},model:{value:e.scanConfig.mode,callback:function(t){e.$set(e.scanConfig,"mode",t)},expression:"scanConfig.mode"}},e._l(e.modeOptions,(function(e){return t("el-option",{key:e,attrs:{label:e,value:e}})})),1)],1),t("el-form-item",{attrs:{label:"分辨率"}},[t("el-select",{attrs:{placeholder:"请选择分辨率"},model:{value:e.scanConfig.resolution,callback:function(t){e.$set(e.scanConfig,"resolution",t)},expression:"scanConfig.resolution"}},e._l(e.resolutionOptions,(function(e){return t("el-option",{key:e,attrs:{label:e,value:e}})})),1)],1),t("el-form-item",{attrs:{label:"纸张类型"}},[t("el-select",{attrs:{placeholder:"请选择纸张类型"},model:{value:e.scanConfig.paperSize,callback:function(t){e.$set(e.scanConfig,"paperSize",t)},expression:"scanConfig.paperSize"}},e._l(e.paperSizeOptions,(function(e){return t("el-option",{key:e,attrs:{label:e,value:e}})})),1)],1),t("el-form-item",{attrs:{label:"文件格式"}},[t("el-select",{attrs:{placeholder:"请选择"},model:{value:e.scanConfig.fileFormat,callback:function(t){e.$set(e.scanConfig,"fileFormat",t)},expression:"scanConfig.fileFormat"}},e._l(e.fileFormatOptions,(function(e){return t("el-option",{key:e,attrs:{label:e,value:e}})})),1)],1)],1),t("div",{staticClass:"text-right"},[t("el-button",{attrs:{type:"primary"},on:{click:e.initScanServiceAPI}},[e._v("连接")]),t("el-button",{attrs:{type:"primary",disabled:!e.isDeviceReady||e.deviceWorking},on:{click:e.doScan}},[e._v("扫描")])],1)],1)]),t("el-container",[t("el-main",{staticClass:"container-main"},[t("div",{staticClass:"container-title"},[e._v("扫描结果")]),t("el-checkbox",{attrs:{indeterminate:e.isIndeterminate},on:{change:e.handleCheckAllChange},model:{value:e.checkAll,callback:function(t){e.checkAll=t},expression:"checkAll"}},[e._v("全选")]),t("div",{staticClass:"image-list"},e._l(e.scanFileList,(function(n,i){return t("div",{key:n.name,class:{"image-list-item":!0,"image-checked":n.checked}},[t("el-image",{attrs:{src:n.url,"preview-src-list":e.imgUrls,"initial-index":e.initialIndex},on:{click:function(t){return e.previewImg(i)}}}),t("div",{staticClass:"image-actions"},[t("el-checkbox",{on:{change:e.handleCheckedChange},model:{value:n.checked,callback:function(t){e.$set(n,"checked",t)},expression:"item.checked"}},[e._v(e._s(n.name))]),t("el-button",{staticStyle:{color:"red"},attrs:{type:"text",icon:"el-icon-delete"},on:{click:function(t){return e.deleteFileEvent(i)}}}),t("el-button",{attrs:{type:"text",icon:"el-icon-upload2"},on:{click:function(t){return e.sendScannerResult(n)}}})],1)],1)})),0)],1),t("el-footer",[t("div",{staticClass:"text-right"},[t("el-button",{attrs:{size:"small",type:"primary",disabled:0===e.scanFileList.length},on:{click:e.clearImgList}},[e._v("清空")]),t("el-button",{attrs:{size:"small",type:"primary",disabled:0===e.scanFileList.length},on:{click:e.batchDelFilesEvent}},[e._v("批量删除")]),t("el-button",{attrs:{size:"small",type:"primary",disabled:0===e.scanFileList.length},on:{click:function(t){return e.sendScannerResult()}}},[e._v("上传")])],1)])],1)],1)},Xt=[];__webpack_require__(2801);(function(e){e["scan"]="scan"})(Kt||(Kt={})),function(e){e["getScanDeivceList"]="001001",e["openScanDeivce"]="001002",e["getScanOptions"]="001003",e["setScanBasicOptions"]="001007",e["scan"]="001008"}(Qt||(Qt={}));const Jt={[Kt.scan]:"扫描"};class en{static startConnect(e){if(this.ws&&this.ws.readyState===WebSocket.OPEN)return this;let t="";switch(e){case Kt.scan:t=this.scanWebSocketUrl;break;default:t=this.iReadCardWebSocketUrl;break}const n=new WebSocket(t);let i;const r=new Promise((e=>{i=e}));return n.onopen=()=>{i(!0)},n.onmessage=e=>{this.handleMessage(e)},n.onclose=()=>this.handleClose(),n.onerror=()=>this.handleError(),this.ws=n,r}static handleError(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("handleError")}));throw Error("统一插件平台赞彩五合一设备功能加载失败")}static handleClose(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("close")}))}static handleMessage(e){let t="";try{t=JSON.parse(e.data)}catch(n){t=""}if("001008"!==t["function"]||0!==t["code"])return"001010"===t["function"]?this.scanCallback(t):(this.requestStore.forEach((({resolve:e})=>{e(t)})),void(this.requestStore=[]))}static async read(e,t,n={}){await this.startConnect(e);const i=Jt[e];if(1===this.ws.readyState){let r;switch(console.log(i+"连接成功"),e){case Kt.scan:r=JSON.stringify({function:t,traceId:"",params:n});break;default:r="";break}return this.ws.send(r),new Promise(((e,t)=>{this.requestStore||(this.requestStore=[]),this.requestStore.push({resolve:e,reject:t})}))}throw Error("统一插件平台"+i+"未准备完成")}static async getDeivceList(){const e=await en.read(Kt.scan,Qt.getScanDeivceList);if(!e)throw Error("未匹配可用的扫描仪设备");if(0!==e.code)throw Error(`执行失败,返回码:${e.code},错误信息:${e.msg}`);return console.log("获取扫描仪==>",e),e.data}static async openScanDeivce(e){const t=await en.read(Kt.scan,Qt.openScanDeivce,{scannerId:e});if(!t)throw Error("未匹配可用的扫描仪设备");if(0!==t.code)throw Error(`执行失败,返回码:${t.code},错误信息:${t.msg}`);return console.log("选中指定扫描仪并打开==>",t),t}static async getScanOptions(){const e=await en.read(Kt.scan,Qt.getScanOptions);if(!e)throw Error("未匹配可用的扫描仪设备");if(0!==e.code)throw Error(`执行失败,返回码:${e.code},错误信息:${e.msg}`);return console.log("获取选中扫描仪可配置项==>",e),e.data}static async setScanBasicOptions(e){const t=await en.read(Kt.scan,Qt.setScanBasicOptions,e);if(!t)throw Error("未匹配可用的扫描仪设备");if(0!==t.code)throw Error(`执行失败,返回码:${t.code},错误信息:${t.msg}`);return console.log("设置配置项==>",t),t}static async scan(e,t="C:\\ScanResult",n="",i=""){this.fileList=[];const r=await en.read(Kt.scan,Qt.scan,{fileFormat:`.${e}`,fileSavePath:t,fileType:"Base64",fileNamePrefix:n,fileNameFormat:i,fileMd5Enabled:!1});if(!r)throw Error("未匹配可用的扫描仪设备");if(0!==r.code)throw Error(`执行失败,返回码:${r.code},错误信息:${r.msg}`);return console.log("扫描==>",r),"001011"===r.function?this.fileList:r}static scanCallback(e){if(0!==e.code)throw Error(e.msg);{const t=e.data.fileName,n=t.substr(t.lastIndexOf(".")+1);let i;return"tiff"===n||"tif"===n||(i=`data:image/${n};base64,${e.data.fileResult}`),this.fileList.push({name:t,url:i})}}static completeCallback(e){if(0!==e.code)throw Error(`执行失败,返回码:${e.code},错误信息:${e.msg}`);console.log(e.data?e.data:e.msg)}static base64ToUint8Array(e){const t="=".repeat((4-e.length%4)%4),n=(e+t).replace(/\-/g,"+").replace(/_/g,"/"),i=window.atob(n),r=new Uint8Array(i.length);for(let a=0;a<i.length;++a)r[a]=i.charCodeAt(a);return r}}V(en,"iReadCardWebSocketUrl",""),V(en,"scanWebSocketUrl","ws://127.0.0.1:51818"),V(en,"ws",void 0),V(en,"requestStore",[]),V(en,"fileList",[]);var tn={name:"scanner-nko",components:{},props:{fileSavePath:{default:"",type:String},fileNamePrefix:{default:"",type:String},fileNameFormat:{default:"",type:String}},data:()=>({pageLoading:!1,pageLoadingText:"正在配置相关设置",deviceList:[],deviceOpend:!1,deviceWorking:!1,scanConfig:{deviceId:null,source:null,resolution:null,mode:null,paperSize:null,fileFormat:null},sourceOptions:[],modeOptions:[],resolutionOptions:[],paperSizeOptions:[],fileFormatOptions:[],scanFileList:[],initialIndex:0,scannerResult:"",isIndeterminate:!1,checkAll:!1}),computed:{isDeviceReady(){return this.scanConfig.deviceId&&this.deviceOpend},imgUrls(){return this.scanFileList.map((e=>e.url))}},created(){},methods:{handleCheckAllChange(e){this.scanFileList.forEach((t=>{t.checked=e})),this.isIndeterminate=!1},handleCheckedChange(){const e=this.scanFileList.filter((e=>e.checked)).length;this.isIndeterminate=e>0&&e<this.scanFileList.length,this.checkAll=this.scanFileList.length>0&&e===this.scanFileList.length},async initScanServiceAPI(){this.pageLoadingText="正在连接扫描服务,请稍候...",this.pageLoading=!0,this.deviceList=await en.getDeivceList(),this.deviceOpend=!0,this.pageLoading=!1},wsCloseCallback(){this.$message.warning("扫描服务连接已断开"),this.pageLoading=!1,this.resetData(),this.deviceList=[],this.scanConfig.deviceId=null},resetData(){this.scanConfig.source=null,this.scanConfig.resolution=null,this.scanConfig.mode=null,this.scanConfig.paperSideviceOpendze=null,this.scanConfig.fileFormat=null,this.sourceOptions=[],this.modeOptions=[],this.resolutionOptions=[],this.paperSizeOptions=[],this.fileFormatOptions=[],this.deviceOpend=!1,this.deviceWorking=!1},openDeivce(){this.pageLoadingText="正在设置扫描源,请稍后...",this.pageLoading=!0,this.resetData(),this.getScanOptions()},async getScanOptions(){this.pageLoadingText="正在获取扫描仪能力,请稍后...",this.pageLoading=!0,await en.openScanDeivce(this.scanConfig.deviceId);var e=await en.getScanOptions();this.sourceOptions=e.source,this.modeOptions=e.mode,this.resolutionOptions=e.resolution,this.paperSizeOptions=e["paper-size"],this.fileFormatOptions=e["image-format"],this.scanConfig.source=this.sourceOptions[0]||null,this.scanConfig.mode=this.modeOptions[0]||null,this.scanConfig.resolution=this.resolutionOptions[0]||null,this.scanConfig.paperSize=this.paperSizeOptions[0]||null,this.scanConfig.fileFormat=this.fileFormatOptions[0]||null,this.deviceOpend=!0,this.pageLoading=!1},async doScan(){if(!this.isDeviceReady||this.deviceWorking)return;this.pageLoadingText="正在提交扫描请求,请稍后...",this.pageLoading=!0,await en.setScanBasicOptions({source:this.scanConfig.source,mode:this.scanConfig.mode,"paper-size":this.scanConfig.paperSize,resolution:this.scanConfig.resolution});const e=await en.scan(this.scanConfig.fileFormat,this.fileSavePath,this.fileNamePrefix,this.fileNameFormat);this.scanFileList=[...this.scanFileList,...e],this.pageLoading=!1},previewImg(e){this.initialIndex=e},clearImgList(){this.scanFileList=[]},deleteFileEvent(e){this.scanFileList.splice(e,1)},batchDelFilesEvent(){let e=[];this.scanFileList.forEach((t=>{t.checked||e.push(t)})),this.scanFileList=e},sendScannerResult(e=null){const t=e?[e]:this.scanFileList.filter((e=>e.checked));t&&0!==t.length&&this.$emit("send-scanner-result",t.map((e=>({name:e.name,url:e.url}))))}}},nn=tn,rn=l(nn,Zt,Xt,!1,null,null,null),an=rn.exports;an.install=e=>{e.component(an.name,an)};var sn=an;const on=[d,b,Fe,Yt,N,ee,Ae,sn],ln=e=>{e.use(i()),ln.installed||on.forEach((t=>{e.component(t.name,t)}))};"undefined"!==typeof window&&window.Vue&&ln(window.Vue);var cn={install:ln,...on},un=cn}(),__webpack_exports__}()}));
24
+ function a(e,t){if(!r.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,a=n in document;if(!a){var s=document.createElement("div");s.setAttribute(n,"return;"),a="function"===typeof s[n]}return!a&&i&&"wheel"===e&&(a=document.implementation.hasFeature("Events.wheel","3.0")),a}r.canUseDOM&&(i=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature("","")),e.exports=a},643:function(e,t,n){"use strict";var i=n(4518),r=n(6534),a=10,s=40,o=800;function l(e){var t=0,n=0,i=0,r=0;return"detail"in e&&(n=e.detail),"wheelDelta"in e&&(n=-e.wheelDelta/120),"wheelDeltaY"in e&&(n=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=n,n=0),i=t*a,r=n*a,"deltaY"in e&&(r=e.deltaY),"deltaX"in e&&(i=e.deltaX),(i||r)&&e.deltaMode&&(1==e.deltaMode?(i*=s,r*=s):(i*=o,r*=o)),i&&!t&&(t=i<1?-1:1),r&&!n&&(n=r<1?-1:1),{spinX:t,spinY:n,pixelX:i,pixelY:r}}l.getEventType=function(){return i.firefox()?"DOMMouseScroll":r("wheel")?"wheel":"mousewheel"},e.exports=l},1033:function(e,t,n){"use strict";n.r(t);var i=function(){if("undefined"!==typeof Map)return Map;function e(e,t){var n=-1;return e.some((function(e,i){return e[0]===t&&(n=i,!0)})),n}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(t){var n=e(this.__entries__,t),i=this.__entries__[n];return i&&i[1]},t.prototype.set=function(t,n){var i=e(this.__entries__,t);~i?this.__entries__[i][1]=n:this.__entries__.push([t,n])},t.prototype.delete=function(t){var n=this.__entries__,i=e(n,t);~i&&n.splice(i,1)},t.prototype.has=function(t){return!!~e(this.__entries__,t)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(e,t){void 0===t&&(t=null);for(var n=0,i=this.__entries__;n<i.length;n++){var r=i[n];e.call(t,r[1],r[0])}},t}()}(),r="undefined"!==typeof window&&"undefined"!==typeof document&&window.document===document,a=function(){return"undefined"!==typeof n.g&&n.g.Math===Math?n.g:"undefined"!==typeof self&&self.Math===Math?self:"undefined"!==typeof window&&window.Math===Math?window:Function("return this")()}(),s=function(){return"function"===typeof requestAnimationFrame?requestAnimationFrame.bind(a):function(e){return setTimeout((function(){return e(Date.now())}),1e3/60)}}(),o=2;function l(e,t){var n=!1,i=!1,r=0;function a(){n&&(n=!1,e()),i&&c()}function l(){s(a)}function c(){var e=Date.now();if(n){if(e-r<o)return;i=!0}else n=!0,i=!1,setTimeout(l,t);r=e}return c}var c=20,u=["top","right","bottom","left","width","height","size","weight"],d="undefined"!==typeof MutationObserver,h=function(){function e(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=l(this.refresh.bind(this),c)}return e.prototype.addObserver=function(e){~this.observers_.indexOf(e)||this.observers_.push(e),this.connected_||this.connect_()},e.prototype.removeObserver=function(e){var t=this.observers_,n=t.indexOf(e);~n&&t.splice(n,1),!t.length&&this.connected_&&this.disconnect_()},e.prototype.refresh=function(){var e=this.updateObservers_();e&&this.refresh()},e.prototype.updateObservers_=function(){var e=this.observers_.filter((function(e){return e.gatherActive(),e.hasActive()}));return e.forEach((function(e){return e.broadcastActive()})),e.length>0},e.prototype.connect_=function(){r&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),d?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){r&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,n=void 0===t?"":t,i=u.some((function(e){return!!~n.indexOf(e)}));i&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),f=function(e,t){for(var n=0,i=Object.keys(t);n<i.length;n++){var r=i[n];Object.defineProperty(e,r,{value:t[r],enumerable:!1,writable:!1,configurable:!0})}return e},p=function(e){var t=e&&e.ownerDocument&&e.ownerDocument.defaultView;return t||a},m=k(0,0,0,0);function g(e){return parseFloat(e)||0}function v(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return t.reduce((function(t,n){var i=e["border-"+n+"-width"];return t+g(i)}),0)}function b(e){for(var t=["top","right","bottom","left"],n={},i=0,r=t;i<r.length;i++){var a=r[i],s=e["padding-"+a];n[a]=g(s)}return n}function y(e){var t=e.getBBox();return k(0,0,t.width,t.height)}function C(e){var t=e.clientWidth,n=e.clientHeight;if(!t&&!n)return m;var i=p(e).getComputedStyle(e),r=b(i),a=r.left+r.right,s=r.top+r.bottom,o=g(i.width),l=g(i.height);if("border-box"===i.boxSizing&&(Math.round(o+a)!==t&&(o-=v(i,"left","right")+a),Math.round(l+s)!==n&&(l-=v(i,"top","bottom")+s)),!_(e)){var c=Math.round(o+a)-t,u=Math.round(l+s)-n;1!==Math.abs(c)&&(o-=c),1!==Math.abs(u)&&(l-=u)}return k(r.left,r.top,o,l)}var w=function(){return"undefined"!==typeof SVGGraphicsElement?function(e){return e instanceof p(e).SVGGraphicsElement}:function(e){return e instanceof p(e).SVGElement&&"function"===typeof e.getBBox}}();function _(e){return e===p(e).document.documentElement}function x(e){return r?w(e)?y(e):C(e):m}function S(e){var t=e.x,n=e.y,i=e.width,r=e.height,a="undefined"!==typeof DOMRectReadOnly?DOMRectReadOnly:Object,s=Object.create(a.prototype);return f(s,{x:t,y:n,width:i,height:r,top:n,right:t+i,bottom:r+n,left:t}),s}function k(e,t,n,i){return{x:e,y:t,width:n,height:i}}var I=function(){function e(e){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=k(0,0,0,0),this.target=e}return e.prototype.isActive=function(){var e=x(this.target);return this.contentRect_=e,e.width!==this.broadcastWidth||e.height!==this.broadcastHeight},e.prototype.broadcastRect=function(){var e=this.contentRect_;return this.broadcastWidth=e.width,this.broadcastHeight=e.height,e},e}(),E=function(){function e(e,t){var n=S(t);f(this,{target:e,contentRect:n})}return e}(),D=function(){function e(e,t,n){if(this.activeObservations_=[],this.observations_=new i,"function"!==typeof e)throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=e,this.controller_=t,this.callbackCtx_=n}return e.prototype.observe=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!==typeof Element&&Element instanceof Object){if(!(e instanceof p(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)||(t.set(e,new I(e)),this.controller_.addObserver(this),this.controller_.refresh())}},e.prototype.unobserve=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!==typeof Element&&Element instanceof Object){if(!(e instanceof p(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)&&(t.delete(e),t.size||this.controller_.removeObserver(this))}},e.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},e.prototype.gatherActive=function(){var e=this;this.clearActive(),this.observations_.forEach((function(t){t.isActive()&&e.activeObservations_.push(t)}))},e.prototype.broadcastActive=function(){if(this.hasActive()){var e=this.callbackCtx_,t=this.activeObservations_.map((function(e){return new E(e.target,e.broadcastRect())}));this.callback_.call(e,t,e),this.clearActive()}},e.prototype.clearActive=function(){this.activeObservations_.splice(0)},e.prototype.hasActive=function(){return this.activeObservations_.length>0},e}(),A="undefined"!==typeof WeakMap?new WeakMap:new i,O=function(){function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=h.getInstance(),i=new D(t,n,this);A.set(this,i)}return e}();["observe","unobserve","disconnect"].forEach((function(e){O.prototype[e]=function(){var t;return(t=A.get(this))[e].apply(t,arguments)}}));var T=function(){return"undefined"!==typeof a.ResizeObserver?a.ResizeObserver:O}();t["default"]=T},1478:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.d(__webpack_exports__,{g$:function(){return tsToJs},oK:function(){return GetIDCardOnly},xj:function(){return loadCamera}});var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(7658),core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__),tsToJs={getElement:function Stirng(flag,photoId){var plugin;if(1==flag){console.log("人脸识别开始-----");var plugin=document.getElementById("facePlugin");console.log("plugin-----",plugin);var data="$=Action",temp=plugin.SendDataToADB("127.0.0.1",1352,15e3,data,data.length);if(console.log(temp+"-----===="),"undefined"===typeof temp)return null;var str=temp.split("$"),result=str[1].split("=#=")[1];console.log("result:"+result+"-----++++");var name=str[2].split("=#=")[1],sex=str[3].split("=#=")[1],cardNo=str[4].split("=#=")[1];console.log("cardNo:"+cardNo+"-----++++");var address=str[5].split("=#=")[1],birthday=str[6].split("=#=")[1],cardImg=str[8].split("=#=")[1],faceImg=str[9].split("=#=")[1],race=str[10].split("=#=")[1],regOrg=str[11].split("=#=")[1],validTime=str[12].split("=#=")[1],validTimeStart=validTime.split("-")[0],validTimeEnd=validTime.split("-")[1],objSfz={idCard:{info:{name:name.toString(),sex:sex.toString(),nation:race.toString(),birthday:birthday.toString(),address:address.toString(),cardId:cardNo.toString(),police:regOrg.toString(),validStart:validTimeStart.toString(),validEnd:validTimeEnd.toString(),sexCode:"",nationCode:""},headImage:cardImg.toString()},faceimg:faceImg.toString(),zt:""};return console.log("-------------------objSfz成功返回数据---------------------"),console.log("人脸识别结果===>",objSfz),objSfz}if(2==flag){plugin=document.getElementById("plugin");var temp2=plugin.On_OpenDevice(1001),obj=eval("("+temp2+")");return"undefined"!=typeof obj["照片"]&&(photoId&&document.getElementById(photoId)&&(document.getElementById(photoId).src="data:image/jpeg;base64,"+obj["照片"]),console.log(obj["身份证号2"]+"._____."),console.log(obj["照片2"]+"._____.-----------")),obj}if(3==flag){console.log("-----开始读取身份证信息-----");var plugin=document.getElementById("plugin"),temp2=plugin.On_OpenDevice(1001),obj=eval("("+temp2+")"),result={info:{name:obj["姓名"],sex:obj["性别"],nation:obj["名族"],birthday:obj["出生日期"],address:obj["地址"],cardId:obj["身份证号"],police:obj["发证机关"],validStart:obj["有效期开始"],validEnd:obj["有效期结束"],sexCode:"",nationCode:""},headImage:obj["照片"]};return console.log("-----身份证信息读取结果-----"),console.log(result),result}if(4==flag)return GetIDCardAndMatchImage()},getExportInfo:function(){var e="",t="";return $.ajaxSettings.async=!1,$.get("assets/xml/Export.xml",!1,(function(n){var i=[],r=[];$(n).find("ElementTable").each((function(){var e=$(this),t=e.attr("ColumnName"),n=e.attr("CaptionName");i.push(t),r.push(n)})),e=i.join(","),t=r.join(","),xmlxx={columNameStr:e,captionNameStr:t}})),$.ajaxSettings.async=!0,xmlxx},getAreaData:function(){$.ajaxSettings.async=!1;var e=[],t=[];return $.get("assets/xml/AreaData.xml",(function(n){$(n).find("ElementTable").each((function(){var n=$(this),i=n.attr("tableName"),r=n.children("DataBaseLink").attr("Name");e.push(i),t.push(r)}))})),$.ajaxSettings.async=!0,xmlxx={nameArray:e,dataBaseLinkArray:t},xmlxx},getAreaTable:function(){$.ajaxSettings.async=!1;var e=[];return $.get("assets/xml/AreaData.xml",(function(t){$(t).find("ElementTable").each((function(){var t=$(this),n=t.attr("tableName"),i=t.children("DataBaseLink").attr("Name");xmlxx={tableName:n,dataBaseLink:i},e.push(xmlxx)}))})),$.ajaxSettings.async=!0,e},getPhoto:function(e,t){document.getElementById(t).src="data:image/jpeg;base64,"+e},printImg:function(e){$("#"+e).jqprint()}};function loadCamera(){document.getElementById("IDCard_chrome");var e=document.getElementById("camera_row");e.innerHTML='<object clsid="{23D85CA3-E783-431E-A229-18BB6BEB9AD9}" type="application/x-itst-activex" width=320 height=240 name="FaceObj"></object>'}function GetIDCardOnly(){var e=document.getElementById("IDCard_chrome"),t=e.OpenDevice();if(0==t){t=e.ReadIDCardInfo();var n={info:{name:e.IDName,sex:e.IDSex,nation:e.IDFolk,birthday:e.IDBirth,address:e.IDAddress,cardId:e.IDNumber,police:e.IDOrgan,validStart:e.IDTermBegin.substring(0,4)+"."+e.IDTermBegin.substring(4,6)+"."+e.IDTermBegin.substring(6,8),validEnd:e.IDTermEnd.substring(0,4)+"."+e.IDTermEnd.substring(4,6)+"."+e.IDTermEnd.substring(6,8),sexCode:"",nationCode:""},headImage:e.IDPhoto64};return n}debug("一体机启动失败")}function GetIDCardAndMatchImage(){console.log("-----开启一体机功能-----");var e=document.getElementById("IDCard_chrome"),t=e.OpenDevice();if(0==t){t=e.ReadIDCardInfo();var n={idCard:{info:{name:e.IDName,sex:e.IDSex,nation:e.IDFolk,birthday:e.IDBirth,address:e.IDAddress,cardId:e.IDNumber,police:e.IDOrgan,validStart:e.IDTermBegin.substring(0,4)+"."+e.IDTermBegin.substring(4,6)+"."+e.IDTermBegin.substring(6,8),validEnd:e.IDTermEnd.substring(0,4)+"."+e.IDTermEnd.substring(4,6)+"."+e.IDTermEnd.substring(6,8),sexCode:"",nationCode:""},headImage:e.IDPhoto64},faceimg:"",zt:""};return MatchImage(n)}debug("一体机启动失败")}function MatchImage(e){var t=FaceObj.MatchFace(e.idCard.headImage),n=JSON.parse(t);return e.faceimg=n.image,e.zt=n.retinfo,console.log(e),e}},2823:function(e,t,n){var i=n(8563);e.exports=function(e,t,n){return void 0===n?i(e,t,!1):i(e,n,!1!==t)}},4592:function(e,t,n){var i=n(8563),r=n(2823);e.exports={throttle:i,debounce:r}},8563:function(e){e.exports=function(e,t,n,i){var r,a=0;function s(){var s=this,o=Number(new Date)-a,l=arguments;function c(){a=Number(new Date),n.apply(s,l)}function u(){r=void 0}i&&!r&&c(),r&&clearTimeout(r),void 0===i&&o>e?c():!0!==t&&(r=setTimeout(i?u:c,void 0===i?e-o:e))}return"boolean"!==typeof t&&(i=n,n=t,t=void 0),s}},2234:function(e,t,n){"use strict";e.exports=n.p+"img/idcardbg1.1f8e1fc6.gif"},4923:function(e,t,n){"use strict";e.exports=n.p+"img/idcardbg2.2e47b05f.gif"},5053:function(e,t,n){"use strict";e.exports=n.p+"img/img_blank_empty.92ddadbb.png"},7203:function(e){"use strict";e.exports=__WEBPACK_EXTERNAL_MODULE__7203__}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var n=__webpack_module_cache__[e]={id:e,loaded:!1,exports:{}};return __webpack_modules__[e].call(n.exports,n,n.exports,__webpack_require__),n.loaded=!0,n.exports}!function(){__webpack_require__.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return __webpack_require__.d(t,{a:t}),t}}(),function(){__webpack_require__.d=function(e,t){for(var n in t)__webpack_require__.o(t,n)&&!__webpack_require__.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}}(),function(){__webpack_require__.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){__webpack_require__.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}(),function(){__webpack_require__.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}}(),function(){__webpack_require__.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e}}(),function(){__webpack_require__.p=""}();var __webpack_exports__={};return function(){"use strict";if(__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{default:function(){return un}}),"undefined"!==typeof window){var e=window.document.currentScript,t=e&&e.src.match(/(.+\/)[^/]+\.js(\?.*)?$/);t&&(__webpack_require__.p=t[1])}var n=__webpack_require__(4720),i=__webpack_require__.n(n),r=function(){var e=this;e._self._c;return e._m(0)},a=[function(){var e=this,t=e._self._c;return t("div",{staticClass:"zs-empty"},[t("img",{attrs:{src:__webpack_require__(5053)}})])}],s={name:"zs-empty",props:{emptyTip:{default:"暂无数据",type:String}},methods:{}},o=s;function l(e,t,n,i,r,a,s,o){var l,c="function"===typeof e?e.options:e;if(t&&(c.render=t,c.staticRenderFns=n,c._compiled=!0),i&&(c.functional=!0),a&&(c._scopeId="data-v-"+a),s?(l=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"===typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(s)},c._ssrRegister=l):r&&(l=o?function(){r.call(this,(c.functional?this.parent:this).$root.$options.shadowRoot)}:r),l)if(c.functional){c._injectStyles=l;var u=c.render;c.render=function(e,t){return l.call(t),u(e,t)}}else{var d=c.beforeCreate;c.beforeCreate=d?[].concat(d,l):[l]}return{exports:e,options:c}}var c=l(o,r,a,!1,null,"88c40896",null),u=c.exports;u.install=e=>{e.component(u.name,u)};var d=u,h=function(){var e=this,t=e._self._c;return e.tip?t("el-tooltip",{staticClass:"id-card-reader-demo",attrs:{content:e.tip,placement:"top"}},[t("el-button",e._b({on:{click:e.handleClick}},"el-button",{disabled:e.disabled,icon:e.icon,loading:e.loading,plain:e.plain,round:e.round,size:e.size,type:e.type,class:e._className},!1),[e._t("default",(function(){return[e._v(e._s(e.label))]}))],2)],1):t("el-button",e._b({on:{click:e.handleClick}},"el-button",{disabled:e.disabled,icon:e.icon,loading:e.loading,plain:e.plain,round:e.round,size:e.size,type:e.type,class:e._className},!1),[e._t("default",(function(){return[e._v(e._s(e.label))]}))],2)},f=[],p=(__webpack_require__(7658),{name:"id-card-reader-demo",props:{label:{default:"",type:String},tip:{default:"",type:String},className:{default:"",type:String},size:{default:"mini",type:String},type:{default:"primary",type:String},plain:{default:!1,type:Boolean},round:{default:!1,type:Boolean},loading:{default:!1,type:Boolean},icon:{default:"el-icon-postcard",type:String},disabled:{default:!1,type:Boolean}},computed:{_className(){const e=["z-button"];return"text"===this.type&&e.push("i-font-size"),this.className?("string"===typeof this.className?e.push(this.className):e.push(...this.className),e):e}},methods:{handleClick(){const e={info:{name:"",sex:"",nation:"",birthday:"",address:"",cardId:"",police:"",validStart:"",validEnd:""},headImage:""};this.$emit("click",e)}}}),m=p,g=l(m,h,f,!1,null,"3d89866c",null),v=g.exports;v.install=e=>{e.component(v.name,v)};var b=v,y=function(){var e=this,t=e._self._c;return t("div",{staticClass:"scanner-high-camera-container"},["dialog"===e.openMode?t("div",{staticClass:"scanner-high-camera-button"},[e.tip?t("el-tooltip",{staticClass:"id-card-reader-demo",attrs:{content:e.tip,placement:"top"}},[t("el-button",e._b({on:{click:e.openScanDialog}},"el-button",{disabled:e.disabled,icon:e.icon,loading:e.loading,plain:e.plain,round:e.round,size:e.size,type:e.type,class:e._className},!1),[e._t("default",(function(){return[e._v(e._s(e.label))]}))],2)],1):t("el-button",e._b({on:{click:e.openScanDialog}},"el-button",{disabled:e.disabled,icon:e.icon,loading:e.loading,plain:e.plain,round:e.round,size:e.size,type:e.type,class:e._className},!1),[e._t("default",(function(){return[e._v(e._s(e.label))]}))],2),t("el-dialog",{staticClass:"scanner-high-camera-dialog",attrs:{title:"影像扫描",visible:e.dialogVisible,width:"60%"},on:{"update:visible":function(t){e.dialogVisible=t}}},[e.dialogVisible?t("scanner-high-camera-component",{on:{"send-scanner-result":e.setScannerResult},scopedSlots:e._u([{key:"action",fn:function(){return[e._t("right-action")]},proxy:!0}],null,!0)}):e._e(),t("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[t("el-button",{attrs:{size:"small"},on:{click:function(t){e.dialogVisible=!1}}},[e._v("取 消")]),t("el-button",{attrs:{size:"small",type:"primary"},on:{click:e.sendScannerResult}},[e._v("确 定")])],1)],1)],1):t("scanner-high-camera-component",{on:{"send-scanner-result":e.setScannerResult},scopedSlots:e._u([{key:"action",fn:function(){return[e._t("right-action")]},proxy:!0}],null,!0)})],1)},C=[],w=function(){var e=this,t=e._self._c;return t("div",{staticClass:"scanner-high-camera-component"},[t("div",{staticClass:"scanner-result-content"},[t("div",{staticClass:"content-main flex-1"},[e.loadSuccess?t("div",{staticClass:"load-success"},[t("img",{attrs:{id:"photo",src:e.scannerResultSrc}})]):t("div",{staticClass:"load-error"},[t("i",{staticClass:"el-icon-s-cooperation"}),t("p",[e._v("请先安装插件")])])]),t("div",{staticClass:"handle-action"},[t("el-select",{staticClass:"select",attrs:{size:"small"},on:{change:e.selectChange},model:{value:e.camera,callback:function(t){e.camera=t},expression:"camera"}},e._l(e.cameras,(function(e){return t("el-option",{key:e.value,attrs:{label:e.name,value:e.value}})})),1),e._l(e.buttonList,(function(n){return[t("el-button",{key:n.name,attrs:{type:"primary",size:"small"},on:{click:function(t){return e.handleAction(n.name)}}},[e._v(e._s(n.label))]),e._t("action")]}))],2)])])},_=[];const x="data:image/jpeg;base64,";var S={name:"scanner-high-camera-component",data:()=>({totalTimeLength:0,timeLength:"",timer:0,str1:"",str2:"",webSocket:{},scannerResultSrc:"",loadSuccess:!0,camera:0,cameras:[{name:"文档",value:0},{name:"照片",value:1}],buttonList:[{label:"拍照",name:"take-pictures"}]}),mounted(){this.webSocket=new WebSocket("ws://127.0.0.1:1818"),window.onbeforeunload=()=>{this.webSocket.send("bStopPlay()"),this.webSocket.send("bStopPlay4()")},this.webSocket.onerror=e=>{this.onError(e)},this.webSocket.onopen=e=>{this.onOpen(e)},this.webSocket.onclose=e=>{this.onClose(e),this.webSocket.send("bStopPlay()")},this.webSocket.onmessage=e=>{this.onMessage(e)},setTimeout((()=>{this.handleAction("start-main")}),800)},destroyed(){this.handleAction("stop"),this.webSocket.close()},methods:{selectChange(e){let t=1===e?"start-vice":"start-main";this.handleAction(t)},handleAction(e){switch(e){case"start-main":this.StartPlay_onclick();break;case"rotation":this.start("bStartPlayRotate(90)");break;case"start-vice":this.start("bStartPlay2");break;case"stop":this.start("bStopPlay");break;case"autofocus":this.start("AutoFocus");break;case"Black edge":this.start("vSetDelHBFlag(true)");break;case"base64":this.start("sGetBase64");break;case"start-record":this.start("bStartRec(d:\\test.avi)");break;case"stop-record":this.start("bStopRec");break;case"take-pictures":this.start("bSaveJPG(D:\\,Photo)"),this.$emit("send-scanner-result",this.scannerResultSrc);break}},timeGo(){this.totalTimeLength++;let e=0,t=0,n=0;e=Math.floor(this.totalTimeLength/3600),t=Math.floor(this.totalTimeLength/60%60),n=Math.floor(this.totalTimeLength%60),this.timeLength=e+"时"+t+"分"+n+"秒"},onMessage(e){e.data.indexOf("BarCodeTransferBegin")>=0?console.log(e.data.replace("BarCodeTransferBegin","").replace("BarCodeTransferEnd","")):e.data.indexOf("BeginbSaveJPG")>=0?(this.str1=e.data.replace("BeginbSaveJPG","").replace("EndbSaveJPG",""),console.log(this.str1)):e.data.indexOf("BeginbStopPlay")>=0?(console.log(e.data),console.log(e.data.replace("BeginbStopPlay","").replace("EndbStopPlay",""))):e.data.indexOf("BeginvSetResolution")>=0?console.log(e.data.replace("BeginvSetResolution","").replace("EndvSetResolution","")):e.data.indexOf("BeginvSetRemoveGBFlag")>=0?console.log(e.data.replace("BeginvSetRemoveGBFlag","").replace("EndvSetRemoveGBFlag","")):e.data.indexOf("BeginbFileExist")>=0?console.log(e.data.replace("BeginbFileExist","").replace("EndbFileExist","")):e.data.indexOf("BeginbStartPlay2")>=0?console.log(e.data.replace("BeginbStartPlay2","").replace("EndbStartPlay2","")):e.data.indexOf("BeginbStartPlay")>=0?console.log(e.data.replace("BeginbStartPlay","").replace("EndbStartPlay","")):e.data.indexOf("BeginbSetMode")>=0?console.log(e.data.replace("BeginbSetMode","").replace("EndbSetMode","")):this.scannerResultSrc=`${x}${e.data}`},onError(e){console.log("error",e.data),this.loadSuccess=!1},onClose(e){this.webSocket.send("bStopPlay()"),this.webSocket.send("bStopPlay4()")},onOpen(e){},start(e){return"bStartRec(d:\\test.avi)"==e&&(this.timer=window.setInterval(this.timeGo,1e3)),"bStopRec"==e&&(window.clearInterval(this.timer),this.totalTimeLength=0,console.log("录屏结束")),this.webSocket.send(e),!1},vout_OnClick(){},Stop_onclick(){this.webSocket.send("bStopPlay()")},StartPlay_onclick(){this.webSocket.send("vSetResolution(8)"),this.webSocket.send("bStartPlay()")}}},k=S,I=l(k,w,_,!1,null,"e24dd0c8",null),E=I.exports,D={name:"scanner-high-camera-jieyu",components:{ScannerHighCameraComponent:E},props:{openMode:{default:"",type:String},label:{default:"",type:String},tip:{default:"",type:String},className:{default:"",type:String},size:{default:"",type:String},type:{default:"",type:String},plain:{default:!1,type:Boolean},round:{default:!1,type:Boolean},loading:{default:!1,type:Boolean},icon:{default:"",type:String},disabled:{default:!1,type:Boolean}},data:()=>({dialogVisible:!1,scannerResult:""}),computed:{_className(){const e=["z-button"];return"text"===this.type&&e.push("i-font-size"),this.className?("string"===typeof this.className?e.push(this.className):e.push(...this.className),e):e}},methods:{openScanDialog(){this.dialogVisible=!0},setScannerResult(e){this.scannerResult=e,"dialog"!==this.openMode&&this.$emit("send-scanner-result",this.scannerResult)},sendScannerResult(){this.scannerResult&&(this.$emit("send-scanner-result",this.scannerResult),this.dialogVisible=!1)}}},A=D,O=l(A,y,C,!1,null,"ffa79d1e",null),T=O.exports;T.install=e=>{e.component(T.name,T)};var M,N=T,P=function(){var e=this,t=e._self._c;return t("div",{staticClass:"scanner-high-camera-container"},["dialog"===e.openMode?t("div",{staticClass:"scanner-high-camera-button"},[e.tip?t("el-tooltip",{staticClass:"id-card-reader-demo",attrs:{content:e.tip,placement:"top"}},[t("el-button",e._b({on:{click:e.openScanDialog}},"el-button",{disabled:e.disabled,icon:e.icon,loading:e.loading,plain:e.plain,round:e.round,size:e.size,type:e.type,class:e._className},!1),[e._t("default",(function(){return[e._v(e._s(e.label))]}))],2)],1):t("el-button",e._b({on:{click:e.openScanDialog}},"el-button",{disabled:e.disabled,icon:e.icon,loading:e.loading,plain:e.plain,round:e.round,size:e.size,type:e.type,class:e._className},!1),[e._t("default",(function(){return[e._v(e._s(e.label))]}))],2),t("el-dialog",{staticClass:"scanner-high-camera-dialog",attrs:{title:"影像扫描",visible:e.dialogVisible,width:"60%"},on:{"update:visible":function(t){e.dialogVisible=t}}},[e.dialogVisible?t("scanner-eloam-component",{on:{"send-scanner-result":e.setScannerResult},scopedSlots:e._u([{key:"action",fn:function(){return[e._t("right-action")]},proxy:!0}],null,!0)}):e._e(),t("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[t("el-button",{attrs:{size:"small"},on:{click:function(t){e.dialogVisible=!1}}},[e._v("取 消")]),t("el-button",{attrs:{size:"small",type:"primary"},on:{click:e.sendScannerResult}},[e._v("确 定")])],1)],1)],1):t("scanner-eloam-component",{on:{"send-scanner-result":e.setScannerResult},scopedSlots:e._u([{key:"action",fn:function(){return[e._t("right-action")]},proxy:!0}],null,!0)})],1)},j=[],R=function(){var e=this,t=e._self._c;return t("div",{staticClass:"scanner-high-camera-component"},[t("div",{staticClass:"scanner-result-content"},[t("div",{staticClass:"content-main flex-1"},[e.loadSuccess?t("div",{staticClass:"load-success"},[t("img",{staticStyle:{width:"800px",height:"600px"},attrs:{id:"photo",src:e.scannerVideoSrc}})]):t("div",{staticClass:"load-error"},[t("i",{staticClass:"el-icon-s-cooperation"}),t("p",[e._v("请先安装插件")])])]),t("div",{staticClass:"handle-action"},[t("el-select",{staticClass:"select",attrs:{size:"small"},on:{change:e.selectChange},model:{value:e.camera,callback:function(t){e.camera=t},expression:"camera"}},e._l(e.cameras,(function(e){return t("el-option",{key:e.value,attrs:{label:e.name,value:e.value}})})),1),e._l(e.buttonList,(function(n){return[t("el-button",{key:n.name,attrs:{type:"primary",size:"small"},on:{click:function(t){return e.handleAction(n.name)}}},[e._v(e._s(n.label))]),e._t("action")]}))],2)])])},L=[];function F(e){return F="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},F(e)}function $(e,t){if("object"!==F(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var i=n.call(e,t||"default");if("object"!==F(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function B(e){var t=$(e,"string");return"symbol"===F(t)?t:String(t)}function V(e,t,n){return t=B(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class z{static startConnect(e,t,n={}){return new Promise(((i,r)=>{let a=new XMLHttpRequest;if(e=e.toUpperCase(),"GET"==e){let e="";Object.keys(n).forEach((t=>{e+=`${t}=${n[t]}&`})),e=e.substring(0,e.lastIndexOf("&")),t=t+"?"+e}else"POST"==e||r("error method: Currently only supported GET or POST method!");a.open(e,t,!0),a.setRequestHeader("Accept","application/json"),"GET"===e?a.send():a.send(JSON.stringify(n)),a.onreadystatechange=function(){if(4===this.readyState)if(200===this.status){let e=this.response;"object"!==typeof e&&(e=JSON.parse(e)),i(e)}else r(a)}}))}static async get(e){let t=await z.startConnect("GET",e);return t}static async post(e,t){let n=await z.startConnect("POST",e,t);return n}}(function(e){e["ScannerMainCamera_Base64"]="ScannerMainCamera_Base64",e["ScannerSecondaryCamera_Base64"]="ScannerSecondaryCamera_Base64",e["ReadIDCard_Base64"]="ReadIDCard_Base64"})(M||(M={}));M.ScannerMainCamera_Base64,M.ScannerSecondaryCamera_Base64,M.ReadIDCard_Base64;class W{static get mainCameraUrl(){return this.baseServiceUrl+"/video=stream&camidx=0"}static get secondaryCameraUrl(){return this.baseServiceUrl+"/video=stream&camidx=1"}static async read(e){let t={},n="";switch(e){case M.ScannerMainCamera_Base64:n=this.baseServiceUrl+"/video=grabimage",t={filepath:"base64",rotate:"0",deskew:"1",camidx:"0",ColorMode:"0",quality:"0"};break;case M.ScannerSecondaryCamera_Base64:n=this.baseServiceUrl+"/video=grabimage",t={filepath:"base64",rotate:"0",deskew:"0",camidx:"1",ColorMode:"0",quality:"0"};break;case M.ReadIDCard_Base64:n=this.baseServiceUrl+"/card=idcard";break}let i=await z.post(n,t);return i}static async scanByMainCamera(){const e=await W.read(M.ScannerMainCamera_Base64);return e.photoBase64}static async scanBySecondaryCamera(){const e=await W.read(M.ScannerSecondaryCamera_Base64);return e.photoBase64}static async idCardRead(){const e=await W.read(M.ReadIDCard_Base64);let{name:t,sex:n,birthday:i,address:r,cardID:a,nationCode:s,photoBase64:o,issueOrgan:l,validStart:c,validEnd:u}=e.IDCardInfo;const d={info:{name:t,sex:n,birthday:i.replace("-","").replace("-",""),address:r,cardId:a,nation:s,police:l,validStart:c,validEnd:u},headImage:o};return d}}V(W,"baseServiceUrl","http://127.0.0.1:38088");const H="data:image/jpg;base64,";var q={name:"scanner-eloam-component",data:()=>({totalTimeLength:0,timeLength:"",timer:0,str1:"",str2:"",webSocket:{},scannerVideoSrc:"",scannerResultSrc:"",loadSuccess:!0,camera:0,cameras:[{name:"文档",value:0},{name:"照片",value:1}],buttonList:[{label:"拍照",name:"take-pictures"}]}),created(){this.scannerVideoSrc=W.mainCameraUrl},methods:{selectChange(e){let t=1===e?"start-vice":"start-main";this.handleAction(t)},handleAction(e){switch(e){case"start-main":this.scannerVideoSrc=W.mainCameraUrl;break;case"start-vice":this.scannerVideoSrc=W.secondaryCameraUrl;break;case"take-pictures":this.takePictures();break}},async takePictures(){if(0===this.camera){const e=await W.scanByMainCamera();this.$emit("send-scanner-result",`${H}${e}`)}else{const e=await W.scanBySecondaryCamera();this.$emit("send-scanner-result",`${H}${e}`)}}}},U=q,G=l(U,R,L,!1,null,"428304e7",null),K=G.exports,Q={name:"scanner-eloam",components:{ScannerEloamComponent:K},props:{openMode:{default:"",type:String},label:{default:"",type:String},tip:{default:"",type:String},className:{default:"",type:String},size:{default:"",type:String},type:{default:"",type:String},plain:{default:!1,type:Boolean},round:{default:!1,type:Boolean},loading:{default:!1,type:Boolean},icon:{default:"",type:String},disabled:{default:!1,type:Boolean}},data:()=>({dialogVisible:!1,scannerResult:""}),computed:{_className(){const e=["z-button"];return"text"===this.type&&e.push("i-font-size"),this.className?("string"===typeof this.className?e.push(this.className):e.push(...this.className),e):e}},methods:{openScanDialog(){this.dialogVisible=!0},setScannerResult(e){this.scannerResult=e,"dialog"!==this.openMode&&this.$emit("send-scanner-result",this.scannerResult)},sendScannerResult(){this.scannerResult&&(this.$emit("send-scanner-result",this.scannerResult),this.dialogVisible=!1)}}},Y=Q,Z=l(Y,P,j,!1,null,"a80d3a26",null),X=Z.exports;X.install=e=>{e.component(X.name,X)};var J,ee=X,te=function(){var e=this,t=e._self._c;return t("div",{staticClass:"scanner-camera-container"},["dialog"===e.openMode?t("div",{staticClass:"scanner-camera-button"},[e.tip?t("el-tooltip",{staticClass:"id-card-reader-demo",attrs:{content:e.tip,placement:"top"}},[t("el-button",e._b({on:{click:e.openScanDialog}},"el-button",{disabled:e.disabled,icon:e.icon,loading:e.loading,plain:e.plain,round:e.round,size:e.size,type:e.type,class:e._className},!1),[e._t("default",(function(){return[e._v(e._s(e.label))]}))],2)],1):t("el-button",e._b({on:{click:e.openScanDialog}},"el-button",{disabled:e.disabled,icon:e.icon,loading:e.loading,plain:e.plain,round:e.round,size:e.size,type:e.type,class:e._className},!1),[e._t("default",(function(){return[e._v(e._s(e.label))]}))],2),t("el-dialog",{staticClass:"scanner-camera-dialog",attrs:{title:"影像扫描",visible:e.dialogVisible,width:"60%"},on:{"update:visible":function(t){e.dialogVisible=t}}},[e.dialogVisible?t("scanner-camera-component",{attrs:{"machine-type":e.machineType},on:{"send-scanner-result":e.setScannerResult},scopedSlots:e._u([{key:"action",fn:function(){return[e._t("right-action")]},proxy:!0}],null,!0)}):e._e(),t("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[t("el-button",{attrs:{size:"small"},on:{click:function(t){e.dialogVisible=!1}}},[e._v("取 消")]),t("el-button",{attrs:{size:"small",type:"primary"},on:{click:e.sendScannerResult}},[e._v("确 定")])],1)],1)],1):t("scanner-camera-component",{attrs:{"machine-type":e.machineType},on:{"send-scanner-result":e.setScannerResult},scopedSlots:e._u([{key:"action",fn:function(){return[e._t("right-action")]},proxy:!0}],null,!0)})],1)},ne=[],ie=function(){var e=this,t=e._self._c;return t("div",{staticClass:"scanner-high-camera-component"},[t("div",{staticClass:"scanner-result-content"},[t("div",{staticClass:"content-main flex-1"},[e.loadSuccess?t("div",{staticClass:"load-success"},[t("img",{staticStyle:{width:"800px",height:"600px"},attrs:{id:"photo",src:e.scannerVideoSrc}})]):t("div",{staticClass:"load-error"},[t("i",{staticClass:"el-icon-s-cooperation"}),t("p",[e._v("请先安装插件")])])]),t("div",{staticClass:"handle-action"},[t("el-select",{staticClass:"select",attrs:{size:"small"},on:{change:e.selectChange},model:{value:e.camera,callback:function(t){e.camera=t},expression:"camera"}},e._l(e.cameras,(function(e){return t("el-option",{key:e.value,attrs:{label:e.name,value:e.value}})})),1),[e._l(e.buttonList,(function(n){return[e._isShowButton(n.name)?t("el-button",{key:n.name,attrs:{type:"primary",size:"small"},on:{click:function(t){return e.handleAction(n.name)}}},[e._v(e._s(n.label))]):e._e()]})),e._t("action")]],2)])])},re=[];class ae{static startConnect(e,t,n={},i={}){return new Promise(((r,a)=>{let s=new XMLHttpRequest;if(e=e.toUpperCase(),"GET"==e){let e="";Object.keys(n).forEach((t=>{e+=`${t}=${n[t]}&`})),e=e.substring(0,e.lastIndexOf("&")),t=e?t+"?"+e:t}else"POST"==e||a("error method: Currently only supported GET or POST method!");console.log(e,t),s.open(e,t,!0),s.setRequestHeader("Accept","application/json"),i&&Object.keys(i).forEach((e=>{s.setRequestHeader(e,i[e])})),"GET"===e?s.send():s.send(JSON.stringify(n)),s.onreadystatechange=function(){if(4===this.readyState)if(200===this.status){let t=this.response;if("object"!==typeof t)try{t=JSON.parse(t)}catch(e){}r(t)}else a(s)}}))}static async get(e,t={},n={}){let i=await ae.startConnect("GET",e,t,n);return i}static async post(e,t,n={}){let i=await ae.startConnect("POST",e,t,n);return i}}(function(e){e["ScannerCameraLinuxInit"]="ScannerCameraLinuxInit",e["ScannerCameraLinuxStartPreview"]="ScannerCameraLinuxStartPreview",e["ScannerCameraLinuxGetFrame"]="ScannerCameraLinuxGetFrame",e["ScannerCameraDeskew_Base64"]="ScannerCameraDeskew_Base64",e["ScannerCameraMerge_Base64"]="ScannerCameraMerge_Base64",e["ScannerCameraRotate"]="ScannerCameraRotate",e["ScannerMainCamera_Base64"]="ScannerMainCamera_Base64",e["ScannerSecondaryCamera_Base64"]="ScannerSecondaryCamera_Base64",e["ReadIDCard_Base64"]="ReadIDCard_Base64",e["StopCamera"]="stopCamera"})(J||(J={}));J.ScannerMainCamera_Base64,J.ScannerSecondaryCamera_Base64,J.ReadIDCard_Base64;class se{static get mainCameraUrl(){return this._isLinux?this.baseLinuxServiceUrl+"/StartPreview?dev_idx=0&res_id=0":this.baseServiceUrl+"/video=stream&camidx=0"}static get secondaryCameraUrl(){return this._isLinux?this.baseLinuxServiceUrl+"/StartPreview?dev_idx=1&res_id=0":this.baseServiceUrl+"/video=stream&camidx=1"}static async read(e,t){let n={},i="",r="";switch(e){case J.ScannerCameraLinuxInit:i=`${this.baseLinuxServiceUrl}/GetAllDisplayInfo`,r="get";break;case J.ScannerCameraLinuxStartPreview:i=`${this.baseLinuxServiceUrl}/StartPreview?dev_idx=${t}&res_id=0`,r="get";break;case J.ScannerCameraLinuxGetFrame:i=`${this.baseLinuxServiceUrl}/getFrame`,r="get";break;case J.ScannerCameraRotate:if(se._isLinux){let e=t/90;i=this.baseLinuxServiceUrl+`/Rotate?count=${e}`,r="get"}else i=this.baseServiceUrl+"/video=rotate",n={camidx:"0",rotate:t.toString()},r="post";break;case J.ScannerCameraDeskew_Base64:se._isLinux?(i=`${this.baseLinuxServiceUrl}/EnableDeskImage?enable=${t}`,r="get"):(i=this.baseServiceUrl+"/dvideo=cameradeskew",n={camidx:"0",open:t},r="post");break;case J.ScannerCameraMerge_Base64:this._isLinux?(i=`${this.baseLinuxServiceUrl}/composeIDcardPic?image1=${t.list[0]}&image2=${t.list[1]}`,r="get"):(i=this.baseServiceUrl+"/compose=photos",n={outputfilepath:"",outputmaxwidth:"3000",inputimagetype:"1",outputimagetype:"0",isIDCardCompose:t.type,imagelist:t.list.toString()},r="post");break;case J.ScannerMainCamera_Base64:this._isLinux?(i=this.baseLinuxServiceUrl+"/getPic?filepath=/tmp",r="get"):(i=this.baseServiceUrl+"/video=grabimage",n={filepath:"base64",rotate:"0",deskew:t,deskewval:"20",camidx:"0",ColorMode:"0",quality:"0",bIsPrint1to1:"0"},r="post");break;case J.ScannerSecondaryCamera_Base64:this._isLinux?(i=this.baseLinuxServiceUrl+"/getPic?filepath=/tmp",r="get"):(i=this.baseServiceUrl+"/video=grabimage",n={filepath:"",rotate:"0",deskew:"0",deskewval:"0",camidx:"1",ColorMode:"0",quality:"0",bIsPrint1to1:"0"},r="post");break;case J.StopCamera:this._isLinux?(i=this.baseLinuxServiceUrl+"/StopPreview?dev_idx=0",r="get"):(i=this.baseServiceUrl+"/video=close",n={camidx:"0"},r="post");break;case J.ReadIDCard_Base64:i=this.baseServiceUrl+"/card=idcard",r="post";break}let a=await ae[r](i,n);return a}static async initLinuxCamera(){await se.read(J.ScannerCameraLinuxInit)}static async startPreview(e){return await se.read(J.ScannerCameraLinuxStartPreview,e)}static async getEloamFrame(){return await se.read(J.ScannerCameraLinuxGetFrame)}static async scanByMainCamera(e){const t=await se.read(J.ScannerMainCamera_Base64,e);return this._isLinux,t}static async scanBySecondaryCamera(){const e=await se.read(J.ScannerSecondaryCamera_Base64);return this._isLinux?e.data.img:e.photoBase64}static async mergeImage(e,t){const n=await se.read(J.ScannerCameraMerge_Base64,{list:e,type:t});return n.base64||n.data}static async scanByCamera(e,t,n=!1){switch(e){case"main":let e=await this.scanByMainCamera(t);return n?this._isLinux?e.data.path:e.photoBase64:this._isLinux?e.data.img:e.photoBase64;case"vice":return this.scanBySecondaryCamera()}}static async turnOnTheCamera(){}static async stopCamera(){await se.read(J.StopCamera)}static async idCardRead(){const e=await se.read(J.ReadIDCard_Base64);var t=e.IDCardInfo,n=(t.name||"").trim(),i=(t.enname||"").trim(),r=(t.cnname||"").trim(),a=t.sex,s=t.birthday,o=t.address,l=t.cardID,c=t.nationCode,u=t.issueOrgan,d=t.photoBase64,h=t.validStart,f=t.validEnd,p=t.cardType,m="",g="",v="1",b="中国";2!=p&&4!=p||(g=i,m=r||"无中文姓名",n="无中文姓名"===r?i:r||i,u="中华人民共和国国家移民管理局",v="9",b=c,c="");const y={info:{cardType:v,nationality:b,name:n.trim(),chineseName:m.trim(),englishName:g,sex:a,birthday:s,address:o,cardId:l,nation:c,police:u,validStart:h,validEnd:f},headImage:d};return y}}V(se,"baseServiceUrl","http://127.0.0.1:38088"),V(se,"baseLinuxServiceUrl","http://127.0.0.1:6543"),V(se,"_isLinux",String(navigator.platform).indexOf("Linux")>-1);const oe="scanner-camera-refresh-photo-event",le="sign-photo-event";class ce extends Event{constructor(e){super(oe),V(this,"scannerResultUrl",""),this.scannerResultUrl=e}}class ue extends Event{constructor(e){super(le),V(this,"signResultUrl",""),this.signResultUrl=e}}class de{static getGenderByIdNumber(e){if(e){let t;if(18==e.length?t=e.charAt(16):15==e.length&&(t=e.charAt(14)),t&&!isNaN(t))return parseInt(t)%2==0?"女":"男"}return""}static getBirthdayByIdNumber(e){if(e&&e&&e.length>13){const t=e.substring(6,10),n=e.substring(10,12),i=e.substring(12,14);return t+"-"+n+"-"+i}return""}static getAgeByIdNumber(e){if(e){const t=new Date,n=t.getMonth()+1,i=t.getDate();let r=t.getFullYear()-e.substring(6,10)-1;return(e.substring(10,12)<n||e.substring(10,12)===n&&e.substring(12,14)<=i)&&r++,r<=0&&(r=1),r}return""}static isForeignersIdCard(e){let t=/^[a-zA-Z]{3}[0-9]{12}$/;return t.test(e)||e.startsWith("9")}}var he,fe,pe,me;(function(e){e["ScannerCamera"]="scannerCamera",e["InteractiveTerminal"]="interactiveTerminal"})(he||(he={})),function(e){e["ScannerMainCamera_Base64"]="main",e["ScannerSecondaryCamera_Base64"]="vice",e["TakePhoto_Base64"]="takePhoto",e["ScannerReadCard"]="ScannerReadCard",e["InitParams"]="InitParams",e["GetSignName_Base64"]="GetSignName_Base64",e["ReadIDCard_Base64"]="ReadIDCard_Base64",e["FaceValidateWithIdCard_Base64"]="FaceValidateWithIdCard_Base64",e["FingerPrint_Base64"]="FingerPrint_Base64",e["ScanQRCode"]="ScanQRCode",e["Evaluate"]="Evaluate",e["StartProjection"]="StartProjection",e["EndProjection"]="EndProjection"}(fe||(fe={}));class ge{static startConnect(e){if(this.ws&&this.ws.readyState===WebSocket.CONNECTING)return this;let t="";switch(e){case he.InteractiveTerminal:t=this.interactiveTerminalUrl;break;case he.ScannerCamera:t=this.scannerCameraUrl;break}const n=new WebSocket(t);let i;const r=new Promise((e=>{i=e}));return n.onopen=()=>{i(!0)},n.onmessage=e=>{this.handleMessage(e)},n.onclose=()=>this.handleClose(),n.onerror=e=>this.handleError(e),this.ws=n,r}static handleError(e){for(const t in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("handleError")}));if(e.target.url&&!e.target.url.includes(this.interactiveTerminalUrl))throw Error("统一插件平台捷宇设备功能加载失败")}static handleClose(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("close")}))}static handleMessage(e){let t="";if(e.origin===this.interactiveTerminalUrl){try{t=JSON.parse(e.data)}catch(n){t=""}this.requestStore.forEach((({resolve:e})=>{e(t)})),this.requestStore=[],this.ws.close()}else{if(t=e.data,!t.startsWith("BarCode")&&!t.startsWith("Begin")){const e=new ce(t);return window.dispatchEvent(e)}(t.indexOf("BeginbSaveJPGEx")>=0||t.indexOf("BeginReadCard")>=0)&&(this.requestStore.forEach((({resolve:e})=>{e(t)})),this.requestStore=[])}}static async read(e,t,n){if(await this.startConnect(e),1===this.ws.readyState){let e="";switch(t){case fe.ScannerMainCamera_Base64:this.ws.send("vSetResolution(7)"),this.ws.send("bStopPlay()"),this.ws.send("bStartPlay()"),this.ws.send("bSetMode(3)"),e="vSetOpenInpain(1)";break;case fe.ScannerSecondaryCamera_Base64:e="bStartPlay2";break;case fe.TakePhoto_Base64:e="bSaveJPGEx";break;case fe.ScannerReadCard:e="ReadCard(1001, C:Doccamera)";break;case fe.InitParams:e=JSON.stringify({projectCode:n.projectCode,type:181});break;case fe.GetSignName_Base64:e=JSON.stringify({type:3,Timeout:60,Location:"0,1,450,500|1,1,450,500",PDFPath:n.PDFPath,Retain:"test",XmlPath:""});break;case fe.ReadIDCard_Base64:e=JSON.stringify({type:4});break;case fe.FaceValidateWithIdCard_Base64:e=JSON.stringify({type:5});break;case fe.FingerPrint_Base64:e=JSON.stringify({FileFullName:"d:\\Fingerprint.png",TimeOut:60,type:12});break;case fe.ScanQRCode:e=JSON.stringify({type:61});break;case fe.StartProjection:e=JSON.stringify({type:82});break;case fe.EndProjection:e=JSON.stringify({type:83});break;case fe.Evaluate:e=JSON.stringify({type:90,URL:n.URL});break}return this.ws.send(e),new Promise(((e,t)=>{this.requestStore||(this.requestStore=[]),this.requestStore.push({resolve:e,reject:t})}))}if(t!==fe.InitParams)throw Error("统一插件平台设备未准备完成")}static async turnOnTheCamera(e){this.ws&&this.ws.close(),await ge.read(he.ScannerCamera,e)}static async scanByCamera(){let e=await ge.read(he.ScannerCamera,fe.TakePhoto_Base64);return e.replace("BeginbSaveJPGEx","").replace("EndbSaveJPGEx","")}static async initParams(){this.ws&&this.ws.close();let e="ls8t1IYtBhOg5kwajaZsmeim/GIw0PY6NEoJ2cbNoptx678YKIqWaRVe0XPy1u5/cXLuXKW/Vufptwgo8Gc/lHMHbqiOHj7ySAqb9VCvP9KI1HAoqzPMpueyQhJskyfGk+L8/9dKK5/rySTLDuT4Un0W1o/1p9D41EDPwkAm2YY=";await ge.read(he.InteractiveTerminal,fe.InitParams,{projectCode:e})}static async signNameRead(e){let t=await ge.read(he.InteractiveTerminal,fe.GetSignName_Base64,{PDFPath:e});if(!t)throw Error("未匹配可用的捷宇信息交互终端设备");if(0!==t.ret)throw Error("读取二代身份证失败,返回值:"+t.ret+",错误信息:"+t.errMsg);return t}static async idCardReadByScanner(){let e=await ge.read(he.ScannerCamera,fe.ScannerReadCard);if(!e)throw Error("未匹配可用的捷宇高拍仪设备");let t=JSON.parse(e.replace("BeginReadCard","").replace("EndReadCard",""));if(1!==t.result)throw Error("读取二代身份证失败,返回值:"+t.ret+",错误信息:"+t.errMsg);console.log(t);let{Name:n,EnglishName:i,Sex:r,BirthDate:a,Address:s,IdNo:o,Folk:l,Agency:c,Valid:u,PhotoB64:d}=t,[h,f]=u.split("-"),p="",m="1",g="中国",v=de.isForeignersIdCard(o);v&&(m="9",p=n,n="无中文姓名"===n?i:n,c="中华人民共和国国家移民管理局",g=l,l="");const b={info:{cardType:m,nationality:g,name:n,chineseName:p,englishName:i,sex:r,birthday:a,address:s,cardId:o,nation:l,police:c,validStart:h,validEnd:f},headImage:d};return console.log(b),b}static async idCardRead(){let e=await ge.read(he.InteractiveTerminal,fe.ReadIDCard_Base64);if(!e)throw Error("未匹配可用的捷宇信息交互终端设备");if(0!==e.ret)throw Error("读取二代身份证失败,返回值:"+e.ret+",错误信息:"+e.errMsg);let{name:t,sex:n,birth:i,addr:r,id_num:a,nation:s,base64_ID:o,depart:l,validityTime:c}=e,[u,d]=c.split("-");const h={info:{name:t,sex:n,birthday:i.replace("年","").replace("月","").replace("日",""),address:r,cardId:a,nation:s,police:l,validStart:u,validEnd:d},headImage:o};return console.log("读取二代身份证结果==>",h),h}static async faceValidateWithIdCardRead(){let e=await ge.read(he.InteractiveTerminal,fe.FaceValidateWithIdCard_Base64);if(!e)throw Error("未匹配可用的捷宇信息交互终端设备");if(0!==e.ret)throw Error("读取二代身份证失败,返回值:"+e.ret+",错误信息:"+e.errMsg);let{name:t,sex:n,birth:i,addr:r,id_num:a,nation:s,base64_ID:o,depart:l,validityTime:c,base64_Face:u}=e,[d,h]=c.split("-");const f={idCard:{info:{name:t,sex:n,birthday:i.replace("年","").replace("月","").replace("日",""),address:r,cardId:a,nation:s,police:l,validStart:d,validEnd:h},headImage:o},faceimg:e.base64_Face};return console.log("读取二代身份证结果==>",f),f}static async mergeImage(e,t){return new Promise(((n,i)=>{let r=document.createElement("canvas");r.width=600,r.height=360;let a=r.getContext("2d");a.rect(0,0,r.width,r.height),a.fillStyle="#fff",a.fill();let s=new Image;s.src="data:image/png;base64,"+e,s.crossOrigin="Anonymous",s.onload=function(){a.drawImage(s,0,0,500,360);let e=new Image;e.src="data:image/png;base64,"+t,e.crossOrigin="Anonymous",e.onload=function(){a.drawImage(e,320,0,256,360);let t=r.toDataURL("image/png");t=t.replace("data:image/png;base64,",""),n(t)}}}))}}V(ge,"scannerCameraUrl","ws://127.0.0.1:1818"),V(ge,"interactiveTerminalUrl","ws://127.0.0.1:1919"),V(ge,"ws",void 0),V(ge,"requestStore",[]);class ve{static startConnect(){if(this.ws&&this.ws.readyState===WebSocket.CONNECTING)return this;const e=new WebSocket(this.scannerCameraUrl);let t;const n=new Promise((e=>{t=e}));return e.onopen=()=>{t(!0)},e.onmessage=e=>{this.handleMessage(e)},e.onclose=()=>this.handleClose(),e.onerror=()=>this.handleError(),this.ws=e,n}static handleError(){throw Error("统一插件平台方正高影仪设备功能加载失败")}static handleClose(){this.ws&&this.ws.close()}static handleMessage(e){let t=e.data?JSON.parse(e.data):{};if("video_stream"===t.function){const e=new ce(t.image_base64);return window.dispatchEvent(e)}}static async read(e){if(await this.startConnect(),1!==this.ws.readyState)throw Error("统一插件平台设备未准备完成");this.ws.send(JSON.stringify({function:"open_camera",camidx:"0"})),this.ws.send(JSON.stringify(e))}static async turnOnTheCamera(){let e={function:"set_cutpage",params:{cutpage:"false"}};await ve.read(e)}}V(ve,"scannerCameraUrl","ws://127.0.0.1:38088"),V(ve,"ws",void 0),function(e){e["TurnOnCamera"]="turnOnCamera",e["TakePhoto_Base64"]="TakePhoto_Base64"}(pe||(pe={}));class be{static startConnect(){if(this.ws&&this.ws.readyState===WebSocket.CONNECTING)return this;const e=new WebSocket(this.scannerCameraUrl);let t;const n=new Promise((e=>{t=e}));return e.onopen=()=>{t(!0)},e.onmessage=e=>{this.handleMessage(e)},e.onclose=()=>this.handleClose(),e.onerror=()=>this.handleError(),this.ws=e,n}static handleError(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("handleError")}));throw Error("统一插件平台紫图速拍仪设备功能加载失败")}static handleClose(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("close")}));this.ws&&this.ws.close()}static handleMessage(e){let t=e.data?JSON.parse(e.data):{};if("ShowVideo"===t.FuncName){const e=new ce(t.result);return window.dispatchEvent(e)}"CaptureBase64"!==t.FuncName&&"CaptureDualBase64"!==t.FuncName||(this.requestStore.forEach((({resolve:e})=>{e(t.result)})),this.requestStore=[])}static async read(e,t){if(await this.startConnect(),1===this.ws.readyState){let t="";switch(e){case pe.TurnOnCamera:this.ws.send(JSON.stringify({Func:"StartRunMain",arg:0})),t=JSON.stringify({Func:"ChangeCutType",arg:0});break;case pe.TakePhoto_Base64:this.ws.send(JSON.stringify({Func:"SetJPGQuality",arg:70})),this.ws.send(JSON.stringify({Func:"SetColorType",arg:"彩色"})),this.ws.send(JSON.stringify({Func:"SetBoardColor",arg:0})),this.ws.send(JSON.stringify({Func:"SetCamDPI",arg:720})),t=JSON.stringify({Func:"CaptureBase64",arg:0})}return this.ws.send(t),new Promise(((e,t)=>{this.requestStore||(this.requestStore=[]),this.requestStore.push({resolve:e,reject:t})}))}throw Error("统一插件平台设备未准备完成")}static async turnOnTheCamera(){await be.read(pe.TurnOnCamera)}static async scanByCamera(){const e=await be.read(pe.TakePhoto_Base64);return e}}V(be,"scannerCameraUrl","ws://127.0.0.1:8341"),V(be,"ws",void 0),V(be,"requestStore",[]),function(e){e["ReadCard_Base64"]="ReadCard_Base64",e["StartSignName"]="StartSignName",e["GetSignNameStatus"]="GetSignNameStatus",e["GetSignName_Base64"]="GetSignName_Base64",e["FaceValidateWithIdCard_Base64"]="FaceValidateWithIdCard_Base64",e["TurnOnTheCamera"]="TurnOnTheCamera",e["ScannerCamera"]="ScannerCamera",e["StopCamera"]="StopCamera"}(me||(me={}));class ye{static startConnect(e){if(this.ws&&this.ws.readyState===WebSocket.OPEN)return this;const t=new WebSocket(this.webSocketUrl);let n;const i=new Promise((e=>{n=e}));return t.onopen=()=>{n(!0)},t.onmessage=e=>{this.handleMessage(e)},t.onclose=()=>this.handleClose(),t.onerror=()=>this.handleError(),this.ws=t,i}static handleError(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("handleError")}));throw Error("统一插件平台设备功能加载失败")}static handleClose(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("close")}))}static handleMessage(e){let t="";try{t=JSON.parse(e.data)}catch(n){t=""}if("FaceScreenStream"===t.method||"VideoStream"===t.method){const e=new ce(t.imgBase64);return window.dispatchEvent(e)}this.requestStore.forEach((({resolve:e})=>{e(t)})),this.requestStore=[]}static async read(e){if(await this.startConnect(e),1===this.ws.readyState){let t;switch(e){case me.ReadCard_Base64:t=JSON.stringify({method:"ReadIDCard_Base64",args:{outTimes:30,cardReader:0}});break;case me.FaceValidateWithIdCard_Base64:t=JSON.stringify({method:"FaceValidateWithIdCard_Base64",args:{outTimes:30,score:75}});break;case me.StartSignName:t=JSON.stringify({method:"SignNameScreen_Start",args:{outTimes:30}});break;case me.GetSignNameStatus:t=JSON.stringify({method:"SignNameScreen_Status",args:{}});break;case me.GetSignName_Base64:t=JSON.stringify({method:"SignNameScreen_Get",args:{}});break;case me.TurnOnTheCamera:t=JSON.stringify({method:"VideoStart",args:{}});break;case me.ScannerCamera:t=JSON.stringify({method:"GetCameraImage",args:{imagePath:""}});break;case me.StopCamera:t=JSON.stringify({method:"VideoStop",args:{}});break}return this.ws.send(t),new Promise(((e,t)=>{this.requestStore||(this.requestStore=[]),this.requestStore.push({resolve:e,reject:t})}))}throw Error("统一插件平台设备未准备完成")}static async idCardRead(){const e=await ye.read(me.ReadCard_Base64);if(!e)throw Error("未匹配到可用的读取设备");if(0!==e.retVal)throw this.ws&&this.ws.close(),Error("读取二代身份证失败,返回值:"+e.retVal+",错误信息:"+e.errMsg);let t=e.idInfo,{name:n,ENfullname:i,Nationality:r,sex:a,birthday:s,address:o,number:l,nation:c,organs:u,signdate:d,validterm:h}=t,f="",p="1",m="中国";1==e.cardType||2==e.cardType?(p="9",f=n,n=n||i,u=u||"中华人民共和国国家移民管理局",m=r,c=""):p="1";const g={info:{cardType:p,nationality:m,name:n,chineseName:f,englishName:i,sex:a,birthday:s.replace("-","").replace("-",""),address:o,cardId:l,nation:c,police:u,validStart:d,validEnd:h},headImage:e.idPhotoBase64};return this.ws&&this.ws.close(),g}static async socialSecurityCardRead(){const e=await ye.read(me.ReadCard_Base64);if(!e)throw Error("未匹配可用的读取设备");if(0!==e.retVal)throw this.ws&&this.ws.close(),Error("读取社保卡基本信息失败,返回值:"+e.retVal+",错误信息:"+e.idInfo);const t=e.idInfo;let{name:n,sex:i,birthday:r,number:a,cardnumber:s}=t;const o={info:{name:n,sex:i,birthday:r,address:"",cardId:a,cardnumber:s},headImage:""};return this.ws&&this.ws.close(),o}static async faceValidateWithIdCardRead(){const e=await ye.read(me.FaceValidateWithIdCard_Base64);if("FaceValidateWithIdCard_Base64"===e.method&&"0"==e.retVal){const t=e.idInfo;let{name:n,ENfullname:i,Nationality:r,sex:a,birthday:s,address:o,number:l,nation:c,organs:u,signdate:d,validterm:h}=t,f="",p="1",m="中国";1==e.cardType||2==e.cardType?(p="9",f=n,n=n||i,u=u||"中华人民共和国国家移民管理局",m=r,c=""):p="1";const g={idCard:{info:{cardType:p,nationality:m,name:n,chineseName:f,englishName:i,sex:a,birthday:s.replace("-","").replace("-",""),address:o,cardId:l,nation:c,police:u,validStart:d,validEnd:h},headImage:e.idPhotoBase64},faceimg:e.scenceBase64,score:e.score};return this.ws&&this.ws.close(),g}this.ws&&this.ws.close()}static async signNameRead(){return new Promise((async(e,t)=>{const n=await ye.read(me.StartSignName);"SignNameScreen_Start"===n.method&&(0!==n.retVal?(this.ws&&this.ws.close(),t(`开始签名失败,返回值:${n.retVal},错误信息:${n.errMsg}`)):this.timer||(this.timer=setInterval((async()=>{let n=await ye.read(me.GetSignNameStatus);if(2==n.signScreenStatus){clearInterval(this.timer),this.timer=null;let t=await ye.read(me.GetSignName_Base64);this.ws&&this.ws.close(),e(t.signPicBase64)}else 3==n.retVal&&(clearInterval(this.timer),this.timer=null,this.ws&&this.ws.close(),t("签字结果=>签字失败,或意外中断!"))}),2e3)))}))}static async turnOnTheCamera(){await ye.read(me.TurnOnTheCamera)}static async scanByCamera(){let e=await ye.read(me.ScannerCamera);if("GetCameraImage"===e.method&&0==e.retVal)return e.cameraImgBase64}static async stopCamera(){await ye.read(me.StopCamera);this.ws&&this.ws.close()}}V(ye,"webSocketUrl","ws://127.0.0.1:5847"),V(ye,"ws",void 0),V(ye,"requestStore",[]),V(ye,"timer",null);const Ce="data:image/jpg;base64,";var we={name:"scanner-camera-component",props:{machineType:{default:0,type:Number}},data:()=>({scannerVideoSrc:"",scannerResultSrc:"",loadSuccess:!0,camera:0,cameras:[{name:"文档",value:0},{name:"照片",value:1}],deskewStatus:"0",rotateDeg:0,buttonList:[{label:"拍照",name:"take-pictures"},{label:"图片合并",name:"take-pictures-merge"},{label:"证件合并",name:"take-idCard-pictures-merge"},{label:"纠偏裁边",name:"open-deskew"},{label:"旋转",name:"rotate-video"},{label:"关闭",name:"close"}],_isLinux:String(navigator.platform).indexOf("Linux")>-1,eloamLinuxFrameTimer:{},mergeImageList:[]}),watch:{machineType:function(){let e=1===this.camera?"start-vice":"start-main";this.handleAction(e)}},created(){this.handleAction("start-main"),window.addEventListener(oe,(e=>{e.type===oe&&(this.scannerVideoSrc=`${Ce}${e.scannerResultUrl}`)})),window.addEventListener("beforeunload",this.beforeunload)},async destroyed(){window.removeEventListener("beforeunload",this.beforeunload)},methods:{async beforeunload(e){switch(e.returnValue="确定要离开吗?",this.machineType){case 6:await ye.stopCamera();break;case 5:await se.stopCamera();break}},selectChange(e){let t=1===e?"start-vice":"start-main";this.handleAction(t)},async takePictures(){switch(this.machineType){case 0:let e=await ge.scanByCamera();this.$emit("send-scanner-result",`${Ce}${e}`);break;case 3:this.$emit("send-scanner-result",this.scannerVideoSrc);break;case 4:{let e=await be.scanByCamera();this.$emit("send-scanner-result",`${Ce}${e}`);break}case 5:{let e=0===this.camera?"main":"vice";const t=await se.scanByCamera(e,this.deskewStatus);if(t){let e=t;this.$emit("send-scanner-result",`${Ce}${e}`)}else this.$message.error("拍照出错,请检查设备是否连接成功");break}case 6:{let e=await ye.scanByCamera();this.$emit("send-scanner-result",`${Ce}${e}`);break}}},async handleStartMain(){switch(this.machineType){case 0:await ge.turnOnTheCamera("main");break;case 3:await ve.turnOnTheCamera();break;case 4:await be.turnOnTheCamera();break;case 5:if(String(navigator.platform).indexOf("Linux")>-1){await se.initLinuxCamera();let e=await se.startPreview("0");"0"!=e.returnCode&&"2"!=e.returnCode||(this.eloamLinuxFrameTimer=setInterval(this.getEloamFrame,300))}else this.scannerVideoSrc=se.mainCameraUrl;break;case 6:await ye.turnOnTheCamera();break}},async getEloamFrame(){let e=await se.getEloamFrame();"1"!=e.returnCode?""!=e.data.img&&(this.scannerVideoSrc=`${Ce}${e.data.img}`):clearInterval(this.eloamLinuxFrameTimer)},async handleStartVice(){switch(this.machineType){case 0:await ge.turnOnTheCamera("vice");break;case 3:await ve.turnOnTheCamera();break;case 4:await be.turnOnTheCamera();break;case 5:String(navigator.platform).indexOf("Linux")>-1?(await se.initLinuxCamera(),await se.startPreview("1"),this.eloamLinuxFrameTimer=setInterval(this.getEloamFrame,300)):this.scannerVideoSrc=se.mainCameraUrl;break;case 6:await ye.turnOnTheCamera();break}},async takePictureMerge(e){if("1"===e&&"0"===this.deskewStatus)return this.$message.warning("请先开启纠偏");const t=await se.scanByCamera("main",this.deskewStatus,!0);if(t){let n=t;if(this.mergeImageList.push(n),1===this.mergeImageList.length&&this.$message.success("第一张拍摄成功,请拍第二张"),2===this.mergeImageList.length){let t=await se.mergeImage(this.mergeImageList,e);this.mergeImageList=[],this.$message.success("合并成功"),this.$emit("send-scanner-result",`${Ce}${t}`)}}else this.$message.error("合并拍照出错,请检查设备是否连接成功")},_isShowButton(e){switch(e){case"take-pictures-merge":case"take-idCard-pictures-merge":case"open-deskew":case"rotate-video":case"close":return 5===this.machineType;default:return!0}},async handleAction(e){switch(e){case"start-main":this.handleStartMain();break;case"start-vice":this.handleStartVice();break;case"take-pictures":this.takePictures();break;case"take-pictures-merge":this.takePictureMerge("0");break;case"take-idCard-pictures-merge":this.takePictureMerge("1");break;case"rotate-video":String(navigator.platform).indexOf("Linux")>-1?(this.rotateDeg+=90,360===this.rotateDeg&&(this.rotateDeg=0)):this.rotateDeg=90,se.read(J.ScannerCameraRotate,this.rotateDeg);break;case"open-deskew":this.deskewStatus="1"===this.deskewStatus?"0":"1",se.read(J.ScannerCameraDeskew_Base64,this.deskewStatus);break;case"close":await se.stopCamera();break}}}},_e=we,xe=l(_e,ie,re,!1,null,"7676b84c",null),Se=xe.exports,ke={name:"scanner-camera",components:{ScannerCameraComponent:Se},props:{machineType:{default:0,type:Number},openMode:{default:"",type:String},label:{default:"",type:String},tip:{default:"",type:String},className:{default:"",type:String},size:{default:"",type:String},type:{default:"",type:String},plain:{default:!1,type:Boolean},round:{default:!1,type:Boolean},loading:{default:!1,type:Boolean},icon:{default:"",type:String},disabled:{default:!1,type:Boolean}},data:()=>({dialogVisible:!1,scannerResult:""}),computed:{_className(){const e=["z-button"];return"text"===this.type&&e.push("i-font-size"),this.className?("string"===typeof this.className?e.push(this.className):e.push(...this.className),e):e}},methods:{openScanDialog(){this.dialogVisible=!0},setScannerResult(e){this.scannerResult=e,"dialog"!==this.openMode&&this.$emit("send-scanner-result",this.scannerResult)},sendScannerResult(){this.scannerResult&&(this.$emit("send-scanner-result",this.scannerResult),this.dialogVisible=!1)}}},Ie=ke,Ee=l(Ie,te,ne,!1,null,"00e9072f",null),De=Ee.exports;De.install=e=>{e.component(De.name,De)};var Ae=De,Oe=function(){var e=this,t=e._self._c;return e.tip?t("el-tooltip",{staticClass:"id-card-reader-eloam",attrs:{content:e.tip,placement:"top"}},[t("el-button",e._b({on:{click:e.handleClick}},"el-button",{disabled:e.disabled,icon:e.icon,loading:e.loading,plain:e.plain,round:e.round,size:e.size,type:e.type,class:e._className},!1),[e._t("default",(function(){return[e._v(e._s(e.label))]}))],2)],1):t("el-button",e._b({on:{click:e.handleClick}},"el-button",{disabled:e.disabled,icon:e.icon,loading:e.loading,plain:e.plain,round:e.round,size:e.size,type:e.type,class:e._className},!1),[e._t("default",(function(){return[e._v(e._s(e.label))]}))],2)},Te=[],Me={name:"id-card-reader-eloam",props:{label:{default:"",type:String},tip:{default:"",type:String},className:{default:"",type:String},size:{default:"mini",type:String},type:{default:"primary",type:String},plain:{default:!1,type:Boolean},round:{default:!1,type:Boolean},loading:{default:!1,type:Boolean},icon:{default:"el-icon-postcard",type:String},disabled:{default:!1,type:Boolean}},computed:{_className(){const e=["z-button"];return"text"===this.type&&e.push("i-font-size"),this.className?("string"===typeof this.className?e.push(this.className):e.push(...this.className),e):e}},methods:{async handleClick(){let e=await W.idCardRead();this.$emit("click",e)}}},Ne=Me,Pe=l(Ne,Oe,Te,!1,null,"5b7ce781",null),je=Pe.exports;je.install=e=>{e.component(je.name,je)};var Re,Le,Fe=je,$e=function(){var e=this,t=e._self._c;return e.tip?t("el-tooltip",{staticClass:"id-card-reader-button",attrs:{content:e.tip,placement:"top"}},[e.showIDCardChrome?t("embed",{attrs:{clsid:"{E6B50A65-EDFB-4394-B092-A8C6E966C0E6}",type:"application/x-itst-activex",width:"0",height:"0",name:"IDCard_chrome",id:"IDCard_chrome"}}):e._e(),t("el-button",e._b({on:{click:e.handleClick}},"el-button",{disabled:e.disabled,icon:e.icon,loading:e.loading,plain:e.plain,round:e.round,size:e.size,type:e.type,class:e._className},!1),[e._t("default",(function(){return[e._v(e._s(e.label))]}))],2),t("canvas",{staticStyle:{display:"none"},attrs:{id:"canvas",width:"500",height:"360"}})],1):t("el-button",e._b({on:{click:e.handleClick}},"el-button",{disabled:e.disabled,icon:e.icon,loading:e.loading,plain:e.plain,round:e.round,size:e.size,type:e.type,class:e._className},!1),[e.showIDCardChrome?t("embed",{attrs:{clsid:"{E6B50A65-EDFB-4394-B092-A8C6E966C0E6}",type:"application/x-itst-activex",width:"0",height:"0",name:"IDCard_chrome",id:"IDCard_chrome"}}):e._e(),e._t("default",(function(){return[e._v(e._s(e.label))]})),t("canvas",{staticStyle:{display:"none"},attrs:{id:"canvas",width:"500",height:"360"}})],2)},Be=[];(function(e){e["idcard"]="sfz",e["jlsfz"]="jlsfz",e["camera"]="sxt",e["ywSign"]="yw",e["hwSign"]="hwsign"})(Re||(Re={}));class Ve{static startConnect(e=Re.idcard){if(this.ws&&this.ws.readyState===WebSocket.CONNECTING)return this;let t=this.idcardWebSocketUrl;switch(e){case Re.idcard:t=this.idcardWebSocketUrl;break;case Re.jlsfz:t=this.jlsfzWebSocketUrl}const n=new WebSocket(t);let i;const r=new Promise((e=>{i=e}));return n.onopen=()=>{i(!0)},n.onmessage=e=>this.handleMessage(e),n.onclose=()=>this.handleClose(),n.onerror=()=>this.handleError(),this.ws=n,r}static handleError(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("handleError")}));throw Error("统一插件平台读取身份证功能加载失败")}static handleClose(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("close")}))}static handleMessage(e){let t="";try{t=JSON.parse(e.data)}catch(n){t=""}this.requestStore.forEach((({resolve:e})=>{e(t)})),this.requestStore=[],this.ws.close()}static async read(e=Re.idcard){if(await this.startConnect(e),1===this.ws.readyState)return this.ws.send(e),new Promise(((e,t)=>{this.requestStore||(this.requestStore=[]),this.requestStore.push({resolve:e,reject:t})}));throw Error("统一插件平台读取身份证未准备完成")}static async idCardCommonRead(){let e;for(const t of[Re.jlsfz,Re.idcard]){const n=await Ve.read(t);if(n&&n.hasOwnProperty("info")){e=n;break}}if(e)return e;throw Error("统一插件平台未匹配可用的读卡器")}}V(Ve,"idcardWebSocketUrl","ws://127.0.0.1:8152/SFZManage"),V(Ve,"jlsfzWebSocketUrl","ws://127.0.0.1:8152/JLSFZManage"),V(Ve,"ws",void 0),V(Ve,"requestStore",[]);class ze{static startConnect(){if(this.ws&&this.ws.readyState===WebSocket.CONNECTING)return this;let e=this.cameraWebSocketUrl;const t=new WebSocket(e);let n;const i=new Promise((e=>{n=e}));return t.onopen=()=>{n(!0)},t.onmessage=e=>this.handleMessage(e),t.onclose=()=>this.handleClose(),t.onerror=()=>this.handleError(),this.ws=t,i}static handleError(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("handleError")}));throw Error("统一插件平台读取拍照功能加载失败")}static handleClose(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("close")}))}static handleMessage(e){let t=e.data;this.requestStore.forEach((({resolve:e})=>{e(t)})),this.requestStore=[],this.ws.close()}static async read(){if(await this.startConnect(),1===this.ws.readyState)return this.ws.send(Re.camera),new Promise(((e,t)=>{this.requestStore||(this.requestStore=[]),this.requestStore.push({resolve:e,reject:t})}));throw Error("统一插件平台读取拍照未准备完成")}}V(ze,"cameraWebSocketUrl","ws://127.0.0.1:8152/SXTManage"),V(ze,"ws",void 0),V(ze,"requestStore",[]);class We{static startConnect(e){if(this.ws&&this.ws.readyState===WebSocket.CONNECTING)return this;let t=this.signWebSocketUrl;e===Re.hwSign&&(t=this.hwSignWebSocketUrl);const n=new WebSocket(t);let i;const r=new Promise((e=>{i=e}));return n.onopen=()=>{i(!0)},n.onmessage=e=>this.handleMessage(e),n.onclose=()=>this.handleClose(),n.onerror=()=>this.handleError(),this.ws=n,r}static handleError(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("handleError")}));throw Error("统一插件平台签字板加载失败")}static handleClose(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("close")}))}static handleMessage(e){let t=e.data;this.requestStore.forEach((({resolve:e})=>{e(t)})),this.requestStore=[],this.ws.close()}static async read(e=Re.ywSign){if(await this.startConnect(e),1===this.ws.readyState)return console.log("签字板连接成功"),this.ws.send(e),new Promise(((e,t)=>{this.requestStore||(this.requestStore=[]),this.requestStore.push({resolve:e,reject:t})}));throw Error("统一插件平台签字板未准备完成")}}V(We,"signWebSocketUrl","ws://127.0.0.1:8152/chromeManage"),V(We,"hwSignWebSocketUrl","ws://127.0.0.1:8152/HWSIGNManage"),V(We,"ws",void 0),V(We,"requestStore",[]),function(e){e["iReadCardBas"]="iReadCardBas",e["GetSignName_Base64"]="GetSignName_Base64",e["ReadIDCard_Base64"]="ReadIDCard_Base64",e["FaceValidateWithIdCard_Base64"]="FaceValidateWithIdCard_Base64",e["FingerPrint_Base64"]="FingerPrint_Base64"}(Le||(Le={}));const He={[Le.iReadCardBas]:"读取社保卡",[Le.GetSignName_Base64]:"获取签名",[Le.ReadIDCard_Base64]:"读取二代身份证",[Le.FaceValidateWithIdCard_Base64]:"人证比对",[Le.FingerPrint_Base64]:"获取指纹"};class qe{static startConnect(e){if(this.ws&&this.ws.readyState===WebSocket.CONNECTING)return this;let t="";switch(e){case Le.FingerPrint_Base64:t=this.fingerPrintBasWebSocketUrl;break;default:t=this.iReadCardBasWebSocketUrl;break}const n=new WebSocket(t);let i;const r=new Promise((e=>{i=e}));return n.onopen=()=>{i(!0)},n.onmessage=t=>{e===Le.FingerPrint_Base64&&(t={...t,data:JSON.stringify({fingerPrintInfo:t.data})}),this.handleMessage(t)},n.onclose=()=>this.handleClose(),n.onerror=()=>this.handleError(),this.ws=n,r}static handleError(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("handleError")}));throw Error("统一插件平台E窗通设备功能加载失败")}static handleClose(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("close")}))}static handleMessage(e){let t="";try{t=JSON.parse(e.data)}catch(n){t=""}this.requestStore.forEach((({resolve:e})=>{e(t)})),this.requestStore=[],this.ws.close()}static async read(e){await this.startConnect(e);const t=He[e];if(1===this.ws.readyState){let n;switch(e!==Le.FingerPrint_Base64&&console.log(t+"连接成功"),e){case Le.ReadIDCard_Base64:n=JSON.stringify({method:e,args:{outTimes:30,cardReader:1}});break;case Le.FaceValidateWithIdCard_Base64:n=JSON.stringify({method:e,args:{outTimes:30,cardReader:1,cameraType:0}});break;case Le.iReadCardBas:n=JSON.stringify({method:e,args:{icType:"1"}});break;case Le.FingerPrint_Base64:n="getimgae,1,0,288,0";break;default:n=JSON.stringify({method:e,args:{outTimes:30}});break}return this.ws.send(n),new Promise(((e,t)=>{this.requestStore||(this.requestStore=[]),this.requestStore.push({resolve:e,reject:t})}))}throw Error("统一插件平台"+t+"未准备完成")}static async idCardRead(e=Le.ReadIDCard_Base64){const t=await qe.read(Le.ReadIDCard_Base64);if(console.log("读取二代身份证==>",t),!t)throw Error("未匹配可用的E窗通读取设备");if(0!==t.retVal)throw Error("读取二代身份证失败,返回值:"+t.retVal+",错误信息:"+t.errMsg);const n=t.idInfo.data,{name:i,sex:r,birthday:a,address:s,id_num:o,nations:l}=n,c={info:{name:i,sex:r,birthday:a.replace("-","").replace("-",""),address:s,cardId:o,nation:l},headImage:t.idPhotoPicBase64};return console.log("读取二代身份证结果==>",c),c}static async faceValidateWithIdCardRead(){const e=await qe.read(Le.FaceValidateWithIdCard_Base64);if(console.log("人证比对==>",e),!e)throw Error("未匹配可用的E窗通读取设备");if(0!==e.retVal)throw Error("人证比对失败,返回值:"+e.retVal+",错误信息:"+e.errMsg);const t=e.idInfo.data,{name:n,sex:i,birth:r,address:a,idNo:s,nation:o}=t,l={idCard:{info:{name:n,sex:i,birthday:r.replace("-","").replace("-",""),address:a,cardId:s,nation:o},headImage:e.idPhotoBase64},faceimg:e.scenceBase64};return console.log("人证比对结果==>",l),l}static async socialSecurityCardRead(){const e=await qe.read(Le.iReadCardBas);if(!e)throw Error("未匹配可用的E窗通读取设备");if(0!==e.retVal)throw Error("读取社保卡基本信息失败,返回值:"+e.retVal+",错误信息:"+e.outInfo);const t=e.outInfo,n=t.split("|"),i=n[1],r=de.getBirthdayByIdNumber(i).replace("-","").replace("-",""),a=de.getGenderByIdNumber(i),s={info:{name:n[4],sex:a,birthday:r,address:"",cardId:i},headImage:""};return console.log("读取社保卡==>",e),s}static async signNameRead(){const e=await qe.read(Le.GetSignName_Base64);if(!e)throw Error("未匹配可用的E窗通读取设备");if(0!==e.retVal)throw Error("读取签名失败,返回值:"+e.retVal+",错误信息:"+e.errMsg);return console.log("获取签名==>",e),e.signPicBase64}static async fingerPrintRead(){let e=30;async function t(){const n=await qe.read(Le.FingerPrint_Base64);if(!n)throw Error("未匹配可用的E窗通读取设备");let i=n.fingerPrintInfo.split("|");console.log(i);let r=Number(i[1]);return r>1?e>0?(e--,await t()):{status:"error",data:"已超时,请重新操作,按压指纹"}:{status:"success",data:n.fingerPrintInfo}}let{status:n,data:i}=await t();if("error"===n)throw Error(i);{let[e,t,n,r,a]=i.split("|");return{method:e,result:t,quality:n,image:r,featureCode:a}}}}var Ue;V(qe,"iReadCardBasWebSocketUrl","ws://127.0.0.1:5847"),V(qe,"fingerPrintBasWebSocketUrl","ws://127.0.0.1:9000"),V(qe,"ws",void 0),V(qe,"requestStore",[]),function(e){e[e["ReadSocialSecurityCard"]=1002]="ReadSocialSecurityCard",e[e["ReadIDCard"]=1003]="ReadIDCard"}(Ue||(Ue={}));class Ge{static startConnect(){if(this.ws&&this.ws.readyState===WebSocket.CONNECTING)return this;const e=this.HaDWebSocketUrl,t=new WebSocket(e);let n;const i=new Promise((e=>{n=e}));return t.onopen=()=>{n(!0)},t.onmessage=e=>this.handleMessage(e),t.onclose=()=>this.handleClose(),t.onerror=()=>this.handleError(),this.ws=t,i}static handleError(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("handleError")}));throw Error("统一插件平台华大读卡器功能加载失败")}static handleClose(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("close")}))}static handleMessage(e){const t=JSON.parse(e.data);this.requestStore.forEach((({resolve:e})=>{e(t)})),this.requestStore=[],this.ws.close()}static async read(e){if(await this.startConnect(),1===this.ws.readyState){let t;1003!==e&&1002!==e||(t={tsCode:e.toString(),picFilePath:"d:\\zp.bmp"});const n=JSON.stringify(t);return this.ws.send(n),new Promise(((e,t)=>{this.requestStore||(this.requestStore=[]),this.requestStore.push({resolve:e,reject:t})}))}throw Error("统一插件平台设备未准备完成")}static async idCardRead(){const e=await Ge.read(Ue.ReadIDCard);if(console.log("读取二代身份证==>",e),!e)throw Error("未匹配可用的读取设备");const t=e.cardInfo.split("|")[1],n=e.cardInfo.split("|")[2],i=e.cardInfo.split("|")[3],r=e.cardInfo.split("|")[4],a=e.cardInfo.split("|")[5],s=e.cardInfo.split("|")[6],o=(e.cardInfo.split("|")[7],e.cardInfo.split("|")[8],e.cardInfo.split("|")[9],e.cardInfo.split("|")[10]),l={info:{name:t,sex:n,birthday:r,address:a,cardId:s,nation:i},headImage:o};return console.log("读取二代身份证结果==>",l),l}static async socialSecurityCardRead(){const e=await Ge.read(Ue.ReadSocialSecurityCard);if(!e)throw Error("未匹配可用的读取设备");const t=e.cardInfo.split("|")[1],n=e.cardInfo.split("|")[2],i=de.getBirthdayByIdNumber(t).replace("-","").replace("-",""),r=de.getGenderByIdNumber(t),a={info:{name:n,sex:r,birthday:i,address:"",cardId:t},headImage:""};return console.log("读取社保卡==>",e),a}}V(Ge,"HaDWebSocketUrl","ws://127.0.0.1:36669/"),V(Ge,"ws",void 0),V(Ge,"requestStore",[]);var Ke,Qe=new Array(-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,-1,-1,-1,-1,-1);function Ye(e){var t,n,i,r,a,s,o;s=e.length,a=0,o="";while(a<s){do{t=Qe[255&e.charCodeAt(a++)]}while(a<s&&-1==t);if(-1==t)break;do{n=Qe[255&e.charCodeAt(a++)]}while(a<s&&-1==n);if(-1==n)break;o+=String.fromCharCode(t<<2|(48&n)>>4);do{if(i=255&e.charCodeAt(a++),61==i)return o;i=Qe[i]}while(a<s&&-1==i);if(-1==i)break;o+=String.fromCharCode((15&n)<<4|(60&i)>>2);do{if(r=255&e.charCodeAt(a++),61==r)return o;r=Qe[r]}while(a<s&&-1==r);if(-1==r)break;o+=String.fromCharCode((3&i)<<6|r)}return o}function Ze(e){var t,n,i,r,a,s;t="",i=e.length,n=0;while(n<i)switch(r=e.charCodeAt(n++),r>>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:t+=e.charAt(n-1);break;case 12:case 13:a=e.charCodeAt(n++),t+=String.fromCharCode((31&r)<<6|63&a);break;case 14:a=e.charCodeAt(n++),s=e.charCodeAt(n++),t+=String.fromCharCode((15&r)<<12|(63&a)<<6|(63&s)<<0);break}return t}(function(e){e["ReadIDCard"]="$=Action|127.0.0.1|1352"})(Ke||(Ke={}));class Xe{static startConnect(e){if(this.ws&&this.ws.readyState===WebSocket.CONNECTING)return this;const t=this.MRAdbWebSocketUrl,n=new WebSocket(t);let i;const r=new Promise((e=>{i=e}));return n.onopen=()=>{n.send(e),i(!0)},n.onmessage=e=>this.handleMessage(e),n.onclose=()=>this.handleClose(),n.onerror=()=>this.handleError(),this.ws=n,r}static handleError(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("handleError")}))}static handleClose(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("close")}))}static handleMessage(e){const t=JSON.parse(e.data);this.requestStore.forEach((({resolve:e})=>{e(t)})),this.requestStore=[],this.ws.close()}static async read(e){return await this.startConnect(e),new Promise(((e,t)=>{this.requestStore||(this.requestStore=[]),this.requestStore.push({resolve:e,reject:t})}))}static async idCardRead(){const e=await Xe.read(Ke.ReadIDCard);if(console.log("中正智能人证核验返回==>",e),!e)throw Error("未匹配可用的读取设备");const{result:t,data:n}=e;switch(t){case-1:throw Error("服务器IP地址或者服务端口错误");case-2:throw Error("输入的发送数据参数非法");case-3:throw Error("连接服务器失败");case-4:throw Error("发送数据失败");case-5:throw Error("接收应答数据超时");case-6:throw Error("接收应答数据失败");case-7:throw Error("输出应答数据参数非法");case-8:throw Error("Websocket无法识别命令字");case-9:throw Error("Websocket解析命令字错误");case-10:throw Error("Websocket base64编码失败");case-11:throw Error("指纹驱动未安装或者未启动");case 0:{const e=Ze(Ye(n));console.log("中正智能人证核验结果==>",e);const t=e.split("$"),i=t[2].split("=#=")[1],r=t[3].split("=#=")[1],a=t[10].split("=#=")[1],s=t[6].split("=#=")[1],o=t[5].split("=#=")[1],l=t[4].split("=#=")[1],c=t[11].split("=#=")[1],u=t[8].split("=#=")[1],d=t[9].split("=#=")[1],h={idCard:{info:{name:i,sex:r,birthday:s,address:o,cardId:l,nation:a,police:c},headImage:u},faceimg:d};return console.log("中正智能人证核验结果转换==>",{name:i,sex:r,birthday:s,address:o,cardId:l,nation:a,police:c}),h}}return""}}V(Xe,"MRAdbWebSocketUrl","ws://127.0.0.1:8003/finger"),V(Xe,"ws",void 0),V(Xe,"requestStore",[]);var Je=__webpack_require__(1478),et=function(){var e=this,t=e._self._c;return e.visibility?t("el-dialog",{staticClass:"face-auth-dialog",attrs:{title:"人脸识别",top:"5vh",width:"1280px",visible:e.visibility,"close-on-click-modal":!1},on:{"update:visible":function(t){e.visibility=t}}},[t("el-container",[t("el-aside",{attrs:{width:"900px"}},[t("zs-card",{attrs:{title:"身份证信息读取"}},[t("div",{staticClass:"idcard-photo"},[t("div",{staticClass:"flex-1"},[t("img",{staticStyle:{width:"433px",height:"278px"},attrs:{src:__webpack_require__(2234)}}),t("span",{staticClass:"idcard-info name"},[e._v(e._s(e.IDInfo.name))]),t("span",{staticClass:"idcard-info sex"},[e._v(e._s(e.IDInfo.sex))]),t("span",{staticClass:"idcard-info nation"},[e._v(e._s(e.IDInfo.nation))]),t("span",{staticClass:"idcard-info year"},[e._v(e._s(e.birthYear))]),t("span",{staticClass:"idcard-info month"},[e._v(e._s(e.birthMonth))]),t("span",{staticClass:"idcard-info day"},[e._v(e._s(e.birthDay))]),t("span",{staticClass:"idcard-info address"},[e._v(e._s(e.IDInfo.address))]),t("span",{staticClass:"idcard-info idnumber"},[e._v(e._s(e.IDInfo.cardId))])]),t("div",[t("img",{staticStyle:{width:"433px",height:"278px"},attrs:{src:__webpack_require__(4923)}}),t("span",{staticClass:"idcard-info qfjg"},[e._v(e._s(e.IDInfo.police))]),t("span",{staticClass:"idcard-info yxrq"},[e._v(e._s(e.validDate))])])])])],1),t("el-main",[t("zs-card",{staticClass:"camera",attrs:{title:"摄像头"},scopedSlots:e._u([{key:"extra",fn:function(){return[t("el-button",{attrs:{type:"primary",size:"mini"},on:{click:e.veriface}},[e._v("开始识别")])]},proxy:!0}],null,!1,3429989024)},[t("div",{staticStyle:{width:"320px",height:"240px"},attrs:{id:"camera_row"}})])],1)],1),t("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},e._l(e.buttonList,(function(n){return t("el-button",e._b({key:n.name,on:{click:function(t){return e.buttonClickEvent(n.name)}}},"el-button",n,!1),[e._v(e._s(n.label)+" ")])})),1)],1):e._e()},tt=[],nt={name:"face-auth-dialog",data:()=>({visibility:!0,buttonList:[{name:"cancel",label:"取消",size:"small"},{name:"sure",label:"确定",type:"primary",size:"small",icon:"el-icon-success"}],idCardInfo:{info:{name:"",sex:"",nation:"",birthday:"",address:"",cardId:"",police:"",validStart:"",validEnd:"",sexCode:"",nationCode:""},headImage:void 0},verifaceData:verifaceData}),computed:{IDInfo(){return this.idCardInfo.info},birthYear(){return this.idCardInfo.info.birthday?this.idCardInfo.info.birthday.slice(0,4):""},birthMonth(){return this.idCardInfo.info.birthday?this.idCardInfo.info.birthday.slice(4,6):""},birthDay(){return this.idCardInfo.info.birthday?this.idCardInfo.info.birthday.slice(6,8):""},validDate(){return this.idCardInfo.info.validStart&&this.idCardInfo.info.validEnd?this.idCardInfo.info.validStart+"-"+this.idCardInfo.info.validEnd:""}},mounted(){this.$nextTick((()=>{(0,Je.xj)()}))},methods:{async veriface(){const e=await Je.g$.getElement(4);this.idCardInfo=e.idCard,this.verifaceData=e},buttonClickEvent(e){switch(e){case"cancel":this.visibility=!1;break;case"sure":this.$emit("close",this.verifaceData),this.visibility=!1;break}}}},it=nt,rt=l(it,et,tt,!1,null,null,null),at=rt.exports,st=function(){var e=this,t=e._self._c;return e.visibility?t("el-dialog",{staticClass:"face-auth-dialog",attrs:{title:"拍照",top:"5vh",width:"620px",visible:e.visibility,"close-on-click-modal":!1},on:{"update:visible":function(t){e.visibility=t}}},[t("div",{staticClass:"image-container"},[t("img",{directives:[{name:"show",rawName:"v-show",value:!e.scannerPhotoSrc,expression:"!scannerPhotoSrc"}],staticStyle:{width:"600px",height:"450px"},attrs:{id:"photo",src:e.scannerVideoSrc}}),t("img",{directives:[{name:"show",rawName:"v-show",value:e.scannerPhotoSrc,expression:"scannerPhotoSrc"}],staticStyle:{width:"600px",height:"450px"},attrs:{id:"photo",src:"data:image/jpg;base64,"+e.scannerPhotoSrc}})]),t("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[e._l(e.buttonList,(function(n){return[e.isShowButton(n.name)?t("el-button",e._b({key:n.name,on:{click:function(t){return e.buttonClickEvent(n.name)}}},"el-button",n,!1),[e._v(e._s(n.label)+" ")]):e._e()]}))],2)]):e._e()},ot=[],lt={name:"eloam-take-photo-dialog",data:()=>({visibility:!0,scannerVideoSrc:W.secondaryCameraUrl,scannerPhotoSrc:"",buttonList:[{name:"cancel",label:"取消",size:"small"},{name:"take-photo",label:"拍照",type:"primary",size:"small"},{name:"retake-photo",label:"重拍",type:"primary",size:"small"},{name:"sure",label:"确定",type:"primary",size:"small"}]}),methods:{isShowButton(e){switch(e){case"take-photo":return!this.scannerPhotoSrc;case"retake-photo":return this.scannerPhotoSrc;default:return!0}},async buttonClickEvent(e){switch(e){case"cancel":this.visibility=!1;break;case"take-photo":const e=await W.scanBySecondaryCamera();this.scannerPhotoSrc=e;break;case"retake-photo":this.scannerPhotoSrc="";break;case"sure":let t={faceimg:this.scannerPhotoSrc};this.$emit("close",t),this.visibility=!1;break}}}},ct=lt,ut=l(ct,st,ot,!1,null,"6e18b4de",null),dt=ut.exports,ht=__webpack_require__(7203),ft=__webpack_require__.n(ht);const pt={AND:"安道尔",AFG:"阿富汗",ATG:"安提瓜和巴布达",AIA:"安圭拉",ALB:"阿尔巴尼亚",ARM:"亚美尼亚",AGO:"安哥拉",ATA:"南极洲",ARG:"阿根廷",ASM:"美属萨摩亚",AUT:"奥地利",AUS:"澳大利亚",ABW:"阿鲁巴",ALA:"奥兰群岛",AZE:"阿塞拜疆",BIH:"波黑",BRB:"巴巴多斯",BGD:"孟加拉",BEL:"比利时",BFA:"布基纳法索",BGR:"保加利亚",BHR:"巴林",BDI:"布隆迪",BEN:"贝宁",BLM:"圣巴泰勒米岛",BMU:"百慕大",BRN:"文莱",BOL:"玻利维亚",BES:"荷兰加勒比区",BRA:"巴西",BHS:"巴哈马",BTN:"不丹",BVT:"布韦岛",BWA:"博茨瓦纳",BLR:"白俄罗斯",BLZ:"伯利兹",CAN:"加拿大",CCK:"科科斯群岛",CAF:"中非",CHE:"瑞士",CHL:"智利",CMR:"喀麦隆",COL:"哥伦比亚",CRI:"哥斯达黎加",CUB:"古巴",CPV:"佛得角",CXR:"圣诞岛",CYP:"塞浦路斯",CZE:"捷克",DEU:"德国",DJI:"吉布提",DNK:"丹麦",DMA:"多米尼克",DOM:"多米尼加",DZA:"阿尔及利亚",ECU:"厄瓜多尔",EST:"爱沙尼亚",EGY:"埃及",ESH:"西撒哈拉",ERI:"厄立特里亚",ESP:"西班牙",FIN:"芬兰",FJI:"斐济群岛",FLK:"马尔维纳斯群岛(福克兰)",FSM:"密克罗尼西亚联邦",FRO:"法罗群岛",FRA:"法国",GAB:"加蓬",GRD:"格林纳达",GEO:"格鲁吉亚",GUF:"法属圭亚那",GHA:"加纳",GIB:"直布罗陀",GRL:"格陵兰",GIN:"几内亚",GLP:"瓜德罗普",GNQ:"赤道几内亚",GRC:"希腊",SGS:"南乔治亚岛和南桑威奇群岛",GTM:"危地马拉",GUM:"关岛",GNB:"几内亚比绍",GUY:"圭亚那",HKG:"香港",HMD:"赫德岛和麦克唐纳群岛",HND:"洪都拉斯",HRV:"克罗地亚",HTI:"海地",HUN:"匈牙利",IDN:"印尼",IRL:"爱尔兰",ISR:"以色列",IMN:"马恩岛",IND:"印度",IOT:"英属印度洋领地",IRQ:"伊拉克",IRN:"伊朗",ISL:"冰岛",ITA:"意大利",JEY:"泽西岛",JAM:"牙买加",JOR:"约旦",JPN:"日本",KHM:"柬埔寨",KIR:"基里巴斯",COM:"科摩罗",KWT:"科威特",CYM:"开曼群岛",LBN:"黎巴嫩",LIE:"列支敦士登",LKA:"斯里兰卡",LBR:"利比里亚",LSO:"莱索托",LTU:"立陶宛",LUX:"卢森堡",LVA:"拉脱维亚",LBY:"利比亚",MAR:"摩洛哥",MCO:"摩纳哥",MDA:"摩尔多瓦",MNE:"黑山",MAF:"法属圣马丁",MDG:"马达加斯加",MHL:"马绍尔群岛",MKD:"马其顿",MLI:"马里",MMR:"缅甸",MAC:"澳门",MTQ:"马提尼克",MRT:"毛里塔尼亚",MSR:"蒙塞拉特岛",MLT:"马耳他",MDV:"马尔代夫",MWI:"马拉维",MEX:"墨西哥",MYS:"马来西亚",NAM:"纳米比亚",NER:"尼日尔",NFK:"诺福克岛",NGA:"尼日利亚",NIC:"尼加拉瓜",NLD:"荷兰",NOR:"挪威",NPL:"尼泊尔",NRU:"瑙鲁",OMN:"阿曼",PAN:"巴拿马",PER:"秘鲁",PYF:"法属波利尼西亚",PNG:"巴布亚新几内亚",PHL:"菲律宾",PAK:"巴基斯坦",POL:"波兰",PCN:"皮特凯恩群岛",PRI:"波多黎各",PSE:"巴勒斯坦",PLW:"帕劳",PRY:"巴拉圭",QAT:"卡塔尔",REU:"留尼汪",ROU:"罗马尼亚",SRB:"塞尔维亚",RUS:"俄罗斯",RWA:"卢旺达",SLB:"所罗门群岛",SYC:"塞舌尔",SDN:"苏丹",SWE:"瑞典",SGP:"新加坡",SVN:"斯洛文尼亚",SJM:"斯瓦尔巴群岛和 扬马延岛",SVK:"斯洛伐克",SLE:"塞拉利昂",SMR:"圣马力诺",SEN:"塞内加尔",SOM:"索马里",SUR:"苏里南",SSD:"南苏丹",STP:"圣多美和普林西比",SLV:"萨尔瓦多",SYR:"叙利亚",SWZ:"斯威士兰",TCA:"特克斯和凯科斯群岛",TCD:"乍得",TGO:"多哥",THA:"泰国",TKL:"托克劳",TLS:"东帝汶",TUN:"突尼斯",TON:"汤加",TUR:"土耳其",TUV:"图瓦卢",TZA:"坦桑尼亚",UKR:"乌克兰",UGA:"乌干达",USA:"美国",URY:"乌拉圭",VAT:"梵蒂冈",VEN:"委内瑞拉",VGB:"英属维尔京群岛",VIR:"美属维尔京群岛",VNM:"越南",WLF:"瓦利斯和富图纳",WSM:"萨摩亚",YEM:"也门",MYT:"马约特",ZAF:"南非",ZMB:"赞比亚",ZWE:"津巴布韦",CHN:"中国",COG:"刚果(布)",COD:"刚果(金)",MOZ:"莫桑比克",GGY:"根西岛",GMB:"冈比亚",MNP:"北马里亚纳群岛",ETH:"埃塞俄比亚",NCL:"新喀里多尼亚",VUT:"瓦努阿图",ATF:"法属南部领地",NIU:"纽埃",UMI:"美国本土外小岛屿",COK:"库克群岛",GBR:"英国",TTO:"特立尼达和多巴哥",VCT:"圣文森特和格林纳丁斯",TWN:"台湾",NZL:"新西兰",SAU:"沙特阿拉伯",LAO:"老挝",PRK:"朝鲜",KOR:"韩国",PRT:"葡萄牙",KGZ:"吉尔吉斯斯坦",KAZ:"哈萨克斯坦",TJK:"塔吉克斯坦",TKM:"土库曼斯坦",UZB:"乌兹别克斯坦",KNA:"圣基茨和尼维斯",SPM:"圣皮埃尔和密克隆",SHN:"圣赫勒拿",LCA:"圣卢西亚",MUS:"毛里求斯",CIV:"科特迪瓦",KEN:"肯尼亚",MNG:"蒙古国"};function mt(e){return pt[e]}class gt{static startConnect(){if(this.ws&&this.ws.readyState===WebSocket.CONNECTING)return this;let e=this.idCardWebSocketUrl;const t=new WebSocket(e);let n;const i=new Promise((e=>{n=e}));return t.onopen=()=>{n(!0)},t.onmessage=e=>this.handleMessage(e),t.onclose=()=>this.handleClose(),t.onerror=()=>this.handleError(),this.ws=t,i}static handleError(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("handleError")}));throw Error("统一插件平台读取身份证功能加载失败")}static handleClose(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("close")}))}static handleMessage(e){let t="";try{t=e.data}catch(n){t=""}this.requestStore.forEach((({resolve:e})=>{e(t)})),this.requestStore=[],this.ws.close()}static async read(){if(await this.startConnect(),1===this.ws.readyState)return this.ws.send("04?timeout=10000"),new Promise(((e,t)=>{this.requestStore||(this.requestStore=[]),this.requestStore.push({resolve:e,reject:t})}));throw Error("统一插件平台读取身份证未准备完成")}static async idCardRead(){const e=await gt.read();if(e){let[t,n,i,r,a,s,o,l,c,u,d,h]=e.split("|"),f=e.split("|")[19],p=e.split("|")[18];if("1"===p){const e={info:{cardType:"1",name:r,chineseName:"",englishName:"",sex:a,birthday:o,address:l,cardId:c,nationality:"中国",nation:s,police:u,validStart:d,validEnd:h},headImage:f};return e}{let t=e.split("|")[16]||"无中文姓名";const n={info:{cardType:"9",name:"无中文姓名"===t?r:t||r,chineseName:t,englishName:r,sex:a,birthday:o,address:l,cardId:c,nationality:mt(p),nation:"",police:"中华人民共和国国家移民管理局",validStart:d,validEnd:h},headImage:f};return n}}throw Error("未匹配可用的读卡器")}}V(gt,"idCardWebSocketUrl","ws://127.0.0.1:7415"),V(gt,"ws",void 0),V(gt,"requestStore",[]);var vt,bt=function(){var e=this,t=e._self._c;return t("el-dialog",{staticClass:"face-auth-dialog",attrs:{title:"拍照",top:"5vh",width:"620px",visible:e.visibility,"close-on-click-modal":!1},on:{"update:visible":function(t){e.visibility=t}}},[t("div",{staticClass:"image-container"},[t("video",{ref:"monitor",staticClass:"videoContainer",attrs:{id:"monitor",autoplay:"",width:"250",height:"300"}}),t("canvas",{ref:"photo",staticClass:"videoContainer photo",staticStyle:{display:"none"},attrs:{id:"photo",width:"1920",height:"1080"}}),t("div",{staticClass:"image-content"},[t("img",{staticClass:"videoContainer photo",attrs:{src:e.viewerPhotoSrc}})])]),t("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[e._l(e.buttonList,(function(n){return[e._isShowButton(n.name)?t("el-button",e._b({key:n.name,on:{click:function(t){return e.buttonClickEvent(n.name)}}},"el-button",n,!1),[e._v(e._s(n.label)+" ")]):e._e()]}))],2)])},yt=[];(function(e){e["GetStatus"]="GetStatus",e["ManualRead"]="ManualRead",e["GetReadResult"]="GetReadResult",e["FaceAuth"]="IDAuth"})(vt||(vt={}));const Ct={AND:"安道尔",AFG:"阿富汗",ATG:"安提瓜和巴布达",AIA:"安圭拉",ALB:"阿尔巴尼亚",ARM:"亚美尼亚",AGO:"安哥拉",ATA:"南极洲",ARG:"阿根廷",ASM:"美属萨摩亚",AUT:"奥地利",AUS:"澳大利亚",ABW:"阿鲁巴",ALA:"奥兰群岛",AZE:"阿塞拜疆",BIH:"波黑",BRB:"巴巴多斯",BGD:"孟加拉",BEL:"比利时",BFA:"布基纳法索",BGR:"保加利亚",BHR:"巴林",BDI:"布隆迪",BEN:"贝宁",BLM:"圣巴泰勒米岛",BMU:"百慕大",BRN:"文莱",BOL:"玻利维亚",BES:"荷兰加勒比区",BRA:"巴西",BHS:"巴哈马",BTN:"不丹",BVT:"布韦岛",BWA:"博茨瓦纳",BLR:"白俄罗斯",BLZ:"伯利兹",CAN:"加拿大",CCK:"科科斯群岛",CAF:"中非",CHE:"瑞士",CHL:"智利",CMR:"喀麦隆",COL:"哥伦比亚",CRI:"哥斯达黎加",CUB:"古巴",CPV:"佛得角",CXR:"圣诞岛",CYP:"塞浦路斯",CZE:"捷克",DEU:"德国",DJI:"吉布提",DNK:"丹麦",DMA:"多米尼克",DOM:"多米尼加",DZA:"阿尔及利亚",ECU:"厄瓜多尔",EST:"爱沙尼亚",EGY:"埃及",ESH:"西撒哈拉",ERI:"厄立特里亚",ESP:"西班牙",FIN:"芬兰",FJI:"斐济群岛",FLK:"马尔维纳斯群岛(福克兰)",FSM:"密克罗尼西亚联邦",FRO:"法罗群岛",FRA:"法国",GAB:"加蓬",GRD:"格林纳达",GEO:"格鲁吉亚",GUF:"法属圭亚那",GHA:"加纳",GIB:"直布罗陀",GRL:"格陵兰",GIN:"几内亚",GLP:"瓜德罗普",GNQ:"赤道几内亚",GRC:"希腊",SGS:"南乔治亚岛和南桑威奇群岛",GTM:"危地马拉",GUM:"关岛",GNB:"几内亚比绍",GUY:"圭亚那",HKG:"香港",HMD:"赫德岛和麦克唐纳群岛",HND:"洪都拉斯",HRV:"克罗地亚",HTI:"海地",HUN:"匈牙利",IDN:"印尼",IRL:"爱尔兰",ISR:"以色列",IMN:"马恩岛",IND:"印度",IOT:"英属印度洋领地",IRQ:"伊拉克",IRN:"伊朗",ISL:"冰岛",ITA:"意大利",JEY:"泽西岛",JAM:"牙买加",JOR:"约旦",JPN:"日本",KHM:"柬埔寨",KIR:"基里巴斯",COM:"科摩罗",KWT:"科威特",CYM:"开曼群岛",LBN:"黎巴嫩",LIE:"列支敦士登",LKA:"斯里兰卡",LBR:"利比里亚",LSO:"莱索托",LTU:"立陶宛",LUX:"卢森堡",LVA:"拉脱维亚",LBY:"利比亚",MAR:"摩洛哥",MCO:"摩纳哥",MDA:"摩尔多瓦",MNE:"黑山",MAF:"法属圣马丁",MDG:"马达加斯加",MHL:"马绍尔群岛",MKD:"马其顿",MLI:"马里",MMR:"缅甸",MAC:"澳门",MTQ:"马提尼克",MRT:"毛里塔尼亚",MSR:"蒙塞拉特岛",MLT:"马耳他",MDV:"马尔代夫",MWI:"马拉维",MEX:"墨西哥",MYS:"马来西亚",NAM:"纳米比亚",NER:"尼日尔",NFK:"诺福克岛",NGA:"尼日利亚",NIC:"尼加拉瓜",NLD:"荷兰",NOR:"挪威",NPL:"尼泊尔",NRU:"瑙鲁",OMN:"阿曼",PAN:"巴拿马",PER:"秘鲁",PYF:"法属波利尼西亚",PNG:"巴布亚新几内亚",PHL:"菲律宾",PAK:"巴基斯坦",POL:"波兰",PCN:"皮特凯恩群岛",PRI:"波多黎各",PSE:"巴勒斯坦",PLW:"帕劳",PRY:"巴拉圭",QAT:"卡塔尔",REU:"留尼汪",ROU:"罗马尼亚",SRB:"塞尔维亚",RUS:"俄罗斯",RWA:"卢旺达",SLB:"所罗门群岛",SYC:"塞舌尔",SDN:"苏丹",SWE:"瑞典",SGP:"新加坡",SVN:"斯洛文尼亚",SJM:"斯瓦尔巴群岛和 扬马延岛",SVK:"斯洛伐克",SLE:"塞拉利昂",SMR:"圣马力诺",SEN:"塞内加尔",SOM:"索马里",SUR:"苏里南",SSD:"南苏丹",STP:"圣多美和普林西比",SLV:"萨尔瓦多",SYR:"叙利亚",SWZ:"斯威士兰",TCA:"特克斯和凯科斯群岛",TCD:"乍得",TGO:"多哥",THA:"泰国",TKL:"托克劳",TLS:"东帝汶",TUN:"突尼斯",TON:"汤加",TUR:"土耳其",TUV:"图瓦卢",TZA:"坦桑尼亚",UKR:"乌克兰",UGA:"乌干达",USA:"美国",URY:"乌拉圭",VAT:"梵蒂冈",VEN:"委内瑞拉",VGB:"英属维尔京群岛",VIR:"美属维尔京群岛",VNM:"越南",WLF:"瓦利斯和富图纳",WSM:"萨摩亚",YEM:"也门",MYT:"马约特",ZAF:"南非",ZMB:"赞比亚",ZWE:"津巴布韦",CHN:"中国",COG:"刚果(布)",COD:"刚果(金)",MOZ:"莫桑比克",GGY:"根西岛",GMB:"冈比亚",MNP:"北马里亚纳群岛",ETH:"埃塞俄比亚",NCL:"新喀里多尼亚",VUT:"瓦努阿图",ATF:"法属南部领地",NIU:"纽埃",UMI:"美国本土外小岛屿",COK:"库克群岛",GBR:"英国",TTO:"特立尼达和多巴哥",VCT:"圣文森特和格林纳丁斯",TWN:"台湾",NZL:"新西兰",SAU:"沙特阿拉伯",LAO:"老挝",PRK:"朝鲜",KOR:"韩国",PRT:"葡萄牙",KGZ:"吉尔吉斯斯坦",KAZ:"哈萨克斯坦",TJK:"塔吉克斯坦",TKM:"土库曼斯坦",UZB:"乌兹别克斯坦",KNA:"圣基茨和尼维斯",SPM:"圣皮埃尔和密克隆",SHN:"圣赫勒拿",LCA:"圣卢西亚",MUS:"毛里求斯",CIV:"科特迪瓦",KEN:"肯尼亚",MNG:"蒙古国"};var wt;(function(e){e["MALE"]="男",e["FEMALE"]="女"})(wt||(wt={}));const _t={"Content-Type":"application/json; charset=utf-8"};function xt(e){return Ct[e]}function St(e){return new Promise(((t,n)=>{let i=new Image;i.setAttribute("crossOrigin","Anonymous"),i.src=e,i.onload=function(){let e=document.createElement("canvas"),n=i.width,r=i.height;e.width=n,e.height=r,e.getContext("2d").drawImage(i,0,0);let a=e.toDataURL("image/png");t(a)},i.onerror=()=>{n(new Error("urlToBase64 error"))}}))}async function kt(e){let{doc_number:t,state:n,name:i,truncation_name:r,sex:a,birth_DateFormat:s,dg11:o,expired_DateFormat:l,pic_nfc_face:c}=e,u=o&&o.name||"无中文姓名",d=i+r,h=await St(c);return{name:"无中文姓名"===u?d:u,chineseName:u,englishName:d,sex:wt[a]||"未知",cardId:t,birthday:s.replace("-","").replace("-",""),nationality:xt(n),validEnd:l.replace("-","").replace("-",""),headImage:h.replace("data:image/png;base64,","")}}async function It(e){let{csrq:t,dzmc:n,gmsfhm:i,jdxp:r,mzdm:a,qfjgmc:s,xbdm:o,xm:l,yxqjzrq:c,yxqqsrq:u}=e,d=await St(r);return{name:l,chineseName:"",englishName:"",sex:o.replace("性",""),cardId:i,birthday:t,nationality:"中国",nation:a,police:s,address:n,validStart:u,validEnd:c,headImage:d.replace("data:image/png;base64,","")}}async function Et(e){let{zwxm:t,ywxm:n,xbdm:i,yjjlzhm:r,zjhm:a,gjdm:s,zjqfrq:o,zjzzrq:l,yxqqsrq:c,yxqjzrq:u,csrq:d,jdxp:h}=e,f=t||"无中文姓名",p=n,m=await St(h);return{name:"无中文姓名"===f?p:f,chineseName:f,englishName:p,sex:i.replace("性",""),cardId:a||r,birthday:d,nationality:xt(s),validStart:c||o,validEnd:u||l,police:"中华人民共和国国家移民管理局",headImage:m.replace("data:image/png;base64,","")}}class Dt{static async read(e,t={}){let n,i="",r="",a={};switch(e){case vt.GetStatus:i=`${Dt.baseServiceUrl}/PassportReader/${e}`,r="get";break;case vt.ManualRead:i=`${Dt.baseServiceUrl}/PassportReader/${e}`,r="get";break;case vt.GetReadResult:i=`${Dt.baseServiceUrl}/PassportReader/${e}`,r="get";break;case vt.FaceAuth:i=`${Dt.baseServiceUrl}/PassportReader/${e}`,r="post",a={...t};break}return n=await ae[r](i,a,_t),n}static async getStatus(){await Dt.read(vt.GetStatus)}static async manualRead(){await Dt.read(vt.ManualRead)}static async getReadResult(){await Dt.manualRead();let e=await Dt.read(vt.GetReadResult);while("done"!==e.data.reader_stat)await new Promise((e=>setTimeout(e,1e3))),e=await Dt.read(vt.GetReadResult);let t,n,i=e.data,{nfc_result:r,idcard_result:a,idcard_fi_result:s,idcard_fy_result:o,idcard_j_result:l}=i;switch(i.card_type){case"TD3":t="3",n=await kt(r);break;case"IDCARD":t="1",n=await It(a);break;case"IDCARD_FI":case"IDCARD_FY":t="9",n=await Et(s||o);break;case"TD1_HC":case"TD1_MC":case"TD1_TC":case"TD1_CT":case"TD1_CR":t="12",n=kt(r);break;case"IDCARD_J":t="2",n=await It(l)}let{nationality:c,name:u,chineseName:d,englishName:h,sex:f,birthday:p,address:m,cardId:g,nation:v,police:b,validStart:y,validEnd:C,headImage:w}=n;const _={info:{cardType:t,nationality:c,name:u,chineseName:d,englishName:h,sex:f,birthday:p,address:m,cardId:g,nation:v,police:b,validStart:y,validEnd:C},headImage:w};return _}static async faceAuth(e){console.log("faceAuth=>",e);let t=await Dt.read(vt.FaceAuth,{imgBase64:e});while(40001===t.ret)await new Promise((e=>setTimeout(e,1e3))),t=await Dt.read(vt.FaceAuth,{imgBase64:e});return console.log("人脸识别结束=>",t),t.data.result}}V(Dt,"baseServiceUrl","http://127.0.0.1:7770");var At={name:"default-take-photo-dialog",props:{readMachineType:{type:Number,default:0}},data:()=>({visibility:!0,viewerPhotoSrc:"",scannerPhotoSrc:"",cameraStream:"",buttonList:[{name:"cancel",label:"取消",size:"small"},{name:"take-photo",label:"拍照",type:"primary",size:"small"},{name:"face-auth",label:"人脸识别",type:"primary",size:"small"},{name:"sure",label:"确定",type:"primary",size:"small"}]}),mounted(){this.$nextTick((()=>{this.initDefaultCamera()}))},beforeDestroy(){this.cameraStream.getVideoTracks().forEach((e=>{e.stop()}))},methods:{async initDefaultCamera(){let e=document.getElementById("monitor"),t=this.$refs.photo;console.log(e,t);let n={audio:!1,video:{width:1920,height:1080}};if(navigator.mediaDevices&&navigator.mediaDevices.getUserMedia)try{let t=await navigator.mediaDevices.getUserMedia(n);e.srcObject=t,e.play(),console.log(t),this.cameraStream=t}catch(i){this.$message.error("没有可用的摄像头!"),console.log(i)}else this.$message.error("调用摄像头失败,请在首页右上角我的设备中设置读拍照/人脸识别选项,并确保已为浏览器设置相关权限!")},takePicture(){let e=this.$refs.monitor,t=this.$refs.photo,n=t.getContext("2d");n.drawImage(e,0,0,1920,1080);let i=t.toDataURL("image/png");t.src=i,this.viewerPhotoSrc=i,this.scannerPhotoSrc=i.replace("data:image/png;base64,","")},_isShowButton(e){switch(e){case"sure":return 11!==this.readMachineType;case"face-auth":return 11===this.readMachineType;default:return!0}},async buttonClickEvent(e){switch(e){case"cancel":this.visibility=!1,this.$emit("close");break;case"take-photo":this.takePicture();break;case"sure":let e={faceimg:this.scannerPhotoSrc};this.$emit("close",e),this.visibility=!1;break;case"face-auth":this.faceReaderEvent();break}},async faceReaderEvent(){let e;switch(this.readMachineType){case 11:if(e=await Dt.getReadResult(),"3"===e.info.cardType||"12"===e.info.cardType||"2"===e.info.cardType){let t=await Dt.faceAuth(this.scannerPhotoSrc),n={idCard:{...e},faceimg:this.scannerPhotoSrc,score:t?100:0};this.$emit("faceReader",n)}else this.$message.error("当前证件不支持人脸识别")}},compressImage(e,t){return new Promise(((n,i)=>{let r=new Image;r.src=e,r.onload=function(){let e=this,i=e.width*t.quality,r=e.height*t.quality,a=t.quality,s=document.createElement("canvas"),o=s.getContext("2d"),l=document.createAttribute("width");l.nodeValue=String(i);let c=document.createAttribute("height");c.nodeValue=String(r),s.setAttributeNode(l),s.setAttributeNode(c),o.drawImage(e,0,0,i,r),t.quality&&t.quality<=1&&t.quality>0&&(a=t.quality);let u=s.toDataURL(t.type,a);n(u)}}))}}},Ot=At,Tt=l(Ot,bt,yt,!1,null,null,null),Mt=Tt.exports,Nt=function(){var e=this,t=e._self._c;return e.visibility?t("el-dialog",{staticClass:"wei-rong-face-auth-dialog",attrs:{title:"人脸识别",top:"5vh",width:"640px",visible:e.visibility,"close-on-click-modal":!1},on:{"update:visible":function(t){e.visibility=t}}},[t("div",{staticClass:"image-container"},[t("img",{staticStyle:{width:"600px",height:"450px"},attrs:{id:"photo",src:e.viewFaceImage}})])]):e._e()},Pt=[];const jt="data:image/jpg;base64,";var Rt,Lt={name:"wei-rong-face-auth-dialog",data:()=>({visibility:!0,viewFaceImage:""}),async created(){window.addEventListener(oe,(e=>{e.type===oe&&(this.viewFaceImage=`${jt}${e.scannerResultUrl}`)}));let e=await ye.faceValidateWithIdCardRead();this.$message.success("认证成功"),setTimeout((()=>{this.$emit("close",e)}),1500)}},Ft=Lt,$t=l(Ft,Nt,Pt,!1,null,"5bbb0afc",null),Bt=$t.exports;class Vt{static async read(e){let t="";switch(e){case"ReadIDCard_Base64":t=this.idCardWebSocketUrl+"/readCard";break}let n=await ae.get(t);return n}static async idCardRead(){const e=await Vt.read("ReadIDCard_Base64");if(e){let t=e.split("|");if("0"!=t[0])throw Error(t[1]);let n,i,r,a,s,o,l,c,u,d,h,f,p="",m="";switch(t[1]){case"1":n="1",i=t[2],r=t[4],a=t[6],o=t[7],l=t[8],c=t[9],u=t[10],d=t[11],h=t[12],f=t[13],s="中国";break;case"2":n="9",p=t[2],r=t[4],c=t[5],s=t[7],m=t[8]||"无中文姓名",d=t[9],h=t[10],o=t[11],u=t[14],f=t[15],i="无中文姓名"===m?p:m;break;case"4":n="9",m=t[2]||"无中文姓名",r=t[4],o=t[6],p=t[7],c=t[8],d=t[10],h=t[11],s=t[13],u="中华人民共和国国家移民管理局",f=t[15],i="无中文姓名"===m?p:m;break;case"3":}const g={info:{cardType:n,nationality:s,name:i,chineseName:m,englishName:p,sex:r,birthday:o,address:l,cardId:c,nation:a,police:u,validStart:d,validEnd:h},headImage:f};return console.log(g),g}throw Error("未匹配可用的读卡器")}}V(Vt,"idCardWebSocketUrl","http://127.0.0.1:10012"),V(Vt,"ws",void 0),V(Vt,"requestStore",[]);class zt{static async read(e){let t="";switch(e){case"ReadIDCard_Base64":t=this.idCardWebSocketUrl+"/api/readCard";break}let n=await ae.post(t,{});return n}static async idCardRead(){const e=await zt.read("ReadIDCard_Base64");if(0===e.resultFlag){let t=e.resultContent,n="1",i=t.partyName,r=1===t.gender?"男":"女",a=t.nation,s="中国",o=t.bornDay,l=t.certAddress,c=t.certNumber,u=t.certOrg,d=t.effDate,h=t.expDate,f=t.identityPic;const p={info:{cardType:n,nationality:s,name:i,sex:r,birthday:o,address:l,cardId:c,nation:a,police:u,validStart:d,validEnd:h},headImage:f};return console.log(p),p}throw Error("未匹配可用的读卡器")}}V(zt,"idCardWebSocketUrl","http://127.0.0.1:18889"),function(e){e["Init"]="init",e["StartSignName"]="startSignName",e["Close"]="close",e["SignNameAgain"]="signNameAgain",e["GetSign"]="GetSign"}(Rt||(Rt={}));class Wt{static startConnect(){if(this.ws&&this.ws.readyState===WebSocket.CONNECTING)return this;const e=new WebSocket(this.linuxWebServiceUrl);let t;const n=new Promise((e=>{t=e}));return e.onopen=()=>{t(!0)},e.onmessage=e=>{this.handleMessage(e)},e.onclose=()=>this.handleClose(),e.onerror=e=>this.handleError(e),this.ws=e,n}static handleMessage(e){let t={};try{t=JSON.parse(e.data)}catch(n){t={}}if("HWGetSign"===t.HWPenSign&&"0"==t.msgID){const e=new ue(t.message);return window.dispatchEvent(e)}this.requestStore.forEach((({resolve:e})=>{e(t)})),this.requestStore=[]}static handleError(e){for(const t in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("handleError")}))}static handleClose(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("close")}))}static async read(e){let t="",n={};switch(e){case Rt.Init:n={},t=this.windowsWebServiceUrl+"/HWPenSign/HWGetDeviceStatus";break;case Rt.StartSignName:n={nLogo:"? ",nPenwidth:"2",nOrgX:"100",nOrgY:"200",width:"500",height:"300",fingerFap:"2",key:"4A05564228DF2C64AF2E137B71A4E7A3"},t=this.windowsWebServiceUrl+"/HWPenSign/HWInitialize";break;case Rt.GetSign:n={nImageType:"3",nImageWidth:"500",nImageHeight:"300"},t=this.windowsWebServiceUrl+"/HWPenSign/HWGetSign";break}let i=await ae.get(t,n);return i}static async readInLinux(e){if(await this.startConnect(),1===this.ws.readyState){let t="";switch(e){case Rt.Init:t=JSON.stringify({HWPenSign:"HWGetDeviceStatus"});break;case Rt.StartSignName:t=JSON.stringify({HWPenSign:"HWInitialize",key:"D9063E7FE567E09E84B00B5ECDE9B3F2",title:"请在签字板上签名",nOrgX:400,nOrgY:350,nWidth:600,nHeight:400,showDialog:1,nImageWidth:250,nImageHeight:150,nConfirmTimeout:30,fingerCap:1,nFingerCap:0});break}return this.ws.send(t),new Promise(((e,t)=>{this.requestStore||(this.requestStore=[]),this.requestStore.push({resolve:e,reject:t})}))}}static async signNameRead(){return new Promise((async e=>{if(this._isLinux){let t=await Wt.readInLinux(Rt.Init);if(console.log("初始化=>",t),0!=t.msgID)throw Error("统一插件平台设备未准备完成");{let t=await Wt.readInLinux(Rt.StartSignName);console.log("签字=>",t),0==t.msgID&&e("")}}else{let t=await Wt.read(Rt.Init);if("0"!==t.msgID)throw Error("统一插件平台设备未准备完成");let n=await Wt.read(Rt.StartSignName);if("0"!==n.msgID)throw Error("统一插件平台设备未准备完成");let i=setInterval((async()=>{let t=await Wt.read(Rt.GetSign);"0"===t.msgID&&(clearInterval(i),e(t.message.replace("data:image/png;base64,","")))}),2e3)}}))}}V(Wt,"windowsWebServiceUrl","http://127.0.0.1:29999"),V(Wt,"linuxWebServiceUrl","ws://127.0.0.1:29999"),V(Wt,"ws",void 0),V(Wt,"requestStore",[]),V(Wt,"_isLinux",String(navigator.platform).indexOf("Linux")>-1);var Ht={name:"id-card-reader-button",props:{label:{default:"",type:String},tip:{default:"",type:String},className:{default:"",type:String},size:{default:"mini",type:String},type:{default:"primary",type:String},plain:{default:!1,type:Boolean},round:{default:!1,type:Boolean},loading:{default:!1,type:Boolean},icon:{default:"el-icon-postcard",type:String},disabled:{default:!1,type:Boolean},readMachineType:{default:0,type:Number},readerMode:{default:"idCard",type:String},filePath:{default:"JVBERi0xLjcNCiW1tbW1DQoxIDAgb2JqDQo8PC9UeXBlL0NhdGFsb2cvUGFnZXMgMiAwIFIvTGFuZyh6aCkgL1N0cnVjdFRyZWVSb290IDE3IDAgUi9NYXJrSW5mbzw8L01hcmtlZCB0cnVlPj4vTWV0YWRhdGEgMzYgMCBSL1ZpZXdlclByZWZlcmVuY2VzIDM3IDAgUj4+DQplbmRvYmoNCjIgMCBvYmoNCjw8L1R5cGUvUGFnZXMvQ291bnQgMS9LaWRzWyAzIDAgUl0gPj4NCmVuZG9iag0KMyAwIG9iag0KPDwvVHlwZS9QYWdlL1BhcmVudCAyIDAgUi9SZXNvdXJjZXM8PC9Gb250PDwvRjEgNSAwIFIvRjIgOSAwIFIvRjMgMTQgMCBSPj4vRXh0R1N0YXRlPDwvR1M3IDcgMCBSL0dTOCA4IDAgUj4+L1Byb2NTZXRbL1BERi9UZXh0L0ltYWdlQi9JbWFnZUMvSW1hZ2VJXSA+Pi9NZWRpYUJveFsgMCAwIDUyMS42NCAzNjguNTJdIC9Db250ZW50cyA0IDAgUi9Hcm91cDw8L1R5cGUvR3JvdXAvUy9UcmFuc3BhcmVuY3kvQ1MvRGV2aWNlUkdCPj4vVGFicy9TL1N0cnVjdFBhcmVudHMgMD4+DQplbmRvYmoNCjQgMCBvYmoNCjw8L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggMjkyPj4NCnN0cmVhbQ0KeJylkUtPQkEMhfeTzH84SyBxbqfzNCEk98ElGl0YMC6IC0KAuPBGkf8fe5ENom6c1XTanvY7g2L+tuowHhf39U0DKu5W3Q6DTXf1OB9OJqiaGu9akaH+pJQcCIGtiR4uZhMY+41WTyN0WlULrYrWgqMhj8VWKyvVhP6FTHZwZE2QzKvUzeYJuw+Rxu4Y5VM002o5wPAZi1utpqL4oBWm9zWKcn942a7WB1QS2b7NRcOwvXaC98lkJDLuuNF2dGrDOaH9hVCkokh5k3MvhciG8wUbC/QZmHcy1OZgfDhikQnE/WpfF4GBeMfCvF6OQ9lm11YlU1tzJfkmRNu0tdhCnCnwlCznuvZlarkMeXJpwjca/heNu6BJwVzz3zw/f84nOqN5cQ0KZW5kc3RyZWFtDQplbmRvYmoNCjUgMCBvYmoNCjw8L1R5cGUvRm9udC9TdWJ0eXBlL1RydWVUeXBlL05hbWUvRjEvQmFzZUZvbnQvQkNERUVFK0RlbmdYaWFuL0VuY29kaW5nL1dpbkFuc2lFbmNvZGluZy9Gb250RGVzY3JpcHRvciA2IDAgUi9GaXJzdENoYXIgMzIvTGFzdENoYXIgMzIvV2lkdGhzIDMwIDAgUj4+DQplbmRvYmoNCjYgMCBvYmoNCjw8L1R5cGUvRm9udERlc2NyaXB0b3IvRm9udE5hbWUvQkNERUVFK0RlbmdYaWFuL0ZsYWdzIDMyL0l0YWxpY0FuZ2xlIDAvQXNjZW50IDgxMC9EZXNjZW50IC0yMzIvQ2FwSGVpZ2h0IDgxMC9BdmdXaWR0aCA0NDcvTWF4V2lkdGggMTI5Mi9Gb250V2VpZ2h0IDQwMC9YSGVpZ2h0IDI1MC9TdGVtViA0NC9Gb250QkJveFsgLTE0MSAtMjMyIDExNTEgODEwXSAvRm9udEZpbGUyIDMxIDAgUj4+DQplbmRvYmoNCjcgMCBvYmoNCjw8L1R5cGUvRXh0R1N0YXRlL0JNL05vcm1hbC9jYSAxPj4NCmVuZG9iag0KOCAwIG9iag0KPDwvVHlwZS9FeHRHU3RhdGUvQk0vTm9ybWFsL0NBIDE+Pg0KZW5kb2JqDQo5IDAgb2JqDQo8PC9UeXBlL0ZvbnQvU3VidHlwZS9UeXBlMC9CYXNlRm9udC9CQ0RGRUUrRGVuZ1hpYW4tQm9sZC9FbmNvZGluZy9JZGVudGl0eS1IL0Rlc2NlbmRhbnRGb250cyAxMCAwIFIvVG9Vbmljb2RlIDMyIDAgUj4+DQplbmRvYmoNCjEwIDAgb2JqDQpbIDExIDAgUl0gDQplbmRvYmoNCjExIDAgb2JqDQo8PC9CYXNlRm9udC9CQ0RGRUUrRGVuZ1hpYW4tQm9sZC9TdWJ0eXBlL0NJREZvbnRUeXBlMi9UeXBlL0ZvbnQvQ0lEVG9HSURNYXAvSWRlbnRpdHkvRFcgMTAwMC9DSURTeXN0ZW1JbmZvIDEyIDAgUi9Gb250RGVzY3JpcHRvciAxMyAwIFIvVyAzNCAwIFI+Pg0KZW5kb2JqDQoxMiAwIG9iag0KPDwvT3JkZXJpbmcoSWRlbnRpdHkpIC9SZWdpc3RyeShBZG9iZSkgL1N1cHBsZW1lbnQgMD4+DQplbmRvYmoNCjEzIDAgb2JqDQo8PC9UeXBlL0ZvbnREZXNjcmlwdG9yL0ZvbnROYW1lL0JDREZFRStEZW5nWGlhbi1Cb2xkL0ZsYWdzIDMyL0l0YWxpY0FuZ2xlIDAvQXNjZW50IDgxMC9EZXNjZW50IC0yMzIvQ2FwSGVpZ2h0IDgxMC9BdmdXaWR0aCA0NTYvTWF4V2lkdGggMTM3MC9Gb250V2VpZ2h0IDcwMC9YSGVpZ2h0IDI1MC9TdGVtViA0NS9Gb250QkJveFsgLTE3MyAtMjMyIDExOTcgODEwXSAvRm9udEZpbGUyIDMzIDAgUj4+DQplbmRvYmoNCjE0IDAgb2JqDQo8PC9UeXBlL0ZvbnQvU3VidHlwZS9UcnVlVHlwZS9OYW1lL0YzL0Jhc2VGb250L0JDREdFRStEZW5nWGlhbi1Cb2xkL0VuY29kaW5nL1dpbkFuc2lFbmNvZGluZy9Gb250RGVzY3JpcHRvciAxNSAwIFIvRmlyc3RDaGFyIDMyL0xhc3RDaGFyIDMyL1dpZHRocyAzNSAwIFI+Pg0KZW5kb2JqDQoxNSAwIG9iag0KPDwvVHlwZS9Gb250RGVzY3JpcHRvci9Gb250TmFtZS9CQ0RHRUUrRGVuZ1hpYW4tQm9sZC9GbGFncyAzMi9JdGFsaWNBbmdsZSAwL0FzY2VudCA4MTAvRGVzY2VudCAtMjMyL0NhcEhlaWdodCA4MTAvQXZnV2lkdGggNDU2L01heFdpZHRoIDEzNzAvRm9udFdlaWdodCA3MDAvWEhlaWdodCAyNTAvU3RlbVYgNDUvRm9udEJCb3hbIC0xNzMgLTIzMiAxMTk3IDgxMF0gL0ZvbnRGaWxlMiAzMyAwIFI+Pg0KZW5kb2JqDQoxNiAwIG9iag0KPDwvQXV0aG9yKP7/Zx2WMwAgVBUpIC9DcmVhdG9yKP7/AE0AaQBjAHIAbwBzAG8AZgB0AK4AIABXAG8AcgBkACAAMgAwADEAOSkgL0NyZWF0aW9uRGF0ZShEOjIwMjQwODA1MTcxNDIwKzA4JzAwJykgL01vZERhdGUoRDoyMDI0MDgwNTE3MTQyMCswOCcwMCcpIC9Qcm9kdWNlcij+/wBNAGkAYwByAG8AcwBvAGYAdACuACAAVwBvAHIAZAAgADIAMAAxADkpID4+DQplbmRvYmoNCjI1IDAgb2JqDQo8PC9U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Q2VoaUh6cmVTek5UY3prYzlkIj8+PHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iMy4xLTcwMSI+CjxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CjxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiICB4bWxuczpwZGY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGRmLzEuMy8iPgo8cGRmOlByb2R1Y2VyPk1pY3Jvc29mdMKuIFdvcmQgMjAxOTwvcGRmOlByb2R1Y2VyPjwvcmRmOkRlc2NyaXB0aW9uPgo8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj4KPGRjOmNyZWF0b3I+PHJkZjpTZXE+PHJkZjpsaT7mnJ3pmLMg5ZCVPC9yZGY6bGk+PC9yZGY6U2VxPjwvZGM6Y3JlYXRvcj48L3JkZjpEZXNjcmlwdGlvbj4KPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+Cjx4bXA6Q3JlYXRvclRvb2w+TWljcm9zb2Z0wq4gV29yZCAyMDE5PC94bXA6Q3JlYXRvclRvb2w+PHhtcDpDcmVhdGVEYXRlPjIwMjQtMDgtMDVUMTc6MTQ6MjArMDg6MDA8L3htcDpDcmVhdGVEYXRlPjx4bXA6TW9kaWZ5RGF0ZT4yMDI0LTA4LTA1VDE3OjE0OjIwKzA4OjAwPC94bXA6TW9kaWZ5RGF0ZT48L3JkZjpEZXNjcmlwdGlvbj4KPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIj4KPHhtcE1NOkRvY3VtZW50SUQ+dXVpZDo4MzY4MEUxMi1FNTNBLTRGQzItOENENi05Qzg3NTc3RjdEOEQ8L3htcE1NOkRvY3VtZW50SUQ+PHhtcE1NOkluc3RhbmNlSUQ+dXVpZDo4MzY4MEUxMi1FNTNBLTRGQzItOENENi05Qzg3NTc3RjdEOEQ8L3htcE1NOkluc3RhbmNlSUQ+PC9yZGY6RGVzY3JpcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8L3JkZjpSREY+PC94OnhtcG1ldGE+PD94cGFja2V0IGVuZD0idyI/Pg0KZW5kc3RyZWFtDQplbmRvYmoNCjM3IDAgb2JqDQo8PC9EaXNwbGF5RG9jVGl0bGUgdHJ1ZT4+DQplbmRvYmoNCjM4IDAgb2JqDQo8PC9UeXBlL1hSZWYvU2l6ZSAzOC9XWyAxIDQgMl0gL1Jvb3QgMSAwIFIvSW5mbyAxNiAwIFIvSURbPDEyMEU2ODgzM0FFNUMyNEY4Q0Q2OUM4NzU3N0Y3RDhEPjwxMjBFNjg4MzNBRTVDMjRGOENENjlDODc1NzdGN0Q4RD5dIC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDEzMz4+DQpzdHJlYW0NCnicNc4rDsJQEIXhub19UwModoFr0rAdDEGgEUgMEo/BkJDgWQvrQDRpUobzw4j5Msm8zDzGMXiemn25wkuEQcSNSGciS6CFLbxFPoenKCL0oryJ6mLmG2xhBZRQQQ05BPgNTHy8PvyrDFJIIHpLs9Oh5iS6u1gtxX4NZ3iIoz//Aa+yEw8NCmVuZHN0cmVhbQ0KZW5kb2JqDQp4cmVmDQowIDM5DQowMDAwMDAwMDE3IDY1NTM1IGYNCjAwMDAwMDAwMTcgMDAwMDAgbg0KMDAwMDAwMDE2MyAwMDAwMCBuDQowMDAwMDAwMjE5IDAwMDAwIG4NCjAwMDAwMDA1MDggMDAwMDAgbg0KMDAwMDAwMDg3NCAwMDAwMCBuDQowMDAwMDAxMDQyIDAwMDAwIG4NCjAwMDAwMDEyODIgMDAwMDAgbg0KMDAwMDAwMTMzNSAwMDAwMCBuDQowMDAwMDAxMzg4IDAwMDAwIG4NCjAwMDAwMDE1MjUgMDAwMDAgbg0KMDAwMDAwMTU1NSAwMDAwMCBuDQowMDAwMDAxNzIxIDAwMDAwIG4NCjAwMDAwMDE3OTUgMDAwMDAgbg0KMDAwMDAwMjA0MSAwMDAwMCBuDQowMDAwMDAyMjE2IDAwMDAwIG4NCjAwMDAwMDI0NjIgMDAwMDAgbg0KMDAwMDAwMDAxOCA2NTUzNSBmDQowMDAwMDAwMDE5IDY1NTM1IGYNCjAwMDAwMDAwMjAgNjU1MzUgZg0KMDAwMDAwMDAyMSA2NTUzNSBmDQowMDAwMDAwMDIyIDY1NTM1IGYNCjAwMDAwMDAwMjMgNjU1MzUgZg0KMDAwMDAwMDAyNCA2NTUzNSBmDQowMDAwMDAwMDI1IDY1NTM1IGYNCjAwMDAwMDAwMjYgNjU1MzUgZg0KMDAwMDAwMDAyNyA2NTUzNSBmDQowMDAwMDAwMDI4IDY1NTM1IGYNCjAwMDAwMDAwMjkgNjU1MzUgZg0KMDAwMDAwMDAwMCA2NTUzNSBmDQowMDAwMDAzMTg0IDAwMDAwIG4NCjAwMDAwMDMyMTEgMDAwMDAgbg0KMDAwMDAxNTAxOSAwMDAwMCBuDQowMDAwMDE1NDA4IDAwMDAwIG4NCjAwMDAwMzEzMzMgMDAwMDAgbg0KMDAwMDAzMTM3OSAwMDAwMCBuDQowMDAwMDMxNDA2IDAwMDAwIG4NCjAwMDAwMzQ1NDkgMDAwMDAgbg0KMDAwMDAzNDU5NCAwMDAwMCBuDQp0cmFpbGVyDQo8PC9TaXplIDM5L1Jvb3QgMSAwIFIvSW5mbyAxNiAwIFIvSURbPDEyMEU2ODgzM0FFNUMyNEY4Q0Q2OUM4NzU3N0Y3RDhEPjwxMjBFNjg4MzNBRTVDMjRGOENENjlDODc1NzdGN0Q4RD5dID4+DQpzdGFydHhyZWYNCjM0OTI4DQolJUVPRg0KeHJlZg0KMCAwDQp0cmFpbGVyDQo8PC9TaXplIDM5L1Jvb3QgMSAwIFIvSW5mbyAxNiAwIFIvSURbPDEyMEU2ODgzM0FFNUMyNEY4Q0Q2OUM4NzU3N0Y3RDhEPjwxMjBFNjg4MzNBRTVDMjRGOENENjlDODc1NzdGN0Q4RD5dIC9QcmV2IDM0OTI4L1hSZWZTdG0gMzQ1OTQ+Pg0Kc3RhcnR4cmVmDQozNTg2NQ0KJSVFT0Y=",type:String}},data:()=>({showIDCardChrome:!1,plugType:"读卡器"}),computed:{_className(){const e=["z-button"];return"text"===this.type&&e.push("i-font-size"),this.className?("string"===typeof this.className?e.push(this.className):e.push(...this.className),e):e},isJIEYUPlugin(){return"sign"===this.readerMode&&3===this.readMachineType||"idCard"===this.readerMode&&6===this.readMachineType||"idCard"===this.readerMode&&6===this.readMachineType},isExitAndEntryPlugin(){return"idCard"===this.readerMode&&11===this.readMachineType}},watch:{isJIEYUPlugin:{handler:async e=>{e&&await ge.initParams()}},isExitAndEntryPlugin:{handler:async e=>{e&&await Dt.getStatus()}}},async created(){this.isJIEYUPlugin&&await ge.initParams(),this.isExitAndEntryPlugin&&await Dt.getStatus()},mounted(){let e=this;window.onerror=function(t){if(t.indexOf("统一插件平台")>-1){let n=t.split(": ")[1]||"提示";n=n.replace("统一插件平台",""),e.$emit("hardwareError",e.plugType,n)}}},methods:{handleClick(){switch(this.readerMode){case"idCard":this.plugType="读卡器",this.idCardRReaderEvent();break;case"veriface":this.plugType="拍照设备",this.faceReaderEvent();break;case"sign":this.plugType="签字板",this.signEvent();break;case"socialSecurityCard":this.plugType="社保卡",this.socialSecurityCardReaderEvent();break}this.$emit("sendPluginType",this.plugType)},async idCardRReaderEvent(){let e;switch(this.readMachineType){case 0:e=await Ve.idCardCommonRead(),this.$emit("click",e);break;case 1:return this.readLSIDCard();case 2:e=await qe.idCardRead(),this.$emit("click",e);break;case 3:const t=await Xe.idCardRead();t&&(e=t.idCard),this.$emit("click",e);break;case 4:e=await Ge.idCardRead(),this.$emit("click",e);break;case 5:e=await W.idCardRead(),this.$emit("click",e);break;case 6:e=await ge.idCardRead(),this.$emit("click",e);break;case 8:e=await gt.idCardRead(),this.$emit("click",e);break;case 9:e=await ge.idCardReadByScanner(),this.$emit("click",e);break;case 10:e=await ye.idCardRead(),this.$emit("click",e);break;case 11:e=await Dt.getReadResult(),this.$emit("click",e);break;case 12:e=await Vt.idCardRead(),this.$emit("click",e);break;case 13:e=await zt.idCardRead(),this.$emit("click",e);break;default:this.$message.warning("请在首页右上角我的设备中设置读卡器选项!");break}},async faceReaderEvent(){switch(this.readMachineType){case 0:this.readFacePhotoByDefault();break;case 1:this.readLSIDCardAndMatchFace();break;case 2:{const e=await qe.faceValidateWithIdCardRead();this.$emit("click",e);break}case 3:{const e=await Xe.idCardRead();this.$emit("click",e);break}case 5:this.readFacePhotoByELoam();break;case 6:{const e=await ge.faceValidateWithIdCardRead();this.$emit("click",e);break}case 10:this.openWEIRONGFaceValidateDialog();break;case 11:this.readFacePhotoByDefault(this.readMachineType);break;default:this.$message.warning("请在首页右上角我的设备中设置读拍照/人脸识别选项!");break}},async socialSecurityCardReaderEvent(){try{let e;switch(this.readMachineType){case 2:e=await qe.socialSecurityCardRead();break;case 4:e=await Ge.socialSecurityCardRead();break;case 5:e=await ye.socialSecurityCardRead();break;default:this.$message.warning("请在首页右上角我的设备中设置社保卡选项!");break}this.$emit("click",e)}catch(e){throw Error("读取社保卡失败")}},async signEvent(){let e="";switch(this.readMachineType){case 0:e=await We.read();break;case 1:e=await We.read(Re.hwSign);break;case 2:e=await qe.signNameRead();break;case 3:const t=await ge.signNameRead(this.filePath),n=t.SignNameBase64?JSON.parse(t.SignNameBase64):{SignName0:""},i=t.FingerPrintBase64?JSON.parse(t.FingerPrintBase64):{FingerPrint0:""},r=n.SignName0.split(";")[0],a=i.FingerPrint0.split(";")[0];console.log("签字&指纹",r,a),a?(e=await ge.mergeImage(r,a),console.log(e)):e=r;break;case 5:e=await ye.signNameRead();break;case 7:Wt._isLinux?(window.addEventListener(le,(t=>{t.type===le&&(e=t.signResultUrl)})),await Wt.signNameRead()):e=await Wt.signNameRead();break;default:this.$message.warning("请在首页右上角我的设备中设置签字板选项!");break}this.$emit("click",e)},async readLSIDCardAndMatchFace(){this.showIDCardChrome=!0;const e=document.createElement("div");document.body.appendChild(e);const t=new(ft())({render:e=>e(at,{props:{},on:{close:e=>{if(console.log("destroy data=>",e),"比对成功"!==e.zt)throw Error("认证失败");this.$message.success("认证成功"),this.$emit("click",e),this.showIDCardChrome=!1,t.$destroy(),t.$el.remove()}}}),parent:this}).$mount(e)},openWEIRONGFaceValidateDialog(){console.log("打开人脸识别弹框");const e=document.createElement("div");document.body.appendChild(e);const t=new(ft())({render:e=>e(Bt,{props:{},on:{close:e=>{this.$emit("click",e),t.$destroy(),t.$el.remove()}}}),parent:this}).$mount(e)},readFacePhotoByELoam(){const e=document.createElement("div");document.body.appendChild(e);const t=new(ft())({render:e=>e(dt,{props:{},on:{close:e=>{console.log("良田拍照信息=>",e),this.$emit("click",e),t.$destroy(),t.$el.remove()}}}),parent:this}).$mount(e)},readFacePhotoByDefault(e=0){const t=document.createElement("div");document.body.appendChild(t);const n=new(ft())({render:t=>t(Mt,{props:{readMachineType:e},on:{faceReader:e=>{this.$emit("click",e),n.$destroy(),n.$el.remove()},close:e=>{e&&(console.log("浏览器自带拍照=>",e),this.$emit("click",e)),n.$destroy(),n.$el.remove()}}}),parent:this}).$mount(t)},readLSIDCard(){this.showIDCardChrome=!0,this.$nextTick((async()=>{try{const e=await(0,Je.oK)();console.log("丽水一体机读取身份证信息=>",e),this.$emit("click",e)}catch(e){throw Error("读取身份证信息失败")}finally{this.showIDCardChrome=!1}}))}}},qt=Ht,Ut=l(qt,$e,Be,!1,null,"617b7fd0",null),Gt=Ut.exports;Gt.install=e=>{e.component(Gt.name,Gt)};var Kt,Qt,Yt=Gt,Zt=function(){var e=this,t=e._self._c;return t("el-container",{directives:[{name:"loading",rawName:"v-loading",value:e.pageLoading,expression:"pageLoading"}],staticClass:"scanner-nko",attrs:{"element-loading-text":e.pageLoadingText}},[t("el-aside",{staticClass:"container-aside"},[t("div",{staticClass:"container-title"},[e._v("扫描配置")]),t("div",{staticClass:"scan-config-form"},[t("el-form",{attrs:{model:e.scanConfig,"label-position":"right","label-width":"72px",disabled:!e.deviceOpend}},[t("el-form-item",{attrs:{label:"扫描源"}},[t("el-select",{attrs:{disabled:e.deviceWorking,placeholder:"请选择扫描源"},on:{change:e.openDeivce},model:{value:e.scanConfig.deviceId,callback:function(t){e.$set(e.scanConfig,"deviceId",t)},expression:"scanConfig.deviceId"}},e._l(e.deviceList,(function(e){return t("el-option",{key:e.deviceId,attrs:{label:e.deviceId,value:e.deviceId}})})),1)],1)],1),t("el-form",{attrs:{model:e.scanConfig,"label-position":"right","label-width":"72px",disabled:!e.isDeviceReady}},[t("el-form-item",{attrs:{label:"进纸模式"}},[t("el-select",{attrs:{placeholder:"请选择进纸模式"},model:{value:e.scanConfig.source,callback:function(t){e.$set(e.scanConfig,"source",t)},expression:"scanConfig.source"}},e._l(e.sourceOptions,(function(e){return t("el-option",{key:e,attrs:{label:e,value:e}})})),1)],1),t("el-form-item",{attrs:{label:"扫描颜色"}},[t("el-select",{attrs:{placeholder:"请选择"},model:{value:e.scanConfig.mode,callback:function(t){e.$set(e.scanConfig,"mode",t)},expression:"scanConfig.mode"}},e._l(e.modeOptions,(function(e){return t("el-option",{key:e,attrs:{label:e,value:e}})})),1)],1),t("el-form-item",{attrs:{label:"分辨率"}},[t("el-select",{attrs:{placeholder:"请选择分辨率"},model:{value:e.scanConfig.resolution,callback:function(t){e.$set(e.scanConfig,"resolution",t)},expression:"scanConfig.resolution"}},e._l(e.resolutionOptions,(function(e){return t("el-option",{key:e,attrs:{label:e,value:e}})})),1)],1),t("el-form-item",{attrs:{label:"纸张类型"}},[t("el-select",{attrs:{placeholder:"请选择纸张类型"},model:{value:e.scanConfig.paperSize,callback:function(t){e.$set(e.scanConfig,"paperSize",t)},expression:"scanConfig.paperSize"}},e._l(e.paperSizeOptions,(function(e){return t("el-option",{key:e,attrs:{label:e,value:e}})})),1)],1),t("el-form-item",{attrs:{label:"文件格式"}},[t("el-select",{attrs:{placeholder:"请选择"},model:{value:e.scanConfig.fileFormat,callback:function(t){e.$set(e.scanConfig,"fileFormat",t)},expression:"scanConfig.fileFormat"}},e._l(e.fileFormatOptions,(function(e){return t("el-option",{key:e,attrs:{label:e,value:e}})})),1)],1)],1),t("div",{staticClass:"text-right"},[t("el-button",{attrs:{type:"primary"},on:{click:e.initScanServiceAPI}},[e._v("连接")]),t("el-button",{attrs:{type:"primary",disabled:!e.isDeviceReady||e.deviceWorking},on:{click:e.doScan}},[e._v("扫描")])],1)],1)]),t("el-container",[t("el-main",{staticClass:"container-main"},[t("div",{staticClass:"container-title"},[e._v("扫描结果")]),t("el-checkbox",{attrs:{indeterminate:e.isIndeterminate},on:{change:e.handleCheckAllChange},model:{value:e.checkAll,callback:function(t){e.checkAll=t},expression:"checkAll"}},[e._v("全选")]),t("div",{staticClass:"image-list"},e._l(e.scanFileList,(function(n,i){return t("div",{key:n.name,class:{"image-list-item":!0,"image-checked":n.checked}},[t("el-image",{attrs:{src:n.url,"preview-src-list":e.imgUrls,"initial-index":e.initialIndex},on:{click:function(t){return e.previewImg(i)}}}),t("div",{staticClass:"image-actions"},[t("el-checkbox",{on:{change:e.handleCheckedChange},model:{value:n.checked,callback:function(t){e.$set(n,"checked",t)},expression:"item.checked"}},[e._v(e._s(n.name))]),t("el-button",{staticStyle:{color:"red"},attrs:{type:"text",icon:"el-icon-delete"},on:{click:function(t){return e.deleteFileEvent(i)}}}),t("el-button",{attrs:{type:"text",icon:"el-icon-upload2"},on:{click:function(t){return e.sendScannerResult(n)}}})],1)],1)})),0)],1),t("el-footer",[t("div",{staticClass:"text-right"},[t("el-button",{attrs:{size:"small",type:"primary",disabled:0===e.scanFileList.length},on:{click:e.clearImgList}},[e._v("清空")]),t("el-button",{attrs:{size:"small",type:"primary",disabled:0===e.scanFileList.length},on:{click:e.batchDelFilesEvent}},[e._v("批量删除")]),t("el-button",{attrs:{size:"small",type:"primary",disabled:0===e.scanFileList.length},on:{click:function(t){return e.sendScannerResult()}}},[e._v("上传")])],1)])],1)],1)},Xt=[];__webpack_require__(2801);(function(e){e["scan"]="scan"})(Kt||(Kt={})),function(e){e["getScanDeivceList"]="001001",e["openScanDeivce"]="001002",e["getScanOptions"]="001003",e["setScanBasicOptions"]="001007",e["scan"]="001008"}(Qt||(Qt={}));const Jt={[Kt.scan]:"扫描"};class en{static startConnect(e){if(this.ws&&this.ws.readyState===WebSocket.OPEN)return this;let t="";switch(e){case Kt.scan:t=this.scanWebSocketUrl;break;default:t=this.iReadCardWebSocketUrl;break}const n=new WebSocket(t);let i;const r=new Promise((e=>{i=e}));return n.onopen=()=>{i(!0)},n.onmessage=e=>{this.handleMessage(e)},n.onclose=()=>this.handleClose(),n.onerror=()=>this.handleError(),this.ws=n,r}static handleError(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("handleError")}));throw Error("统一插件平台赞彩五合一设备功能加载失败")}static handleClose(){for(const e in this.requestStore)this.requestStore.forEach((({reject:e})=>{e("close")}))}static handleMessage(e){let t="";try{t=JSON.parse(e.data)}catch(n){t=""}if("001008"!==t["function"]||0!==t["code"])return"001010"===t["function"]?this.scanCallback(t):(this.requestStore.forEach((({resolve:e})=>{e(t)})),void(this.requestStore=[]))}static async read(e,t,n={}){await this.startConnect(e);const i=Jt[e];if(1===this.ws.readyState){let r;switch(console.log(i+"连接成功"),e){case Kt.scan:r=JSON.stringify({function:t,traceId:"",params:n});break;default:r="";break}return this.ws.send(r),new Promise(((e,t)=>{this.requestStore||(this.requestStore=[]),this.requestStore.push({resolve:e,reject:t})}))}throw Error("统一插件平台"+i+"未准备完成")}static async getDeivceList(){const e=await en.read(Kt.scan,Qt.getScanDeivceList);if(!e)throw Error("未匹配可用的扫描仪设备");if(0!==e.code)throw Error(`执行失败,返回码:${e.code},错误信息:${e.msg}`);return console.log("获取扫描仪==>",e),e.data}static async openScanDeivce(e){const t=await en.read(Kt.scan,Qt.openScanDeivce,{scannerId:e});if(!t)throw Error("未匹配可用的扫描仪设备");if(0!==t.code)throw Error(`执行失败,返回码:${t.code},错误信息:${t.msg}`);return console.log("选中指定扫描仪并打开==>",t),t}static async getScanOptions(){const e=await en.read(Kt.scan,Qt.getScanOptions);if(!e)throw Error("未匹配可用的扫描仪设备");if(0!==e.code)throw Error(`执行失败,返回码:${e.code},错误信息:${e.msg}`);return console.log("获取选中扫描仪可配置项==>",e),e.data}static async setScanBasicOptions(e){const t=await en.read(Kt.scan,Qt.setScanBasicOptions,e);if(!t)throw Error("未匹配可用的扫描仪设备");if(0!==t.code)throw Error(`执行失败,返回码:${t.code},错误信息:${t.msg}`);return console.log("设置配置项==>",t),t}static async scan(e,t="C:\\ScanResult",n="",i=""){this.fileList=[];const r=await en.read(Kt.scan,Qt.scan,{fileFormat:`.${e}`,fileSavePath:t,fileType:"Base64",fileNamePrefix:n,fileNameFormat:i,fileMd5Enabled:!1});if(!r)throw Error("未匹配可用的扫描仪设备");if(0!==r.code)throw Error(`执行失败,返回码:${r.code},错误信息:${r.msg}`);return console.log("扫描==>",r),"001011"===r.function?this.fileList:r}static scanCallback(e){if(0!==e.code)throw Error(e.msg);{const t=e.data.fileName,n=t.substr(t.lastIndexOf(".")+1);let i;return"tiff"===n||"tif"===n||(i=`data:image/${n};base64,${e.data.fileResult}`),this.fileList.push({name:t,url:i})}}static completeCallback(e){if(0!==e.code)throw Error(`执行失败,返回码:${e.code},错误信息:${e.msg}`);console.log(e.data?e.data:e.msg)}static base64ToUint8Array(e){const t="=".repeat((4-e.length%4)%4),n=(e+t).replace(/\-/g,"+").replace(/_/g,"/"),i=window.atob(n),r=new Uint8Array(i.length);for(let a=0;a<i.length;++a)r[a]=i.charCodeAt(a);return r}}V(en,"iReadCardWebSocketUrl",""),V(en,"scanWebSocketUrl","ws://127.0.0.1:51818"),V(en,"ws",void 0),V(en,"requestStore",[]),V(en,"fileList",[]);var tn={name:"scanner-nko",components:{},props:{fileSavePath:{default:"",type:String},fileNamePrefix:{default:"",type:String},fileNameFormat:{default:"",type:String}},data:()=>({pageLoading:!1,pageLoadingText:"正在配置相关设置",deviceList:[],deviceOpend:!1,deviceWorking:!1,scanConfig:{deviceId:null,source:null,resolution:null,mode:null,paperSize:null,fileFormat:null},sourceOptions:[],modeOptions:[],resolutionOptions:[],paperSizeOptions:[],fileFormatOptions:[],scanFileList:[],initialIndex:0,scannerResult:"",isIndeterminate:!1,checkAll:!1}),computed:{isDeviceReady(){return this.scanConfig.deviceId&&this.deviceOpend},imgUrls(){return this.scanFileList.map((e=>e.url))}},created(){},methods:{handleCheckAllChange(e){this.scanFileList.forEach((t=>{t.checked=e})),this.isIndeterminate=!1},handleCheckedChange(){const e=this.scanFileList.filter((e=>e.checked)).length;this.isIndeterminate=e>0&&e<this.scanFileList.length,this.checkAll=this.scanFileList.length>0&&e===this.scanFileList.length},async initScanServiceAPI(){this.pageLoadingText="正在连接扫描服务,请稍候...",this.pageLoading=!0,this.deviceList=await en.getDeivceList(),this.deviceOpend=!0,this.pageLoading=!1},wsCloseCallback(){this.$message.warning("扫描服务连接已断开"),this.pageLoading=!1,this.resetData(),this.deviceList=[],this.scanConfig.deviceId=null},resetData(){this.scanConfig.source=null,this.scanConfig.resolution=null,this.scanConfig.mode=null,this.scanConfig.paperSideviceOpendze=null,this.scanConfig.fileFormat=null,this.sourceOptions=[],this.modeOptions=[],this.resolutionOptions=[],this.paperSizeOptions=[],this.fileFormatOptions=[],this.deviceOpend=!1,this.deviceWorking=!1},openDeivce(){this.pageLoadingText="正在设置扫描源,请稍后...",this.pageLoading=!0,this.resetData(),this.getScanOptions()},async getScanOptions(){this.pageLoadingText="正在获取扫描仪能力,请稍后...",this.pageLoading=!0,await en.openScanDeivce(this.scanConfig.deviceId);var e=await en.getScanOptions();this.sourceOptions=e.source,this.modeOptions=e.mode,this.resolutionOptions=e.resolution,this.paperSizeOptions=e["paper-size"],this.fileFormatOptions=e["image-format"],this.scanConfig.source=this.sourceOptions[0]||null,this.scanConfig.mode=this.modeOptions[0]||null,this.scanConfig.resolution=this.resolutionOptions[0]||null,this.scanConfig.paperSize=this.paperSizeOptions[0]||null,this.scanConfig.fileFormat=this.fileFormatOptions[0]||null,this.deviceOpend=!0,this.pageLoading=!1},async doScan(){if(!this.isDeviceReady||this.deviceWorking)return;this.pageLoadingText="正在提交扫描请求,请稍后...",this.pageLoading=!0,await en.setScanBasicOptions({source:this.scanConfig.source,mode:this.scanConfig.mode,"paper-size":this.scanConfig.paperSize,resolution:this.scanConfig.resolution});const e=await en.scan(this.scanConfig.fileFormat,this.fileSavePath,this.fileNamePrefix,this.fileNameFormat);this.scanFileList=[...this.scanFileList,...e],this.pageLoading=!1},previewImg(e){this.initialIndex=e},clearImgList(){this.scanFileList=[]},deleteFileEvent(e){this.scanFileList.splice(e,1)},batchDelFilesEvent(){let e=[];this.scanFileList.forEach((t=>{t.checked||e.push(t)})),this.scanFileList=e},sendScannerResult(e=null){const t=e?[e]:this.scanFileList.filter((e=>e.checked));t&&0!==t.length&&this.$emit("send-scanner-result",t.map((e=>({name:e.name,url:e.url}))))}}},nn=tn,rn=l(nn,Zt,Xt,!1,null,null,null),an=rn.exports;an.install=e=>{e.component(an.name,an)};var sn=an;const on=[d,b,Fe,Yt,N,ee,Ae,sn],ln=e=>{e.use(i()),ln.installed||on.forEach((t=>{e.component(t.name,t)}))};"undefined"!==typeof window&&window.Vue&&ln(window.Vue);var cn={install:ln,...on},un=cn}(),__webpack_exports__}()}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "unify-external-plugin-platform",
3
- "version": "0.0.3-31",
3
+ "version": "0.0.3-33",
4
4
  "description": "统一对外插件平台",
5
5
  "main": "./dist/external-plugin.umd.min.js",
6
6
  "author": "Young",