feat(core): 消息中心对齐设计稿 · 处理记录(真实数据)+ 字号/搜索框/页脚 + 归档接活
- ops/views.py: 通知 metadata 写入真实 timeline(项目/资产/计费/欢迎,真时间戳),create_once 给旧通知补齐 timeline - messages.tsx/css: 新增「处理记录」区块(读 metadata.timeline)+ 补回 .msg-timeline/.msg-step/.msg-log 样式;搜索框结构回设计稿 .msg-search;mono 字号对齐 10.5/10px;空态图标色 token 化 - 归档按钮接活:api.archiveNotification + App 装配 onArchive + 详情页脚归档(后端落 archived_at + 本地乐观移除/扣计数) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -371,6 +371,11 @@ export function App() {
|
||||
await reloadNotifications();
|
||||
}
|
||||
|
||||
async function archiveNotification(id: string) {
|
||||
await api.archiveNotification(id).catch(() => undefined);
|
||||
await reloadNotifications();
|
||||
}
|
||||
|
||||
async function saveProfile(payload: { name?: string; phone?: string; email?: string }) {
|
||||
const res = await action(() => api.updateProfile(payload), "资料已保存");
|
||||
if (res) {
|
||||
@@ -619,6 +624,7 @@ export function App() {
|
||||
}
|
||||
}}
|
||||
onCreateProduct={(payload) => action(() => api.createProduct(payload), "")}
|
||||
onUploadImage={(productId, formData) => action(() => api.uploadProductImage(productId, formData), "")}
|
||||
/>
|
||||
);
|
||||
case "pipeline":
|
||||
@@ -668,6 +674,7 @@ export function App() {
|
||||
unreadCount={unreadCount}
|
||||
onMarkRead={markNotificationRead}
|
||||
onMarkAllRead={markAllNotificationsRead}
|
||||
onArchive={archiveNotification}
|
||||
navigate={navigate}
|
||||
/>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user