-
- 云微 · WechatOnCloud
- {info?.hasUpdate ? 有新版 : info && !isRelease ? 开发版 : null}
-
-
- 当前版本 {info?.current ?? '…'}
- {info?.hasUpdate && info.latest && (
- <>
- {' · '}最新 {info.latest}
- >
- )}
- {isRelease && info && !info.hasUpdate && info.latest && !info.error && <>{' · '}已是最新>}
- {!isRelease && info?.latest && !info.error && (
- <>
- {' · '}最新发布 {info.latest}
- >
- )}
-
- {info?.hasUpdate && (
-
- 在宿主执行 docker compose pull && docker compose up -d 升级面板;各实例镜像可在「管理 → 升级」单独更新。
-
- )}
-
- {isAdmin && (
-
- )}
-
- 发布日志
-
- {info?.hasUpdate && (
-
- 查看新版
-
- )}
-
- {info && (
-
- {info.checkedAt ? `上次检查 ${fmtDate(info.checkedAt)}` : '尚未检查'}
- {info.source && ` · 来源 ${info.source}`}
- {info.error && ` · ${info.error}`}
-
- )}
+
+
+ 云微 · WechatOnCloud
+ {info?.hasUpdate ? 有新版 : info && !isRelease ? 开发版 : null}
+
+ 当前版本 {info?.current ?? '…'}
+ {info?.hasUpdate && info.latest && (
+ <>
+ {' · '}最新 {info.latest}
+ >
+ )}
+ {isRelease && info && !info.hasUpdate && info.latest && !info.error && <>{' · '}已是最新>}
+ {!isRelease && info?.latest && !info.error && (
+ <>
+ {' · '}最新发布 {info.latest}
+ >
+ )}
+
+ {info?.hasUpdate && (
+
+ 在宿主执行 docker compose pull && docker compose up -d 升级面板;各实例镜像可在「管理 → 升级」单独更新。
+
+ )}
+
+ {info?.hasUpdate && (
+
+ 查看新版
+
+ )}
+ {isAdmin && (
+
+ )}
+
+ 发布日志 ›
+
+
+ {info && (
+
+ {info.checkedAt ? `上次检查 ${fmtDate(info.checkedAt)}` : '尚未检查'}
+ {info.source && ` · 来源 ${info.source}`}
+ {info.error && ` · ${info.error}`}
+
+ )}
>
);
diff --git a/panel/web/src/styles.css b/panel/web/src/styles.css
index a45bab8..0a12efc 100644
--- a/panel/web/src/styles.css
+++ b/panel/web/src/styles.css
@@ -1047,14 +1047,68 @@ button {
gap: 6px;
margin-top: 4px;
}
-/* 诊断包时间范围选择行 */
-.diag-range {
- margin-top: 12px;
+/* 扁平设置区块(诊断与日志 / 关于):无卡片,直接排在分区标题下,避免单卡片的厚重感 */
+.settings-block {
+ padding: 2px 2px 4px;
}
-.diag-range .field-label {
+.settings-block .s-desc {
+ margin: 4px 0 0;
+ font-size: 13px;
+ line-height: 1.65;
+ color: var(--muted);
+ max-width: 660px;
+}
+.s-field {
+ margin-top: 14px;
+}
+.s-field .field-label {
display: block;
margin: 0 2px 8px;
}
+.settings-actions {
+ display: flex;
+ flex-wrap: wrap;
+ align-items: center;
+ gap: 8px 14px;
+ margin-top: 16px;
+}
+/* 实心主按钮:固定内边距 + 不换行(之前作为 flex 项被压窄导致按钮内文字断行) */
+.settings-actions .s-btn {
+ height: 42px;
+ padding: 0 22px;
+ flex: none;
+ white-space: nowrap;
+}
+.settings-actions .btn-text {
+ white-space: nowrap;
+}
+.s-foot {
+ margin: 14px 0 0;
+ font-size: 12px;
+ line-height: 1.6;
+ color: var(--muted);
+ max-width: 660px;
+}
+.s-title-row {
+ display: flex;
+ align-items: center;
+ flex-wrap: wrap;
+ gap: 8px;
+}
+.s-app {
+ font-size: 15px;
+ font-weight: 600;
+ color: var(--text);
+}
+.s-line {
+ margin: 8px 0 0;
+ font-size: 14px;
+ color: var(--muted);
+}
+.s-line b {
+ color: var(--text);
+ font-weight: 600;
+}
.chip-row-pick {
display: flex;
}