fix: 🧩 添加消息内部通知;上传图片大小设置

This commit is contained in:
Bunny 2024-12-29 21:30:16 +08:00
parent 6daf157200
commit 29cf554a10
6 changed files with 46 additions and 15 deletions

View File

@ -7,6 +7,7 @@ server {
listen 80 ;
listen [::]:80;
server_name localhost;
client_max_body_size 5M; # 最大文件上传设置
location / {
root /etc/nginx/html;

View File

@ -49,7 +49,7 @@ function goMessageDetail(message: ListItem) {
<template>
<div class="notice-container border-b-[1px] border-solid border-[#f0f0f0] dark:border-[#303030]" @click="goMessageDetail(noticeItem)">
<el-avatar v-if="noticeItem.cover" :size="30" :src="noticeItem.cover" class="notice-container-avatar" />
<img v-if="noticeItem.cover" :src="noticeItem.cover" alt="" class="notice-container-avatar" />
<div class="notice-container-text">
<div class="notice-text-title text-[#000000d9] dark:text-white">
<el-tooltip
@ -102,7 +102,9 @@ function goMessageDetail(message: ListItem) {
// border-bottom: 1px solid #f0f0f0;
.notice-container-avatar {
margin-right: 16px;
object-fit: cover;
width: 30px;
margin-right: 8px;
background: #fff;
}

View File

@ -2,7 +2,7 @@ import { $t } from '@/plugins/i18n';
import { computed, ref } from 'vue';
import { fetchGetUserMessageList } from '@/api/v1/message/messageUser';
import { throttle } from '@pureadmin/utils';
import { useWebNotification } from '@vueuse/core';
import { ElNotification, ElTag } from 'element-plus';
export interface ListItem {
messageId: string;
@ -92,15 +92,7 @@ export const getAllMessageList = async () => {
];
// 调用浏览器系统通知
if (system.length > 0) {
useWebNotification({
title: system[0]?.title,
dir: 'auto',
lang: 'zh',
renotify: true,
tag: system[0]?.extra,
});
}
showNotification([...system, ...notify, ...notifications]);
};
/** 计算消息数量 */
@ -115,3 +107,24 @@ export const computedNoticesNum = throttle(async () => {
activeKey.value = noticesData.value[0]?.key;
// 定时刷新
}, 666);
/** 显示通知消息 */
const showNotification = NotificationList => {
if (NotificationList.length > 0) {
NotificationList.forEach(message => {
ElNotification({
title: message?.title,
message: (
<div class='flex '>
<img src={message.cover} alt='' style={{ width: '50px', height: '50px', objectFit: 'cover' }} />
<div class='flex justify-between mt-3 mx-2'>
<span class='mr-2'>{message.description}</span>
{message.status && <ElTag type={message.status}>{message?.extra}</ElTag>}
</div>
</div>
),
position: 'bottom-right',
});
});
}
};

View File

@ -19,7 +19,6 @@ onMounted(() => {
<el-dropdown placement="bottom-end" trigger="click">
<span
:class="['dropdown-badge', 'navbar-bg-hover', 'select-none', Number(noticesNum) !== 0 && 'mr-[10px]']"
@click="computedNoticesNum"
@dblclick="$router.push(`/message-detail/${messageTypeStore?.allMessageTypeList[0]?.messageType}`)"
>
<el-badge :max="99" :value="Number(noticesNum) === 0 ? '' : noticesNum">

View File

@ -64,8 +64,7 @@ onMounted(() => {
</div>
<div class="login-box">
<div class="login-form">
<!--<avatar class="avatar" />-->
<img alt="" class="avatar" src="/logo.png" />
<img alt="logo" class="avatar" src="/logo.png" />
<Motion>
<h2 class="outline-none">{{ title }}</h2>
</Motion>

View File

@ -5,6 +5,23 @@ import RichEditor from '@/views/message-management/message-editing/rich-editor.v
import { formState } from '@/views/message-management/message-editing/utils/hooks';
import MarkdownEditor from '@/views/message-management/message-editing/markdown-editor.vue';
import { settingLR } from '@/views/message-management/message-editing/utils/columns';
import { onMounted } from 'vue';
import { useRouter } from 'vue-router';
const router = useRouter();
/** 退出提醒 */
const exitAlter = () => {
window.addEventListener('beforeunload', function (e) {
e.preventDefault();
//
e.returnValue = '';
});
};
onMounted(() => {
exitAlter();
});
</script>
<template>