| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- <!DOCTYPE html>
- <html lang="zh-CN">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>PTZ 扫描轮询控制台</title>
- <link rel="stylesheet" href="/static/style.css">
- </head>
- <body>
- <div id="toolbar">
- <select id="group-select"></select>
- <button id="btn-scan">执行 360° 扫描</button>
- <button id="btn-poll-start">开始轮询</button>
- <button id="btn-poll-stop">停止轮询</button>
- <span id="status">状态:空闲</span>
- </div>
- <div id="video-grid"></div>
- <div id="panorama-panel">
- <div>
- <div id="sample-header">
- 扫描样本矩阵(同列同 P,同行同 T)
- <span id="zoom-controls">
- <button id="btn-zoom-out">-</button>
- <span id="zoom-level">100%</span>
- <button id="btn-zoom-in">+</button>
- <button id="btn-zoom-reset">重置</button>
- </span>
- </div>
- <div id="sample-grid-wrapper">
- <canvas id="sample-canvas"></canvas>
- </div>
- </div>
- <div id="point-list">
- <h3>扫描点设置</h3>
- <img id="selected-preview" src="" alt="选中/预览" style="width:100%;max-height:140px;object-fit:cover;background:#000;border-radius:6px;margin-bottom:10px;display:none;">
- <div id="point-form">
- <label>Pan: <input id="inp-pan" type="number" step="0.1"></label>
- <label>Tilt: <input id="inp-tilt" type="number" step="0.1"></label>
- <label>Zoom: <input id="inp-zoom" type="number" value="1"></label>
- <label>停留(s): <input id="inp-dwell" type="number" value="3" step="0.1"></label>
- <button id="btn-preview">球机预览</button>
- <button id="btn-add">保存扫描点</button>
- </div>
- <h4 style="margin:10px 0 6px 0;font-size:13px;color:#94a3b8;">已选扫描点</h4>
- <ul id="points"></ul>
- </div>
- </div>
- <div id="log-panel"></div>
- <script type="module" src="/static/app.js"></script>
- </body>
- </html>
|