Files
claude-outlonok/static/index.html
2026-03-06 00:45:44 +08:00

351 lines
16 KiB
HTML
Raw 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>Outlook 邮件管理器</title>
<link href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/5.1.3/css/bootstrap.min.css" rel="stylesheet">
<link href="https://cdn.bootcdn.net/ajax/libs/bootstrap-icons/1.13.1/font/bootstrap-icons.css" rel="stylesheet">
<link href="style.css" rel="stylesheet">
</head>
<body>
<!-- ====================================================================
视图1账号管理默认主页
==================================================================== -->
<div id="accountView" class="view-container">
<!-- 顶部导航栏 -->
<nav class="navbar">
<div class="navbar-container">
<a href="#" class="logo">
<div class="logo-icon"><i class="bi bi-envelope-fill"></i></div>
<span class="logo-text">邮箱助手</span>
</a>
<div class="nav-actions">
<div class="search-box">
<i class="bi bi-search"></i>
<input type="text" id="accountSearch" placeholder="搜索邮箱..." autocomplete="off">
</div>
<button class="btn btn-primary" id="importBtn">
<i class="bi bi-clipboard-plus"></i>
<span>粘贴导入</span>
</button>
<button class="btn btn-primary" id="exportBtn">
<i class="bi bi-download"></i>
<span>导出</span>
</button>
<button class="btn btn-primary" id="claudePaymentBtn">
<i class="bi bi-credit-card"></i>
<span>Claude检测</span>
</button>
<button class="btn btn-icon" id="refreshAccountsBtn" title="刷新">
<i class="bi bi-arrow-clockwise"></i>
</button>
<a href="/admin" class="btn btn-icon" title="管理后台">
<i class="bi bi-gear"></i>
</a>
</div>
</div>
</nav>
<!-- 主内容区 -->
<div class="main-container">
<!-- 表格容器 -->
<div class="table-container">
<div class="table-header">
<h2 class="table-title">
<i class="bi bi-people"></i>
邮箱账号列表
</h2>
</div>
<div class="table-scroll">
<table class="data-table" id="accountTable">
<thead>
<tr>
<th class="col-num">#</th>
<th>邮箱</th>
<th>密码</th>
<th class="col-hide-mobile">客户ID</th>
<th>令牌</th>
<th>支付状态</th>
<th>退款状态</th>
<th>支付时间</th>
<th>退款时间</th>
<th>封号时间</th>
<th>备注/卡号</th>
<th>代理</th>
<th>操作</th>
</tr>
</thead>
<tbody id="accountTableBody">
<tr>
<td colspan="13">
<div class="no-data">
<i class="bi bi-inbox"></i>
<div>暂无邮箱数据,点击"粘贴导入"添加</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- 分页 -->
<div class="pagination-container" id="paginationContainer">
<div class="pagination-info">
<span id="pagerInfo">共 0 条</span>
<span class="divider">|</span>
<span id="pagerCurrent">1/1 页</span>
</div>
<div class="pagination-controls" id="pagerControls">
<button class="pagination-btn" id="prevPageBtn" disabled title="上一页">
<i class="bi bi-chevron-left"></i>
</button>
<button class="pagination-btn active">1</button>
<button class="pagination-btn" id="nextPageBtn" disabled title="下一页">
<i class="bi bi-chevron-right"></i>
</button>
</div>
</div>
</div>
</div>
</div>
<!-- ====================================================================
视图2邮件查看器
==================================================================== -->
<div id="emailView" class="view-container" style="display:none;">
<!-- 顶部导航 -->
<nav class="navbar">
<div class="navbar-container">
<button class="btn btn-primary" id="backToAccounts">
<i class="bi bi-arrow-left"></i>
<span>返回邮箱管理</span>
</button>
<div class="current-email-info">
<div class="info-icon"><i class="bi bi-envelope"></i></div>
<div class="info-text">
<div class="info-label">当前查看</div>
<div class="info-value">
<span id="topbarEmail"></span>
<span class="folder-badge" id="topbarFolder"></span>
</div>
</div>
</div>
<!-- 移动端邮件列表按钮 -->
<button class="btn btn-icon d-md-none" id="mobileMailToggle" title="邮件列表">
<i class="bi bi-list-ul"></i>
</button>
</div>
</nav>
<!-- 双栏主体 -->
<div class="email-main">
<!-- 左侧邮件列表 -->
<div class="email-list-panel" id="emailListPanel">
<div class="email-list-header">
<span id="emailListTitle">邮件列表</span>
<span class="email-count-badge" id="emailCountBadge" style="display:none;">0</span>
</div>
<div class="email-list-content" id="emailListContent">
<div class="empty-state">
<i class="bi bi-envelope"></i>
<p>加载中...</p>
</div>
</div>
</div>
<!-- 右侧邮件详情 -->
<div class="email-detail-panel" id="emailDetailPanel">
<div class="detail-content" id="detailContent">
<div class="empty-detail">
<i class="bi bi-envelope-open"></i>
<h6>选择一封邮件查看详情</h6>
<p>从左侧列表中选择邮件</p>
</div>
</div>
</div>
</div>
<!-- 移动端遮罩 -->
<div class="mobile-overlay" id="mobileOverlay"></div>
</div>
<!-- ====================================================================
导入模态框
==================================================================== -->
<div class="paste-modal" id="importModal">
<div class="paste-modal-content">
<div class="paste-modal-header">
<div class="paste-modal-icon"><i class="bi bi-clipboard-plus"></i></div>
<div>
<h3 class="paste-modal-title">粘贴导入邮箱</h3>
<p class="paste-modal-subtitle">将邮箱数据粘贴到下方输入框中</p>
</div>
</div>
<textarea class="paste-textarea" id="importText"
placeholder="每行一个账户&#10;格式: 邮箱----密码----客户ID----令牌&#10;简化: 邮箱----令牌"></textarea>
<div class="paste-modal-hint">
<i class="bi bi-info-circle"></i>
<span>使用 <code>----</code> 分隔各字段,每行一个邮箱</span>
</div>
<div class="merge-mode-section">
<label class="input-label">合并模式</label>
<div class="merge-options">
<label class="merge-option">
<input type="radio" name="mergeMode" value="update" checked>
<span>更新已有</span>
</label>
<label class="merge-option">
<input type="radio" name="mergeMode" value="skip">
<span>跳过重复</span>
</label>
</div>
</div>
<div class="paste-modal-buttons">
<button class="btn btn-cancel" id="cancelImportBtn">取消</button>
<button class="btn btn-primary" id="doImportBtn">
<i class="bi bi-check2"></i>
<span>确定导入</span>
</button>
</div>
</div>
</div>
<!-- 备注/卡号编辑弹窗 -->
<div class="paste-modal" id="noteModal">
<div class="paste-modal-content" style="max-width:420px;">
<div class="paste-modal-header">
<div class="paste-modal-icon"><i class="bi bi-pencil-square"></i></div>
<div>
<h3 class="paste-modal-title">编辑备注</h3>
<p class="paste-modal-subtitle" id="noteModalEmail"></p>
</div>
</div>
<div class="note-fields">
<div class="note-field-group">
<label class="input-label">标题</label>
<input type="text" class="proxy-input" id="noteTitle" placeholder="如:淘宝、开台" autocomplete="off">
</div>
<div class="note-field-group">
<label class="input-label">卡号</label>
<input type="text" class="proxy-input" id="noteCardNumber" placeholder="银行卡号" autocomplete="off">
</div>
<div class="note-field-group">
<label class="input-label">备注</label>
<textarea class="proxy-input" id="noteRemark" rows="3" placeholder="其他备注信息" style="resize:vertical;min-height:60px;"></textarea>
</div>
</div>
<div class="paste-modal-buttons">
<button class="btn btn-cancel" id="cancelNoteBtn">取消</button>
<button class="btn btn-primary" id="saveNoteBtn">
<i class="bi bi-check2"></i>
<span>保存</span>
</button>
</div>
</div>
</div>
<!-- 代理编辑弹窗 -->
<div class="paste-modal" id="proxyModal">
<div class="paste-modal-content" style="max-width:480px;">
<div class="paste-modal-header">
<div class="paste-modal-icon"><i class="bi bi-globe"></i></div>
<div>
<h3 class="paste-modal-title">编辑代理</h3>
<p class="paste-modal-subtitle" id="proxyModalEmail"></p>
</div>
</div>
<div class="proxy-format-section">
<label class="input-label">协议类型</label>
<div class="proxy-format-options">
<label class="merge-option"><input type="radio" name="proxyProtocol" value="http" checked><span>HTTP</span></label>
<label class="merge-option"><input type="radio" name="proxyProtocol" value="https"><span>HTTPS</span></label>
<label class="merge-option"><input type="radio" name="proxyProtocol" value="socks5"><span>SOCKS5</span></label>
</div>
</div>
<div class="proxy-fields">
<div class="proxy-row">
<div class="proxy-field">
<label class="input-label">IP地址</label>
<input type="text" class="proxy-input" id="proxyHost" placeholder="127.0.0.1" autocomplete="off">
</div>
<div class="proxy-field proxy-field-sm">
<label class="input-label">端口</label>
<input type="text" class="proxy-input" id="proxyPort" placeholder="1080" autocomplete="off">
</div>
</div>
<div class="proxy-row">
<div class="proxy-field">
<label class="input-label">账号 <span style="color:#94a3b8;font-weight:400">(可选)</span></label>
<input type="text" class="proxy-input" id="proxyUser" placeholder="username" autocomplete="off">
</div>
<div class="proxy-field">
<label class="input-label">密码 <span style="color:#94a3b8;font-weight:400">(可选)</span></label>
<input type="text" class="proxy-input" id="proxyPass" placeholder="password" autocomplete="off">
</div>
</div>
</div>
<div class="proxy-extra-section">
<div class="proxy-row">
<div class="proxy-field">
<label class="input-label">IP有效期</label>
<div class="proxy-expire-options">
<label class="merge-option"><input type="radio" name="proxyExpire" value="10"><span>10天</span></label>
<label class="merge-option"><input type="radio" name="proxyExpire" value="30" checked><span>30天</span></label>
<label class="merge-option"><input type="radio" name="proxyExpire" value="custom"><span>自定义</span></label>
<input type="number" class="proxy-input proxy-input-mini" id="proxyExpireCustom" placeholder="天" min="1" style="display:none;">
</div>
</div>
<div class="proxy-field">
<label class="input-label">类型</label>
<div class="proxy-share-options">
<label class="merge-option"><input type="radio" name="proxyShare" value="exclusive" checked><span>独享</span></label>
<label class="merge-option"><input type="radio" name="proxyShare" value="shared"><span>共享</span></label>
</div>
</div>
</div>
<div class="proxy-row">
<div class="proxy-field">
<label class="input-label">购买日期</label>
<input type="date" class="proxy-input" id="proxyPurchaseDate">
</div>
<div class="proxy-field">
<label class="input-label">到期日期 <span style="color:#94a3b8;font-weight:400">(自动计算)</span></label>
<input type="text" class="proxy-input" id="proxyExpireDate" readonly style="background:#f8fafc;color:#64748b;">
</div>
</div>
</div>
<div class="paste-modal-hint" style="margin-top:10px;">
<i class="bi bi-info-circle"></i>
<span>也可直接粘贴:<code>ip:端口:账号:密码</code><code>socks5://user:pass@host:port</code></span>
</div>
<div class="proxy-raw-section">
<label class="input-label">快速粘贴</label>
<input type="text" class="proxy-input" id="proxyRaw" placeholder="粘贴完整代理字符串,自动解析" autocomplete="off">
</div>
<div class="proxy-preview" id="proxyPreview"></div>
<div class="paste-modal-buttons">
<button class="btn btn-cancel" id="clearProxyBtn" style="margin-right:auto;">清除代理</button>
<button class="btn btn-cancel" id="cancelProxyBtn">取消</button>
<button class="btn btn-primary" id="saveProxyBtn">
<i class="bi bi-check2"></i>
<span>保存</span>
</button>
</div>
</div>
</div>
<!-- Toast 提示 -->
<div class="toast-container" id="toastContainer"></div>
<!-- Loading 遮罩 -->
<div class="loading-overlay" id="loadingOverlay">
<div class="loading-spinner"></div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
<script src="script.js"></script>
</body>
</html>