Blame view

Yi.Vben5.Vue3/apps/backend-mock/api/system/role/list.ts 2.18 KB
515fceeb   “wangming”   框架初始化
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
  import { faker } from '@faker-js/faker';
  import { verifyAccessToken } from '~/utils/jwt-utils';
  import { getMenuIds, MOCK_MENU_LIST } from '~/utils/mock-data';
  import { unAuthorizedResponse, usePageResponseSuccess } from '~/utils/response';
  
  const formatterCN = new Intl.DateTimeFormat('zh-CN', {
    timeZone: 'Asia/Shanghai',
    year: 'numeric',
    month: '2-digit',
    day: '2-digit',
    hour: '2-digit',
    minute: '2-digit',
    second: '2-digit',
  });
  
  const menuIds = getMenuIds(MOCK_MENU_LIST);
  
  function generateMockDataList(count: number) {
    const dataList = [];
  
    for (let i = 0; i < count; i++) {
      const dataItem: Record<string, any> = {
        id: faker.string.uuid(),
        name: faker.commerce.product(),
        status: faker.helpers.arrayElement([0, 1]),
        creationTime: formatterCN.format(
          faker.date.between({ from: '2022-01-01', to: '2025-01-01' }),
        ),
        permissions: faker.helpers.arrayElements(menuIds),
        remark: faker.lorem.sentence(),
      };
  
      dataList.push(dataItem);
    }
  
    return dataList;
  }
  
  const mockData = generateMockDataList(100);
  
  export default eventHandler(async (event) => {
    const userinfo = verifyAccessToken(event);
    if (!userinfo) {
      return unAuthorizedResponse(event);
    }
  
    const {
      page = 1,
      MaxResultCount = 20,
      name,
      id,
      remark,
      startTime,
      endTime,
      status,
    } = getQuery(event);
    let listData = structuredClone(mockData);
    if (name) {
      listData = listData.filter((item) =>
        item.name.toLowerCase().includes(String(name).toLowerCase()),
      );
    }
    if (id) {
      listData = listData.filter((item) =>
        item.id.toLowerCase().includes(String(id).toLowerCase()),
      );
    }
    if (remark) {
      listData = listData.filter((item) =>
        item.remark?.toLowerCase()?.includes(String(remark).toLowerCase()),
      );
    }
    if (startTime) {
      listData = listData.filter((item) => item.creationTime >= startTime);
    }
    if (endTime) {
      listData = listData.filter((item) => item.creationTime <= endTime);
    }
    if (['0', '1'].includes(status as string)) {
      listData = listData.filter((item) => item.status === Number(status));
    }
    return usePageResponseSuccess(page as string, MaxResultCount as string, listData);
  });