feat: 新增api接口文件

This commit is contained in:
吃货
2025-07-05 00:41:50 +08:00
parent 8b477131a2
commit e0080bb3e0
118 changed files with 8710 additions and 0 deletions

View File

@@ -0,0 +1,150 @@
import type { PageParam, PageResult } from '@vben/request';
import type { CrmPermissionApi } from '#/api/crm/permission';
import { requestClient } from '#/api/request';
export namespace CrmCustomerApi {
/** 客户信息 */
export interface Customer {
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 interface CustomerImport {
ownerUserId: number;
file: File;
updateSupport: boolean;
}
}
/** 查询客户列表 */
export function getCustomerPage(params: PageParam) {
return requestClient.get<PageResult<CrmCustomerApi.Customer>>(
'/crm/customer/page',
{ params },
);
}
/** 查询客户详情 */
export function getCustomer(id: number) {
return requestClient.get<CrmCustomerApi.Customer>(
`/crm/customer/get?id=${id}`,
);
}
/** 新增客户 */
export function createCustomer(data: CrmCustomerApi.Customer) {
return requestClient.post('/crm/customer/create', data);
}
/** 修改客户 */
export function updateCustomer(data: CrmCustomerApi.Customer) {
return requestClient.put('/crm/customer/update', data);
}
/** 删除客户 */
export function deleteCustomer(id: number) {
return requestClient.delete(`/crm/customer/delete?id=${id}`);
}
/** 导出客户 */
export function exportCustomer(params: any) {
return requestClient.download('/crm/customer/export-excel', params);
}
/** 下载客户导入模板 */
export function importCustomerTemplate() {
return requestClient.download('/crm/customer/get-import-template');
}
/** 导入客户 */
export function importCustomer(data: CrmCustomerApi.CustomerImport) {
return requestClient.upload('/crm/customer/import', data);
}
/** 获取客户精简信息列表 */
export function getCustomerSimpleList() {
return requestClient.get<CrmCustomerApi.Customer[]>(
'/crm/customer/simple-list',
);
}
/** 客户转移 */
export function transferCustomer(data: CrmPermissionApi.TransferReq) {
return requestClient.put('/crm/customer/transfer', data);
}
/** 锁定/解锁客户 */
export function lockCustomer(id: number, lockStatus: boolean) {
return requestClient.put('/crm/customer/lock', { id, lockStatus });
}
/** 领取公海客户 */
export function receiveCustomer(ids: number[]) {
return requestClient.put('/crm/customer/receive', { ids: ids.join(',') });
}
/** 分配公海给对应负责人 */
export function distributeCustomer(ids: number[], ownerUserId: number) {
return requestClient.put('/crm/customer/distribute', { ids, ownerUserId });
}
/** 客户放入公海 */
export function putCustomerPool(id: number) {
return requestClient.put(`/crm/customer/put-pool?id=${id}`);
}
/** 更新客户的成交状态 */
export function updateCustomerDealStatus(id: number, dealStatus: boolean) {
return requestClient.put(
`/crm/customer/update-deal-status?id=${id}&dealStatus=${dealStatus}`,
);
}
/** 进入公海客户提醒的客户列表 */
export function getPutPoolRemindCustomerPage(params: PageParam) {
return requestClient.get<PageResult<CrmCustomerApi.Customer>>(
'/crm/customer/put-pool-remind-page',
{ params },
);
}
/** 获得待进入公海客户数量 */
export function getPutPoolRemindCustomerCount() {
return requestClient.get<number>('/crm/customer/put-pool-remind-count');
}
/** 获得今日需联系客户数量 */
export function getTodayContactCustomerCount() {
return requestClient.get<number>('/crm/customer/today-contact-count');
}
/** 获得分配给我、待跟进的线索数量的客户数量 */
export function getFollowCustomerCount() {
return requestClient.get<number>('/crm/customer/follow-count');
}

View File

@@ -0,0 +1,56 @@
import type { PageParam, PageResult } from '@vben/request';
import { requestClient } from '#/api/request';
export namespace CrmCustomerLimitConfigApi {
/** 客户限制配置 */
export interface CustomerLimitConfig {
id?: number;
type?: number;
userIds?: string;
deptIds?: string;
maxCount?: number;
dealCountEnabled?: boolean;
}
}
/** 客户限制配置类型 */
export enum LimitConfType {
/** 锁定客户数限制 */
CUSTOMER_LOCK_LIMIT = 2,
/** 拥有客户数限制 */
CUSTOMER_QUANTITY_LIMIT = 1,
}
/** 查询客户限制配置列表 */
export function getCustomerLimitConfigPage(params: PageParam) {
return requestClient.get<
PageResult<CrmCustomerLimitConfigApi.CustomerLimitConfig>
>('/crm/customer-limit-config/page', { params });
}
/** 查询客户限制配置详情 */
export function getCustomerLimitConfig(id: number) {
return requestClient.get<CrmCustomerLimitConfigApi.CustomerLimitConfig>(
`/crm/customer-limit-config/get?id=${id}`,
);
}
/** 新增客户限制配置 */
export function createCustomerLimitConfig(
data: CrmCustomerLimitConfigApi.CustomerLimitConfig,
) {
return requestClient.post('/crm/customer-limit-config/create', data);
}
/** 修改客户限制配置 */
export function updateCustomerLimitConfig(
data: CrmCustomerLimitConfigApi.CustomerLimitConfig,
) {
return requestClient.put('/crm/customer-limit-config/update', data);
}
/** 删除客户限制配置 */
export function deleteCustomerLimitConfig(id: number) {
return requestClient.delete(`/crm/customer-limit-config/delete?id=${id}`);
}

View File

@@ -0,0 +1,26 @@
import { requestClient } from '#/api/request';
export namespace CrmCustomerPoolConfigApi {
/** 客户公海规则设置 */
export interface CustomerPoolConfig {
enabled?: boolean;
contactExpireDays?: number;
dealExpireDays?: number;
notifyEnabled?: boolean;
notifyDays?: number;
}
}
/** 获取客户公海规则设置 */
export function getCustomerPoolConfig() {
return requestClient.get<CrmCustomerPoolConfigApi.CustomerPoolConfig>(
'/crm/customer-pool-config/get',
);
}
/** 更新客户公海规则设置 */
export function saveCustomerPoolConfig(
data: CrmCustomerPoolConfigApi.CustomerPoolConfig,
) {
return requestClient.put('/crm/customer-pool-config/save', data);
}