From 58353dec5cf9ec117091afc61ec09a1b8477f63f Mon Sep 17 00:00:00 2001 From: qaq <1937228092@qq.com> Date: Thu, 3 Jul 2025 11:31:59 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=9E=84=E5=89=8D=E7=AB=AFui?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- panel_install.sh | 36 +++++++++++++++++++++++++++ vite-frontend/src/App.tsx | 2 +- vite-frontend/src/layouts/admin.tsx | 2 +- vite-frontend/src/main.tsx | 2 +- vite-frontend/src/pages/dashboard.tsx | 10 ++++---- vite-frontend/src/pages/node.tsx | 11 +------- vite-frontend/src/pages/user.tsx | 2 +- 7 files changed, 46 insertions(+), 19 deletions(-) diff --git a/panel_install.sh b/panel_install.sh index 7a94867..b94d999 100755 --- a/panel_install.sh +++ b/panel_install.sh @@ -145,6 +145,30 @@ generate_random() { LC_ALL=C tr -dc 'A-Za-z0-9' ip.trim()).filter(ip => ip); if (ips.length <= 1) { - copyToClipboard(formatInAddress(ipString, port), title); + copyToClipboard(formatInAddress(ipString, port)); return; } @@ -471,7 +471,7 @@ export default function DashboardPage() { const addresses = remoteAddr.split(',').map(addr => addr.trim()).filter(addr => addr); if (addresses.length <= 1) { - copyToClipboard(remoteAddr, title); + copyToClipboard(remoteAddr); return; } @@ -489,7 +489,7 @@ export default function DashboardPage() { setAddressModalOpen(true); }; - const copyToClipboard = async (text: string, label: string = '内容') => { + const copyToClipboard = async (text: string) => { try { await navigator.clipboard.writeText(text); toast.success(`已复制`); @@ -503,7 +503,7 @@ export default function DashboardPage() { setAddressList(prev => prev.map(item => item.id === addressItem.id ? { ...item, copying: true } : item )); - await copyToClipboard(addressItem.address, '地址'); + await copyToClipboard(addressItem.address); } catch (error) { toast.error('复制失败'); } finally { @@ -516,7 +516,7 @@ export default function DashboardPage() { const copyAllAddresses = async () => { if (addressList.length === 0) return; const allAddresses = addressList.map(item => item.address).join('\n'); - await copyToClipboard(allAddresses, '所有地址'); + await copyToClipboard(allAddresses); }; const calculateForwardBillingFlow = (forward: Forward): number => { diff --git a/vite-frontend/src/pages/node.tsx b/vite-frontend/src/pages/node.tsx index d3c3ed7..88cefc0 100644 --- a/vite-frontend/src/pages/node.tsx +++ b/vite-frontend/src/pages/node.tsx @@ -266,16 +266,7 @@ export default function NodePage() { }))); }; - // 格式化字节数 - const formatBytes = (bytes: number): string => { - if (bytes === 0) return '0 B'; - - const k = 1024; - const sizes = ['B', 'KB', 'MB', 'GB', 'TB']; - const i = Math.floor(Math.log(bytes) / Math.log(k)); - - return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i]; - }; + // 格式化速度 const formatSpeed = (bytesPerSecond: number): string => { diff --git a/vite-frontend/src/pages/user.tsx b/vite-frontend/src/pages/user.tsx index dc2a660..c2431bd 100644 --- a/vite-frontend/src/pages/user.tsx +++ b/vite-frontend/src/pages/user.tsx @@ -49,7 +49,7 @@ import { getSpeedLimitList } from '@/api'; import { SearchIcon, PlusIcon, EditIcon, DeleteIcon, UserIcon, SettingsIcon } from '@/components/icons'; -import { CalendarDate, parseDate } from "@internationalized/date"; +import { parseDate } from "@internationalized/date"; import AdminLayout from "@/layouts/admin"; // 工具函数