239 lines
11 KiB
HTML
239 lines
11 KiB
HTML
<!-- templates/dashboard.html -->
|
||
<!DOCTYPE html>
|
||
<html lang="zh-CN">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>中文文本分类系统</title>
|
||
<!-- Bootstrap 5 CSS -->
|
||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet">
|
||
<!-- Font Awesome 图标 -->
|
||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
|
||
<!-- 自定义CSS -->
|
||
<link rel="stylesheet" href="{{ url_for('static', filename='css/dashboard.css') }}">
|
||
</head>
|
||
<body>
|
||
<!-- 顶部导航栏 -->
|
||
<nav class="navbar navbar-expand-lg fixed-top top-navbar">
|
||
<div class="container-fluid">
|
||
<!-- 侧边栏切换按钮 -->
|
||
<button class="btn btn-link text-white me-3 d-lg-none" id="sidebar-toggle">
|
||
<i class="fas fa-bars"></i>
|
||
</button>
|
||
|
||
<!-- 网站标题 -->
|
||
<a class="navbar-brand text-white" href="#">
|
||
<i class="fas fa-file-alt me-2"></i>
|
||
中文文本分类系统
|
||
</a>
|
||
|
||
<!-- 右侧用户信息 -->
|
||
<div class="ms-auto d-flex align-items-center user-dropdown">
|
||
<div class="dropdown">
|
||
<a class="nav-link dropdown-toggle text-white" href="#" id="userDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||
<i class="fas fa-user-circle me-1"></i>
|
||
<span>{{ session.user_name if session.user_name else session.user_email }}</span>
|
||
</a>
|
||
<ul class="dropdown-menu" aria-labelledby="userDropdown">
|
||
<li><a class="dropdown-item" href="#"><i class="fas fa-user me-2"></i>个人资料</a></li>
|
||
<li><hr class="dropdown-divider"></li>
|
||
<li><a class="dropdown-item" href="{{ url_for('auth.logout') }}"><i class="fas fa-sign-out-alt me-2"></i>退出登录</a></li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</nav>
|
||
|
||
<!-- 侧边栏 -->
|
||
<div class="sidebar">
|
||
<div class="px-3 mb-3">
|
||
<div class="text-muted small">导航菜单</div>
|
||
</div>
|
||
|
||
<ul class="nav flex-column mb-auto">
|
||
<li class="nav-item">
|
||
<a href="#" class="sidebar-link active" data-page="classify">
|
||
<i class="fas fa-file-alt"></i>
|
||
<span>文本分类</span>
|
||
</a>
|
||
</li>
|
||
<li class="nav-item">
|
||
<a href="#" class="sidebar-link" data-page="documents">
|
||
<i class="fas fa-list-alt"></i>
|
||
<span>已处理文本</span>
|
||
</a>
|
||
</li>
|
||
<li class="nav-item">
|
||
<a href="#" class="sidebar-link" data-page="batch">
|
||
<i class="fas fa-layer-group"></i>
|
||
<span>批量文本分类</span>
|
||
</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<!-- 主内容区 -->
|
||
<div class="main-content">
|
||
<!-- 内容区域 - 根据选择的页面显示不同内容 -->
|
||
<div id="page-content">
|
||
<!-- 文本分类页面 (默认显示) -->
|
||
<div class="page-section" id="classify-section">
|
||
<h2 class="mb-4">文本分类</h2>
|
||
|
||
<div class="content-card">
|
||
<div class="row">
|
||
<div class="col-md-6">
|
||
<div class="form-group mb-3">
|
||
<label for="text-input" class="form-label">输入文本内容</label>
|
||
<textarea class="form-control" id="text-input" rows="10" placeholder="请输入或粘贴需要分类的中文文本..."></textarea>
|
||
</div>
|
||
<div class="mb-3">
|
||
<button id="classify-text-btn" class="btn btn-primary me-2">
|
||
<i class="fas fa-search me-1"></i> 分类文本
|
||
</button>
|
||
<button id="clear-text-btn" class="btn btn-outline-secondary">
|
||
<i class="fas fa-eraser me-1"></i> 清空
|
||
</button>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="col-md-6">
|
||
<div class="border rounded p-3 h-100" id="classification-result">
|
||
<h5 class="text-center text-muted">
|
||
<i class="fas fa-info-circle me-2"></i>
|
||
分类结果将在这里显示
|
||
</h5>
|
||
<div class="text-center mt-4">
|
||
<i class="fas fa-arrow-left text-muted me-2"></i>
|
||
请在左侧输入文本或上传文件
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="content-card mt-4">
|
||
<h4 class="mb-3">上传文本文件</h4>
|
||
<div class="mb-3">
|
||
<div class="input-group">
|
||
<input type="file" class="form-control" id="file-upload" accept=".txt">
|
||
<button class="btn btn-primary" id="upload-file-btn">
|
||
<i class="fas fa-upload me-1"></i> 上传并分类
|
||
</button>
|
||
</div>
|
||
<div class="form-text">支持上传 .txt 格式的文本文件</div>
|
||
</div>
|
||
<div id="file-result" class="mt-3" style="display: none;">
|
||
<!-- 文件分类结果将在这里显示 -->
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- 已处理文本页面 (默认隐藏) -->
|
||
<div class="page-section d-none" id="documents-section">
|
||
<h2 class="mb-4">已处理文本</h2>
|
||
|
||
<div class="content-card">
|
||
<div class="row mb-3">
|
||
<div class="col-md-6">
|
||
<div class="input-group">
|
||
<label class="input-group-text" for="category-filter">分类筛选</label>
|
||
<select class="form-select" id="category-filter">
|
||
<option value="all" selected>全部</option>
|
||
<!-- 分类选项将通过JavaScript动态添加 -->
|
||
</select>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="col-md-6 text-md-end">
|
||
<div class="input-group justify-content-md-end">
|
||
<label class="input-group-text" for="per-page-select">每页显示</label>
|
||
<select class="form-select" style="max-width: 80px;" id="per-page-select">
|
||
<option value="10">10</option>
|
||
<option value="25">25</option>
|
||
<option value="50">50</option>
|
||
<option value="100">100</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="mb-3">
|
||
<button id="download-selected-btn" class="btn btn-success disabled">
|
||
<i class="fas fa-download me-1"></i> 下载选中文件
|
||
</button>
|
||
</div>
|
||
|
||
<div class="table-responsive">
|
||
<table class="table table-hover" id="documents-table">
|
||
<thead>
|
||
<tr>
|
||
<th width="40">
|
||
<div class="form-check">
|
||
<input class="form-check-input" type="checkbox" id="select-all-docs">
|
||
</div>
|
||
</th>
|
||
<th>文件名</th>
|
||
<th>分类</th>
|
||
<th>大小</th>
|
||
<th>分类时间</th>
|
||
<th>操作</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<!-- 文档列表将通过JavaScript动态添加 -->
|
||
<tr>
|
||
<td colspan="6" class="text-center py-4">
|
||
正在加载文档...
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
|
||
<div class="d-flex justify-content-between align-items-center mt-3" id="pagination-container">
|
||
<!-- 分页控件将通过JavaScript动态添加 -->
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- 批量文本分类页面 (默认隐藏) -->
|
||
<div class="page-section d-none" id="batch-section">
|
||
<h2 class="mb-4">批量文本分类</h2>
|
||
|
||
<div class="content-card">
|
||
<div class="text-center py-4 mb-4 border rounded">
|
||
<i class="fas fa-upload fa-3x mb-3 text-primary"></i>
|
||
<h4>上传压缩文件</h4>
|
||
<p class="text-muted">支持ZIP/RAR格式,最大10MB,包含多个TXT文件</p>
|
||
<div class="mb-3 mx-auto" style="max-width: 400px;">
|
||
<input type="file" class="form-control" id="batch-file-upload" accept=".zip,.rar">
|
||
</div>
|
||
<button class="btn btn-primary" id="upload-batch-btn">
|
||
<i class="fas fa-cogs me-1"></i> 上传并批量分类
|
||
</button>
|
||
</div>
|
||
|
||
<div id="batch-result" style="display: none;">
|
||
<!-- 批量处理结果将在这里显示 -->
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- 加载指示器 -->
|
||
<div class="spinner-overlay" id="loading-overlay">
|
||
<div class="spinner-border text-primary" role="status" style="width: 3rem; height: 3rem;">
|
||
<span class="visually-hidden">加载中...</span>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Bootstrap 5 JS with Popper -->
|
||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
|
||
<!-- 自定义JavaScript -->
|
||
<script src="{{ url_for('static', filename='js/dashboard.js') }}"></script>
|
||
</body>
|
||
</html>
|
||
|