import request from '@/utils/request' import type { Result } from '@/api/types' // 通知接口类型定义 export interface Notification { id: number notificationType: string receiverId: number senderId?: number title: string content: string relatedId?: number relatedType?: string linkUrl?: string isRead: number readTime?: string pushDingtalk?: number dingtalkStatus?: string dingtalkPushTime?: string priority: string createTime: string updateTime: string } export interface PageResult { records: T[] total: number size: number current: number pages: number } /** * 获取用户通知列表(分页) */ export function getNotifications(params: { receiverId: number pageNum?: number pageSize?: number unreadOnly?: boolean }): Promise> { return request.get>>('/notifications', { params }) .then(res => res.data) } /** * 获取未读数量 */ export function getUnreadCount(receiverId: number): Promise { return request.get>('/notifications/unread-count', { params: { receiverId } }).then(res => res.data) } /** * 标记为已读 */ export function markAsRead(id: number, receiverId: number): Promise { return request.put>(`/notifications/${id}/read`, null, { params: { receiverId } }).then(res => res.data) } /** * 批量标记所有为已读 */ export function markAllAsRead(receiverId: number): Promise { return request.put>('/notifications/read-all', null, { params: { receiverId } }).then(res => res.data) } /** * 删除通知 */ export function deleteNotification(id: number, receiverId: number): Promise { return request.delete>(`/notifications/${id}`, { params: { receiverId } }).then(res => res.data) }