1 |
- (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-c89bae56"],{"11c7":function(t,e,a){"use strict";a("d0b2")},"9fe4":function(t,e,a){"use strict";a.r(e);var s=function(){var t=this,e=t._self._c;return e("div",{staticClass:"container",style:{backgroundImage:`url(${t.bg})`}},[e("div",{staticClass:"tracking-wrap"},[e("img",{staticClass:"border",attrs:{src:t.border,alt:""}}),e("div",{staticClass:"tracking",style:{opacity:0===t.tabIndex?"1":"0"}},[e("video",{attrs:{id:"video",width:"620",height:"460",preload:"",autoplay:"",loop:"",muted:""},domProps:{muted:!0}}),e("canvas",{attrs:{id:"canvas",width:"620",height:"460"}})])]),e("div",{staticClass:"tabs"},t._l(t.tabs,(function(a,s){return e("div",{key:s,staticClass:"tab",class:t.tabIndex===s?"active":"",on:{click:function(e){return t.tabHandle(s)}}},[e("Icon",{attrs:{type:a.icon,size:"80",color:"#fff"}}),e("span",{staticClass:"label"},[t._v(t._s("扫码登录"===a.text&&t.isUpdateFace?"人脸录入":a.text))])],1)})),0),t.isUpdateFace?e("div",{staticClass:"update-face"},[t._v(" 人脸录入中... ")]):e("div",{staticClass:"update-face"},[t._v(" 出入库异常,请联系仓管处理! ")]),e("div",{staticClass:"form",style:{opacity:1===t.tabIndex?"1":"0"},on:{keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.enterHandle.apply(null,arguments)}}},[e("div",{staticClass:"title"},[t._v("登录")]),e("div",{staticClass:"content"},[e("Form",{ref:"form",attrs:{model:t.form,rules:t.rules}},[e("FormItem",{attrs:{prop:"user"}},[e("Input",{attrs:{type:"text",placeholder:"请输入用户"},model:{value:t.form.account,callback:function(e){t.$set(t.form,"account",e)},expression:"form.account"}},[e("Icon",{attrs:{slot:"prepend",type:"ios-person-outline"},slot:"prepend"})],1)],1),e("FormItem",{attrs:{prop:"pwd"}},[e("Input",{attrs:{type:"password",placeholder:"请输入密码"},model:{value:t.form.password,callback:function(e){t.$set(t.form,"password",e)},expression:"form.password"}},[e("Icon",{attrs:{slot:"prepend",type:"ios-lock-outline"},slot:"prepend"})],1)],1)],1)],1),e("div",{staticClass:"btn"},[e("Button",{attrs:{type:"primary"},on:{click:t.login}},[t._v("密码登录")])],1)])])},i=[],r=(a("3b08"),a("8d4f"),a("9dae"),a("5723")),o=(a("4fcb"),a("a396")),n=a.n(o),c=a("3625"),d=a.n(c),l={name:"Home",data(){return{loginTimer:null,saveFaceTimer:null,tabIndex:0,tabs:[{icon:"md-qr-scanner",text:"扫码登录"},{icon:"ios-contact-outline",text:"账户登录"}],type:"",form:{account:"",password:""},rules:{account:[{required:!0,message:"请输入用户",trigger:"blur"}],password:[{required:!0,message:"请输入密码",trigger:"blur"}]},border:n.a,bg:d.a,trackerTask:null,tracking:!0,isUpdateFace:!1,video:null}},methods:{enterHandle(){this.login()},login(){this.$refs.form.validate(t=>{t&&Object(r["b"])(this.form).then(t=>{0===t.code&&(this.$store.commit("setToken",t.result.token),Object(r["f"])().then(t=>{0===t.code&&(t.result.isBindFace?this.toNext():(this.$Message.error("当前用户未绑定人脸,请绑定人脸后登入"),this.tabIndex=0,this.tracking=!0,this.trackerTask.run(),this.isUpdateFace=!0))}))})})},tabHandle(t){this.tabIndex=t,0===t?(this.tracking=!0,this.trackerTask.run()):(this.trackerTask.stop(),this.tracking=!1,this.isUpdateFace=!1,clearTimeout(this.loginTimer),clearTimeout(this.saveFaceTimer))},toNext(){this.$store.dispatch("getUserInfo").then(t=>{["storekeeper","supervisor","ckjy"].includes(t.result.roleKey)?(this.$Message.success("登录成功!"),this.trackerTask.stop(),this.$router.push({name:"warning-list",query:{data:this.data}})):this.$Message.error("请联系仓库员或总监处理!")})},stopMediaStreamTrack(){"object"===typeof window.stream&&(this.video.srcObject=null,window.stream.stop())},openCamera(){let t=this,e=this.video=document.getElementById("video"),a=document.getElementById("canvas"),s=a.getContext("2d");s.lineWidth=2,s.strokeStyle="blue";let i=new tracking.ObjectTracker("face");i.setInitialScale(4),i.setStepSize(2),i.setEdgesDensity(.1),this.trackerTask=tracking.track("#video",i,{camera:!0}),i.on("track",(function(i){if(s.clearRect(0,0,a.width,a.height),t.tracking&&1===i.data.length){let a=i.data[0];s.strokeRect(a.x,a.y,a.width,a.height),t.tracking=!1;let o=document.createElement("canvas");o.width=e.width,o.height=e.height,t.isUpdateFace?o.getContext("2d").drawImage(e,a.x-100,a.y-100,a.width+500,a.height+500,0,0,800,800):o.getContext("2d").drawImage(e,a.x-100,a.y-100,a.width+500,a.height+500,0,0,400,400);let n=o.toDataURL("image/png");t.isUpdateFace?Object(r["e"])({base64Img:n,fileName:"_face"}).then(e=>{0===e.code?t.toNext():t.saveFaceTimer=setTimeout(()=>{t.tracking=!0},2e3)}):Object(r["c"])({isHiddenSpin:!0,base64Str:n,token:"_token"}).then(e=>{0===e.code?(t.$store.commit("setToken",e.result.token),t.toNext()):t.loginTimer=setTimeout(()=>{t.tracking=!0},2e3)})}}))}},mounted(){this.openCamera()},beforeDestroy(){this.trackerTask.stop(),this.stopMediaStreamTrack()}},u=l,p=(a("11c7"),a("0b56")),h=Object(p["a"])(u,s,i,!1,null,"99578902",null);e["default"]=h.exports},d0b2:function(t,e,a){}}]);
|