// 地区数据系统测试工具 // 用于验证双地区数据系统是否正常工作 import { regionData } from 'element-china-area-data'; import { chinaAreaList } from '@/api/system/addressarea/index'; import { convertRegionData, BackendRegionUtils } from './regionDataConverter'; /** * 测试基本信息地址选择系统 */ export function testFrontendRegionData() { console.log('=== 测试基本信息地址选择系统 ==='); if (!regionData || !Array.isArray(regionData)) { console.error('❌ 前端地区数据加载失败'); return false; } console.log('✅ 前端地区数据加载成功'); console.log(`📊 省份数量: ${regionData.length}`); // 测试数据结构 const firstProvince = regionData[0]; if (firstProvince && firstProvince.value && firstProvince.label && firstProvince.children) { console.log('✅ 数据结构正确'); console.log(`📍 示例省份: ${firstProvince.label} (${firstProvince.value})`); const firstCity = firstProvince.children[0]; if (firstCity && firstCity.children) { console.log(`📍 示例城市: ${firstCity.label} (${firstCity.value})`); console.log(`📍 示例区县: ${firstCity.children[0]?.label} (${firstCity.children[0]?.value})`); } } else { console.error('❌ 前端地区数据结构异常'); return false; } return true; } /** * 测试供应区域管理系统 */ export async function testBackendRegionData() { console.log('=== 测试供应区域管理系统 ==='); try { const res = await chinaAreaList(); const backendData = res.data; if (!backendData || !Array.isArray(backendData)) { console.error('❌ 后端地区数据加载失败'); return false; } console.log('✅ 后端地区数据加载成功'); console.log(`📊 省份数量: ${backendData.length}`); // 测试数据结构 const firstProvince = backendData[0]; if (firstProvince && firstProvince.id && firstProvince.areaCode && firstProvince.areaName) { console.log('✅ 数据结构正确'); console.log(`📍 示例省份: ${firstProvince.areaName} (${firstProvince.areaCode})`); if (firstProvince.children && firstProvince.children.length > 0) { const firstCity = firstProvince.children[0]; console.log(`📍 示例城市: ${firstCity.areaName} (${firstCity.areaCode})`); } } else { console.error('❌ 后端地区数据结构异常'); return false; } // 测试数据转换 const convertedData = convertRegionData(backendData); if (convertedData && convertedData.length > 0) { console.log('✅ 数据转换成功'); console.log(`📊 转换后数据量: ${convertedData.length}`); } else { console.error('❌ 数据转换失败'); return false; } // 测试工具函数 const beijingData = BackendRegionUtils.findByAreaCode(backendData, 'CN11'); if (beijingData) { console.log(`✅ 工具函数测试成功: 找到 ${beijingData.areaName}`); } return true; } catch (error) { console.error('❌ 后端地区数据测试失败:', error); return false; } } /** * 运行完整的地区数据系统测试 */ export async function runRegionDataTests() { console.log('🚀 开始地区数据系统测试...'); const frontendTest = testFrontendRegionData(); const backendTest = await testBackendRegionData(); if (frontendTest && backendTest) { console.log('🎉 所有测试通过!双地区数据系统工作正常'); return true; } else { console.log('❌ 部分测试失败,请检查相关配置'); return false; } } // 在开发环境下可以手动运行测试 if (import.meta.env.DEV) { // 可以在控制台运行: runRegionDataTests() (window as any).runRegionDataTests = runRegionDataTests; (window as any).testFrontendRegionData = testFrontendRegionData; (window as any).testBackendRegionData = testBackendRegionData; }