blob: 8fd2118afef578d946e6b01f783ad16b5e9d13a3 [file] [log] [blame]
import Mock from 'mockjs'
// 模拟延迟
Mock.setup({
timeout: '300-600'
})
// 模拟用户数据
const users = [
{
id: 1,
username: 'admin',
password: 'admin123',
email: 'admin@example.com',
role: 'admin',
avatar: 'https://api.dicebear.com/7.x/avataaars/svg?seed=admin'
},
{
id: 2,
username: 'user',
password: 'user123',
email: 'user@example.com',
role: 'user',
avatar: 'https://api.dicebear.com/7.x/avataaars/svg?seed=user'
},
{
id: 3,
username: 'moderator',
password: 'mod123',
email: 'mod@example.com',
role: 'moderator',
avatar: 'https://api.dicebear.com/7.x/avataaars/svg?seed=moderator'
},
{
id: 4,
username: 'blacklisted',
password: 'black123',
email: 'black@example.com',
role: 'blacklisted',
avatar: 'https://api.dicebear.com/7.x/avataaars/svg?seed=blacklisted'
},
{
id: 5,
username: 'veteran',
password: 'vet123',
email: 'veteran@example.com',
role: 'veteran',
avatar: 'https://api.dicebear.com/7.x/avataaars/svg?seed=veteran'
},
{
id: 6,
username: 'newbie',
password: 'new123',
email: 'newbie@example.com',
role: 'newbie',
avatar: 'https://api.dicebear.com/7.x/avataaars/svg?seed=newbie'
}
]
// 模拟登录接口
Mock.mock('/api/auth/login', 'post', (options) => {
const { username, password } = JSON.parse(options.body)
const user = users.find(u => u.username === username && u.password === password)
if (user) {
const { password, ...userWithoutPassword } = user
return {
code: 200,
message: '登录成功',
data: {
token: `mock-token-${user.id}-${Date.now()}`,
user: userWithoutPassword
}
}
} else {
return {
code: 401,
message: '用户名或密码错误',
data: null
}
}
})
// 模拟注册接口
Mock.mock('/api/auth/register', 'post', (options) => {
const { username, email, password } = JSON.parse(options.body)
// 检查用户名是否已存在
if (users.some(u => u.username === username)) {
return {
code: 400,
message: '用户名已存在',
data: null
}
}
// 检查邮箱是否已存在
if (users.some(u => u.email === email)) {
return {
code: 400,
message: '邮箱已被注册',
data: null
}
}
// 创建新用户
const newUser = {
id: users.length + 1,
username,
password,
email,
role: 'newbie', // 默认为新人角色
avatar: `https://api.dicebear.com/7.x/avataaars/svg?seed=${username}`
}
users.push(newUser)
return {
code: 200,
message: '注册成功',
data: null
}
})
// 模拟获取用户信息接口
Mock.mock('/api/user/info', 'get', (options) => {
// 在实际应用中,这里会从token中解析用户ID
// 这里简化处理,假设已登录用户是admin
const user = users.find(u => u.username === 'admin')
if (user) {
const { password, ...userWithoutPassword } = user
return {
code: 200,
message: '获取用户信息成功',
data: userWithoutPassword
}
} else {
return {
code: 401,
message: '获取用户信息失败',
data: null
}
}
})
export default Mock