diff --git a/vite-frontend/src/App.tsx b/vite-frontend/src/App.tsx index 75d28c4..1e15ab6 100644 --- a/vite-frontend/src/App.tsx +++ b/vite-frontend/src/App.tsx @@ -188,7 +188,7 @@ function App() { /> + } diff --git a/vite-frontend/src/pages/config.tsx b/vite-frontend/src/pages/config.tsx index 2f5b1e1..1390a0c 100644 --- a/vite-frontend/src/pages/config.tsx +++ b/vite-frontend/src/pages/config.tsx @@ -234,6 +234,15 @@ export default function ConfigPage() { Partial> >({}); + const handleBack = () => { + if (window.history.length > 1) { + navigate(-1); + + return; + } + navigate("/profile"); + }; + // 权限检查 useEffect(() => { if (!isAdmin()) { @@ -846,6 +855,22 @@ export default function ConfigPage() {
{/* 页面标题 */}
+

网站配置

diff --git a/vite-frontend/src/shadcn-bridge/heroui/date-picker.tsx b/vite-frontend/src/shadcn-bridge/heroui/date-picker.tsx index fe033cb..a467df1 100644 --- a/vite-frontend/src/shadcn-bridge/heroui/date-picker.tsx +++ b/vite-frontend/src/shadcn-bridge/heroui/date-picker.tsx @@ -38,15 +38,29 @@ function parseDateText(value: string) { return null; } - const matched = trimmed.match(/^(\d{4})[-/.](\d{1,2})[-/.](\d{1,2})$/); + // 兼容纯数字输入:YYYYMMDD + const digitsOnly = trimmed.replace(/\D/g, ""); - if (!matched) { + if (digitsOnly.length === 8) { + const year = Number(digitsOnly.slice(0, 4)); + const month = Number(digitsOnly.slice(4, 6)); + const day = Number(digitsOnly.slice(6, 8)); + + if (isValidCalendarDate(year, month, day)) { + return { day, month, year }; + } + } + + // 兼容多种分隔输入:YYYY-MM-DD / YYYY/MM/DD / YYYY.MM.DD / YYYY年M月D日 / YYYY M D + const numberParts = trimmed.match(/\d+/g); + + if (!numberParts || numberParts.length < 3 || numberParts[0].length !== 4) { return null; } - const year = Number(matched[1]); - const month = Number(matched[2]); - const day = Number(matched[3]); + const year = Number(numberParts[0]); + const month = Number(numberParts[1]); + const day = Number(numberParts[2]); if (!isValidCalendarDate(year, month, day)) { return null;