目录
- [⏳ 前情回顾](#⏳ 前情回顾)
- [🎯 本节目标](#🎯 本节目标)
- 第一步:搭建"公海池"
- 第二步:实现"一键抢单"
- 第三步:打造"我的线索" (私海池)
- [🚀 实战演练](#🚀 实战演练)
- [🌟 总结与预告](#🌟 总结与预告)
⏳ 前情回顾
在上一节中,我们完成了统一办公门户的搭建,并实现了基于手机号的身份核验,给每一位登录的销售颁发了"数字工牌"。
现在,战士已经就位,接下来就是要把"武器"------线索,送到他们手中。
🎯 本节目标
- 公海争夺:搭建公海池,实现"一键抢单"。
- 私海管理:打造"我的线索",管理属于自己的客户。
第一步:搭建"公海池"
有了身份,销售就可以进场了。公海池的规则很简单:谁没归属人,谁就是公海线索。
1. 创建页面
新建页面 公海池,选择销售工作台布局。

在内容插槽里添加布局组件

2. 配置数据表格
拖入数据表格组件,绑定 线索 表。

关键筛选条件:
状态等于待领取。

这样,销售就只能看到没人领的线索,看不到别人已经领走的。
3. 隐私保护
公海池的线索应该适度脱敏。我们可以在表格列配置中,把"手机号"列去掉,或者用表达式隐藏中间四位,防止销售私下联系却不录入系统。
先把手机号的配置改为自定义内容

在列里添加文本组件,用表达式绑定内容

bash
$w.table1.cell_phone.record.phone.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2')
第二步:实现"一键抢单"
看到好线索,手慢无!
1. 添加按钮
在表格操作列,添加一个"抢单"按钮。

2. 编写抢单逻辑 (自定义方法)
抢单不仅仅是改个归属人那么简单,我们还得管住销售的手,不能让他们无限制地抢。
规则 :每人每天限领 10 条线索。
点击左侧代码区,新建自定义方法 claimLead:
javascript
export default async function({event, data}) {
const leadId = data.target; // 传入的线索ID
const currentEmp = $w.app.dataset.state.currentEmp;
const TODAY_LIMIT = 10;
// 1. 检查今日已领取数量
const todayStart = new Date().setHours(0,0,0,0);
const countResult = await $w.cloud.callDataSource({
dataSourceName: 'Lead',
methodName: 'wedaGetRecordsV2',
params: {
filter: {
where: {
$and: [
{ owner_id: { $eq: currentEmp._id } },
{ pickup_time: { $gte: todayStart } } // 大于等于今天0点
]
}
},
pageSize: 1, // 只查总数
getCount: true
}
});
const claimedCount = countResult.total;
const remainingQuota = TODAY_LIMIT - claimedCount;
if (remainingQuota <= 0) {
$w.utils.showToast({ title: "今日配额已用完", icon: "error" });
return;
}
// 2. 弹窗确认
$w.utils.showModal({
title: "确认领取线索?",
content: `今日已领 ${claimedCount} 条,还可领 ${remainingQuota} 条。`,
success: async (res) => {
if (res.confirm) {
// 3. 执行抢单
await $w.cloud.callDataSource({
dataSourceName: 'Lead',
methodName: 'wedaUpdateV2',
params: {
data: {
owner_id: {_id:currentEmp._id},
status: '2', // 待跟进
pickup_time: Date.now()
},
filter: {
where: {
_id: { $eq: leadId }
}
}
}
});
$w.utils.showToast({ title: "抢单成功" });
// 刷新表格 (假设表格组件ID为 table1)
$w.table1.refresh();
}
}
});
}
3. 绑定点击事件
回到公海池页面,给"抢单"按钮绑定点击事件:
- 调用自定义方法 :选择上面创建的
claimLead。 - 入参配置 :
leadId: 绑定当前行数据_id。

3. 交互优化
抢单成功后,系统会自动刷新表格。
此时,这条线索因为有了 owner_id,会立即从公海池列表里消失------它已经进入你的"私海"了。
第三步:打造"我的线索" (私海池)
抢到的线索去哪了?当然是进了销售自己的口袋------"我的线索"。
1. 创建页面
新建页面 我的线索,选择侧边栏布局。

切换到页面布局,添加菜单

添加布局组件

2. 配置数据表格
拖入数据表格组件,绑定 Lead 表。

3. 关键筛选条件
这里是与公海池最大的区别:我们只看属于自己的线索。
归属人 (owner_id)等于 (Equals)全局变量.currentEmp._id。

💡 小技巧 :
这里的全局变量
$w.app.dataset.state.currentEmp是我们在上一节身份核验成功后存进去的。
4. 操作配置
在操作列添加"写跟进"或"查看详情"按钮,方便销售后续进行客户转化。

🚀 实战演练
- 管理员视角:在后台录入一条"王富贵"的线索,不分配归属人。
- 销售视角 :
- 用销售手机号登录 PC 端。
- 进入"销售工作台",系统自动通过身份核验。
- 在公海池里看到了"王富贵"。
- 动作:点击"抢单"。
- 结果 :
- "王富贵"从公海池消失。
- 管理员在后台看到,"王富贵"的归属人变成了你。
- 切换到"我的线索"页面,发现"王富贵"安详地躺在这里,归属人正是你自己。




🌟 总结与预告
本讲我们完成了**从"身份核验 -> 公海抢单 -> 私海管理"**的完整闭环。销售人员已经可以独立完成线索的获取和查看了。
但光抢不练假把式,如何管理这些私有线索?如何记录每一次通话详情?
下一讲: 《销售闭环------跟进记录与客户转化》。
顺便插播一个小请求:我正在参加 CSDN 2025 博客之星评选,如果这些实战文章对你有帮助,欢迎花 10 秒钟帮我投一票:
👉 帮我投票
你的支持,是我持续更新这一整套《教培管家》实战教程的最大动力 🙏