From 9475027c0d04f288b711c7884a85dd90ce19cded Mon Sep 17 00:00:00 2001 From: zdl <3489966805@qq.com> Date: Mon, 24 Nov 2025 15:12:52 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=8B=86=E5=88=86=E5=B7=A5=E5=85=B7?= =?UTF-8?q?=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/AgentChat/utils/sessionUtils.js | 45 +++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/views/AgentChat/utils/sessionUtils.js diff --git a/src/views/AgentChat/utils/sessionUtils.js b/src/views/AgentChat/utils/sessionUtils.js new file mode 100644 index 00000000..588f0ab5 --- /dev/null +++ b/src/views/AgentChat/utils/sessionUtils.js @@ -0,0 +1,45 @@ +// src/views/AgentChat/utils/sessionUtils.js +// 会话管理工具函数 + +/** + * 按日期分组会话列表 + * + * @param {Array} sessions - 会话列表 + * @returns {Object} 分组后的会话对象 { today, yesterday, thisWeek, older } + * + * @example + * const groups = groupSessionsByDate(sessions); + * console.log(groups.today); // 今天的会话 + * console.log(groups.yesterday); // 昨天的会话 + */ +export const groupSessionsByDate = (sessions) => { + const today = new Date(); + const yesterday = new Date(today); + yesterday.setDate(yesterday.getDate() - 1); + const weekAgo = new Date(today); + weekAgo.setDate(weekAgo.getDate() - 7); + + const groups = { + today: [], + yesterday: [], + thisWeek: [], + older: [], + }; + + sessions.forEach((session) => { + const sessionDate = new Date(session.created_at || session.timestamp); + const daysDiff = Math.floor((today - sessionDate) / (1000 * 60 * 60 * 24)); + + if (daysDiff === 0) { + groups.today.push(session); + } else if (daysDiff === 1) { + groups.yesterday.push(session); + } else if (daysDiff <= 7) { + groups.thisWeek.push(session); + } else { + groups.older.push(session); + } + }); + + return groups; +};