whychdw
2021-03-09 bd359d30fd0371adf44e4b038b3a74cf027a9142
人脸识别
3个文件已修改
90 ■■■■ 已修改文件
src/assets/js/api.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/face/FaceLogin.vue 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/home.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/js/api.js
@@ -27,6 +27,7 @@
}
export const uKeyLogin = (username, password, uKeyId) => {
    console.log(username+password+uKeyId);
    return axios({
        method: "post",
        url: `LoginAction_login4UKey?uinf.UName=${username}&uinf.Upassword=${md5(password)}&uinf.UId=0&uinf.UKey_ID=${uKeyId}`,
src/components/face/FaceLogin.vue
@@ -8,7 +8,7 @@
</template>
<script>
import faceManager from '../../assets/js/apis/faceManager/faceManager.js'
import {uKeyLogin} from "@/assets/js/api";
export default {
    props: {
        faceShow: {
@@ -113,32 +113,38 @@
        },
        // 请求后台验证人脸
        facePost: function () {
            faceManager
            let vm = this;
            faceManager.faceVerify({fileData: vm.imageBase64}).then(res => {
                let result = JSON.parse(res.data.result);
                if (result.code == 1) {
                    vm.faceDetect = "匹配成功";
                    setTimeout(() => {
                        vm.onLogin();
                    }, 1000);
            if(!this.$store.state.ukey.isIn) {
                this.faceDetect = '请先插入ukey';
                this.setTime = setTimeout(() => {
                    this.facePost();
                }, 500);
            }else {
                let vm = this;
                faceManager.faceVerify({fileData: vm.imageBase64}).then(res => {
                    let result = JSON.parse(res.data.result);
                    if (result.code == 1) {
                        vm.faceDetect = "匹配成功";
                        setTimeout(() => {
                            vm.onLogin();
                        }, 1000);
                } else {
                    vm.faceDetect = result.msg;
                    } else {
                        vm.faceDetect = result.msg;
                        if (vm.status == true) {
                            this.setTime = setTimeout(() => {
                                this.facePost();
                            }, 3000);
                        }
                    }
                }).catch(err => {
                    vm.faceDetect = '网络链接失败';
                    if (vm.status == true) {
                        this.setTime = setTimeout(() => {
                            this.facePost();
                        }, 3000);
                    }
                }
            }).catch(err => {
                vm.faceDetect = '网络链接失败';
                if (vm.status == true) {
                    this.setTime = setTimeout(() => {
                        this.facePost();
                    }, 3000);
                }
            })
                })
            }
        },
        // 登陆设置sessionStorage
        onLogin: function () {
@@ -146,15 +152,39 @@
            faceManager.getUserName().then(res => {
                let result = JSON.parse(res.data.result);
                if (result.code == 1) {
                    sessionStorage.setItem('username', result.msgN);
                    // 设置用户的权限
                    this.$store.dispatch('user/getPermits');
                    this.$router.push("/home");
                    this.uKeyLogin(result.data.UName, result.data.USnId);
                }
            }).catch(err => {
                console.log(err);
            })
        }
        },
        uKeyLogin(username, password) {
            // ukey登录
            uKeyLogin(username, password, this.$store.state.ukey.id).then(res=>{
                // 对结果进行处理
                this.handleLogin(res, username);
            }).catch(error => {
                // 关闭等待
                this.loading = false;
                console.log(error);
                this.faceDetect = "网络异常";
                this.facePost();
            });
        },
        handleLogin(res, username) {
            let rs = JSON.parse(res.data.result);
            if (rs.code == 1) {
                this.$message.success("登录成功");
                sessionStorage.setItem('username', username);
                sessionStorage.setItem('userId', rs.data);
                this.$router.push("/home");
                // 设置用户的权限
                this.$store.dispatch('user/getPermits');
            } else {
                this.faceDetect  = rs.msg;
                this.facePost();
            }
        },
    },
}
</script>
src/pages/home.vue
@@ -78,6 +78,11 @@
                sessionStorage.setItem('acTabs', name);
            },
            immediate: true,
        },
        '$store.state.ukey.isIn'(isIn) {
            if(!isIn) {
                this.$router.push("/login");
            }
        }
    },
    methods: {