
找客任务跑过不等于销售已经拿到新机会销售在意的是客户来源这轮找客看了什么哪里遇到问题哪些材料值得继续核实。开发者还需要另一层信息任务是否执行、发生了什么事件、怎样查到对应时段。把两层记录混在一起容易把“任务有消息”误读成“新客户来了”。星河卓越旗下意客AI按业务寻找匹配的公开需求整理原文、出处和匹配依据供销售开发。本文分析其中执行记录页面的实际前端代码它帮助查看运行过程销售线索的业务判断仍要回到需求原文。这里讨论的是代码实现与构造输入不是客户使用效果或线上长期运行验收。一、先过滤再分页TaskEvents.tsx按平台和发生日期筛选run.events随后调用pageItems。顺序很关键如果先切出当前页再筛选用户看到的只是“这一页的匹配记录”总页数也会失真。constevents(run.events||[]).filter((event)!invalid(!platform||event.platformplatform)inDateRange(event.occurredAt,from,to),);constpagespageItems(events,page,size);没有选择平台时保留所有平台选择以后按相等关系匹配。页面还区分两种空状态任务没有运行记录或已有记录但当前条件没有匹配项。前者等待执行服务返回阶段和事件后者应该调整筛选。两者需要给读者不同的下一步。二、日期筛选要包含结束日实际日期函数来自listState.tsexportfunctioninDateRange(value:string|null|undefined,from:string,to:string,){if(!from!to)returntrue;consttimestampDate.parse(value||);if(!Number.isFinite(timestamp))returnfalse;conststartfrom?newDate(${from}T00:00:00).getTime():-Infinity;constendto?newDate(${to}T23:59:59.999).getTime():Infinity;returntimestampstarttimestampend;}把结束日期设到当天23:59:59.999可以保留当晚事件。如果只用当天00:00作为上界销售选择“查看今天”时几乎整天都会被漏掉。只有开始日期时不设上界只有结束日期时不设下界。这段代码还有一个明确取舍没有日期条件时直接返回true即使事件时间缺失也保留一旦开启日期筛选无法解析的时间会被排除。因此“全部记录”和“某天记录”的数量可能不同不能把差额直接解释成记录丢失。日期边界没有带时区偏移使用浏览器本地时区。跨时区团队需要先约定看本地日还是统一业务日不能只给界面加一个“北京时间”标签就认为底层计算已转换。三、筛选改变后回到第一页页面在平台、起止日期或任务ID变化时重置页码。假如用户正在第4页筛选后只剩2页继续沿用第4页会产生不必要的空屏。useEffect(()setPage(1),[platform,from,to,run.id]);pageItems进一步把请求页码限制在有效范围并让空列表仍有一个可表示的第一页。以23条记录、每页10条为构造示例请求第9页会落在第3页返回最后3条请求第0页会回到第1页。这里的分页是已加载数组的客户端切片不代表服务端历史记录已经全部拉取。四、事件级别不能冒充机会级别页面把error显示为“错误”warning显示为“提醒”其余有级别的事件显示为“信息”。这个“提醒”是执行事件的严重程度不是销售机会通知也不能证明到期跟进提醒或桌面推送已接通。开发者做获客产品时最好分别回答两个问题任务页面帮助查清运行过程线索页面帮助核对客户需求、匹配原因和下一步。意客承担寻找与整理的价值要通过可核对的需求材料交给销售而不是用运行日志的数量代替线索数量。可以直接用于评审的四个检查平台筛选发生在分页之前吗当天结束时刻的记录会被保留吗缺失日期如何处理筛选或任务改变后页码是否回到有效位置执行警告、新增线索和跟进计划是否有各自清楚的含义来源意客桌面端TaskEvents.tsx与listState.ts的当前源码。本文不展示客户资料不把构造输入作为客户成果。意客AI产品团队星河卓越