feat(message): add message center module (Phase 5)

Implement the complete message center with:
- Database migrations for message_templates, messages, message_subscriptions tables
- erp-message crate with entities, DTOs, services, handlers
- Message CRUD, send, read/unread tracking, soft delete
- Template management with variable interpolation
- Subscription preferences with DND support
- Frontend: messages page, notification panel, unread count badge
- Server integration with module registration and routing

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
iven
2026-04-11 12:25:05 +08:00
parent 91ecaa3ed7
commit 5ceed71e62
35 changed files with 2252 additions and 15 deletions

View File

@@ -0,0 +1,40 @@
import { useState } from 'react';
import { Tabs } from 'antd';
import NotificationList from './messages/NotificationList';
import MessageTemplates from './messages/MessageTemplates';
import NotificationPreferences from './messages/NotificationPreferences';
export default function Messages() {
const [activeKey, setActiveKey] = useState('all');
return (
<div>
<Tabs
activeKey={activeKey}
onChange={setActiveKey}
items={[
{
key: 'all',
label: '全部消息',
children: <NotificationList />,
},
{
key: 'unread',
label: '未读消息',
children: <NotificationList queryFilter={{ is_read: false }} />,
},
{
key: 'templates',
label: '消息模板',
children: <MessageTemplates />,
},
{
key: 'preferences',
label: '通知设置',
children: <NotificationPreferences />,
},
]}
/>
</div>
);
}