feat(web): A4 数据字典与系统配置页

背景:用户选定方案 A 主从分栏,A4 需要落地字典与配置页。\n改动:新增 /system/dicts、/system/dicts/:type、/system/settings;主从类型列表 + 三层合并 + 树/词表切换 + 条目/类型弹层;6 组配置 + 命名预览 + 阈值二次确认 + 变更记录;客户字段上限改读 effective config;路由/样式/OpenAPI 类型同步。\n影响面:管理中心新增两个菜单页;客户页上限显示改为配置读取(fallback 共享常量)。\n回滚:回滚本提交并恢复 AppLayout / routes / main 样式 import。\n验证:web typecheck/lint/build;单测 154;浏览器自检 1440/1024 无溢出。
This commit is contained in:
Stev_Wang committed 2026-11-04 11:49:32 +08:00
1 parent e4330a43e4
commit 3b0a99d91f
36 files changed
+7691 -15

No files matched your search

+34
View File
@@ -74,6 +74,16 @@ const CustomerFieldsPage = lazy(async () => {
return { default: module.CustomerFieldsPage };
});
const DictsPage = lazy(async () => {
const module = await import('@/pages/system/dicts/DictsPage');
return { default: module.DictsPage };
});
const SettingsPage = lazy(async () => {
const module = await import('@/pages/system/settings/SettingsPage');
return { default: module.SettingsPage };
});
function withSkeleton(node: ReactNode): ReactNode {
return <Suspense fallback={<PageSkeleton rows={8} />}>{node}</Suspense>;
}
@@ -212,6 +222,30 @@ export const router = createBrowserRouter([
</RequirePermission>
),
},
{
path: 'system/dicts',
element: (
<RequirePermission permission={Permission.DICT_MANAGE}>
{withSkeleton(<DictsPage />)}
</RequirePermission>
),
},
{
path: 'system/dicts/:type',
element: (
<RequirePermission permission={Permission.DICT_MANAGE}>
{withSkeleton(<DictsPage />)}
</RequirePermission>
),
},
{
path: 'system/settings',
element: (
<RequirePermission permission={Permission.SYSTEM_CONFIGURE}>
{withSkeleton(<SettingsPage />)}
</RequirePermission>
),
},
{
path: ':moduleKey/:itemKey?',
lazy: async () => ({