import type { PageParam, PageResult } from '#/packages/effects/request/src';
|
|
/** 模拟接口延迟 */
|
export function mockDelay<T>(data: T, ms = 120): Promise<T> {
|
return new Promise((resolve) => {
|
setTimeout(() => resolve(data), ms);
|
});
|
}
|
|
/** 分页与简单字段过滤 */
|
export function mockPage<T extends Record<string, unknown>>(
|
list: T[],
|
params: PageParam & Record<string, unknown>,
|
filter?: (item: T) => boolean,
|
): PageResult<T> {
|
const filtered = filter ? list.filter(filter) : [...list];
|
const pageNo = params.pageNo ?? 1;
|
const pageSize = params.pageSize ?? 10;
|
const start = (pageNo - 1) * pageSize;
|
return {
|
list: filtered.slice(start, start + pageSize),
|
total: filtered.length,
|
};
|
}
|
|
export function mockNextCode(prefix: string, seq: number): string {
|
return `${prefix}-${String(seq).padStart(4, '0')}`;
|
}
|