feat(auth): 实现二维码登录功能
- 新增二维码登录相关接口和页面 - 实现二维码生成、状态检查、登录确认等逻辑 - 添加微信小程序登录支持- 优化用户信息展示和处理
This commit is contained in:
@@ -9,6 +9,7 @@ import navTo from "@/utils/common";
|
||||
import {TenantId} from "@/config/app";
|
||||
import {useUser} from "@/hooks/useUser";
|
||||
import {useUserData} from "@/hooks/useUserData";
|
||||
import {useUniversalScanner} from "@/components/UniversalScanner";
|
||||
|
||||
function UserCard() {
|
||||
const {
|
||||
@@ -20,7 +21,17 @@ function UserCard() {
|
||||
getDisplayName,
|
||||
getRoleName
|
||||
} = useUser();
|
||||
const {data} = useUserData()
|
||||
const {data} = useUserData();
|
||||
|
||||
// 统一扫码处理
|
||||
const { startScan } = useUniversalScanner({
|
||||
onScanSuccess: (result) => {
|
||||
console.log('扫码成功:', result);
|
||||
},
|
||||
onScanError: (error) => {
|
||||
console.error('扫码失败:', error);
|
||||
}
|
||||
});
|
||||
|
||||
useEffect(() => {
|
||||
// Taro.getSetting:获取用户的当前设置。返回值中只会出现小程序已经向用户请求过的权限。
|
||||
@@ -190,7 +201,48 @@ function UserCard() {
|
||||
) : ''}
|
||||
</View>
|
||||
</View>
|
||||
{isAdmin() && <Scan onClick={() => navTo('/user/store/verification', true)}/>}
|
||||
{isLoggedIn && (
|
||||
<View
|
||||
onClick={() => {
|
||||
console.log('扫码按钮被点击了');
|
||||
|
||||
// 检查 Taro.scanCode 是否存在
|
||||
if (typeof Taro.scanCode === 'function') {
|
||||
console.log('Taro.scanCode 函数存在');
|
||||
|
||||
// 直接测试 Taro.scanCode
|
||||
Taro.scanCode({
|
||||
success: (res) => {
|
||||
console.log('直接扫码成功:', res.result);
|
||||
Taro.showModal({
|
||||
title: '扫码成功',
|
||||
content: res.result,
|
||||
showCancel: false
|
||||
});
|
||||
},
|
||||
fail: (err) => {
|
||||
console.error('直接扫码失败:', err);
|
||||
Taro.showModal({
|
||||
title: '扫码失败',
|
||||
content: `错误信息: ${JSON.stringify(err)}`,
|
||||
showCancel: false
|
||||
});
|
||||
}
|
||||
});
|
||||
} else {
|
||||
console.error('Taro.scanCode 函数不存在');
|
||||
Taro.showModal({
|
||||
title: '错误',
|
||||
content: 'Taro.scanCode 函数不存在,请检查 Taro 版本',
|
||||
showCancel: false
|
||||
});
|
||||
}
|
||||
}}
|
||||
className="p-2 bg-blue-100 rounded cursor-pointer"
|
||||
>
|
||||
<Scan className="text-blue-500" />
|
||||
</View>
|
||||
)}
|
||||
<View className={'mr-4 text-sm px-3 py-1 text-black border-gray-400 border-solid border-2 rounded-3xl'}
|
||||
onClick={() => navTo('/user/profile/profile', true)}>
|
||||
{'个人资料'}
|
||||
|
||||
Reference in New Issue
Block a user