添加了相关测试文件,引入Tailwindcss
Change-Id: I12054143571bb688590af0357125a0ed26ff2050
diff --git a/src/mock/index.js b/src/mock/index.js
new file mode 100644
index 0000000..8fd2118
--- /dev/null
+++ b/src/mock/index.js
@@ -0,0 +1,147 @@
+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
\ No newline at end of file