|
|
@@ -99,7 +99,6 @@
|
|
|
<div class="ckpt-ai-body" id="ckptAiBody">点击「生成解读」,模型会根据当前筛选范围的数据给出结论与建议。</div>
|
|
|
</section>
|
|
|
<div class="ckpt-kpis" id="ckptKpis"></div>
|
|
|
- <div class="ckpt-zero" id="ckptZero" hidden></div>
|
|
|
<div class="ckpt-grid">
|
|
|
<section class="ckpt-card"><div class="ckpt-card-head"><h3>营业额 / 订单趋势</h3><span id="ckptTrendNote"></span></div><div class="ckpt-chart" id="ckptTrend"></div></section>
|
|
|
<section class="ckpt-card"><div class="ckpt-card-head"><h3>门店营业额 Top 10</h3><span></span></div><div class="ckpt-chart" id="ckptRank"></div></section>
|
|
|
@@ -181,26 +180,6 @@
|
|
|
}).join('');
|
|
|
}
|
|
|
|
|
|
- function renderZeroOrder(data) {
|
|
|
- const box = $('ckptZero');
|
|
|
- if (!box) return;
|
|
|
- const items = data.zeroOrder || [];
|
|
|
- if (!items.length) {
|
|
|
- box.hidden = true;
|
|
|
- box.innerHTML = '';
|
|
|
- return;
|
|
|
- }
|
|
|
- const chips = items.map((item) => {
|
|
|
- const tone = item.reason === 'no-conversion' ? 'warn'
|
|
|
- : item.reason === 'no-visit' || item.reason === 'no-traffic' ? 'info' : 'muted';
|
|
|
- return `<span class="ckpt-zero-chip ${tone}" title="${esc(item.reasonText)}">
|
|
|
- <b>${shortDate(item.date)} ${esc(item.shopName)}</b>${esc(item.reasonText)}
|
|
|
- </span>`;
|
|
|
- }).join('');
|
|
|
- box.hidden = false;
|
|
|
- box.innerHTML = `<span class="ckpt-zero-label">零单诊断 ${items.length} 店次</span>${chips}`;
|
|
|
- }
|
|
|
-
|
|
|
function renderTrend(data) {
|
|
|
const chart = state.charts.trend;
|
|
|
const dates = data.trend.map((t) => shortDate(t.date));
|
|
|
@@ -378,7 +357,6 @@
|
|
|
$('ckptFrom').value = ymdToInput(state.from);
|
|
|
$('ckptTo').value = ymdToInput(state.to);
|
|
|
renderKpis(body.kpis);
|
|
|
- renderZeroOrder(body);
|
|
|
renderTrend(body);
|
|
|
renderRanking(body);
|
|
|
renderFunnel(body);
|