From 257dbbea679cbd41bf619fd669cd536f83592864 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sat, 20 Dec 2025 21:07:28 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E3=80=90system=E3=80=91=E9=80=9A?= =?UTF-8?q?=E7=9F=A5=E7=AE=A1=E7=90=86=E7=9A=84=E5=BC=80=E5=8F=91=EF=BC=9A?= =?UTF-8?q?50%=20=E5=88=9D=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/system/notify/{ => message}/index.ts | 17 +- src/api/system/notify/template/index.ts | 54 +++++ .../notify/components/message-list.vue | 133 ++++++++++++ .../notify/components/message-search-form.vue | 197 ++++++++++++++++++ .../notify/components/template-list.vue | 147 +++++++++++++ .../components/template-search-form.vue | 197 ++++++++++++++++++ src/pages-system/notify/index.vue | 52 +++++ .../notify/message/detail/index.vue | 96 +++++++++ .../template/detail/components/send-form.vue | 190 +++++++++++++++++ .../notify/template/detail/index.vue | 151 ++++++++++++++ .../notify/template/form/index.vue | 186 +++++++++++++++++ src/pages/index/index.ts | 8 + src/pages/message/components/detail-popup.vue | 2 +- src/pages/message/index.vue | 4 +- 14 files changed, 1430 insertions(+), 4 deletions(-) rename src/api/system/notify/{ => message}/index.ts (68%) create mode 100644 src/api/system/notify/template/index.ts create mode 100644 src/pages-system/notify/components/message-list.vue create mode 100644 src/pages-system/notify/components/message-search-form.vue create mode 100644 src/pages-system/notify/components/template-list.vue create mode 100644 src/pages-system/notify/components/template-search-form.vue create mode 100644 src/pages-system/notify/index.vue create mode 100644 src/pages-system/notify/message/detail/index.vue create mode 100644 src/pages-system/notify/template/detail/components/send-form.vue create mode 100644 src/pages-system/notify/template/detail/index.vue create mode 100644 src/pages-system/notify/template/form/index.vue 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 @@