messageApi.ts 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. import { $get, $body } from '/@/utils/request';
  2. /**
  3. * 消息通知相关接口
  4. */
  5. export const MessageApi = {
  6. /**
  7. * 发送消息
  8. */
  9. sendMessage(data: {
  10. title: string;
  11. content: string;
  12. type: number;
  13. receiverId: number;
  14. priority?: number;
  15. bizType?: string;
  16. bizId?: number;
  17. }) {
  18. return $body('/message/send', data);
  19. },
  20. /**
  21. * 批量发送消息
  22. */
  23. batchSendMessage(data: {
  24. title: string;
  25. content: string;
  26. type: number;
  27. receiverIds: number[];
  28. priority?: number;
  29. }) {
  30. return $body('/message/batchSend', data);
  31. },
  32. /**
  33. * 分页查询消息列表
  34. */
  35. getMessageList(params: {
  36. pageNum?: number;
  37. pageSize?: number;
  38. type?: number;
  39. status?: number;
  40. title?: string;
  41. }) {
  42. return $get('/message/list', params);
  43. },
  44. /**
  45. * 获取消息详情
  46. */
  47. getMessageDetail(messageId: number) {
  48. return $get(`/message/detail/${messageId}`);
  49. },
  50. /**
  51. * 标记消息已读
  52. */
  53. markAsRead(messageId: number) {
  54. return $body(`/message/read/${messageId}`, {});
  55. },
  56. /**
  57. * 批量标记已读
  58. */
  59. batchMarkAsRead(ids: number[]) {
  60. return $body('/message/batchRead', { ids });
  61. },
  62. /**
  63. * 全部标记已读
  64. */
  65. markAllAsRead(type?: number) {
  66. return $body('/message/readAll' + (type ? `?type=${type}` : ''), {});
  67. },
  68. /**
  69. * 删除消息
  70. */
  71. deleteMessage(messageId: number) {
  72. return $body(`/message/delete/${messageId}`, {});
  73. },
  74. /**
  75. * 批量删除消息
  76. */
  77. batchDeleteMessage(ids: number[]) {
  78. return $body('/message/batchDelete', { ids });
  79. },
  80. /**
  81. * 获取未读消息数量
  82. */
  83. getUnreadCount() {
  84. return $get('/message/unreadCount');
  85. },
  86. /**
  87. * 按类型获取未读消息数量
  88. */
  89. getUnreadCountByType() {
  90. return $get('/message/unreadCountByType');
  91. },
  92. /**
  93. * 获取最新未读消息
  94. */
  95. getLatestUnread(limit: number = 5) {
  96. return $get('/message/latestUnread', { limit });
  97. }
  98. };
  99. // Mock 数据支持(当后端不可用时)
  100. export const MessageMockData = {
  101. list: [
  102. {
  103. id: 1,
  104. title: '系统升级通知',
  105. content: '系统将于2024年1月20日凌晨2:00-4:00进行升级维护,届时系统将暂停服务,请提前做好准备。',
  106. type: 1,
  107. senderId: 0,
  108. senderName: '系统',
  109. receiverId: 1,
  110. receiverName: '管理员',
  111. status: 0,
  112. priority: 2,
  113. createTime: '2024-01-15 10:00:00'
  114. },
  115. {
  116. id: 2,
  117. title: '新功能上线',
  118. content: '消息通知中心功能已上线,您可以在此查看所有消息通知。',
  119. type: 1,
  120. senderId: 0,
  121. senderName: '系统',
  122. receiverId: 1,
  123. receiverName: '管理员',
  124. status: 0,
  125. priority: 0,
  126. createTime: '2024-01-15 09:30:00'
  127. },
  128. {
  129. id: 3,
  130. title: '待办事项提醒',
  131. content: '您有3个待审批的工单,请及时处理。',
  132. type: 3,
  133. senderId: 0,
  134. senderName: '系统',
  135. receiverId: 1,
  136. receiverName: '管理员',
  137. status: 0,
  138. priority: 1,
  139. createTime: '2024-01-15 09:00:00'
  140. },
  141. {
  142. id: 4,
  143. title: '欢迎使用',
  144. content: '欢迎使用洗车管理系统,如有问题请联系管理员。',
  145. type: 2,
  146. senderId: 0,
  147. senderName: '系统',
  148. receiverId: 1,
  149. receiverName: '管理员',
  150. status: 1,
  151. priority: 0,
  152. createTime: '2024-01-14 15:00:00',
  153. readTime: '2024-01-14 16:00:00'
  154. }
  155. ],
  156. unreadCount: 3,
  157. unreadCountByType: {
  158. 1: 2, // 系统通知
  159. 2: 0, // 站内信
  160. 3: 1, // 待办事项
  161. 4: 0 // 公告通知
  162. }
  163. };