```
feat(qr-login): 增加租户ID支持并优化登录成功处理逻辑- 在 QR 登码返回数据中新增 `tenantId` 字段,用于标识用户所属租户 - 登录成功后将 `tenantId` 存入 localStorage,便于后续权限判断 - 调整 `loginSuccess`事件传递参数,由 token 改为完整响应数据对象- 二维码组件增加点击刷新功能,提升用户体验 - 移除测试用的临时日志输出和无用的测试路由配置 -修复登录页图标显示逻辑,根据登录方式切换二维码/手机图标```
This commit is contained in:
@@ -7,8 +7,8 @@
|
||||
<p class="loading-text">正在生成二维码...</p>
|
||||
</div>
|
||||
|
||||
<div v-else-if="qrCodeStatus === 'active'" class="qr-active">
|
||||
<ele-qr-code-svg :value="qrCodeData" :size="200" />
|
||||
<div v-else-if="qrCodeStatus === 'active'" class="qr-active cursor-pointer">
|
||||
<ele-qr-code-svg :value="qrCodeData" :size="200" @click="refreshQrCode" />
|
||||
<p class="qr-tip">请使用手机APP或小程序扫码登录</p>
|
||||
<p class="qr-expire-tip">二维码有效期:{{ formatTime(expireTime) }}</p>
|
||||
</div>
|
||||
@@ -55,11 +55,11 @@ import {
|
||||
ExclamationCircleOutlined,
|
||||
ReloadOutlined
|
||||
} from '@ant-design/icons-vue';
|
||||
import { generateQrCode, checkQrCodeStatus, type QrCodeResponse } from '@/api/passport/qrLogin';
|
||||
import {generateQrCode, checkQrCodeStatus, type QrCodeResponse, QrCodeStatusResponse} from '@/api/passport/qrLogin';
|
||||
|
||||
// 定义组件事件
|
||||
const emit = defineEmits<{
|
||||
(e: 'loginSuccess', token: string): void;
|
||||
(e: 'loginSuccess', data: QrCodeStatusResponse): void;
|
||||
(e: 'loginError', error: string): void;
|
||||
}>();
|
||||
|
||||
@@ -131,9 +131,12 @@ const startStatusCheck = () => {
|
||||
break;
|
||||
case 'confirmed':
|
||||
// 登录成功
|
||||
if(status.tenantId){
|
||||
localStorage.setItem('TenantId', `${status.tenantId}`)
|
||||
}
|
||||
qrCodeStatus.value = 'active';
|
||||
stopAllTimers();
|
||||
emit('loginSuccess', status.accessToken || '');
|
||||
emit('loginSuccess', status);
|
||||
break;
|
||||
case 'expired':
|
||||
qrCodeStatus.value = 'expired';
|
||||
|
||||
Reference in New Issue
Block a user