重构:模块化项目结构,分离配置、路由、摄像头管理器,添加健康检查,更新Dockerfile和启动脚本
This commit is contained in:
53
app/templates/index.html
Normal file
53
app/templates/index.html
Normal file
@@ -0,0 +1,53 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>多摄像头实时监控 - AdaOps</title>
|
||||
<link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}">
|
||||
</head>
|
||||
<body>
|
||||
<div class="controls">
|
||||
<button class="btn btn-refresh" onclick="refreshAllCameras()">🔄 刷新所有</button>
|
||||
<div class="status-info">
|
||||
<span class="status-item">时间: <span id="currentTime">{{ current_time }}</span></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="camera-grid" id="cameraGrid">
|
||||
{% for camera in cameras %}
|
||||
<div class="camera-item" id="camera-{{ camera.id }}">
|
||||
<div class="camera-header">
|
||||
<div class="camera-title">{{ camera.name }}</div>
|
||||
<div class="camera-status" id="status-{{ camera.id }}">✅ 在线</div>
|
||||
</div>
|
||||
<div class="camera-frame-container">
|
||||
<iframe
|
||||
class="camera-frame"
|
||||
src="{{ camera.url }}"
|
||||
allow="autoplay; fullscreen"
|
||||
allowfullscreen
|
||||
id="frame-{{ camera.id }}"
|
||||
loading="lazy">
|
||||
</iframe>
|
||||
</div>
|
||||
<div class="camera-controls-combined" id="controls-{{ camera.id }}">
|
||||
<button class="cam-btn" onclick="refreshCamera({{ camera.id }})">刷新</button>
|
||||
<button class="cam-btn cam-btn-fullscreen" onclick="toggleFullscreen({{ camera.id }})">全屏</button>
|
||||
<button class="selector-btn active" onclick="switchCameraNumber({{ camera.id }}, 'mixed')">混合</button>
|
||||
<button class="selector-btn" onclick="switchCameraNumber({{ camera.id }}, 0)">0</button>
|
||||
<button class="selector-btn" onclick="switchCameraNumber({{ camera.id }}, 1)">1</button>
|
||||
<button class="selector-btn" onclick="switchCameraNumber({{ camera.id }}, 2)">2</button>
|
||||
<button class="selector-btn" onclick="switchCameraNumber({{ camera.id }}, 3)">3</button>
|
||||
<button class="selector-btn" onclick="switchCameraNumber({{ camera.id }}, 4)">4</button>
|
||||
<button class="selector-btn" onclick="switchCameraNumber({{ camera.id }}, 5)">5</button>
|
||||
<button class="selector-btn" onclick="switchCameraNumber({{ camera.id }}, 6)">6</button>
|
||||
<button class="selector-btn" onclick="switchCameraNumber({{ camera.id }}, 7)">7</button>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
<script src="{{ url_for('static', filename='js/app.js') }}"></script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user