refactor: 优化报错信息

This commit is contained in:
siujamo
2026-01-05 09:59:53 +08:00
parent 29ce5e45f1
commit a00488be5d
+22 -5
View File
@@ -1,16 +1,27 @@
import React, { useEffect, useMemo, useState } from "react" import React, { useEffect, useMemo, useState } from "react"
import { useNavigate } from "react-router" import { useNavigate } from "react-router"
import { App, Avatar, Breadcrumb, Dropdown, Layout, Menu, type MenuProps, Space } from "antd" import {
App,
Avatar,
Breadcrumb,
Dropdown,
Layout,
Menu,
type MenuProps,
message,
Space,
} from "antd"
import { DownOutlined } from "@ant-design/icons" import { DownOutlined } from "@ant-design/icons"
import { ApplicationLogo } from "@/components/icon" import { ApplicationLogo } from "@/components/icon"
import { useAppDispatch, useAppSelector } from "@/store" import { useAppDispatch, useAppSelector } from "@/store"
import { useAntBreadcrumbs } from "@/hooks" import { useAntBreadcrumbs } from "@/hooks"
import { logout } from "@/store/auth-slice" import { logout } from "@/store/auth-slice"
import { MenuApi } from "@/api" import { MenuApi } from "@/api"
import type { AxiosError } from "axios" import axios, { type AxiosError } from "axios"
import type { TreeNode } from "@/types/tree" import type { TreeNode } from "@/types/tree"
import type { MenuItem } from "@/types/entity" import type { MenuItem } from "@/types/entity"
import { AppUtils } from "@/utils" import { AppUtils } from "@/utils"
import type { GeneralErrorResponse } from "@/types/web/response"
const { Header, Footer, Sider, Content } = Layout const { Header, Footer, Sider, Content } = Layout
type AntMenuItem = Required<MenuProps>["items"][number] type AntMenuItem = Required<MenuProps>["items"][number]
@@ -41,7 +52,7 @@ function transformMenuData(nodes: TreeNode<MenuItem>[]): AntMenuItem[] {
} }
export default function DashboardLayout({ children }: { children: React.ReactNode }) { export default function DashboardLayout({ children }: { children: React.ReactNode }) {
const { modal } = App.useApp() const { modal, message } = App.useApp()
const user = useAppSelector((store) => store.auth.user!) const user = useAppSelector((store) => store.auth.user!)
const dispatch = useAppDispatch() const dispatch = useAppDispatch()
const breadcrumbItems = useAntBreadcrumbs() const breadcrumbItems = useAntBreadcrumbs()
@@ -71,8 +82,14 @@ export default function DashboardLayout({ children }: { children: React.ReactNod
setMenuItems(transformMenuData(response)) setMenuItems(transformMenuData(response))
}) })
.catch((error: unknown) => { .catch((error: unknown) => {
const err = error as AxiosError console.log(error)
console.log(err) const errorMessage =
axios.isAxiosError<GeneralErrorResponse>(error) && error.response?.data.message
? error.response?.data.message
: "无法读取菜单数据"
void message.error({
content: errorMessage,
})
}) })
}, []) }, [])