From b9d250cdc119386ec149feaefcba934248ddd147 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B5=85=E5=BF=B5?= Date: Sat, 22 Aug 2026 16:16:01 +0800 Subject: [PATCH] =?UTF-8?q?fix(chat):=20=E9=BB=98=E8=AE=A4=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E7=AA=97=E6=94=B9=E5=85=A8=E9=83=A8=E6=97=B6=E9=97=B4?= =?UTF-8?q?(=E5=8E=9F=E8=BF=912=E5=91=A8=E6=8A=8A=E8=80=81=E5=AF=B9?= =?UTF-8?q?=E8=AF=9D=E8=BF=87=E6=BB=A4=E6=88=90=E7=A9=BA=E2=80=94=E2=80=94?= =?UTF-8?q?7-26=E7=9A=84=E5=AF=B9=E8=AF=9D=E6=89=93=E5=BC=80=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E6=9A=82=E6=97=A0=E8=81=8A=E5=A4=A9=E8=AE=B0=E5=BD=95?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 点「查看聊天记录」就该看到记录;需要过滤再手动选日期(已开clearable, 清除即回全部);stat-modal 带窗入口(?start&end)不受影响 Co-Authored-By: Claude --- yunkes/src/views/ChatTimeline.vue | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) 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" />