Files
onion-dmp/public/index.html
2026-04-08 14:52:09 +08:00

124 lines
4.6 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>洋葱客户大数据标签系统</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
<link rel="stylesheet" href="style.css">
</head>
<body>
<!-- Top Bar -->
<header class="topbar">
<div class="topbar-left">
<div class="brand">
<div class="brand-icon">
<!-- Simplified Onion Icon -->
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<path stroke-linecap="round" stroke-linejoin="round" d="M12 2C6.48 2 2 6.48 2 12C2 17.52 6.48 22 12 22C17.52 22 22 17.52 22 12C22 6.48 17.52 2 12 2Z" />
<path stroke-linecap="round" stroke-linejoin="round" d="M12 6C8.69 6 6 8.69 6 12C6 15.31 8.69 18 12 18C15.31 18 18 15.31 18 12C18 8.69 15.31 6 12 6Z" />
</svg>
</div>
<div class="brand-text">
<span class="brand-name">洋葱客户大数据标签系统</span>
<span class="brand-sub">AMBER ONION DATA INTELLIGENCE</span>
</div>
</div>
</div>
<div class="topbar-center">
<!-- 原 result-counter 已移至底部 -->
</div>
<div class="topbar-right">
<button class="action-btn primary" id="btnCompute" onclick="compute()" disabled style="display:none">
<span class="btn-icon"></span> 实时计算
</button>
<button class="action-btn ghost" onclick="resetAll()">重置</button>
<button class="action-btn ghost" onclick="showPanel('sample')" id="btnSample" style="display:none">查看用户样本</button>
<button class="action-btn ghost" onclick="showPanel('duration')" id="btnDuration">指导周期分析</button>
<button class="action-btn ghost" onclick="showPanel('import')">导入数据</button>
</div>
</header>
<!-- Selected Tags Bar -->
<div class="selected-bar" id="selectedBar" style="display:none">
<span class="sel-label">已选条件:</span>
<div class="sel-tags" id="selTags"></div>
<span class="sel-logic" style="color:#666; font-size:12px; margin-left:12px;">
<span style="color:#999;">(同分类: OR | 不同分类: AND</span>
</span>
<button class="sel-clear" onclick="resetAll()">✕ 清空</button>
</div>
<!-- Main Layout -->
<div class="main-layout">
<!-- Tag Board -->
<div class="board" id="tagBoard">
<!-- Columns rendered by JS -->
<div class="board-loading" id="boardLoading">
<div class="spinner"></div>
<span>加载标签体系...</span>
</div>
</div>
<!-- Right Panel (collapsible) -->
<div class="right-panel" id="rightPanel" style="display:none">
<div class="rp-header">
<span class="rp-title" id="rpTitle">用户样本</span>
<button class="rp-close" onclick="closePanel()"></button>
</div>
<div class="rp-body" id="rpBody"></div>
</div>
</div>
<!-- Compute result overlay on cards -->
<div class="compute-overlay" id="computeOverlay" style="display:none">
<div class="co-inner">
<div class="spinner-lg"></div>
<span>计算中...</span>
</div>
</div>
<!-- Import Panel Modal -->
<div class="modal-mask" id="importModal" style="display:none">
<div class="modal">
<div class="modal-header">
<span>📡 数据导入接口</span>
<button onclick="closeModal('importModal')"></button>
</div>
<div class="modal-body" id="importModalBody"></div>
</div>
</div>
<!-- Bottom Bar (Footer) -->
<div class="bottom-bar">
<div class="result-counter" id="resultCounter">
<!-- 左:当前规模 -->
<div class="rc-metric">
<div class="rc-metric-label">当前规模</div>
<div class="rc-main">
<span class="rc-num" id="rcNum"></span>
<span class="rc-unit"></span>
</div>
<div class="rc-sub">/ 共 <span id="rcTotal"></span></div>
</div>
<!-- 分隔线 -->
<div class="rc-divider"></div>
<!-- 右:预估转化 -->
<div class="rc-metric">
<div class="rc-metric-label">预估转化</div>
<div class="rc-main">
<span class="rc-num rc-num-rate" id="rcRate"></span>
<span class="rc-unit">%</span>
</div>
<div class="rc-delta" id="rcDelta" style="display:none"></div>
</div>
</div>
</div>
<script src="app.js"></script>
</body>
</html>