diff --git a/Wavelet/frontend/app/(main)/about/page.tsx b/Wavelet/frontend/app/(main)/about/page.tsx
deleted file mode 100644
index 632d5f22..00000000
--- a/Wavelet/frontend/app/(main)/about/page.tsx
+++ /dev/null
@@ -1,203 +0,0 @@
-"use client"
-
-import Link from "next/link"
-import {useQuery} from "@tanstack/react-query"
-import {Info} from "lucide-react"
-import ReactMarkdown from "react-markdown"
-import remarkGfm from "remark-gfm"
-
-import {EmptyStateWithBorder} from "@/components/layout/empty"
-import {ErrorInline} from "@/components/layout/error"
-import {Badge} from "@/components/ui/badge"
-import {Card, CardContent, CardDescription, CardHeader, CardTitle} from "@/components/ui/card"
-import {Skeleton} from "@/components/ui/skeleton"
-import {AboutService, StatusService} from "@/lib/services/openflare"
-import {formatDateTime} from "@/lib/utils"
-
-const aboutQueryKey = ["openflare", "about"] as const
-const publicStatusQueryKey = ["openflare", "public-status"] as const
-
-function AboutPageSkeleton() {
- return (
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- )
-}
-
-export default function AboutPage() {
- const aboutQuery = useQuery({
- queryKey: aboutQueryKey,
- queryFn: () => AboutService.getAboutContent(),
- })
-
- const statusQuery = useQuery({
- queryKey: publicStatusQueryKey,
- queryFn: () => StatusService.getPublicStatus(),
- })
-
- const isLoading = aboutQuery.isLoading || statusQuery.isLoading
-
- if (isLoading) {
- return
- }
-
- if (aboutQuery.isError) {
- return (
-
- void aboutQuery.refetch()}
- />
-
- )
- }
-
- if (statusQuery.isError) {
- return (
-
- void statusQuery.refetch()}
- />
-
- )
- }
-
- const aboutContent = aboutQuery.data?.trim() ?? ""
- const status = statusQuery.data
-
- if (!status) {
- return (
-
-
-
- )
- }
-
- return (
-
-
-
-
-
关于 OpenFlare
-
- 公开展示当前系统简介、版本信息与项目入口。
-
-
-
-
-
-
-
- 系统信息
- 当前运行实例的公开状态与项目链接。
-
- {status.version || "dev"}
-
-
-
-
- 系统名称
-
-
- {status.system_name || "OpenFlare"}
-
-
-
-
- Server 启动时间
-
-
- {formatDateTime(new Date(status.start_time * 1000))}
-
-
-
-
-
-
- {aboutContent ? (
-
-
- 项目介绍
-
- 以下内容由系统设置中的「关于内容」维护。
-
-
-
-
- {aboutContent}
-
-
-
- ) : (
-
- )}
-
-
-
- 返回总览
-
-
-
- )
-}
\ No newline at end of file
diff --git a/Wavelet/frontend/app/(main)/admin/settings/page-client.tsx b/Wavelet/frontend/app/(main)/admin/settings/page-client.tsx
index 339ae274..a740408d 100644
--- a/Wavelet/frontend/app/(main)/admin/settings/page-client.tsx
+++ b/Wavelet/frontend/app/(main)/admin/settings/page-client.tsx
@@ -105,6 +105,9 @@ export function AdminSettingsPageClient() {
+
+ OpenFlare
+
安全设置
@@ -123,9 +126,6 @@ export function AdminSettingsPageClient() {
系统信息
-
- OpenFlare 运维
-
@@ -152,4 +152,4 @@ export function AdminSettingsPageClient() {
)
-}
\ No newline at end of file
+}
diff --git a/Wavelet/frontend/lib/navigation/openflare-nav.ts b/Wavelet/frontend/lib/navigation/openflare-nav.ts
index 32b2bac0..a82e649d 100644
--- a/Wavelet/frontend/lib/navigation/openflare-nav.ts
+++ b/Wavelet/frontend/lib/navigation/openflare-nav.ts
@@ -1,11 +1,9 @@
import type {LucideIcon} from 'lucide-react';
import {
- ClipboardList,
FileText,
Gauge,
GitBranch,
Globe,
- Info,
LayoutDashboard,
MapPin,
Route,
@@ -24,9 +22,9 @@ export interface OpenFlareNavItem {
/** OpenFlare 业务控制台侧栏导航(子页面通过父级入口或页内链接访问) */
export const openflareNavItems: OpenFlareNavItem[] = [
- {title: '总览', url: '/', icon: LayoutDashboard},
- {title: '节点', url: '/nodes', icon: Server, childUrls: ['/nodes/detail']},
- {title: '规则', url: '/proxy-routes', icon: Route, childUrls: ['/proxy-routes/detail']},
+ {title: '数据看板', url: '/', icon: LayoutDashboard},
+ {title: '节点管理', url: '/nodes', icon: Server, childUrls: ['/nodes/detail']},
+ {title: '规则管理', url: '/proxy-routes', icon: Route, childUrls: ['/proxy-routes/detail']},
{title: 'Pages', url: '/pages', icon: FileText, childUrls: ['/pages/detail']},
{
title: '网站',
@@ -40,11 +38,9 @@ export const openflareNavItems: OpenFlareNavItem[] = [
},
{title: 'WAF', url: '/waf', icon: Shield, childUrls: ['/waf/ip-groups']},
{title: '源站', url: '/origins', icon: MapPin, childUrls: ['/origins/detail']},
- {title: '发布', url: '/config-versions', icon: GitBranch},
+ {title: '版本发布', url: '/config-versions', icon: GitBranch},
{title: '访问日志', url: '/access-logs', icon: ScrollText},
- {title: '应用日志', url: '/apply-logs', icon: ClipboardList},
- {title: '性能', url: '/performance', icon: Gauge},
- {title: '关于', url: '/about', icon: Info},
+ {title: '性能调优', url: '/performance', icon: Gauge},
];
/** 网站模块页内二级导航 */
@@ -68,4 +64,4 @@ export function isOpenFlareConsoleRoute(pathname: string): boolean {
}
return pathname === item.url || pathname.startsWith(`${item.url}/`);
});
-}
\ No newline at end of file
+}