This commit is contained in:
2026-06-12 14:27:19 +08:00
commit d8dccfc04c
12 changed files with 1796 additions and 0 deletions

View File

@@ -0,0 +1,132 @@
<!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="stylesheet" href="/static/css/style.css">
</head>
<body>
<div class="container">
<!-- 头部 -->
<header class="header">
<div class="header-icon">
<svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/>
<polyline points="17 8 12 3 7 8"/>
<line x1="12" y1="3" x2="12" y2="15"/>
</svg>
</div>
<h1>文字稿上传</h1>
<p class="subtitle">上传腾讯会议文字稿,自动归档到对应目录</p>
</header>
<!-- 上传表单 -->
<form id="uploadForm" class="form">
<!-- 姓名输入 -->
<div class="form-group">
<label for="name">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"/>
<circle cx="12" cy="7" r="4"/>
</svg>
上传者姓名
</label>
<input type="text" id="name" name="name" placeholder="请输入您的姓名" maxlength="20" autocomplete="off">
<span class="form-hint">2-20 个字符,支持中文、英文、数字和下划线</span>
</div>
<!-- 文件拖拽区 -->
<div class="form-group">
<label>
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/>
<polyline points="14 2 14 8 20 8"/>
<line x1="12" y1="18" x2="12" y2="12"/>
<line x1="9" y1="15" x2="15" y2="15"/>
</svg>
选择文件
</label>
<div id="dropzone" class="dropzone">
<input type="file" id="fileInput" multiple hidden>
<div class="dropzone-content">
<div class="dropzone-icon">
<svg width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/>
<polyline points="17 8 12 3 7 8"/>
<line x1="12" y1="3" x2="12" y2="15"/>
</svg>
</div>
<p class="dropzone-text">拖拽文件到此处,或 <span class="dropzone-link">点击选择</span></p>
<p class="dropzone-hint">支持 .txt .doc .docx .pdf .rtf .odt 等文字类文档<br>单文件 ≤ 20MB单次最多 9 个文件</p>
</div>
</div>
</div>
<!-- 文件列表 -->
<div id="fileList" class="file-list"></div>
<!-- 操作按钮 -->
<div class="form-actions">
<button type="submit" id="uploadBtn" class="btn btn-primary" disabled>
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/>
<polyline points="17 8 12 3 7 8"/>
<line x1="12" y1="3" x2="12" y2="15"/>
</svg>
开始上传
</button>
<button type="button" id="clearBtn" class="btn btn-secondary">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<polyline points="3 6 5 6 21 6"/>
<path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"/>
</svg>
清空列表
</button>
</div>
</form>
<!-- 上传结果 -->
<div id="resultPanel" class="result-panel"></div>
</div>
<!-- 页脚 -->
<footer class="footer">
<p>文件上传后自动归档至 NAS 对应目录</p>
</footer>
<!-- 验证码弹窗 -->
<div id="captchaModal" class="modal-overlay">
<div class="modal">
<div class="modal-header">
<h3>安全验证</h3>
<button type="button" id="modalClose" class="modal-close">
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/>
</svg>
</button>
</div>
<div class="modal-body">
<p class="modal-desc">请输入图中验证码以继续上传</p>
<div class="modal-captcha-row">
<img id="captchaImg" class="modal-captcha-img" src="/api/captcha" alt="验证码" title="点击刷新">
<button type="button" id="refreshCaptcha" class="btn-icon" title="换一张">
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<polyline points="23 4 23 10 17 10"/>
<path d="M20.49 15a9 9 0 1 1-2.12-9.36L23 10"/>
</svg>
</button>
</div>
<input type="text" id="captchaInput" class="modal-captcha-input" placeholder="请输入验证码" maxlength="4" autocomplete="off">
<p id="captchaError" class="modal-error"></p>
</div>
<div class="modal-footer">
<button type="button" id="modalCancel" class="btn btn-secondary">取消</button>
<button type="button" id="modalConfirm" class="btn btn-primary">确认上传</button>
</div>
</div>
</div>
<script src="/static/js/app.js"></script>
</body>
</html>