feat(config): add system configuration module (Phase 3)
Implement the complete erp-config crate with: - Data dictionaries (CRUD + items management) - Dynamic menus (tree structure with role filtering) - System settings (hierarchical: platform > tenant > org > user) - Numbering rules (concurrency-safe via PostgreSQL advisory_lock) - Theme and language configuration (via settings store) - 6 database migrations (dictionaries, menus, settings, numbering_rules) - Frontend Settings page with 5 tabs (dictionary, menu, numbering, settings, theme) Refactor: move RBAC functions (require_permission) from erp-auth to erp-core to avoid cross-module dependencies. Add 20 new seed permissions for config module operations.
This commit is contained in:
20
apps/web/src/pages/Settings.tsx
Normal file
20
apps/web/src/pages/Settings.tsx
Normal file
@@ -0,0 +1,20 @@
|
||||
import { Tabs } from 'antd';
|
||||
import DictionaryManager from './settings/DictionaryManager';
|
||||
import MenuConfig from './settings/MenuConfig';
|
||||
import NumberingRules from './settings/NumberingRules';
|
||||
import SystemSettings from './settings/SystemSettings';
|
||||
import ThemeSettings from './settings/ThemeSettings';
|
||||
|
||||
const Settings: React.FC = () => {
|
||||
const items = [
|
||||
{ key: 'dictionaries', label: '数据字典', children: <DictionaryManager /> },
|
||||
{ key: 'menus', label: '菜单配置', children: <MenuConfig /> },
|
||||
{ key: 'numbering', label: '编号规则', children: <NumberingRules /> },
|
||||
{ key: 'settings', label: '系统参数', children: <SystemSettings /> },
|
||||
{ key: 'theme', label: '主题设置', children: <ThemeSettings /> },
|
||||
];
|
||||
|
||||
return <Tabs defaultActiveKey="dictionaries" items={items} />;
|
||||
};
|
||||
|
||||
export default Settings;
|
||||
Reference in New Issue
Block a user