教培管家第06讲:搭建销售工作台——公海争夺与私海管理

目录

⏳ 前情回顾

在上一节中,我们完成了统一办公门户的搭建,并实现了基于手机号的身份核验,给每一位登录的销售颁发了"数字工牌"。

现在,战士已经就位,接下来就是要把"武器"------线索,送到他们手中。

🎯 本节目标

  1. 公海争夺:搭建公海池,实现"一键抢单"。
  2. 私海管理:打造"我的线索",管理属于自己的客户。

第一步:搭建"公海池"

有了身份,销售就可以进场了。公海池的规则很简单:谁没归属人,谁就是公海线索。

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. 操作配置

在操作列添加"写跟进"或"查看详情"按钮,方便销售后续进行客户转化。


🚀 实战演练

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





🌟 总结与预告

本讲我们完成了**从"身份核验 -> 公海抢单 -> 私海管理"**的完整闭环。销售人员已经可以独立完成线索的获取和查看了。

但光抢不练假把式,如何管理这些私有线索?如何记录每一次通话详情?

下一讲: 《销售闭环------跟进记录与客户转化》。


顺便插播一个小请求:我正在参加 CSDN 2025 博客之星评选,如果这些实战文章对你有帮助,欢迎花 10 秒钟帮我投一票:

👉 帮我投票

你的支持,是我持续更新这一整套《教培管家》实战教程的最大动力 🙏

相关推荐
AC赳赳老秦3 小时前
低代码开发中的高效调试:基于 DeepSeek 的报错日志解析与自动修复方案生成
前端·javascript·低代码·postgresql·数据库架构·easyui·deepseek
云捷配低代码3 小时前
低代码项目风险管理:避坑指南
低代码·自动化·数字化·敏捷流程·数字化转型
快乐非自愿4 小时前
AI低代码与智改数转:破除伪命题,重构技术落地逻辑
人工智能·低代码·重构
柚鸥ASO优化4 小时前
抢占流量入口:小程序名称与关键词的优化指南
小程序
API开发平台4 小时前
crabc-api 接口开发平台 4.0.0 发布
低代码·开源软件
说私域4 小时前
基于链动2+1模式S2B2C商城小程序的营销策略创新与品牌发展研究
小程序·产品运营·流量运营
qq_12498707534 小时前
基于Spring Boot的心理咨询预约微信小程序(源码+论文+部署+安装)
java·spring boot·后端·spring·微信小程序·小程序·毕业设计
说私域4 小时前
AI智能名片S2B2C商城小程序品牌诞生原因与发展历程分析
人工智能·小程序·流量运营
Front_Yue4 小时前
微信小程序实现实时噪声(分贝)检测技术方案详解
微信小程序·小程序