feat(chat): 跳转入口全部改为全时段进入(用户定调:聊天记录不做时间限制)
排查全部聊天展示路径后清掉最后的两处带窗跳转:CallList 通话行的「通话 当天」定位窗(当日早些时候为对齐云客 ?start= 加的)与 StaffList 统计弹窗 的统计时段窗;WA 分支的 ?start= 本就被 ChatTimeline 的 start+end 成对 校验忽略,属死代码一并移除。现状:所有聊天视图默认全部时间(会话列表/ 消息接口本就无时间下限),日期过滤只保留聊天窗内的手动日期选择器。 Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -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 } },
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -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) },
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user