feat(qr-login): 增加租户ID支持并优化登录成功处理逻辑- 在 QR 登码返回数据中新增 `tenantId` 字段,用于标识用户所属租户
- 登录成功后将 `tenantId` 存入 localStorage,便于后续权限判断
- 调整 `loginSuccess`事件传递参数,由 token 改为完整响应数据对象- 二维码组件增加点击刷新功能,提升用户体验
- 移除测试用的临时日志输出和无用的测试路由配置
-修复登录页图标显示逻辑,根据登录方式切换二维码/手机图标```
This commit is contained in:
2025-09-22 15:25:59 +08:00
parent 1f5002c536
commit da620dd961
6 changed files with 22 additions and 344 deletions

View File

@@ -53,11 +53,12 @@
</div>
<div class="login-bar absolute top-0 z-50 right-0 cursor-pointer" @click="onScan">
<div class="go-to-register cursor-pointer">
<img src="https://img.alicdn.com/imgextra/i3/O1CN01yz6fEl1MwaRtkJyvf_!!6000000001499-55-tps-70-70.svg"
<img src="@/assets/O1CN01yz6fEl1MwaRtkJyvf_!!6000000001499-55-tps-70-70.svg"
alt=""/>
</div>
<div class="absolute top-3 right-3 text-lg text-white font-bold cursor-pointer">
<QrcodeOutlined/>
<div class="absolute top-2 right-2 text-lg text-white font-bold cursor-pointer">
<QrcodeOutlined v-if="loginType === 'sms'"/>
<MobileOutlined v-else/>
</div>
<!-- <span class="absolute top-3 right-1.5 text-sm text-white font-bold cursor-pointer">{{ '登录' }}</span>-->
</div>
@@ -266,6 +267,7 @@ import {
LockOutlined,
UserOutlined,
QrcodeOutlined,
MobileOutlined,
SafetyCertificateOutlined
} from '@ant-design/icons-vue';
import {goHomeRoute, cleanPageTabs} from '@/utils/page-tab-util';
@@ -283,6 +285,7 @@ import {phoneReg} from 'ele-admin-pro';
import router from "@/router";
import {listAdminsByPhoneAll} from "@/api/system/user";
import {getUserInfo} from "@/api/layout";
import {QrCodeStatusResponse} from "@/api/passport/qrLogin";
const useForm = Form.useForm;
const {currentRoute} = useRouter();
@@ -523,15 +526,13 @@ const onScan = () => {
}
/* 二维码登录成功处理 */
const onQrLoginSuccess = async (token: string) => {
const onQrLoginSuccess = async (item: QrCodeStatusResponse) => {
// 设置token到localStorage或其他存储
localStorage.setItem('access_token', token);
localStorage.setItem('access_token', item.accessToken || '');
message.success('扫码登录成功');
const data = await getUserInfo();
if (data) {
localStorage.setItem('access_token', token);
localStorage.setItem('TenantId', String(data.tenantId));
localStorage.setItem('UserId', String(data.userId));
if (item) {
localStorage.setItem('access_token', `${item.accessToken}`);
localStorage.setItem('TenantId', `${item.tenantId}`);
cleanPageTabs();
goHome();
}