133 lines
4.2 KiB
TypeScript
133 lines
4.2 KiB
TypeScript
import request from '@/config/axios'
|
|
|
|
export interface CustomerVO {
|
|
id: number // 编号
|
|
name: string // 客户名称
|
|
followUpStatus: boolean // 跟进状态
|
|
contactLastTime: Date // 最后跟进时间
|
|
contactLastContent: string // 最后跟进内容
|
|
contactNextTime: Date // 下次联系时间
|
|
ownerUserId: number // 负责人的用户编号
|
|
ownerUserName?: string // 负责人的用户名称
|
|
ownerUserDept?: string // 负责人的部门名称
|
|
lockStatus?: boolean
|
|
dealStatus?: boolean
|
|
mobile: string // 手机号
|
|
telephone: string // 电话
|
|
qq: string // QQ
|
|
wechat: string // wechat
|
|
email: string // email
|
|
areaId: number // 所在地
|
|
areaName?: string // 所在地名称
|
|
detailAddress: string // 详细地址
|
|
industryId: number // 所属行业
|
|
level: number // 客户等级
|
|
source: number // 客户来源
|
|
remark: string // 备注
|
|
creator: string // 创建人
|
|
creatorName?: string // 创建人名称
|
|
createTime: Date // 创建时间
|
|
updateTime: Date // 更新时间
|
|
}
|
|
|
|
// 查询客户列表
|
|
export const getCustomerPage = async (params) => {
|
|
return await request.get({ url: `/crm/customer/page`, params })
|
|
}
|
|
|
|
// 进入公海客户提醒的客户列表
|
|
export const getPutPoolRemindCustomerPage = async (params) => {
|
|
return await request.get({ url: `/crm/customer/put-pool-remind-page`, params })
|
|
}
|
|
|
|
// 获得待进入公海客户数量
|
|
export const getPutPoolRemindCustomerCount = async () => {
|
|
return await request.get({ url: `/crm/customer/put-pool-remind-count` })
|
|
}
|
|
|
|
// 获得今日需联系客户数量
|
|
export const getTodayContactCustomerCount = async () => {
|
|
return await request.get({ url: `/crm/customer/today-contact-count` })
|
|
}
|
|
|
|
// 获得分配给我、待跟进的线索数量的客户数量
|
|
export const getFollowCustomerCount = async () => {
|
|
return await request.get({ url: `/crm/customer/follow-count` })
|
|
}
|
|
|
|
// 查询客户详情
|
|
export const getCustomer = async (id: number) => {
|
|
return await request.get({ url: `/crm/customer/get?id=` + id })
|
|
}
|
|
|
|
// 新增客户
|
|
export const createCustomer = async (data: CustomerVO) => {
|
|
return await request.post({ url: `/crm/customer/create`, data })
|
|
}
|
|
|
|
// 修改客户
|
|
export const updateCustomer = async (data: CustomerVO) => {
|
|
return await request.put({ url: `/crm/customer/update`, data })
|
|
}
|
|
|
|
// 更新客户的成交状态
|
|
export const updateCustomerDealStatus = async (id: number, dealStatus: boolean) => {
|
|
return await request.put({ url: `/crm/customer/update-deal-status`, params: { id, dealStatus } })
|
|
}
|
|
|
|
// 删除客户
|
|
export const deleteCustomer = async (id: number) => {
|
|
return await request.delete({ url: `/crm/customer/delete?id=` + id })
|
|
}
|
|
|
|
// 导出客户 Excel
|
|
export const exportCustomer = async (params: any) => {
|
|
return await request.download({ url: `/crm/customer/export-excel`, params })
|
|
}
|
|
|
|
// 下载客户导入模板
|
|
export const importCustomerTemplate = () => {
|
|
return request.download({ url: '/crm/customer/get-import-template' })
|
|
}
|
|
|
|
// 客户列表
|
|
export const getCustomerSimpleList = async () => {
|
|
return await request.get({ url: `/crm/customer/simple-list` })
|
|
}
|
|
|
|
// ======================= 业务操作 =======================
|
|
|
|
export interface TransferReqVO {
|
|
id: number | undefined // 客户编号
|
|
newOwnerUserId: number | undefined // 新负责人的用户编号
|
|
oldOwnerPermissionLevel: number | undefined // 老负责人加入团队后的权限级别
|
|
}
|
|
|
|
// 客户转移
|
|
export const transferCustomer = async (data: TransferReqVO) => {
|
|
return await request.put({ url: '/crm/customer/transfer', data })
|
|
}
|
|
|
|
// 锁定/解锁客户
|
|
export const lockCustomer = async (id: number, lockStatus: boolean) => {
|
|
return await request.put({ url: `/crm/customer/lock`, data: { id, lockStatus } })
|
|
}
|
|
|
|
// 领取公海客户
|
|
export const receiveCustomer = async (ids: any[]) => {
|
|
return await request.put({ url: '/crm/customer/receive', params: { ids: ids.join(',') } })
|
|
}
|
|
|
|
// 分配公海给对应负责人
|
|
export const distributeCustomer = async (ids: any[], ownerUserId: number) => {
|
|
return await request.put({
|
|
url: '/crm/customer/distribute',
|
|
data: { ids: ids, ownerUserId }
|
|
})
|
|
}
|
|
|
|
// 客户放入公海
|
|
export const putCustomerPool = async (id: number) => {
|
|
return await request.put({ url: `/crm/customer/put-pool?id=${id}` })
|
|
}
|