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; +};