diff --git a/src/api/system/notify/index.ts b/src/api/system/notify/message/index.ts similarity index 68% rename from src/api/system/notify/index.ts rename to src/api/system/notify/message/index.ts index 18fcdca..048df6c 100644 --- a/src/api/system/notify/index.ts +++ b/src/api/system/notify/message/index.ts @@ -1,7 +1,7 @@ import type { PageParam, PageResult } from '@/http/types' import { http } from '@/http/http' -/** 站内信消息 */ +/** 站内信消息信息 */ export interface NotifyMessage { id: number userId: number @@ -17,11 +17,26 @@ export interface NotifyMessage { createTime?: Date } +/** 查询站内信消息列表 */ +export function getNotifyMessagePage(params: PageParam) { + return http.get>('/system/notify-message/page', params) +} + +/** 查询站内信消息详情 */ +export function getNotifyMessage(id: number) { + return http.get(`/system/notify-message/get`, { id }) +} + /** 获取我的站内信分页 */ export function getMyNotifyMessagePage(params: PageParam) { return http.get>('/system/notify-message/my-page', params) } +/** 获取我的站内信详情 */ +export function getMyNotifyMessage(id: number) { + return http.get(`/system/notify-message/get`, { id }) +} + /** 批量标记站内信已读 */ export function updateNotifyMessageRead(ids: number | number[]) { const idsArray = Array.isArray(ids) ? ids : [ids] diff --git a/src/api/system/notify/template/index.ts b/src/api/system/notify/template/index.ts new file mode 100644 index 0000000..e93ff73 --- /dev/null +++ b/src/api/system/notify/template/index.ts @@ -0,0 +1,54 @@ +import type { PageParam, PageResult } from '@/http/types' +import { http } from '@/http/http' + +/** 站内信模板信息 */ +export interface NotifyTemplate { + id?: number + name: string + nickname: string + code: string + content: string + type?: number + params?: string[] + status: number + remark?: string + createTime?: Date +} + +/** 发送站内信请求 */ +export interface NotifySendReqVO { + userId: number + userType: number + templateCode: string + templateParams: Record +} + +/** 查询站内信模板列表 */ +export function getNotifyTemplatePage(params: PageParam) { + return http.get>('/system/notify-template/page', params) +} + +/** 查询站内信模板详情 */ +export function getNotifyTemplate(id: number) { + return http.get(`/system/notify-template/get`, { id }) +} + +/** 新增站内信模板 */ +export function createNotifyTemplate(data: NotifyTemplate) { + return http.post('/system/notify-template/create', data) +} + +/** 修改站内信模板 */ +export function updateNotifyTemplate(data: NotifyTemplate) { + return http.put('/system/notify-template/update', data) +} + +/** 删除站内信模板 */ +export function deleteNotifyTemplate(id: number) { + return http.delete(`/system/notify-template/delete`, { id }) +} + +/** 发送站内信 */ +export function sendNotify(data: NotifySendReqVO) { + return http.post('/system/notify-template/send-notify', data) +} diff --git a/src/pages-system/notify/components/message-list.vue b/src/pages-system/notify/components/message-list.vue new file mode 100644 index 0000000..a670d8e --- /dev/null +++ b/src/pages-system/notify/components/message-list.vue @@ -0,0 +1,133 @@ + + + diff --git a/src/pages-system/notify/components/message-search-form.vue b/src/pages-system/notify/components/message-search-form.vue new file mode 100644 index 0000000..109c554 --- /dev/null +++ b/src/pages-system/notify/components/message-search-form.vue @@ -0,0 +1,197 @@ + + + diff --git a/src/pages-system/notify/components/template-list.vue b/src/pages-system/notify/components/template-list.vue new file mode 100644 index 0000000..6a0156e --- /dev/null +++ b/src/pages-system/notify/components/template-list.vue @@ -0,0 +1,147 @@ + + + diff --git a/src/pages-system/notify/components/template-search-form.vue b/src/pages-system/notify/components/template-search-form.vue new file mode 100644 index 0000000..eddf6c8 --- /dev/null +++ b/src/pages-system/notify/components/template-search-form.vue @@ -0,0 +1,197 @@ + + + diff --git a/src/pages-system/notify/index.vue b/src/pages-system/notify/index.vue new file mode 100644 index 0000000..73b687f --- /dev/null +++ b/src/pages-system/notify/index.vue @@ -0,0 +1,52 @@ + + + + + diff --git a/src/pages-system/notify/message/detail/index.vue b/src/pages-system/notify/message/detail/index.vue new file mode 100644 index 0000000..42e52a6 --- /dev/null +++ b/src/pages-system/notify/message/detail/index.vue @@ -0,0 +1,96 @@ + + + + + diff --git a/src/pages-system/notify/template/detail/components/send-form.vue b/src/pages-system/notify/template/detail/components/send-form.vue new file mode 100644 index 0000000..998f0d0 --- /dev/null +++ b/src/pages-system/notify/template/detail/components/send-form.vue @@ -0,0 +1,190 @@ + + + diff --git a/src/pages-system/notify/template/detail/index.vue b/src/pages-system/notify/template/detail/index.vue new file mode 100644 index 0000000..2046a54 --- /dev/null +++ b/src/pages-system/notify/template/detail/index.vue @@ -0,0 +1,151 @@ + + + + + diff --git a/src/pages-system/notify/template/form/index.vue b/src/pages-system/notify/template/form/index.vue new file mode 100644 index 0000000..b39dd2d --- /dev/null +++ b/src/pages-system/notify/template/form/index.vue @@ -0,0 +1,186 @@ + + + + + diff --git a/src/pages/index/index.ts b/src/pages/index/index.ts index 15e0baf..c9707fb 100644 --- a/src/pages/index/index.ts +++ b/src/pages/index/index.ts @@ -109,6 +109,14 @@ const menuGroupsData: MenuGroup[] = [ iconColor: '#40a9ff', permission: 'system:mail-account:query', }, + { + key: 'notify', + name: '站内信管理', + icon: 'bell', + url: '/pages-system/notify/index', + iconColor: '#ff85c0', + permission: 'system:notify-template:query', + }, ], }, { diff --git a/src/pages/message/components/detail-popup.vue b/src/pages/message/components/detail-popup.vue index 177e708..a2bab4e 100644 --- a/src/pages/message/components/detail-popup.vue +++ b/src/pages/message/components/detail-popup.vue @@ -58,7 +58,7 @@