feat(customerLead): 实现客资管理模块功能
- 新增客资管理接口,包括分页查询、详情获取、创建、更新、状态更新等 - 实现客资派单功能,支持单条及批量派单操作 - 添加跟进记录相关接口和获取跟进历史记录功能 - 实现客资统计数据接口和业务员客资统计查询 - 开发客资数据导出接口及未分配客资列表接口 - 新增客资管理数据模型及相关状态、来源、跟进方式、派单类型常量 - 设计客资管理页面,包含搜索表单、统计卡片、操作按钮、数据表格及分页 - 实现新增、编辑、详情查看、派单、批量派单、跟进记录添加与删除功能 - 集成表单验证、消息提示和弹窗交互逻辑 - 调用后台接口完成数据加载、状态维护及用户列表获取 - 优化页面样式,支持响应式布局及交互体验提升
This commit is contained in:
174
src/api/cms/customerLead/model.ts
Normal file
174
src/api/cms/customerLead/model.ts
Normal file
@@ -0,0 +1,174 @@
|
||||
/**
|
||||
* 客资管理模块 - 类型定义
|
||||
*/
|
||||
|
||||
/** 客资状态枚举 */
|
||||
export const LeadStatusOptions = [
|
||||
{ label: '待跟进', value: 0, color: 'warning' },
|
||||
{ label: '跟进中', value: 1, color: 'primary' },
|
||||
{ label: '已成交', value: 2, color: 'success' },
|
||||
{ label: '无效', value: 3, color: 'info' }
|
||||
];
|
||||
|
||||
/** 客资来源类型 */
|
||||
export const LeadSourceOptions = [
|
||||
{ label: '表单', value: 'form' },
|
||||
{ label: '网站', value: 'website' },
|
||||
{ label: '小程序', value: 'miniapp' },
|
||||
{ label: '推荐人', value: 'referral' },
|
||||
{ label: '管理员录入', value: 'admin' }
|
||||
];
|
||||
|
||||
/** 跟进方式 */
|
||||
export const FollowTypeOptions = [
|
||||
{ label: '电话', value: 1 },
|
||||
{ label: '微信', value: 2 },
|
||||
{ label: '上门', value: 3 },
|
||||
{ label: '短信', value: 4 },
|
||||
{ label: '其他', value: 5 }
|
||||
];
|
||||
|
||||
/** 派单类型 */
|
||||
export const DispatchTypeOptions = [
|
||||
{ label: '新分配', value: 1 },
|
||||
{ label: '重新分配', value: 2 },
|
||||
{ label: '抢单', value: 3 }
|
||||
];
|
||||
|
||||
/** 客资实体 */
|
||||
export interface CustomerLead {
|
||||
leadId?: number;
|
||||
name?: string;
|
||||
phone?: string;
|
||||
company?: string;
|
||||
delivery?: string;
|
||||
need?: string;
|
||||
source?: string;
|
||||
sourceType?: string;
|
||||
ip?: string;
|
||||
status?: number;
|
||||
statusText?: string;
|
||||
remarks?: string;
|
||||
assignedUserId?: number;
|
||||
assignedUserName?: string;
|
||||
assignedRealName?: string;
|
||||
assignedUserPhone?: string;
|
||||
referrerUserId?: number;
|
||||
referrerName?: string;
|
||||
referrerPhone?: string;
|
||||
referralFee?: number;
|
||||
referralFeePaid?: number;
|
||||
referralFeePaidText?: string;
|
||||
referrerShare?: number;
|
||||
dispatchTime?: string;
|
||||
dispatchAdminId?: number;
|
||||
dispatchAdminName?: string;
|
||||
followCount?: number;
|
||||
lastFollowTime?: string;
|
||||
appointmentTime?: string;
|
||||
dealAmount?: number;
|
||||
dealTime?: string;
|
||||
createTime?: string;
|
||||
updateTime?: string;
|
||||
}
|
||||
|
||||
/** 客资查询参数 */
|
||||
export interface CustomerLeadParam {
|
||||
leadId?: number;
|
||||
name?: string;
|
||||
phone?: string;
|
||||
company?: string;
|
||||
need?: string;
|
||||
assignedUserId?: number;
|
||||
dispatchRemarks?: string;
|
||||
status?: number;
|
||||
remarks?: string;
|
||||
appointmentTime?: string;
|
||||
dealAmount?: number;
|
||||
sourceType?: string;
|
||||
startDate?: string;
|
||||
endDate?: string;
|
||||
statusList?: string;
|
||||
salesmanId?: number;
|
||||
referrerId?: number;
|
||||
keyword?: string;
|
||||
pageNum?: number;
|
||||
pageSize?: number;
|
||||
}
|
||||
|
||||
/** 派单请求参数 */
|
||||
export interface LeadDispatchParam {
|
||||
leadId?: number;
|
||||
toUserId?: number;
|
||||
remarks?: string;
|
||||
dispatchType?: number;
|
||||
leadIds?: number[];
|
||||
batchMode?: boolean;
|
||||
}
|
||||
|
||||
/** 跟进记录参数 */
|
||||
export interface LeadFollowParam {
|
||||
leadId?: number;
|
||||
followType?: number;
|
||||
followContent?: string;
|
||||
nextFollowTime?: string;
|
||||
nextFollowPlan?: string;
|
||||
attachmentUrls?: string;
|
||||
updateStatus?: boolean;
|
||||
newStatus?: number;
|
||||
}
|
||||
|
||||
/** 派单记录 */
|
||||
export interface LeadDispatch {
|
||||
dispatchId?: number;
|
||||
leadId?: number;
|
||||
fromUserId?: number;
|
||||
toUserId?: number;
|
||||
toUserName?: string;
|
||||
adminId?: number;
|
||||
adminName?: string;
|
||||
dispatchRemarks?: string;
|
||||
dispatchType?: number;
|
||||
dispatchTypeText?: string;
|
||||
leadCustomerName?: string;
|
||||
leadCustomerPhone?: string;
|
||||
createTime?: string;
|
||||
}
|
||||
|
||||
/** 跟进记录 */
|
||||
export interface LeadFollowLog {
|
||||
followId?: number;
|
||||
leadId?: number;
|
||||
userId?: number;
|
||||
userName?: string;
|
||||
followType?: number;
|
||||
followTypeText?: string;
|
||||
followContent?: string;
|
||||
nextFollowTime?: string;
|
||||
nextFollowPlan?: string;
|
||||
attachmentUrls?: string;
|
||||
customerName?: string;
|
||||
customerPhone?: string;
|
||||
createTime?: string;
|
||||
}
|
||||
|
||||
/** 统计数据 */
|
||||
export interface LeadStatistics {
|
||||
totalLeads?: number;
|
||||
newLeads?: number;
|
||||
assignedLeads?: number;
|
||||
followedLeads?: number;
|
||||
dealedLeads?: number;
|
||||
dealAmount?: number;
|
||||
referralCount?: number;
|
||||
referralFee?: number;
|
||||
}
|
||||
|
||||
/** 业务员统计 */
|
||||
export interface SalesmanStats {
|
||||
total?: number;
|
||||
pending?: number;
|
||||
following?: number;
|
||||
dealed?: number;
|
||||
invalid?: number;
|
||||
}
|
||||
Reference in New Issue
Block a user