From 0559cc55bd96fdd6d035eca50a794dc5fd06780b Mon Sep 17 00:00:00 2001 From: JianFeeeee Date: Thu, 3 Sep 2026 08:45:22 +0800 Subject: [PATCH] =?UTF-8?q?fix(web):=20=E7=AA=84=E5=B1=8F=E5=BA=95?= =?UTF-8?q?=E9=83=A8=E5=AF=BC=E8=88=AA=E6=A0=8F=E9=94=99=E4=BD=8D=E5=88=B0?= =?UTF-8?q?=E9=A1=B6=E9=83=A8=20=E2=80=94=20=E9=A1=B6=E6=A0=8F=20backdrop-?= =?UTF-8?q?filter=20=E5=88=9B=E5=BB=BA=E4=BA=86=E5=8C=85=E5=90=AB=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit .sb-nav 用 position:fixed;bottom:0 想贴视口底部,但父元素 .sidebar 带 backdrop-filter。backdrop-filter 与 transform/filter 同理,会为后代的 position:fixed 创建【包含块】—— 于是 bottom:0 变成相对顶栏下沿定位而不是 视口,tab bar 贴在顶栏正下方,看起来就是固定在屏幕顶部。 窄屏下关掉顶栏的 backdrop-filter,改用近实色底 color-mix(var(--w4f-card-solid) 92%, transparent);玻璃模糊保留在 .sb-nav 自身(元素自己的 backdrop-filter 不影响自己的定位)。 顺带 bump 到 0.1.2(version 包 / release.sh / build_installers.sh / rpm spec + changelog / README 安装示例文件名)。 验证:tsc --noEmit 通过、npm run build 通过;产物 CSS 中确认 720px 段的 .sidebar 已含 backdrop-filter:none;三节点部署后 /status 报告 0.1.2, 环正常(cycle 推进、pending=0、5 条转发 frpc 进程与 topology 归属一致)。 --- README.md | 12 ++++++------ internal/version/version.go | 4 ++-- packaging/rpm/webui4frpc.spec | 7 ++++++- scripts/build_installers.sh | 2 +- scripts/release.sh | 4 ++-- web/src/App.vue | 9 +++++++++ 6 files changed, 26 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 09ab245..3270f81 100644 --- a/README.md +++ b/README.md @@ -79,7 +79,7 @@ cd web && npm run build && rm -rf internal/httpapi/dist && cp -r web/dist intern ### Linux (Debian / Ubuntu) ```bash -sudo dpkg -i webui4frpc-0.1.1-linux-amd64.deb # 或 linux-arm64.deb +sudo dpkg -i webui4frpc-0.1.2-linux-amd64.deb # 或 linux-arm64.deb sudo nano /etc/webui4frpc/webui4frpc.env # 改掉默认密码 sudo systemctl restart webui4frpc ``` @@ -87,7 +87,7 @@ sudo systemctl restart webui4frpc ### Linux (RHEL / Fedora / openEuler / 默认 / 龙蜥) ```bash -sudo rpm -i webui4frpc-0.1.1-linux-x86_64.rpm +sudo rpm -i webui4frpc-0.1.2-linux-x86_64.rpm sudo vi /etc/webui4frpc/webui4frpc.env sudo systemctl enable --now webui4frpc ``` @@ -97,7 +97,7 @@ sudo systemctl enable --now webui4frpc ### Windows -双击 `webui4frpc-0.1.1-windows-amd64-setup.exe`(ARM 设备用 `windows-arm64-setup.exe`)。 +双击 `webui4frpc-0.1.2-windows-amd64-setup.exe`(ARM 设备用 `windows-arm64-setup.exe`)。 安装向导会询问监听地址与管理员凭据,完成后: - 程序装到 `C:\Program Files\webui4frpc` @@ -107,8 +107,8 @@ sudo systemctl enable --now webui4frpc ### macOS ```bash -sudo installer -pkg webui4frpc-0.1.1-darwin-arm64.pkg -target / # Apple Silicon -sudo installer -pkg webui4frpc-0.1.1-darwin-amd64.pkg -target / # Intel +sudo installer -pkg webui4frpc-0.1.2-darwin-arm64.pkg -target / # Apple Silicon +sudo installer -pkg webui4frpc-0.1.2-darwin-amd64.pkg -target / # Intel ``` 或直接双击 `.pkg` 走图形安装器。安装后 launchd 开机自启,配置在 @@ -126,7 +126,7 @@ sudo launchctl kickstart -k system/com.jianfeeeee.webui4frpc 不想装服务只想跑一下,用对应的 `.tar.gz` / `.zip`,解压即用: ```bash -tar xzf webui4frpc-0.1.1-linux-amd64.tar.gz +tar xzf webui4frpc-0.1.2-linux-amd64.tar.gz ./webui4frpc -addr 127.0.0.1:7500 -user admin -password 你的密码 -workdir ./data ``` diff --git a/internal/version/version.go b/internal/version/version.go index 592f870..021724a 100644 --- a/internal/version/version.go +++ b/internal/version/version.go @@ -2,11 +2,11 @@ // // Value is overridable at build time so release artifacts carry the real tag: // -// go build -ldflags="-X webui4frpc/internal/version.Version=0.1.1" ./cmd/webui4frpc +// go build -ldflags="-X webui4frpc/internal/version.Version=0.1.2" ./cmd/webui4frpc // // Kept in its own package because both cmd/ and internal/httpapi report it // (main can't be imported, and httpapi must not depend on cmd). package version // Version is the running build's semantic version, without a leading "v". -var Version = "0.1.1" +var Version = "0.1.2" diff --git a/packaging/rpm/webui4frpc.spec b/packaging/rpm/webui4frpc.spec index fdf0102..32a41a2 100644 --- a/packaging/rpm/webui4frpc.spec +++ b/packaging/rpm/webui4frpc.spec @@ -1,5 +1,5 @@ Name: webui4frpc -Version: %{?_w4f_version}%{!?_w4f_version:0.1.1} +Version: %{?_w4f_version}%{!?_w4f_version:0.1.2} Release: 1%{?dist} Summary: Visual frpc controller with token-ring cluster License: MIT @@ -67,6 +67,11 @@ fi %doc %{_docdir}/webui4frpc/README.md %changelog +* Wed Sep 03 2026 JianFeeeee - 0.1.2-1 +- 修复窄屏底部导航栏错位到顶部:顶栏的 backdrop-filter 会为 + position:fixed 后代创建包含块,使 tab bar 的 bottom:0 相对顶栏而 + 非视口定位。窄屏下关掉顶栏模糊,改用近实色底。 + * Wed Sep 02 2026 JianFeeeee - 0.1.1-1 - 修复令牌环冻结:心跳到达时复活被误判 offline 的前驱; 全环无可达后继时保留 inflight,让 leader 超时重发令牌。 diff --git a/scripts/build_installers.sh b/scripts/build_installers.sh index b84677b..5f703b1 100755 --- a/scripts/build_installers.sh +++ b/scripts/build_installers.sh @@ -12,7 +12,7 @@ # 在 release.sh 流程内被调用;依赖 dist/artifacts//bin/-/ 下的二进制。 set -euo pipefail -VERSION="${1:-0.1.1}" +VERSION="${1:-0.1.2}" VERSION="${VERSION#v}" ROOT="$(cd "$(dirname "$0")/.." && pwd)" OUT="$ROOT/dist/artifacts/$VERSION" diff --git a/scripts/release.sh b/scripts/release.sh index f3de524..3011e15 100755 --- a/scripts/release.sh +++ b/scripts/release.sh @@ -3,7 +3,7 @@ # webui4frpc 多平台发布脚本 # # 用法: -# ./scripts/release.sh [version] # 默认 version=0.1.1 +# ./scripts/release.sh [version] # 默认 version=0.1.2 # # 行为: # 1. 构建前端 (web/dist) 并同步到 internal/httpapi/dist (go:embed 用) @@ -19,7 +19,7 @@ # NO_BUILD_FRONTEND 设为 1 跳过前端构建 (用现有 dist) set -euo pipefail -VERSION="${1:-0.1.1}" +VERSION="${1:-0.1.2}" VERSION="${VERSION#v}" # 去掉可能的前导 v ROOT="$(cd "$(dirname "$0")/.." && pwd)" OUT="$ROOT/dist/artifacts/$VERSION" diff --git a/web/src/App.vue b/web/src/App.vue index 118f903..c151fbd 100644 --- a/web/src/App.vue +++ b/web/src/App.vue @@ -388,6 +388,15 @@ const currentLabel = computed(() => nav.value.find((n) => n.key === view.value)? border-right: none; border-bottom: 1px solid var(--w4f-line); padding-top: max(10px, env(safe-area-inset-top)); + /* 关键:backdrop-filter 会为 position:fixed 后代创建【包含块】 + (与 transform/filter 同理)。若保留它,下面 .sb-nav 的 + bottom:0 就是相对这条顶栏定位而非视口,底部 tab bar 会贴在 + 顶栏下沿、看起来固定在屏幕顶部。因此窄屏必须关掉顶栏的玻璃 + 模糊,改用接近实色的底,模糊效果留在 .sb-nav 自己身上 + (元素自身的 backdrop-filter 不影响它自己的定位)。 */ + backdrop-filter: none; + -webkit-backdrop-filter: none; + background: color-mix(in srgb, var(--w4f-card-solid) 92%, transparent); } .sb-brand { padding: 0;