import { faker } from '@faker-js/faker'; import { verifyAccessToken } from '~/utils/jwt-utils'; import { unAuthorizedResponse, useResponseSuccess } 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', }); function generateMockDataList(count: number) { const dataList = []; for (let i = 0; i < count; i++) { const dataItem: Record = { id: faker.string.uuid(), pid: 0, name: faker.commerce.department(), status: faker.helpers.arrayElement([0, 1]), createTime: formatterCN.format( faker.date.between({ from: '2021-01-01', to: '2022-12-31' }), ), remark: faker.lorem.sentence(), }; if (faker.datatype.boolean()) { dataItem.children = Array.from( { length: faker.number.int({ min: 1, max: 5 }) }, () => ({ id: faker.string.uuid(), pid: dataItem.id, name: faker.commerce.department(), status: faker.helpers.arrayElement([0, 1]), createTime: formatterCN.format( faker.date.between({ from: '2023-01-01', to: '2023-12-31' }), ), remark: faker.lorem.sentence(), }), ); } dataList.push(dataItem); } return dataList; } const mockData = generateMockDataList(10); export default eventHandler(async (event) => { const userinfo = verifyAccessToken(event); if (!userinfo) { return unAuthorizedResponse(event); } const listData = structuredClone(mockData); return useResponseSuccess(listData); });