可用版本

This commit is contained in:
戚辰先生 2024-11-30 22:05:14 +08:00
parent 582b7669af
commit c6a5e00788
4 changed files with 19 additions and 21 deletions

View File

@ -7,21 +7,16 @@ const BASE_URL = '/api/v1/menu';
// 获取菜单列表(分页) // 获取菜单列表(分页)
export const getMenus = (params?: MenuQuery) => export const getMenus = (params?: MenuQuery) =>
request.get<Page<MenuResponse>>(`${BASE_URL}/page`, { request.get<Page<MenuResponse>>(`${BASE_URL}/page`, {
params, params
transform: true
}); });
// 获取菜单树 // 获取菜单树
export const getMenuTree = () => export const getMenuTree = () =>
request.get<MenuResponse[]>(`${BASE_URL}/tree`, { request.get<MenuResponse[]>(`${BASE_URL}/tree`);
transform: true
});
// 获取当前用户菜单 // 获取当前用户菜单
export const getCurrentUserMenus = () => export const getCurrentUserMenus = () =>
request.get<MenuResponse[]>(`${BASE_URL}/current`, { request.get<MenuResponse[]>(`${BASE_URL}/current`);
transform: true
});
// 创建菜单 // 创建菜单
export const createMenu = (data: MenuRequest) => export const createMenu = (data: MenuRequest) =>

View File

@ -74,15 +74,21 @@ const UserPage: React.FC = () => {
try { try {
const values = await form.validateFields(); const values = await form.validateFields();
if (editingUser) { if (editingUser) {
await handleUpdate(editingUser.id, { const success = await handleUpdate(editingUser.id, {
...values, ...values,
version: editingUser.version version: editingUser.version
}); });
} else { if (success) {
await handleCreate(values);
}
setModalVisible(false); setModalVisible(false);
fetchUsers(); fetchUsers();
}
} else {
const success = await handleCreate(values);
if (success) {
setModalVisible(false);
fetchUsers();
}
}
} catch (error) { } catch (error) {
console.error('操作失败:', error); console.error('操作失败:', error);
} }

View File

@ -7,8 +7,7 @@ const BASE_URL = '/api/v1/user';
// 获取用户列表(分页) // 获取用户列表(分页)
export const getUsers = (params?: UserQuery) => export const getUsers = (params?: UserQuery) =>
request.get<Page<UserResponse>>(`${BASE_URL}/page`, { request.get<Page<UserResponse>>(`${BASE_URL}/page`, {
params, params
transform: true
}); });
// 创建用户 // 创建用户

View File

@ -11,14 +11,12 @@ export interface Response<T = any> {
export interface RequestOptions extends AxiosRequestConfig { export interface RequestOptions extends AxiosRequestConfig {
successMessage?: string; successMessage?: string;
errorMessage?: string; errorMessage?: string;
transform?: boolean;
retryCount?: number; retryCount?: number;
retryDelay?: number; retryDelay?: number;
} }
// 默认请求配置 // 默认请求配置
const defaultConfig: Partial<RequestOptions> = { const defaultConfig: Partial<RequestOptions> = {
transform: true,
retryCount: 3, retryCount: 3,
retryDelay: 1000, retryDelay: 1000,
timeout: 30000 timeout: 30000
@ -48,7 +46,7 @@ const responseHandler = (response: AxiosResponse<Response<any>>) => {
if (res.success && res.code === 200) { if (res.success && res.code === 200) {
config.successMessage && message.success(config.successMessage); config.successMessage && message.success(config.successMessage);
return config.transform ? res.data : res; return res.data;
} else { } else {
message.error(config.errorMessage || res.message); message.error(config.errorMessage || res.message);
return Promise.reject(res); return Promise.reject(res);
@ -105,16 +103,16 @@ request.interceptors.response.use(responseHandler, errorHandler);
const http = { const http = {
get: <T = any>(url: string, config?: RequestOptions) => get: <T = any>(url: string, config?: RequestOptions) =>
request.get<any, Response<T>>(url, createRequestConfig({transform: true, ...config})), request.get<any, Response<T>>(url, createRequestConfig(config)),
post: <T = any>(url: string, data?: any, config?: RequestOptions) => post: <T = any>(url: string, data?: any, config?: RequestOptions) =>
request.post<any, Response<T>>(url, data, createRequestConfig({transform: true, ...config})), request.post<any, Response<T>>(url, data, createRequestConfig(config)),
put: <T = any>(url: string, data?: any, config?: RequestOptions) => put: <T = any>(url: string, data?: any, config?: RequestOptions) =>
request.put<any, Response<T>>(url, data, createRequestConfig({transform: true, ...config})), request.put<any, Response<T>>(url, data, createRequestConfig(config)),
delete: <T = any>(url: string, config?: RequestOptions) => delete: <T = any>(url: string, config?: RequestOptions) =>
request.delete<any, Response<T>>(url, createRequestConfig({transform: true, ...config})), request.delete<any, Response<T>>(url, createRequestConfig(config)),
upload: <T = any>(url: string, file: File, config?: RequestOptions) => { upload: <T = any>(url: string, file: File, config?: RequestOptions) => {
const formData = new FormData(); const formData = new FormData();