mirror of
https://github.com/m-xlsea/ruoyi-plus-soybean.git
synced 2025-09-24 07:49:47 +08:00
feat(projects): 添加请求适配adapter层应用的示例页面
This commit is contained in:
@ -1,2 +1,3 @@
|
||||
export * from './auth';
|
||||
export * from './demo';
|
||||
export * from './management';
|
||||
|
39
src/service/api/management.adapter.ts
Normal file
39
src/service/api/management.adapter.ts
Normal file
@ -0,0 +1,39 @@
|
||||
import { EnumGender } from '@/enum';
|
||||
import { isUndefined } from '@/utils';
|
||||
|
||||
export function adapterOfFetchUserManagementList(
|
||||
requestData: ApiUserManagement.UserTable[],
|
||||
adminId: string
|
||||
): UserManagement.UserTable[] {
|
||||
const genderMap: Record<
|
||||
NonNullable<ApiUserManagement.UserTable['gender']>,
|
||||
NonNullable<UserManagement.UserTable['userGender']>
|
||||
> = {
|
||||
'0': 'female',
|
||||
'1': 'male'
|
||||
};
|
||||
|
||||
// 1. 有可能依赖于多个接口的结果,再转换成页面的数据
|
||||
// 2. 接口定义的字段有可能为null, 例如 预期是数组却返回了null,导致调用数组方法报错
|
||||
// 3. 字段可能丢失
|
||||
|
||||
return requestData.map(item => {
|
||||
const { id, name, age, gender } = item;
|
||||
|
||||
const userName = name + (adminId === id ? '(管理员)' : '');
|
||||
|
||||
const userAge = isUndefined(age) ? '无' : String(age);
|
||||
|
||||
const userGender = gender !== null ? genderMap[gender] : 'null';
|
||||
|
||||
const result: UserManagement.UserTable = {
|
||||
id,
|
||||
userName,
|
||||
userAge,
|
||||
userGender,
|
||||
userGenderLabel: EnumGender[userGender]
|
||||
};
|
||||
|
||||
return result;
|
||||
});
|
||||
}
|
22
src/service/api/management.ts
Normal file
22
src/service/api/management.ts
Normal file
@ -0,0 +1,22 @@
|
||||
import { adapter } from '@/utils';
|
||||
import { mockRequest } from '../request';
|
||||
import { adapterOfFetchUserManagementList } from './management.adapter';
|
||||
|
||||
/**
|
||||
* 获取用户管理列表
|
||||
*/
|
||||
export async function fetchUserManagementList() {
|
||||
const data = await mockRequest.post<ApiUserManagement.UserTable[]>('/getUserManagementList');
|
||||
|
||||
const id = '2';
|
||||
|
||||
return adapter(adapterOfFetchUserManagementList, data, { error: null, data: id });
|
||||
}
|
||||
|
||||
// export async function fetchFilterUserManagementList(
|
||||
// filterKey: keyof UserManagement.UserTable,
|
||||
// mode: 'fontEnd' | 'backEnd',
|
||||
// source: UserManagement.UserTable[]
|
||||
// ) {
|
||||
|
||||
// }
|
Reference in New Issue
Block a user