🚗 智车通 · 自动获客系统
🏠 首页 📊 仪表盘 🔋 国内获客 🌍 海外海关
🔍 调试信息(如果看不到数据,请查看这里)
等待初始化...
🔋

电池双模块 - 国内+海外获客平台

国内线索 + 海外海关数据 → 采购商画像 → 线索池转化

0
海关报关记录
0
海外采购商
0
A级高价值客户
0
已同步线索池
📊 电池模块数据 国内+海外双模块
实时更新
--
国内线索
--
海外采购商
--
A级高价值
--
HS编码覆盖
📊 数据概览:
🌍 覆盖 -- 个国家 🏷️ 涉及 -- 个HS编码 ⚖️ 总毛重 -- 吨 ⭐ A级客户 -- 家 📞 联系方式完整率 --%
ID 海外采购商(含联系方式) 国家/城市 HS编码 货物信息(含中文品名) 数量 总价值(USD) 质量等级 进口日期 港口
加载中...
共 0 条
1 / 101 页
🕓 采集任务历史
ID 渠道 参数 结果数 模式 说明 时间
加载中...
// ============================================================ // 数据质量仪表盘 // ============================================================ function loadDataQualityDashboard() { console.log('[数据质量仪表盘] 开始加载...'); try { fetch('/api/battery/data-quality/dashboard') .then(function(res) { return res.json(); }) .then(function(data) { if (data.success && data.data) { var d = data.data; var summary = d.summary; // 更新总览卡片 document.getElementById('dq-email-rate').textContent = summary.email.valid_rate + '%'; document.getElementById('dq-email-valid').textContent = summary.email.valid.toLocaleString(); document.getElementById('dq-email-total').textContent = summary.email.total.toLocaleString(); document.getElementById('dq-phone-rate').textContent = summary.phone.valid_rate + '%'; document.getElementById('dq-phone-valid').textContent = summary.phone.valid.toLocaleString(); document.getElementById('dq-phone-total').textContent = summary.phone.total.toLocaleString(); document.getElementById('dq-wa-rate').textContent = summary.whatsapp.valid_rate + '%'; document.getElementById('dq-wa-valid').textContent = summary.whatsapp.valid.toLocaleString(); document.getElementById('dq-wa-total').textContent = summary.whatsapp.total.toLocaleString(); document.getElementById('dq-overall-score').textContent = summary.overall_quality_score; // 计算可开发客户总数 var outreachReady = 0; if (d.table_stats) { d.table_stats.forEach(function(t) { outreachReady += t.outreach_ready || 0; }); } document.getElementById('dq-outreach-ready').textContent = outreachReady.toLocaleString(); // 渲染图表 renderDQCompareChart(d.table_stats); renderDQPieChart(summary); renderDQCountryChart(d.country_distribution); renderDQTableChart(d.table_stats); console.log('[数据质量仪表盘] 加载完成'); } }) .catch(function(e) { console.error('[数据质量仪表盘] 加载失败:', e); }); } catch(e) { console.error('[数据质量仪表盘] 错误:', e); } } function renderDQCompareChart(tableStats) { var dom = document.getElementById('dq-chart-compare'); if (!dom || typeof echarts === 'undefined') return; var chart = echarts.init(dom); var labels = tableStats.map(function(t) { return t.label; }); var emailRates = tableStats.map(function(t) { return t.email.valid_rate; }); var phoneRates = tableStats.map(function(t) { return t.phone.valid_rate; }); var waRates = tableStats.map(function(t) { return t.whatsapp.valid_rate; }); var option = { backgroundColor: 'transparent', tooltip: { trigger: 'axis', triggerOn: 'click', renderMode: 'richText', confine: true }, legend: { top: 0, textStyle: { fontSize: 11 } }, grid: { left: 50, right: 20, top: 40, bottom: 60, containLabel: true }, xAxis: { type: 'category', data: labels, axisLabel: { fontSize: 10, rotate: 20 } }, yAxis: { type: 'value', name: '有效率(%)', max: 100, axisLabel: { fontSize: 10 } }, series: [ { name: '邮箱', type: 'bar', data: emailRates, itemStyle: { color: '#3B82F6' } }, { name: '电话', type: 'bar', data: phoneRates, itemStyle: { color: '#10B981' } }, { name: 'WhatsApp', type: 'bar', data: waRates, itemStyle: { color: '#8B5CF6' } } ] }; chart.setOption(option); } function renderDQPieChart(summary) { var dom = document.getElementById('dq-chart-pie'); if (!dom || typeof echarts === 'undefined') return; var chart = echarts.init(dom); var option = { backgroundColor: 'transparent', tooltip: { trigger: 'item', triggerOn: 'click', renderMode: 'richText', confine: true }, legend: { bottom: 0, type: 'scroll', textStyle: { fontSize: 11 } }, series: [{ name: '联系方式', type: 'pie', radius: ['35%', '65%'], center: ['50%', '45%'], label: { formatter: '{b}: {d}%', fontSize: 10 }, data: [ { value: summary.email.valid, name: '邮箱有效', itemStyle: { color: '#3B82F6' } }, { value: summary.email.invalid, name: '邮箱无效', itemStyle: { color: '#93C5FD' } }, { value: summary.phone.valid, name: '电话有效', itemStyle: { color: '#10B981' } }, { value: summary.phone.invalid, name: '电话无效', itemStyle: { color: '#6EE7B7' } }, { value: summary.whatsapp.valid, name: 'WA有效', itemStyle: { color: '#8B5CF6' } }, { value: summary.whatsapp.total - summary.whatsapp.valid, name: 'WA无效', itemStyle: { color: '#C4B5FD' } } ] }] }; chart.setOption(option); } function renderDQCountryChart(countryData) { var dom = document.getElementById('dq-chart-country'); if (!dom || typeof echarts === 'undefined') return; var chart = echarts.init(dom); if (!countryData || countryData.length === 0) { chart.setOption({ title: { text: '暂无数据', left: 'center', top: 'center', textStyle: { fontSize: 14, color: '#999' } } }); return; } var labels = countryData.map(function(c) { return c.country; }); var values = countryData.map(function(c) { return c.count; }); var option = { backgroundColor: 'transparent', tooltip: { trigger: 'axis', triggerOn: 'click', renderMode: 'richText', confine: true }, grid: { left: 80, right: 30, top: 20, bottom: 30, containLabel: true }, xAxis: { type: 'value', axisLabel: { fontSize: 10 } }, yAxis: { type: 'category', data: labels.reverse(), axisLabel: { fontSize: 10 } }, series: [{ type: 'bar', data: values.reverse(), itemStyle: { color: '#F59E0B' }, label: { show: true, position: 'right', fontSize: 10 } }] }; chart.setOption(option); } function renderDQTableChart(tableStats) { var dom = document.getElementById('dq-chart-table'); if (!dom || typeof echarts === 'undefined') return; var chart = echarts.init(dom); var labels = tableStats.map(function(t) { return t.label; }); var totals = tableStats.map(function(t) { return t.total_records; }); var emailVerified = tableStats.map(function(t) { return t.email.verified; }); var phoneVerified = tableStats.map(function(t) { return t.phone.verified; }); var option = { backgroundColor: 'transparent', tooltip: { trigger: 'axis', triggerOn: 'click', renderMode: 'richText', confine: true }, legend: { top: 0, textStyle: { fontSize: 11 } }, grid: { left: 50, right: 20, top: 40, bottom: 60, containLabel: true }, xAxis: { type: 'category', data: labels, axisLabel: { fontSize: 10, rotate: 20 } }, yAxis: { type: 'value', name: '记录数', axisLabel: { fontSize: 10 } }, series: [ { name: '总记录数', type: 'bar', data: totals, itemStyle: { color: '#E5E7EB' } }, { name: '邮箱已验证', type: 'bar', data: emailVerified, itemStyle: { color: '#3B82F6' } }, { name: '电话已验证', type: 'bar', data: phoneVerified, itemStyle: { color: '#10B981' } } ] }; chart.setOption(option); } // 页面加载完成后自动加载数据质量仪表盘 document.addEventListener('DOMContentLoaded', function() { setTimeout(function() { loadDataQualityDashboard(); }, 2000); });