From f8dbd402e8a1c7f213318c58b1fe94046848620e Mon Sep 17 00:00:00 2001 From: bunny <1319900154@qq.com> Date: Sun, 3 Nov 2024 21:33:23 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=F0=9F=A7=A9=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E6=8E=A5=E5=8F=97=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/v1/{ => email}/emailTemplate.ts | 0 src/api/v1/{ => email}/emailUsers.ts | 0 src/api/v1/{ => log}/quartzExecuteLog.ts | 0 src/api/v1/{ => log}/userLoginLog.ts | 0 src/api/v1/{ => menu}/menu.ts | 0 src/api/v1/{ => menu}/menuIcon.ts | 2 +- src/api/v1/message/messageReceived.ts | 17 ++ .../v1/{message.ts => message/messageSend.ts} | 15 -- src/api/v1/{ => message}/messageType.ts | 0 src/api/v1/message/messageUser.ts | 17 ++ src/api/v1/{ => schedulers}/schedulers.ts | 0 .../v1/{ => schedulers}/schedulersGroup.ts | 0 src/api/v1/{ => system}/adminUser.ts | 0 src/api/v1/{ => system}/dept.ts | 0 src/api/v1/{ => system}/power.ts | 0 src/api/v1/{ => system}/role.ts | 0 src/api/v1/{ => system}/system.ts | 0 src/components/SelectIcon/Select.vue | 2 +- .../Table/Userinfo/UserinfoDialog.vue | 2 +- src/components/Upload/UploadDialogImage.vue | 2 +- src/layout/components/lay-notice/data.ts | 2 +- src/router/utils.ts | 2 +- src/store/configuration/emailTemplate.ts | 4 +- src/store/configuration/emailUsers.ts | 2 +- src/store/configuration/menuIcon.ts | 26 +-- src/store/message/messageReceived.ts | 79 +++++++++ .../message/{message.ts => messageSend.ts} | 9 +- src/store/message/messageType.ts | 2 +- src/store/message/messageUser.ts | 2 +- src/store/monitor/quartzExecuteLog.ts | 2 +- src/store/monitor/userLoginLog.ts | 2 +- src/store/scheduler/schedulers.ts | 10 +- src/store/scheduler/schedulersGroup.ts | 2 +- src/store/system/adminUser.ts | 2 +- src/store/system/dept.ts | 2 +- src/store/system/menu.ts | 2 +- src/store/system/power.ts | 2 +- src/store/system/role.ts | 2 +- src/store/system/user.ts | 4 +- src/views/account-settings/utils/hooks.tsx | 2 +- .../menuIcon/menu-icon-select-icon-name.vue | 15 +- .../message-detail/detail-message-id.vue | 2 +- .../message-editing/markdown-editor.vue | 2 +- .../message-editing/message-editor-from.vue | 20 +-- .../message-editing/utils/hooks.ts | 2 +- .../message-received/index.vue | 158 ++++++++++++++++++ .../message-received/utils/columns.tsx | 58 +++++++ .../message-received/utils/hooks.ts | 64 +++++++ .../{message => message-send}/index.vue | 12 +- .../markdown-editor.vue | 4 +- .../message-dialog.vue | 10 +- .../{message => message-send}/rich-editor.vue | 2 +- .../utils/columns.tsx | 0 .../{message => message-send}/utils/hooks.ts | 23 ++- src/views/system/adminUser/utils/hooks.tsx | 2 +- src/views/system/role/utils/hooks.ts | 2 +- 56 files changed, 485 insertions(+), 108 deletions(-) rename src/api/v1/{ => email}/emailTemplate.ts (100%) rename src/api/v1/{ => email}/emailUsers.ts (100%) rename src/api/v1/{ => log}/quartzExecuteLog.ts (100%) rename src/api/v1/{ => log}/userLoginLog.ts (100%) rename src/api/v1/{ => menu}/menu.ts (100%) rename src/api/v1/{ => menu}/menuIcon.ts (94%) create mode 100644 src/api/v1/message/messageReceived.ts rename src/api/v1/{message.ts => message/messageSend.ts} (66%) rename src/api/v1/{ => message}/messageType.ts (100%) create mode 100644 src/api/v1/message/messageUser.ts rename src/api/v1/{ => schedulers}/schedulers.ts (100%) rename src/api/v1/{ => schedulers}/schedulersGroup.ts (100%) rename src/api/v1/{ => system}/adminUser.ts (100%) rename src/api/v1/{ => system}/dept.ts (100%) rename src/api/v1/{ => system}/power.ts (100%) rename src/api/v1/{ => system}/role.ts (100%) rename src/api/v1/{ => system}/system.ts (100%) create mode 100644 src/store/message/messageReceived.ts rename src/store/message/{message.ts => messageSend.ts} (93%) create mode 100644 src/views/message-management/message-received/index.vue create mode 100644 src/views/message-management/message-received/utils/columns.tsx create mode 100644 src/views/message-management/message-received/utils/hooks.ts rename src/views/message-management/{message => message-send}/index.vue (94%) rename src/views/message-management/{message => message-send}/markdown-editor.vue (91%) rename src/views/message-management/{message => message-send}/message-dialog.vue (93%) rename src/views/message-management/{message => message-send}/rich-editor.vue (98%) rename src/views/message-management/{message => message-send}/utils/columns.tsx (100%) rename src/views/message-management/{message => message-send}/utils/hooks.ts (86%) diff --git a/src/api/v1/emailTemplate.ts b/src/api/v1/email/emailTemplate.ts similarity index 100% rename from src/api/v1/emailTemplate.ts rename to src/api/v1/email/emailTemplate.ts diff --git a/src/api/v1/emailUsers.ts b/src/api/v1/email/emailUsers.ts similarity index 100% rename from src/api/v1/emailUsers.ts rename to src/api/v1/email/emailUsers.ts diff --git a/src/api/v1/quartzExecuteLog.ts b/src/api/v1/log/quartzExecuteLog.ts similarity index 100% rename from src/api/v1/quartzExecuteLog.ts rename to src/api/v1/log/quartzExecuteLog.ts diff --git a/src/api/v1/userLoginLog.ts b/src/api/v1/log/userLoginLog.ts similarity index 100% rename from src/api/v1/userLoginLog.ts rename to src/api/v1/log/userLoginLog.ts diff --git a/src/api/v1/menu.ts b/src/api/v1/menu/menu.ts similarity index 100% rename from src/api/v1/menu.ts rename to src/api/v1/menu/menu.ts diff --git a/src/api/v1/menuIcon.ts b/src/api/v1/menu/menuIcon.ts similarity index 94% rename from src/api/v1/menuIcon.ts rename to src/api/v1/menu/menuIcon.ts index 8edf7ab..b29944c 100644 --- a/src/api/v1/menuIcon.ts +++ b/src/api/v1/menu/menuIcon.ts @@ -21,7 +21,7 @@ export const fetchDeleteMenuIcon = (data: any) => { return http.request>('delete', 'menuIcon/deleteMenuIcon', { data }); }; -/** 系统菜单图标---根据iconName搜索menuIc */ +/** 系统菜单图标---根据iconName搜索menuIcon */ export const fetchGetIconNameList = (data: any) => { return http.request>('get', 'menuIcon/noManage/getIconNameList', { params: data }); }; diff --git a/src/api/v1/message/messageReceived.ts b/src/api/v1/message/messageReceived.ts new file mode 100644 index 0000000..735cb7d --- /dev/null +++ b/src/api/v1/message/messageReceived.ts @@ -0,0 +1,17 @@ +import { http } from '@/api/service/request'; +import type { BaseResult, ResultTable } from '@/api/service/types'; + +/** 管理员操作用户消息---获取系统管理消息列表 */ +export const fetchGetMessageReceivedList = (data: any) => { + return http.request>('get', `messageReceived/getMessageReceivedList/${data.currentPage}/${data.pageSize}`, { params: data }); +}; + +/** 管理员操作用户消息---将用户消息标为已读 */ +export const fetchMarkMessageReceivedAsRead = (data: any) => { + return http.request>('put', 'messageReceived/markMessageReceivedAsRead', { data }); +}; + +/** 管理员操作用户消息---管理删除用户消息 */ +export const fetchDeleteMessageReceivedByIds = (data: any) => { + return http.request>('delete', 'messageReceived/deleteMessageReceivedByIds', { data }); +}; diff --git a/src/api/v1/message.ts b/src/api/v1/message/messageSend.ts similarity index 66% rename from src/api/v1/message.ts rename to src/api/v1/message/messageSend.ts index 19f5a56..9e9b485 100644 --- a/src/api/v1/message.ts +++ b/src/api/v1/message/messageSend.ts @@ -30,18 +30,3 @@ export const fetchDeleteMessage = (data: any) => { export const fetchGetMessageDetailById = (data: any) => { return http.request>('get', `message/noManage/getMessageDetailById`, { params: data }); }; - -/** 用户系统消息---用户获取系统消息列表 */ -export const fetchGetUserMessageList = (data: any) => { - return http.request>('get', `message/noManage/getUserMessageList/${data.currentPage}/${data.pageSize}`, { params: data }); -}; - -/** 系统消息---用户将消息标为已读 */ -export const fetchUpdateUserMarkAsRead = (data: any) => { - return http.request>('put', 'messageReceived/noManage/updateUserMarkAsRead', { data }); -}; - -/** 系统消息---用户删除系统消息 */ -export const fetchDeleteUserMessageByIds = (data: any) => { - return http.request>('delete', 'message/noManage/deleteUserMessageByIds', { data }); -}; diff --git a/src/api/v1/messageType.ts b/src/api/v1/message/messageType.ts similarity index 100% rename from src/api/v1/messageType.ts rename to src/api/v1/message/messageType.ts diff --git a/src/api/v1/message/messageUser.ts b/src/api/v1/message/messageUser.ts new file mode 100644 index 0000000..2055ace --- /dev/null +++ b/src/api/v1/message/messageUser.ts @@ -0,0 +1,17 @@ +import { http } from '@/api/service/request'; +import type { BaseResult, ResultTable } from '@/api/service/types'; + +/** 用户系统消息---用户获取系统消息列表 */ +export const fetchGetUserMessageList = (data: any) => { + return http.request>('get', `message/noManage/getUserMessageList/${data.currentPage}/${data.pageSize}`, { params: data }); +}; + +/** 系统消息---用户将消息标为已读 */ +export const fetchUpdateUserMarkAsRead = (data: any) => { + return http.request>('put', 'messageReceived/noManage/updateUserMarkAsRead', { data }); +}; + +/** 系统消息---用户删除系统消息 */ +export const fetchDeleteUserMessageByIds = (data: any) => { + return http.request>('delete', 'message/noManage/deleteUserMessageByIds', { data }); +}; diff --git a/src/api/v1/schedulers.ts b/src/api/v1/schedulers/schedulers.ts similarity index 100% rename from src/api/v1/schedulers.ts rename to src/api/v1/schedulers/schedulers.ts diff --git a/src/api/v1/schedulersGroup.ts b/src/api/v1/schedulers/schedulersGroup.ts similarity index 100% rename from src/api/v1/schedulersGroup.ts rename to src/api/v1/schedulers/schedulersGroup.ts diff --git a/src/api/v1/adminUser.ts b/src/api/v1/system/adminUser.ts similarity index 100% rename from src/api/v1/adminUser.ts rename to src/api/v1/system/adminUser.ts diff --git a/src/api/v1/dept.ts b/src/api/v1/system/dept.ts similarity index 100% rename from src/api/v1/dept.ts rename to src/api/v1/system/dept.ts diff --git a/src/api/v1/power.ts b/src/api/v1/system/power.ts similarity index 100% rename from src/api/v1/power.ts rename to src/api/v1/system/power.ts diff --git a/src/api/v1/role.ts b/src/api/v1/system/role.ts similarity index 100% rename from src/api/v1/role.ts rename to src/api/v1/system/role.ts diff --git a/src/api/v1/system.ts b/src/api/v1/system/system.ts similarity index 100% rename from src/api/v1/system.ts rename to src/api/v1/system/system.ts diff --git a/src/components/SelectIcon/Select.vue b/src/components/SelectIcon/Select.vue index 58f2905..4f0071d 100644 --- a/src/components/SelectIcon/Select.vue +++ b/src/components/SelectIcon/Select.vue @@ -1,6 +1,6 @@ + + diff --git a/src/views/message-management/message-received/utils/columns.tsx b/src/views/message-management/message-received/utils/columns.tsx new file mode 100644 index 0000000..01f65a3 --- /dev/null +++ b/src/views/message-management/message-received/utils/columns.tsx @@ -0,0 +1,58 @@ +import { $t } from '@/plugins/i18n'; +import { ElTag } from 'element-plus'; + +// 表格列 +export const columns: TableColumnList = [ + { type: 'selection', align: 'left' }, + { type: 'index', index: (index: number) => index + 1, label: '序号', width: 60 }, + // 消息标题 + { label: $t('title'), prop: 'title' }, + // 消息简介 + { label: $t('summary'), prop: 'summary' }, + // 发送人昵称 + { label: $t('sendNickname'), prop: 'sendNickname' }, + // 接受人昵称 + { label: $t('receivedUserNickname'), prop: 'receivedUserNickname' }, + // 消息类型 + { label: $t('messageType'), prop: 'messageType', slot: 'messageType' }, + // 编辑器类型 + { label: $t('editorType'), prop: 'editorType' }, + // 封面 + { label: $t('cover'), prop: 'cover', slot: 'cover', width: 80 }, + // 消息等级 + { + label: $t('level'), + prop: 'level', + formatter({ level }) { + return ( + + {$t(level)} + + ); + }, + width: 100, + }, + // 消息等级详情 + { label: $t('extra'), prop: 'extra', slot: 'extra' }, + // 0:未读 1:已读 + { + label: $t('status'), + prop: 'status', + formatter({ status }) { + return status ? ( + + {$t('readAlready')} + + ) : ( + + {$t('unread')} + + ); + }, + width: 80, + }, + { label: $t('table.updateTime'), prop: 'updateTime', sortable: true, width: 160 }, + { label: $t('table.createTime'), prop: 'createTime', sortable: true, width: 160 }, + { label: $t('table.createUser'), prop: 'createUser', slot: 'createUser', width: 130 }, + { label: $t('table.updateUser'), prop: 'updateUser', slot: 'updateUser', width: 130 }, +]; diff --git a/src/views/message-management/message-received/utils/hooks.ts b/src/views/message-management/message-received/utils/hooks.ts new file mode 100644 index 0000000..7178b0c --- /dev/null +++ b/src/views/message-management/message-received/utils/hooks.ts @@ -0,0 +1,64 @@ +import { addDialog } from '@/components/BaseDialog/index'; +import { h, ref } from 'vue'; +import { message, messageBox } from '@/utils/message'; +import { $t } from '@/plugins/i18n'; +import DeleteBatchDialog from '@/components/Table/DeleteBatchDialog.vue'; +import { useMessageReceivedStore } from '@/store/message/messageReceived'; + +// 删除ids +export const selectIds = ref([]); +const messageReceivedStore = useMessageReceivedStore(); + +/** 搜索初始化系统消息 */ +export async function onSearch() { + messageReceivedStore.loading = true; + await messageReceivedStore.getMessageReceivedList(); + messageReceivedStore.loading = false; +} + +/** 管理员操作用户消息---将用户消息标为已读 */ +export const markMessageReceivedAsRead = async () => { + // 是否确认标为已读 + let result = await messageBox({ + title: $t('markAsRead'), + showMessage: false, + confirmMessage: undefined, + cancelMessage: $t('cancel'), + }); + if (!result) return; + + result = await messageReceivedStore.markMessageReceivedAsRead(selectIds.value); + if (!result) return; + await onSearch(); +}; + +/** 批量删除 */ +export const onDeleteBatch = async () => { + const ids = selectIds.value; + const formDeletedBatchRef = ref(); + + addDialog({ + title: $t('deleteBatchTip'), + width: '30%', + props: { formInline: { confirmText: '' } }, + draggable: true, + fullscreenIcon: true, + closeOnClickModal: false, + contentRenderer: () => h(DeleteBatchDialog, { ref: formDeletedBatchRef }), + beforeSure: (done, { options }) => { + formDeletedBatchRef.value.formDeletedBatchRef.validate(async (valid: any) => { + if (!valid) return; + + const text = options.props.formInline.confirmText.toLowerCase(); + if (text === 'yes' || text === 'y') { + // 删除数据 + const result = await messageReceivedStore.deleteMessageReceivedByIds(ids); + if (!result) return; + + await onSearch(); + done(); + } else message($t('deleteBatchTip'), { type: 'warning' }); + }); + }, + }); +}; diff --git a/src/views/message-management/message/index.vue b/src/views/message-management/message-send/index.vue similarity index 94% rename from src/views/message-management/message/index.vue rename to src/views/message-management/message-send/index.vue index 23c8c62..086a831 100644 --- a/src/views/message-management/message/index.vue +++ b/src/views/message-management/message-send/index.vue @@ -1,27 +1,27 @@