feat:拆分工具函数
This commit is contained in:
45
src/views/AgentChat/utils/sessionUtils.js
Normal file
45
src/views/AgentChat/utils/sessionUtils.js
Normal file
@@ -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;
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user