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:
@@ -0,0 +1,60 @@
|
||||
import request from '@/utils/request'
|
||||
import type { PageResponse } from './user.api'
|
||||
|
||||
export interface ConfigItem {
|
||||
id: number
|
||||
configName: string
|
||||
configKey: string
|
||||
configValue: string
|
||||
configType: string
|
||||
remark: string
|
||||
createdAt: string
|
||||
updatedAt: string
|
||||
}
|
||||
|
||||
export interface CreateConfigRequest {
|
||||
configName: string
|
||||
configKey: string
|
||||
configValue: string
|
||||
configType?: string
|
||||
remark?: string
|
||||
}
|
||||
|
||||
export interface UpdateConfigRequest {
|
||||
configName?: string
|
||||
configKey?: string
|
||||
configValue?: string
|
||||
configType?: string
|
||||
remark?: string
|
||||
}
|
||||
|
||||
export interface ConfigPageRequest {
|
||||
page: number
|
||||
size: number
|
||||
configName?: string
|
||||
configKey?: string
|
||||
configType?: string
|
||||
}
|
||||
|
||||
export const configApi = {
|
||||
getAll: () =>
|
||||
request.get<ConfigItem[]>('/sys/config'),
|
||||
|
||||
getPage: (params: ConfigPageRequest) =>
|
||||
request.get<PageResponse<ConfigItem>>('/sys/config/page', { params }),
|
||||
|
||||
getById: (id: number) =>
|
||||
request.get<ConfigItem>(`/sys/config/${id}`),
|
||||
|
||||
getByKey: (configKey: string) =>
|
||||
request.get<ConfigItem>(`/sys/config/key/${configKey}`),
|
||||
|
||||
create: (data: CreateConfigRequest) =>
|
||||
request.post<ConfigItem>('/sys/config', data),
|
||||
|
||||
update: (id: number, data: UpdateConfigRequest) =>
|
||||
request.put<ConfigItem>(`/sys/config/${id}`, data),
|
||||
|
||||
delete: (id: number) =>
|
||||
request.delete<void>(`/sys/config/${id}`),
|
||||
}
|
||||
@@ -0,0 +1,96 @@
|
||||
import request from '@/utils/request'
|
||||
import type { PageResponse } from './user.api'
|
||||
|
||||
export interface DictType {
|
||||
id: number
|
||||
dictName: string
|
||||
dictType: string
|
||||
status: number
|
||||
remark: string
|
||||
createdAt: string
|
||||
updatedAt: string
|
||||
}
|
||||
|
||||
export interface DictData {
|
||||
id: number
|
||||
dictType: string
|
||||
dictLabel: string
|
||||
dictValue: string
|
||||
sort: number
|
||||
status: number
|
||||
remark: string
|
||||
createdAt: string
|
||||
updatedAt: string
|
||||
}
|
||||
|
||||
export interface CreateDictTypeRequest {
|
||||
dictName: string
|
||||
dictType: string
|
||||
status?: number
|
||||
remark?: string
|
||||
}
|
||||
|
||||
export interface UpdateDictTypeRequest {
|
||||
dictName?: string
|
||||
dictType?: string
|
||||
status?: number
|
||||
remark?: string
|
||||
}
|
||||
|
||||
export interface CreateDictDataRequest {
|
||||
dictType: string
|
||||
dictLabel: string
|
||||
dictValue: string
|
||||
sort?: number
|
||||
status?: number
|
||||
remark?: string
|
||||
}
|
||||
|
||||
export interface UpdateDictDataRequest {
|
||||
dictType?: string
|
||||
dictLabel?: string
|
||||
dictValue?: string
|
||||
sort?: number
|
||||
status?: number
|
||||
remark?: string
|
||||
}
|
||||
|
||||
export interface DictPageRequest {
|
||||
page: number
|
||||
size: number
|
||||
dictName?: string
|
||||
dictType?: string
|
||||
status?: string
|
||||
}
|
||||
|
||||
export const dictApi = {
|
||||
getTypes: () =>
|
||||
request.get<DictType[]>('/dict/types'),
|
||||
|
||||
getTypeById: (id: number) =>
|
||||
request.get<DictType>(`/dict/types/${id}`),
|
||||
|
||||
createType: (data: CreateDictTypeRequest) =>
|
||||
request.post<DictType>('/dict/types', data),
|
||||
|
||||
updateType: (id: number, data: UpdateDictTypeRequest) =>
|
||||
request.put<DictType>(`/dict/types/${id}`, data),
|
||||
|
||||
deleteType: (id: number) =>
|
||||
request.delete<void>(`/dict/types/${id}`),
|
||||
|
||||
getDataByType: (dictType: string) =>
|
||||
request.get<DictData[]>(`/dict/data/type/${dictType}`),
|
||||
|
||||
getDataPage: (params: DictPageRequest & { dictType: string }) =>
|
||||
request.get<PageResponse<DictData>>('/dict/data/page', { params }),
|
||||
|
||||
createData: (data: CreateDictDataRequest) =>
|
||||
request.post<DictData>('/dict/data', data),
|
||||
|
||||
updateData: (id: number, data: UpdateDictDataRequest) =>
|
||||
request.put<DictData>(`/dict/data/${id}`, data),
|
||||
|
||||
deleteData: (id: number) =>
|
||||
request.delete<void>(`/dict/data/${id}`),
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
import request from '@/utils/request'
|
||||
import type { PageResponse } from './user.api'
|
||||
|
||||
export interface FileInfo {
|
||||
id: number
|
||||
fileName: string
|
||||
filePath: string
|
||||
fileSize: number
|
||||
fileType: string
|
||||
mimeType: string
|
||||
uploadedBy: string
|
||||
createdAt: string
|
||||
}
|
||||
|
||||
export interface FilePageRequest {
|
||||
page: number
|
||||
size: number
|
||||
fileName?: string
|
||||
fileType?: string
|
||||
}
|
||||
|
||||
export const fileApi = {
|
||||
getPage: (params: FilePageRequest) =>
|
||||
request.get<PageResponse<FileInfo>>('/files/page', { params }),
|
||||
|
||||
upload: (file: File) => {
|
||||
const formData = new FormData()
|
||||
formData.append('file', file)
|
||||
return request.post<FileInfo>('/files/upload', formData, {
|
||||
headers: { 'Content-Type': 'multipart/form-data' },
|
||||
})
|
||||
},
|
||||
|
||||
delete: (id: number) =>
|
||||
request.delete<void>(`/files/${id}`),
|
||||
|
||||
download: (id: number) =>
|
||||
request.get<Blob>(`/files/download/${id}`, { responseType: 'blob' }),
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
import request from '@/utils/request'
|
||||
import type { PageResponse } from './user.api'
|
||||
import { NoticeStatus } from '@/constants/status'
|
||||
|
||||
export interface Notice {
|
||||
id: number
|
||||
title: string
|
||||
content: string
|
||||
type: string
|
||||
status: NoticeStatus
|
||||
createdBy: string
|
||||
createdAt: string
|
||||
updatedAt: string
|
||||
}
|
||||
|
||||
export interface CreateNoticeRequest {
|
||||
title: string
|
||||
content: string
|
||||
type?: string
|
||||
status?: NoticeStatus
|
||||
}
|
||||
|
||||
export interface UpdateNoticeRequest {
|
||||
title?: string
|
||||
content?: string
|
||||
type?: string
|
||||
status?: NoticeStatus
|
||||
}
|
||||
|
||||
export interface NoticePageRequest {
|
||||
page: number
|
||||
size: number
|
||||
title?: string
|
||||
type?: string
|
||||
status?: string
|
||||
}
|
||||
|
||||
export const noticeApi = {
|
||||
getPage: (params: NoticePageRequest) =>
|
||||
request.get<PageResponse<Notice>>('/notice/page', { params }),
|
||||
|
||||
getById: (id: number) =>
|
||||
request.get<Notice>(`/notice/${id}`),
|
||||
|
||||
create: (data: CreateNoticeRequest) =>
|
||||
request.post<Notice>('/notice', data),
|
||||
|
||||
update: (id: number, data: UpdateNoticeRequest) =>
|
||||
request.put<Notice>(`/notice/${id}`, data),
|
||||
|
||||
delete: (id: number) =>
|
||||
request.delete<void>(`/notice/${id}`),
|
||||
}
|
||||
@@ -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}`),
|
||||
}
|
||||
Reference in New Issue
Block a user