From cd2b7d36f3610417c268d062454b7ec43e9ca937 Mon Sep 17 00:00:00 2001
From: wsj <593216709@qq.com>
Date: Wed, 28 Oct 2026 22:51:24 +0800
Subject: [PATCH] feat: 日志页面
---
src/api/auth.ts | 77 +++++++++++++++++++++-----------------
1 files changed, 43 insertions(+), 34 deletions(-)
diff --git a/src/api/auth.ts b/src/api/auth.ts
index 5a2738c..91eccac 100644
--- a/src/api/auth.ts
+++ b/src/api/auth.ts
@@ -1,47 +1,56 @@
-import type { LoginParams, LoginResult, UserInfo } from '@/types/auth';
+import { ApiError, request } from '@/api/request';
+import type {
+ LoginParams,
+ LoginResult,
+ TenantLoginData,
+ UserInfo,
+} from '@/types/auth';
-interface MockAccount {
+interface TenantLoginRequest {
+ phone: string;
password: string;
- user: UserInfo;
+ tenantCode: string;
}
-/**
- * 演示环境下的本地账号。
- * 真实项目请替换为后端登录接口。
- */
-const MOCK_ACCOUNTS: Record<string, MockAccount> = {
- admin: {
- password: 'admin123',
- user: {
- id: 1,
- username: 'admin',
- nickname: '超级管理员',
- role: 'admin',
- },
- },
- user: {
- password: 'user123',
- user: {
- id: 2,
- username: 'user',
- nickname: '普通运营',
- role: 'user',
- },
- },
+const toUserInfo = (data: TenantLoginData, params: LoginParams): UserInfo => {
+ const phone = data.phone ?? params.phone.trim();
+ const loginType = data.loginType?.toLowerCase() ?? '';
+
+ return {
+ id: data.employeeId ?? 0,
+ username: phone,
+ nickname: data.employeeName ?? phone,
+ role: loginType.includes('admin') ? 'admin' : 'user',
+ tenant: data.tenantCode ?? params.tenant.trim(),
+ phone,
+ };
};
-const delay = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));
-
+/** 租户登录。 */
export const loginApi = async (params: LoginParams): Promise<LoginResult> => {
- await delay(500);
+ const data = await request<TenantLoginRequest, TenantLoginData>(
+ {
+ url: '/auth/tenant-login',
+ method: 'POST',
+ data: {
+ phone: params.phone.trim(),
+ password: params.password,
+ tenantCode: params.tenant.trim(),
+ },
+ },
+ {
+ // 登录有副作用,不合并;错误由登录页统一提示。
+ merge: false,
+ showError: false,
+ },
+ );
- const account = MOCK_ACCOUNTS[params.username];
- if (!account || account.password !== params.password) {
- throw new Error('用户名或密码错误');
+ if (!data?.token) {
+ throw new ApiError('登录响应中未找到 token', { data });
}
return {
- token: `mock-token-${account.user.id}-${Date.now()}`,
- user: account.user,
+ token: data.token,
+ user: toUserInfo(data, params),
};
};
--
Gitblit v1.9.3