flat: 扫码登录
This commit is contained in:
@@ -193,16 +193,18 @@ import { storeToRefs } from 'pinia';
|
||||
import tabcontrolVue from './components/tabcontrol.vue';
|
||||
import SelectJobs from '@/components/selectJobs/selectJobs.vue';
|
||||
import { reactive, inject, watch, ref, onMounted, onUnmounted } from 'vue';
|
||||
import { onLoad, onShow } from '@dcloudio/uni-app';
|
||||
import { onLoad, onShow, onHide } from '@dcloudio/uni-app';
|
||||
import useUserStore from '@/stores/useUserStore';
|
||||
import useDictStore from '@/stores/useDictStore';
|
||||
import { playTextDirectly } from '@/hook/useTTSPlayer-all-in-one';
|
||||
import { IncreaseRevie, FaceLoginService } from '@/common/all-in-one-listen.js';
|
||||
const { $api, navTo } = inject('globalFunction');
|
||||
const { loginSetToken, getUserResume } = useUserStore();
|
||||
const { isMachineEnv, hasLogin } = storeToRefs(useUserStore());
|
||||
const { getDictSelectOption, oneDictData } = useDictStore();
|
||||
const openSelectPopup = inject('openSelectPopup');
|
||||
|
||||
const qrHandler = new IncreaseRevie();
|
||||
const faceService = new FaceLoginService();
|
||||
// status
|
||||
const selectJobsModel = ref();
|
||||
const tabCurrent = ref(1);
|
||||
@@ -233,18 +235,33 @@ const scanLineTop = ref(0);
|
||||
let scanInterval = null;
|
||||
const countdown = ref(60);
|
||||
let countdownTimer = null;
|
||||
const loginMethod = ref('face'); // 'qrcode' / 'face'
|
||||
const loginMethod = ref('qrcode'); // 'qrcode' / 'face'
|
||||
|
||||
onLoad((parmas) => {
|
||||
getTreeselect();
|
||||
if (!isMachineEnv.value) $api.msg('请完善微简历');
|
||||
if (!isMachineEnv.value) {
|
||||
$api.msg('请完善微简历');
|
||||
}
|
||||
});
|
||||
|
||||
onMounted(() => {
|
||||
if (isMachineEnv) {
|
||||
startCountdown();
|
||||
startScanAnimation();
|
||||
playTextDirectly('请进行用户登录');
|
||||
faceService.start(); // 自动开始初始化流程
|
||||
if (loginMethod.value === 'face') {
|
||||
playTextDirectly('开始刷脸登录');
|
||||
} else {
|
||||
playTextDirectly('请进行登录');
|
||||
}
|
||||
setTimeout(() => {
|
||||
if (loginMethod.value === 'face') {
|
||||
handleFaceLogin();
|
||||
}
|
||||
if (loginMethod.value === 'qrcode') {
|
||||
qrHandler.start();
|
||||
}
|
||||
}, 1000);
|
||||
}
|
||||
});
|
||||
onUnmounted(() => {
|
||||
@@ -289,12 +306,45 @@ const cancelLogin = () => {
|
||||
|
||||
// 切换登录方式
|
||||
const switchLoginMethod = (method) => {
|
||||
if (!isMachineEnv) {
|
||||
return;
|
||||
}
|
||||
if (loginMethod.value !== method) {
|
||||
loginMethod.value = method;
|
||||
switch (method) {
|
||||
case 'qrcode':
|
||||
faceService.close();
|
||||
qrHandler.start();
|
||||
playTextDirectly('扫码登录');
|
||||
break;
|
||||
case 'face':
|
||||
qrHandler.close();
|
||||
handleFaceLogin();
|
||||
playTextDirectly('扫脸登录');
|
||||
break;
|
||||
}
|
||||
resetCountdown();
|
||||
}
|
||||
};
|
||||
|
||||
async function handleFaceLogin() {
|
||||
try {
|
||||
const authCode = await faceService.startFaceLogin();
|
||||
console.log('拿到 AuthCode:', authCode);
|
||||
// 调用后端登录接口...
|
||||
} catch (err) {
|
||||
this.$api.msg(err.message);
|
||||
}
|
||||
}
|
||||
|
||||
onUnmounted(() => {
|
||||
qrHandler.close();
|
||||
});
|
||||
|
||||
onHide(() => {
|
||||
qrHandler.close();
|
||||
});
|
||||
|
||||
// 开始动画
|
||||
const startScanAnimation = () => {
|
||||
clearInterval(scanInterval);
|
||||
|
||||
Reference in New Issue
Block a user