// 测试小程序端区域数据加载(修复后)
|
const http = require('http');
|
|
// 模拟小程序端的GraphQL请求
|
function graphqlRequest(query, variables = {}) {
|
return new Promise((resolve, reject) => {
|
const data = JSON.stringify({
|
query: query,
|
variables: variables
|
});
|
|
const options = {
|
hostname: 'localhost',
|
port: 8080,
|
path: '/api/graphql',
|
method: 'POST',
|
headers: {
|
'Content-Type': 'application/json',
|
'Content-Length': Buffer.byteLength(data)
|
}
|
};
|
|
const req = http.request(options, (res) => {
|
let body = '';
|
res.on('data', (chunk) => {
|
body += chunk;
|
});
|
res.on('end', () => {
|
try {
|
const response = JSON.parse(body);
|
console.log('📊 GraphQL响应:', JSON.stringify(response, null, 2));
|
|
if (response.errors) {
|
console.error('❌ GraphQL错误:', response.errors);
|
reject(response.errors);
|
} else if (response.data) {
|
resolve(response.data);
|
} else {
|
console.error('❌ GraphQL响应异常:', response);
|
reject('请求失败');
|
}
|
} catch (error) {
|
console.error('❌ 解析响应失败:', error);
|
reject(error);
|
}
|
});
|
});
|
|
req.on('error', (error) => {
|
console.error('❌ 请求失败:', error);
|
reject(error);
|
});
|
|
req.write(data);
|
req.end();
|
});
|
}
|
|
// 模拟loadRegions方法
|
async function loadRegions() {
|
try {
|
console.log('🔄 开始加载区域数据...');
|
const query = `
|
query {
|
allRegions {
|
id
|
name
|
pid
|
leafFlag
|
}
|
}
|
`;
|
|
const result = await graphqlRequest(query);
|
console.log('📊 区域数据查询结果:', result);
|
|
if (result && result.allRegions) {
|
console.log(`📍 总区域数量: ${result.allRegions.length}`);
|
|
// 显示前5个区域的leafFlag类型和值
|
console.log('🔍 前5个区域的leafFlag详情:');
|
result.allRegions.slice(0, 5).forEach(region => {
|
console.log(` - ${region.name}: leafFlag=${region.leafFlag} (类型: ${typeof region.leafFlag})`);
|
});
|
|
// 只显示leaf_flag=true的区域(叶子节点区域)
|
const leafRegions = result.allRegions.filter(region => region.leafFlag === true);
|
console.log(`🍃 叶子节点区域数量: ${leafRegions.length}`);
|
console.log('🍃 叶子节点区域列表:', leafRegions.map(r => `${r.name}(${r.id})`));
|
|
console.log('✅ 区域数据设置完成');
|
return leafRegions;
|
} else {
|
console.warn('⚠️ 未获取到区域数据');
|
return [];
|
}
|
} catch (error) {
|
console.error('❌ 加载区域数据失败:', error);
|
return [];
|
}
|
}
|
|
// 执行测试
|
loadRegions().then(regions => {
|
console.log('\n🎯 测试结果:');
|
console.log(`- 成功获取 ${regions.length} 个叶子节点区域`);
|
if (regions.length > 0) {
|
console.log('✅ 区域数据加载正常!');
|
} else {
|
console.log('❌ 区域数据加载失败!');
|
}
|
}).catch(error => {
|
console.error('❌ 测试失败:', error);
|
});
|