diff --git a/src/forge/Head/NoticeContent.jsx b/src/forge/Head/NoticeContent.jsx index 7092b5458..965c9137f 100644 --- a/src/forge/Head/NoticeContent.jsx +++ b/src/forge/Head/NoticeContent.jsx @@ -22,7 +22,6 @@ function NoticeContent({ visible, showNotification, resetUserInfo, current_user: const [atUnreadCount, setAtUnreadCount] = useState();//未读@我数量 const [atPage, setAtPage] = useState(0); const [atUnreadList, setAtUnreadList] = useState([]);//未读@我列表 - const [reload, setReload] = useState(0); useEffect(() => { const params = { @@ -45,7 +44,7 @@ function NoticeContent({ visible, showNotification, resetUserInfo, current_user: params.type = "atme" } visible && getMessageList(params); - }, [reload, visible]); + }, [visible]); function getMessageList(params) { @@ -87,14 +86,33 @@ function NoticeContent({ visible, showNotification, resetUserInfo, current_user: let data = response.data; if (!data) return; if (data.status === 0) { - setReload(Math.random()); resetUserInfo(); + changeReadMarkAll(noticeType); } else { showNotification(data.message); } }); } + + function changeReadMarkAll(noticeType) { + if (noticeType === "notification") { + let list = noticeUnreadList.slice(); + list.forEach(item => { + item.status = 2; + }) + setNoticeUnreadList(list); + setNoticeUnreadCount(0); + } else if (noticeType === "atme") { + let list = atUnreadList.slice(); + list.forEach(item => { + item.status = 2; + }) + setAtUnreadList(list); + setAtUnreadCount(0); + } + } + // const [letter_unread_list, setLetter_unread_list] = useState([ // { // id: 122, @@ -123,6 +141,7 @@ function NoticeContent({ visible, showNotification, resetUserInfo, current_user: }); } + function changeReadMark(item) { if (item.type === "notification") { let list = noticeUnreadList.slice(); @@ -169,7 +188,7 @@ function NoticeContent({ visible, showNotification, resetUserInfo, current_user: - +
{item.time_ago} @@ -198,7 +217,7 @@ function NoticeContent({ visible, showNotification, resetUserInfo, current_user:
- " + item.sender.name +"   " + item.content +" 中@我"}}> + " + (item.sender ? item.sender.name : '') + "   " + item.content + " 中@我" }}> {item.time_ago}
@@ -226,7 +245,8 @@ function NoticeContent({ visible, showNotification, resetUserInfo, current_user: }) : "暂无数据" : ""} */}
全部消息 - 所有{noticeType === "notification" ? "系统消息" : noticeType === "letter" ? "私信" : "@我"}一键已读 + {noticeUnreadCount > 0 && noticeType === "notification" && 所有系统消息一键已读} + {atUnreadCount > 0 && noticeType === "atme" && 所有"@我"一键已读}