1
0

refactor: 迁移前端 antd 组件至 v6 规范 API,消除废弃用法

- 迁移静态 message 到 App.useApp() 模式,使 message 感知 ConfigProvider 上下文
- Button type/danger 迁移为 variant/color 新 API
- Space direction 迁移为 vertical 布尔属性
- Select.Option 子组件迁移为 options 属性
- AppLayout 硬编码颜色替换为 antd design token
- 优化 useThemeConfig:default/dark 改为静态导出,减少不必要的 hook 调用
- 同步更新 openspec 主规范文档
This commit is contained in:
2026-04-17 00:59:36 +08:00
parent 49818ed4d8
commit 6eeb38c15e
19 changed files with 121 additions and 96 deletions

View File

@@ -1,5 +1,5 @@
import { useState } from 'react';
import { Layout, Menu } from 'antd';
import { Layout, Menu, theme } from 'antd';
import { CloudServerOutlined, BarChartOutlined, SettingOutlined } from '@ant-design/icons';
import { Outlet, useLocation, useNavigate } from 'react-router';
import { useTheme } from '@/contexts/ThemeContext';
@@ -17,6 +17,7 @@ export function AppLayout() {
const { effectiveThemeId } = useTheme();
const isDark = effectiveThemeId === 'dark';
const [collapsed, setCollapsed] = useState(false);
const { token } = theme.useToken();
const getPageTitle = () => {
if (location.pathname === '/providers') return '供应商管理';
@@ -49,7 +50,7 @@ export function AppLayout() {
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
color: isDark ? '#fff' : 'rgba(0, 0, 0, 0.88)',
color: token.colorText,
fontSize: collapsed ? '1rem' : '1.25rem',
fontWeight: 600,
transition: 'all 0.2s',
@@ -72,10 +73,10 @@ export function AppLayout() {
<Layout.Header
style={{
padding: '0 2rem',
background: effectiveThemeId === 'dark' ? '#141414' : '#fff',
background: token.colorBgContainer,
display: 'flex',
alignItems: 'center',
borderBottom: effectiveThemeId === 'dark' ? '1px solid #303030' : '1px solid #f0f0f0',
borderBottom: `1px solid ${token.colorBorderSecondary}`,
}}
>
<h1 style={{ margin: 0, fontSize: '1.25rem' }}>{getPageTitle()}</h1>