mockAreaData.ts 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. /**
  2. * 地区测试数据
  3. * 用于在测试中模拟地区数据
  4. */
  5. export interface AreaTestData {
  6. id: number;
  7. name: string;
  8. level: number;
  9. parentId?: number;
  10. isDisabled?: number;
  11. sort?: number;
  12. }
  13. // 省份数据(level: 1)
  14. export const mockProvinces: AreaTestData[] = [
  15. { id: 1, name: '北京市', level: 1, isDisabled: 0, sort: 1 },
  16. { id: 2, name: '上海市', level: 1, isDisabled: 0, sort: 2 },
  17. { id: 3, name: '广东省', level: 1, isDisabled: 0, sort: 3 },
  18. { id: 4, name: '江苏省', level: 1, isDisabled: 0, sort: 4 },
  19. { id: 5, name: '浙江省', level: 1, isDisabled: 0, sort: 5 },
  20. ];
  21. // 城市数据(level: 2)
  22. export const mockCities: AreaTestData[] = [
  23. { id: 11, name: '北京市', level: 2, parentId: 1, isDisabled: 0, sort: 1 },
  24. { id: 12, name: '上海市', level: 2, parentId: 2, isDisabled: 0, sort: 1 },
  25. { id: 13, name: '广州市', level: 2, parentId: 3, isDisabled: 0, sort: 1 },
  26. { id: 14, name: '深圳市', level: 2, parentId: 3, isDisabled: 0, sort: 2 },
  27. { id: 15, name: '南京市', level: 2, parentId: 4, isDisabled: 0, sort: 1 },
  28. { id: 16, name: '苏州市', level: 2, parentId: 4, isDisabled: 0, sort: 2 },
  29. { id: 17, name: '杭州市', level: 2, parentId: 5, isDisabled: 0, sort: 1 },
  30. { id: 18, name: '宁波市', level: 2, parentId: 5, isDisabled: 0, sort: 2 },
  31. ];
  32. // 区县数据(level: 3)
  33. export const mockDistricts: AreaTestData[] = [
  34. { id: 101, name: '东城区', level: 3, parentId: 11, isDisabled: 0, sort: 1 },
  35. { id: 102, name: '西城区', level: 3, parentId: 11, isDisabled: 0, sort: 2 },
  36. { id: 103, name: '黄浦区', level: 3, parentId: 12, isDisabled: 0, sort: 1 },
  37. { id: 104, name: '徐汇区', level: 3, parentId: 12, isDisabled: 0, sort: 2 },
  38. { id: 105, name: '天河区', level: 3, parentId: 13, isDisabled: 0, sort: 1 },
  39. { id: 106, name: '越秀区', level: 3, parentId: 13, isDisabled: 0, sort: 2 },
  40. { id: 107, name: '福田区', level: 3, parentId: 14, isDisabled: 0, sort: 1 },
  41. { id: 108, name: '南山区', level: 3, parentId: 14, isDisabled: 0, sort: 2 },
  42. ];
  43. // 所有地区数据
  44. export const mockAllAreas: AreaTestData[] = [
  45. ...mockProvinces,
  46. ...mockCities,
  47. ...mockDistricts,
  48. ];
  49. // 根据条件筛选地区数据
  50. export const filterAreas = (
  51. areas: AreaTestData[],
  52. filters?: { level?: number; parentId?: number; isDisabled?: number }
  53. ): AreaTestData[] => {
  54. return areas.filter(area => {
  55. if (filters?.level !== undefined && area.level !== filters.level) return false;
  56. if (filters?.parentId !== undefined && area.parentId !== filters.parentId) return false;
  57. if (filters?.isDisabled !== undefined && area.isDisabled !== filters.isDisabled) return false;
  58. return true;
  59. });
  60. };
  61. // 获取分页数据
  62. export const getPaginatedData = (
  63. areas: AreaTestData[],
  64. page: number = 1,
  65. pageSize: number = 10
  66. ) => {
  67. const start = (page - 1) * pageSize;
  68. const end = start + pageSize;
  69. return {
  70. data: areas.slice(start, end),
  71. total: areas.length,
  72. page,
  73. pageSize,
  74. totalPages: Math.ceil(areas.length / pageSize),
  75. };
  76. };