From 9ba8063ca89437b314ee797509fdfc490b3f4b4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B5=85=E5=BF=B5?= Date: Thu, 27 Aug 2026 16:30:52 +0800 Subject: [PATCH] =?UTF-8?q?feat(chat):=20=E8=B7=B3=E8=BD=AC=E5=85=A5?= =?UTF-8?q?=E5=8F=A3=E5=85=A8=E9=83=A8=E6=94=B9=E4=B8=BA=E5=85=A8=E6=97=B6?= =?UTF-8?q?=E6=AE=B5=E8=BF=9B=E5=85=A5(=E7=94=A8=E6=88=B7=E5=AE=9A?= =?UTF-8?q?=E8=B0=83:=E8=81=8A=E5=A4=A9=E8=AE=B0=E5=BD=95=E4=B8=8D?= =?UTF-8?q?=E5=81=9A=E6=97=B6=E9=97=B4=E9=99=90=E5=88=B6)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 排查全部聊天展示路径后清掉最后的两处带窗跳转:CallList 通话行的「通话 当天」定位窗(当日早些时候为对齐云客 ?start= 加的)与 StaffList 统计弹窗 的统计时段窗;WA 分支的 ?start= 本就被 ChatTimeline 的 start+end 成对 校验忽略,属死代码一并移除。现状:所有聊天视图默认全部时间(会话列表/ 消息接口本就无时间下限),日期过滤只保留聊天窗内的手动日期选择器。 Co-Authored-By: Claude --- yunkes/src/views/CallList.vue | 30 +++++++----------------------- yunkes/src/views/StaffList.vue | 6 +++--- 2 files changed, 10 insertions(+), 26 deletions(-) diff --git a/yunkes/src/views/CallList.vue b/yunkes/src/views/CallList.vue index 6b887cc..13eed68 100644 --- a/yunkes/src/views/CallList.vue +++ b/yunkes/src/views/CallList.vue @@ -278,40 +278,24 @@ function viewCallCustomer(row: PhoneCall): void { if (!owner || !talker) return const t = String(talker) const ch = chatChannel(row.channel) ?? 'wechat' - // 对齐云客「通话时间定位」:新窗 rangeFromQuery 需 start+end 成对,取通话 - // 当天整天下窗——语音通话本身是消息流里的 voice_call 行,当天窗必含该通 - // 通话(旧页 ?start= 滚动定位的等价实现)。 - let dayQuery: { start: string; end: string } | undefined - if (row.start_call_time) { - const s = new Date(row.start_call_time) - s.setHours(0, 0, 0, 0) - const e = new Date(row.start_call_time) - e.setHours(23, 59, 59, 999) - dayQuery = { start: String(s.getTime()), end: String(e.getTime()) } - } + // 全时段进入,不带时间窗(2026-08-27 用户定调:所有聊天记录不做时间限制; + // 此前的「通话当天」定位窗与 WA ?start= 均已移除——后者本就被 ChatTimeline + // 的 start+end 成对校验忽略。要看某时段在聊天窗里自选日期)。 // 群语音的 talker 是 @chatroom ID → 群路由(1:1 路由按 talker_id 查会 // 查空,同 chat_group owner 错位类问题,2026-08-22) if (t.endsWith('@chatroom')) { router.push( ch === 'wechat' - ? { name: 'staff-chat', params: { ownerId: String(owner), tab: 'group', talkerId: t }, query: dayQuery } - : { - name: 'group-chat', - params: { channel: ch, ownerId: String(owner), roomId: t }, - query: row.start_call_time ? { start: String(row.start_call_time) } : undefined, - }, + ? { name: 'staff-chat', params: { ownerId: String(owner), tab: 'group', talkerId: t } } + : { name: 'group-chat', params: { channel: ch, ownerId: String(owner), roomId: t } }, ) return } // 微信 1:1 → 新员工聊天窗口;WA 保留旧 ChatTimeline(新窗口仅微信)。 router.push( ch === 'wechat' - ? { name: 'staff-chat', params: { ownerId: String(owner), tab: 'single', talkerId: t }, query: dayQuery } - : { - name: 'chat', - params: { channel: ch, ownerId: String(owner), talkerId: t }, - query: row.start_call_time ? { start: String(row.start_call_time) } : undefined, - }, + ? { name: 'staff-chat', params: { ownerId: String(owner), tab: 'single', talkerId: t } } + : { name: 'chat', params: { channel: ch, ownerId: String(owner), talkerId: t } }, ) } diff --git a/yunkes/src/views/StaffList.vue b/yunkes/src/views/StaffList.vue index 03f97cb..3f6c302 100644 --- a/yunkes/src/views/StaffList.vue +++ b/yunkes/src/views/StaffList.vue @@ -374,14 +374,14 @@ function joinFields(...vals: (string | undefined | null)[]): string { return parts.length ? parts.join(' ') : '--' } -/** modal 客户微信 → 该员工×客户聊天(带 StaffList 当前日期窗)。缺失 owner/talker 静默 no-op。 - * 微信 → 新员工聊天窗口 single tab(modal 跳转不带 msgid 定位)。 */ +/** modal 客户微信 → 该员工×客户聊天(全时段,不带统计日期窗——2026-08-27 + * 用户定调所有聊天记录不做时间限制,要看某时段在聊天窗里自选日期)。缺失 + * owner/talker 静默 no-op。微信 → 新员工聊天窗口 single tab(不带 msgid 定位)。 */ function openCustomerChat(row: Account, customer: StaffChatCustomer): void { if (!row.account_id || !customer.talker_id) return router.push({ name: 'staff-chat', params: { ownerId: row.account_id, tab: 'single', talkerId: customer.talker_id }, - query: { start: String(statsStart.value), end: String(statsEnd.value) }, }) }