diff --git a/yunkes/src/views/ChatTimeline.vue b/yunkes/src/views/ChatTimeline.vue index 3d8a303..039ced4 100644 --- a/yunkes/src/views/ChatTimeline.vue +++ b/yunkes/src/views/ChatTimeline.vue @@ -108,15 +108,6 @@ const conversationTitle = computed(() => { return '聊天记录' }) -const TWO_WEEKS_MS = 14 * 86_400_000 - -function defaultRange(): [Date, Date] { - const end = new Date() - end.setHours(23, 59, 59, 999) - const start = new Date(end.getTime() - TWO_WEEKS_MS) - start.setHours(0, 0, 0, 0) - return [start, end] -} function rangeFromQuery(): [Date, Date] | null { const s = route.query.start, e = route.query.end @@ -127,11 +118,12 @@ function rangeFromQuery(): [Date, Date] | null { } return null } -// 本地日期窗 ref:mount 时取 route.query(stat modal 带窗入口)否则默认近 2 周; -// 跨会话切换持久(不随路由 param 变化重置),与云客真机一致。 -const dateRange = ref<[Date, Date]>(rangeFromQuery() ?? defaultRange()) -const winStart = computed(() => dateRange.value[0].getTime()) -const winEnd = computed(() => dateRange.value[1].getTime()) +// 本地日期窗 ref:mount 时取 route.query(stat modal 带窗入口)否则**全部时间**—— +// 默认近 2 周会把老对话过滤成空(实测 7-26 的对话在 08-22 打开显示「暂无聊天 +// 记录」,2026-08-22);点「查看聊天记录」就该看到记录,要过滤再手动选时间。 +const dateRange = ref<[Date, Date] | null>(rangeFromQuery()) +const winStart = computed(() => dateRange.value?.[0].getTime()) +const winEnd = computed(() => dateRange.value?.[1].getTime()) const keyword = ref('') /** 归属账号昵称(账号表查,回退原始 id)。 */ @@ -159,7 +151,9 @@ const subtitle = computed(() => { let s = `渠道:${channelLabel(channelTyped.value)} · 归属账号:${ownerLabel}` + (total.value > 0 ? ` · 共 ${total.value} 条` : '') - s += ` · 时段:${formatTime(winStart.value)} ~ ${formatTime(winEnd.value)}` + s += winStart.value && winEnd.value + ? ` · 时段:${formatTime(winStart.value)} ~ ${formatTime(winEnd.value)}` + : ' · 时段:全部时间' return s }) @@ -357,7 +351,10 @@ onMounted(() => { v-model="dateRange" type="daterange" size="small" - :clearable="false" + range-separator="至" + start-placeholder="开始日期" + end-placeholder="结束日期" + clearable @change="onDateChange" />