Files
doc-uploader/file-upload-site/templates/index.html
2026-06-12 14:27:19 +08:00

133 lines
6.7 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>文字稿上传</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>