wsj
2026-10-17 9264ec3994a3be7db64b5ec5465e54662da32321
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import type { LoginParams, LoginResult, UserInfo } from '@/types/auth';
 
interface MockAccount {
  password: string;
  user: UserInfo;
}
 
/**
 * 演示环境下的本地账号。
 * 真实项目请替换为后端登录接口。
 */
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 delay = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));
 
export const loginApi = async (params: LoginParams): Promise<LoginResult> => {
  await delay(500);
 
  const account = MOCK_ACCOUNTS[params.username];
  if (!account || account.password !== params.password) {
    throw new Error('用户名或密码错误');
  }
 
  return {
    token: `mock-token-${account.user.id}-${Date.now()}`,
    user: account.user,
  };
};