From afa0134fdd63c253e102bc129e275d16ca25508e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=87=95=E5=8D=9A=E6=96=87?= <349952469@qq.com> Date: Fri, 17 Jun 2022 11:39:38 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat(projects):=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E6=B6=88=E6=81=AF=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../GlobalHeader/components/MessageList.vue | 57 +++++ .../GlobalHeader/components/SystemMessage.vue | 205 ++++++++++++++++++ .../common/GlobalHeader/components/index.ts | 3 +- src/layouts/common/GlobalHeader/index.vue | 4 +- .../GlobalSearch/components/SearchFooter.vue | 18 +- src/typings/business.d.ts | 36 +++ 6 files changed, 312 insertions(+), 11 deletions(-) create mode 100644 src/layouts/common/GlobalHeader/components/MessageList.vue create mode 100644 src/layouts/common/GlobalHeader/components/SystemMessage.vue diff --git a/src/layouts/common/GlobalHeader/components/MessageList.vue b/src/layouts/common/GlobalHeader/components/MessageList.vue new file mode 100644 index 00000000..60811917 --- /dev/null +++ b/src/layouts/common/GlobalHeader/components/MessageList.vue @@ -0,0 +1,57 @@ + + diff --git a/src/layouts/common/GlobalHeader/components/SystemMessage.vue b/src/layouts/common/GlobalHeader/components/SystemMessage.vue new file mode 100644 index 00000000..62d627ee --- /dev/null +++ b/src/layouts/common/GlobalHeader/components/SystemMessage.vue @@ -0,0 +1,205 @@ + + + + diff --git a/src/layouts/common/GlobalHeader/components/index.ts b/src/layouts/common/GlobalHeader/components/index.ts index b13a8ab6..3ddf1d03 100644 --- a/src/layouts/common/GlobalHeader/components/index.ts +++ b/src/layouts/common/GlobalHeader/components/index.ts @@ -5,5 +5,6 @@ import GithubSite from './GithubSite.vue'; import FullScreen from './FullScreen.vue'; import ThemeMode from './ThemeMode.vue'; import UserAvatar from './UserAvatar.vue'; +import SystemMessage from './SystemMessage.vue'; -export { MenuCollapse, GlobalBreadcrumb, HeaderMenu, GithubSite, FullScreen, ThemeMode, UserAvatar }; +export { MenuCollapse, GlobalBreadcrumb, HeaderMenu, GithubSite, FullScreen, ThemeMode, UserAvatar, SystemMessage }; diff --git a/src/layouts/common/GlobalHeader/index.vue b/src/layouts/common/GlobalHeader/index.vue index 006e2bfa..2fdf0d76 100644 --- a/src/layouts/common/GlobalHeader/index.vue +++ b/src/layouts/common/GlobalHeader/index.vue @@ -11,6 +11,7 @@ + @@ -27,7 +28,8 @@ import { GithubSite, FullScreen, ThemeMode, - UserAvatar + UserAvatar, + SystemMessage } from './components'; interface Props { diff --git a/src/layouts/common/GlobalSearch/components/SearchFooter.vue b/src/layouts/common/GlobalSearch/components/SearchFooter.vue index bdb10fe6..3f110796 100644 --- a/src/layouts/common/GlobalSearch/components/SearchFooter.vue +++ b/src/layouts/common/GlobalSearch/components/SearchFooter.vue @@ -1,17 +1,17 @@ diff --git a/src/typings/business.d.ts b/src/typings/business.d.ts index b2480b1f..94b3c13c 100644 --- a/src/typings/business.d.ts +++ b/src/typings/business.d.ts @@ -26,3 +26,39 @@ declare namespace Demo { name: string; } } + +/** 系统消息 */ +declare namespace Message { + interface Tab { + /** tab的key */ + key: number; + /** tab名称 */ + name: string; + /** badge类型 */ + badgeProps?: import('naive-ui').BadgeProps; + /** 消息数据 */ + list: ListItem[]; + } + + interface List { + /** 数据唯一值 */ + id: number; + /** 头像 */ + avatar?: string; + /** 消息icon */ + icon?: string; + svgIcon?: string; + /** 消息标题 */ + title: string; + /** 消息发送时间 */ + date?: string; + /** 消息是否已读 */ + isRead?: boolean; + /** 消息描述 */ + description?: string; + /** 标签名称 */ + tagTitle?: string; + /** 标签props */ + tagProps?: import('naive-ui').TagProps; + } +} From 9518372fe0431d4e08a5f40d1b2982691fbb4107 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=87=95=E5=8D=9A=E6=96=87?= <349952469@qq.com> Date: Fri, 17 Jun 2022 12:49:53 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat(projects):=20=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E7=BB=84=E4=BB=B6=E4=BB=A3=E7=A0=81=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../GlobalHeader/components/MessageList.vue | 15 +++++--- .../GlobalHeader/components/SystemMessage.vue | 36 ++++++++++--------- 2 files changed, 29 insertions(+), 22 deletions(-) diff --git a/src/layouts/common/GlobalHeader/components/MessageList.vue b/src/layouts/common/GlobalHeader/components/MessageList.vue index 60811917..0983054b 100644 --- a/src/layouts/common/GlobalHeader/components/MessageList.vue +++ b/src/layouts/common/GlobalHeader/components/MessageList.vue @@ -2,10 +2,10 @@ @@ -53,9 +49,9 @@ import { useThemeStore } from '@/store'; import { useBoolean } from '@/hooks'; import MessageList from './MessageList.vue'; -const currentTab = ref(0); const theme = useThemeStore(); const { bool: loading, setBool: setLoading } = useBoolean(); +const currentTab = ref(0); const tabData = ref([ { key: 1, @@ -185,19 +181,25 @@ const count = computed(() => { }, 0); }); -function handleClear(index: number) { - tabData.value[index].list = []; +const showAction = computed(() => tabData.value[currentTab.value].list.length > 0); + +function handleRead(index: number) { + tabData.value[currentTab.value].list[index].isRead = true; } -function handleAllRead(index: number) { - tabData.value[index].list.map(item => Object.assign(item, { isRead: true })); +function handleAllRead() { + tabData.value[currentTab.value].list.map(item => Object.assign(item, { isRead: true })); } -function handleLoadMore(index: number) { - const { list } = tabData.value[index]; +function handleClear() { + tabData.value[currentTab.value].list = []; +} + +function handleLoadMore() { + const { list } = tabData.value[currentTab.value]; setLoading(true); setTimeout(() => { - list.push(...tabData.value[index].list); + list.push(...tabData.value[currentTab.value].list); setLoading(false); }, 1000); }