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:
1 parent
e4330a43e4
commit
3b0a99d91f
36 files changed
+7691
-15
No files matched your search
@@ -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 () => ({
|
||||
|
||||
Reference in new issue
Block a user