教培管家第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 秒钟帮我投一票:

👉 帮我投票

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

相关推荐
一枚前端小姐姐21 小时前
低代码平台表单设计系统技术分析(实战三)
前端·vue.js·低代码
一枚前端小姐姐1 天前
低代码平台表单设计系统技术分析(实战二)
低代码·架构·前端框架
一枚前端小姐姐1 天前
低代码平台表单设计系统架构分析(实战一)
前端·低代码·架构
麦聪聊数据2 天前
统一 Web SQL 平台如何收编企业内部的“野生数据看板”?
数据库·sql·低代码·微服务·架构
吴声子夜歌2 天前
小程序——布局示例
小程序
luffy54592 天前
微信小程序页面使用类似filter函数的wxs语法
微信小程序·小程序
Slow菜鸟2 天前
微信小程序开发(二)目录结构完全指南
微信小程序·小程序
小小王app小程序开发2 天前
海外盲盒小程序抽赏玩法分析(附跨境技术落地要点)
小程序
一叶星殇2 天前
微信小程序请求拦截器踩坑:避免重复刷新 token
微信小程序·小程序