React 19 + Vite 6 + Router 7 + TanStack Query + Zustand;Semi 二次封装与 Remix 图标统一出口;顶部模块 + 左侧功能菜单布局、Cloud Blue 主题、登录页与 401/403/404/500 页面;请求层含 token 注入、单飞刷新与统一错误提示。
39 lines
921 B
TypeScript
39 lines
921 B
TypeScript
import { Button } from '@douyinfe/semi-ui-19';
|
|
import type { ReactNode } from 'react';
|
|
import { useNavigate } from 'react-router';
|
|
|
|
import { ROUTES } from '@/routes';
|
|
|
|
import { ErrorLayout } from './ErrorLayout';
|
|
|
|
export function ForbiddenPage(): ReactNode {
|
|
const navigate = useNavigate();
|
|
return (
|
|
<ErrorLayout
|
|
code="403"
|
|
title="没有访问权限"
|
|
description="你的账号没有该页面的权限点。如需开通,请联系平台管理员调整角色。"
|
|
actions={
|
|
<>
|
|
<Button
|
|
theme="solid"
|
|
type="primary"
|
|
onClick={() => {
|
|
void navigate(ROUTES.home);
|
|
}}
|
|
>
|
|
返回工作台
|
|
</Button>
|
|
<Button
|
|
onClick={() => {
|
|
void navigate(-1);
|
|
}}
|
|
>
|
|
返回上一页
|
|
</Button>
|
|
</>
|
|
}
|
|
/>
|
|
);
|
|
}
|