/** * 地区测试数据 * 用于在测试中模拟地区数据 */ export interface AreaTestData { id: number; name: string; level: number; parentId?: number; isDisabled?: number; sort?: number; } // 省份数据(level: 1) export const mockProvinces: AreaTestData[] = [ { id: 1, name: '北京市', level: 1, isDisabled: 0, sort: 1 }, { id: 2, name: '上海市', level: 1, isDisabled: 0, sort: 2 }, { id: 3, name: '广东省', level: 1, isDisabled: 0, sort: 3 }, { id: 4, name: '江苏省', level: 1, isDisabled: 0, sort: 4 }, { id: 5, name: '浙江省', level: 1, isDisabled: 0, sort: 5 }, ]; // 城市数据(level: 2) export const mockCities: AreaTestData[] = [ { id: 11, name: '北京市', level: 2, parentId: 1, isDisabled: 0, sort: 1 }, { id: 12, name: '上海市', level: 2, parentId: 2, isDisabled: 0, sort: 1 }, { id: 13, name: '广州市', level: 2, parentId: 3, isDisabled: 0, sort: 1 }, { id: 14, name: '深圳市', level: 2, parentId: 3, isDisabled: 0, sort: 2 }, { id: 15, name: '南京市', level: 2, parentId: 4, isDisabled: 0, sort: 1 }, { id: 16, name: '苏州市', level: 2, parentId: 4, isDisabled: 0, sort: 2 }, { id: 17, name: '杭州市', level: 2, parentId: 5, isDisabled: 0, sort: 1 }, { id: 18, name: '宁波市', level: 2, parentId: 5, isDisabled: 0, sort: 2 }, ]; // 区县数据(level: 3) export const mockDistricts: AreaTestData[] = [ { id: 101, name: '东城区', level: 3, parentId: 11, isDisabled: 0, sort: 1 }, { id: 102, name: '西城区', level: 3, parentId: 11, isDisabled: 0, sort: 2 }, { id: 103, name: '黄浦区', level: 3, parentId: 12, isDisabled: 0, sort: 1 }, { id: 104, name: '徐汇区', level: 3, parentId: 12, isDisabled: 0, sort: 2 }, { id: 105, name: '天河区', level: 3, parentId: 13, isDisabled: 0, sort: 1 }, { id: 106, name: '越秀区', level: 3, parentId: 13, isDisabled: 0, sort: 2 }, { id: 107, name: '福田区', level: 3, parentId: 14, isDisabled: 0, sort: 1 }, { id: 108, name: '南山区', level: 3, parentId: 14, isDisabled: 0, sort: 2 }, ]; // 所有地区数据 export const mockAllAreas: AreaTestData[] = [ ...mockProvinces, ...mockCities, ...mockDistricts, ]; // 根据条件筛选地区数据 export const filterAreas = ( areas: AreaTestData[], filters?: { level?: number; parentId?: number; isDisabled?: number } ): AreaTestData[] => { return areas.filter(area => { if (filters?.level !== undefined && area.level !== filters.level) return false; if (filters?.parentId !== undefined && area.parentId !== filters.parentId) return false; if (filters?.isDisabled !== undefined && area.isDisabled !== filters.isDisabled) return false; return true; }); }; // 获取分页数据 export const getPaginatedData = ( areas: AreaTestData[], page: number = 1, pageSize: number = 10 ) => { const start = (page - 1) * pageSize; const end = start + pageSize; return { data: areas.slice(start, end), total: areas.length, page, pageSize, totalPages: Math.ceil(areas.length / pageSize), }; };