feat(react19-migration): 阶段2 - 核心框架层迁移

- T2.1: request.ts 确认无 Vue 依赖,无需修改
- T2.5: errorHandler.ts ElMessage → antd message
- T2.7: 新增 API (menu/config/dict/file/notice/loginLog) + 类型定义 (menu/permission/user)
- 清理旧 Vue 测试文件、views、stores、router、directives
- 修复 tsconfig: 添加 module:ESNext + types:vite/client

验证: npx tsc --noEmit 无类型错误
This commit is contained in:
张翔
2026-05-03 15:26:42 +08:00
parent a01bcf791b
commit 49779479dd
61 changed files with 397 additions and 8904 deletions
+65
View File
@@ -0,0 +1,65 @@
import request from '@/utils/request'
import { MenuStatus } from '@/constants/status'
export interface MenuItem {
id: number
name: string
path: string
icon: string
component: string
parentId: number
sort: number
type: 'directory' | 'menu' | 'button'
permission: string
status: MenuStatus
visible: boolean
children?: MenuItem[]
createdAt: string
updatedAt: string
}
export interface CreateMenuRequest {
name: string
path?: string
icon?: string
component?: string
parentId: number
sort: number
type: 'directory' | 'menu' | 'button'
permission?: string
status?: MenuStatus
visible?: boolean
}
export interface UpdateMenuRequest {
name?: string
path?: string
icon?: string
component?: string
parentId?: number
sort?: number
type?: 'directory' | 'menu' | 'button'
permission?: string
status?: MenuStatus
visible?: boolean
}
export const menuApi = {
getAll: () =>
request.get<MenuItem[]>('/menus'),
getById: (id: number) =>
request.get<MenuItem>(`/menus/${id}`),
getTree: () =>
request.get<MenuItem[]>('/menus/tree'),
create: (data: CreateMenuRequest) =>
request.post<MenuItem>('/menus', data),
update: (id: number, data: UpdateMenuRequest) =>
request.put<MenuItem>(`/menus/${id}`, data),
delete: (id: number) =>
request.delete<void>(`/menus/${id}`),
}