spring
2026-07-03 081f242ea3c019f4eddd0fe342c5cf6189da1468
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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')}`;
}