feat(referral): 添加推荐客户功能及相关接口

- 新增小程序端推荐客户页面,实现客户信息报备功能
- 添加推荐客户统计与推荐记录展示,支持分页加载更多
- 实现手机号格式校验及报备表单提交逻辑
- 新增拨打客户电话功能
- 在分销商首页添加“推荐客户”入口菜单项
- 新增推荐客户相关API接口,包括报备、查询列表、统计及状态更新
- 完善推荐客户页面样式,提升用户体验
This commit is contained in:
2026-04-14 10:06:17 +08:00
parent 128563bfeb
commit 0a72306d6a
7 changed files with 657 additions and 2 deletions

135
src/api/shop/referral.ts Normal file
View File

@@ -0,0 +1,135 @@
/**
* 客资推荐人 API
* 小程序端调用
*/
import request from '@/utils/request'
/**
* 推荐人报备参数
*/
export interface ReferralParam {
customerName: string
customerPhone: string
customerCompany?: string
requirement?: string
appointmentTime?: string
remarks?: string
}
/**
* 推荐人报备结果
*/
export interface ReferralResult {
referralId: number
referralCode: string
customerName: string
customerPhone: string
referralFee?: number
referralStatus: number
referralStatusText: string
createTime: string
}
/**
* 推荐人统计
*/
export interface ReferralStats {
totalCount: number
pendingCount: number
validCount: number
settledCount: number
pendingAmount: number
}
/**
* 推荐人记录
*/
export interface ReferralRecord {
referralId: number
referredLeadId: number
customerName: string
customerPhone: string
referralFee: number
referralStatus: number
referralStatusText: string
leadStatus?: number
leadStatusText?: string
dealAmount?: number
createTime: string
settlementTime?: string
}
/**
* 注册用户报备客户
*/
export function addReferral(data: ReferralParam) {
return request.post<{ code: number; message: string; data: ReferralResult }>(
'/lead/referral/user',
data
)
}
/**
* 获取推荐人的推荐记录
*/
export function getReferralList(params: { pageNum?: number; pageSize?: number }) {
return request.get<{ code: number; message: string; data: { list: ReferralRecord[]; total: number } }>(
'/lead/referral/page',
{ params }
)
}
/**
* 获取推荐人统计
*/
export function getReferralStats(userId: number) {
return request.get<{ code: number; message: string; data: ReferralStats }>(
`/lead/referral/stats/${userId}`
)
}
/**
* 生成推荐码
*/
export function generateReferralCode() {
return request.get<{ code: number; message: string; data: string }>(
'/lead/referral/generateCode'
)
}
/**
* 获取当前用户的推荐码
*/
export function getMyReferralCode() {
return request.get<{ code: number; message: string; data: { referralCode: string } }>(
'/lead/referral/my/code'
)
}
/**
* 确认推荐有效(管理员)
*/
export function confirmReferral(referralId: number) {
return request.put<{ code: number; message: string }>(
`/lead/referral/confirm/${referralId}`
)
}
/**
* 作废推荐(管理员)
*/
export function invalidateReferral(referralId: number, reason?: string) {
return request.put<{ code: number; message: string }>(
`/lead/referral/invalidate/${referralId}`,
{ reason }
)
}
/**
* 结算推荐费(管理员)
*/
export function settleReferral(referralId: number) {
return request.put<{ code: number; message: string }>(
`/lead/referral/settle/${referralId}`
)
}