2025-04-09 11:13:17 +08:00

193 lines
12 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="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css">
<link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}">
</head>
<body>
<div class="container">
<header class="text-center my-5">
<h1>相似图片搜索系统</h1>
<p class="lead">基于百度AI开放平台的相似图片搜索API</p>
</header>
<div class="row">
<div class="col-md-12 mb-4">
<ul class="nav nav-tabs" id="myTab" role="tablist">
<li class="nav-item" role="presentation">
<button class="nav-link active" id="upload-tab" data-bs-toggle="tab" data-bs-target="#upload" type="button" role="tab" aria-controls="upload" aria-selected="true">图片入库</button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link" id="search-tab" data-bs-toggle="tab" data-bs-target="#search" type="button" role="tab" aria-controls="search" aria-selected="false">图片搜索</button>
</li>
<li class="nav-item" role="presentation">
<button class="nav-link" id="manage-tab" data-bs-toggle="tab" data-bs-target="#manage" type="button" role="tab" aria-controls="manage" aria-selected="false">图库管理</button>
</li>
</ul>
<div class="tab-content" id="myTabContent">
<!-- 图片入库 -->
<div class="tab-pane fade show active" id="upload" role="tabpanel" aria-labelledby="upload-tab">
<div class="card mt-3">
<div class="card-body">
<h5 class="card-title">图片入库</h5>
<form id="uploadForm" enctype="multipart/form-data">
<div class="mb-3">
<label for="uploadFile" class="form-label">选择图片</label>
<input class="form-control" type="file" id="uploadFile" name="file" accept="image/*" required>
<div class="form-text">支持JPG、PNG、BMP格式最短边至少50px最长边最大4096px</div>
</div>
<div class="mb-3">
<label for="imageName" class="form-label">图片名称</label>
<input type="text" class="form-control" id="imageName" name="name" required>
</div>
<div class="mb-3">
<label for="imageId" class="form-label">图片ID</label>
<input type="text" class="form-control" id="imageId" name="id" required>
<div class="form-text">用于关联至本地图库的标识</div>
</div>
<div class="mb-3">
<label for="imageTags" class="form-label">标签</label>
<input type="text" class="form-control" id="imageTags" name="tags" placeholder="例如1,2">
<div class="form-text">最多2个标签用逗号分隔</div>
</div>
<div class="mb-3">
<div class="upload-preview-container">
<img id="uploadPreview" class="img-preview d-none" src="#" alt="预览图">
</div>
</div>
<button type="submit" class="btn btn-primary">上传入库</button>
</form>
<div id="uploadResult" class="mt-3"></div>
</div>
</div>
</div>
<!-- 图片搜索 -->
<div class="tab-pane fade" id="search" role="tabpanel" aria-labelledby="search-tab">
<div class="card mt-3">
<div class="card-body">
<h5 class="card-title">图片搜索</h5>
<form id="searchForm" enctype="multipart/form-data">
<div class="mb-3">
<label for="searchFile" class="form-label">选择图片</label>
<input class="form-control" type="file" id="searchFile" name="file" accept="image/*" required>
</div>
<div class="mb-3">
<label for="searchTags" class="form-label">标签过滤</label>
<input type="text" class="form-control" id="searchTags" name="tags" placeholder="例如1,2">
<div class="form-text">可选,用于按标签筛选结果</div>
</div>
<div class="mb-3">
<label class="form-label">标签逻辑</label>
<div class="form-check">
<input class="form-check-input" type="radio" name="tag_logic" id="tagLogicAnd" value="0" checked>
<label class="form-check-label" for="tagLogicAnd">
AND同时满足所有标签
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="radio" name="tag_logic" id="tagLogicOr" value="1">
<label class="form-check-label" for="tagLogicOr">
OR满足任一标签
</label>
</div>
</div>
<div class="mb-3">
<div class="search-preview-container">
<img id="searchPreview" class="img-preview d-none" src="#" alt="预览图">
</div>
</div>
<button type="submit" class="btn btn-primary">搜索</button>
</form>
<div id="searchResult" class="mt-3">
<div id="searchStats" class="mb-3 d-none">
<h6>搜索结果:<span id="resultCount">0</span> 个匹配项</h6>
</div>
<div id="searchResultList" class="row"></div>
</div>
</div>
</div>
</div>
<!-- 图库管理 -->
<div class="tab-pane fade" id="manage" role="tabpanel" aria-labelledby="manage-tab">
<div class="card mt-3">
<div class="card-body">
<h5 class="card-title">图库管理</h5>
<p>此功能需要先搜索图片,然后可以对搜索结果进行管理操作。</p>
<div class="alert alert-info">
提示百度相似图片搜索API不提供直接查看所有图库内容的功能需要通过搜索相似图片来获取图库内容。
</div>
<div id="manageInfo" class="mt-3">
<p>请先在"图片搜索"标签页进行搜索,然后可以对搜索结果进行管理。</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- 更新图片信息模态框 -->
<div class="modal fade" id="updateModal" tabindex="-1" aria-labelledby="updateModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="updateModalLabel">更新图片信息</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<form id="updateForm">
<input type="hidden" id="updateContSign" name="cont_sign">
<div class="mb-3">
<label for="updateName" class="form-label">图片名称</label>
<input type="text" class="form-control" id="updateName" name="name" required>
</div>
<div class="mb-3">
<label for="updateId" class="form-label">图片ID</label>
<input type="text" class="form-control" id="updateId" name="id" required>
</div>
<div class="mb-3">
<label for="updateTags" class="form-label">标签</label>
<input type="text" class="form-control" id="updateTags" name="tags" placeholder="例如1,2">
<div class="form-text">最多2个标签用逗号分隔</div>
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">取消</button>
<button type="button" class="btn btn-primary" id="updateSubmit">保存更改</button>
</div>
</div>
</div>
</div>
<!-- 确认删除模态框 -->
<div class="modal fade" id="deleteModal" tabindex="-1" aria-labelledby="deleteModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="deleteModalLabel">确认删除</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<p>确定要删除这张图片吗?此操作不可撤销。</p>
<input type="hidden" id="deleteContSign">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">取消</button>
<button type="button" class="btn btn-danger" id="deleteSubmit">删除</button>
</div>
</div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
<script src="{{ url_for('static', filename='js/main.js') }}"></script>
</body>
</html>