优化修复

This commit is contained in:
Alex Yang
2026-01-17 01:18:03 +08:00
parent cdac4fcf43
commit ac96c7c10b
57 changed files with 895 additions and 1252132 deletions

View File

@@ -48,6 +48,12 @@
<span>Hosts管理</span>
</a>
</li>
<li>
<a href="#gfwlist" class="flex items-center px-4 py-3 text-gray-700 hover:bg-gray-100 rounded-md transition-all">
<i class="fa fa-globe mr-3 text-lg"></i>
<span>GFWList管理</span>
</a>
</li>
<li>
<a href="#query" class="flex items-center px-4 py-3 text-gray-700 hover:bg-gray-100 rounded-md transition-all">
@@ -112,6 +118,12 @@
<span>Hosts管理</span>
</a>
</li>
<li>
<a href="#gfwlist" class="flex items-center px-4 py-3 text-gray-700 hover:bg-gray-100 rounded-md transition-all">
<i class="fa fa-globe mr-3 text-lg"></i>
<span>GFWList管理</span>
</a>
</li>
<li>
<a href="#query" class="flex items-center px-4 py-3 text-gray-700 hover:bg-gray-100 rounded-md transition-all">
@@ -163,7 +175,7 @@
<!-- 账户下拉菜单 -->
<div class="relative group" id="account-dropdown">
<button class="flex items-center p-2 rounded-full hover:bg-gray-100 transition-colors focus:outline-none">
<img src="https://picsum.photos/id/1005/40/40" alt="用户头像" class="w-8 h-8 rounded-full">
<img src="images/user.jpg" alt="用户头像" class="w-8 h-8 rounded-full">
<span class="ml-2 hidden md:block">管理员</span>
<i class="fa fa-caret-down ml-1 text-xs hidden md:block"></i>
</button>
@@ -1036,9 +1048,98 @@
</div>
</div>
<div id="gfwlist-content" class="hidden">
<div class="bg-white rounded-lg p-6 card-shadow">
<h3 class="text-lg font-semibold mb-6">GFWList管理</h3>
<form id="gfwlist-form">
<div class="mb-8">
<h4 class="text-md font-medium mb-4">基本设置</h4>
<div class="grid grid-cols-1 gap-6">
<div>
<div class="flex items-center justify-between">
<div>
<label for="gfwlist-enabled" class="block text-sm font-medium text-gray-700">启用GFWList</label>
<p class="mt-1 text-xs text-gray-500">启用后GFWList中的域名将被解析到指定的目标IP</p>
</div>
<button id="gfwlist-enabled" type="button" class="toggle-btn bg-gray-300 hover:bg-gray-400 text-white font-medium py-1 px-3 rounded-md transition-colors duration-200">
<i class="fa fa-toggle-off"></i>
</button>
</div>
</div>
</div>
</div>
<div class="mb-8">
<h4 class="text-md font-medium mb-4">GFWList解析目标IP</h4>
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
<div>
<label for="gfwlist-target-ip" class="block text-sm font-medium text-gray-700 mb-1">目标IP地址</label>
<input type="text" id="gfwlist-target-ip" class="w-full px-4 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent" placeholder="127.0.0.1">
<p class="mt-1 text-xs text-gray-500">GFWList中的域名将被解析到这个IP</p>
</div>
</div>
</div>
<div class="mb-8">
<h4 class="text-md font-medium mb-4">通行网站</h4>
<p class="text-sm text-gray-500 mb-4">开启以下开关后对应域名将使用GFWList目标IP进行解析</p>
<div class="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-4 gap-4">
<div class="bg-gray-50 p-4 rounded-lg">
<div class="flex items-center justify-between">
<div>
<span class="text-sm font-medium text-gray-700">谷歌 (Google)</span>
</div>
<button id="gfwlist-google" type="button" class="toggle-btn bg-gray-300 hover:bg-gray-400 text-white font-medium py-1 px-3 rounded-md transition-colors duration-200">
<i class="fa fa-toggle-off"></i>
</button>
</div>
</div>
<div class="bg-gray-50 p-4 rounded-lg">
<div class="flex items-center justify-between">
<div>
<span class="text-sm font-medium text-gray-700">YouTube</span>
</div>
<button id="gfwlist-youtube" type="button" class="toggle-btn bg-gray-300 hover:bg-gray-400 text-white font-medium py-1 px-3 rounded-md transition-colors duration-200">
<i class="fa fa-toggle-off"></i>
</button>
</div>
</div>
<div class="bg-gray-50 p-4 rounded-lg">
<div class="flex items-center justify-between">
<div>
<span class="text-sm font-medium text-gray-700">Facebook</span>
</div>
<button id="gfwlist-facebook" type="button" class="toggle-btn bg-gray-300 hover:bg-gray-400 text-white font-medium py-1 px-3 rounded-md transition-colors duration-200">
<i class="fa fa-toggle-off"></i>
</button>
</div>
</div>
<div class="bg-gray-50 p-4 rounded-lg">
<div class="flex items-center justify-between">
<div>
<span class="text-sm font-medium text-gray-700">X (Twitter)</span>
</div>
<button id="gfwlist-twitter" type="button" class="toggle-btn bg-gray-300 hover:bg-gray-400 text-white font-medium py-1 px-3 rounded-md transition-colors duration-200">
<i class="fa fa-toggle-off"></i>
</button>
</div>
</div>
</div>
</div>
<div class="flex justify-end">
<button type="button" id="gfwlist-save-btn" class="px-6 py-2 bg-primary text-white rounded-md hover:bg-primary/90 focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent">
保存配置
</button>
</div>
</form>
</div>
</div>
<div id="config-content" class="hidden">
<!-- 系统设置页面内容 -->
<div class="bg-white rounded-lg p-6 card-shadow">
<div class="bg-white rounded-lg p-6 card-shadow max-w-3xl">
<h3 class="text-lg font-semibold mb-6">系统设置</h3>
<!-- 配置表单 -->
@@ -1052,23 +1153,42 @@
<input type="number" id="dns-port" class="w-full px-4 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent" placeholder="53">
</div>
<div class="md:col-span-2">
<label for="dns-upstream-servers" class="block text-sm font-medium text-gray-700 mb-1">上游DNS服务器 (逗号分隔)</label>
<input type="text" id="dns-upstream-servers" class="w-full px-4 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent" placeholder="8.8.8.8, 1.1.1.1">
<label for="dns-upstream-servers" class="block text-sm font-medium text-gray-700 mb-1">上游DNS服务器 (每行一个)</label>
<textarea id="dns-upstream-servers" rows="4" class="w-full px-4 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent" placeholder="8.8.8.8&#10;1.1.1.1"></textarea>
</div>
<div>
<label for="dns-dnssec-upstream-servers" class="block text-sm font-medium text-gray-700 mb-1">DNSSEC上游DNS服务器 (逗号分隔)</label>
<input type="text" id="dns-dnssec-upstream-servers" class="w-full px-4 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent" placeholder="8.8.8.8, 1.1.1.1">
<label for="dns-dnssec-upstream-servers" class="block text-sm font-medium text-gray-700 mb-1">DNSSEC上游DNS服务器 (每行一个)</label>
<textarea id="dns-dnssec-upstream-servers" rows="4" class="w-full px-4 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent" placeholder="8.8.8.8&#10;1.1.1.1"></textarea>
</div>
<div>
<label for="dns-save-interval" class="block text-sm font-medium text-gray-700 mb-1">保存间隔 (秒)</label>
<input type="number" id="dns-save-interval" class="w-full px-4 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent" placeholder="300">
</div>
<div class="md:col-span-2">
<label class="flex items-center space-x-2">
<input type="checkbox" id="dns-enable-ipv6" class="rounded text-primary focus:ring-primary">
<span class="text-sm font-medium text-gray-700">启用IPv6解析AAAA记录</span>
</label>
</div>
<div>
<label for="dns-cache-mode" class="block text-sm font-medium text-gray-700 mb-1">缓存模式</label>
<select id="dns-cache-mode" class="w-full px-4 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent">
<option value="memory">内存缓存</option>
<option value="file">文件缓存</option>
</select>
</div>
<div>
<label for="dns-cache-size" class="block text-sm font-medium text-gray-700 mb-1">缓存大小 (MB)</label>
<input type="number" id="dns-cache-size" class="w-full px-4 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent" placeholder="100">
</div>
<div>
<label for="dns-max-cache-ttl" class="block text-sm font-medium text-gray-700 mb-1">最大缓存TTL (分钟)</label>
<input type="number" id="dns-max-cache-ttl" class="w-full px-4 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent" placeholder="120">
</div>
<div>
<label for="dns-min-cache-ttl" class="block text-sm font-medium text-gray-700 mb-1">最小缓存TTL (分钟)</label>
<input type="number" id="dns-min-cache-ttl" class="w-full px-4 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent" placeholder="5">
</div>
<div class="md:col-span-2">
<label class="flex items-center space-x-2">
<input type="checkbox" id="dns-enable-ipv6" class="rounded text-primary focus:ring-primary">
<span class="text-sm font-medium text-gray-700">启用IPv6解析AAAA记录</span>
</label>
</div>
</div>
</div>
@@ -1093,30 +1213,18 @@
<div class="mt-4">
<label for="shield-block-method" class="block text-sm font-medium text-gray-700 mb-1">屏蔽方法</label>
<select id="shield-block-method" class="w-full px-4 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent">
<option value="0.0.0.0">返回0.0.0.0</option>
<option value="NXDOMAIN">返回NXDOMAIN</option>
<option value="refused">返回refused</option>
<option value="emptyIP">返回空IP</option>
<option value="emptyIP">返回0.0.0.0</option>
<option value="customIP">返回自定义IP</option>
</select>
</div>
<div class="mt-4">
<div class="mt-4" id="custom-block-ip-container">
<label for="shield-custom-block-ip" class="block text-sm font-medium text-gray-700 mb-1">自定义屏蔽IP</label>
<input type="text" id="shield-custom-block-ip" class="w-full px-4 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent" placeholder="127.0.0.1">
</div>
</div>
<!-- GFWList配置 -->
<div class="mb-8">
<h4 class="text-md font-medium mb-4">GFWList配置</h4>
<div>
<label for="shield-gfwlist-ip" class="block text-sm font-medium text-gray-700 mb-1">GFWList解析目标IP</label>
<input type="text" id="shield-gfwlist-ip" class="w-full px-4 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent" placeholder="127.0.0.1">
</div>
<div class="mt-4">
<label for="shield-gfwlist-content" class="block text-sm font-medium text-gray-700 mb-1">GFWList内容</label>
<textarea id="shield-gfwlist-content" rows="10" class="w-full px-4 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent" placeholder="输入GFWList规则内容..."></textarea>
</div>
</div>
<!-- 操作按钮 -->