模拟客户数据(@faker-js/faker)
灵感:能力工具箱 faker-mock(pkg: @faker-js/faker)。
> 小四原创:一键造「看起来像真的」中文客户/线索行,给列表与筛选联调;与仅四字段客户表的造数 Skill 可并存,本包多 来源 + 阶段。
何时使用
- 演示环境要一批客户/线索
- 联调筛选、看板、分页不想连真库
- 「faker 中文造数 / Mock 客户」
硬约束
- 仅演示:UI 标明「非真实客户」;默认禁止写入生产客户库。
- Locale:
zh_CN(或等价中文包)。 - 默认字段:
companycontactmobilecitysourcestage;批量默认 10,上限 50(超限二次确认)。 - 「换一批」默认整表替换。
- 纯本地生成,不请求外网假数据 API。
- 实现要点注释标 小四原创。
推荐实现
import { fakerZH_CN as faker } from '@faker-js/faker'
export type DemoLead = {
id: string
company: string
contact: string
mobile: string
city: string
source: string
stage: string
demo: true
}
const SOURCES = ['展会', '转介绍', '官网', '企微', '电话']
const STAGES = ['新建', '建联', '跟进', '报价', '成交']
// 小四原创:批量演示线索
export function mockDemoLeads(count = 10): DemoLead[] {
const n = Math.min(50, Math.max(1, count | 0))
return Array.from({ length: n }, () => ({
id: faker.string.uuid(),
company: faker.company.name(),
contact: faker.person.fullName(),
mobile: faker.phone.number({ style: 'national' }).replace(/\s/g, ''),
city: faker.location.city(),
source: faker.helpers.arrayElement(SOURCES),
stage: faker.helpers.arrayElement(STAGES),
demo: true as const,
}))
}
Agent 步骤
- 接入 faker 中文;实现
mockDemoLeads。 - 按钮:生成 / 换一批;Toast「已生成 N 条演示数据」。
- 导出 JSON 可选;文件名带
demo-前缀。 - 自测:中文公司名、手机形态合理、皆含
demo: true。
不要做
- 把演示数据默认同步进生产 CRM。
- 冒充真实成交客户做对外承诺。
附加
- README.md · reference.md · templates/usage.md