eight-hourr/frontend/compbase.html

88 lines
3.3 KiB
HTML

<!DOCTYPE html>
<html lang="zh-TW">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>刷卡補填 · 吉八小</title>
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link rel="preconnect" href="https://font.emtech.cc" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet" />
<link href="https://font.emtech.cc/css/TaipeiSansTC.css" rel="stylesheet" />
<script>
(function () {
var p = localStorage.getItem("pts_theme") || "system";
var dark = window.matchMedia("(prefers-color-scheme: dark)").matches;
var t = p === "light" || p === "dark" ? p : dark ? "dark" : "light";
document.documentElement.setAttribute("data-theme", t);
document.documentElement.classList.toggle("dark", t === "dark");
})();
</script>
<link rel="stylesheet" href="/static/style.css" />
</head>
<body>
<div class="container narrow">
<header class="topbar compact">
<div>
<h1>刷卡補填</h1>
<p class="subtitle" id="connLine">檢查 CompBase 連線…</p>
</div>
<div class="topbar-actions">
<div class="theme-toggle" title="外觀">
<button type="button" class="theme-btn" data-theme-option="light"></button>
<button type="button" class="theme-btn" data-theme-option="dark"></button>
<button type="button" class="theme-btn" data-theme-option="system">系統</button>
</div>
<nav class="nav">
<a href="/" class="nav-link">填工時</a>
<a href="/compbase" class="nav-link active">刷卡補填</a>
<a href="/settings" class="nav-link">設定</a>
</nav>
</div>
</header>
<section class="card">
<h2>一鍵補漏刷退</h2>
<p class="hint">
登入 CompBase → 出勤檢視 → 找出「應刷未刷」→ 自動選正常下班時間送出。
與 PTS 工時無關;預設使用設定裡的 PTS 帳密做 NTLM。
</p>
<div class="form-row">
<label>
近 N 天
<input type="number" id="days" min="1" max="62" value="14" />
</label>
<label>
刷退時間
<select id="outTimeMode">
<option value="expected">正常工時下班(推薦)</option>
<option value="latest_option">下拉最後一個可用時間</option>
</select>
</label>
</div>
<label class="checkbox dry-run-row">
<input type="checkbox" id="dryRun" checked />
試跑(只掃描/預覽,不送出)
</label>
<div class="actions">
<button type="button" id="scanBtn" class="btn secondary">掃描</button>
<button type="button" id="fillBtn" class="btn primary">一鍵補填</button>
</div>
<p id="actionStatus" class="settings-status"></p>
</section>
<section class="card">
<h2>結果</h2>
<div id="resultView" class="plan-view">
<p class="hint">選天數後按「掃描」或「一鍵補填」。</p>
</div>
</section>
</div>
<script src="/static/common.js"></script>
<script src="/static/compbase.js"></script>
</body>
</html>