初始化万家商超用户端仓库

This commit is contained in:
wangxiaowei
2025-04-30 14:04:34 +08:00
commit 022c640d89
425 changed files with 160005 additions and 0 deletions

185
common/mixin/biological.js Normal file
View File

@ -0,0 +1,185 @@
export default {
name: 'verifyAgain',
onShow() {
console.log('开始二次验证', '用户token==>', this.$store.state.userInfo.user_token, '是否需要==>', this.$store.state.gestureAgain)
// 获取当前页面的URL
this.currentURL = this.$mp.page.route;
// 只有再用户登录 且 需要二次验证 的情况下判断才有意义
if (this.$store.state.userInfo.user_token && this.$store.state.gestureAgain) {
console.log('开始判断设备...==>', uni.getSystemInfoSync().platform)
if (uni.getSystemInfoSync().platform == "ios") {
this.appleORan == 1;
this.getingSupport(1);
console.log('设备为ios')
} else if (uni.getSystemInfoSync().platform === "android") {
this.appleORan == 0;
this.getingSupport(0);
console.log('设备为安卓')
} else {
this.appleORan == 0;
this.getingSupport(0);
console.log('设备未知,默认为安卓')
}
}
},
destroyed() {
// this.$store.commit('setGestureAgain',true);
},
data() {
return {
appleORan: null, // 判断是苹果还是安卓(苹果:1;安卓:0;)
currentURL: null, // 获取当前页面的URL
}
},
methods: {
// 获取支持的生物监测
getingSupport(type) {
console.log('appleORan==3')
let that = this;
// #ifdef H5
that.goingHandPassward();
// #endif
// #ifndef H5
uni.checkIsSupportSoterAuthentication({
success(res) {
// console.log("获取支持的生物监测成功==>", res.supportMode.indexOf("facial") != -1,that.appleORan == 1);
// 如果支持人脸识别,就优先人脸识别,否则就去指纹识别(人脸识别还需要判断是否是ios设备如果不是直接指纹。)
if (res.supportMode.indexOf("facial") != -1 && type == 1) {
console.log('进入人脸识别')
that.examineFaceID();
} else if (res.supportMode.indexOf("fingerPrint") != -1) {
console.log('进入指纹识别')
that.examineFingetprint();
} else {
that.goingHandPassward();
}
},
fail(err) {
console.log("获取支持的生物监测失败==>", err);
that.goingHandPassward();
},
});
// #endif
},
// 手势密码入口
goingHandPassward() {
// 如果保存的有密码那就是解锁模式,如果没有那就是设置模式
if (this.$store.state.userInfo.hand_password == '') {
console.log('跳转到设置手势密码')
uni.showToast({
title: this.$t('请先设置你的密码'),
duration: 500,
icon: 'none'
});
this.$urouter.redirectTo({
url: '/pages/index/setting/gesturePassword',
params: {
"type": 2,
}
})
} else {
console.log('跳转到手势密码')
// 跳转到手势密码的页面时也到带上当前的页面路径
this.$urouter.redirectTo({
url: '/pages/index/setting/gesturePassword',
params: {
"type": 1,
"currentURL": this.currentURL
}
})
}
},
// 检查是否录入指纹
examineFingetprint() {
let that = this;
uni.checkIsSoterEnrolledInDevice({
checkAuthMode: "fingerPrint",
success(res) {
console.log("检查是否录入指纹==>", res);
// 如果没有录入指纹就跳转到设备的设置页面(不过应该用不到)
if (res.isEnrolled) {
that.startFingerprint();
}
},
fail(err) {
console.log(err);
},
});
},
// 检查是否录入faceID
examineFaceID() {
let that = this;
uni.checkIsSoterEnrolledInDevice({
checkAuthMode: "facial",
success(res) {
console.log("检查是否录入faceID", res);
// 检查是否录入人脸
if (res.isEnrolled) {
that.startFaceID();
}
},
fail(err) {
console.log(err);
},
});
},
// 开始指纹识别
startFingerprint() {
let that = this;
uni.startSoterAuthentication({
requestAuthModes: ["fingerPrint"],
challenge: this.$t("要携带的参数"),
authContent: this.$t("请用指纹解锁"),
success(res) {
that.$store.commit('setGestureAgain', false);
console.log("指纹识别成功==>", res);
// 如果识别成功就
uni.showToast({
title: this.$t("识别成功"),
duration: 500,
});
},
fail(err) {
console.log(err);
uni.showToast({
title: this.$t('验证失败'),
duration: 1000,
icon: 'none'
});
setTimeout(() => {
that.$urouter.navigateBack()
}, 1000)
},
});
},
// 开始人脸识别
startFaceID() {
let that = this;
uni.startSoterAuthentication({
requestAuthModes: ["facial"],
challenge: this.$t("要携带的参数"),
authContent: this.$t("请用FaceID解锁"),
success(res) {
console.log("人脸识别成功==>", res);
that.$store.commit('setGestureAgain', false);
// 如果识别成功就
uni.showToast({
title: this.$t("识别成功"),
duration: 500,
});
},
fail(err) {
console.log(err);
uni.showToast({
title: this.$t('验证失败'),
duration: 1000,
icon: 'none'
});
setTimeout(() => {
that.$urouter.navigateBack()
}, 1000)
},
});
},
},
};