From 9680f807355270293cd9f65a6e0089d73bb30814 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Tue, 18 Nov 2025 10:47:17 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E3=80=90antd=E3=80=91=E3=80=90crm?= =?UTF-8?q?=E3=80=91api=20=E8=AF=B7=E6=B1=82=E7=9A=84=E6=B3=A8=E9=87=8A?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web-ele/src/api/crm/business/index.ts | 35 ++-- .../src/api/crm/business/status/index.ts | 16 +- apps/web-ele/src/api/crm/clue/index.ts | 2 +- apps/web-ele/src/api/crm/contact/index.ts | 14 +- apps/web-ele/src/api/crm/contract/index.ts | 29 ++-- apps/web-ele/src/api/crm/customer/index.ts | 10 +- apps/web-ele/src/api/crm/followup/index.ts | 24 +-- apps/web-ele/src/api/crm/operateLog/index.ts | 16 +- apps/web-ele/src/api/crm/permission/index.ts | 9 +- apps/web-ele/src/api/crm/receivable/index.ts | 29 +--- .../src/api/crm/receivable/plan/index.ts | 18 +- .../src/api/crm/statistics/customer.ts | 158 +++++++++--------- apps/web-ele/src/api/crm/statistics/funnel.ts | 23 ++- .../src/api/crm/statistics/performance.ts | 28 ++-- .../src/api/crm/statistics/portrait.ts | 28 ++-- apps/web-ele/src/api/crm/statistics/rank.ts | 20 +-- 16 files changed, 220 insertions(+), 239 deletions(-) diff --git a/apps/web-ele/src/api/crm/business/index.ts b/apps/web-ele/src/api/crm/business/index.ts index fb66430e9..7da62aeaa 100644 --- a/apps/web-ele/src/api/crm/business/index.ts +++ b/apps/web-ele/src/api/crm/business/index.ts @@ -5,19 +5,6 @@ import type { CrmPermissionApi } from '#/api/crm/permission'; import { requestClient } from '#/api/request'; export namespace CrmBusinessApi { - /** 商机产品信息 */ - export interface BusinessProduct { - id: number; - productId: number; - productName: string; - productNo: string; - productUnit: number; - productPrice: number; - businessPrice: number; - count: number; - totalPrice: number; - } - /** 商机信息 */ export interface Business { id: number; @@ -49,7 +36,21 @@ export namespace CrmBusinessApi { products?: BusinessProduct[]; } - export interface BusinessStatus { + /** 商机产品信息 */ + export interface BusinessProduct { + id: number; + productId: number; + productName: string; + productNo: string; + productUnit: number; + productPrice: number; + businessPrice: number; + count: number; + totalPrice: number; + } + + /** 商机更新状态请求 */ + export interface BusinessUpdateStatusReqVO { id: number; statusId: number | undefined; endStatus: number | undefined; @@ -97,7 +98,9 @@ export function updateBusiness(data: CrmBusinessApi.Business) { } /** 修改商机状态 */ -export function updateBusinessStatus(data: CrmBusinessApi.BusinessStatus) { +export function updateBusinessStatus( + data: CrmBusinessApi.BusinessUpdateStatusReqVO, +) { return requestClient.put('/crm/business/update-status', data); } @@ -120,6 +123,6 @@ export function getBusinessPageByContact(params: PageParam) { } /** 商机转移 */ -export function transferBusiness(data: CrmPermissionApi.TransferReq) { +export function transferBusiness(data: CrmPermissionApi.BusinessTransferReqVO) { return requestClient.put('/crm/business/transfer', data); } diff --git a/apps/web-ele/src/api/crm/business/status/index.ts b/apps/web-ele/src/api/crm/business/status/index.ts index 00001feb1..fb42abaff 100644 --- a/apps/web-ele/src/api/crm/business/status/index.ts +++ b/apps/web-ele/src/api/crm/business/status/index.ts @@ -3,14 +3,6 @@ import type { PageParam, PageResult } from '@vben/request'; import { requestClient } from '#/api/request'; export namespace CrmBusinessStatusApi { - /** 商机状态信息 */ - export interface BusinessStatusType { - [x: string]: any; - id?: number; - name: string; - percent: number; - } - /** 商机状态组信息 */ export interface BusinessStatus { id?: number; @@ -21,6 +13,14 @@ export namespace CrmBusinessStatusApi { createTime?: Date; statuses?: BusinessStatusType[]; } + + /** 商机状态信息 */ + export interface BusinessStatusType { + id?: number; + name: string; + percent: number; + [x: string]: any; + } } /** 默认商机状态 */ diff --git a/apps/web-ele/src/api/crm/clue/index.ts b/apps/web-ele/src/api/crm/clue/index.ts index 2f07bd791..bcd23152c 100644 --- a/apps/web-ele/src/api/crm/clue/index.ts +++ b/apps/web-ele/src/api/crm/clue/index.ts @@ -71,7 +71,7 @@ export function exportClue(params: any) { } /** 线索转移 */ -export function transferClue(data: CrmPermissionApi.TransferReq) { +export function transferClue(data: CrmPermissionApi.BusinessTransferReqVO) { return requestClient.put('/crm/clue/transfer', data); } diff --git a/apps/web-ele/src/api/crm/contact/index.ts b/apps/web-ele/src/api/crm/contact/index.ts index cbd125312..108b31060 100644 --- a/apps/web-ele/src/api/crm/contact/index.ts +++ b/apps/web-ele/src/api/crm/contact/index.ts @@ -38,13 +38,13 @@ export namespace CrmContactApi { } /** 联系人商机关联请求 */ - export interface ContactBusinessReq { + export interface ContactBusinessReqVO { contactId: number; businessIds: number[]; } /** 商机联系人关联请求 */ - export interface BusinessContactReq { + export interface BusinessContactReqVO { businessId: number; contactIds: number[]; } @@ -108,33 +108,33 @@ export function getSimpleContactList() { /** 批量新增联系人商机关联 */ export function createContactBusinessList( - data: CrmContactApi.ContactBusinessReq, + data: CrmContactApi.ContactBusinessReqVO, ) { return requestClient.post('/crm/contact/create-business-list', data); } /** 批量新增商机联系人关联 */ export function createBusinessContactList( - data: CrmContactApi.BusinessContactReq, + data: CrmContactApi.BusinessContactReqVO, ) { return requestClient.post('/crm/contact/create-business-list2', data); } /** 解除联系人商机关联 */ export function deleteContactBusinessList( - data: CrmContactApi.ContactBusinessReq, + data: CrmContactApi.ContactBusinessReqVO, ) { return requestClient.delete('/crm/contact/delete-business-list', { data }); } /** 解除商机联系人关联 */ export function deleteBusinessContactList( - data: CrmContactApi.BusinessContactReq, + data: CrmContactApi.BusinessContactReqVO, ) { return requestClient.delete('/crm/contact/delete-business-list2', { data }); } /** 联系人转移 */ -export function transferContact(data: CrmPermissionApi.TransferReq) { +export function transferContact(data: CrmPermissionApi.BusinessTransferReqVO) { return requestClient.put('/crm/contact/transfer', data); } diff --git a/apps/web-ele/src/api/crm/contract/index.ts b/apps/web-ele/src/api/crm/contract/index.ts index a4f2a2c7c..e7ffc613c 100644 --- a/apps/web-ele/src/api/crm/contract/index.ts +++ b/apps/web-ele/src/api/crm/contract/index.ts @@ -5,19 +5,6 @@ import type { CrmPermissionApi } from '#/api/crm/permission'; import { requestClient } from '#/api/request'; export namespace CrmContractApi { - /** 合同产品信息 */ - export interface ContractProduct { - id: number; - productId: number; - productName: string; - productNo: string; - productUnit: number; - productPrice: number; - contractPrice: number; - count: number; - totalPrice: number; - } - /** 合同信息 */ export interface Contract { id: number; @@ -50,6 +37,20 @@ export namespace CrmContractApi { creatorName: string; updateTime?: Date; products?: ContractProduct[]; + contactName?: string; + } + + /** 合同产品信息 */ + export interface ContractProduct { + id: number; + productId: number; + productName: string; + productNo: string; + productUnit: number; + productPrice: number; + contractPrice: number; + count: number; + totalPrice: number; } } @@ -117,7 +118,7 @@ export function submitContract(id: number) { } /** 合同转移 */ -export function transferContract(data: CrmPermissionApi.TransferReq) { +export function transferContract(data: CrmPermissionApi.BusinessTransferReqVO) { return requestClient.put('/crm/contract/transfer', data); } diff --git a/apps/web-ele/src/api/crm/customer/index.ts b/apps/web-ele/src/api/crm/customer/index.ts index 5faf62df6..038625fd7 100644 --- a/apps/web-ele/src/api/crm/customer/index.ts +++ b/apps/web-ele/src/api/crm/customer/index.ts @@ -16,6 +16,7 @@ export namespace CrmCustomerApi { ownerUserId: number; // 负责人的用户编号 ownerUserName?: string; // 负责人的用户名称 ownerUserDept?: string; // 负责人的部门名称 + ownerUserDeptName?: string; // 负责人的部门名称 lockStatus?: boolean; dealStatus?: boolean; mobile: string; // 手机号 @@ -34,8 +35,11 @@ export namespace CrmCustomerApi { creatorName?: string; // 创建人名称 createTime: Date; // 创建时间 updateTime: Date; // 更新时间 + poolDay?: number; // 距离进入公海天数 } - export interface CustomerImport { + + /** 客户导入请求 */ + export interface CustomerImportReqVO { ownerUserId: number; file: File; updateSupport: boolean; @@ -83,7 +87,7 @@ export function importCustomerTemplate() { } /** 导入客户 */ -export function importCustomer(data: CrmCustomerApi.CustomerImport) { +export function importCustomer(data: CrmCustomerApi.CustomerImportReqVO) { return requestClient.upload('/crm/customer/import', data); } @@ -95,7 +99,7 @@ export function getCustomerSimpleList() { } /** 客户转移 */ -export function transferCustomer(data: CrmPermissionApi.TransferReq) { +export function transferCustomer(data: CrmPermissionApi.BusinessTransferReqVO) { return requestClient.put('/crm/customer/transfer', data); } diff --git a/apps/web-ele/src/api/crm/followup/index.ts b/apps/web-ele/src/api/crm/followup/index.ts index 361acdcaa..20592a9e1 100644 --- a/apps/web-ele/src/api/crm/followup/index.ts +++ b/apps/web-ele/src/api/crm/followup/index.ts @@ -3,18 +3,6 @@ import type { PageParam, PageResult } from '@vben/request'; import { requestClient } from '#/api/request'; export namespace CrmFollowUpApi { - /** 关联商机信息 */ - export interface Business { - id: number; - name: string; - } - - /** 关联联系人信息 */ - export interface Contact { - id: number; - name: string; - } - /** 跟进记录信息 */ export interface FollowUpRecord { id: number; // 编号 @@ -32,6 +20,18 @@ export namespace CrmFollowUpApi { creator: string; creatorName?: string; } + + /** 关联商机信息 */ + export interface Business { + id: number; + name: string; + } + + /** 关联联系人信息 */ + export interface Contact { + id: number; + name: string; + } } /** 查询跟进记录分页 */ diff --git a/apps/web-ele/src/api/crm/operateLog/index.ts b/apps/web-ele/src/api/crm/operateLog/index.ts index 842dd0b19..9a7103ebf 100644 --- a/apps/web-ele/src/api/crm/operateLog/index.ts +++ b/apps/web-ele/src/api/crm/operateLog/index.ts @@ -5,12 +5,6 @@ import type { SystemOperateLogApi } from '#/api/system/operate-log'; import { requestClient } from '#/api/request'; export namespace CrmOperateLogApi { - /** 操作日志查询参数 */ - export interface OperateLogQuery { - bizType: number; - bizId: number; - } - /** 操作日志信息 */ export interface OperateLog { id: number; @@ -22,10 +16,18 @@ export namespace CrmOperateLogApi { creatorName?: string; createTime: Date; } + + /** 操作日志查询请求 */ + export interface OperateLogQueryReqVO { + bizType: number; + bizId: number; + } } /** 获得操作日志 */ -export function getOperateLogPage(params: CrmOperateLogApi.OperateLogQuery) { +export function getOperateLogPage( + params: CrmOperateLogApi.OperateLogQueryReqVO, +) { return requestClient.get>( '/crm/operate-log/page', { params }, diff --git a/apps/web-ele/src/api/crm/permission/index.ts b/apps/web-ele/src/api/crm/permission/index.ts index 7322ee1e3..296e442f0 100644 --- a/apps/web-ele/src/api/crm/permission/index.ts +++ b/apps/web-ele/src/api/crm/permission/index.ts @@ -17,14 +17,15 @@ export namespace CrmPermissionApi { } /** 数据权限转移请求 */ - export interface TransferReq { + export interface BusinessTransferReqVO { id: number; // 模块编号 newOwnerUserId: number; // 新负责人的用户编号 oldOwnerPermissionLevel?: number; // 老负责人加入团队后的权限级别 toBizTypes?: number[]; // 转移客户时,需要额外有【联系人】【商机】【合同】的 checkbox 选择 } - export interface PermissionListReq { + /** 权限列表请求 */ + export interface PermissionListReqVO { bizId: number; // 模块数据编号 bizType: number; // 模块类型 } @@ -54,7 +55,9 @@ export enum PermissionLevelEnum { } /** 获得数据权限列表(查询团队成员列表) */ -export function getPermissionList(params: CrmPermissionApi.PermissionListReq) { +export function getPermissionList( + params: CrmPermissionApi.PermissionListReqVO, +) { return requestClient.get( '/crm/permission/list', { params }, diff --git a/apps/web-ele/src/api/crm/receivable/index.ts b/apps/web-ele/src/api/crm/receivable/index.ts index aa386637a..6823170da 100644 --- a/apps/web-ele/src/api/crm/receivable/index.ts +++ b/apps/web-ele/src/api/crm/receivable/index.ts @@ -3,14 +3,6 @@ import type { PageParam, PageResult } from '@vben/request'; import { requestClient } from '#/api/request'; export namespace CrmReceivableApi { - /** 合同信息 */ - export interface Contract { - id?: number; - name?: string; - no: string; - totalPrice: number; - } - /** 回款信息 */ export interface Receivable { id: number; @@ -35,20 +27,17 @@ export namespace CrmReceivableApi { updateTime: Date; // 更新时间 } - export interface ReceivablePageParam extends PageParam { - no?: string; - planId?: number; - customerId?: number; - contractId?: number; - sceneType?: number; - auditStatus?: number; + /** 合同信息 */ + export interface Contract { + id?: number; + name?: string; + no: string; + totalPrice: number; } } /** 查询回款列表 */ -export function getReceivablePage( - params: CrmReceivableApi.ReceivablePageParam, -) { +export function getReceivablePage(params: PageParam) { return requestClient.get>( '/crm/receivable/page', { params }, @@ -56,9 +45,7 @@ export function getReceivablePage( } /** 查询回款列表,基于指定客户 */ -export function getReceivablePageByCustomer( - params: CrmReceivableApi.ReceivablePageParam, -) { +export function getReceivablePageByCustomer(params: PageParam) { return requestClient.get>( '/crm/receivable/page-by-customer', { params }, diff --git a/apps/web-ele/src/api/crm/receivable/plan/index.ts b/apps/web-ele/src/api/crm/receivable/plan/index.ts index 63e00f271..c4279d8ca 100644 --- a/apps/web-ele/src/api/crm/receivable/plan/index.ts +++ b/apps/web-ele/src/api/crm/receivable/plan/index.ts @@ -29,20 +29,10 @@ export namespace CrmReceivablePlanApi { returnTime: Date; }; } - - export interface PlanPageParam extends PageParam { - customerId?: number; - contractId?: number; - contractNo?: string; - sceneType?: number; - remindType?: number; - } } /** 查询回款计划列表 */ -export function getReceivablePlanPage( - params: CrmReceivablePlanApi.PlanPageParam, -) { +export function getReceivablePlanPage(params: PageParam) { return requestClient.get>( '/crm/receivable-plan/page', { params }, @@ -50,9 +40,7 @@ export function getReceivablePlanPage( } /** 查询回款计划列表(按客户) */ -export function getReceivablePlanPageByCustomer( - params: CrmReceivablePlanApi.PlanPageParam, -) { +export function getReceivablePlanPageByCustomer(params: PageParam) { return requestClient.get>( '/crm/receivable-plan/page-by-customer', { params }, @@ -98,7 +86,7 @@ export function deleteReceivablePlan(id: number) { } /** 导出回款计划 Excel */ -export function exportReceivablePlan(params: PageParam) { +export function exportReceivablePlan(params: any) { return requestClient.download('/crm/receivable-plan/export-excel', { params, }); diff --git a/apps/web-ele/src/api/crm/statistics/customer.ts b/apps/web-ele/src/api/crm/statistics/customer.ts index cfc47e6bd..94cfb65ac 100644 --- a/apps/web-ele/src/api/crm/statistics/customer.ts +++ b/apps/web-ele/src/api/crm/statistics/customer.ts @@ -1,15 +1,24 @@ import { requestClient } from '#/api/request'; export namespace CrmStatisticsCustomerApi { - /** 客户总量分析(按日期) */ - export interface CustomerSummaryByDate { + /** 客户统计请求 */ + export interface CustomerSummaryReqVO { + times: string[]; + interval: number; + deptId: number; + userId: number; + userIds: number[]; + } + + /** 客户总量分析(按日期)响应 */ + export interface CustomerSummaryByDateRespVO { time: string; customerCreateCount: number; customerDealCount: number; } - /** 客户总量分析(按用户) */ - export interface CustomerSummaryByUser { + /** 客户总量分析(按用户)响应 */ + export interface CustomerSummaryByUserRespVO { ownerUserName: string; customerCreateCount: number; customerDealCount: number; @@ -17,28 +26,28 @@ export namespace CrmStatisticsCustomerApi { receivablePrice: number; } - /** 客户跟进次数分析(按日期) */ - export interface FollowUpSummaryByDate { + /** 客户跟进次数分析(按日期)响应 */ + export interface FollowUpSummaryByDateRespVO { time: string; followUpRecordCount: number; followUpCustomerCount: number; } - /** 客户跟进次数分析(按用户) */ - export interface FollowUpSummaryByUser { + /** 客户跟进次数分析(按用户)响应 */ + export interface FollowUpSummaryByUserRespVO { ownerUserName: string; followupRecordCount: number; followupCustomerCount: number; } - /** 客户跟进方式统计 */ - export interface FollowUpSummaryByType { + /** 客户跟进方式统计响应 */ + export interface FollowUpSummaryByTypeRespVO { followUpType: string; followUpRecordCount: number; } - /** 合同摘要信息 */ - export interface CustomerContractSummary { + /** 合同摘要信息响应 */ + export interface CustomerContractSummaryRespVO { customerName: string; contractName: string; totalPrice: number; @@ -51,54 +60,46 @@ export namespace CrmStatisticsCustomerApi { orderDate: Date; } - /** 客户公海分析(按日期) */ - export interface PoolSummaryByDate { + /** 客户公海分析(按日期)响应 */ + export interface PoolSummaryByDateRespVO { time: string; customerPutCount: number; customerTakeCount: number; } - /** 客户公海分析(按用户) */ - export interface PoolSummaryByUser { + /** 客户公海分析(按用户)响应 */ + export interface PoolSummaryByUserRespVO { ownerUserName: string; customerPutCount: number; customerTakeCount: number; } - /** 客户成交周期(按日期) */ - export interface CustomerDealCycleByDate { + /** 客户成交周期(按日期)响应 */ + export interface CustomerDealCycleByDateRespVO { time: string; customerDealCycle: number; } - /** 客户成交周期(按用户) */ - export interface CustomerDealCycleByUser { + /** 客户成交周期(按用户)响应 */ + export interface CustomerDealCycleByUserRespVO { ownerUserName: string; customerDealCycle: number; customerDealCount: number; } - /** 客户成交周期(按地区) */ - export interface CustomerDealCycleByArea { + /** 客户成交周期(按地区)响应 */ + export interface CustomerDealCycleByAreaRespVO { areaName: string; customerDealCycle: number; customerDealCount: number; } - /** 客户成交周期(按产品) */ - export interface CustomerDealCycleByProduct { + /** 客户成交周期(按产品)响应 */ + export interface CustomerDealCycleByProductRespVO { productName: string; customerDealCycle: number; customerDealCount: number; } - - export interface CustomerSummaryParams { - times: string[]; - interval: number; - deptId: number; - userId: number; - userIds: number[]; - } } export function getDatas(activeTabName: any, params: any) { @@ -167,69 +168,63 @@ export function getChartDatas(activeTabName: any, params: any) { /** 客户总量分析(按日期) */ export function getCustomerSummaryByDate( - params: CrmStatisticsCustomerApi.CustomerSummaryParams, + params: CrmStatisticsCustomerApi.CustomerSummaryReqVO, ) { - return requestClient.get( - '/crm/statistics-customer/get-customer-summary-by-date', - { params }, - ); + return requestClient.get< + CrmStatisticsCustomerApi.CustomerSummaryByDateRespVO[] + >('/crm/statistics-customer/get-customer-summary-by-date', { params }); } /** 客户总量分析(按用户) */ export function getCustomerSummaryByUser( - params: CrmStatisticsCustomerApi.CustomerSummaryParams, + params: CrmStatisticsCustomerApi.CustomerSummaryReqVO, ) { - return requestClient.get( - '/crm/statistics-customer/get-customer-summary-by-user', - { params }, - ); + return requestClient.get< + CrmStatisticsCustomerApi.CustomerSummaryByUserRespVO[] + >('/crm/statistics-customer/get-customer-summary-by-user', { params }); } /** 客户跟进次数分析(按日期) */ export function getFollowUpSummaryByDate( - params: CrmStatisticsCustomerApi.CustomerSummaryParams, + params: CrmStatisticsCustomerApi.CustomerSummaryReqVO, ) { - return requestClient.get( - '/crm/statistics-customer/get-follow-up-summary-by-date', - { params }, - ); + return requestClient.get< + CrmStatisticsCustomerApi.FollowUpSummaryByDateRespVO[] + >('/crm/statistics-customer/get-follow-up-summary-by-date', { params }); } /** 客户跟进次数分析(按用户) */ export function getFollowUpSummaryByUser( - params: CrmStatisticsCustomerApi.CustomerSummaryParams, + params: CrmStatisticsCustomerApi.CustomerSummaryReqVO, ) { - return requestClient.get( - '/crm/statistics-customer/get-follow-up-summary-by-user', - { params }, - ); + return requestClient.get< + CrmStatisticsCustomerApi.FollowUpSummaryByUserRespVO[] + >('/crm/statistics-customer/get-follow-up-summary-by-user', { params }); } /** 获取客户跟进方式统计数 */ export function getFollowUpSummaryByType( - params: CrmStatisticsCustomerApi.CustomerSummaryParams, + params: CrmStatisticsCustomerApi.CustomerSummaryReqVO, ) { - return requestClient.get( - '/crm/statistics-customer/get-follow-up-summary-by-type', - { params }, - ); + return requestClient.get< + CrmStatisticsCustomerApi.FollowUpSummaryByTypeRespVO[] + >('/crm/statistics-customer/get-follow-up-summary-by-type', { params }); } /** 合同摘要信息(客户转化率页面) */ export function getContractSummary( - params: CrmStatisticsCustomerApi.CustomerSummaryParams, + params: CrmStatisticsCustomerApi.CustomerSummaryReqVO, ) { - return requestClient.get( - '/crm/statistics-customer/get-contract-summary', - { params }, - ); + return requestClient.get< + CrmStatisticsCustomerApi.CustomerContractSummaryRespVO[] + >('/crm/statistics-customer/get-contract-summary', { params }); } /** 获取客户公海分析(按日期) */ export function getPoolSummaryByDate( - params: CrmStatisticsCustomerApi.CustomerSummaryParams, + params: CrmStatisticsCustomerApi.CustomerSummaryReqVO, ) { - return requestClient.get( + return requestClient.get( '/crm/statistics-customer/get-pool-summary-by-date', { params }, ); @@ -237,9 +232,9 @@ export function getPoolSummaryByDate( /** 获取客户公海分析(按用户) */ export function getPoolSummaryByUser( - params: CrmStatisticsCustomerApi.CustomerSummaryParams, + params: CrmStatisticsCustomerApi.CustomerSummaryReqVO, ) { - return requestClient.get( + return requestClient.get( '/crm/statistics-customer/get-pool-summary-by-user', { params }, ); @@ -247,39 +242,36 @@ export function getPoolSummaryByUser( /** 获取客户成交周期(按日期) */ export function getCustomerDealCycleByDate( - params: CrmStatisticsCustomerApi.CustomerSummaryParams, + params: CrmStatisticsCustomerApi.CustomerSummaryReqVO, ) { - return requestClient.get( - '/crm/statistics-customer/get-customer-deal-cycle-by-date', - { params }, - ); + return requestClient.get< + CrmStatisticsCustomerApi.CustomerDealCycleByDateRespVO[] + >('/crm/statistics-customer/get-customer-deal-cycle-by-date', { params }); } /** 获取客户成交周期(按用户) */ export function getCustomerDealCycleByUser( - params: CrmStatisticsCustomerApi.CustomerSummaryParams, + params: CrmStatisticsCustomerApi.CustomerSummaryReqVO, ) { - return requestClient.get( - '/crm/statistics-customer/get-customer-deal-cycle-by-user', - { params }, - ); + return requestClient.get< + CrmStatisticsCustomerApi.CustomerDealCycleByUserRespVO[] + >('/crm/statistics-customer/get-customer-deal-cycle-by-user', { params }); } /** 获取客户成交周期(按地区) */ export function getCustomerDealCycleByArea( - params: CrmStatisticsCustomerApi.CustomerSummaryParams, + params: CrmStatisticsCustomerApi.CustomerSummaryReqVO, ) { - return requestClient.get( - '/crm/statistics-customer/get-customer-deal-cycle-by-area', - { params }, - ); + return requestClient.get< + CrmStatisticsCustomerApi.CustomerDealCycleByAreaRespVO[] + >('/crm/statistics-customer/get-customer-deal-cycle-by-area', { params }); } /** 获取客户成交周期(按产品) */ export function getCustomerDealCycleByProduct( - params: CrmStatisticsCustomerApi.CustomerSummaryParams, + params: CrmStatisticsCustomerApi.CustomerSummaryReqVO, ) { return requestClient.get< - CrmStatisticsCustomerApi.CustomerDealCycleByProduct[] + CrmStatisticsCustomerApi.CustomerDealCycleByProductRespVO[] >('/crm/statistics-customer/get-customer-deal-cycle-by-product', { params }); } diff --git a/apps/web-ele/src/api/crm/statistics/funnel.ts b/apps/web-ele/src/api/crm/statistics/funnel.ts index 8e023d1b7..eb7cf8ca8 100644 --- a/apps/web-ele/src/api/crm/statistics/funnel.ts +++ b/apps/web-ele/src/api/crm/statistics/funnel.ts @@ -3,22 +3,22 @@ import type { PageResult } from '@vben/request'; import { requestClient } from '#/api/request'; export namespace CrmStatisticsFunnelApi { - /** 销售漏斗统计数据 */ - export interface FunnelSummary { + /** 销售漏斗统计数据响应 */ + export interface FunnelSummaryRespVO { customerCount: number; // 客户数 businessCount: number; // 商机数 businessWinCount: number; // 赢单数 } - /** 商机分析(按日期) */ - export interface BusinessSummaryByDate { + /** 商机分析(按日期)响应 */ + export interface BusinessSummaryByDateRespVO { time: string; // 时间 businessCreateCount: number; // 商机数 totalPrice: number | string; // 商机金额 } - /** 商机转化率分析(按日期) */ - export interface BusinessInversionRateSummaryByDate { + /** 商机转化率分析(按日期)响应 */ + export interface BusinessInversionRateSummaryByDateRespVO { time: string; // 时间 businessCount: number; // 商机数量 businessWinCount: number; // 赢单商机数 @@ -61,7 +61,7 @@ export function getChartDatas(activeTabName: any, params: any) { /** 获取销售漏斗统计数据 */ export function getFunnelSummary(params: any) { - return requestClient.get( + return requestClient.get( '/crm/statistics-funnel/get-funnel-summary', { params }, ); @@ -77,16 +77,15 @@ export function getBusinessSummaryByEndStatus(params: any) { /** 获取新增商机分析(按日期) */ export function getBusinessSummaryByDate(params: any) { - return requestClient.get( - '/crm/statistics-funnel/get-business-summary-by-date', - { params }, - ); + return requestClient.get< + CrmStatisticsFunnelApi.BusinessSummaryByDateRespVO[] + >('/crm/statistics-funnel/get-business-summary-by-date', { params }); } /** 获取商机转化率分析(按日期) */ export function getBusinessInversionRateSummaryByDate(params: any) { return requestClient.get< - CrmStatisticsFunnelApi.BusinessInversionRateSummaryByDate[] + CrmStatisticsFunnelApi.BusinessInversionRateSummaryByDateRespVO[] >('/crm/statistics-funnel/get-business-inversion-rate-summary-by-date', { params, }); diff --git a/apps/web-ele/src/api/crm/statistics/performance.ts b/apps/web-ele/src/api/crm/statistics/performance.ts index 2bfcdd57a..28048a314 100644 --- a/apps/web-ele/src/api/crm/statistics/performance.ts +++ b/apps/web-ele/src/api/crm/statistics/performance.ts @@ -1,25 +1,27 @@ import { requestClient } from '#/api/request'; export namespace CrmStatisticsPerformanceApi { - /** 员工业绩统计 */ - export interface Performance { + /** 员工业绩统计请求 */ + export interface PerformanceReqVO { + times: string[]; + deptId: number; + userId: number; + } + + /** 员工业绩统计响应 */ + export interface PerformanceRespVO { time: string; currentMonthCount: number; lastMonthCount: number; lastYearCount: number; } - export interface PerformanceParams { - times: string[]; - deptId: number; - userId: number; - } } /** 员工获得合同金额统计 */ export function getContractPricePerformance( - params: CrmStatisticsPerformanceApi.PerformanceParams, + params: CrmStatisticsPerformanceApi.PerformanceReqVO, ) { - return requestClient.get( + return requestClient.get( '/crm/statistics-performance/get-contract-price-performance', { params }, ); @@ -27,9 +29,9 @@ export function getContractPricePerformance( /** 员工获得回款统计 */ export function getReceivablePricePerformance( - params: CrmStatisticsPerformanceApi.PerformanceParams, + params: CrmStatisticsPerformanceApi.PerformanceReqVO, ) { - return requestClient.get( + return requestClient.get( '/crm/statistics-performance/get-receivable-price-performance', { params }, ); @@ -37,9 +39,9 @@ export function getReceivablePricePerformance( /** 员工获得签约合同数量统计 */ export function getContractCountPerformance( - params: CrmStatisticsPerformanceApi.PerformanceParams, + params: CrmStatisticsPerformanceApi.PerformanceReqVO, ) { - return requestClient.get( + return requestClient.get( '/crm/statistics-performance/get-contract-count-performance', { params }, ); diff --git a/apps/web-ele/src/api/crm/statistics/portrait.ts b/apps/web-ele/src/api/crm/statistics/portrait.ts index ecbe9c9dc..6c4e20109 100644 --- a/apps/web-ele/src/api/crm/statistics/portrait.ts +++ b/apps/web-ele/src/api/crm/statistics/portrait.ts @@ -3,33 +3,33 @@ import type { PageParam } from '@vben/request'; import { requestClient } from '#/api/request'; export namespace CrmStatisticsPortraitApi { - /** 客户基础统计信息 */ - export interface CustomerBase { + /** 客户基础统计响应 */ + export interface CustomerBaseRespVO { customerCount: number; dealCount: number; dealPortion: number | string; } - /** 客户行业统计信息 */ - export interface CustomerIndustry extends CustomerBase { + /** 客户行业统计响应 */ + export interface CustomerIndustryRespVO extends CustomerBaseRespVO { industryId: number; industryPortion: number | string; } - /** 客户来源统计信息 */ - export interface CustomerSource extends CustomerBase { + /** 客户来源统计响应 */ + export interface CustomerSourceRespVO extends CustomerBaseRespVO { source: number; sourcePortion: number | string; } - /** 客户级别统计信息 */ - export interface CustomerLevel extends CustomerBase { + /** 客户级别统计响应 */ + export interface CustomerLevelRespVO extends CustomerBaseRespVO { level: number; levelPortion: number | string; } - /** 客户地区统计信息 */ - export interface CustomerArea extends CustomerBase { + /** 客户地区统计响应 */ + export interface CustomerAreaRespVO extends CustomerBaseRespVO { areaId: number; areaName: string; areaPortion: number | string; @@ -58,7 +58,7 @@ export function getDatas(activeTabName: any, params: any) { /** 获取客户行业统计数据 */ export function getCustomerIndustry(params: PageParam) { - return requestClient.get( + return requestClient.get( '/crm/statistics-portrait/get-customer-industry-summary', { params }, ); @@ -66,7 +66,7 @@ export function getCustomerIndustry(params: PageParam) { /** 获取客户来源统计数据 */ export function getCustomerSource(params: PageParam) { - return requestClient.get( + return requestClient.get( '/crm/statistics-portrait/get-customer-source-summary', { params }, ); @@ -74,7 +74,7 @@ export function getCustomerSource(params: PageParam) { /** 获取客户级别统计数据 */ export function getCustomerLevel(params: PageParam) { - return requestClient.get( + return requestClient.get( '/crm/statistics-portrait/get-customer-level-summary', { params }, ); @@ -82,7 +82,7 @@ export function getCustomerLevel(params: PageParam) { /** 获取客户地区统计数据 */ export function getCustomerArea(params: PageParam) { - return requestClient.get( + return requestClient.get( '/crm/statistics-portrait/get-customer-area-summary', { params }, ); diff --git a/apps/web-ele/src/api/crm/statistics/rank.ts b/apps/web-ele/src/api/crm/statistics/rank.ts index 216696c87..b1f57b11e 100644 --- a/apps/web-ele/src/api/crm/statistics/rank.ts +++ b/apps/web-ele/src/api/crm/statistics/rank.ts @@ -3,8 +3,8 @@ import type { PageParam } from '@vben/request'; import { requestClient } from '#/api/request'; export namespace CrmStatisticsRankApi { - /** 排行统计数据 */ - export interface Rank { + /** 排行统计响应 */ + export interface RankRespVO { count: number; nickname: string; deptName: string; @@ -45,7 +45,7 @@ export function getDatas(activeTabName: any, params: any) { /** 获得合同排行榜 */ export function getContractPriceRank(params: PageParam) { - return requestClient.get( + return requestClient.get( '/crm/statistics-rank/get-contract-price-rank', { params }, ); @@ -53,7 +53,7 @@ export function getContractPriceRank(params: PageParam) { /** 获得回款排行榜 */ export function getReceivablePriceRank(params: PageParam) { - return requestClient.get( + return requestClient.get( '/crm/statistics-rank/get-receivable-price-rank', { params }, ); @@ -61,7 +61,7 @@ export function getReceivablePriceRank(params: PageParam) { /** 签约合同排行 */ export function getContractCountRank(params: PageParam) { - return requestClient.get( + return requestClient.get( '/crm/statistics-rank/get-contract-count-rank', { params }, ); @@ -69,7 +69,7 @@ export function getContractCountRank(params: PageParam) { /** 产品销量排行 */ export function getProductSalesRank(params: PageParam) { - return requestClient.get( + return requestClient.get( '/crm/statistics-rank/get-product-sales-rank', { params }, ); @@ -77,7 +77,7 @@ export function getProductSalesRank(params: PageParam) { /** 新增客户数排行 */ export function getCustomerCountRank(params: PageParam) { - return requestClient.get( + return requestClient.get( '/crm/statistics-rank/get-customer-count-rank', { params }, ); @@ -85,7 +85,7 @@ export function getCustomerCountRank(params: PageParam) { /** 新增联系人数排行 */ export function getContactsCountRank(params: PageParam) { - return requestClient.get( + return requestClient.get( '/crm/statistics-rank/get-contacts-count-rank', { params }, ); @@ -93,7 +93,7 @@ export function getContactsCountRank(params: PageParam) { /** 跟进次数排行 */ export function getFollowCountRank(params: PageParam) { - return requestClient.get( + return requestClient.get( '/crm/statistics-rank/get-follow-count-rank', { params }, ); @@ -101,7 +101,7 @@ export function getFollowCountRank(params: PageParam) { /** 跟进客户数排行 */ export function getFollowCustomerCountRank(params: PageParam) { - return requestClient.get( + return requestClient.get( '/crm/statistics-rank/get-follow-customer-count-rank', { params }, );