simple-admin/simpleadmin/www/watchcat.html
2024-12-07 06:38:26 +08:00

276 lines
9.6 KiB
HTML
Raw Permalink 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="en" data-bs-theme="light">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>模块管理</title>
<!-- Import all the bootstrap css files from css folder -->
<link rel="stylesheet" href="css/styles.css" />
<link rel="stylesheet" href="css/bootstrap.min.css" />
<!-- Logo -->
<link rel="simpleadmin-logo" href="favicon.ico" />
<!-- Import BootStrap Javascript -->
<script src="js/bootstrap.bundle.min.js"></script>
<script src="js/alpinejs.min.js" defer></script>
<style>
.form-switch .form-check-input {
width: 2.4em;
height: 1.2em;
}
</style>
</head>
<body>
<main>
<div class="container my-4" x-data="simpleWatchCat()">
<nav class="navbar navbar-expand-lg mt-2">
<div class="container-fluid">
<a class="navbar-brand" href="/"
><span class="mb-0 h4 fw-bold">模块管理</span></a
>
<button
class="navbar-toggler"
type="button"
data-bs-toggle="collapse"
data-bs-target="#navbarText"
aria-controls="navbarText"
aria-expanded="false"
aria-label="Toggle navigation"
>
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarText">
<ul class="navbar-nav me-auto mb-2 ml-4 mb-lg-0">
<li class="nav-item">
<a class="nav-link" href="/">首页</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/network.html">网络</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/scanner.html">扫描</a>
</li>
<li class="nav-item">
<a
class="nav-link active"
href="/settings.html"
aria-current="page"
>设置</a
>
</li>
<li class="nav-item">
<a class="nav-link" href="/sms.html">短信</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/console">控制台</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/deviceinfo.html"
>设备信息</a
>
</li>
</ul>
<span class="navbar-text">
<button class="btn btn-link text-reset" id="darkModeToggle">
暗黑模式
</button>
</span>
</div>
</div>
</nav>
<div class="row mt-3 mb-4">
<div class="col">
<div class="card">
<div class="card-header">看门狗</div>
<div class="card-body">
<div class="card-text">
<div class="row mt-3 mb-5 align-content-center mx-4">
<div class="col">
<div class="mt-3">
<label>启用看门狗</label>
</div>
</div>
<div class="col-5">
<div class="mt-2">
<div class="form-check form-switch form-switch-lg">
<input
class="form-check-input"
type="checkbox"
role="switch"
id="watchCatSwitch"
x-model="watchCatStatus"
:disabled="!isFormComplete"
x-on:change="setWatchCatSettings"
/>
</div>
</div>
</div>
</div>
<div class="row mt-3 mb-3 align-items-center mx-4">
<div class="col">
<div class="mt-3 mb-4">
<label>跟踪IP</label>
</div>
<div class="mt-3 mb-4">
<label>Ping超时时间</label>
</div>
<div class="mt-3 mb-4">
<label>Ping失败次数</label>
</div>
</div>
<div class="col-5">
<div class="mt-3 mb-4">
<select
class="form-select"
aria-label="选择要Ping的站点"
x-model="trackIP"
>
<option selected>选择IP</option>
<option value="1.1.1.1">1.1.1.1</option>
<option value="8.8.8.8">8.8.8.8</option>
<option value="9.9.9.9">9.9.9.9</option>
</select>
</div>
<div class="mt-3 mb-4">
<input
type="number"
class="form-control"
aria-label="Ping超时时间"
aria-describedby="inputGroup-sizing-default"
placeholder="输入Ping超时时间"
x-model="pingTimeout"
/>
</div>
<div class="mt-3 mb-4">
<input
type="number"
class="form-control"
aria-label="输入数值"
aria-describedby="inputGroup-sizing-default"
placeholder="输入Ping失败次数"
x-model="pingFailureCount"
/>
</div>
</div>
</div>
</div>
</div>
<div class="card-footer">
开发中,敬请期待...
</div>
</div>
</div>
</div>
<div class="row mt-3 mb-3">
<div class="col">
<div class="card">
<div class="card-header">看门狗日志</div>
<div class="card-body">
<div class="card-text">
<div class="form-floating">
<textarea
class="form-control"
placeholder="日志内容"
id="floatingTextarea2"
style="height: 100px"
x-text="response"
readonly
></textarea>
<label for="floatingTextarea2">日志</label>
</div>
</div>
</div>
<div class="card-footer">
成功启用看门狗时不会提供日志。
</div>
</div>
</div>
</div>
</div>
</main>
<script src="js/dark-mode.js"></script>
<script>
function simpleWatchCat() {
return {
watchCatStatus: false, // 初始化为false未启用
trackIP: "",
pingTimeout: "",
pingFailureCount: "",
response: "",
setWatchCatSettings() {
fetch(
"/cgi-bin/watchcat_maker?" +
new URLSearchParams({
WATCHCAT_ENABLED: this.watchCatStatus ? "enable" : "disable",
TRACK_IP: this.trackIP,
PING_TIMEOUT: this.pingTimeout,
PING_FAILURE_COUNT: this.pingFailureCount,
})
)
.then((response) => response.text()) // 转换响应为文本
.then((data) => {
this.response = data; // 存储响应数据
console.log(data); // 记录响应用于调试
})
.then(() => {
this.fetchWatchCatSettings();
})
.catch((error) => {
console.error("Error:", error); // 处理错误
this.response = "发生错误。";
});
},
// 计算属性,检查表单是否填写完整
get isFormComplete() {
return (
this.trackIP !== "" &&
this.pingTimeout !== "" &&
this.pingFailureCount !== ""
);
},
// 获取当前看门狗设置
fetchWatchCatSettings() {
fetch("/cgi-bin/get_watchcat_status")
.then((response) => {
if (!response.ok) {
throw new Error("网络响应异常");
}
return response.json(); // 解析响应为JSON
})
.then((data) => {
console.log(data); // 记录解析的数据用于调试
// 检查JSON是否为空
if (data) {
this.watchCatStatus = data.enabled === true;
this.trackIP = data.track_ip;
this.pingTimeout = data.ping_timeout;
this.pingFailureCount = data.ping_failure_count;
}
})
.catch((error) => {
console.error("Error:", error); // 处理错误
this.response = "发生错误。";
});
},
init() {
this.fetchWatchCatSettings();
},
};
}
</script>
</body>
</html>