IonicFace.vue 7.8 KB
<template lang="">
<div class="bg-img">

    <div class="recog-body" v-show ="!boxFlag">
        <div class="recog-box" :class="{ampCss:ampFlag}" >
            <div class="recog-content" >
                <img src="../assets/img/logo.png" class="logo-wh" @click="toRecorder">
                <img class="recog-right"  src="http://192.168.1.34:81/face_stream" @click="amplifier">
                <!-- <div class="recog-right"> 
                </div> -->
            </div>
            <div class="recog-optin">
                <div class="option-text">{{$t('Login.signIn')}}</div>
                <router-link to="/Login">
                    <img class="option-img" style="" src="../assets/img/login_033.png">
                </router-link>
            </div>
        </div>
    </div>

    <div class="facial-body" v-show ="boxFlag">
        <div class="facial-box">
            <div class="facial-content">
                <img src="../assets/img/logo.png" class="logo-wh">
                <img :src="userInfo.imgUrl" class="facial-center">
                <div class="facial-right"> 
                     <h1 id="nameId" class="staffname">{{userInfo.staffName}}</h1>
                    <span class="option-css">{{$t('Face.option')}}<span class="option-css" id="staffId">{{userInfo.staffId}}</span></span>
                    <div class="email-css" >{{userInfo.emil}} </div>
                    <div class="company-css">{{userInfo.company}} </div>
                </div>
            </div>
            <div class="facial-optin">
                <div class="facial-text">Powered by NEO EYE</div>
            </div>
        </div>
    </div>


    <!-- <div class="layout" style="height:100%" v-show ="!boxFlag">
        <div id="secendId" class="page-lock" >
            <div class="page-body" >
                <img class="page-lock-logo" src="../assets/img/logo.png" alt="">
                <img id="imgId" class="page-lock-img" :src="userInfo.imgUrl" alt="">
                <div class="page-lock-info">
                    <h1 id="nameId" class="name-css">{{$t('Face.userInfo.staffName')}}</h1>
                    <span class="email">{{$t('Face.option')}}<span id="staffId">{{$t('Face.userInfo.staffId')}}</span></span>
                    <div class="email" >{{$t('Face.userInfo.emil')}} </div>
                    <div class="locked">{{$t('Face.userInfo.company')}} </div>
                </div>
                <div class="clear"></div>
            </div>
            <div class="page-footer-custom">
                Powered by NEO EYE
           </div>
        </div>
    </div> -->
     <Toast ref="showToast"></Toast>
      </div>
</template>
<script>
import Toast from '@/components/Toast'
// import { setToken } from '@/axios/token'
export default {
    name:'Face',
    data() {
        return {
            num:0,//点击次数
            timer0:'',//第一次点击的时间
            timer3:'',//第四次点击的时间
            ampFlag:false,

            userInfo:{
                imgUrl:require('../assets/img/face1.png') ,
                staffName:'沈懿俊',
                staffId:'销售总监',
                emil:'billy.shen@neotel.tech',
                company:'上海挚锦科技有限公司'
            },
            boxFlag:false,
            backgroundDiv: {
                backgroundImage:'url(' + require('../assets/img/1.jpg') + ')',
                backgroundRepeat:'no-repeat',
                backgroundSize:'100% 100%',
            },
            facial:'人脸识别',
            signIn:'登录选项',
            option:'职位 :',
            selected_esp:'192.168.1.34',
            selected_device:'esp1',
            myVar:'',
            baseUrl:'http://192.168.1.35:5001'
        }
    },
    components:{
        Toast
    },
    methods: {
        amplifier(){
            this.ampFlag=!this.ampFlag;
        },
        toRecorder(){
            this.num++
            if(this.num==1){
            this.timer0=new Date().getTime()/1000
            }
            if(this.num==3){
                this.timer4= new Date().getTime()/1000
                if(this.timer4-this.timer0<=2){
                    this.num=0
                    this.$router.push('/Recorder')
                }else {
                    this.num=0
                }
            }
            
        },
        clearName(){
            this.$axios.get(this.$api.clearName).then(res =>{
               console.log('success1');
               this.getEsp();
            })
        },
        getEsp(){
            let req={
                selected_device:this.selected_device
            };
            this.$axios.post(this.$api.selectDevice,req).then(res =>{
               console.log('success2');
                this.recognition()
            })
        },
        recognition(){
            console.log('recognition')
            let req={
                get_face_id_url:'http://'+this.selected_esp+':80/get_face_id'
            };
            this.$axios.post(this.$api.triggerFace,req).then(res =>{
               console.log('triggerFace'+JSON.stringify(res));
                this.myVar=setInterval(this.loop_get_name,3000);
            })
        },
        loop_get_name(){
            console.log('11111')
            this.$axios.get(this.$api.recogniteName).then(res =>{
                console.log('recg_name--->'+JSON.stringify(res))
                let recg_name=res.data.recg_name;
                let code = res.data.ID;
                if (code == "10000")
                {
                    console.log('res.recg_name=='+recg_name);
                }else{
                     clearInterval(this.myVar);
                     this.boxFlag = true;
                    if(code<=4){
                        this.$set(this.userInfo,'staffName',recg_name);
                        this.$set(this.userInfo,'imgUrl','http://192.168.1.35:5001/get_img/'+code+'.jpg');
                        this.$set(this.userInfo,'emil',res.data.member_info.mail);
                        this.$set(this.userInfo,'company',res.data.member_info.company);
                        this.$set(this.userInfo,'staffId',res.data.member_info.position);
                    }else{
                        this.$set(this.userInfo,'staffName','访客');
                        this.$set(this.userInfo,'imgUrl','http://192.168.1.35:5001/get_img/访客.jpg');
                        this.$set(this.userInfo,'emil','guest@neotel.tech');
                        this.$set(this.userInfo,'company','上海挚锦科技有限公司');
                        this.$set(this.userInfo,'staffId','小鲜肉');
                    }
                   
                    
                    
                    
                    
                    
                    // if(recg_name == '沈懿俊'){
                    //     this.$set(this.userInfo,'staffId','小鲜肉');
                    // }else if(recg_name == '李毅东'){
                    //     this.$set(this.userInfo,'staffId','小哥哥');
                    // }else if(recg_name == '郑彩云'){
                    //     this.$set(this.userInfo,'staffId','小仙女');
                    // }else if(recg_name == '丁雪'){
                    //     this.$set(this.userInfo,'staffId','小姐姐');
                    // }else if(recg_name == '徐主花'){
                    //     this.$set(this.userInfo,'staffId','it');
                    // }
                    this.$refs.showToast.toast();
                }
               
            })
            
        },
        
    },
    mounted() {
         this.clearName();
         this.$once('hook:beforeDestroy', () => {
            clearInterval(this.myVar)
        })
    }
}
</script>
<style scoped lang="less">
// @import url('../styles/face.less');
@import url('../styles/IonicRecorder.less');
span{
    display: inline-block;
}
.marb{
margin-bottom: 10px;
}
.name-css{
    font-size: 24px;
    line-height: 26px;
}
.ampCss{
    transform: scale(2);
}
</style>