tansci/antdv-next-admin/mock/handlers/auth.mock.ts
xuewuerduo f468d532b1 feat: 初始化tansci资产管理项目
包含以下模块:
- antdv-next-admin: Vue 3 + TypeScript + Ant Design Vue 管理后台
  - 设备/许可证/配件/耗材 CRUD 管理页面
  - 基础数据管理 (分类/位置/制造商/型号/供应商)
  - 业务管理 (故障报修/盘点/资产分配/资产申请/交易记录)
  - 下拉选项改造 (ID输入框 → 搜索下拉选择)
  - 资产状态字典化 (接入sys_dict系统)
  - 界面文案优化 (设备→资产, 在库/在用/维修中/已报废)
  - 修复 console 警告 (popupClassName, 重复组件注册)
- our-itam: Java Spring Boot + magic-api 后端服务
- fantastic-admin: 前端底层框架 (pnpm monorepo)
- ciyo-itasset: CIYO 资产模块
- magic-script-skill: Claude Code skill 定义
- .claude: 对话历史记录

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-05-17 21:41:22 +08:00

114 lines
2.4 KiB
TypeScript

import { defineMock } from 'vite-plugin-mock-dev-server';
import { adminUser, regularUser } from '../data/users.data';
export default defineMock([
// Login
{
url: '/api/auth/login',
method: 'POST',
body: (req) => {
const { username, password } = req.body;
// Validate credentials
let user = null;
if (username === 'admin' && password === '123456') {
user = adminUser;
} else if (username === 'user' && password === '123456') {
user = regularUser;
}
if (user) {
return {
code: 200,
message: 'Login successful',
data: {
token: `mock-token-${user.id}-${Date.now()}`,
refreshToken: `mock-refresh-token-${user.id}-${Date.now()}`,
expiresIn: 7200,
},
success: true,
};
} else {
return {
code: 401,
message: 'Invalid username or password',
data: null,
success: false,
};
}
},
},
// Logout
{
url: '/api/auth/logout',
method: 'POST',
body: {
code: 200,
message: 'Logout successful',
data: null,
success: true,
},
},
// Get user info
{
url: '/api/auth/info',
method: 'GET',
body: (req) => {
// Get token from header
const token = req.headers.authorization?.replace('Bearer ', '');
if (!token) {
return {
code: 401,
message: 'Unauthorized',
data: null,
success: false,
};
}
// Extract user ID from token
const userId = token.split('-')[2];
const user = userId === '1' ? adminUser : regularUser;
return {
code: 200,
message: 'Success',
data: user,
success: true,
};
},
},
// Refresh token
{
url: '/api/auth/refresh',
method: 'POST',
body: (req) => {
const { refreshToken } = req.body;
if (refreshToken) {
return {
code: 200,
message: 'Token refreshed',
data: {
token: `new-mock-token-${Date.now()}`,
refreshToken: `new-mock-refresh-token-${Date.now()}`,
expiresIn: 7200,
},
success: true,
};
} else {
return {
code: 401,
message: 'Invalid refresh token',
data: null,
success: false,
};
}
},
},
]);