feat(meeting): Task 13 完成 meeting_invite 通知卡片对接
## 后端 - MeetingService.InviteUsers 的 PushPayload.Extra 补齐设计 §10.1 要求字段: inviter_id / inviter_name / inviter_avatar / expired_at(Unix 秒, 与 Redis TTL MeetingInviteTokenTTL=600s 对齐) ## 前端 - constants/notify.js:supportsInlineAction 扩展支持 meeting_invite; 新增 NOTIFY_INLINE_ACTION_LABEL 映射(meeting_invite → 立即加入/稍后) + NOTIFY_INLINE_ACTION_DEFAULT 兜底 - components/notify/NotifyItem.vue: * 按 type 动态渲染按钮文案(actionLabel 计算属性) * isExpired 计算属性:meeting_invite 比对 extra.expired_at * 1000 * 过期态合并为单个 disabled 的"邀请已过期"按钮 * 新增 .notify-btn--expired 灰显样式 - pages/notify/index.vue: * handleAccept / handleReject / _navigateByNotify 增加 meeting_invite 分支 * 新增 _navigateToMeetingInvite 辅助:跳 /pages/meeting/preview?mode=join&code=xxx * 过期时 toast "邀请已过期"不跳转,"稍后"仅 markRead 不发接口 ## 文档 - docs/plans/2026-04-21-phase2e-2-implementation.plan.md:Task 13 标 ✅ + 详细产出 - docs/progress/CURRENT_STATUS.md:新增 Task 13 专节(关键技术点 / 验证记录 / 下一步) - .cursor/rules/project-context.mdc:2e-2 进度刷 Task 0-13 ✅ ## 验证 后端 curl 双角色端到端(testuser1 创会 → 邀请 testuser2 → 拉通知列表): - type=meeting_invite,extra 8 字段齐全 - expired_at = invited_at + 600,与 Redis TTL 对齐 Made-with: Cursor
This commit is contained in:
@@ -82,11 +82,29 @@ export const NOTIFY_CATEGORY_COLOR = {
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断该通知是否支持内联操作(接受/拒绝按钮)
|
||||
* 仅 group_invite 和 group_join_request 支持,对方待处理状态
|
||||
* 判断该通知是否支持内联操作按钮
|
||||
* - group_invite / group_join_request:接受 / 拒绝
|
||||
* - meeting_invite:立即加入 / 稍后(Phase 2e-2 Task 13 接入)
|
||||
* @param {string} type
|
||||
* @returns {boolean}
|
||||
*/
|
||||
export const supportsInlineAction = (type) => {
|
||||
return type === NOTIFY_TYPE_GROUP_INVITE || type === NOTIFY_TYPE_GROUP_JOIN_REQUEST
|
||||
return (
|
||||
type === NOTIFY_TYPE_GROUP_INVITE ||
|
||||
type === NOTIFY_TYPE_GROUP_JOIN_REQUEST ||
|
||||
type === NOTIFY_TYPE_MEETING_INVITE
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* 内联按钮文案映射
|
||||
* 组件内根据 type 自动渲染,默认走"接受 / 拒绝"
|
||||
*/
|
||||
export const NOTIFY_INLINE_ACTION_LABEL = {
|
||||
[NOTIFY_TYPE_GROUP_INVITE]: { accept: '接受', reject: '拒绝' },
|
||||
[NOTIFY_TYPE_GROUP_JOIN_REQUEST]: { accept: '接受', reject: '拒绝' },
|
||||
[NOTIFY_TYPE_MEETING_INVITE]: { accept: '立即加入', reject: '稍后' }
|
||||
}
|
||||
|
||||
/** 默认按钮文案(兜底) */
|
||||
export const NOTIFY_INLINE_ACTION_DEFAULT = { accept: '接受', reject: '拒绝' }
|
||||
|
||||
Reference in New Issue
Block a user