blob: 8fd2118afef578d946e6b01f783ad16b5e9d13a3 [file] [log] [blame]
ybt02e716d2025-04-15 17:19:32 +08001import Mock from 'mockjs'
2
3// 模拟延迟
4Mock.setup({
5 timeout: '300-600'
6})
7
8// 模拟用户数据
9const users = [
10 {
11 id: 1,
12 username: 'admin',
13 password: 'admin123',
14 email: 'admin@example.com',
15 role: 'admin',
16 avatar: 'https://api.dicebear.com/7.x/avataaars/svg?seed=admin'
17 },
18 {
19 id: 2,
20 username: 'user',
21 password: 'user123',
22 email: 'user@example.com',
23 role: 'user',
24 avatar: 'https://api.dicebear.com/7.x/avataaars/svg?seed=user'
25 },
26 {
27 id: 3,
28 username: 'moderator',
29 password: 'mod123',
30 email: 'mod@example.com',
31 role: 'moderator',
32 avatar: 'https://api.dicebear.com/7.x/avataaars/svg?seed=moderator'
33 },
34 {
35 id: 4,
36 username: 'blacklisted',
37 password: 'black123',
38 email: 'black@example.com',
39 role: 'blacklisted',
40 avatar: 'https://api.dicebear.com/7.x/avataaars/svg?seed=blacklisted'
41 },
42 {
43 id: 5,
44 username: 'veteran',
45 password: 'vet123',
46 email: 'veteran@example.com',
47 role: 'veteran',
48 avatar: 'https://api.dicebear.com/7.x/avataaars/svg?seed=veteran'
49 },
50 {
51 id: 6,
52 username: 'newbie',
53 password: 'new123',
54 email: 'newbie@example.com',
55 role: 'newbie',
56 avatar: 'https://api.dicebear.com/7.x/avataaars/svg?seed=newbie'
57 }
58]
59
60// 模拟登录接口
61Mock.mock('/api/auth/login', 'post', (options) => {
62 const { username, password } = JSON.parse(options.body)
63 const user = users.find(u => u.username === username && u.password === password)
64
65 if (user) {
66 const { password, ...userWithoutPassword } = user
67 return {
68 code: 200,
69 message: '登录成功',
70 data: {
71 token: `mock-token-${user.id}-${Date.now()}`,
72 user: userWithoutPassword
73 }
74 }
75 } else {
76 return {
77 code: 401,
78 message: '用户名或密码错误',
79 data: null
80 }
81 }
82})
83
84// 模拟注册接口
85Mock.mock('/api/auth/register', 'post', (options) => {
86 const { username, email, password } = JSON.parse(options.body)
87
88 // 检查用户名是否已存在
89 if (users.some(u => u.username === username)) {
90 return {
91 code: 400,
92 message: '用户名已存在',
93 data: null
94 }
95 }
96
97 // 检查邮箱是否已存在
98 if (users.some(u => u.email === email)) {
99 return {
100 code: 400,
101 message: '邮箱已被注册',
102 data: null
103 }
104 }
105
106 // 创建新用户
107 const newUser = {
108 id: users.length + 1,
109 username,
110 password,
111 email,
112 role: 'newbie', // 默认为新人角色
113 avatar: `https://api.dicebear.com/7.x/avataaars/svg?seed=${username}`
114 }
115
116 users.push(newUser)
117
118 return {
119 code: 200,
120 message: '注册成功',
121 data: null
122 }
123})
124
125// 模拟获取用户信息接口
126Mock.mock('/api/user/info', 'get', (options) => {
127 // 在实际应用中,这里会从token中解析用户ID
128 // 这里简化处理,假设已登录用户是admin
129 const user = users.find(u => u.username === 'admin')
130
131 if (user) {
132 const { password, ...userWithoutPassword } = user
133 return {
134 code: 200,
135 message: '获取用户信息成功',
136 data: userWithoutPassword
137 }
138 } else {
139 return {
140 code: 401,
141 message: '获取用户信息失败',
142 data: null
143 }
144 }
145})
146
147export default Mock